什么是微型框架呢?一样平常微型框架只会处理系统的入口部分。比如如今我们在Web开拓中常常打仗到的一个观点“路由”,这样的微型框架会把HTTP要求转发到一个闭包、掌握器或方法中,尽可能的加快开拓速率,如果有一天我们的URL要发生变革了,只要调度路由即可,不须要调度紧张业务的代码位置。再比如一个面向命令行的框架,处理好了常见的命令操作和参数,让我们只要把核心逻辑写好就可以了。
什么是全栈框架呢?这是相对付微型框架而言的,许多框架会在微星框架的根本上加入许多功能,以试图办理各个方面的问题,比如状态存储、数据库、缓存、验证等等,这时我们就称它为全栈框架。一个标志性的特点是,这些框架常日会内置一个ORM。当然也不是所有的全栈框架都会内置ORM,可能会引用第三方的库。但是他们都有一个共同的目标,便是让自身的规范标准尽可能知足所有场景。
什么是组件框架呢?组件框架是有多个独立的库结合起来的,但这类框架仍旧会供应一个代码的组织规范(代码目录的存放标准等)。一样平常这些框架的组件,还可以和其他框架一起利用。
什么是工具框架呢? 这是
至于运行办法的这几个分类,实在很好理解,一样平常当代的用来在PHP-FPM中运行的框架,也有办法从PHP-CLI中运行,比如ThinkPHP供应了基于Swoole和Workerman的运行办法。也有一些专门在PHP-CLI中运行的面向Web的框架,这些框架既有微型的,也有全栈的,后面我们会先容的。
除了Web还能有什么场景呢?实在PHP-CLI能够处理的场景很多,比如长链接(物联网、谈天),多进程(爬虫、采集、处理任务)、系统操作(数据迁移、系统监控)等等,后面会先容到一两个PHP-CLI的框架。
有哪些框架ThinkPHP,这是海内的很盛行的一个开拓框架,在海内的生态非常强大,许多后台管理框架都是给予它做的。
ThinkPHP算是一个全栈框架,但这并不代表它非常笨重,ThinkPHP是简洁实用的、看重性能的轻量级框架。
ThinkPHP,既可以在PHP-FPM中运行,也内置了基于PHP-CLI的运行办法,通过利用Swoole或Workerman的办法。
Laravel,这是目前最热门最盛行的框架,彷佛除了不好拼写以外,没什么大的问题。
从开源运作上讲,处于非常高的层次(相对海内的开源项目来说),稳定的更新周期和技能支持,强大的社区生态,前辈的编程思想,都是选择它的情由。Laravel是一个全栈框架,但同时也是一个重量级的框架,很多人诟病它的性能,但实在
Laravel,既可以在PHP-FPM中运行,也有在PHP-CLI的办理方案,实际上运行Laravel的办法太多了,很多PHP-CLI的框架都会供应运行Laravel的方案和例子。
Yii,这是海内生态中经典的强大的框架。
Yii是一个全栈框架,实际上他算是“真·全栈框架”,他在处理Web和CLI中都有丰富的工具。
上面先容的是几个海内比较热门的全栈框架,实际上全栈框架还有很多,这里不再逐一列举,往后有的是机会。
Lumen,是基于Laravel的一个性能极快的微型框架。
相对Laravel而言,他更精简,但同时可以通过扩展的办法,得到Laravel的所有功能。
它是一个运行在PHP-FPM环境中的微型框架,但作为一个当代框架,也有很多PHP-CLI的运行办法。
webman,一个基于Workerman的微型框架。
webman仅供应了最核心的功能,比如路由、Session、中间件等,如果你须要更多的工具,通过组件加载即可。他是基于Workerman开拓的,这意味着他只能运行在PHP-CLI环境中。但这并不是什么缺陷,实际上,它Workerman的所有功能,比如自定义进程、进程守护、长链接手事器等。后面会先容到Workerman。如果你希望找一个精悍大略的框架,webman非常得当。
EasySwoole,一个基于Swoole的全栈框架。
EasySwoole是基于Swoole开拓的一个面向Web的框架,但是就像上面提到的webman一样,它基于swoole,意味着所有那些swoole的特性它都有。并且供应了大量的工具组件,这些工具组件中有很多供应了协程支持。它不仅供应了大量的工具,还供应了丰富的文档,或许你会爱上他。
imi,一个全栈框架,同时兼容多个运行环境(PHP-FPM、Swoole、Workerman、RoadRunner)。
imi是一个基于Swoole的框架,但新的版本并不完备依赖Swoole,就像上面讲的一样,同时兼容多个运行环境。作为一个全栈框架,他也供应了大量的工具组件,个中包括许多协程的工具。同时具备了Swoole的那些能力。目前框架也是十分生动。
上面先容了几个PHP-CLI的框架,这样的框架还有很多,往后有机会还会先容。在先容这几个项目时,你会时时时的看到Workerman、Swoole等字眼,是的下面就大略(真的很大略)先容一下这两个框架。
Workerman,一个开源的高性能PHP容器。
它是一个PHP-CLI的框架,是一个PHP的容器,大略地说,他可以替代PHP-FPM运行PHP代码。Workerman在最近的性能测评中非常精良,文档和生态也非常好。不论是不是有兴趣,都该当学习打仗一下。这里不做太多先容了,它的文档非常的友好,自己去体验快乐吧。
Swoole,一个PHP协程框架。
它是一个PHP-CLI的框架,是一个PHP的容器,大略地说,他可以替代PHP-FPM运行PHP代码。Swoole利用C扩展开拓的,并且在海内也有很大的影响力。Swoole本身相对来说“比较底层”,衍生了一大批的框架。这里也不做太多先容了,自己去探索吧。
ReactPHP,一个PHP事宜驱动的底层库。
它是一个PHP-CLI的框架,是一个PHP的容器,大略地说,他可以替代PHP-FPM运行PHP代码。这个库在国外是非常盛行的,之前
Minicli,一个微型的PHP-CLI框架。
Minicli是一个PHP的命令行的极简的框架,供应了一个大略地命令行操作,并且供应了规范的代码加载,没有更多内置功能。
CLIFramework,一个PHP-CLI的全栈框架。
与上面先容的Minicli不同,它供应的是一套大而全的命令行运用框架:
能够实现各种类型的参数格式(长选项、短选项、必填、可选、默认值)分层命令命令参数自动提示等等。如果你须要一个健全的命令行框架,那么可以选择它。
关于工具类框架实在
但是这里要先容一个有趣的工具类框架,爬虫框架。
Beanbun,是一个大略地可扩展的爬虫框架,支持分布式、守护进程,利用Guzzle来做HTTP客户端。
他是基于Workerman的,专门用来做爬虫的项目。它有以下特点:
支持守护进程与普通两种模式(守护进程模式只支持 Linux 做事器)默认利用 Guzzle 进行爬取支持分布式支持内存、Redis 等多种行列步队办法支持自定义URI过滤支持广度优先和深度优先两种爬取办法遵照 PSR-4 标准爬取网页分为多步,每步均支持自定义动作(如添加代理、修正 user-agent 等)灵巧的扩展机制,可方便地为框架制作插件:自定义行列步队、自定义爬取办法...Beanbun相对来说比较精简,但是也供应了很多组件办理方案,这些你都可以在它的文档中找到。
末了以上便是本文对框架的大略先容,除了本文提到的这些外,还有许许多多的精良的框架,这里没提到并不是说他们不好,而是小编还没有这样的能力去理解清楚。往后有机会再先容。