public static function instance($name = null, array $config = array()) { if (empty($name)) { $name = '_db'; } /** 单例*/ if (Registry::has($name)) { return Registry::get($name); } if (empty($config)) { /** @var \Yaf\Config\Ini $_config */ $_config = Registry::get('config'); if (!$_config || !($tmp = $_config->get($name))) { return false; } $config = $tmp->toArray(); } if (empty($config['adapter'])) { $config['adapter'] = 'Pdo\\Mysql'; } $db = Db::factory($config); Registry::set($name, $db); return $db; }
/** * Slave MySQL Adapter * * @param string $name * @return DBAbstract */ public function slave($name = null) { if ($this->_slave) { return $this->_slave; } if (is_null($name) || empty($this->_config['slave'][$name])) { $name = array_rand($this->_config['slave']); } $params = $this->_config['slave'][$name]; $config = array('adapter' => $this->_config['adapter'], 'params' => $params); $this->_slave = Db::factory($config); $this->_mysql = $this->_slave; return $this->_slave; }
/** * Connect db from config * * @param null $name * @param array $config * @return Db\DbAbstract * @throws DBException */ public function db($name = null, array $config = array()) { if (empty($name)) { $name = $this->_db; } return Db::instance($name, $config); }