Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

symfony/profiler-pack is being removed right after installation

I have created a project using command composer create-project symfony/website-skeleton my_project_name

I want to install symfony/profiler-pack. Why? Because of that there is no "Debug" tab in the profiler.

enter image description here

I have tried using composer require --dev symfony/profiler-pack, and the output is

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!

Why symfony/profiler-pack is being removed right after installation?

Part of my 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"
}
like image 507
Tarasovych Avatar asked Sep 02 '20 18:09

Tarasovych


1 Answers

The *-pack Symfony packages are "meta-packages", and they are always "removed" after installation

Their only purpose is to install a bunch of first-level related dependencies at the same time, and sometimes execute some flex recipes.

When you require profiler-pack, what's actually added to your dependencies is:

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

You can check confirm this on packagist.

Or for example, if you install orm-pack you'll get these installed at the first level (as in, these are now your project's dependencies, not the pack's dependencies):

"composer/package-versions-deprecated": "^1.11",
"doctrine/doctrine-bundle": "^2.1",
"doctrine/doctrine-migrations-bundle": "^3.0",
"doctrine/orm": "^2.7",

In the past these packages were left installed as first level dependencies, unless you passed the --unpack flag to require, or that you executed unpack after installation. Now these packs are unpacked by default, which is better because otherwise the "real" dependencies were hidden behind the Symfony "meta-pack".

The fact that the profiler-pack is removed after installation is completely normal behaviour. You can't keep that package around, and it doesn't bring any runtime features anyway.


The "Debug" tab you are looking for is provided by a different package, as explained by msg in the comments. It's provided by symfony/debug-bundle, which you already seem to have installed. Seems it's not there despite the installation, your installation may be stale for some reason.

But more likely, the bundle is not enabled in your bundles.php file. Make sure that this is there:

Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true],
like image 121
yivi Avatar answered Nov 04 '22 14:11

yivi