如何在symfony2 config.yml中链接资源

时间:2011-11-03 10:13:45

标签: symfony twig

使用此配置,我可以成功访问我的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 }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为您可以将它放在由自动加载器处理的任何目录中(或者您可以添加到自动加载器中)。

换句话说,您应该在配置中提供类名,而不是类路径。只要它自动加载就可以了。

例如,您可以将扩展名放在 src / TwigExtensions 目录中名为 TwigExtensions 的库中:

services:
      foo.twig.extension:
        class: "TwigExtensions\Extension\MyTwigExtension
        tags:
          -  { name: twig.extension }

这样您的扩展程序将独立于Symfony。

类似设置的好例子是DoctrineExtensionsDoctrineExtensionsBundle