2013-09-19 1 views
0

Мне нужно сделать интеграцию для моего приложения с помощью Wordpress. У меня есть модуль для этого. Но мне нужно использовать разные экземпляры базы данных. В моем приложении я использую «default», а в модуле Wordpress я хочу использовать экземпляр базы данных «wordpress». Как я могу это сделать? Потому что Database :: $ default = 'wordpress' в modules \ wordpress \ init.php устанавливает экземпляры для модуля и приложения.Различные экземпляры базы данных в приложении и модуле Kohana

+0

Вы можете назначить определенные группы баз данных модели с использованием свойства '$ _db_group'. Используйте его в базовой модели в своем модуле и простирайтесь от него. – AmazingDreams

ответ

0

Если вы определили два соединения с базой данных в файлах конфигурации, как это:

config/database.php (может быть в APPPATH, MODPATH и т.д.)

return array 
(
    'default' => array 
    (
     'type'  => 'mysql', 
     'connection' => array(
      'hostname' => 'localhost', 
      'username' => 'dbuser', 
      'password' => 'mypassword', 
      'persistent' => FALSE, 
      'database' => 'my_db_name', 
     ), 
     'table_prefix' => '', 
     'charset'  => 'utf8', 
    ), 
    'wordpress' => array(
     'type'  => 'mysql', 
     'connection' => array(
      'hostname' => 'localhost', 
      'username' => 'other_user', 
      'password' => 'mypassword', 
      'persistent' => FALSE, 
      'database' => 'wordpress', 
     ), 
     'table_prefix' => '', 
     'charset'  => 'utf8', 
    ), 
); 

, то вы можете обратиться к ним, как это:

// This would connect to the database defined as 'default' 
$default = Database::instance(); 

// This would connect to the database defined as 'wordpress' 
$remote = Database::instance('wordpress'); 

Если вы используете ORM модуль, вы делаете это, как это в каждом Model, которая использует базу данных WordPress:

protected String $_db_group = 'wordpress'; 

(Или, вы можете создать абстрактный класс ...

abstract class Model_WordPress extends ORM 
{ 
    protected String $_db_group = 'wordpress'; 
} 

... а потом иметь свой WordPress Model s продлить Model_WordPress вместо непосредственно от ORM. Например, class Model_WordPress_Post extends Model_WordPress ....)

 Смежные вопросы

  • Нет связанных вопросов^_^