Beispiel #1
0
 /**
  * 构造方法
  *
  * 用于初始化运行环境,或对基本变量进行赋值
  *
  * @access public
  * @return boolean
  */
 public function __construct()
 {
     //获取默认的语言包目录的路径
     $moduleName = Doit::getModuleName();
     $this->_langPath = BASE_PATH . (!$moduleName ? 'language' : 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR . 'language') . DIRECTORY_SEPARATOR;
     return true;
 }
Beispiel #2
0
 /**
  * Widget的前函数(类方法)
  *
  * @access protected
  * @return boolean
  */
 protected function init()
 {
     //获取当前视图的目录(当视图文件的格式为PHP时)
     if (VIEW_EXT == Configure::PHP_VIEW_EXT) {
         //获取当前的模块名称
         $moduleName = Doit::getModuleName();
         //获取Widget文件目录路径
         if (!$moduleName) {
             $widgetPath = BASE_PATH . 'widgets' . DIRECTORY_SEPARATOR;
         } else {
             $widgetPath = BASE_PATH . 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR;
         }
         $this->_viewPath = $widgetPath . 'views' . DIRECTORY_SEPARATOR;
     }
     return true;
 }
 /**
  * 构造方法(函数)
  *
  * 用于初始化程序运行环境,或对基本变量进行赋值
  *
  * @access public
  * @return boolean
  */
 public function __construct()
 {
     //获取当前的模块名称
     $moduleName = Doit::getModuleName();
     //获取Widget文件目录路径
     if (!$moduleName) {
         $widgetPath = BASE_PATH . 'widgets' . DIRECTORY_SEPARATOR;
     } else {
         $widgetPath = BASE_PATH . 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR;
     }
     //设置挂件视图模板目录的路径
     $this->_viewPath = $widgetPath . 'views' . DIRECTORY_SEPARATOR;
     //设置视图编译缓存文件的默认目录路径
     $this->_compilePath = CACHE_PATH . 'views' . DIRECTORY_SEPARATOR . 'widgets' . DIRECTORY_SEPARATOR;
     return true;
 }
Beispiel #4
0
 /**
  * 写入日志
  *
  * @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);
 }
Beispiel #5
0
 /**
  * 获取生成的文件的路径
  *
  * @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';
 }
Beispiel #6
0
 /**
  * 分析视图缓存文件名
  *
  * @access protected
  *
  * @param string $cacheId 视图文件的缓存ID
  *
  * @return string
  */
 protected function _parseCacheFile($cacheId)
 {
     return CACHE_PATH . 'htmls' . DIRECTORY_SEPARATOR . (!Doit::getModuleName() ? '' : Doit::getModuleName() . DIRECTORY_SEPARATOR) . Doit::getControllerName() . DIRECTORY_SEPARATOR . md5($cacheId) . '.action.html';
 }
Beispiel #7
0
 /**
  * 自动加载自定义类文件
  *
  * @access private
  *
  * @param string $className 所需要加载的类的名称,注:不含后缀名
  * @param boolean $supportModule 是否支持模块(Module)文件的自动加载 (true:支持/false:不支持)
  *
  * @return void
  */
 private static function _loadLibrary($className, $supportModule = true)
 {
     //定义所要加载的文件是否在模块(Module)目录中。(true:在/false:不在)
     $isModule = false;
     //当支持模块(Module)文件自动加载开关开启时
     if ($supportModule) {
         //获取当前所运行的模块(Module)
         $moduleName = Doit::getModuleName();
         //获取library文件目录路径
         if (!$moduleName) {
             $libraryHomePath = BASE_PATH . 'library' . DIRECTORY_SEPARATOR;
         } else {
             $libraryHomePath = BASE_PATH . 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR . 'library' . DIRECTORY_SEPARATOR;
             //重定义所要加载的文件是否在模块(Module)目录中
             $isModule = true;
         }
     } else {
         //获取library文件目录路径
         $libraryHomePath = BASE_PATH . 'library' . DIRECTORY_SEPARATOR;
     }
     //分析library文件的实际路径
     $libraryFilePath = self::_parseFilePath($libraryHomePath, $className);
     //当library文件在library根目录中存在时
     if (!is_file($libraryFilePath)) {
         //当模块(Module)中Model目录不存在所要加载的Model文件时,对application中Model目录进行分析并加载Model文件
         if ($isModule) {
             return self::_loadLibrary($className, false);
         }
         //当所要加载的library文件不存在时
         return false;
     }
     //加载library类文件
     Doit::loadFile($libraryFilePath);
     return true;
 }
Beispiel #8
0
 /**
  * 静态加载文件
  *
  * 相当于inclue_once()。注:如果在模块的Controller文件中调用本模块的文件,可使用#_SELF_PATH代表本模块的根目录路径。
  *
  * @example
  * 例一:
  * $this->import('snoopy.php');
  *
  * 例二:
  * $this->import(BASE_PATH . 'extensions/editer/fck.php');
  *
  * 例三:加载本模块(Module)中的文件
  * $this->import('#_SELF_PATH/phpexcel/phpexcel.php');
  *
  * 例四:在模块(Module)的Controller代码中加载application的library目录里的文件:snoopy.php
  * $this->import('snoopy.php', false);
  *
  * @access public
  *
  * @param string $fileName 所要加载的文件。注:默认目录为application的子目录:library
  * @param boolean $supportModule 是否支持模块(Module)文件的加载 (true:支持/false:不支持)
  *
  * @return void
  */
 public static function import($fileName, $supportModule = true)
 {
     //参数分析
     if (!$fileName) {
         return false;
     }
     //替换当前的模块(Module)根目录的路径
     if ($supportModule) {
         $moduleName = Doit::getModuleName();
         //当调用本函数(类方法)的代码为模块(Module)文件时
         if ($moduleName) {
             $modulePath = BASE_PATH . 'modules' . DIRECTORY_SEPARATOR . $moduleName . DIRECTORY_SEPARATOR;
             $fileName = str_replace('#_SELF_PATH', $modulePath, $fileName);
         } else {
             $fileName = str_replace('#_SELF_PATH', '', $fileName);
         }
     }
     //统一路径分隔符
     $fileName = str_replace('\\', '/', $fileName);
     //当所要加载的文件具有详细的路径时
     if (strpos($fileName, '/') !== false) {
         //分析获取文件的路径
         $filePath = realpath($fileName);
     } else {
         //当支持模块开关开启时
         if (!$supportModule) {
             //分析获取文件的路径
             $filePath = realpath(BASE_PATH . 'library' . DIRECTORY_SEPARATOR . $fileName);
         } else {
             //分析获取文件的路径
             $filePath = !$moduleName ? realpath(BASE_PATH . 'library' . DIRECTORY_SEPARATOR . $fileName) : realpath($modulePath . $fileName);
         }
     }
     return Doit::loadFile($filePath);
 }