2015-11-18 3 views
1

До версии 1.12 в расширениях прута было possibile определить метод getGlobals так:веточки глобальной

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

установить глобальное имя для расширений, реализующих множество методов, и это было possibile называть " Foo»estension с баром и БАЗ методами, как это:

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

Учитывая, что метод getGlobasl теперь осуждается и будет удалена в Twig 2, как это может быть possibile, чтобы получить тот же эффект без использования getGlobals?

ответ

0

Иди в это я только сейчас. Вы можете «исправить» это с помощью EventListener, подключиться к kernel.view:

Очевидно, что работает только при использовании аннотации @Template от дополнительного комплекта sensio.

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 }