управление многопользовательским dbadapter с помощью Zend_Db_Table - PullRequest
1 голос
/ 13 августа 2011

У меня очень быстрый вопрос о том, как использовать Zend_Db_Table с пользовательскими адаптерами баз данных.

У меня есть приложение, в котором есть мета-таблица, содержащая все данные приложения, такие как логины пользователей, таблицы поиска илайк.Каждый клиент имеет свою собственную базу данных для своих данных.

У меня в Zend Project в папке модели есть другая папка с именем meta.Все Zend_Db_Tables, которые используются для приложения, хранятся здесь.Все объекты Zend_Db_Table, которые взаимодействуют с базой данных клиентов, находятся в папке моделей напрямую.

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

Каков наилучший способ внедрения пользовательского dbadapter, который содержит соединение с базой данных клиента, во все объекты Zend_Db_Table, которые находятсяв папке modles, но не в подпапке meta?

Метатаблицы должны быть доступны во всем приложении, поэтому смена адаптера по умолчанию в Zend_Registry не сработает.

Есть предложения?

Спасибо,

Грант

Ответы [ 2 ]

1 голос
/ 13 августа 2011
$userTable = new Model_DbTable_Users(array('db'=>$dbadapter));

по-другому

$userTable = new Model_DbTable_Users();
$userTable->setDefaultAdapter($dbadapter);
0 голосов
/ 13 августа 2011

Возможно, вы можете иметь два разных подкласса Zend_Db_Table и установить разные адаптеры Db для каждого. Тогда ваши модели подкласс одного и ваши мета-таблицы, другой?

...