Inheritance Symfony2继承工作

Inheritance Symfony2继承工作,inheritance,symfony,bundle,Inheritance,Symfony,Bundle,我想使用Symfony2包继承特性覆盖其核心转换组件。在我继续之前,我想就此事提出一些建议。可以这样做吗?Symfony2有一种简单的方法可以覆盖捆绑包,但您希望覆盖翻译组件(有关捆绑包、组件和桥接的更多信息) 如果要覆盖转换组件,可以利用依赖项注入的优势。如果Symfony2框架使用翻译,它将使用其中一个翻译服务。因此,如果您需要覆盖任何您想要的内容,请编辑翻译服务。您可以在vendor/symfony/src/symfony/bundle/frameworkbundle/resources/

我想使用Symfony2包继承特性覆盖其核心转换组件。在我继续之前,我想就此事提出一些建议。可以这样做吗?

Symfony2有一种简单的方法可以覆盖捆绑包,但您希望覆盖翻译组件(有关捆绑包、组件和桥接的更多信息)

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

您可以看到Symfony将它们用作服务的每个类存储为参数,您只需将参数更改为所需的类名,就可以了

例如,我们希望覆盖
转换器
。我们可以生成一个
Acme\DemoBundle\Translation\Translator
类,该类至少扩展
Symfony\Component\Translation\Translator接口
,并将其添加到我们的服务配置中:

parameters:
    translator.class: Acme\Demobundle\Translation\Translator

你试过了吗?是的,我试过了。可能还试图继承一个供应商包。我发现它有点复杂,而且似乎不像文档中描述的那样工作。在文档的第一段中还提到“Symfony为您提供了一种非常方便的方法来覆盖捆绑包资源/目录中的控制器、模板和其他文件”。我认为这意味着只能从资源/文件夹中获取。虽然从早上开始我花了大约7个小时来继承供应商包,但没有成功。这就是我问这个问题的原因。因为翻译器是核心组件。嗨,沃特,我试着实现它。我遵循了这里所述的步骤。但是没有成功。translator.class:Acme\Demobundle\Translation\translator,必须在Translation.xml或何处设置?在我的尝试中,我将其设置为translation.xml。请澄清。@bRatesh请在
app/config/config.yml
文件中定义参数(或在捆绑包中定义并使用扩展名:)。我在这里使用了Yaml格式,如果您想要PHP或XML,只需说出来,我也会包括这些。也许在中了解更多关于Symfony2和DI的信息是个好主意