2011-08-12 2 views
1

Zend_Db_Table을 사용자 별 데이터베이스 어댑터와 함께 사용하는 방법에 대한 매우 빠른 질문이 있습니다.Zend_Db_Table을 사용하여 여러 사용자 별 dbadapter 관리

사용자 로그인, 조회 테이블 등과 같은 모든 응용 프로그램 데이터가 포함 된 메타 테이블이있는 응용 프로그램이 있습니다. 각 클라이언트는 자신의 데이터에 대한 자체 데이터베이스를가집니다.

저는 Zend Project의 model 폴더에 meta라는 다른 폴더가 있습니다. 응용 프로그램에 사용되는 모든 Zend_Db_Tables가 여기에 저장됩니다. 클라이언트 데이터베이스와 상호 작용하는 모든 Zend_Db_Table 객체는 models 폴더에 직접 있습니다.

/application 
    | 
    |models/ 
    |- UserTable.php 
    |- AnotherTable.php 
    |- meta/ 
    |- - LookupTable1.php 
    |- - LoginTable.php 

modles 폴더에 있지만 메타 하위 폴더에 앉아 모든 Zend_Db_Table 객체로 클라이언트 데이터베이스 연결을 포함하는 사용자 dbadapter를 주입하는 가장 좋은 방법은 무엇입니까?

메타 테이블은 응용 프로그램 전체에서 액세스 할 수 있어야하므로 Zend_Registry에서 기본 어댑터를 변경하면 작동하지 않습니다.

제안 사항?

감사합니다,

그랜트

답변

1
$userTable = new Model_DbTable_Users(array('db'=>$dbadapter)); 

또 다른 방법

$userTable = new Model_DbTable_Users(); 
$userTable->setDefaultAdapter($dbadapter); 
0

당신은 어쩌면 Zend_Db_Table의 두 개의 서로 다른 서브 클래스가 있고 각각에 대해 서로 다른 DB 어댑터를 설정할 수 있습니다. 그런 다음 모델이 하위 클래스와 메타 테이블을 하위 클래스로 만듭니다.