Symfony 2.8: isScopeActive устареет после обновления до 2.8.0 с 2.7.7

Я обновился до symfony 2.8 с 2.7.7, и я получил это устаревание:

Метод Symfony\Component\DependencyInjection\Container::isScopeActive устарел, начиная с версии 2.8, и будет удален в версии 3.0.

Я использую этот вызов в классе расширения ветки:

class TemplateHelper extends \Twig_Extension {

    private $request;

    private $container;


    /**
     * constructor
     * @param ContainerInterface $container
     */
    public function __construct(ContainerInterface $container){
        $this->container = $container;

        if( $this->container->isScopeActive('request') ){
            $this->request = $this->container->get('request');
        }
    }
    //...functions
    }

Во-первых, я удаляю проверку isScopeActive, но получаю исключение, когда запускаю очистку кеша symfony:

[Symfony\Component\DependencyInjection\Exception\InactiveScopeException] Вы не можете создать службу ("запрос") неактивной области ("запрос").

Есть ли способ заменить проверку isScopeActive?

Спасибо...


person ar099968    schedule 07.12.2015    source источник


Ответы (1)


Просто введите request_stack вместо request и вызовите getCurrentRequest(). .

person Mantas    schedule 07.12.2015
comment
Является ли это равноценной заменой, т. е. $this->container->isScopeActive('request') нужно заменить на $requestStack->getCurrentRequest()? - person crmpicco; 20.03.2017