老莫的笔记本  
  
查看: 865|回复: 0

TP5 生命周期

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-7-29 11:11:11 | 显示全部楼层 |阅读模式
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  日志在应用结束后,自动写入。









回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表