Laravel工作原理简述
语言:PHP
等级:高级
四大部件
- router 路由:负责接收请求和发送响应,为Web应用程序提供网页和API接口。
- controller:响应来自路由器的请求,处理数据并返回对应的视图(View)或数据模型(Model);
- Model:操作和管理数据的一组类,负责从数据库和其他数据存储中检索数据,进行 CRUD 操作等;
- Views: 提供给用户的Web界面,包括HTML和CSS样式。
目录结构
app 应用核心目录
bootstrap 启动目录,用于载入配置文件,中间件等
config 配置文件目录。数据库,文件系统,cache等配置
database 数据库迁移文件以及填充文件
public 对外访问目录。index文件,静态资源等
resource 对应的视图文件以及为编译的前端资源,邮件模板,本地化语言文件
routes 路由目录。包括:web.php,api.php,console.php,changes.php。
storage 文件存储目录。缓存文件,日志,上传文件
tests 测试目录。自动化的测试脚本
Vendor 包含了应用通过composer 加载的依赖
这里只展示跟目录。具体参考:
https://laravelacademy.org/post/21960
请求原理
路由 => 中间件 => 控制器 => 模型 => 控制器 => 视图
- 路由接受请求,检测是否有中间件,如果有中间件,先进入中间件做数据处理。比如登录,日志,频次检测;
- 如果没有中间件或者中间件检测没问题后,据配置的路由规则,将请求交给控制器;
- 控制器做一些参数之类的检查,如果需要调用数据,则调用相关模型获取数据;
- 控制器将处理号的数据反馈给视图。
通常控制器做处理数据,有点臃肿和庞大,中间可以件一些Sevice层,专门封装相关业务处理。控制器只负责和调用这些封装好的对象。这样做更符合设计原则。
相关推荐