PHP有哪些框架?

一般我们会选择一个框架来完成我们要做的开发任务,而不是从0开始,避免重复造轮子 。框架抽象了许多常用的底层逻辑,封装了许多通用又简便的方法,让我们快速高效地完成任务 。
框架都有什么类型其实我们并不是必须要使用框架,有时候使用原生php会更好,但如果你需要一个框架,那么从设计规模上有这样几个类型:

  • 微型框架
  • 全栈框架
  • 组件框架
  • 工具框架
从运行方式上,又可以分为这样几个框架:
  • 面向Web的PHP-FPM框架
  • 面向Web的PHP-CLI框架
  • 面向其他场景的PHP-CLI框架
【PHP有哪些框架?】你可能会纳闷,怎么没有“面向其他场景的PHP-FPM框架呢?”,哈哈,PHP-FPM就是专门用来处理Web的一个PHP解决方案,他本来就是面向Web的,也只能面向Web 。这也就是有一部分人宣扬的“PHP只能做Web”的论调,其实是“PHP-FPM只能做Web”,PHP本身还是非常灵活和强大的 。
什么是微型框架呢?一般微型框架只会处理系统的入口部分 。比如如今我们在Web开发中经常接触到的一个概念“路由”,这样的微型框架会把HTTP请求转发到一个闭包、控制器或方法中,尽可能的加快开发速度,如果有一天我们的URL要发生变化了,只要调整路由即可,不需要调整主要业务的代码位置 。再比如一个面向命令行的框架,处理好了常见的命令操作和参数,让我们只要把核心逻辑写好就可以了 。
什么是全栈框架呢?这是相对于微型框架而言的,许多框架会在微星框架的基础上加入许多功能,以试图解决各个方面的问题,比如状态存储、数据库、缓存、验证等等,这时我们就称它为全栈框架 。一个标志性的特点是,这些框架通常会内置一个ORM 。当然也不是所有的全栈框架都会内置ORM,可能会引用第三方的库 。但是他们都有一个共同的目标,就是让自身的规范标准尽可能满足所有场景 。
什么是组件框架呢?组件框架是有多个独立的库结合起来的,但这类框架仍然会提供一个代码的组织规范(代码目录的存放标准等) 。一般这些框架的组件,还可以和其他框架一起使用 。
什么是工具框架呢? 这是小编自己总结的一个概念,这类框架是为了解决某一个场景的、完整度很高、但并不能直接使用的框架,只是完成了这一场景中需要的更多的工具 。比如一个通用后台管理框架、内容管理框架、爬虫框架等,小编也会在后面介绍一些这样的项目 。这类框架通常只能用来开发某一个专门的场景 。
至于运行方式的这几个分类,其实很好理解,一般现代的用来在PHP-FPM中运行的框架,也有办法从PHP-CLI中运行,比如ThinkPHP提供了基于Swoole和Workerman的运行方式 。也有一些专门在PHP-CLI中运行的面向Web的框架,这些框架既有微型的,也有全栈的,后面我们会介绍的 。
除了Web还能有什么场景呢?其实PHP-CLI能够处理的场景很多,比如长链接(物联网、聊天),多进程(爬虫、采集、处理任务)、系统操作(数据迁移、系统监控)等等,后面会介绍到一两个PHP-CLI的框架 。
有哪些框架
PHP有哪些框架?

文章插图
 
ThinkPHP,这是国内的很流行的一个开发框架,在国内的生态非常强大,许多后台管理框架都是给予它做的 。
ThinkPHP算是一个全栈框架,但这并不代表它非常笨重,ThinkPHP是简洁实用的、注重性能的轻量级框架 。小编一直很钟爱ThinkPHP,但是他也面临所有国产开源项目的问题,贡献者太少,“伸手党”太多 。或许等国内的商业和技术环境更好的时候,或者准备面向英文生态的时候,ThinkPHP的开源运作会提升一个层次 。
ThinkPHP,既可以在PHP-FPM中运行,也内置了基于PHP-CLI的运行方式,通过使用Swoole或Workerman的方式 。
PHP有哪些框架?

文章插图
 
Laravel,这是目前最热门最流行的框架,似乎除了不好拼写以外,没什么大的问题 。
从开源运作上讲,处于非常高的层次(相对国内的开源项目来说),稳定的更新周期和技术支持,强大的社区生态,先进的编程思想,都是选择它的理由 。Laravel是一个全栈框架,但同时也是一个重量级的框架,很多人诟病它的性能,但其实小编认为这并不是什么大的问题,PHP的运行有PHP的优化方案,重量级框架的问题在于大量的文件加载,通过PHP缓存或者其他的运行方式(从PHP-CLI加载运行),性能问题并不是接受不了的 。


推荐阅读