7

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

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

在此处输入图像描述

我试过使用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"
}
4

1 回答 1

10

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

他们唯一的目的就是同时安装一堆一级相关的依赖,有时还会执行一些flex recipes。

当 you 时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“元包”后面。

安装后删除的事实profiler-pack是完全正常的行为。你不能保留那个包,它也不会带来任何运行时特性。


正如评论中的 msg所解释的,您正在寻找的“调试”选项卡由不同的包提供。它由 提供symfony/debug-bundle,您似乎已经安装了它。尽管安装了它,但似乎它不存在,您的安装可能由于某种原因而过时。

bundles.php但更有可能的是,您的文件中未启用捆绑包。确保它存在:

Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
于 2020-09-03T06:25:38.523 回答