作者foxzgerald (O⊥M)
看板PHP
标题[情报] PHP Framework
时间Sun Dec 17 18:17:54 2006
[推荐使用的 PHP Framework:
Code Igniter
http://www.codeigniter.com/ ]
因为很懒,所以一直想找捷径来协助专案开发。我试用过了好几
套的 Framework,如: Zend Framework, Zoop, Seagull, CakePHP,
Symfony, PRADO.等。其中不乏实作 Ruby on Rails 快速开发方
式的 Framework。 Ruby 的开发方式很炫、很快,或许有天会跳
槽过去 :P
有许有天会学 Ruby,但不是现在。时间是个现实的问题。不是每
个老板都会给一两个月的给薪假、让员工去熟悉一套 Framework。
我认为合适的 Frameworks该是 PHP学习曲线上的一个延伸应用,
换言之,我希望只需熟悉 PHP这 Script Language 便可驾轻就熟
地使用,而不是学习另一种新语言;而实作 RoR的 PHP Frameworks
却让我感觉自己在学新的语言。
我暂时放弃那些实作 RoR 的 Frameworks,因为那毕竟是另外一条
相对昂贵的学习曲线,有违我对 Frameworks 的期许。於是我转向
Zend Framework, Zoop, 和 Code Igniter这类以 PHP本身为主体,
而非 code generate scripting的 Frameworks。
Java 和 PHP 都是开放架构的语言,但总感觉 PHP社群不如 Java
团结。曾有人做过这样的评论:
『在 Java 的世界中,有人开发出轮子之後,其他的爪哇人便
拿来做车子;在 PHP的世界中,每个人都在开发轮子。』
或许多样性是 PHP社群的特色,这对程式设计的爱好者(寝室电脑
前的我)是个福音,因为总是有新的玩具可以玩;然而这对程式设
计的奴隶(办公桌前的我,囧)而言,这是撒旦的诅咒。
跳脱加班的无限回圈,是种迫切的渴求... // break;
比起JAVA,PHP几乎是无政府状态。很高兴继社群自主的开发 PEAR
和 PECL後,作为 PHP开发母体的 Zend终於挺身做出 Zend Framework
这让 PHP的专案开发不再天马行空,而是能够能够透过重用(re-uses)、
或延伸(extents)「经验证过(proved method)」的「轮子」。
这让 PHP支援物件导向撰写方式,多了实效与诱因。
[不再反覆重新开发轮子]
作为促进人类文明的贡献者,未必要同爱迪生总是在发明新玩意儿。
当便利商店卖的灯可以满足需求时,实在没必要重新发明。前人解决
问题後留下了不少知识和经验,如果无法善用这些宝藏,那麽历史的
意义便如同荒漠般凄凉。
曾有部天书-设计样式(Design Patterns)-为程式设计师带来天启:
『你们的知识和经验是可以累积的;并且它是可以重用的(re-use)』
该书大概归纳分析了20多种的样式,每种样式都是前人为了解决某种
类型的问题而思考出的解法。该书作者(们)的说:样式只会更多、不
会更少,并且可能有比书上更好的方法存在。
但毕竟前人留下的样式(pattern)只是种抽象层次的概念、观念而已。
在实际的程式码被撰写之前,她就像相簿中的正妹一样虚无飘渺。最
好是当我产生某种意念(not 淫念)时,程式码就顺应产生--至少不
要让我每次都花很多精力处理别人已经解决过的问题、以及那些专案
间的高重复性的细节。
在我了解物件导向的真义之前,我多以『Ctrl+C Ctrl+V』法来实作
「重用」程式码,但是整体而言却没省多少时间,甚至得花时间去抓
些奇怪的 bug。这主要是因为之前的程式码是针对「特定的问题」而
非「通用」的解决方式所撰写,因此在专案间复制贴上程式码,需要
修改的地方会很零散、不易整理。
藉引入函式库(libraries)或套件(packages),这类「通用」的程式码
我们可以重用已开发、经验证的函式(functions)或是类别(classes);
使用这些程式码程式的可靠度不仅大大提升、也省却了每次都要重新设
计常用的类别(如:资料库连线)。
Frameworks是经开发、并组织过的函式库,目的是为了协助、并加速软
体开发。善用 Frameworks最大的好处是可以避免为了一些琐碎的程式
码加班,早点下班去约会。
提了那麽多...
我想推荐一套 PHP 的 Framework 给大家玩玩。
Code Igniter (
http://www.codeigniter.com/)
是我目前用过最棒的 Framework。它有丰富的参考文件(well-documented)、
支援 php4 和 php5、并内建了许多实用的 helper, plugin ...
此外可以轻易的自行扩展它的 lib
然而使用上需对「物件导向」与「Model-View-Controller」的设计样式有一
定的熟练度。
如果已经熟悉 OO 和 MVC 的概念与实作方式,那麽应该会发现这套 Framework
的学习曲线,刚好紧接着 PHP - 大致上都是对现有的 PHP基础做完全的延伸。
就连 View 的部分,也是以 PHP scripting 为主,不需要学习其他样板引擎(
如:Smarty)的 template 语法(但是如果有需要,可以自己挂上去)
快又有效,是我对 Framework 和感冒药的期许。
这套 Framework 恰巧满符合我的期望。
PS: 网站上可以点选看看 watch in action,它以影片展示 Framework
的开发方式;看过之後可以抓到 MVC 的概念和 framework大致的
使用方式。另外,可以看看 document (Read the User Guide)
里头那丰富的范例与解说 :)
--
「640K ought to be enough for anybody.!」
- Bill Gates -
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.199.121
1F:推 PsMonkey:虽然看不太懂,不过还是来推一下... 12/17 19:43
2F:推 foxzgerald:(让人看不懂 >"< )... 是观念有误嘛? 还是文辞不通顺? 12/17 20:13
3F:推 PsMonkey:大喊:我没写过 PHP... 这个理由够充分了吧 [挺] 12/17 20:32
4F:推 rushcat:虽然我也看不懂 但也要推一下!!! 因为是新手...XDDDD" 12/17 20:49
5F:→ foxzgerald:大家都从新手学起的阿 XD 12/17 20:53
6F:→ ileadu:ㄟ我也想用,但是看不懂别人写的东西,只好自己也来写一个 12/17 21:07
※ 编辑: foxzgerald 来自: 140.119.199.121 (12/17 22:04)
7F:推 foxzgerald:我修改了一些内容,希望内容能够更通顺流畅 12/17 22:05
8F:→ foxzgerald:我用这 framework 大概一个月了,期间写了两个小专案 12/17 22:06
9F:→ foxzgerald:如果有什麽问题,可以一起讨论 :) 12/17 22:08
10F:推 superGA:大推这篇!! 我正在寻找framework 12/17 22:41
11F:推 nightmarelee:推一下!其实我自己也有在包自己的Framwork..... 12/17 22:44
12F:→ nightmarelee:我现在自己包的东西真是超级阳春 0.0 12/17 22:45
13F:→ nightmarelee:\看完这套的功能 12/17 22:46
14F:推 bobju :原来这已是两年前的文章, 还是要推. 11/22 20:12
没想到时间过这麽快 :P .. 我重新顺了一便文路,
希望文法能更贴近一般人常用的中文 XD
※ 编辑: foxzgerald 来自: 61.223.228.207 (11/22 20:56)
15F:推 chchwy:推推 真是好文 10/18 16:36