protected static function loadSlaveServers()
 {
     static $is_loaded = null;
     if ($is_loaded !== null) {
         return;
     }
     // Add here your slave(s) server(s) in this file
     if (file_exists(_PS_ROOT_DIR_ . '/config/db_slave_server.inc.php')) {
         self::$_servers = array_merge(self::$_servers, require _PS_ROOT_DIR_ . '/config/db_slave_server.inc.php');
     }
     $is_loaded = true;
 }
Exemplo n.º 2
0
 /**
  * Get Db object instance
  *
  * @param bool $master Decides whether the connection to be returned by the master server or the slave server
  * @return Db instance
  */
 public static function getInstance($master = true)
 {
     static $id = 0;
     // This MUST not be declared with the class members because some defines (like _DB_SERVER_) may not exist yet (the constructor can be called directly with params)
     if (!self::$_servers) {
         self::$_servers = array(array('server' => _DB_SERVER_, 'user' => _DB_USER_, 'password' => _DB_PASSWD_, 'database' => _DB_NAME_));
     }
     $total_servers = count(self::$_servers);
     if ($master || $total_servers == 1) {
         $id_server = 0;
     } else {
         $id++;
         $id_server = $total_servers > 2 && $id % $total_servers != 0 ? $id : 1;
     }
     if (!isset(self::$instance[$id_server])) {
         $class = Db::getClass();
         self::$instance[$id_server] = new $class(self::$_servers[$id_server]['server'], self::$_servers[$id_server]['user'], self::$_servers[$id_server]['password'], self::$_servers[$id_server]['database']);
     }
     return self::$instance[$id_server];
 }