PHP 開發工具三部曲 Episode III - 導入 framework 框架 [ Zend Framework ]
上個星期與大家介紹過開發工具的前兩項,ZEND STUDIO 與 ZEND SERVER,既然前面都介紹 ZEND 家的東西了,很多人應該都知道那最後一個一定是 ZEND framework 了,不過如果侷限在 ZF 的話,也不太對,因此就把標題放在導入 framework 上了。
四種目前主流的 framework 框架:圖片來源 ZF 讀書會 ( 目前讀書會以不侷限為 ZF )
以目前來說主流的 framework 有四種,如上圖,其包含了
- CakePHP
- Codeigniter ( 簡稱 CI )
- symfony
- ZEND framework ( 簡稱 ZF )
這些 framework 大多提供 MVC結構,自定義的API函式,每一家提供的都不太一樣,在 ZEND framewrok IN ACTION 這本書中大致提到各個 framework 的差異性。
|
Feature |
ZEND framework |
CakePHP |
CodeIgniter |
Symfony |
| uses PHP5 to full advantage | Yes | No | No | Yes |
| Prescribed directory structure | No (Optional recommended structure) | Yes | Yes | Yes |
| Official International-ization support | Yes | In progress for version 1.2 | No | Yes |
| Command line script required to setup framework | No | No | No | Yes |
| Requires configuration | Yes (minor amount) | No | No | Yes |
| Comprehensive ORM provided | No | Yes | No | Yes (Propel) |
| Good documentation and tutorials | Yes | Yes | Yes | Yes |
| Unit tests for source available | Yes | No | No | Yes |
| Community support | Yes | Yes | Yes | Yes |
| License | NEW BSD | MIT | BSD-style | MIT |
好吧,其實呢這張表也不能代表我們一定要選擇甚麼 framework ,每個人(或是公司)在選擇導入 framework 時都有他的考量在,而我們則是偏向使用 CI 以及 ZF ,為什麼使用這兩個呢?
首先談到 CI ,CI 大小較小,速度也快,並且可以執行於 PHP 4 環境,而且以台灣來說繁體中文化文件已由 wuboy 完成中文化約 80%~90% 的內容,可以參考 中文繁體 CodeIgniter ,簡單來說呢 CI 短小精幹,可以簡單用但是也可以依照這個架構繼續發展,並且官方也提供一個簡易的教學影片,以入手來說,只要對於 PHP 有基礎概念,開發過幾個專案,並且稍微了解設計模式MVC,應該可以無痛入手,除了在使用上會遭遇到一些路徑上的問題,其餘基本上應該沒有太大的問題。
接著談到 ZF , ZF 我們也是剛看不久,不過對於 ZF 我應該很多人都不陌生,因為如果你開發 FLEX 的應用程式如果遇到 PHP remoting ,如果 AMFPHP 不看,那就只剩下 ZENDAMF 了,而且他的API主持人也就是 AMFPHP 的創始人。即便是沒有開發過 FLEX ,如果開發的專案遇到要使用一些 GOOGLE API ,官方也會丟 ZF 的 MAP,日曆,等等的API,所以如果不想要用 ZEND 的 MVC 架構,也可以單獨使用 API 來使用,而如果要使用 ZF 的架構,則是規則較嚴謹,包含 CLASS 名稱 FUNCTION 名稱都會要求,並不像 CI 如此隨興。
至於 CakePHP 與 symfony 在第一次要導入 framework 時,因為還是 CI 有一些教學影片,以及由 wuboy 所翻譯的中文文件實在帶來頗多的學習線索,不過也是聽說很多人說到 CakePHP 的架構直覺,而置於 symfony 則在對岸的論壇上看到有人提過架構比 ZF 更為複雜,而經由友人透露,symfony 有主導核心人員目前也是跑來台灣的 YAHOO 上班,並且有另外一套 framework ,所以我想應該也是不錯的 framework 。
不過依照公司的需求因此我們是選擇的 CI 與 ZF ,這絕對不是因為他們的名字最短最好記~~~
是不是一定要用 framework ?
這一句話是我最常聽到客戶詢問的問題,經常有人會說,framework 會不會不維護了,之後其他人是否有能力維護,是不是要請其他人維護的時候是不是會變成請的人有門檻限制,網站執行速度會不會變慢。
其實不用 framework 也是可以製作完成一個網站,尤其是個人獨立作業,想要叫甚麼名字就叫甚麼名字,愛引入甚麼檔案就引入甚麼檔案,檔案結構愛怎麼建就怎麼建,反正開發的時候也沒人會問你,而開發結束後如果要修改,後面DEBUG的人也很有福爾摩斯的偵探能力,可以從第 N 階被崁入的第 N 個檔案都可以正確的找出來,而反正老闆是給你月薪,因此每個 FUNCTION 都可以重新再做一個輪子,做完四個輪子發現隔壁間似乎比較幸福就到別人家在重新做幾個輪子出來。
為什麼要用 framework
- 專案有時間壓力時,我們是要組裝車子零件,而不是輪子的製造商。
- 這次專案製作完,也許下一個人並不是福爾摩斯。
- 當兩個人以上同時開發時,不會A工程師把資料庫模組放在 model/ 下,而 B 工程師放在 panda/ 底下
- 做為一個共通性的結構歸納法則。
基本上呢,framework 比較類似一個工具箱
當然如果不喜歡人家的,你也可以自己打造一個工具箱,只是,我覺得那像之後的人會蠻辛苦的,試想,當你美進入到一家公司,你永遠在 FOLLOW 前一位同事大師所打造的架構,並且翻箱倒櫃的找到程式碼,雖然,目前大家都在做這樣的工作,畢竟大家都是領月薪的。
發一個活動好了,簡單的貼上你的偵探工作吧,不過請把機密資料馬賽克喔~~
我之前的工作是在這一萬三千多個檔案中找出哪個檔案 include 了哪些檔案,並且在各種版本中找出到底用了哪些程式並且修改,當然最可惡的是找出 DB 資料所在的檔案。當我好不容易看完這個架構,卻對我下一個工作項目沒有任何幫助。
Random Posts
Loading…
相關文章 :









近期回應