Да, вы можете использовать прослушиватель для автоматического добавления динамических переменных во все шаблоны ветви. Это именно то, что делают фреймворки для инъекции объекта приложения.
В этом примере объект проекта запрашивается и затем становится доступным для всех шаблонов ветви.
class ProjectEventListener extends ContainerAware implements EventSubscriberInterface
{
public function onControllerProject(FilterControllerEvent $event)
{
....
// Query the project
$project = $this->getProjectRepository()->findOneBySlug($projectSlug);
// Twig global
$twig = $this->container->get('twig');
$twig->addGlobal('project',$project);
}
Мне действительно не нравятся люди, которые голосуют только потому, что они не понимают вопроса. – Cerad