我想使用 Symfony2 Bundle 继承特性来覆盖它的核心翻译组件。在我继续之前,我想对它有一些建议。有可能吗?
问问题
225 次
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 回答