我的问题很简单:如何编写一个函数并使其在我的捆绑包中的每个Twig模板中全局可用?
答案 0 :(得分:2)
尝试在Bundle \ Twig \ Extensions
中或多或少地重现以下类class LabelsExtension extends \Twig_Extension
{
function getName()
{
return 'labels';
}
function getFunctions()
{
return array(
'perso_label' => new \Twig_Function_Method($this, 'persoLabel')
);
}
function persoLabel($value)
{
if ($value == 1) return 'HI';
}
}
然后在你的config.yml或services.yml中,你需要有这样的东西:
services:
twig.extension.mynamespace.labels:
class: Namespace\Bundle\Twig\Extension\LabelsExtension
tags:
- { name: 'twig.extension' }
现在,您可以使用{{ perso_label(1) }}
或其他任何模板在任何模板中调用它。