tp5生命周期

tp5生命周期:

  入口文件-》引导文件-》注册自动加载-》

  注册错误和异常机制-》应用初始化-》url访问检测-》

  路由检测-》分发请求-》响应输出-》应用结束

入口文件:

  文件名:index.php

  位置:public/index.php;

  用户通过入口文件,发送服务请求,是整个应用的入口和起点

  任务:定义常量,加载引导文件,不要放任何业务处理代码

  代码:define('APP_PATH'.__DIR__.'/../application/');

      require __DIR__.'/../thinkphp/start.php';

引导文件:

  文件名:start.php;

  位置:thinkphp/start.php;

  执行:加载常亮->加载环境变量->注册自动加载->注册错误与异常->加载惯例配置->执行应用

注册自动加载:

  类方法:Loader::register();

  作用:将所有符合规范的类库自动加载

  执行流程:注册自动加载方法->注册系统命名空间->加载类库映射文件->注册composer自动加载->注册extend扩展目录

注册错误和异常机制:

  执行Error::register()注册错误和异常处理机制

  应用关闭方法:think\Error::appShutdown

  错误处理方法:think\Error::appError

  异常处理方法:think\Error::appException

应用初始化:

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

URL访问监测:

  URL必须是PATH_INFO格式踩允许进行运行。

  PATH_INFO标准格式:

  http://域名/index.php/(模块名)index/(控制器)user/(方法名)add/id/10/name/jack(参数键值对)

  PATH_INFO兼容格式:

  http://域名/index.php?s=/模块名/控制器名/方法名&参数键值对

路由检测:

  路由规则:

  路由到模块/控制器/方法(默认模式)

  路由到外部重定向地址

  路由到控制器方法

  路由到闭包函数

  路由到类的方法

分发请求:

  将用户的请求分发到对应的路由地址,完成应用的业务逻辑并返回数据

  统一使用return返回数据,不用echo直接输出、

  如果非必要不要用exit或者die中断

  分发请求的五种路由地址模式:

    路由到模块/控制器/方法(默认模式)

    路由到外部重定向地址

    路由到控制器方法

    路由到闭包函数

    路由到类的方法

响应输出:

  控制器正常返回的数据通常是String或者、Array的格式

  统一使用return返回数据,不是直接输出,这样可以自动调用Response::send()方法将最终的返回数据输出到页面或者客户端。并自动转换称default_return_type参数设置的格式(xml,json等)

 

posted @ 2017-11-09 11:14  Harry-  阅读(1257)  评论(0编辑  收藏  举报