Laravel 5.6 是继 5.5 之后 Laravel 官方发布的最新版本。
在项目开发中,一些架构和代码都是重复的,为了避免重复劳动,于是各种各样的框架诞生了。
在PHP开发中,选择合适的框架有助于加快软件开发,节约宝贵的项目时间,让开发者专注于功能的实现上。由于流行的框架经过了大量项目的检验,所以使用框架还有助于创建更加稳定和安全的应用程序。本文搜集了目前全球最流行的PHP框架,欢迎大家交流学习。
1、Laravel
Laravel是一个简单优雅的PHPWeb开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单、高雅、表达式语法开发出很棒的Web应用,Laravel拥有更富有表现力的语法、高质量的文档、丰富的扩展包,被称为“巨匠级PHP开发框架”。
Laravel 5.6 是继 5.5 之后 Laravel 官方发布的最新版本。
2、Phalcon
Phalcon是一个开源的、全栈的、用C语言编写的PHP5框架,为开发者提供了网站及应用开发所需的大量高级工具,且Phalcon是松耦合的,开发者可以根据需要使用其他组件。Phalcon中的所有函数都以PHP类的方式呈现,开发者无需学习和使用C语言,且无需担心性能问题。
Phalcon框架的特点
首先总结下Phalcon框架的特点,我总结了Phalcon框架如下特点:
性能强悍。这个框架是用C语言写的,以PHP扩展的形式存在。性能没得说,基本可以满足任何需求和使用场景。鸟哥的yaf框架也是C语言写的,性能跟Phalcon不相上下。但是yaf更新慢,而且是微框架,还是不能跟phalcon相比。其他PHP框架,诸如laravel,thinkphp,yii2,就更不能跟这两个框架比了,性能完全秒杀,不在一个层面。
高度解耦。因为Phalcon是以PHP扩展的形式存在,所以框架本身天然跟项目解耦和了。框架内部,也十分注重解耦和。
面向对象和设计模式良好支持。Phalcon是乌克兰大神扎克洛夫开发的,作者的面向对象和设计模式学得非常好。你可以通过Phalcon框架来实现任何设计模式,提高各种项目的开发效率,包括时下很火的微服务。
社区成熟。devtools开发工具、多语言开发文档、示例代码和教程、多模块的开源项目,一应俱全。除了上手略难,其他都非常成熟。
3、Symfony2
Symfony2是一个开源的PHPWeb框架,有着开发速度快、性能高等特点。与其他框架相比,Symfony2的优势包括:支持DI(依赖注入)和IoC(控制反转);扩展性强;文档和社区比较成熟。但是Symfony2的学习曲线也比较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性。
Symfony2是一个基于PHP语言的Web开发框架,有着开发速度快、性能高等特点。但Symfony2的学习曲线也比较陡峭,没有经验的初学者往往需要一些练习才能掌握其特性。
本文通过一个快速开发寻人平台的实例向读者介绍Symfony2框架的一些核心功能和特点。通过阅读本文,你可以通过一些具体的例子了解Symfony2框架的优秀特性和技术特点,从而体会到使用Symfony2框架支持快速网站开发这一优势。
适合人群
本文适用于希望提高PHP语言的开发技术,或者对Symfony2框架有兴趣的读者。
本文也适用于系统架构师和各类技术决策者。
4、CodeIgniter
CodeIgniter是一个简单快速的PHPMVC框架。CodeIgniter不需要大量代码(1.6.2版本仅为2.8MB,其中的1.3MB是可以删除的用户文档),也不会要求您插入类似于PEAR的庞大的库。它在PHP4和PHP5中表现同样良好,允许您创建可移植的应用程序。最后,您不必使用模板引擎来创建视图—只需沿用旧式的HTML和PHP即可。CodeIgniter入门非常容易,而且有很全面的中文版用户开发手册,在官方网站上可以了解到更多内容。
从图中我们 看到,index.php作为唯一的入口文件,会初始化CI框架运行所需的基本资源。
路由器(Routing)会根据http请求,确定如何处理;
如果存在缓存文件(cache),会直接返回给浏览器,不用走下面的系统流程;
在加载应用程序控制器(application controller)之前,会对http请求和用户请求数据进行必要的安全检查。
控制器会加载模型,核心类库,辅助函数,需要用到的插件等请求所需要的资源。
最后一步,渲染视图(viewer)并返回给浏览器,如果开启了缓存,会将视图先缓存起来,以用于以后的请求。
5、Yii
Yii是一个基于组件的高性能PHP框架,用于开发大型Web应用。Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web2.0应用开发所需要的几乎一切功能。事实上,Yii是最有效率的PHP框架之一。Yii是一个高性能的PHP5的web应用程序开发框架。通过一个简单的命令行工具yiic可以快速创建一个web应用程序的代码框架,开发者可以在生成的代码框架基础上添加业务逻辑,以快速完成应用程序的开发。
Yii 是一个 高性能 的,适用于开发 WEB 2.0 应用的 PHP 框架。
Yii 自带了 丰富的功能,包括 MVC,DAO/ActiveRecord,I18N/L10N,缓存,身份验证和基于角色的访问控制,脚手架,测试等,可显著缩短开发时间。
2.0.15 版发布于 2018-03-20•1.1.20 版发布于 2018-07-06
快速
Yii 仅加载您需要的功能,具有强大的缓存支持,通过尽可能少的开销提供最大化的功能。
安全
Yii 的标准是安全的,健全的默认设置和内置工具可帮助您编写更加稳定和安全的代码。
专业
Yii 使用简单但功能强大的 API 和代码生成功能,让您在更短的时间内编写更多代码。
6、Aura
Aura为PHP5.4及以上版本提供独立的类库,它的代码非常干净,并且真正独立。这些包可以单独使用,也可以将它们合并到开发者自己的框架中。国内资料非常少。
如果你喜欢用简洁的代码创建应用程序,那么你可以选择使用Aura,Aura也有相当大的一部分用户,使用方法和CakePHP类似,Aura的主要目标是为PHP开发者提供一个高质量、可测试、标准化组件的框架。
7、Cakephp
CakePHP是一个运用了诸如ActiveRecord、AssociationDataMapping、FrontController和MVC等著名设计模式的快速开发框架。该项目主要目标是提供一个可以让各种层次的PHP开发人员快速地开发出健壮的Web应用,而又不失灵活性。CakePHP是一个基于PHP,免费且开源的迅速发展框架最开始从RubyOnRails框架里得到灵感。CakePHP拥有一个活跃的开发团队以及社区,使CakePHP本身更具备应有的价值。另外,使用CakePHP也意味着您的应用程序将更容易地测试以及更容易地被改良、更新。
优点
1.设计层面很优雅,没有自带多余的 library,所有的功能都是纯粹的框架,执行效率还不错;
2.数据库层的 hasOne、 hasMany 功能很强大,对于复杂业务处理比较合适,;
3.路由功能,配置功能还不错;
4.自动构建脚手架(scaffold)很强大;
5.基本实现过了MVC每一层;具有自动操作命令行脚本功能;
6.文档比较全,学习成本中等。
缺点
1.CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力;
2.CakePHP的cache功能略显薄弱,配置功能稍嫌弱;
3.CakePHP不适合大型应用,只适合中型应用,小型应用来说略微的学习成本高了点。
8、Zend
由最流行最专业的PHPIDE产品ZendStudio的开发商开发,ZendFramework(简写ZF)是开源的,主要用于Web应用程序的开发和服务,ZF采用MVC(Model–View-Controller)架构模式来分离应用程序中不同的部分方便程序的开发和维护。
ZendFramework是现有框架中最为笨重的,但功能强大,是目前PHP的官方框架。为了在学习框架的时候,更加深入地掌握框架的设计思路、设计模式及PHP开发技巧,首先对ZF框架进行深入剖析和应用。
提到框架,我们就不得不提MVC,Model(模型)->Viev(视图)->Controller(控制器),View应该是最容易理解的,可以说就是展示给用户的页面,这也是美工负责的部分。那Model和Controller具体指什么呢。在网页上,我们可以用图片拼接组成一个View,但是具体的显示内容(数据)我们是需要从后台中获取的,后台取自哪里呢,首先我们肯定想到的是数据库,就是保存在数据库里的东西,这样也就通了,Model即为数据库的数据表,也可以理解为数据池。Controller需要做的是什么呢,有了数据,有了页面,那具体在页面的什么位置显示什么信息就需要控制器来帮忙了。所以控制器也就可以理解为模型和视图之间的沟通桥梁,从Model中获取数据显示在View的相应位置,获取页面(View)用户操作信息,反馈给Model,作数据更新。
通过上面的描述,相信大家对MVC有了直观的理解,从这里,我们也理解了框架存在的意义。若不采用框架,我们通常会将数据、页面相关的代码揉合在一起,在对于小的程序或者单独个人开发时,或许不是很大的问题,但是项目较大或者需要大型团队相互合作时,这样的编写方式就存在很大的问题,并且后期维护相当困难。框架的MVC思想,将数据、页面及控制过程中分隔开,相互之间通过接口连接。这样多个模块之间除了接口有关联外,没有其他关系,便于同时分工操作及后期维护。
9、Kohana
Kohana是一款纯PHP5的框架,基于MVC模式开发,它的特点就是高安全性,轻量级代码,容易使用。
在我看来,学会使用Kohana需要理解和熟悉的主要分为四部分:1,Model View Controller;2,Cascading Filesystem;3,Request Flow;4,Routing。
10、FuelPHP
FuelPHP是一个简单的、灵活的、社区驱动的PHP5.3web框架。它的诞生源自于很多开发社区对于现有开发框架的不满,FuelPHP非常便携,几乎所有的服务器都能够很好的支持,并且简洁强大的语法也能够让你很快喜欢上它。
浏览了一下这个框架的介绍,基本上和其他主流PHP框架大同小异、包括MVC、可配置的路由(Route)、支持多模块(Modules)、支持命令行任务(Task)、数据库迁移(Migrations)等。
下面是Fuel的核心类:
Agent | 浏览器 |
Arr | 数组工具类 |
Asset | 静态资源工具类 |
Autoloader | 自动加载 |
Cache | |
Cli | |
Config | |
Cookie | |
Crypt | 加密 |
Database | |
Date | |
Debug | |
Event | 事件,有点类似js里面的event,但是feul里面的event是手动触发的 |
Fieldset | |
File | |
Form | |
Format | |
Ftp | |
Fuel | fuel框架自身的信息 |
Html | |
Image | |
Inflector | 命名转换(把hello world变成HelloWorld之类的) |
Input | |
Lang | |
Log | |
Migrate | 见上面Migrations |
Mongo_Db | |
Pagination | 分页 |
Redis | |
Request | |
Response | |
Security | 安全,主要是对CSRF的处理 |
Session | 不完全是php自带的session,feul里可以自行封装session |
Str | 字符串工具类 |
Upload | 上传 |
Uri | 创建url |
Validation | 校验 |
View |
Feul还包括几个包(package)
oil | feul自身的命令行工具,可以用于自动化生产代码、帮助测试和运行task |
auth | 认证 |
orm |
11、Slim
Slim是一款PHP微框架,可以帮助你快速编写简单但功能强大的web应用和API。
特性
强大的HTTP URL 路由
配置简单
自定义视图
支持AES-256加密cookies
HTTP缓存
可定制的日志记录
错误处理
可扩展的中间层和hook架构
错误处理和调试
12、Typo3
Typo3内容管理系统,是基于PHP4/PHP5+MYsql的内容管理系统(框架)(CMS/CMF),兼容PHP4和PHP5.数据库系统除Mysql之外,也能运行于Oracle,MS-SQL,ODBC,LDAP等其它数据库系统,支持Typo3的服务器系统:Apache或者IIS架设的服务器。
13、ThinkPHP
ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
14、Flight
Flight是一个快速、简单、可扩展的微型PHP框架,允许用户快速的构建RestfulWeb应用程序,同样易于学习和使用,简单但是很强大!
15、PHPixie
PHPixie是一个轻量级的MVCPHP框架,设计用于快速开发,易于学习,并提供一个坚实的基础开发框架。
16、Yaf
Yaf,全称YetAnotherFramework,是一个C语言编写的PHP框架,是一个以PHP扩展形式提供的PHP开发框架,相比于一般的PHP框架,它更快,更轻便.它提供了Bootstrap,路由,分发,视图,插件,是一个全功能的PHP框架。最新版本为2014-10-22发布的2.3.3。
17、Swoole
Swoole是一种PHP高级Web开发框架,框架不是为了提升网站的性能,是为了提升网站的开发效率。最少的性能损耗,换取最大的开发效率。利用Swoole框架,开发一个复杂的Web功能,可以在很短的时间内完成。
18、Nette
Nette框架可以让您更有效地工作,专注于重要的内容,并使您的代码更加可读和结构化。
19、Drupal
Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成。连续多年荣获全球最佳CMS大奖,是基于PHP语言最著名的WEB应用程序。截止2011年底,共有13,802位WEB专家参加了Drupal的开发工作;228个国家使用181种语言的729,791位网站设计工作者使用Drupal。著名案例包括:联合国、美国白宫、美国商务部、纽约时报、华纳、迪斯尼、联邦快递、索尼、美国哈佛大学、Ubuntu等。
20、Workerman
Workerman是一款纯PHP开发的开源高性能的PHPsocket服务器框架。被广泛的用于手机app、移动通讯,微信小程序,手游服务端、网络游戏、PHP聊天室、硬件通讯、智能家居、车联网、物联网等领域的开发。支持TCP长连接,支持Websocket、HTTP等协议,支持自定义协议。拥有异步Mysql、异步Redis、异步Http、异步消息队列等众多高性能组件。
21、PHPDevShell
PHPDevShell是一个开源(GNU/LGPL)的快速应用开发框架,用于开发不含Java的纯PHP。它有一个完整的GUI管理员后台界面。其主要目标在于开发插件一类的基于管理的应用,其中速度、安全、稳定性及弹性是最优先考虑的重点。其设计形成了一个简单的学习曲线,PHP开发者无需学习复杂的新术语。PHPDevShell的到来满足了开发者们对于一个轻量级但是功能完善,可以无限制的进行配置的GUI的需求。
22、Akelos
AkelosPHP框架是一个基于MVC设计模式的web应用开发平台。基于良好的使用习惯,使用它可以完成如下任务:◆方便的使用Ajax编写views;◆通过控制器管理请求(request)及响应(response);◆管理国际化的应用;◆使用简单的协议与模型及数据库通信
你的Akelos应用可以在大多数共享主机服务供应方上运行,因为Akelos对服务器唯一的要求就是支持PHP。因此,AkelosPHP框架是理想的用于发布单独web应用的框架,因为它不需要非标准PHP配置便能运行。
23、Prado
PRADO团队由一些PRADO狂热者组成,这些成员开发并推动PRADO框架以及相关项目的进行。
PRADO的灵感起源于ApacheTapestry。从04年开始,PRADO成为SourceForge上的开源项目之一。这个项目目前进展到了3.x版本。
24、ZooP
ZoopPHP框架,意为Zoop面向对象的PHP框架。这是个稳定,可伸缩并可移植的框架。从诞生到现在的5年间,已经在不少产品开发中被使用。Zoop是一个快速,有效并干净的框架。它的伸缩性很好,你可以只安装你需要的功能。对代码并不很熟悉的开发者也可以通过Zoop快速的开发安全的web应用。熟练的开发者则可以更加将Zoop的弹性利用到极致
25、QPHP
QPHP,意为快速PHP,它是一个与ASP.NET类似的MVC框架。基本上它是这样一个情况:◆整合了Java和C#的美感;◆除去了在其他PHP框架中使用的Perl形式的意义含糊的语言;◆大量基于OOP的概念
最后说一句,PHP是世界上最好的语言!
如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛