5

2.7.7 から symfony 2.8 に更新しましたが、この廃止予定が表示されます:

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] 非アクティブなスコープ ("request") のサービス ("request") を作成することはできません。

isScopeActive チェックを置き換える方法はありますか?

ありがとう...

4

1 に答える 1

9

getCurrentRequest()request_stackの代わりに注入requestして呼び出すだけです。

于 2015-12-07T15:27:25.757 に答える