示例#1
0
 private function _parseTemplatePath($path)
 {
     $suffix = AXION_CONFIG::GET('axion.view.templatesuffix');
     $path = explode('_', $path);
     $file = array_pop($path);
     $path = implode(DS, $path);
     $templatePath = strtolower($path . DS . $file . '.' . $suffix);
     return $templatePath;
 }
示例#2
0
 public static function getInstance()
 {
     static $_handler = array();
     $dispacherName = AXION_CONFIG::GET('axion.dispatcher.class');
     if (!empty($_handler[$dispacherName])) {
         return $_handler[$dispacherName];
     } else {
         $dispacherInstance = self::factory($dispacherName);
         $_handler[$dispacherName] = $dispacherInstance;
         return $dispacherInstance;
     }
 }
示例#3
0
 /**
  * 载入可以缓存加载的文件
  *
  */
 private static function _loadCachedClass()
 {
     if (AXION_CONFIG::GET('axion.debug.level') > 0) {
         return;
     }
     if (!IS_CLI) {
         $prefix = $_SERVER['HTTP_HOST'] ? $_SERVER['HTTP_HOST'] : '';
     } else {
         $prefix = join('_', $_SERVER['argv']);
     }
     $url = $prefix . $_SERVER['PHP_SELF'];
     $urlHash = md5($url);
     $cacheFile = TEMP_PATH . DS . 'axion_' . md5(APPLICATION_PATH) . DS . 'codecache' . DS . $urlHash . '.php';
     self::$load_cache_file = $cacheFile;
     if (file_exists($cacheFile)) {
         $codeFile = unserialize(file_get_contents($cacheFile));
         self::$loaded_class = $codeFile;
         foreach ($codeFile as $v) {
             self::_load($v);
         }
     }
 }
示例#4
0
 /**
  * 构造函数
  *
  * 初始化应用程序
  */
 public function __construct()
 {
     /**
      * 计算应用程序的唯一ID
      */
     self::$uniqueId = md5(APPLICATION_PATH);
     /**
      * 定义应用程序程序所需的临时文件目录常量
      */
     define('DATA_CACHE_PATH', TEMP_PATH . DS . 'axion_' . self::$uniqueId . DS . 'datacache');
     define('DB_CACHE_PATH', TEMP_PATH . DS . 'axion_' . self::$uniqueId . DS . 'dbcache');
     define('CODE_CACHE_PATH', TEMP_PATH . DS . 'axion_' . self::$uniqueId . DS . 'codecache');
     /**
      * 定义应用程序各个库路径常量
      */
     define('APP_LIB_PATH', APPLICATION_PATH . DS . 'lib');
     define('APP_CONFIG_PATH', APPLICATION_PATH . DS . 'config');
     define('APP_CONTROLLER_PATH', APP_LIB_PATH . DS . 'controller');
     define('APP_MODEL_PATH', APP_LIB_PATH . DS . 'model');
     define('APP_TEMPLATE_PATH', APP_LIB_PATH . DS . 'template');
     /**
      * 加载应用程序配置文件
      */
     $userConfigFile = APP_CONFIG_PATH . DS . 'config.xml';
     if (file_exists($userConfigFile)) {
         AXION_CONFIG::loadConfigFile($userConfigFile, 'axion', true);
     }
     /**
      * 设置应用程序自动加载目录
      */
     Axion::addIncludePath(APP_LIB_PATH);
     //应用程序程序库目录
     Axion::addIncludePath(APP_CONTROLLER_PATH);
     //控制器目录
     Axion::addIncludePath(APP_MODEL_PATH);
     //模型目录
     /**
      * 注册默认错误处理函数
      */
     $debugLevel = AXION_CONFIG::GET('axion.debug.level');
     switch ($debugLevel) {
         case 1:
             $level = E_ALL;
             /**
              * 确保无法被错误函数捕捉的错误可以打印
              */
             ini_set('display_errors', 1);
             break;
         case 0:
             $level = E_ERROR | E_PARSE;
             /**
              * 部署模式关闭错误信息
              */
             ini_set('display_errors', 0);
             break;
     }
     /**
      * 设置程序错误提示开关
      */
     error_reporting($level);
     set_error_handler(array($this, 'errorHandler'), $level);
     /**
      * 注册程序结束清理函数
      */
     register_shutdown_function(array($this, 'shutdownHandler'));
     /**
      * 注册默认异常处理函数
      */
     set_exception_handler(array($this, 'exceptionHandler'));
     /**
      * 创建应用程序所需的临时文件目录
      */
     $serverInitDone = true;
     if (!file_exists(APPLICATION_PATH . DS . 'serverInit.done')) {
         $tmpDirs = array('data_cache' => DATA_CACHE_PATH, 'db_cache' => DB_CACHE_PATH, 'view_cache' => VIEW_CACHE_PATH, 'code_cache' => CODE_CACHE_PATH);
         foreach ($tmpDirs as $v) {
             if (!is_dir($v)) {
                 AXION_UTIL_FILE::mkdir($v, 0755);
             }
         }
         $serverInitDone = false;
     }
     define('IS_SERVER_INIT_DONE', $serverInitDone);
     /**
      * 开启SESSION支持
      */
     session_start();
     //@todo 暂时开启默认SESSION支持,回头需要改为自定义版本
     /**
      * 设置时区
      */
     date_default_timezone_set(AXION_CONFIG::get('axion.misc.timezone'));
 }