欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

PHP有哪些框架?

时间:2022-11-03 07:27:02 | 浏览:19

一般我们会选择一个框架来完成我们要做的开发任务,而不是从0开始,避免重复造轮子。框架抽象了许多常用的底层逻辑,封装了许多通用又简便的方法,让我们快速高效地完成任务。框架都有什么类型其实我们并不是必须要使用框架,有时候使用原生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的框架。

有哪些框架

ThinkPHP,这是国内的很流行的一个开发框架,在国内的生态非常强大,许多后台管理框架都是给予它做的。

ThinkPHP算是一个全栈框架,但这并不代表它非常笨重,ThinkPHP是简洁实用的、注重性能的轻量级框架。小编一直很钟爱ThinkPHP,但是他也面临所有国产开源项目的问题,贡献者太少,“伸手党”太多。或许等国内的商业和技术环境更好的时候,或者准备面向英文生态的时候,ThinkPHP的开源运作会提升一个层次。

ThinkPHP,既可以在PHP-FPM中运行,也内置了基于PHP-CLI的运行方式,通过使用Swoole或Workerman的方式。

Laravel,这是目前最热门最流行的框架,似乎除了不好拼写以外,没什么大的问题。

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

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代码。这个库在国外是非常流行的,之前小编介绍过一个纯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相对来说比较精简,但是也提供了很多组件解决方案,这些你都可以在它的文档中找到。

最后

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

相关资讯

PHP学习Thinkphp框架(1)——关于Thinkphp结构目录和数据库操作

Thinkphp:=> 简介:是由上海顶想公司开发的一款,PHP写成的,开源的MVC框架;官网:http://www.thinkphp.cn下载:https://github.com/top-think/framework 环境要求:

国产PHP框架ThinkPHP与SpeedPHP的浅析对比

本文主要简析两个国产的PHP框架ThinkPHP与SpeedPHP。通过学习发现,它俩在很多方面有着相似但又不同的地方:1.单一入口,二者都是单一入口文件。每个app都需要一个入口文件,且只能有一个入口文件。ThinkPHP生而就有多app

《PHP》什么是PHP框架,为什么要用PHP框架

PHP框架是什么?PHP框架提供了一个用以构建web应用的基本框架,从而简化了用PHP编写web应用程序的流程。这样不但节省开发时间,有助于建立更稳定的应用,而且减少了重复编码的开发。框架还可以帮助初学者建立更稳定的应用服务,这可以让你花更

「PHP发展史」PHP5.2到PHP5.6中新增的功能详解

截至目前(2014.2), PHP 的最新稳定版本是 PHP5.5, 但有差不多一半的用户仍在使用已经不在维护的 PHP5.2, 其余的一半用户在使用 PHP5.3。因为 PHP 那“集百家之长”的蛋疼语法,加上社区氛围不好,很多人对新版本

PHP开发者的福音,解读PHP异步通信框架Swoole的机制

在中国互联网行业膨胀的12-16年,PHP语言凭借自身易上手,开发周期短的优势,深受各中小企业的喜爱。小编也很荣幸在2009年底进入这一行业,为自己谋生分得一杯羹。但是PHP又先天有它的局限性,导致客户很多需求无法得到满足。大家都知道,P

ZWebPHP基于API的简易PHP开发框架

ZWebPHP 框架设计目的:标准化、体验统一、简单可靠、易于扩展后端PHP框架基于PHP、smarty 构建。基于composer自动加载。完全基于API接口设计,API文档自动生成。权限包含菜单访问权限和API接口访问权限。工具类、数据

PHP组件及框架推荐系列:PHP世界中最好的日志组件——Monolog

这也许,不,就是PHP世界中最好的日志组件—— Monolog所有的 PHPer,请站在巨人的肩膀上。随着 Composer 的普及,PHP 组件化开发思想越来越深入人心,我们没有必要重新自己打造轮子,只要确定需求和目标,设计好软件的架构,

「php框架教程」给PHP初学的你10个最常用的函数

PHP的功能越来越强大,里面有着非常丰富的内置函数。资深的PHP程序员对它们可能都很熟悉,但很多的PHP学习者,仍然对一些非常有用的函数不太熟悉。这篇文章里,我们就列举10个你或许不了解但实用的PHP函数,供大家参考和学习。1. php_c

纯PHP开发的高性能PHPsocket服务器框架

Workerman是一款纯PHP开发的开源高性能的PHP socket 服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。 支持TCP长连接,支持W

PHP框架开发-如何拥有自己的PHP框架

框架是帮助初学者创建稳定的程序。使得你可以花更多的时间去创造真正的Web程序,而不是编写重复性的代码。框架第一阶段什么是框架?一直以来php框架被广泛利用,多半都是基本mvc架构模式的,国内外框架有HDPHP框架、ThinkPHP、CI框架

可持续更新的PHP框架---是时候有自己的PHP框架了

怎样搭建自己一个PHP框架?PHP写了5年,不想用其他框架,想自己搭建一套mvc oop的框架 可以用别人一些类库,但核心orm 之类希望自己写。这是最近遇到了别人的一个问题,5年时间的PHP资深程序是可以独立开发出自己框架。小编今天带来H

PHP应用中比较好的php框架

PHP的框架很多,有phalcon,kohana ,laravel,Yii,thinkPHP,ROR,HD,,CI,和ROR等,我觉得PHP框架其实本身就是一个工具而已,没有好与不好,只有合不合适。任何东西都没有最好,只是不同的取舍。有人说

PHP框架之ThinkPHP框架

ThinkPHP框架人们习惯性又叫它TP框架,是一个轻量级的国产PHP开发框架,快速、兼容而且简单, ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、

PHP框架的发展背景以及主流PHP框架横向对比

PHP框架的发展背景毫无疑问,Web框架技术在近几年已经得到了突飞猛进的发展和普及,在过去几年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于RubyonRails,以及在其他编程语言中流露出的MVC框架思想。如果你是一个PH

“PHP是最好的编程语言”这19款PHPWeb框架要知道

PHP是主要用于Web开发的服务器端的脚本语言,也用作通用编程语言。Web框架(WF)或Web应用程序框架(WAF)是一个软件框架,来支持Web应用程序的开发,包括Web服务,Web资源和Web API。Web框架能够自动化Web开发中执行

友情链接

网址导航 SEO域名抢注宝宝起名网妈妈知道币圈海澜之家股票荆州新闻头条网牛蛙养殖网澳洲进口奶粉代购中医学知识网奥地利旅游网今日宣城燕京啤酒A股票户外越野发烧友平面模特资讯桂圆龙眼网丹麦旅游网今日宝鸡上饶新闻资讯网云浮新闻头条网
PHP编程知识网-php开源建站系统、PHP程序员网站开发、php编程工具、php菜鸟教程下载、PHP网络编程教学、php网络编程、php工程师、php菜鸟教程数据库、PHP网站开发、PHP精品源码网站、php程序员入门、php零基础入门教程、php源码搭建网站流程、php从入门到精通第2版、php开发简单网站、php制作网站实例、php网站开发实例教程源代码、php中文网破解版、php中文网。
php编程知识 yoceo.cn ©2022-2028版权所有