找回密码
注册

QQ登录

只需一步,快速开始

搜索
热搜: 在天 唐山
发新帖
王佳      

收听

听众

主题
发表于 2010-5-23 11:31:52 | 查看: 471| 回复: 0
随着Ruby on Rails的火爆,PHP编程那个时髦的Web实际运用脚本语句语言也呈现了大量的新一代开发框架。与此同时,国内PHP编程开发者也开端紧跟西方国家进展,推出了不相同的开发框架。
  Ruby on Rails催生变革
  在RoR时髦之前,PHP编程领域也有不少开发框架,例如Mojavi、WACT、PHP编程Mvc和Seagull等。这一部份框架虽然也采用了MVC模式、数据库Databnse抽象层等技能。但由于当时PHP编程本身不像目前那样时髦,所以这一部份框架都没有得到大量实际运用,最终归于沉寂。
  而在感想到RoR帮助的快速开发胜任后,PHP编程社区像被注入了兴奋剂。各种实际运用技能和开发框架层出不穷。
  新一代框架的诞生
  PHP编程社区在被RoR震晕后,没有陷入过多的争论。而是立即行动起来,开端了新一代框架的设计。首先呈现的NO·1批框架几乎都是RoR的克隆。例 如PHP编程 on Trax(连姓名都借鉴Ruby on Rails)和TaniPHP编程、Akelos等。这一部份框架最大的特点就力求100%克隆RoR,不管是采用的架构、设计模式,还那样应用窍门。
  这几个框架一开端确实吸取了开发者的留意,但随着开发者的深入了解,这一部份框架头上的光环逐步褪色。晦涩难懂的架构、糟糕的性能,以及太多的控制,让这一部份框架难以在实际项目中运用。
  此时,许多PHP编程开发者以为能够借鉴RoR的设计思想,但不应照搬RoR的框架和呈现。为此,一部份同样推崇快速开发的框架开端在PHP编程社区呈现。这一部份框架中,CakePHP编程和Symfony可谓佼佼者。
  CakePHP编程
  CakePHP编程充满了RoR的影子,从ActiveRecord模式到视图的布局管制都和RoR非比寻常相似。而且CakePHP编程一开端也尝试呈现与 RoR相同的许多物品。但CakePHP编程的开发团队后来发明PHP编程语句语言和Ruby语句语言存在巨大区别,因此RoR中的许多设计即便能够在PHP编程中呈现,也是 缺乏实战价值的。
  CakePHP编程在进展中逐步走出了RoR的阴影,开端探索更能发挥PHP编程语句语言本身优势的架构和呈现。因此有一段时候CakePHP编程的API除了了剧烈的变化,以致更多有联系开发者纷纷停下脚步处于观望状态。
  但由于前期一部份架构的不符合逻辑和对RoR太多的模仿,导致CakePHP编程的核心部份愈来愈难以理解,运行性能也不尽人意。而且CakePHP编程将唯一庞大的数据库Databnse操作对象作为所有业务对象的基本。这虽然利于快速开发,但却导致对业务逻辑对象的测试非比寻常困难。
  对于较小型的项目,CakePHP编程非比寻常理想。出色的快速开发胜任、丰富的API和详尽的文档都能够帮助开发者很快完成务工。但随着项目规模的渐增,CakePHP编程的局限性也变得突出。
  Symfony
  Symfony是唯一非比寻常成熟的框架,大量利用了已有的开源项目。Symfony应用Mojavi的核心代码Code呈现了框架的MVC模式,利用 Propel作为数据库Databnse抽象层。Symfony不仅功能强大,而且对Ajax有全方面的支持。加上官方互联网帮助的大量文档和教你学课程,并拥有唯一活跃的社区,因 此受到许多开发者的欢迎。
  但是,Symfony最大的疑难问题也在于应用了太多风格迥异的开源项目来组合成框架。由于Mojavi和Propel本身都相当复杂,因此Symfony的框架非比寻常复杂,难以理解和研究。
  不过对于期望选取唯一框架作为大单位内部操作系统基本架构的大单位来说,Symfony的成熟度、丰富的文档和活跃的社区都是值得考虑的。毕竟大单位内部操作系统更为看重的是稳定性和长久的支持。
  商业利益与大道至简
  看到PHP编程开发框架的潜在商业价值后,Zend.com联合IBM宣布将要推出唯一真正能够发挥PHP编程优势的开发框架。一时候,那个消息在整个PHP编程社区引起了震地。大部份人都开端期盼那个具有“官方”背景的开发框架能够为PHP编程开发者指出一条正确的道路。
  不过世事难测,就在Zend Framework团队公布几个代码Code片断后,立即就有开发者指出这一部份代码Code片段是不估计呈现的。事实证明这一部份代码Code片段不过是美好的理想。限于PHP编程语句语言本身 的胜任,Zend Framework最终没有呈现当初承诺帮助的类似RoR中ActiveRecord模式的呈现品。
  Zend Framework
  Zend Framework大量实际运用了PHP编程5中面向对象的新特征:接口、异常、抽象类、SPL等等。这一部份物品的实际运用让Zend Framework具有高度的模块化和灵活性。同时,由于严格遵循“针对接口编程”和“单一对象职责”等原则,让Zend Framework很有期望成了唯一出色的大单位实际运用开发框架。
  但不幸的是Zend Framework直到今天,也没有做出更多的突飞猛进。在应用Zend Framework开发时,框架对实际运用程式自身最重要的领域逻辑分离没有帮助任何帮助。假如期望开发出真正健壮的大单位实际运用,仍然需求开发者做出相当的努 力,并且在Zend Framework之上建造自个的基本设施。
  针对这点,批评者指出Zend Framework虽然大量实际运用PHP编程5的新特征,但却没有将这一部份相对于PHP编程4的优势转化为能够为开发者帮助帮助的物品。
  对于简单和小型的项目来说,Zend Framework不但别升高开发效率。反而由于在框架中实际运用了大量面向对象设计和PHP编程5的新特征,对开发者提出了更高的要求,间接渐增了项目的开发 成本。而对于较大的项目和大单位实际运用,Zend Framework倒是唯一不错的基本。但要创建唯一胜利的实际运用,仍然需求付出不小的努力。并且要时刻留意Zend Framewok的性能疑难问题。
  Code Igniter
  Code Igniter能够说是一匹黑马。Code Igniter呈现之时正是Symfony和CakePHP编程大行其道、Zend Framework万众期待的时刻。可凭借着独特的设计思想,Code Igniter吸取了大批开发者。这点从其火爆的官方论坛就可得到证实。
  Code Igniter推崇“简单就美”这一原则。没有花哨的设计模式、没有华丽的对象框架,一切都是那么简单。几行代码Code就能开端运行,再加几行代码Code就能够停止 输出。大部份日常开发中用到的物品都能够立即找到,并且能够很简易的应用。Code Igniter可谓是“大道至简”的典范。
  但是,Code Igniter本身的呈现不太理想。内部框架过于混乱,虽然简单易用,但缺乏扩展胜任。因此在进展到1.5集锦版本时,作者不可不经过渐增各种hooks来为框架帮助扩展胜任。
  国内PHP编程开发框架
  国内虽然过去也曾有开发者正式发布过一部份框架,但这一部份框架要么太过简单,要么和某一类别的实际运用紧密耦合,缺乏通用性。直到进入2006年,随着PHP编程在国内的大量实际运用和追捧,真正的国产PHP编程开发框架才陆续正式发布。
  FCS
  FCS是从Java的Struts框架移植过来的汉文PHP编程开发框架,应用面向对象的开发框架和MVC模式,并且模仿呈现了Struts的标签库,借 鉴了西方国家一部份不错的思想,尤其是Java框架方面,因此熟悉Java的开发大家相对较量简易上手,其模子引擎、缓存机制、认证机制和扩展性方面均表现不 凡。
  在借鉴西方国家优秀思想的同时,FCS也更多地考虑了国内的实际运用开发需求。PHP编程4兼容、完全支持UTF-8,以及PATHINFO支持等,更加有利于国 内的主机环境和开发需求。秉着易用和易扩展的原则,FCS采用简易理解的项目、模块和操作机制加上内置的一部份自动化操作窍门,让实际运用开发变得更加简单,其 功能能够经过基类库以及各种插件的形式灵活扩展,从而满足日益增长的业务需求。正是由于具备良好的开发框架,使得FCS在开发大型实际运用的时候并不会显得有 很多障碍,基于构件的方法,以及配合框架的项目管制机制同样能够让你在处理大型实际运用的时候一展所长。
  FCS力求精简的代码Code和全汉文学的文档、注释,有利于国内PHP编程开发大家研究和把握,不过根据目前的情况来看,官方的文档和社区支持目前还较量缺乏,而且对Ajax的支持还不够全方面,因此国内的实际运用成熟度还不够。
  FleaPHP编程
  FleaPHP编程从进展上看,是唯一具有一定古代事件的框架。在过去三年中,FleaPHP编程是作者正式发布了从PFC1到PFC3集锦和flea1试验框架后,推出的第唯一真正成熟、稳定的开发框架。
  与许多更多有联系框架不相同,FleaPHP编程设计之初,就围绕快速开发和充分利用PHP编程自身优势两个重点展开的。因此FleaPHP编程最大的特点就极高的模块化程度和扩展胜任。
  FleaPHP编程框架的核心非比寻常小,但经过灵活的配置,能够组合出各种类别的基本架构。对于简单的脚本页面,FleaPHP编程不需求载入MVC模式,只需 要为实际运用程式帮助业务逻辑和数据库Databnse效劳。而对于复杂的实际运用程式,FleaPHP编程能够完成从MVC模式调用、来访控制、数据验证到文档上传、图片处理等各种 各样的任务。
  正是由于这种出色的定制和扩展胜任,FleaPHP编程真正接近了“满足从简单实际运用到大单位开发的各种需求”那个目的。而且与许多更多有联系框架不相同, FleaPHP编程是唯一完全在实际开发中精炼出来的框架。因此伴随着FleaPHP编程的进展,各种各样的实际实际运用也相继呈现。在FleaPHP编程官方互联网上,可 以看到各种各样的实际实际运用。从最简单的大单位宣传互联网,到复杂的社区互联网、大单位内部操作系统等等,不一而足。
  FleaPHP编程作为唯一完全国产的框架,具有完全汉文学的文档、代码Code注释,并且在扩展功能上也注重考虑国内开发者的实际需求。因此相对于西方国家的各种框架,FleaPHP编程更简易被国内开发者所接受。
  但是,也正由于处在国内,FleaPHP编程面临比西方国家同行多得多的困难。缺乏足够的贡献者、无礼的责难,以及充满怀疑的眼光,这一部份都让FleaPHP编程的 开发团队成员需求更多的奉献精神。而且由于缺乏足够的贡献者,FleaPHP编程框架目前在文档和扩展功能方面,与更多有联系成熟框架相比还有不小的差距。
  并且与更多有联系所有的PHP编程开发框架相同,FleaPHP编程也没有找到帮助开发者分离实际运用程式领域逻辑的途径。虽然有指导文档,但对于初级开发者来说,唯一能够拿来就用的领域逻辑基本会显得很实战。
  反思与进取
  RoR带来的冲击波还远为平息,但PHP编程开发者们已经在开端反思一味追随RoR的脚步也许真的能够为PHP编程开发带来质变?
  RoR之所以能够取得如此巨大的胜利,除了RoR本身的设计思想外,还有唯一重要理由就RoR充分利用了Ruby这种语句语言的特长。将Ruby动态语 言的优势发挥得淋漓尽致。而在PHP编程中假如只是单纯照搬RoR中设计,则要处处遇到PHP编程语句语言本身的控制。为了绕开这一部份控制,开发者不可不用一部份难以理解 的窍门来解决疑难问题。但那样一来通常会导致框架的框架变得晦涩难懂、性能受到损害。
  在这种反思中,Code Igniter、FleaPHP编程等框架就对那个疑难问题的最好回答。只有充分利用PHP编程语句语言本身的优势,才能真正让PHP编程开发变得更简单、更有趣。
  进展到今天,各种PHP编程开发框架虽然具有各自的特点,但几乎都是为了升高开发效率而努力。但是,虽然其中部份框架留意到了升高实际运用程式可维修性的疑难问题,但都没有为领域逻辑分离那个至关重要的疑难问题提出解决方案。而这正是这一部份框架在未来的进展目的。
  对于简单的Web实际运用和复杂的大单位实际运用,两者之间的差别就注定了采用一种固定的架构是无法满足需求的。因此像FleaPHP编程那样能够帮助自定义架构胜任的框架,能够让开发者尝试用唯一框架的不相同组合来解决从简单到复杂的不相同程度的需求。
  未来,PHP编程将成了Web开发领域中愈来愈重要的平台。因此咱们相信会呈现更多更好的开发框架。虽然作为开发者来说,并不一定需求采用某唯一框架来解决疑难问题。但正是由于这一部份不断呈现的框架,咱们对应用PHP编程开发Web实际运用的理解和把握得到了一次次的推动。
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|小黑屋|石家庄社区门户-石家庄OK网 ( 冀ICP备04007985号 )

GMT+8, 2024-5-4 10:48 , Processed in 0.045336 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表