public function __construct() { $logConfig = ApiConfig::getLogConfig(); parent::__construct($logConfig['name']); parent::pushHandler(new RotatingFileHandler("{$logConfig['log_path']}/info-log"), Logger::INFO); parent::pushHandler(new RotatingFileHandler("{$logConfig['log_path']}/info-log"), Logger::ERROR); }
/** * 获取ApiClient的单例 * @return \Wx\Wxserver\Compent\ApiClient */ public static function instance() { if (empty(self::$APICLIENT)) { $swServerConfig = ApiConfig::swServerConfig(); self::$APICLIENT = new self($swServerConfig['ip'], $swServerConfig['port']); } return self::$APICLIENT; }
private function db($type) { if (!\in_array($type, array('reader', 'writer'))) { ApiServerException::throwException('获取DB的参数只能是reader和writer', ApiServerException::ERROR_CODE_RUNTIME_EXCEPTION); } /* * 首先检查对应的连接是否已经被初始化,如果被初始化了,直接返回 */ if ($type == 'reader' && !empty($this->dbReader)) { return $this->dbReader; } if ($type == 'writer' && !empty($this->dbWriter)) { return $this->dbWriter; } $dbConfig = ApiConfig::getDBConfig(); if ($type == 'reader') { if (!isset($dbConfig['read']) || !isset($dbConfig['write'])) { $this->dbReader = $this->getDb($dbConfig); return $this->dbReader; } elseif (isset($dbConfig['pool']) && $dbConfig['pool']) { $dbReaderConfig = $dbConfig['read'][\rand(0, \count($dbConfig['read'] - 1))]; $this->dbReader = new DBPoolConnection($dbReaderConfig['dns'], $dbReaderConfig['username'], $dbReaderConfig['password'], $dbReaderConfig['charset'], isset($dbReaderConfig['options']) ? $dbReaderConfig['options'] : array()); return $this->dbReader; } else { $dbReaderConfig = $dbConfig['read'][\rand(0, \count($dbConfig['read'] - 1))]; $this->dbReader = new DBConnection($dbReaderConfig['dns'], $dbReaderConfig['username'], $dbReaderConfig['password'], $dbReaderConfig['charset'], isset($dbReaderConfig['options']) ? $dbReaderConfig['options'] : array()); return $this->dbReader; } } if ($type == 'writer') { if (!isset($dbConfig['write']) || !isset($dbConfig['read'])) { $this->dbWriter = $this->getDb($dbConfig); return $this->dbWriter; } elseif (isset($dbConfig['pool']) && $dbConfig['pool']) { $this->dbWriter = new DBPoolConnection($dbConfig['write']['dns'], $dbConfig['write']['username'], $dbConfig['write']['password'], $dbConfig['write']['charset'], isset($dbConfig['write']['options']) ? $dbConfig['write']['options'] : array()); return $this->dbWriter; } else { $this->dbWriter = new DBConnection($dbConfig['write']['dns'], $dbConfig['write']['username'], $dbConfig['write']['password'], $dbConfig['write']['charset'], isset($dbConfig['write']['options']) ? $dbConfig['write']['options'] : array()); return $this->dbWriter; } } }
/** * 判断Api服务器是不是已经启动 */ public static function isRun() { $swooleServerConfig = ApiConfig::swServerConfig(); return NetUtil::checkPortUsed($swooleServerConfig['ip'], $swooleServerConfig['port']); }