2015-12-07 6 views
6

से 2.8.0 के लिए अद्यतन के बाद isScopeActive प्रतिवाद मैं 2.7.7 से सिम्फोनी 2.8 के लिए अद्यतन किया है और मैं इस प्रतिवाद मिलती है:Symfony 2.8: 2.7.7

Symfony \ घटक \ DependencyInjection \ कंटेनर: : 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 जांच हटाने के लिए, लेकिन मैं जब मैं सिम्फोनी कैश स्पष्ट चलाने के लिए एक अपवाद प्राप्त करें:

[ सिम्फनी \ घटक \ निर्भरता इंजेक्शन \ अपवाद \ InactiveScopeException] आप एक निष्क्रिय दायरे ("अनुरोध") की सेवा ("अनुरोध") नहीं बना सकते हैं।

IsScopeActive चेक को प्रतिस्थापित करने का कोई तरीका है?

धन्यवाद ...

उत्तर

8

सीधे शब्दों में request के बजाय request_stack इंजेक्षन और getCurrentRequest() कहते हैं।

+0

क्या यह एक समान प्रतिस्थापन है, यानी '$ यह-> कंटेनर-> हैस्कोपएक्टिव ('अनुरोध')' 'requeststack-> getCurrentRequest()' के साथ प्रतिस्थापित किया जा सकता है? – crmpicco