导航:首页 > 编程语言 > phpror

phpror

发布时间:2023-06-02 00:16:58

php哪个框架比较好

首推 Laravel ,其次是 Yii,Laravel 的设计思想以及在工程实践上的支持,超过 ThinkPHP 好几个世代。如果说原生的 PHP 是火枪, ThinkPHP 就是来福枪,Lavavel 则是冲锋枪。你要打猎的话,带把来福枪完全足够了,但是要上战场,非得更自动化的冲锋枪不行。

好处有很多啊:
Composer 做包管理
标准的 Autoload 实现,可以让 `include xxx.php` 成为历史
各种依赖注入
ORM 支持
好用的命令行和脚手架
丰富的文档和活跃的社区
即使有这么多好处,也不过是追赶了几年前 ROR 的水平,还在用 ThinkPHP 的人,不过是懒得接触新知识罢了。

说ThinkPHP适合国人使用的人,自黑的时候不要带上别人,多谢。

② C语言:某班有5个学生,三门课。分别编写3个函数实现以下要求:

钟胜辉谈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,java)转到了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的偏见以及对JAVA等语言的迷信造成了这种现状。当然,我们不能否认,有很多问题确实是PHP做不了的,做为一种解释型的脚本语言,PHP本身就不适合做大型的数据运算,它也不可能成为一门“万能语言”。在大型项目中,多种语言配合工作是一件很正常的事情,例如说,PHP负责收集数据,提供界面,C负责处理分析数据,Python来做粘剂。各种语言各司其职,协同合作,只是分工的不同而没有高低贵之分,就像如果用C来做数据展示一样会很痛苦。我不认为PHP往复杂计算方面发展是一件好事,而且我相信PHP的开发团队也会把握好这个度。没有哪种语言可以做到“万能”,java有这样的野心,但我们可以看到java现在的境遇似乎并不如PHP那么红火,如果PHP也追求“万能”,那将是一场灾难。

③ php是世界上最好的语言

PHP是世界上最好的语言。这是网络上广泛流传的一个梗,并不是说PHP就真的是编程最好的语言,其实每款编程语言都有自身的优势以及所专长的领域,并不能简单地说PHP就是最好的编程语言,这多少有点调侃的成分。

PHP优点

(一)流行,容易上手

PHP是目前最流行的编程语言,这毋庸置疑。它驱动全球超过2亿多个网站,有全球超过81.7%的公共网站在服务器端采用PHP。PHP常用的数据结构都内置了,使用起来方便简单,也一点都不复杂,表达能力相当灵活。

(二)开发职位很多

在服务器端的网站编程中PHP会更容易帮助你找到工作。很多互联网相关企业都在使用PHP开发框架,所以可以说市场对PHP的开发程序员的需求还是比较大的。

(三)仍然在不断发展

PHP在不断兼容着类似closures和命名空间等技术,同时兼顾性能和当下流行的框架。版本是7之后,一直在提供更高性能的应用。

(四)可植入性强

PHP 语言在补丁漏洞升级过程中,核心部分植入简单易行,且速度快。

(五)拓展性强

PHP 语言在数据库应用过程中,可以从数据库调取各类数据,执行效率高。

PHP缺点

(一)PHP的解释运行机制

在 PHP 中,所有的变量都是页面级的,无论是全局变量, 还是类的静态成员,都会在页面执行完毕后被清空。

(二)设计缺陷,缺少关注PHP被称作是不透明的语言,因为没有堆栈追踪,各种脆弱的输入。没有一个明确的设计哲学。早期的PHP受到Perl的影响,带有out参数的标准库又是有C语言引入,面向对象的部分又是从C++和Java学来的。

(三)对递归的不良支持

PHP并不擅长递归。它能容忍的递归函数的数量限制和其他语言比起来明显少。

这句话的产生,虽然带有一定php码农个人感情色彩的偏见,但是未尝没有道理。首先,PHP的使用率远远高于其他语言的使用率,在web开发中占有很大份额。

同时PHP作为一种通用开源语言,因其语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛。具有简单易懂的语法、没有奇怪的黑魔法、既能面向过程,又能面向对象、安装后各种扩展集一身、包括但不限于mysql、json、mbstr等,方便至极。

在这种情况下,PHP就被戏称为“世上最好的语言”,当然它也不负众望,成了大部分IT码农的首选。它的门槛低,使得更多新手小白入门快,能快速了解IT这行,以及自己的工作性质。语法简单,很快融入其中,被成为“弱类型语言”。

现在很多重量级的开源项目都会使用PHP语言,企业开发上也越来越支持使用PHP。它成熟的框架,大大缩短开发周期,在加上成本低,导致了市场需求大。

(3)phpror扩展阅读

主要参考框架

(一)CodeIgniter的优点

1、配置简单,全部的配置使用 PHP脚本来配置,执行效率高;具有基本的路由功能,能够进行一定程度的路由;具有初步的Layout功能,能够制作一定程度的界面外观;数据库层封装的不错,具有基本的MVC功能。

2、快速简洁,代码不多,执行性能高,PHP框架简单, 容易上手,学习成本低,文档详细;自带了很多简单好用的library,框架适合小型应用。

(二)CodeIgniter 缺点

1、把Model层简单的理解为数据库操作。

2、PHP 框架略显简单,只能够满足小型应用,略微不太能够满足中型应用需要。

(三)CakePHP 的优点

1、CakePHP 是最类似于RoR的 PHP 框架,包括设计方式,数据库操作的Active Record方式;设计层面很优雅,没有自带多余的 library,所有的功能都是纯粹的框架,执行效率还不错;数据库层的hasOne,hasMany 功能很强大,对于复杂业务处理比较合适;路由功能,配置功能还不错;自动构建脚手架(scaffold)很强大;适合中型应用;基本实现过了MVC每一层; 具有自动操作命令行脚本功能。

2、文档比较全,在国内推广的比较成功,大部分人都知道CakePHP,学习成本中等。

(四)CakePHP 的缺点

1、CakePHP非常严重的问题是把Model理解为数据库层操作,严重影响了除了数据库之外的操作能力

2、CakePHP的cache功能略显薄弱,配置功能稍嫌弱;CakePHP不适合大型应用,只适合中型应用,小型应用来说略微的学习成本高了点。

参考资料来源:网络-PHP

④ PHP中的各种框架

CodeIgniter、CakePHP、ZendFramework、Symfony这几个是国外的,你可以参考下http://www.isstudy.com
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、SQLite、文件等等方式;数据库操作功能很强大,支持各种驱动(适配器)
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 --> Mole --> 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 在中小型项目中同样能够发挥重大作用,快速开发和原型构建,非常适合目标不清晰的原型项目的开发。了解一个框架最好的方式就是使用它,学习它最好的方式就是看视频。
仁者见仁,智者见智,在项目挑选框架的时候,请先认真考察项目的需求和未来的变化,然后选择合适的框架,让项目开发速度和后期维护性得到一个合理的平衡,当然了,也许,自己写一个框架更适合。

⑤ 国内用ROR框架做的着名web网站的是不是不多,是不是国内的ROR社区环境不太好我只知道豆瓣是用python写的

因为Twitter, Github两个知名网站的使用ror也逐渐的出名态并起来。国内的iteye就是RoR开发的,还有http://ruby-china.org/。但是在国内,Ruby是小众语言,所以RoR的社区也不大。

每种技术的社区里,都有些布道者,他们会经常写一些文字,展现某种技术的优越。那样做,并非是为了体现自己“拽”帆局迹,只是发表自己的见解而已,这种做法对社区和自己都是有益的。好的框架,都是集成了众多“最佳实践”的,把一些重复的工作自动化了,这是进步的体现。用RoR和Django,你可以敲几句命令,就可以把一个网站的骨架搭起来,但是你想把这个骨架,开发成一个能解决实际问题,甚至能创造收益的产品,还是需要付出一番血和汗的。

至于“用 Ruby 做的成功商业网站少是什么原因”,我找到了一个人的回答,我也比较赞同,现贴出来:
首先 Ruby(on Rails) 是后起之秀,所以“少”,是一个正常的现象。一个技术要成功,需要一定的时间来证明。

一个项目用成熟的技术如 Java 和 PHP 来做,碰到问题,可以较容易找到解决的方案,因为这方面别人早都碰过了,但用 Ruby 这样的技术来做,就不一定。

另外还有一个整合问题,比如一些第三方类库(比如支付),是用 Java 或 PHP 来做,用 Ruby 做的项目,不能够直接集成它们。虽然这方面开发工作量不大,但仍让一部分人生畏。

最后一个我认为较重要的因素就是:项目不采用 Ruby 来做,很多时候不是技术(比如技术太难或这样的技术人员难腊灶找)的原因,更多是担心责任和风险。

如果用 Java 或 PHP 这样的技术来做项目,碰到问题或瓶颈,上级通常不会怀疑是开发语言选择的问题,但如果是用 Ruby 来做,可能管理层第一时间就会怀疑你技术人员没有选择好技术,是该技术导致的问题,这时候责任人通常是有口难辩。

好几年前那些用 Unix 的单位的技术主管宁愿继续选择昂贵的 Unix,而不愿意尝试技术上已经成熟且更便宜的 Linux,一个重要原因就是怕出问题自己一身责任。当初的免费 Linux 跟现在开发效率更高的 Ruby(Rails),有点相似。

⑥ PHP中两个小于号“<<”是什么意思

PHP中两个小于号“<<”表示的php中的位运算符,<<表示的是向左移动,>>表示的是向右移动,这个我们可以通过一个例子更加容易的来理解位运算:

<?php
//定义权限
define('READ',1<<0);//把可读权限放在最右边
define('WRITE',1<<1);//可读权限向左移一位
define('EXCUTE',1<<2);//可执行权限向左移两位

//赋予权限
$user_permission=READ|WRITE;

//验证权限
echo'可读:',($user_permission&READ)?'Yes':'No'," ";
echo'可写:',($user_permission&WRITE)?'Yes':'No'," ";
echo'可执行:',($user_permission&EXCUTE)?'Yes':'No'," ";
?>

通过位运算,我们能更加方便的控制权限。

⑦ php中获取文本框的值

不刷新网页就想得到网页中本页面文本框的内容?而且要用PHP实现?这是不可能的。

php如果想得到传值,有get和post两种,但这都需要基于向本页面提交信息之前的那个页面才可以完成,因为php从客户端得到数据都是被动的,它不会从服务器上主动向你客户端获取数据。这是php的特性。

如果你想实现你所说的功能,那只能使用AJAX + PHP来实现,而且,你所说的<?php ...... ?>应该在另外一个页面上,就是通过AJAX递交信息的目标页面中,然后再传值回客户端,通过javascript的innerHTML来动态更改页面上的内容或显示。

这个页面的代码很复杂,我只提供给你思路了,另外你最好详细形容一下你要实现什么效果。

⑧ 国外主流PHP框架对比评测

最近简单的使用了目前在国内用的比较多的几个主流国外PHP框架(不包括国内框架) 大致对这些框架有个直观上的感受 简单分享一下 对于哪些做框架选型的时候 权当一个参考

主要参考的框架包括 CodeIgniter CakePHP ZendFramework Symfony 我对很多框架也没有认真使用 只是简单试用了一下 可能很多看法不成熟或者是错误的 请大家指正 一起成长

CodeIgniter

优点

配置简单 全部的配置使用PHP脚本来配置 执行效率高 具有基本的路由功能 能够进行一定程度的路由 具有初步的Layout功能 能够制作一定程度的界面外观 数据库层封装的不错 具有基本的MVC功能

快速简洁 代码不多 执行性能高 框架简单 容易上手 学习成本低 文档详细 自带了很多简单好用的library 框架适合小型应用

缺点

把Model层简单的理解为数据库操作

框架略显简单 只能够满足小型应用 略微不太能够满足中型应用需要

评价

总体来说 拿CodeIgniter来完成简单快速的应用还是值得 同时能够构造一定程度的layout 便于模板的复用 数据操作层来说封装的不错 并且CodeIgniter没有使用很多太复杂的设计模式 执行性能和代码可读性上都不错 至于附加的 library 也还不错 简洁高效

CakePHP

优点

CakePHP是最类似于RoR的框架 包括设计方式 数据库操作的Active Record方式 设计层面很优雅 没有自带多余的 library 所有的功能都是纯粹的框架 执行效率还不错 数据库层的 hasOne hasMany 功能很强大 对于复杂业务处理比较合适 路由功能 配置功能还不错 自动构建脚手架(scaffold)很强大 适合中型应用 基本实现过了MVC每一层 具有自动操作命令行脚本功能

文档比较全 在国内推广的比较成功 大部分都知道CakePHP 学习成本中等

缺点

CakePHP非常严重的问题是把Model理解为数据库层操作 严重影响了除了数据库之外的操作能力

CakePHP的cache功能略显薄弱 配置功能稍嫌弱 CakePHP不适合大型应用 只适合中型应用 小型应用来说略微的学习成本高了点

评价

总体来说CakePHP框架代表了PHP框架很重要的一个时代和代表 并且目前发挥着很重要的作用 不少自己写的框架都模仿了CakePHP的方式 是个里程碑式的产品 CakePHP透露着RoR的敏捷开发方式和把数据库操作认为是唯一Model的设计思想 作为开发快速应用和原型是绝好的工具 同样 用来做Web 网站的开发框架 也是值得选择的

Zend Framework

优点

官方出品 自带了非常多的 library 框架本身使用了很多设计模式来编写 架构上很优雅 执行效率中等 MVC设计中 比较简洁 具有路由功能 配置文件比较强大(能够处理XML和php INI) 各种 library 很强大 是所有PHP框架中各种功能最全面的 包括它不仅是一个框架 更是一个大类库(取代PEAR) 这是它的主要特色 能够直观的支持除数据库操作之外的Model层(比 CodeIgniter 和 CakePHP 强) 并且能够很轻易的使用Loader功能加载其他新增加的Class Cache功能很强大 从前端Cache到后端Cache都支持 后端Cache支持Memcache APC SQLite 文件等等方式 数据库操作功能很强大 支持各种驱动(适配器)

文档很全 在国内社区很成熟 并且目前不少Web 网站在使用 学习成本中等

缺点

MVC功能完成比较弱 View层简单实现(跟没实现一样) 无法很强大的控制前端页面

没有自动化脚本 创建一个应用 包括入口文件 全部必须自己手工构建 入门成本高

Zend Framework 作为一个中型应用框架问题不大 也能够勉强作为大型应用的框架 但是作为一个很成熟的大型PHP框架来说 还需要一些努力

评价

作为官方出品的框架 Zend Framework的野心是可以预见的 想把其他框架挤走 同时封装很多强大的类库 能够提供一站式的框架服务 并且他们的开发团队很强大 完全足够有能力开发很强大的产品出来 所以基本可以确定的是Zend Framework前途无量 如果花费更多的时间去完善框架 同样的 Zend Framework架构本身也是比较优雅的 说明Zend官方是有很多高手的 设计理念上比较先进 虽然有一些功能实现的不够完善 比如View层 自动化脚本等等 这些都有赖于未来的升级 总体来说Zend Framework是最值得期待的框架 当然 你目前要投入你的项目中使用也是完全没问题的

Symfony

优点

Symfony 是我了解的PHP框架中功能最强大的 而且我使用时间比较长 但是很多功能还是没有挖掘出来 它完整实现了MVC三层 封装了所有东西 包括 $_POST $_GET 数据 异常处理 调试功能 数据检测 包含强大的缓存功能 自动加载Class(这个功能很爽) 强大的i n国家化支持 具有很强大的view层操作 能够零碎的包含单个多个文件 非常强大的配置功能 使用yml配置能够控制所有框架和程序运行行为 强大到让人无语 能够很随意的定义各种自己的class 并且symfony能够自动加载(auto load)这些class 能够在程序中随意调用 包含强大的多层级项目和应用管理 Project > Application > Mole > Action 能够满足一个项目下多个应用的需要 并且每层可以定义自己的类库 配置文件 layout 非常强大的命令行操作功能 包括建立项目 建立应用 建立模块 刷新缓存等等

Symfony绝对是开发大型复杂项目的首选 因为使用了Symfony 将大大节约开发成本 并且多人协作的时候 不会出现问题 在Project级别定义好基础Class以后 任何模块都能够重用 大大复用代码

缺点

数据库操作model采用了重量级的propel和creole 不过在我测试的版本中已经把他们移到了addon里 可用可不用

缓存功能无法控制 每次开发调试总是缓存 需要执行 symfony cc symfony rc 来清除和重建缓存

效率不是很高 特别是解析模板和读取配置文件的过程 花费时间不少

学习成本很高 并且国内没有成熟的社区和文档 连中文手册都没有 相应的要掌握所有功能 需要花费比较多的时间

评价

Symfony绝对是企业级的框架 唯一能够貌似能够跟Java领域哪些强悍框架抗衡的东西 强悍的东西 自然学习复杂 但是相应的对项目开发也比较有帮助 自然是推荐复杂的项目使用Symfony来处理 觉得是值得 后期的维护成本比较低 复用性很强 相应的如果使用Symfony的应该都是比较复杂的互联网项目 那么相应的就要考虑关于数据库分布的问题 那么就需要抛弃Symfony自带的数据库操作层 需要自己定义 当然了 Symfony支持随意的构造model层

总结

以上数款框架 各有特色 而且都是开源项目 不过框架针对的项目不一样 一般来说 CodeIngiter 比较适合小型项目 CakePHP 和 Zend Framework 比较适合中型项目 Symfony 比较适合大型重量级项目 在项目选型的时候 要充分考虑框架的可以定制性 扩展性 因为每个项目都无法确定你是否会随着需求的变化进行改变

相对来说 Zend Framework 和 Symfony 应对变化的能力比较强 特别是能够随意定制 model 层的Class 能够非常方便增加自己业务或者数据处理类 我是个人比较推荐在中大型项目中使用的框架

CodeIngiter 和 CakePHP 在中小型项目中同样能够发挥重大作用 快速开发和原型构建 非常适合目标不清晰的原型项目的开发

当然了 也许 自己写一个框架更适合

lishixin/Article/program/PHP/201311/21441

阅读全文

与phpror相关的资料

热点内容
一捏就变形的解压玩具怎么折 浏览:196
易融贷app借钱怎么 浏览:939
单片机侧重点 浏览:867
江苏惠普服务器虚拟化设计云主机 浏览:647
在欧拉app好猫充电桩怎么申请 浏览:449
反编译代码教程 浏览:798
linuxio阻塞 浏览:973
8脚单片机pic 浏览:821
如何看彩色涂鸦遮住的字安卓 浏览:688
摆渡机器人编程 浏览:654
软程序员着装 浏览:139
宝鸡云存储服务器 浏览:668
推荐超解压游戏无广告 浏览:634
大华服务器怎么添加门禁 浏览:784
战地服务器60hz什么意思 浏览:760
成高级程序员学什么 浏览:501
阿里云接入备案后退掉服务器 浏览:928
ne40e命令 浏览:85
安卓输入法使用什么编码 浏览:184
手机如何开淘宝店步骤安卓手机 浏览:593