Вы также можете воспользоваться встроенной системой служебных параметров, которая позволяет изолировать или повторно использовать значение:
# app/config/parameters.yml
parameters:
ga_tracking: UA-xxxxx-x
# app/config/config.yml
twig:
globals:
ga_tracking: "%ga_tracking%"
Теперь переменная ga_tracking доступна во всех шаблонах Twig:
<p>The google tracking code is: {{ ga_tracking }}</p>
Параметр также доступен внутри контроллеров:
$this->container->getParameter('ga_tracking');
Вы также можете определить сервис как глобальную переменную Twig (Symfony2.2 +):
# app/config/config.yml
twig:
# ...
globals:
user_management: "@acme_user.user_management"
http://symfony.com/doc/current/templating/global_variables.html
Если глобальная переменная, которую вы хотите установить, является более сложной - скажем, объект - тогда вы не сможете использовать вышеуказанный метод. Вместо этого вам нужно создать расширение Twig и вернуть глобальную переменную как одну из записей в методе getGlobals.