Exemplo n.º 1
0
 /**
  * Kernel类的核心启动框架的方法
  */
 public static function start()
 {
     //加载配置信息,用户自定义的配置会覆盖系统的配置
     self::loadConf();
     //加载语言包
     self::loadLang();
     //自动加载类库
     spl_autoload_register('Kernel::autoload');
     //自动加载用户自定义的函数库
     self::loadfunc();
     //初始化session
     self::session();
     //自动的解析URL分发
     self::parseurl();
     //脚本退出注册函数
     register_shutdown_function('shutdown');
     //目录检测和自动生成,为了效率此函数仅仅执行一次
     self::mkdirs();
     //是否创建demo例子程序
     $lockfile = TEMP_PATH . 'build_demo.lock';
     if (C_DEMO && !is_file($lockfile)) {
         Demo::cdemo();
         touch($lockfile);
     }
     $con_name = self::$_controller . self::$_conf['C_NAME'];
     $act_name = self::$_controller . '_' . self::$_action . self::$_conf['A_NAME'];
     if (!class_exists($con_name)) {
         if (DEBUG) {
             die(self::$_lang['_SYS_LANG_CLASS_NOT_FIND'] . ' : ' . $con_name);
         } else {
             die(self::$_lang['_SYS_LANG_CLASS_NOT_FIND']);
         }
     }
     if (!class_exists($act_name)) {
         if (DEBUG) {
             die(self::$_lang['_SYS_LANG_CLASS_NOT_FIND'] . ' : ' . $act_name);
         } else {
             die(self::$_lang['_SYS_LANG_CLASS_NOT_FIND']);
         }
     }
     $con_obj = new $con_name();
     $act_obj = new $act_name();
     $con_obj->init();
     $act_obj->init();
     $act_obj->run();
 }