我認(rèn)為WEB開(kāi)發(fā)多數(shù)情況下是敏捷開(kāi)發(fā)斯够,因此選擇框架是大致可以考慮以下幾點(diǎn):
1. 開(kāi)發(fā)迅速 : 基礎(chǔ)組件齊全且不累贅髓棋,框架的設(shè)計(jì)哲學(xué)可以助人快速寫(xiě)出優(yōu)雅且高效地代碼(相對(duì)而言)
2. 文檔簡(jiǎn)明豐富和社區(qū)活躍 : 文檔不是多就好,精心規(guī)劃的文檔內(nèi)容組織和簡(jiǎn)明到位的排版可以大量降低框架的學(xué)習(xí)成本辈挂,比單純的求多求全堆砌內(nèi)容高明很多衬横。活躍的社區(qū)可以確保問(wèn)題被快速響應(yīng)终蒂,擁有大量工具模塊
3. 邏輯清晰 : 框架的代碼邏輯清晰蜂林,代碼的目錄結(jié)構(gòu)清晰,輕松地協(xié)作開(kāi)發(fā)和代碼重用
4. 可擴(kuò)展和無(wú)痛版本更新 :核心代碼低耦合拇泣,便于擴(kuò)展噪叙,框架設(shè)計(jì)有預(yù)見(jiàn)性,版本升級(jí)無(wú)需大功干戈
5. 便于測(cè)試 : 一般來(lái)說(shuō)滿足了 4 霉翔,測(cè)試都不會(huì)是大問(wèn)題睁蕾,Codeception,phpunit 這種第三方測(cè)試工具很多
6. 性能 : 大多數(shù)WEB應(yīng)用無(wú)需考慮框架層面的性能問(wèn)題,當(dāng)你真的需要考慮框架性能問(wèn)題的時(shí)候债朵,也有很多平滑地解決方案
7. 無(wú)重大BUG漏洞:這個(gè)當(dāng)然最重要子眶,不過(guò)一般來(lái)說(shuō)成熟的開(kāi)源框架不會(huì)有這個(gè)問(wèn)題,放最后
做一些簡(jiǎn)單的網(wǎng)站后臺(tái)序芦,個(gè)人建議TP或者CI
laravel的組件式開(kāi)發(fā)臭杰,全程采用composer進(jìn)行安裝。屬于重量級(jí)框架谚中,語(yǔ)法優(yōu)雅硅卢,Laravel版本升級(jí)迭代,對(duì)于業(yè)務(wù)代碼改動(dòng)量很小
在架構(gòu)方面藏杖,已基本做到現(xiàn)有Php框架最佳,擴(kuò)展性脉顿,伸縮性強(qiáng)大得一塌糊涂蝌麸,非常適合團(tuán)隊(duì)作戰(zhàn)。
Laravel的內(nèi)核擴(kuò)展其實(shí)也非常方便(這么強(qiáng)大的框架你沒(méi)事干嘛去擴(kuò)展內(nèi)核:D)艾疟,只不過(guò)它少量?jī)?nèi)核類(lèi)的耦合度較高来吩,你需要花點(diǎn)時(shí)間讀讀源碼和API敢辩。如果是自定義類(lèi),那就完全沒(méi)問(wèn)題弟疆,太方便了戚长。
核心功能大量使用Composer第三方類(lèi)庫(kù),在很多人看來(lái)這是Laravel的弊病之一怠苔,但我認(rèn)為這正是其優(yōu)雅設(shè)計(jì)哲學(xué)之體現(xiàn)同廉。所謂術(shù)業(yè)有專攻,專業(yè)的人做專業(yè)的事,成熟的第三方類(lèi)庫(kù)往往是專業(yè)團(tuán)隊(duì)經(jīng)過(guò)長(zhǎng)時(shí)間迭代打磨的成果柑司,比如Laravel大量選用的symfony組件迫肖,日志庫(kù) monolog,時(shí)間庫(kù) carbon 都是該類(lèi)別最穩(wěn)定流行的庫(kù)攒驰。
我相信蟆湖,短暫嘗試后,很快你便會(huì)愛(ài)上Laravel玻粪,同時(shí)會(huì)愛(ài)上Composer的便捷隅津。
ThinkPHP,國(guó)產(chǎn)劲室,非常輕量級(jí)的東西.
ThinkPHP是為了簡(jiǎn)化企業(yè)級(jí)應(yīng)用開(kāi)發(fā)和敏捷WEB應(yīng)用開(kāi)發(fā)而誕生的伦仍,ThinkPHP能夠解決應(yīng)用開(kāi)發(fā)中的大多數(shù)需要,因?yàn)槠渥陨戆说讓蛹軜?gòu)痹籍、兼容處理呢铆、基類(lèi)庫(kù)、數(shù)據(jù)庫(kù)訪問(wèn)層蹲缠、模板引擎棺克、緩存機(jī)制、插件機(jī)制线定、角色認(rèn)證娜谊、表單處理等常用的組件,并且對(duì)于跨版本斤讥、跨平臺(tái)和跨數(shù)據(jù)庫(kù)移植都比較方便纱皆。并且每個(gè)組件都是精心設(shè)計(jì)和完善的,應(yīng)用開(kāi)發(fā)過(guò)程僅僅需要關(guān)注您的業(yè)務(wù)邏輯芭商。
CI比較接近原生的PHP派草,在原有PHP代碼的基礎(chǔ)上封裝了很多類(lèi),因?yàn)樗軜?gòu)簡(jiǎn)單铛楣,所以容易擴(kuò)展近迁。從另一個(gè)角度來(lái)看,也就是沒(méi)啥架構(gòu)簸州,最最原始的三層架構(gòu)鉴竭。
當(dāng)年接觸CI之后歧譬,才頓時(shí)覺(jué)得原來(lái)PHP開(kāi)發(fā)可以這樣爽。它的MVC架構(gòu)以及對(duì)擴(kuò)展的支持都使應(yīng)用開(kāi)發(fā)變得很簡(jiǎn)單搏存。
Yii ? Codeigniter 等等