private static function init() { if (!self::$_inited) { $xsConfig = Application::getInstance()->getConfig('xs'); require_once $xsConfig['api']; self::$_inited = true; } }
/** * 建立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; }
/** * 建立数据库链接 * * @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; }
/** * 构造函数 */ 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; } }
/** * 获取security某子段config */ public static function getSecurityConfig($section) { $securityConfig = Application::getInstance()->getConfig('security'); return $securityConfig[$section]; }