Как использовать сопоставители для условного подключения профилироващика

Caution

Возможность использовать сопоставитель для условного подключения профилировщика была удалена в Symfony 4.0.

Профилировщик Symfony не может быть включен или отключен условно используя сопоставители,так как эта функция была удалена в Symfony 4.0. Однако, вы можете использовать методы enable() и disable() класса Profiler в ваших контроллерах, чтобы управлять профилировщиком программно:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
use Symfony\Component\HttpKernel\Profiler\Profiler;
// ...

class DefaultController
{
    // ...

    public function someMethod(Profiler $profiler)
    {
        // для этого конкретного действия контроллера, профилировщик отключен
        $profiler->disable();

        // ...
    }
}

Для того, чтобы профилировщик был внедрён в ваш контроллер, вам нужно создать дополительное имя, указывающее на существующий сервис profiler:

  • YAML
    1
    2
    3
    # config/services.yaml
    services:
        Symfony\Component\HttpKernel\Profiler\Profiler: '@profiler'
    
  • XML
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    <!-- config/services.xml -->
    <?xml version="1.0" encoding="UTF-8" ?>
    <container xmlns="http://symfony.com/schema/dic/services"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://symfony.com/schema/dic/services
            http://symfony.com/schema/dic/services/services-1.0.xsd">
    
        <services>
            <service id="Symfony\Component\HttpKernel\Profiler\Profiler" alias="profiler" />
        </services>
    </container>
    
  • PHP
    1
    2
    3
    4
    // config/services.php
    use Symfony\Component\HttpKernel\Profiler\Profiler;
    
    $container->setAlias(Profiler::class, 'profiler');
    

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.