/** * 写入日志 * * @access public * * @param string $message 所要写入的日志内容 * @param string $level 日志类型. 参数:Warning, Error, Notice * @param string $logFileName 日志文件名 * * @return boolean */ public static function write($message, $level = 'Error', $logFileName = null) { //参数分析 if (!$message) { return false; } //当日志写入功能关闭时 if (Configure::get('application.log') === false) { return true; } $logFilePath = self::_getLogFilePath($logFileName); //分析日志文件存放目录 $logDir = dirname($logFilePath); if (!is_dir($logDir)) { mkdir($logDir, 0777, true); } //分析记录日志的当前页面 $moduleId = Doit::getModuleName(); $controllerId = (!$moduleId ? '' : $moduleId . '::') . Doit::getControllerName(); $actionId = Doit::getActionName(); //分析日志内容 $message = "[{$controllerId}][{$actionId}]:" . $message; return error_log(date('[Y-m-d H:i:s]') . " {$level}: {$message} IP: {$_SERVER['REMOTE_ADDR']}\n", 3, $logFilePath); }
/** * 获取生成的文件的路径 * * @access protected * * @param string $fileName 文件名 * * @return string */ protected function _getFilePath($fileName = null) { //参数分析 if (!$fileName) { $fileName = Doit::getActionName(); } $moduleName = Doit::getModuleName(); return $this->_htmlPath . (!$moduleName ? '' : $moduleName . DIRECTORY_SEPARATOR) . Doit::getControllerName() . DIRECTORY_SEPARATOR . $fileName . '.html'; }
/** * 分析视图文件名 * * @access publice * * @param string $fileName 视图文件名。注:名称中不带.php后缀。 * * @return string */ protected function _parseViewName($fileName = null) { //参数分析 if (!$fileName) { return Doit::getControllerName() . DIRECTORY_SEPARATOR . Doit::getActionName(); } $fileName = str_replace('.', '/', $fileName); if (strpos($fileName, '/') === false) { $fileName = Doit::getControllerName() . DIRECTORY_SEPARATOR . $fileName; } return $fileName; }
/** * 分析视图文件路径 * * 获取视图的路径,便于程序进行include操作。注:本方法不支持视图布局结构(layout) * * @access publice * * @param string $fileName 视图文件名。注:名称中不带.php后缀。 * * @return string */ protected function _parseViewFile($fileName = null) { //参数分析 if (!$fileName) { $viewFileName = Doit::getControllerName() . DIRECTORY_SEPARATOR . Doit::getActionName(); } else { $fileName = str_replace('.', '/', $fileName); $viewFileName = strpos($fileName, '/') === false ? Doit::getControllerName() . DIRECTORY_SEPARATOR . $fileName : $fileName; } $viewPath = $this->_viewPath . $viewFileName . VIEW_EXT; //分析视图文件是否存在 if (!is_file($viewPath)) { Controller::halt("The view File: {$viewPath} is not found!", 'Normal'); } return $viewPath; }
/** * 获取当前运行的Action的URL * * 获取当前Action的URL. 注:该网址由当前的控制器(Controller)及动作(Action)组成。注:支持参数信息 * * @access public * * @param array $params url路由其它字段。注:url的参数信息 * * @return string */ public static function getSelfUrl($params = array()) { //分析当前的路由信息 $moduleName = Doit::getModuleName(); $route = (!$moduleName ? '' : $moduleName . URL_SEGEMENTATION) . Doit::getControllerName() . URL_SEGEMENTATION . Doit::getActionName(); return self::createUrl($route, $params); }