-1

我想使用 Symfony2 Bundle 继承特性来覆盖它的核心翻译组件。在我继续之前,我想对它有一些建议。有可能吗?

4

1 回答 1

2

Symfony2 有一种简单的方法来覆盖bundles,但您想覆盖 Translation Component (有关此答案中 bundles、components 和 bridge 之间差异的更多信息)。

如果你想覆盖翻译组件,你可以利用依赖注入的优势。如果 Symfony2 框架使用翻译,它使用翻译服务之一。因此,如果您需要覆盖任何您想要的内容,请编辑翻译服务。您可以在 中找到所有翻译服务和参数vendor/symfony/src/symfony/bundle/frameworkbundle/resources/config/translation.xml

您可以看到 Symfony 将他们用作服务的每个类都存储为参数,您只需将参数更改为您想要的类名,您就可以准备好了!

例如,我们想要覆盖Translator. 我们可以生成一个Acme\DemoBundle\Translation\Translator至少扩展的类Symfony\Component\Translation\TranslatorInterface并将其添加到我们的服务配置中:

parameters:
    translator.class: Acme\Demobundle\Translation\Translator
于 2013-01-04T22:29:02.330 回答