Php 使用已建立的PDO连接和主/从连接
我在一个预先存在的软件中采用了条令,希望条令与遗留代码共享相同的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, '
$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);