|
1. 入口文件---- 1.1 位置 :public/index.php;
1.2 任务 :定义常量,加载引导文件; 记住了 别在这放任何的业务逻辑
2. 引导文件----
2.1 位置 : thinkphp/start.php ;
2.2 执行 : 1、加载常量;2、加载环境变量;3、注册自动加载;4、注册错误与异常;5、加载惯例配置;6、执行应用;
3. 注册自动加载----
3.1 类方法:Loader::register();
3.2 作用:将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载;
3.3 执行流程:1、注册自动加载方法:\think\Loader::autoload ;
2、注册系统命名空间;
3、加载类库映射文件;
4、注册Composer 自动加载 ;
5、注册extend扩展目录;
4. 注册错误和异常机制----
4.1 概述:执行Error::register() 注册错误和异常处理机制;
4.2 由三部分组成:
4.2.1 应用关闭方法:think\Error::appShutdown
4.2.2 错误处理方法:think\Error::appError
4.2.3 异常处理方法:think\Error::appException
5. 应用初始化----(其实上面的1、2、3、4 都算是初始化)
5.1 应用初始化的流程:加载公共配置——加载公共扩展配置——加载应用状态配置——加载别名定义——加载行为定义——加载公共函数文件(下接)
(上接)——注册应用命名空间——加载扩展函数文件——设置默认时区——加载系统语言包
6. URL访问检测----【必须是PATH_INFO格式才允许继续运行】
6.1 PATH_INFO标准格式: http://域名/index.php/模块名/控制器名/操作名/参数键值对
6.2 PATH_INFO兼容格式: http://域名/index.php?s=模块名/控制器名/操作名&参数键值对 【就我常用的那种不过这个把路径拿出来s= 了 而已】
7. 路由检测----
7.1 如果开启了url_router_on 参数,则首先进行URL 路由检测;
7.2 一单检测到匹配的路由,根据路由规则会注册到相应的URL 调度;
7.3 TP5支持的 路由规则如下:
7.3.1 路由到模块/控制器/操作; 【这是默认路由模式,如果关闭路由或者路由检测无效则执行该模式】
7.3.2 路由到外部重定向地址;
7.3.3 路由到控制器方法;
7.3.4 路由到闭包函数;
7.3.5 路由到类的方法;
8. 分发请求----
8.1 将用户请求分发到对应的路由地址,完全对应的业务逻辑并返回数据; 【我觉得 其实很难用到了已经,除非在登录状态的判断那里,否则页面都前端跳】
8.2 统一使用return 返回数据,不要用echo 直接输出;
8.3 如非必要,请不要用exit 或者 die 中断执行;
8.4 分发请求支持TP5 的五种路由方式 ;【详情瞅楼上 7.3】
9. 响应输出----
9.1 控制器正常返回的数据通常是:字符串(String)或数组(Array)格式;
9.2 统一使用return 返回数据,而不是直接输出,这样可以自动调用 Response::send() 方法将最终返回数据输出到页面或者客户端(接下)
(接上)并自动转换成 default_return_type 参数配置的格式(XML,JSON等);
10. 响应结束----
10.1 响应输出完成后,应用生命周期基本结束,可以写日志报告;
10.2 日志包括二部分:用户调试输出和系统自动生成;
10.3 日志在应用结束后,自动写入。
|
|