laravel架构--生命周期

1.第一件事
laravel中的所有请求入口都是public/index.php文件,index.php会载入composer生成的自动加载设置,从bootstrap/app.php脚本获取laravel应用实例,之后laravel的第一个动作就是创建服务容器实例

2.HTTP/Console内核

请求->app/Http/kernel.php中,该类定义了bootstrappers数组(数组中的类在请求被执行之前要先运行),该数组中是一些关于
错误处理、日志、监测应用环境以及其他在请求被处理前需要被执行的任务类

HTTP内核定义了在请求被处理前还需要经过:HTTP中间件,这些中间件处理HTTP会话的读写、判断应用是否处于维护模式、验证CSRF令牌等等

HTTP内核的标志方法:handle。获取Request,处理数据,返回Response.

2.2.1 服务器提供者
内核启动最重要的动作之一:为应用载入服务提供者。
1.所有的服务提供者都被配置在config/app.php类的providers数组中。
2.所有提供者的register方法被调用-->完成注册-->boot()调用
3.服务提供者负责启动框架的所有各种的组件,如:数据库、队列、验证器、路由组件等

2.2.2 分发请求
应用被启动,服务提供者被注册,Request--->交给路由器--->分发到路由或控制器,同事运行所有路由指定的中间件

3.聚焦服务提供者

应用实例被创建--->服务提供者被注册--->请求交给启动后的应用进行处理
应用默认的服务提供者存放在app/Providers目录下
AppServiceProvider是空的(默认下),这里是添加自定义启动和服务容器绑定的最佳位置

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,568评论 19 139
  • 原文链接 必备品 文档:Documentation API:API Reference 视频:Laracasts ...
    layjoy阅读 8,712评论 0 121
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,058评论 25 709
  • “那孽脉你要隐藏到什么时候?!” 幽暗空间之中,那道仿佛从黑暗中凸显出来的苍老面庞,愤怒的盯着那道白裙身影,怒声轰...
    混沌天书阅读 683评论 0 0
  • 对人的的管理(引导)talkmeetingemailchatassignby third party 对文件的管理...
    Gouwal阅读 116评论 0 0

友情链接更多精彩内容