zoukankan      html  css  js  c++  java
  • tp laravel 生命周期

    thinkphp6

    1、index.php单入口文件中,载入composer的autoload文件
    2、实例化thinkApp,获取项目基础路径
    3.加载全局的服务提供:provider文件
    4、设置容器示例以及应用对象实例,保证当前容器对象唯一
    5、从容器获取http 应用类thinkhttp;($http = (new App())->http;)
    6、执行http应用 run方法启动一个http应用 ($response = $http->run();)
    7、获取当前请求对象实例保存到容器(appRequest继承thinkRequest)
    8、执行thinkApp类的初始化方法initialize
    9、加载.env和全局初始化文件
    10、加载全局公共文件、系统助手函数、全局配置文件、全局事件定义和全局服务定义
    11、判断应用模式(调试或者部署模式)
    12、监听AppInit事件
    13.注册异常处理
    14.服务注册
    15.启动注册的服务
    16.加载全局中间件定义
    17.监听HttpRun事件
    18.执行全局中间件
    19.执行路由调度(Route类dispatch方法)
    20.如果开启路由则检查路由缓存
    21.加载路由定义
    22.监听RouteLoaded事件
    23.如果开启注解路由则检测注解路由
    24.路由检测(中间流程很复杂 略)
    25.路由调度对象think outeDispatch初始化
    26.设置当前请求的控制器和操作名
    27.注册路由中间件
    28.绑定数据模型
    29.设置路由额外参数
    30.执行数据自动验证
    31.执行路由调度子类的exec方法返回响应thinkResponse对象
    32.获取当前请求的控制器对象实例
    33.利用反射机制注册控制器中间件
    34.执行控制器方法以及前后置中间件
    35.执行当前响应对象的send方法输出($response->send();)
    36.执行HTTP应用对象的end方法善后($http->end($response);)
    37.监听HttpEnd事件
    38.执行中间件的end回调
    39.写入当前请求的日志信息
    简单方式为:创建应用App对象,在这里获取一些初始化目录;创建http应用,接着加载环境变量、助手函数文件、事件、服务配置加载;服务注册,在全局初始化完成之后执行加载所需要的服务类;创建,注册触发事件监听;定义加载执行中间件;路由解析;控制器;输出响应。

    laravel 7 生命周期

    高山仰止,景行行止,虽不能至,心向往之。
  • 相关阅读:
    WPF 之 布局(一)
    CSS 之 内层div填充margin,外层div的背景色不会覆盖该margin
    T-SQL 之 多表联合更新
    jQuery
    Joomla, Wordpress, Drupal 全面详细Pk比较-转载
    js ==与===区别(两个等号与三个等号)
    Jquery DataTables 自定义布局sdom
    Jquery DataTable
    解决Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
    firedebug调试Jquery
  • 原文地址:https://www.cnblogs.com/yudubujue/p/15233529.html
Copyright © 2011-2022 走看看