安装后即移除symfony/profiler-pack

9

我使用命令 composer create-project symfony/website-skeleton my_project_name 创建了一个项目。

我想安装 symfony/profiler-pack。为什么?因为在探查器中没有“调试”选项卡。

enter image description here

我尝试使用 composer require --dev symfony/profiler-pack 命令,输出结果如下:

Using version ^1.0 for symfony/profiler-pack
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "5.1.*"
Package operations: 1 install, 0 updates, 0 removals
As there is no 'unzip' command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing 'unzip' may remediate them.
  - Installing symfony/profiler-pack (v1.0.5): Loading from cache
Writing lock file
Generating optimized autoload files
composer/package-versions-deprecated: Generating version class...
composer/package-versions-deprecated: ...done generating version class
90 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Executing script cache:clear [OK]
Executing script assets:install public [OK]

Unpacked symfony/profiler-pack dependencies
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Package operations: 0 installs, 0 updates, 1 removal
  - Removing symfony/profiler-pack (v1.0.5)
89 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

为什么安装后立即删除symfony/profiler-pack

composer.json 的部分内容:

"require-dev": {
    "symfony/browser-kit": "^5.1",
    "symfony/css-selector": "^5.1",
    "symfony/debug-bundle": "^5.1",
    "symfony/maker-bundle": "^1.0",
    "symfony/monolog-bundle": "^3.0",
    "symfony/phpunit-bridge": "^5.1",
    "symfony/stopwatch": "^5.1",
    "symfony/twig-bundle": "^5.1",
    "symfony/var-dumper": "^5.1",
    "symfony/web-profiler-bundle": "^5.1"
}

2
评论不适合进行长时间的讨论。如果您对我们社区的编辑规则有任何问题,请前往[元数据]。 - Martijn Pieters
1个回答

12

*-pack Symfony包是“元包”,安装后它们总是被“删除”。

它们唯一的目的是同时安装一堆一级相关的依赖项,并有时执行一些flex配方。

当你require profiler-pack时,实际添加到你的依赖项中的是:

"symfony/stopwatch": "5.1.*",
"symfony/twig-bundle": "5.1.*",
"symfony/web-profiler-bundle": "5.1.*",

你可以在Packagist上确认此信息。

例如,如果安装了orm-pack,则会将以下内容安装到第一级(也就是说,这些包现在是你项目的依赖项,而不是包的依赖项):

"composer/package-versions-deprecated": "^1.11",
"doctrine/doctrine-bundle": "^2.1",
"doctrine/doctrine-migrations-bundle": "^3.0",
"doctrine/orm": "^2.7",
在过去,除非您传递了--unpack标志给require,或者在安装后执行了unpack,否则这些软件包将作为一级依赖项保留安装。现在这些包默认会被解压缩,这是更好的做法,因为否则“真正”的依赖关系会隐藏在Symfony“meta-pack”之后。
安装后删除profiler-pack这种情况完全是正常的行为。您不能保留该软件包,并且它也不提供任何运行时功能。
你正在寻找的“Debug”选项卡由一个不同的软件包提供,正如评论中msg所解释的那样。它由symfony/debug-bundle提供,您似乎已经安装了它。如果安装后它没有出现,您的安装可能存在某些问题。
但更有可能的是,在您的bundles.php文件中未启用该bundle。请确保其中有以下内容:
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],

您可以在第一张截图中此处看到“调试”选项卡。我非常确定Symfony 4.*中有“调试”选项卡。 - Tarasovych
是的,在那个截图中确实有它。不过我不知道它背后的情况。但这与安装后删除“profiler-pack”完全无关。恐怕我在这台机器上没有任何Sf4项目可以测试。 - yivi
1
@Tarasovych,“Debug”选项卡是由“symfony/debug-bundle”提供的“DataCollector”,而不是“profiler-pack”的一部分。您在显示的composer片段中已经声明了它,应该由flex自动激活。您可以双重检查“config/bundles.php”,尝试清除缓存或删除“symfony.lock”并运行“composer install”。 - msg
谢谢@msg。这可能听起来很傻,但我不认为我曾经安装过那个捆绑包(现在正在安装,只是想看看它是什么)。你介意我将这一点纳入我的答案吗? - yivi
1
@yivi 当然,请直接进行。它只是从“dump”调用中删除输出并将它们显示在该面板中(或在调试栏本身中)。 - msg
哦,我明白了,我还没有安装它。我并不是一个经常使用“dump”的人。但谁知道呢,也许我会养成这个习惯;) 谢谢 @msg - yivi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接