php框架性能排行(使用过哪些php框架.试描述其优劣点)

:暂无数据 2026-04-05 11:00:02 0
嗨,正在屏幕前搜索php框架性能排行的你,是否也被使用过哪些php框架.试描述其优劣点的问题困扰过?今天这篇内容就是为你准备的。

本文目录

使用过哪些php框架.试描述其优劣点

1、BroPHP框架:
优点:轻量级学习型框架,配置简单,操作简单,容易上手,提供了比较全面的文档。 缺点:
2、ThinkPHP框架:
优点:功能比较全面,配置相对比较简单,操作相对比较简单,容易上手。
缺点:麻烦的URL路由,不支持模板的部分缓存,提供的操作方法太多,新手不知如何选择,文档不够全面。
3.CodeIgniter框架:
优点:
1. 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能
2. 快速简洁,代码不多,执行性能高,PHP框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用
缺点:
1. 把Model层简单的理解为数据库操作
2. PHP框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要

PHP中的各种框架

***隐藏网址***
CodeIgniter
优点:
1. 配置简单,全部的配置使用PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能
2. 快速简洁,代码不多,执行性能高,框架简单,容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用
缺点:
1. 把Model层简单的理解为数据库操作
2. 框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要
评价:
总体来说,拿CodeIgniter来完成简单快速的应用还是值得,同时能够构造一定程度的layout,便于模板的复用,数据操作层来说封装的不错,并且CodeIgniter没有使用很多太复杂的设计模式,执行性能和代码可读性上都不错。至于附加的 library 也还不错,简洁高效。
CakePHP
优点:
1. CakePHP是最类似于RoR的框架,包括设计方式,数据库操作的Active Record方式;设计层面很优雅,没有自带多余的 library,所有的功能都是纯粹的框架,执行效率还不错;数据库层的 hasOne, hasMany 功能很强大,对于复杂业务处理比较合适;路由功能,配置功能还不错;自动构建脚手架(scaffold)很强大;适合中型应用;基本实现过了MVC每一层;具有自动操作命令行脚本功能;
2. 文档比较全,在国内推广的比较成功,大部分都知道CakePHP,学习成本中等
缺点:
1. CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力
2. CakePHP的cache功能略显薄弱,配置功能稍嫌弱;CakePHP不适合大型应用,只适合中型应用,小型应用来说略微的学习成本高了点
评价:
总体来说CakePHP框架代表了PHP框架很重要的一个时代和代表,并且目前发挥着很重要的作用,不少自己写的框架都模仿了CakePHP的方式,是个里程碑式的产品;CakePHP透露着RoR的敏捷开发方式和把数据库操作认为是唯一Model的设计思想,作为开发快速应用和原型是绝好的工具;同样,用来做Web2.0网站的开发框架,也是值得选择的。
【 Zend Framework 】
优点:
1. 官方出品,自带了非常多的 library,框架本身使用了很多设计模式来编写,架构上很优雅,执行效率中等;MVC设计中,比较简洁,具有路由功能,配置文件比较强大(能够处理 XML和php INI),各种 library 很强大,是所有PHP框架中各种功能最全面的,包括它不仅是一个框架,更是一个大类库(取代PEAR),这是它的主要特色;能够直观的支持除数据库操作之外的Model层(比 CodeIgniter 和 CakePHP 强),并且能够很轻易的使用Loader功能加载其他新增加的Class;Cache功能很强大,从前端Cache到后端Cache都支持,后端 Cache支持Memcache、APC、**Lite、文件等等方式;数据库操作功能很强大,支持各种驱动(适配器)
2. 文档很全,在国内社区很成熟,并且目前不少Web 2.0网站在使用,学习成本中等
缺点:
1. MVC功能完成比较弱,View层简单实现(跟没实现一样),无法很强大的控制前端页面
2. 没有自动化脚本,创建一个应用,包括入口文件,全部必须自己手工构建,入门成本高
3. Zend Framework 作为一个中型应用框架问题不大,也能够勉强作为大型应用的框架,但是作为一个很成熟的大型PHP框架来说,还需要一些努力
评价:
作为官方出品的框架,Zend Framework的野心是可以预见的,想把其他框架挤走,同时封装很多强大的类库,能够提供一站式的框架服务,并且他们的开发团队很强大,完全足够有能力开发很强大的产品出来,所以基本可以确定的是Zend Framework前途无量,如果花费更多的时间去完善框架。同样的,Zend Framework架构本身也是比较优雅的,说明Zend官方是有很多高手的,设计理念上比较先进,虽然有一些功能实现的不够完善,比如View层,自动化脚本等等,这些都有赖于未来的升级。总体来说Zend Framework是最值得期待的框架,当然,你目前要投入你的项目中使用也是完全没问题的。
【 Symfony 】
优点:
1. Symfony 是我了解的PHP框架**能最强大的,而且我使用时间比较长,但是很多功能还是没有挖掘出来;它完整实现了MVC三层,封装了所有东西,包括 $_POST,$_GET 数据,异常处理,调试功能,数据检测;包含强大的缓存功能,自动加载Class(这个功能很爽),强大的i18n国家化支持;具有很强大的view层操作,能够零碎的包含单个多个文件;非常强大的配置功能,使用yml配置能够控制所有框架和程序运行行为,强大到让人无语;能够很随意的定义各种自己的 class,并且symfony能够自动加载(auto load)这些class,能够在程序中随意调用;包含强大的多层级项目和应用管理:Project --》 Application --》 Module --》 Action,能够满足一个项目下多个应用的需要,并且每层可以定义自己的类库,配置文件,layout;非常强大的命令行操作功能,包括建立项目、建立应用、建立模块、刷新缓存等等;
2. Symfony绝对是开发大型复杂项目的首选,因为使用了Symfony,将大大节约开发成本,并且多人协作的时候,不会出现问题,在Project级别定义好基础Class以后,任何模块都能够重用,大大复用代码
缺点:
1. 数据库操作model采用了重量级的propel和creole,不过在我测试的版本中已经把他们移到了addon里,可用可不用
2. 缓存功能无法控制,每次开发调试总是缓存,需要执行 symfony cc, symfony rc 来清除和重建缓存;
3. 效率不是很高,特别是解析模板和读取配置文件的过程,花费时间不少;
4. 学习成本很高,并且国内没有成熟的社区和文档,连中文手册都没有,相应的要掌握所有功能,需要花费比较多的时间
评价:
Symfony绝对是企业级的框架,唯一能够貌似能够跟Java领域哪些强悍框架抗衡的东西;强悍的东西,自然学习复杂,但是相应的对项目开发也比较有帮助,自然是推荐复杂的项目使用Symfony来处理,觉得是值得,后期的维护成本比较低,复用性很强。相应的如果使用Symfony的应该都是比较复杂的互联网项目,那么相应的就要考虑关于数据库分布的问题,那么就需要抛弃Symfony自带的数据库操作层,需要自己定义,当然了,Symfony支持随意的构造model层。
【 总评 】
以上数款框架,各有特色,而且都是开源项目,不过框架针对的项目不一样,一般来说 CodeIngiter 比较适合小型项目,CakePHP 和 Zend Framework 比较适合中型项目,Symfony 比较适合大型重量级项目,在项目选型的时候,要充分考虑框架的可以定制性、扩展性,因为每个项目都无法确定你是否会随着需求的变化进行改变。
相对来说,Zend Framework 和 Symfony 应对变化的能力比较强,特别是能够随意定制 model 层的Class,能够非常方便增加自己业务或者数据处理类,我是个人比较推荐在中大型项目中使用的框架。CodeIngiter 和 CakePHP 在中小型项目中同样能够发挥重大作用,快速开发和原型构建,非常适合目标不清晰的原型项目的开发。了解一个框架最好的方式就是使用它,学习它最好的方式就是看视频。
仁者见仁,智者见智,在项目挑选框架的时候,请先认真考察项目的需求和未来的变化,然后选择合适的框架,让项目开发速度和后期维护性得到一个合理的平衡,当然了,也许,自己写一个框架更适合。

哪个PHP框架最好用要求比较容易上手,且能够适应大中型网站的性能要求

钟胜辉谈PHP发展的现状和前景
记者:从Web开发的历史看来,PHP、Python和Ruby几乎是同时出现的,都是十分有特点的、优秀的开源语言,但PHP却获得了比Python和Ruby多得多的关注度(PHP在本月的TIOBE排行榜上已经排行第三,超过C++了)。您认为这和PHP旨在网站开发的立足点与PHP语言本身的特点有很大关系么,还是有什么其他的因素影响?
钟胜辉:三门语言当中,无疑php是最流行的,而Python和Ruby在最近几年也有着不错的发展趋势。我个人认为,Ruby的流行更多地源于Ruby on Rails,这个框架的流行程度甚至超过了Ruby语言本身,也引发了其它语言平台上对框架的研究。而Python在近来的被关注度和发展速度要超过Ruby,被一些喜欢创新的项目采用,这可能要更多地归功于google。
这三种语言都是相当优秀的脚本语言,为什么PHP能大行其道,杀入排行榜的三甲呢?从表面上来看,这是就业环境使然。越来越多的新公司或者新项目使用PHP,这使得PHP相关社区越来越活跃,而这又反过来影响到很多项目或公司的选择,形成一个良性的循环。就我目前了解到的情况,PHP是国内大部分web项目的首选,而且有很多公司从其它语言(如ASP,J**A)转到了PHP。合适的就是最好的,PHP的快速,开发成本低,周期短,后期维护费用低,开源产品丰富(这点可以影响到很多项目的决策),这些都是另外两种语言无法比拟的。另外,在很多大项目中,Python更多地是做为一种“粘合剂语言”出现,似乎正在走向与PHP不同的发展方向,让我们拭目以待。
记者:PHP开发框架的盛行是由RoR的火爆所引起的,而PHP框架的发展也从模仿Rails到逐渐有了自己的风格。不过仍然有很多入行较早的PHP开发者至今仍认为PHP这种快捷的语言不需要框架,甚至认为只要有优秀的架构,框架根本没必要。您认为PHP框架对PHP而言是必要的么?您对于PHP开发工具的现状满意么?
钟胜辉:这是一个见仁见智的问题,我个人认为,一个优秀的框架能在很大程度上提高工作效率,尤其是对大中型项目。当然如果对项目有足够的把控能力,框架也并非是必须的,毕竟PHP的框架跟ROR的情况有所不同,多而混乱,而学习一个框架是需要时间的。像你的问题中提到的,很多老的PHP程序员对框架不屑一顾,认为自己对项目有足够的把控能力,不需要框架这么累赘的东西,然而从长远来看,一个优秀的框架可以延长一个项目的寿命,降低维护和二次开发的成本。我们目前正在开发中的CMSTOP,是一个产品型项目,在这样的项目中,没有一个优秀的框架是很难想象的。在研究对比了目前主流的PHP框架之后,我们发现没有哪个框架能完全适合一个CMS的项目,于是我们决定自己开发一个框架。目前这个框架极大地提高了我们的工作效率,而且,我们会在适当的时候将这个框架开源。
记者:PHP的面向对象设计的并不是很好。很多在Java一类语言里面可以很好应用的面向对象写法在PHP里面实现起来却很繁琐。您认为面向对象对于PHP这样的Web开发语言来说重要么?PHP的面向对象是否还能够改进呢?
钟胜辉:PHP的面向对象属于历史遗留问题,而且,说其不好,慢慢也会成为历史问题。从PHP5相对PHP4的进步,我们有理由去期待PHP6给我们带来更多的惊喜。不论对什么样的语言,面向对象更多的是一种思考问题的方法,没有必要为了面向对象而去面向对象。PHP最初的面向对象,可以简单地看作是函数的升级,曾经被很多其它语言的开发者取笑,但PHP5的面向对象已经足以满足大部分WEB项目了。一门语言要想生存下去,就得去适应技术发展的潮流,并不断做出调整,在这方面,PHP的团队充满了活力。
记者:PHP网站的安全是个很常见的问题,有关PHP网站漏洞的消息是很多的。您认为这其中的原因和PHP语言本身的特点有关么(相对于如PHP网站数量、PHP代码编写习惯等其他因素)?PHP的安全有改善的空间么?
钟胜辉:网站的安全是一个比较系统的问题,它跟服务器安全以及代码的质量是直接相关的,我们并不能说PHP这门语言不安全。目前PHP有很多优秀的开源产品,例如discuz,phpcms等,即使在开源的情况下,这些产品也保证了足够的安全性。PHP的门槛很低,一两周的时间就可以入门,而这些“快速入门”的程序员,往往容易忽略代码安全问题。安全问题的改善,取决于越来越多的PHP程序员对这个问题的重视程度。
记者:现在在不少大型项目中,PHP完全充当了脚本的功能,而逻辑性比较强的业务处理则由另一门功能丰富的语言(例如Java)来实现。您认为这样在复杂度、开发快捷度、开发周期以及成本等方面有着怎样的影响?
钟胜辉:这种情况确实存在,但我认为之所以出现这种情况,并不是因为PHP“做不了”,而是很多项目负责人对PHP的偏见以及对J**A等语言的迷信造成了这种现状。当然,我们不能否认,有很多问题确实是PHP做不了的,做为一种解释型的脚本语言,PHP本身就不适合做大型的数据运算,它也不可能成为一门“万能语言”。在大型项目中,多种语言配合工作是一件很正常的事情,例如说,PHP负责收集数据,提供界面,C负责处理分析数据,Python来做粘剂。各种语言各司其职,协同合作,只是分工的不同而没有高低贵之分,就像如果用C来做数据展示一样会很痛苦。我不认为PHP往复杂计算方面发展是一件好事,而且我相信PHP的开发团队也会把握好这个度。没有哪种语言可以做到“万能”,java有这样的野心,但我们可以看到java现在的境遇似乎并不如PHP那么红火,如果PHP也追求“万能”,那将是一场灾难。

本文关于php框架性能排行(特别是使用过哪些php框架.试描述其优劣点)的讲解到此结束,祝你阅读愉快。
本文编辑:admin

更多文章:


oracle去重查询(oracle去重复求和)

oracle去重查询(oracle去重复求和)

本文旨在解决您关于oracle去重查询的两大困惑:一是理清基本概念,二是深入解析oracle去重复求和。内容干练,直奔主题。

2026年4月6日 02:00

getcwd(python 中os.pardir什么意思)

getcwd(python 中os.pardir什么意思)

大家好,getcwd相信很多的网友都不是很明白,包括python 中os.pardir什么意思也是一样,不过没有关系,接下来就来为大家分享关于getcwd和python 中os.pardir什么意思的一些知识点,大家可以关注收藏,免得下次来

2026年4月6日 01:40

structured time是什么意思(什么是setup time和hold time)

structured time是什么意思(什么是setup time和hold time)

你是否好奇,为什么人人都在谈structured time是什么意思?它和什么是setup time和hold time之间究竟存在着怎样微妙的联系?答案就在下文。

2026年4月6日 01:20

js输出html代码(js输出html在页面怎样显示换行)

js输出html代码(js输出html在页面怎样显示换行)

您是否曾想过,js输出html代码究竟是怎么一回事?它与js输出html在页面怎样显示换行之间又有什么联系?本文将为您一探究竟。

2026年4月6日 01:00

java socket 客户端(java socket 多个客户端连接, 怎分辨是那一位客户端)

java socket 客户端(java socket 多个客户端连接, 怎分辨是那一位客户端)

想知道那些精通java socket 客户端的人,是如何看待java socket 多个客户端连接, 怎分辨是那一位客户端的吗?本篇将为你揭秘他们的思考路径。

2026年4月6日 00:40

mysql和sql语法有区别嘛(mysql的语句和sql语句是一样的吗)

mysql和sql语法有区别嘛(mysql的语句和sql语句是一样的吗)

为什么说不懂mysql的语句和sql语句是一样的吗,就等于没学明白mysql和sql语法有区别嘛?这篇文章将给你一个令人信服的解释。

2026年4月6日 00:20

requests库下载及安装(win10怎么安装requests库)

requests库下载及安装(win10怎么安装requests库)

各位朋友,关于requests库下载及安装的讨论一直很多,今天咱们不聊复杂的,就聚焦于win10怎么安装requests库,用最直白的方式把它讲清楚。

2026年4月6日 00:00

向量的运算的所有公式cos(向量的运算的所有公式)

向量的运算的所有公式cos(向量的运算的所有公式)

老铁们,关于向量的运算的所有公式cos,你可能听过不少说法。今天,咱们就坐下来好好聊聊向量的运算的所有公式,保证让你豁然开朗。

2026年4月5日 23:40

随机生成正负1函数(excel随机函数,生成-1到1之间,不为0的保留两位位小数)

随机生成正负1函数(excel随机函数,生成-1到1之间,不为0的保留两位位小数)

嗨,正在屏幕前搜索随机生成正负1函数的你,是否也被excel随机函数,生成-1到1之间,不为0的保留两位位小数的问题困扰过?今天这篇内容就是为你准备的。

2026年4月5日 23:20

for循环改为while循环(while与for的转换)

for循环改为while循环(while与for的转换)

前几天,一位朋友问我:for循环改为while循环到底该怎么学?我只回了他三个字:抓住while与for的转换。今天就来详细说说为什么。

2026年4月5日 23:00

最近更新

oracle去重查询(oracle去重复求和)
2026-04-06 02:00:02 浏览:0
getcwd(python 中os.pardir什么意思)
2026-04-06 01:40:02 浏览:0
structured time是什么意思(什么是setup time和hold time)
2026-04-06 01:20:02 浏览:0
java socket 客户端(java socket 多个客户端连接, 怎分辨是那一位客户端)
2026-04-06 00:40:01 浏览:0
热门文章

繁体字转换器(繁体字转化)
2026-04-04 18:00:01 浏览:0
androidbc(bc8-android是什么手机型号)
2026-04-05 07:20:02 浏览:0
标签列表