gpt4 book ai didi

symfony - 使用多个时自动连接特定的 DBAL 连接

转载 作者:行者123 更新时间:2023-12-01 08:23:26 27 4
gpt4 key购买 nike

我正在使用 Doctrine 2,其中我有多个 DBAL 连接。我在 ORM 中也有多个 EntityManager。

我需要能够以某种方式将特定的 DBAL 连接自动连接到其他 Symfony 3 服务中。

我可以使用 EntityManagerDecorator 自动连接任何 EntitiyManager,但不知道如何对连接执行相同操作。我能够从 EntityManager 获得连接,但我不认为这是要走的路。

最佳答案

您可以为 Doctrine 连接指定包装类,不需要代理类:

#config.yml
doctrine:
dbal:
connections:
default:
wrapper_class: AppBundle\Connections\ConnectionDefault
...
second:
wrapper_class: AppBundle\Connections\ConnectionSecond
...

连接应该扩展 Doctrine\DBAL\Connection :
<?php

namespace AppBundle\Connection;

use Doctrine\DBAL\Connection;

class ConnectionDefault extends Connection
{

}

class ConnectionSecond extends Connection
{

}

并创建服务别名:
#services.yml
services:
...
AppBundle\Connections\ConnectionDefault: '@doctrine.dbal.default_connection'
AppBundle\Connections\ConnectionSecond: '@doctrine.dbal.second_connection'

然后您可以通过键入提示将所需的连接简单地注入(inject)服务:
class MyService {
public function __construct(ConnectionDefault $connection) {...}
}

class MyOtherService {
public function __construct(ConnectionSecond $connection) {...}
}

关于symfony - 使用多个时自动连接特定的 DBAL 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235336/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com