Example #1
0
 private static function init()
 {
     if (!self::$_inited) {
         $xsConfig = Application::getInstance()->getConfig('xs');
         require_once $xsConfig['api'];
         self::$_inited = true;
     }
 }
Example #2
0
 /**
  * 建立mongo数据库连接
  *
  * @param array $config array (
  *        'host' => '127.0.0.1',
  *        'port' => '27017',
  *        'db' => 'laoxinwen'
  *        )
  * @return \MongoDB
  */
 public static function open($config = NULL)
 {
     $appMongoConfig = Application::getInstance()->getConfig('mongo');
     if (empty($config)) {
         $config = $appMongoConfig;
     }
     // 只缓存全体app公用的config
     if ($config == $appMongoConfig && isset(MongoManager::$_db)) {
         $db = MongoManager::$_db;
     } else {
         $mongo = new \MongoClient("mongodb://{$config['host']}:{$config['port']}");
         //             $mongo = new \Mongo( "mongodb://{$config['host']}:{$config['port']}" );
         $db = $mongo->{$config}['db'];
         if ($config == $appMongoConfig) {
             MongoManager::$_db = $db;
         }
     }
     return $db;
 }
Example #3
0
 /**
  * 建立数据库链接
  *
  * @param $config array null代表用app config<br>
  *        array('host' => '127.0.0.1',
  *        'port' => '3306',
  *        'db' => 'test',
  *        'user' => 'root',
  *        'password' => '')
  * @return DataBase 数据库实例
  */
 public static function open($config = NULL)
 {
     $appDbConfig = Application::getInstance()->getConfig('db');
     if (empty($config)) {
         $config = $appDbConfig;
     }
     // 只缓存全体app公用的config
     if ($config == $appDbConfig && isset(DBManager::$_db)) {
         $db = DBManager::$_db;
     } else {
         if (class_exists('PDO')) {
             $link = new \PDO('mysql:host=' . $config['host'] . ';port=' . $config['port'] . ';dbname=' . $config['db'], $config['user'], $config['password']);
             if ($link->errorCode()) {
                 $errorInfo = $link->errorInfo();
                 exit("无法连接数据库:" . $errorInfo[2]);
             }
             DBManager::$_mode = DBManager::MODE_PDO;
             $db = new DataBase($link);
         } else {
             if (class_exists('mysqli')) {
                 $link = new \mysqli($config['host'], $config['user'], $config['password'], $config['db'], $config['port']);
                 if ($link->connect_error) {
                     exit("无法连接数据库:" . $link->connect_error);
                 }
                 DBManager::$_mode = DBManager::MODE_SQLI;
                 $db = new DataBase($link);
             } else {
                 $link = mysql_connect($config['host'] . ':' . $config['port'], $config['user'], $config['password']) or exit("无法连接数据库:" . mysql_error());
                 mysql_select_db(DB_NAME, $link) or exit("不能使用" . DB_NAME . "数据库:" . mysql_error());
                 DBManager::$_mode = DBManager::MODE_SQL;
                 $db = new DataBase($link);
             }
         }
         // utf8改为utf8mb4,以支持一些表情符
         $db->query("set names 'utf8mb4'");
         if ($config == $appDbConfig) {
             DBManager::$_db = $db;
         }
     }
     return $db;
 }
Example #4
0
 /**
  * 构造函数
  */
 public function __construct($mode = NULL)
 {
     // 获取使用模式
     if (is_null($mode)) {
         if (extension_loaded('yac')) {
             $mode = Cache::MODE_YAC;
         } else {
             if (extension_loaded('apc')) {
                 $mode = Cache::MODE_APC;
             } else {
                 if (extension_loaded('memcached')) {
                     $mode = Cache::MODE_MEMCACHED;
                 } else {
                     if (extension_loaded('memcache')) {
                         $mode = Cache::MODE_MEMCACHE;
                     } else {
                         $mode = Cache::MODE_FILE;
                     }
                 }
             }
         }
     }
     $this->_mode = $mode;
     $appConfig = Application::getInstance()->getConfig();
     switch ($mode) {
         case Cache::MODE_YAC:
             $this->_cache = new \Yac($appConfig['yac']['prefix']);
             break;
         case Cache::MODE_APC:
             break;
         case Cache::MODE_MEMCACHED:
             $this->_cache = new \Memcached();
             $this->_cache->addServer($appConfig['memcache']['host'], $appConfig['memcache']['port']);
             break;
         case Cache::MODE_MEMCACHE:
             $this->_cache = new \Memcache();
             $this->_cache->addServer($appConfig['memcache']['host'], $appConfig['memcache']['port']);
             break;
         case Cache::MODE_FILE:
             $this->_cache = new FileCache($appConfig['file_cache']['dir']);
             break;
     }
 }
Example #5
0
 /**
  * 获取security某子段config
  */
 public static function getSecurityConfig($section)
 {
     $securityConfig = Application::getInstance()->getConfig('security');
     return $securityConfig[$section];
 }