使用此配置,我可以成功访问我的twig扩展名:
services:
foo.twig.extension:
class: Bundle\HelloBundle\Extension\MyTwigExtension
tags:
- { name: twig.extension }
但是现在我想将这个扩展程序从一个包中托管,以便在任何地方使用它。我需要这样的东西:(以下代码不起作用)
services:
foo.twig.extension:
class: "%kernel.root_dir%\Resources\Extension\MyTwigExtension
tags:
- { name: twig.extension }
有什么想法吗?
答案 0 :(得分:0)
我认为您可以将它放在由自动加载器处理的任何目录中(或者您可以添加到自动加载器中)。
换句话说,您应该在配置中提供类名,而不是类路径。只要它自动加载就可以了。
例如,您可以将扩展名放在 src / TwigExtensions 目录中名为 TwigExtensions 的库中:
services:
foo.twig.extension:
class: "TwigExtensions\Extension\MyTwigExtension
tags:
- { name: twig.extension }
这样您的扩展程序将独立于Symfony。
类似设置的好例子是DoctrineExtensions和DoctrineExtensionsBundle。