2015-11-18 83 views
1

在樹枝擴展1.12版之前,它是不可能性來定義getGlobals方法是這樣的:樹枝擴展名全球

public function getGlobals() 
{ 
    return array($this->getName() => $this); 
} 

爲實現許多方法擴展設置一個全局的名字,這是不可能性,以所謂的「富」 estension酒吧和巴茲方法是這樣的:

{{ foo.bar }} {{ foo.baz }} 

考慮到getGlobasl方法現在已過時,會在嫩枝2被刪除,怎麼可能不可能性,以獲得不使用getGlobals同樣的效果?

回答

0

剛剛進入這個階段。你可以用EventListener'修復'這個,掛鉤到kernel.view中:

顯然只有在使用sensio extra bundle的@Template註解時纔有效。

public function onKernelView(GetResponseForControllerResultEvent $event) 
{ 
    $params = $event->getControllerResult(); 
    $params['baddesign'] = $this->myservice->getSomethingThatsUsedEverywhere(); 
    $event->setControllerResult($params); 
} 

public static function getSubscribedEvents() 
{ 
    return array(
     KernelEvents::VIEW => 'onKernelView', 
    ); 
} 

mybundle.globalvarlistener: 
    class: MyBundle\EventListener\MyListener 
    tags: 
     - { name: kernel.event_subscriber }