二、执行流程
第一步:public/index.php 执行入口文件
1、定义项目路径:define('APP_PATH', __DIR__ . '/../application/');
2、加载框架引导: require __DIR__ . '/../thinkphp/start.php';
第二步:thinkphp/start.php 加载框架引导
1、引导基础文件 : require __DIR__ . '/base.php';
2、对应用进行运转: App::run()->send();
第三步:thinkphp/base.php 运行引导基础文件
1、加载系统常量(定义版本号,获取系统常量,文件信息)
2、引入loader类(thinkphp/library/think/loader.php)
3、引入环境变量
define('IS_CLI', PHP_SAPI == 'cli' ? true : false);
define('IS_WIN', strpos(PHP_OS, 'WIN') !== false);
4、注册自动记载机制(\think\Loader::register();)
5、注册异常处理机制(\think\Error::register();)
6、记载惯例配置(\think\Config::set(include THINK_PATH . 'convention' . EXT);)
第四步:App::run()->send(); 对应用进行运转
1、加载当前控制器中的 initCommon()方法
2、加载当前控制器中的 init()方法
3、设置时区
4、 routeCheck()方法加载-------路由检测
5、调用控制器中的exec方法--------用户请求处理
6、根据不同请求类型记载对应文件方法MODULE
第五步:响应输出