我有一个非常专业的过滤器,我想用于单个页面,而不是使其成为全局过滤器。我尝试这样做(这不是我想要的功能,它只是一个测试):
$this->get('twig')
->addFilter(new \Twig_SimpleFilter('chgname', function ($string) {
return substr($string, 0, 5);
}));
但是我收到错误,"无法添加过滤器,因为扩展程序已经初始化"。
我知道我可以在AppBundle / Twig目录中创建一个类并将其添加为服务,但是1)它非常重,而且只需要一个我需要的简单过滤器的PITA,以及2)它使它成为整个应用程序的全局,这对我本地需要的东西是愚蠢的。
有没有办法做到这一点,还是我只坚持全球扩展?提前谢谢。
答案 0 :(得分:0)
Twig会在您的应用启动时加载环境,但您无法动态更改它。
如果您认为Symfony太重,您仍然可以查看Silex(使用Symfony组件),因此您可以编写如下内容:
ENOMEM