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

laravel服务容器实现原理

什么是服务容器

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

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

零配置解决方案

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

绑定

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

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

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

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

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

主要利用了 闭包反射

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

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

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

参考文章:

laravel 10 中文文档

Laravel 服务容器实现原理

laravel框架的特点

  • 简洁优雅:Laravel提供了清晰、简洁的语法和代码结构,使开发变得更加优雅和易于理解。

  • MVC架构:Laravel采用了MVC(Model-View-Controller)架构,将应用程序的不同层进行了清晰的分离,提高了代码的可维护性和可扩展性。

  • 强大的路由系统:Laravel的路由系统非常灵活,可以轻松地定义URL路由和重定向,使开发者能够更好地管理应用程序的URL结构。

  • 数据库迁移:Laravel提供了数据库迁移工具,可以轻松地管理数据库结构的变更,方便团队协作和版本控制。

  • ORM支持:Laravel集成了Eloquent ORM,提供了简洁、强大的数据库操作接口,使开发者能够更加高效地进行数据库操作。

  • 强大的模板引擎:Laravel使用Blade模板引擎,提供了丰富的模板语法和功能,使开发者能够更好地组织和渲染视图。

  • 丰富的扩展包:Laravel拥有一个活跃的社区,提供了大量的扩展包,可以轻松地集成各种功能和第三方服务。

  • 测试支持:Laravel内置了强大的测试工具,可以轻松地编写和运行各种单元测试和功能测试,保证应用程序的质量。

php框架怎么选

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

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

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

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

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

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • yaf tp ThinkPHP的优缺点如下:1、高级模型:可以轻松支持序列化字段、文本字段、只读字段、延迟写入、乐...
    小黑胖_阅读 5,110评论 0 1
  • 一、框架概述 课程概述 laravel 4天(之前TP框架还是很大的区别)(国外框架) 在线教育平台 6天(lar...
    我爱开发阅读 5,283评论 0 5
  • PHP被广泛应用于重大的项目。例如Facebook就是使用PHP来维护和创建它们的内部系统的。WordPress使...
    it阿布阅读 2,166评论 0 0
  • 在不用缓存、集群之类东东只情况下,PHP框架哪家强?我指的是高并发高负载,并且适合做大型项目的。 高负载不是一个语...
    IM魂影阅读 5,946评论 3 2
  • 一、框架概述 1、什么是框架? 框架是许多代码的集合,为项目开发提供了很多基础性的代码。例如常见的参数过滤,DB类...
    神经波阅读 10,550评论 0 3