2011-01-25 80 views
1

我正在研究現有分片數據庫系統上的Zend + Doctrine性能。大多數應用程序模型連接到主數據庫(db1),而有些模型需要動態連接到不同的數據庫(db2,db3等)。在Doctrine模型中切換db連接

在連接到不同數據庫的模型中,我需要一個簡單的方法爲它切換連接。 Doctrine_Record中是否有任何方法可以重寫以提供新的連接實例?

回答

2

無需重寫任何東西。你簡單,你需要(每默認情況下,你應該有一個具有同樣一個名字一個連接,現在您有n個不同名稱的連接創造儘可能多的連接。

$conn1 = Doctrine_Manager::connection('mysql://username:[email protected]/database1', 'connection1'); 
$conn2 = Doctrine_Manager::connection('mysql://username:[email protected]/database2', 'connection2'); 

不同的模型可以綁定到不同的連接我總是把他們的基本型號。

Doctrine_Manager::connection()->bindComponent('Your_Model', 'connection1'); 

或者,您可以使用連接管理器的方法

setCurrentConnection('connection1') 
+0

謝謝你解釋它。 – Kevin 2011-01-26 09:57:01