2137浏覽量

2013年最流行的php框架盤點

來源: 時間:2013-05-31

2013年最流行的php框架盤點

PHP框架的發展背景

毫無疑問,Web框架技術在近幾年已經得到了突飛猛進的發展和普及,在過去(qù)幾年裏,框架技術的普遍經曆了比較大(dà)的完善過程,很大(dà)一(yī)部分(fēn)可以歸因于Ruby on Rails,以及在其他編程語言中(zhōng)流露出的MVC框架思想。
如果你是一(yī)個PHP忍者,而不是一(yī)個鐵杆的Ruby追随者,你也許會驚奇市面上已經有這麽多的框架,哪一(yī)個才是适合你的。當然回答和個問題取決于的諸多因素,今天我(wǒ)們将會回顧一(yī)下(xià)這個典型的問題,如何爲你的下(xià)一(yī)個應用系統選擇适合你的PHP框架。
同時我(wǒ)們也來看一(yī)下(xià)比較流行的PHP框架,比較一(yī)下(xià)他們的區别,這樣可以幫你自己做出明智的選擇,找到最适合你項目的框架。

明确你的需求

在你決定爲你的項目選擇一(yī)個框架之前,你當先理解需要,需求和了解一(yī)些開(kāi)發團隊幕後的工(gōng)作,我(wǒ)們總結出了如下(xià)幾個問題,在開(kāi)始下(xià)一(yī)步之前你可以試着問問自己。

你的應用程序主要集中(zhōng)于解決哪些問題?
你的應用可以是一(yī)個電(diàn)子商(shāng)務平台,一(yī)個社交網站,消息共享平台或者活動目錄,舉例來說,如果你正在構建一(yī)個電(diàn)子商(shāng)務網站,你也許更希望選用一(yī)些具有 用于處理信用卡和交易會話(huà)的成熟的擴展函數庫的框架。另一(yī)方面,如果是一(yī)個輕量級的消息平台(比如說微博類系統),則你也許更應該注重快速的擴展和跨服務 器跨數據的支撐訪問能力,爲了實現負載均衡和快速連接訪問。

你的主機運行環境将是什麽?
有些特殊的框架會需要使用到一(yī)些非默認的其它PHP擴展或者軟件安裝在服務器上,比如,有些框架的數據抽象層必須要求通過PDO來實現訪問,而非直 接調用更底層的MySQL或MySQLi,或者有些類似wiki類的程序的圖像壓縮和處理功能往往需要使用到ImageMagick 或 Graphiviz 這些外(wài)部程序。而這些擴展也許并不會被所有的共享主機環境(虛拟主機)支持,此外(wài)即便是一(yī)個輕量級的小(xiǎo)型框架,而且自我(wǒ)集成了所有所需的函數庫并且也具有 良好的可移植性和适應性,這樣的框架應用在處理數據密集型的操作或者大(dà)型數據處理的系統時,性能又(yòu)會成爲它的主要瓶頸。
我(wǒ)曾經有一(yī)次印象深刻的性能優化經驗,當我(wǒ)們爲 http://i.openbiz.cn 這個網站進行性能優化分(fēn)析的時候,我(wǒ)的同事總是抱怨爲什麽加載一(yī)個頁面居然需要10秒那麽久,而我(wǒ)根本看不到這個現象,後來發現應爲我(wǒ)開(kāi)發時候主要用的語 言是英語,而他QA所使用的語言版本是中(zhōng)文,我(wǒ)們實現代碼内是依賴Zend_Locale這個擴展來實現一(yī)些常用字符的國際化,例如$=>¥的現實判别和貨币、數字顯示方式等,而Zend在這方面卻是做的很全面支持了上百個國家的信息,而通過xhprof分(fēn)析後發現,因爲zend在爲每一(yī)個字符串做現實處理的時候都通過SimpleXML接口 進行了大(dà)量的數據查詢,這個活兒居然開(kāi)銷了9秒,最後我(wǒ)們還是換了一(yī)種更輕量的方式來解決這個問題,畢竟我(wǒ)們要面對的不是實現全球兩百多個國家的顯示支持,目前也就中(zhōng)國、美國、香港、台灣5個主要地區而已。

你的開(kāi)發人員(yuán)或團隊的優勢和劣勢在于什麽?

如果你是個項目經理,一(yī)個重要的事情是了解清楚你的具體(tǐ)開(kāi)發人員(yuán)他們的能力和弱勢,因爲他們是真的悶頭幹活兒人,所以也許你可以選擇一(yī)些更加面向開(kāi) 發人員(yuán)友好的容易上手的框架。當然這個問題的也許并不是影響決定是否采用一(yī)個框架的決定性因素(不斷地要求自己和團隊學習新的技術總是好的),但着絕對是 一(yī)個會影響到你的時間表、預算和安全等多方面因素的重要考量條件。

如何在高耦合性 還是 低耦合性 的框架中(zhōng)做出選擇?
如果從框架産品自身的耦合性來将目前主流的php框架産品分(fēn)爲高耦合性和低耦合性兩類。低耦合性的框架看起來更像是一(yī)個豐富的函數庫和邏輯封裝的抽 象層,甚至有些好的框架自身就是PHP的一(yī)個高級擴展組件,比如PDO,它絕對算得上是一(yī)個數據訪問的框架也是抽象層。還有一(yī)些其他值得一(yī)提的低耦合性框 架,比如Zend Framework,CakePHP,以及國内開(kāi)發的ThinkPHP都屬于這個範疇。 如果你将接手的項目曆史問題比較多,并且對UI的自定義比較高,你恐怕需要一(yī)個低耦合性的框架來滿足你靈活的需求。
另一(yī)方面是一(yī)些高耦合性框架的代表,比如一(yī)些由CRM衍生(shēng)而來框架類似Drupal,Joomla,還有直接就是爲了高耦合性而開(kāi)發的 Openbiz Cubi 框架,國内小(xiǎo)範圍流行的框架還有 普元 等。這些框架的最優秀的特點是可以讓你完全隻集中(zhōng)于實現你的核心業務邏輯,你甚至不用去(qù)管如何實現UI和用戶會話(huà)管理這些基礎特性,你隻需要把你的代碼和 它們提供的接口規範進行“連接”就可以了。 如果你負責的項目是一(yī)個新的項目,你肯定不希望把大(dà)部分(fēn)的時間都花在實現基礎業務邏輯上,比如可能是爲客戶公司開(kāi)發一(yī)套“停車(chē)場管理系統”,還是選擇類似 Openbiz Cubi 這樣的框架,在其之上直接去(qù)實現你的業務邏輯是最對得起你的時間預算和投資(zī)回報率的。


聯系我(wǒ)們

一(yī)次需求提交或許正是成就一(yī)個出色産品的開(kāi)始。
歡迎填寫表格或發送合作郵件至: qczsky@126.com

大(dà)理青橙科技

電(diàn)話(huà):13988578755 13988578755

郵箱:qczsky@126.com

地址:大(dà)理市下(xià)關龍都春天10層