Php 使用已建立的PDO连接和主/从连接

Php 使用已建立的PDO连接和主/从连接,php,pdo,doctrine-orm,Php,Pdo,Doctrine Orm,我在一个预先存在的软件中采用了条令,希望条令与遗留代码共享相同的PDO连接 我知道你可以告诉我如何使用这样一个已建立的连接: $em=EntityManager::create(['pdo'=>$pdo],$ormConfiguration); 我无法找到主/从连接的正确组合。这就是我期望的工作: $em=EntityManager::创建( [ 'wrapperClass'=>\Doctrine\DBAL\Connections\MasterSlaveConnection::class, '

我在一个预先存在的软件中采用了条令,希望条令与遗留代码共享相同的PDO连接

我知道你可以告诉我如何使用这样一个已建立的连接:

$em=EntityManager::create(['pdo'=>$pdo],$ormConfiguration);
我无法找到主/从连接的正确组合。这就是我期望的工作:

$em=EntityManager::创建(
[
'wrapperClass'=>\Doctrine\DBAL\Connections\MasterSlaveConnection::class,
'master'=>['pdo'=>$pdoMaster],
“奴隶”=>[
['pdo'=>$PDOSave]
]
],
$ORM配置
);
这将生成以下错误:

未捕获异常“条令\DBAL\DBALException”,消息为“如果没有向DriverManager::getConnection()提供PDO实例,则选项“driver”或“driverClass”是必需的。”


通读代码,似乎不支持使用主/从与条令建立的连接。但我不确定。大多数文档不会详细介绍如何使用已建立的连接。

我认为您需要使用
DriverManager::getConnection
创建连接,并在创建实体管理器时使用连接

下面是我发现的一个例子:


这将为Doctrine master/slave创建一个新的DB连接,但问题是如何使用已经建立的PDO实例$masterSlaveConn->getWrappedConnection()$masterSlaveConn->连接(“从”)
$conn = \Doctrine\DBAL\DriverManager::getConnection(array(
        'wrapperClass' => 'Doctrine\DBAL\Connections\MasterSlaveConnection',
        'driver' => 'pdo_mysql',
        'keepSlave' => true,
        'master' => array(
            'user'     => 'ideato',
            'password' => 'ideato',
            'dbname'   => 'db_ideato'
        ),
        'slaves' => array(
            array(
                'user' => 'ideato',
                'password' => 'ideato',
                'dbname' => 'db_ideato_slave'
            )
        )
    )
);

$entityManager = EntityManager::create($conn, $config);