Использование конфигурации Symfony2
Если вы используете Symfony2, вы можете установить глобалам в файле config.yml
:
# app/config/config.yml
twig:
# ...
globals:
myStuff: %someParam%
И затем использовать {{ myStuff }}
в любом месте вашего приложения.
Использование Twig_Environment :: addGlobal
Если вы используете Twig в другом проекте, вы можете установить глобалам непосредственно в среде:
$twig = new Twig_Environment($loader);
$twig->addGlobal('myStuff', $someVariable);
, а затем использовать {{ myStuff }}
в любом месте вашего приложения ,
Используя расширение Twig
Если у вас есть много глобальных переменных и требуется указать набор глобалов для определенной части вашего приложения только, вы можете создать расширение Twig:
class Some_Twig_Extension extends Twig_Extension implements Twig_Extension_GlobalsInterface
{
public function getGlobals()
{
return array(
'someStuff' => $this->myVar,
// ...
);
}
// ...
}
Затем импортировать его в среде только при необходимости:
$twig = new Twig_Environment($loader);
$twig->addExtension(new Project_Twig_Extension());
И все равно используйте {{ myStuff }}
в любом месте приложения.
Использования шаблона Twig
Когда вы включаете кусок кода Twig, вы только в то число обработанного вида Исходя из этого кода, а не сам кода. Таким образом, по дизайну невозможно включить набор переменных так, как вы ищите.
Возможный дубликат [Symfony 2 + Twig global variables] (http://stackoverflow.com/questions/9263903/symfony-2-twig-global-variables) – pbenard