您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > php

PHP有哪些框架?

时间:2022-04-11 09:43:23  来源:  作者:PHP武器库

一般我们会选择一个框架来完成我们要做的开发任务,而不是从0开始,避免重复造轮子。框架抽象了许多常用的底层逻辑,封装了许多通用又简便的方法,让我们快速高效地完成任务。

框架都有什么类型

其实我们并不是必须要使用框架,有时候使用原生php会更好,但如果你需要一个框架,那么从设计规模上有这样几个类型:

  • 微型框架
  • 全栈框架
  • 组件框架
  • 工具框架

从运行方式上,又可以分为这样几个框架:

  • 面向Web的PHP-FPM框架
  • 面向Web的PHP-CLI框架
  • 面向其他场景的PHP-CLI框架

你可能会纳闷,怎么没有“面向其他场景的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加载运行),性能问题并不是接受不了的。

Laravel,既可以在PHP-FPM中运行,也有在PHP-CLI的解决方案,实际上运行Laravel的方式太多了,很多PHP-CLI的框架都会提供运行Laravel的方案和例子。

PHP有哪些框架?

 

Yii,这是国内生态中经典的强大的框架。

Yii是一个全栈框架,实际上他算是“真·全栈框架”,他在处理Web和CLI中都有丰富的工具。

上面介绍的是几个国内比较热门的全栈框架,实际上全栈框架还有很多,这里不再一一列举,以后有的是机会。

PHP有哪些框架?

 

Lumen,是基于Laravel的一个性能极快的微型框架。

相对Laravel而言,他更精简,但同时可以通过扩展的方式,获得Laravel的所有功能。

它是一个运行在PHP-FPM环境中的微型框架,但作为一个现代框架,也有很多PHP-CLI的运行方式。

PHP有哪些框架?

 

webman,一个基于Workerman的微型框架。

webman仅提供了最核心的功能,比如路由、Session、中间件等,如果你需要更多的工具,通过组件加载即可。他是基于Workerman开发的,这意味着他只能运行在PHP-CLI环境中。但这并不是什么缺点,实际上,它Workerman的所有功能,比如自定义进程、进程守护、长链接服务器等。后面会介绍到Workerman。如果你希望找一个精悍简单的框架,webman非常合适。

PHP有哪些框架?

 

EasySwoole,一个基于Swoole的全栈框架。

EasySwoole是基于Swoole开发的一个面向Web的框架,但是就像上面提到的webman一样,它基于swoole,意味着所有那些swoole的特性它都有。并且提供了大量的工具组件,这些工具组件中有很多提供了协程支持。它不仅提供了大量的工具,还提供了丰富的文档,或许你会爱上他。

PHP有哪些框架?

 

imi,一个全栈框架,同时兼容多个运行环境(PHP-FPM、Swoole、Workerman、RoadRunner)。

imi是一个基于Swoole的框架,但新的版本并不完全依赖Swoole,就像上面讲的一样,同时兼容多个运行环境。作为一个全栈框架,他也提供了大量的工具组件,其中包括许多协程的工具。同时具备了Swoole的那些能力。目前框架也是十分活跃。

上面介绍了几个PHP-CLI的框架,这样的框架还有很多,以后有机会还会介绍。在介绍这几个项目时,你会时不时的看到Workerman、Swoole等字眼,是的下面就简单(真的很简单)介绍一下这两个框架。

PHP有哪些框架?

 

Workerman,一个开源的高性能PHP容器。

它是一个PHP-CLI的框架,是一个PHP的容器,简单地说,他可以替代PHP-FPM运行PHP代码。Workerman在最近的性能测评中非常优秀,文档和生态也非常好。不论是不是有兴趣,都应该学习接触一下。这里不做太多介绍了,它的文档非常的友好,自己去体验快乐吧。

PHP有哪些框架?

 

Swoole,一个PHP协程框架。

它是一个PHP-CLI的框架,是一个PHP的容器,简单地说,他可以替代PHP-FPM运行PHP代码。Swoole使用C扩展开发的,并且在国内也有很大的影响力。Swoole本身相对来说“比较底层”,衍生了一大批的框架。这里也不做太多介绍了,自己去探索吧。

PHP有哪些框架?

 

ReactPHP,一个PHP事件驱动的底层库。

它是一个PHP-CLI的框架,是一个PHP的容器,简单地说,他可以替代PHP-FPM运行PHP代码。这个库在国外是非常流行的,之前小编介绍过一个纯PHP开发的redis服务器,就是用它开发的。他在国内不太普及,但是也是一个很强大的项目,比如国外有一个PHP-PM,就是用它开发的,用来运行laravel等框架,来提高运行速度。

Minicli,一个微型的PHP-CLI框架。

Minicli是一个PHP的命令行的极简的框架,提供了一个简单地命令行操作,并且提供了规范的代码加载,没有更多内置功能。

CLIFramework,一个PHP-CLI的全栈框架。

与上面介绍的Minicli不同,它提供的是一套大而全的命令行应用框架:

  • 能够实现各种类型的参数格式(长选项、短选项、必填、可选、默认值)
  • 分层命令
  • 命令参数自动提示

等等。如果你需要一个健全的命令行框架,那么可以选择它。

关于工具类框架

其实小编说的工具类框架,就是解决特定场景的项目,比如后台管理框架、内容管理框架,这里就不一一列举了,遍地都是,回头或许会做个专题来介绍整理一下。

但是这里要介绍一个有趣的工具类框架,爬虫框架

 

Beanbun,是一个简单地可扩展的爬虫框架,支持分布式、守护进程,使用Guzzle来做HTTP客户端。

他是基于Workerman的,专门用来做爬虫的项目。它有以下特点:

  • 支持守护进程与普通两种模式(守护进程模式只支持 linux 服务器)
  • 默认使用 Guzzle 进行爬取
  • 支持分布式
  • 支持内存、Redis 等多种队列方式
  • 支持自定义URI过滤
  • 支持广度优先和深度优先两种爬取方式
  • 遵循 PSR-4 标准
  • 爬取网页分为多步,每步均支持自定义动作(如添加代理、修改 user-agent 等)
  • 灵活的扩展机制,可方便地为框架制作插件:自定义队列、自定义爬取方式...

Beanbun相对来说比较精简,但是也提供了很多组件解决方案,这些你都可以在它的文档中找到。

最后

以上就是本文对框架的简单介绍,除了本文提到的这些外,还有许许多多的优秀的框架,这里没提到并不是说他们不好,而是小编还没有这样的能力去了解清楚。以后有机会再介绍。



Tags:PHP   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
PHP 8.3 新特性解读
作者 | Deepak Vohra译者 | 明知山策划 | 丁晓昀本文是 PHP 8.x 系列文章的一部分。你可以通过订阅 RSS 来接收有关本系列文章的更新通知。PHP 仍然是互联网上使用最广泛的...【详细内容】
2024-03-12  Search: PHP  点击:(30)  评论:(0)  加入收藏
如何使用PHP SSH2模块执行远程Linux命令
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。下面我将为大家详细介绍一下该扩展的...【详细内容】
2024-01-26  Search: PHP  点击:(112)  评论:(0)  加入收藏
PHP+Go 开发仿简书,实战高并发高可用微服务架构
来百度APP畅享高清图片//下栽のke:chaoxingit.com/2105/PHP和Go语言结合,可以开发出高效且稳定的仿简书应用。在实现高并发和高可用微服务架构时,我们可以采用一些关键技术。首...【详细内容】
2024-01-14  Search: PHP  点击:(123)  评论:(0)  加入收藏
如何使用PHP抓取百度首页排名?方法与步骤详解
PHP是一种广泛应用于网站开发的脚本语言,具备简单、灵活、高效的特点,因此在SEO优化中也得到了广泛的应用。本文将深入解析如何使用PHP抓取百度首页排名,并介绍一些相关的内容...【详细内容】
2024-01-12  Search: PHP  点击:(85)  评论:(0)  加入收藏
2023 年,PHP 停滞不前
热心开发者分析了一波 GitHub 的数据后发现,编程语言为 PHP 的 PR 数量逐年下降。GitHut 是通过 GitHub 数据专门分析编程语言的项目。它基于各种编程语言在 GitHub 中的使用...【详细内容】
2023-12-17  Search: PHP  点击:(21)  评论:(0)  加入收藏
全方位深度剖析PHP7底层源码
PHP7是一门流行的Web编程语言,以其易学易用和广泛的应用场景而备受欢迎。本文将为您深入讲解PHP7的特性和优势,包括性能提升、语法改进和新特性等方面,帮助您了解和掌握这门灵...【详细内容】
2023-12-06  Search: PHP  点击:(187)  评论:(0)  加入收藏
PHP 8.3 正式发布!
作者 | Tim Anderson编译 | 如烟出品 | 51CTO技术栈(微信号:blog51cto)PHP 8.3 正式发布,最主要的变化是添加“类常量显式类型”、“只读属性深拷贝”,“以及对随机性功能的补充...【详细内容】
2023-11-27  Search: PHP  点击:(171)  评论:(0)  加入收藏
原来真的可以在 Next.js 中写 PHP 代码?
Next.js 14 近期发布,其中一个重大的功能点是 Server Actions 成为稳定版,因其超前和熟悉的开发方式,在社交网络上引起了一阵讨论,应该是下面这张图的内容了。图片有人说这是又...【详细内容】
2023-11-07  Search: PHP  点击:(297)  评论:(0)  加入收藏
PHP编程语言,这个老古董,还有人用吗?
近年来,随着大数据、云计算和人工智能等新兴技术的崛起,许多传统的编程语言悄然退出了舞台。而PHP(PHP Hypertext Preprocessor)作为最古老的编程语言之一,是否也在逐渐沦为过去...【详细内容】
2023-11-02  Search: PHP  点击:(235)  评论:(0)  加入收藏
通过这个技术,浏览器可以运行Node.js、Rust、Python、PHP、C++、Java代码了!
近日,WebContainers 发布重要更新,WASI(WebAssembly 系统接口)已全面集成到 WebContainers 中。这是一个重要里程碑,它扩大了可以使用浏览器执行的操作,是 Web 开发的全新范例,允许...【详细内容】
2023-10-13  Search: PHP  点击:(276)  评论:(0)  加入收藏
▌简易百科推荐
PHP 8.3 新特性解读
作者 | Deepak Vohra译者 | 明知山策划 | 丁晓昀本文是 PHP 8.x 系列文章的一部分。你可以通过订阅 RSS 来接收有关本系列文章的更新通知。PHP 仍然是互联网上使用最广泛的...【详细内容】
2024-03-12    InfoQ  Tags:PHP 8.3   点击:(30)  评论:(0)  加入收藏
如何使用PHP SSH2模块执行远程Linux命令
PHP SSH2扩展是用于在PHP程序中使用SSH(安全壳协议)的一种扩展。它允许建立加密连接和执行远程命令、上传和下载文件等操作,十分方便实用。下面我将为大家详细介绍一下该扩展的...【详细内容】
2024-01-26  开源技术小栈  微信公众号  Tags:PHP   点击:(112)  评论:(0)  加入收藏
如何使用PHP抓取百度首页排名?方法与步骤详解
PHP是一种广泛应用于网站开发的脚本语言,具备简单、灵活、高效的特点,因此在SEO优化中也得到了广泛的应用。本文将深入解析如何使用PHP抓取百度首页排名,并介绍一些相关的内容...【详细内容】
2024-01-12  ·小钟无艳遇  今日头条  Tags:php   点击:(85)  评论:(0)  加入收藏
2023 年,PHP 停滞不前
热心开发者分析了一波 GitHub 的数据后发现,编程语言为 PHP 的 PR 数量逐年下降。GitHut 是通过 GitHub 数据专门分析编程语言的项目。它基于各种编程语言在 GitHub 中的使用...【详细内容】
2023-12-17  OSC开源社区    Tags:PHP   点击:(21)  评论:(0)  加入收藏
全方位深度剖析PHP7底层源码
PHP7是一门流行的Web编程语言,以其易学易用和广泛的应用场景而备受欢迎。本文将为您深入讲解PHP7的特性和优势,包括性能提升、语法改进和新特性等方面,帮助您了解和掌握这门灵...【详细内容】
2023-12-06  笔画春秋润    Tags:PHP7   点击:(187)  评论:(0)  加入收藏
PHP 8.3 正式发布!
作者 | Tim Anderson编译 | 如烟出品 | 51CTO技术栈(微信号:blog51cto)PHP 8.3 正式发布,最主要的变化是添加“类常量显式类型”、“只读属性深拷贝”,“以及对随机性功能的补充...【详细内容】
2023-11-27    51CTO  Tags:PHP   点击:(171)  评论:(0)  加入收藏
原来真的可以在 Next.js 中写 PHP 代码?
Next.js 14 近期发布,其中一个重大的功能点是 Server Actions 成为稳定版,因其超前和熟悉的开发方式,在社交网络上引起了一阵讨论,应该是下面这张图的内容了。图片有人说这是又...【详细内容】
2023-11-07  编程界  微信公众号  Tags:PHP   点击:(297)  评论:(0)  加入收藏
PHP编程语言,这个老古董,还有人用吗?
近年来,随着大数据、云计算和人工智能等新兴技术的崛起,许多传统的编程语言悄然退出了舞台。而PHP(PHP Hypertext Preprocessor)作为最古老的编程语言之一,是否也在逐渐沦为过去...【详细内容】
2023-11-02  程序员职场故事    Tags:PHP编程   点击:(235)  评论:(0)  加入收藏
PHP如何获取前几天日期时间
在PHP中,我们经常需要获取当前日期的前几天日期时间,以便进行一些特定的计算或数据处理。本文将介绍如何使用PHP获取前几天的日期时间,并提供具体的实现示例和代码。文章地址ht...【详细内容】
2023-08-10  学无止境    Tags:PHP   点击:(387)  评论:(0)  加入收藏
PHP+Python轻松抓取网络图片资源
你是否曾经遇到过需要从网络上获取大量图片的需求?你是否曾经为手动下载图片而感到疲惫?那么,本文将为你介绍一种高效、易用的方法——利用PHP和Python编写爬虫程序,...【详细内容】
2023-05-09  俊俊的生活日记    Tags:PHP   点击:(337)  评论:(0)  加入收藏
站内最新
站内热门
站内头条