如何将小枝扩展公开为一个包的服务


How to expose a Twig Extension as service of a bundle?

我已经写了一个小分支扩展,它提供了一些功能。

这个扩展是捆绑的,我想把它作为捆绑包的服务公开,所以我创建了services.yml:

services:
    twig.job_action_extension:
        class: WebBundle'Template'JobActionExtension
        arguments: ["@translator"]
        tags:
            - { name: twig.extension }

但是似乎扩展名从来没有暴露过。
运行php app/console container:debug没有列出我的服务

是否可以像这里一样注册一个小枝扩展作为服务?
或者我需要在DependencyInjection下创建一个扩展,就像这里一样,如果我想把它作为bundle的一部分贡献出来?

我再深入一点才找到答案。

我需要参考app/config/config。Yml 到bundle 服务。yml (源).

如果我想自动完成,我真的需要扩展名(源代码和上面提到的扩展名)。

那么回答我的两个问题:

  1. 可以将扩展注册为服务
  2. 你需要在DependencyInjection下的扩展,如果你想在不调整app/config/config.yml的情况下自动加载你的扩展。