0
我有3個類型的數據庫:動態連接2
認證介紹DB(固定地址和固定模式)
配置DB(固定地址和固定模式)
服務DB中(動態地址和動態模式基於每個服務)
用戶登錄並通過驗證DB驗證後。
基於在配置DB信息存儲在ZF2應用程序的所有行動涉及到要對相關服務的DB完成的服務。
ZF2是否支持這種情況?我該如何解決這個問題?
下面的代碼是我的global.php和local.php。
global.php
return array(
'db' => array(
// primary database
'driver' => 'Pdo',
'dsn' => 'mysql:host=xxx.xxx.xxx.xxx;dbname=db_authen',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
),
// other database
'adapters' => array(
'db_config' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:host=yyy.yyy.yyy.yyy;dbname=db_config',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'",
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
),
),
),
),
'service_manager' => array(
// primary database
'factories' => array(
'Zend\Db\Adapter\Adapter' => 'Zend\Db\Adapter\AdapterServiceFactory',
'navigation' => 'Zend\Navigation\Service\DefaultNavigationFactory'
),
// other database
'abstract_factories' => array(
'Zend\Db\Adapter\AdapterAbstractServiceFactory',
),
),
);
local.php
return array(
'db' => array(
// primary database
'username' => '*****',
'password' => '*****',
// other database
'adapters' => array(
'db_config' => array(
'username' => '*****',
'password' => '*****',
),
),
),
);
感謝,
http://stackoverflow.com/a/14012520/131824 –
@DavidWeinraub:我也許錯了,但我認爲,答案使用靜態聲明(服務器主機和模式是固定的)地方。 php和global.php。 – PhatHV
是的,你可能是對的:多個適配器,但仍然是靜態的。您的需求是針對服務數據庫的動態適配器,對嗎?我可能會使用從Config DB獲得的信譽手動實例化這些動態適配器。但是,至少要告訴服務經理如何創建一個適配器*工廠*(您可以傳遞動態信用)來創建適配器。 –