2011-01-25 4 views
1

기존 Shard 데이터베이스 시스템에서 Zend + Doctrine 성능을 연구 중입니다. 대부분의 응용 프로그램 모델은 기본 데이터베이스 (db1)에 연결되지만 일부 모델은 다른 데이터베이스 (db2, db3 등)에 동적으로 연결해야합니다.Doctrine 모델에서 db 연결 전환하기

다른 데이터베이스에 연결하는 모델 중에서는 쉬운 방법이 필요합니다. 스위치 연결. Doctrine_Record에 새로운 연결 인스턴스를 제공하기 위해 재정의 할 수있는 메소드가 있습니까?

답변

2

필요가 없습니다 아무것도를 오버라이드 (override) 할 수 있습니다. 당신은 간단한 당신이 (, 기본적으로, 당신은이, 지금은 다른 이름으로 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