是否可以在树枝文件中设置全局变量,以便我可以从其他文件,宏和块访问该变量。
例如,我想要variables.twig
文件,并在其中设置变量,然后将其包含在其他模板中。
我知道可以从框架(例如Symfony)中设置全局变量,但是我只想使用树枝功能的解决方案。
如果您使用的是Symfony2,则可以在config.yml
文件中设置全局变量:
# app/config/config.yml
twig:
# ...
globals:
myStuff: %someParam%
然后{{ myStuff }}
在应用程序中的任何地方使用。
如果在另一个项目中使用Twig,则可以直接在环境中设置全局变量:
$twig = new Twig_Environment($loader);
$twig->addGlobal('myStuff', $someVariable);
然后{{ myStuff }}
在应用程序中的任何地方使用。
如果您有很多全局变量,并且只想为应用程序的特定部分指定一组全局变量,则可以创建一个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代码时,仅包含来自该代码的呈现视图,而不包括代码本身。因此,根据设计,不可能按照您想要的方式包含一组变量。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句