/** * 初始化环境,返回action层对应类的实例 * @return class 触发到的action层对应类 */ public function init() { Vera_Autoload::init(); $router = new Vera_Router(); if (!Vera_Router::isApp()) { //如果app未开启,停止运行 exit; } set_exception_handler('Action_Error::run'); //最高级的异常捕获,统一显示为每个app自定的错误 self::$Log = new Vera_Log(); self::$Log->init(); if (Vera_Autoload::isExists('Action_Auth')) { if (!Action_Auth::run()) { Vera_Log::addNotice('auth', 'fail'); exit; } Vera_Log::addNotice('auth', 'success'); } return $router->getAction(); }
/** * 写入文件 * @param string $level 日志文件名 * @param string $log 日志内容 * @return bool 写入状态 */ private static function _writeLog($level = '', $log = '') { if (!Vera_Router::isApp()) { //检查是否为合法的App return false; } $logDir = SERVER_ROOT . 'log/' . $GLOBALS['APP_NAME']; if (!is_dir($logDir)) { mkdir($logDir); } $file = $logDir . "/" . strtolower($level) . ".log"; $fp = fopen($file, 'a'); if (!$fp) { return false; } if (flock($fp, LOCK_EX)) { fwrite($fp, $log . PHP_EOL); flock($fp, LOCK_UN); //释放锁定 } else { Vera_Log::addErr('can`t lock file!'); } fclose($fp); return true; }
function __construct() { $conf = Vera_Conf::getConf('router'); self::$routerMap = $conf['map']; self::$appMap = $conf['app']; }