php框架怎么选,laravel、thinkphp、yii、ya

2023-10-05  本文已影响0人  谦业

laravel服务容器实现原理

什么是服务容器

Laravel 服务容器是一个用于管理类依赖以及实现依赖注入的强有力工具

laravel框架就是使用服务容器实现控制反转依赖注入

零配置解决方案

如果一个类没有依赖项或只依赖于其他具体类(而不是接口),则不需要指定容器如何解析该类

绑定

首先,如果你编写了一个实现接口的类,并希望在路由或类的构造函数上键入该接口的提示,则必须 告诉容器如何解析该接口。第二,如果你正在 编写一个 Laravel 包 计划与其他 Laravel 开发人员共享,那么你可能需要将包的服务绑定到容器中

什么是控制反转(LoC)和依赖注入(DI)

控制反转 就是把创建对象的控制权进行转移,由自身控制交给容器控制。

依赖注入 就是在帮容器实现在运行状态为对象提供依赖的资源

Laravel容易依赖注入的实现原理

主要利用了 闭包反射

闭包(匿名函数):
匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数

反射:PHP 5 以上版本具有完整的反射 API,添加了对类、接口、函数、方法和扩展进行反向工程的能力。 此外,反射 API 提供了方法来取出函数、类和方法中的文档注释

如果bind的是一个闭包,那么依赖注入时,调用的就是这个闭包。如果没有进行bind或bind的就是类名,那么会通过反射找到类的创建函数,生成闭包创建这个类对象。

参考文章:

laravel 10 中文文档

Laravel 服务容器实现原理

laravel框架的特点

php框架怎么选

怎么选择框架主要取决于以下几个方面:

  1. 提高工作效率
  2. 官方资料的完善程度和社区的活跃性
  3. 框架的性能
  4. 学习曲线

我认为框架最重要的作用就是降低开发成本,统一开发人员的编码风格,降低项目风险,让开发人员可以更多的专注于业务,在这方面laravel优雅的代码有很明显的优势,特别是在设计模式方面给出了非常棒的指导性规范,比如它的服务容器、服务提供者、事件系统、广播系统

第二就是官方文档的完善程度以及社区活跃度,这意味着我们的开发人员能不能快速的得快准确解决方案。比如接入pulsarnacos这些新的组件支持

第三就是框架的性能,这方面普遍的评估是:yaf > swoole > CI > tp > Yii2 > laravel

第四是上手难度,这方面 thinkphp 作为国产框架有很大的优势,并且 tp8 吸收了laravel很多的优点

综上所述,如果是小型项目,可能tp更合适,如果是大型项目,需要更多团队成员参与的那laravel更合适,如果比较注重性能,可以考虑一下 yaf

上一篇下一篇

猜你喜欢

热点阅读