_adapter = $adapter; return $this; } /** * Adapter type to use * * @return string */ public function getAdapter() { return $this->_adapter; } /** * Set the adapter params * * @param array $params * @return Zend_Application_Resource_Db */ public function setParams(array $params) { $this->_params = $params; return $this; } /** * Adapter parameters * * @return array */ public function getParams() { return $this->_params; } /** * Set whether to use this as default table adapter * * @param bool $isDefaultTableAdapter * @return Zend_Application_Resource_Db */ public function setIsDefaultTableAdapter($isDefaultTableAdapter) { $this->_isDefaultTableAdapter = $isDefaultTableAdapter; return $this; } /** * Is this adapter the default table adapter? * * @return bool */ public function isDefaultTableAdapter() { return $this->_isDefaultTableAdapter; } /** * Retrieve initialized DB connection * * @return null|Zend_Db_Adapter_Abstract */ public function getDbAdapter() { if ((null === $this->_db) && (null !== ($adapter = $this->getAdapter())) ) { $this->_db = Zend_Db::factory($adapter, $this->getParams()); if ($this->_db instanceof Zend_Db_Adapter_Abstract && $this->isDefaultTableAdapter() ) { Zend_Db_Table::setDefaultAdapter($this->_db); } } return $this->_db; } /** * Defined by Zend_Application_Resource_Resource * * @return Zend_Db_Adapter_Abstract|null */ public function init() { if (null !== ($db = $this->getDbAdapter())) { return $db; } return null; } /** * Set the default metadata cache * * @param string|Zend_Cache_Core $cache * @return Zend_Application_Resource_Db */ public function setDefaultMetadataCache($cache) { $metadataCache = null; if (is_string($cache)) { $bootstrap = $this->getBootstrap(); if ($bootstrap instanceof Zend_Application_Bootstrap_ResourceBootstrapper && $bootstrap->hasPluginResource('CacheManager') ) { $cacheManager = $bootstrap->bootstrap('CacheManager') ->getResource('CacheManager'); if (null !== $cacheManager && $cacheManager->hasCache($cache)) { $metadataCache = $cacheManager->getCache($cache); } } } else if ($cache instanceof Zend_Cache_Core) { $metadataCache = $cache; } if ($metadataCache instanceof Zend_Cache_Core) { Zend_Db_Table::setDefaultMetadataCache($metadataCache); } return $this; } }