[情報] PHP Framework
[推薦使用的 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
推
12/17 19:43, , 1F
12/17 19:43, 1F
推
12/17 20:13, , 2F
12/17 20:13, 2F
推
12/17 20:32, , 3F
12/17 20:32, 3F
推
12/17 20:49, , 4F
12/17 20:49, 4F
→
12/17 20:53, , 5F
12/17 20:53, 5F
→
12/17 21:07, , 6F
12/17 21:07, 6F
※ 編輯: foxzgerald 來自: 140.119.199.121 (12/17 22:04)
推
12/17 22:05, , 7F
12/17 22:05, 7F
→
12/17 22:06, , 8F
12/17 22:06, 8F
→
12/17 22:08, , 9F
12/17 22:08, 9F
推
12/17 22:41, , 10F
12/17 22:41, 10F
推
12/17 22:44, , 11F
12/17 22:44, 11F
→
12/17 22:45, , 12F
12/17 22:45, 12F
→
12/17 22:46, , 13F
12/17 22:46, 13F
推
11/22 20:12, , 14F
11/22 20:12, 14F
沒想到時間過這麼快 :P .. 我重新順了一便文路,
希望文法能更貼近一般人常用的中文 XD
※ 編輯: foxzgerald 來自: 61.223.228.207 (11/22 20:56)
推
10/18 16:36, , 15F
10/18 16:36, 15F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 20 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章
4
18
6
16