2015-12-07 6 views
6

私は2.7.7からのsymfony 2.8に更新していると私は、この廃止を得る:symfonyの2.8:2.7.7から2.8.0への更新後のisScopeActiveの廃止

のSymfony \コンポーネント\依存性の注入\コンテナ: :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チェックを置き換える方法はありますか?

おかげで...

答えて

8

単にrequest_stackの代わりrequestを注入し、getCurrentRequest()を呼び出します。

+0

これは、$ this-> container-> isScopeActive( 'request') 'を' $ requestStack-> getCurrentRequest() 'に置き換えるようなものですか? – crmpicco

関連する問題