我有一个非常专业的过滤器,我想将其用于单个页面而不使其成为全局过滤器。我试过这样做(这不是我想要的功能,这只是一个测试):
$this->get('twig')
->addFilter(new \Twig_SimpleFilter('chgname', function ($string) {
return substr($string, 0, 5);
}));
但我收到一个错误,“无法添加过滤器,因为扩展已经初始化”。
我知道我可以在 AppBundle/Twig 目录中创建一个类并将其添加为服务,但是 1)这非常重,而且 PITA 仅用于我需要的一个简单过滤器,并且 2)它使其对整个应用程序都是全局的,这对于我在本地需要的东西来说是愚蠢的。
有什么办法可以做到这一点,还是我只坚持全局扩展?提前致谢。