53 lines
1.6 KiB
Plaintext
53 lines
1.6 KiB
Plaintext
|
From the start Doctrine has been designed to work with multiple connections. Unless separately specified Doctrine always uses the current connection for executing the queries. The following example uses {{openConnection()}} second argument as an optional connection alias.
|
||
|
|
||
|
<code type="php">
|
||
|
// Doctrine_Manager controls all the connections
|
||
|
|
||
|
$manager = Doctrine_Manager::getInstance();
|
||
|
|
||
|
// open first connection
|
||
|
|
||
|
$conn = $manager->openConnection(new PDO('dsn','username','password'), 'connection 1');
|
||
|
</code>
|
||
|
|
||
|
For convenience {{Doctrine_Manager}} provides static method {{connection()}} which opens new connection when arguments are given to it and returns the current connection when no arguments have been speficied.
|
||
|
|
||
|
<code type="php">
|
||
|
// open first connection
|
||
|
|
||
|
$conn = Doctrine_Manager::connection(new PDO('dsn','username','password'), 'connection 1');
|
||
|
|
||
|
$conn2 = Doctrine_Manager::connection();
|
||
|
|
||
|
// $conn2 == $conn
|
||
|
</code>
|
||
|
|
||
|
The current connection is the lastly opened connection.
|
||
|
|
||
|
<code type="php">
|
||
|
// open second connection
|
||
|
|
||
|
$conn2 = $manager->openConnection(new PDO('dsn2','username2','password2'), 'connection 2');
|
||
|
|
||
|
$manager->getCurrentConnection(); // $conn2
|
||
|
</code>
|
||
|
|
||
|
You can change the current connection by calling {{setCurrentConnection()}}.
|
||
|
|
||
|
<code type="php">
|
||
|
$manager->setCurrentConnection('connection 1');
|
||
|
|
||
|
$manager->getCurrentConnection(); // $conn
|
||
|
</code>
|
||
|
|
||
|
You can iterate over the opened connection by simple passing the manager object to foreach clause. This is possible since {{Doctrine_Manager}} implements special {{IteratorAggregate}} interface.
|
||
|
|
||
|
<code type="php">
|
||
|
// iterating through connections
|
||
|
|
||
|
foreach($manager as $conn) {
|
||
|
|
||
|
}
|
||
|
</code>
|
||
|
|