Thinkphp5

作者: 任人渐疏_Must | 来源:发表于2018-12-27 13:35 被阅读0次

    TP5的生命周期

        入口文件->引导文件->注册自动加载->注册错误和异常机制->应用初始化->URL访问检测->路由检测->分发请求->响应输出->应用结束
    

    入口文件

    1. 文件名:index.php
    2. 位置:public/index.php
    3. 用户通过入口文件,发起服务请求,是整个应用的入口与起点
    4. 任务:定义常量,加载引导文件,不要放任何业务处理代码
    5. 代码:
    
      //定义项目路径
    define('APP_PATH',__DIR__.'/../application/');
      //  加载框架引导文件
    require __DIR__.'/../thinkphp/start.php';
    

    引导文件

    1. 文件名:start.php;
    2. 位置:thinkphp/start.php;
    3. 执行:加载常量->加载环境变量->注册自动加载->注册错误与异常->加载惯例配置->执行应用
    

    注册自动加载

    1. 类方法:Loader::register();
    2. 作用:将所有符合规范的类库(包括Composer依赖加载的第三方类库)自动加载;
    3. 执行流程:注册自动加载方法:\think\Loader::autoload->注册系统命名空间->加载类库影射文件->注册Composer自动加载->注册extend扩展目录
    

    注册错误和异常机制

     执行Error::register()注册错误和异常处理机制。
     由三部分组成:
                 1. 应用关闭方法:think\Error::appShutdown
                 2. 错误处理方法:think\Error::appError
                 3. 异常处理方法:think\Error::appException       
    

    应用初始化

    加载公共配置->加载公共扩展配置->  加载应用状态配置->  加载别名定义->  加载行为定义->  加载公共函数文件->  注册应用命名空间->  加载扩展函数文件->  设置默认时区->  加载系统语言包  
    

    URL访问检测

    URL必须是PATH_INFO格式才允许继续运行

    路由检测

        1. 如果开启了url_route_on参数,则首进行url路由检测;
        2. 一旦检测到匹配的路由,根据路由规则会注册到相应的URL调度
        3. TP5支持的路由规则如下:
                路由到模型/控制器/操作;
                路由到外部重定向地址
                路由到控制器方法
                路由到闭包函数
                路由到类的方法
    

    分发请求

        1. 将用户请求分发到对应的路由地址,完成应用的业务逻辑并返回数据
        2. 统一使用return返回数据,不要用echo直接输出
        3.如非必要,请不要使用exit或者die中断执行
        4.分发请求支持TP5的物种路由地址模式:
                路由到模型/控制器/操作;
                路由到外部重定向地址
                路由到控制器方法
                路由到闭包函数
                路由到类的方法
    

    响应输出

        1. 控制器正常返回的数据通常是:字符串(String)或者数组(Array)格式
        2.统一使用return返回数据,而不是直接输出,这样可以自动调用Response::send()方法将最终的返回数据输出到页面或者客户端,并自动转换成default_return_type参数配置的格式(XML,JSON等)
    

    应用结束

       1. 响应输出完成后,应用生命周期基本结束,可以写日志报告啦;
       2. 日志包括二部分:用户调试输出和系统自动生成
       3. 日志在应用结束后,自动写入
    

    相关文章

      网友评论

          本文标题:Thinkphp5

          本文链接:https://www.haomeiwen.com/subject/uusyfftx.html