如何在Symfony2中扩展Doctrine服务?

时间:2012-03-10 09:37:43

标签: symfony doctrine-orm

我想在Symfony2中为Doctrine服务添加一些方法。我怎样才能做到这一点?我应该扩展一些课程并将其注册为服务吗?我更希望这项服务保持“学说”的名称。

2 个答案:

答案 0 :(得分:1)

您必须扩展Symfony\Bundle\DoctrineBundle\Registry类并添加自己的方法。

然后你所要做的就是在app / config / config.yml中定义一个名为“doctrine”的服务:

// app/config/config.yml
services:
    doctrine:
        class: MyDoctrineRegistry
        arguments: [ @service_container ]

config.yml中定义的服务将在最后加载,因此它将覆盖默认值。

如果你想要更干净,你必须使用以下方法覆盖DependencyInjection / Extension中的服务:

$container->setAlias('doctrine', 'my_doctrine'); // my_doctrine is the name of you custom doctrine service

在最后一种情况下,您必须确保在核心捆绑后加载捆绑包。

答案 1 :(得分:0)

您可以为连接指定包装类,并在其中指定自定义方法。我以前使用它来扩展Doctrine的DBAL功能,它对我的​​用例非常有用。

详细信息:

https://stackoverflow.com/a/8242438/312962