protected static function select($a) { self::init(); if ($a === 'write') { if (self::$_writeConnected && self::$_last === 'write') { return; } foreach (self::$_mcs as $i => $c) { R::selectDatabase("write:{$i}"); if (R::testConnection()) { R::freeze(true); self::$_writeConnected = true; self::$_last = 'write'; return; } } throw new \Exception('Master DB have down'); } if ($a === 'read') { if (self::$_readConnected && self::$_last === 'read') { return; } foreach (self::$_scs as $i => $c) { R::selectDatabase("read:{$i}"); if (R::testConnection()) { R::freeze(true); self::$_readConnected = true; self::$_last = 'read'; return; } } throw new \Exception('Slave and master DB have down'); } }
function connect() { $config = \configuration\load(); if (empty($config['dsn']) || empty($config['user']) || empty($config['password'])) { die("Please check the configuration\\database.php file"); } R::addDatabase('db', $config['dsn'], $config['user'], $config['password'], $config['frozen']); R::selectDatabase('db'); }
/** * @param $name * @return mixed */ public function setDb($name) { $this->options = $this->db[$name]; R::setAutoResolve(TRUE); R::selectDatabase($name); R::ext('xdispense', function ($type) { return R::getRedBean()->dispense($type); }); if ($this->cache) { R::useWriterCache(true); R::freeze(TRUE); } return $name; }