EDIT:
Aşağıdaki OP'ın ilk yorum getirmedi ...
Hayır ben bir modüler DB kaynak kurma hakkında ayrıntılı olamaz. Ne i sağlanan inanıyorum teoride çalışması gerekir. O Zend_Application_Resource_Db
bir uzantısı değiştirilmiş gerekenleri emin değil im vermezse i atlatmış gibi, çünkü ben bu kaynağı kullanmak Yüklü. Birden DBS ve benzersiz bağlantı isimleri dayalı bu db bağlantıları getiriliyor sağlayan kendi özel kaynak var. Ben ancak bu :-) üzerinde ellaborate olabilir
Yani ben Zend_Db
bunun gibi bir şey görünüyor uzanan bir MyLib_Db
sınıf vardır:
class MyLib_Db extends Zend_Db
{
protected $_instance = null;
protected $_connections = array();
/**
* Standard Zend Framework unified constructor
* @param null|array An array of options that will be passed to setOptions
*/
public function __construct($options = null)
{
}
/**
* Standard Zend Framework setOptions implementation
* @param array $options and array of options from config
* @return MyLib_Db
*/
public function setOptions(array $options)
{
}
/**
* Set the class instance
* @param MyLib_Db
* @return MyLib_Db
*/
public static function setInstance($instance)
{
}
/**
* Get/create the singleton instance
* @return MyLib_Db
*/
public static function getInstance()
{
}
/**
* Get a Zend_Db adapter Instance by unique name
* Searches self::$_connections for the $name param as an array key
* @param String $name unique connection name
* @return Zend_Db_Adpater_Abstract|null
*/
public function getConnection($connectionName)
{
}
/**
* Add a connection instance to the registry
* Adds/creates an Zend_Db_Adapter instance to the connection registry with
* the string key provided by $name. If $connection is an array|Zend_Config it
* should match the format used by Zend_Db::factory as it will be passed to this
* function. If $name is null then the database name will be used.
* @param Zend_Db_Adapter_Abstract|Zend_Config|array The connection to register
* @param string|null $name A unique name for the connection
* @return MyLib_Db
*/
public function addConnection(Zend_Db_Adapter_Abstract $connection, $name = null)
{
}
/**
* Remove/Destroy the specified connection from the registry
* @param string $name the connection name to remove
* @return MyLib_Db
*/
public function removeConnection($name)
{
}
}
Yani temelde DB için benim uygulama kaynak oluşturur ve ödemeler dengesi sınıfının bir örneğini döndürür. Oluşturulması sırasında benim konfigürasyonda kurdunuz herhangi bir bağdaştırıcı oluşturur ve bir isim (o da kullanmak için bir varsayılan bayrak arar Zend_Db_Table
yanı sıra diğer bazı şeyler yapıyor gibi) ile bu sınıf örneği bunları kaydeder.
Then i either use MyLib_Db::getInstance()->getConnection($name);
or i get the MyLib_Db
instance from the bootstrap and then call getConnection
.
Şahsen ben bu şekilde yapmak için tercih app geniş veya daha esnek yeniden kullanmak için izin veren bir özel modülüne bağlı olan bir bağlantısı olan onun bağımlı değildir çünkü. Yani ben aslında sadece Doktrini kullanarak yerine Zend_Db
Ive çünkü benim Zend projelerin çoğunda bir kaç proje üzerinde bu kullandık dedi.
O :-) Umarım yardımcı olur
Aslında i modules.terms.resources.db.*
gibi config senin Modulunun bölümünde koymak gerektiğini düşünüyorum. Bu modül bootstrap yüklemek yapmak gerekir. İsterseniz Terms_Bootstrap
bir _initDb
ile kurmak manullay olabilir.
I özel bir DB yönetim sınıfını kullanın ve yerine benim kaynaklar koymak Şahsen olsa - bir tek veya birden çok bağdaştırıcı ayarı yönetir. Ardından $db
kaynaklar diziden alınan müdür olduğunu aşağıdaki assiming ...
$dbAdapter = $db->getConnection('terms');