PHP生命周期
- 模块初始化阶段 --- php_module_startup()
- 请求初始化阶段 --- php_request_startup()
- 执行脚本阶段 --- php_execute_script()
- 请求关闭阶段 --- php_request_shutdown()
- 模块关闭阶段 --- php_module_shutdown()
Laravel 的生命周期
- Laravel 采用了单一入口模式,应用的所有请求入口都是 public/index.php 文件。
- 注册类文件自动加载器 : Laravel通过 composer 进行依赖管理,无需开发者手动导入各种类文件,而由自动加载器自行导入
- 创建服务容器:从 bootstrap/app.php 文件中取得 Laravel 应用实例 $app (服务容器)
- 创建 HTTP / Console 内核:传入的请求会被发送给 HTTP 内核或者 console 内核进行处理
- 载入服务提供者至容器:在内核引导启动的过程中最重要的动作之一就是载入服务提供者到你的应用,服务提供者负责引导启动框架的全部各种组件,例如数据库、队列、验证器以及路由组件。
- 分发请求:一旦应用完成引导和所有服务提供者都注册完成,Request 将会移交给路由进行分发。路由将分发请求给一个路由或控制器,同时运行路由指定的中间件
Yii2生命周期
1.用户向入口脚本 web/index.php 发起请求。
2.入口脚本加载应用配置并创建一个应用 实例去处理请求。
3.应用通过请求组件解析请求的 路由。
4.应用创建一个控制器实例去处理请求。
5.控制器创建一个动作实例并针对操作执行过滤器。
6.如果任何一个过滤器返回失败,则动作取消。
7.如果所有过滤器都通过,动作将被执行。
8.动作会加载一个数据模型,或许是来自数据库。
9.动作会渲染一个视图,把数据模型提供给它。
10.渲染结果返回给响应组件。
11.响应组件发送渲染结果给用户浏览器。