Мне нужно сделать интеграцию для моего приложения с помощью Wordpress. У меня есть модуль для этого. Но мне нужно использовать разные экземпляры базы данных. В моем приложении я использую «default», а в модуле Wordpress я хочу использовать экземпляр базы данных «wordpress». Как я могу это сделать? Потому что Database :: $ default = 'wordpress' в modules \ wordpress \ init.php устанавливает экземпляры для модуля и приложения.Различные экземпляры базы данных в приложении и модуле Kohana
0
A
ответ
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 ...
.)
Вы можете назначить определенные группы баз данных модели с использованием свойства '$ _db_group'. Используйте его в базовой модели в своем модуле и простирайтесь от него. – AmazingDreams