从这一个文件开始以后加载的均以类加载,请注意命名空间和所在文件的路径
APP.php的这个类所在路径:根目录\framework\App.php
直接上代码
namespace framework; class App { /** * 初始化配置 * @Author yiwanxifan */ static protected function init() { Config::init( ROOT_PATH ); Config::loadConfig( CONFIG_PATH . ‘global.php‘ ); Config::loadConfig( CONFIG_PATH . Config::get(‘ENV‘) . ‘.php‘ ); date_default_timezone_set( Config::get(‘TIMEZONE‘) ); //error display if ( Config::get(‘DEBUG‘) ) { ini_set("display_errors", 1); error_reporting( E_ALL ^ E_NOTICE ); } else { ini_set("display_errors", 0); error_reporting(0); } include_once ROOT_PATH.‘data/version.php‘; } /** * 运行框架 * @Author yiwanxifan */ static public function run() { try{ self::init(); Hook::init(ROOT_PATH); Hook::listen(‘appBegin‘); Hook::listen(‘routeParseUrl‘, array( Config::get(‘REWRITE_RULE‘), Config::get(‘REWRITE_ON‘))); //默认路由设置 if( !defined(‘APP_NAME‘) || !defined(‘CONTROLLER_NAME‘) || !defined(‘ACTION_NAME‘)){ Route::parseUrl( Config::get(‘REWRITE_RULE‘), Config::get(‘REWRITE_ON‘) ); } $controller = ‘\app\\‘. APP_NAME .‘\\‘. CONTROLLER_NAME;$action = ACTION_NAME; if( !class_exists($controller) ) { throw new \Exception("Controller ‘{$controller}‘ not found", 404); } $obj = new $controller(); if( !method_exists($obj, $action) ){ throw new \Exception("Action ‘{$controller}::{$action}()‘ not found", 404); } Hook::listen(‘actionBefore‘, array($obj, $action)); $obj ->$action(); Hook::listen(‘actionAfter‘, array($obj, $action)); } catch(\Exception $e){ Hook::listen(‘appError‘, array($e)); } Hook::listen(‘appEnd‘); } }
代码里面的Config.php和Hook.php跟App.php 在同一个目录
Config.php为配置文件
Hook.php为钩子文件(什么叫钩子文件,说白了就是在程序的运行当中调用其他钩子的一个类)