本人學過PHP,現(xiàn)在希望學習一個PHP的框架。
通過網(wǎng)上查閱資料,我了解到以下幾個框架經(jīng)常被提到:
求指點。
——————
8月10日:根據(jù)大家的回答,決定學習Laravel。謝謝大家的解答。
認證0級講師
Il est recommandé d'apprendre le framework Laravel, qui est utilisé par de nombreuses entreprises et qui est utile pour le travail et la carrière.
選擇 PHP 框架,必須得看看 FIG 了:http://www.php-fig.org/
FIG 是 Framework Interoperability Group(框架可互用性小組)的縮寫,由幾位開源框架的開發(fā)者成立于 2009 年,從那開始也選取了很多其他成員進來,雖然不是 “官方” 組織,但也代表了社區(qū)中不小的一塊。
組織的目的在于:以最低程度的限制,來統(tǒng)一各個項目的編碼規(guī)范,避免各家自行發(fā)展的風格阻礙了程序設計師開發(fā)的困擾。有四套規(guī)范:
本來我一直使用的是 ci 和 zend,不過正如 @shamiao 大大所說推薦的,我也正在變成一名 laravel 的粉絲。
前幾天使用 esoTalk 搭了一個輕論壇 http://bbs.justjavac.com
論壇新地址:http://discuss.flarum.org.cn/
不過作者發(fā) twitter 表示將開發(fā) Flarum 替代 esoTalk。理由是 esoTalk 底層代碼不夠強大,那么新的 Flarum 系統(tǒng)呢,底層使用了 laravel 框架。
幾周前,還有人對 toby 大大賣萌 http://discuss.flarum.org.cn/13-esotalk-toby
強烈推薦:Phalcon, CI
Laravel重的一塌糊涂、向后兼容性差不說,代碼風格方面還用tab來縮進!在當今這個4空格(PSR,PEAR,ZEND)甚至是2空格(Langspec)縮進的世界中,可謂逆水行舟,作者本人的信譽也有問題,Phil多次勸過他遵循PSR,作者答應了,F(xiàn)IG上也有了,卻一直不改...更遑論其鼓吹的“優(yōu)雅”和“性能超CI”了。
Laravel的可借鑒之處例如:IoC,DI,eloquent,Artisan這些Phalcon全都有,性能還更好(能比這個框架快的PHP框架不多了,唯一能抗衡的是YAF吧,但YAF那社區(qū),那文檔,呵呵了)。
Codeigniter的3.0就快要stable了,對2.0中一些領人詬病的地方也做出了相當大的改進(例如原生支持composer,高度兼容HHVM等),而且CI的快速部署、易于拓展、接近原生語法(學了就知道多么人性,多么簡潔)的特性也使得它老當益壯,一些比較不錯的第三方庫更新頻繁,其衍生框架Bonfire也是生機勃勃。
CI的主要缺點是:
至于Yii/ZendFramework/CakePHP/Slim/Swole/Symfony/Swoole,這幾個框架,由于我本人沒有接觸過,所以沒有資格評論,但就印象而言,這幾個框架實在是讓我打不起興趣學習。
看下 Github 最受歡迎的 PHP 開源項目, 跟著大家走, 準沒錯 https://github.com/search?l=PHP&q=+stars%3A%3E0&ref=searchresults&type=Repositories
個人推薦:Phalcon
、Laravel4
http://segmentfault.com/q/1010000000435088
個人強烈推薦學習 Symfony
優(yōu)點:
1. 文檔非常齊全
2. 社區(qū)非?;钴S
3. 企業(yè)級的框架,適合項目從小到大不斷迭代的各個階段
4. composer、自動化、命令行
5. 命名空間,完全面向對象的設計
6. 大量第三方包,加速開發(fā)進程
7. 設計非常棒的生產(chǎn)環(huán)境和開發(fā)環(huán)境,開發(fā)環(huán)境下完善的異常提示
8. 熟練后開發(fā)速度非常快,這個快不在于很快出一個demo,而在于能很快出一個完整的產(chǎn)品
缺點:
1. 具有較高的學習曲線,要花功夫去學會,新概念非常多,但學會后便是優(yōu)勢
2. 性能相對較差,但是后期有大量方式去優(yōu)化性能
3. 還是學起來的時候會比較累,但是文檔特別全,只要你肯花功夫就沒有問題
第一個層次是PHP技術的深度學習:如PHP字符串、數(shù)組、文件和PHP的高級特性以及PHP運行原理等; 第二個層次是Web技術的深度拓展:如深入Http協(xié)議、Linux技術、Web服務器技術、前端JS技術、MySQL和NoSQL技術等;第三個層次是編程思想和能力的拓展:如數(shù)據(jù)結構和算法設計、設計模式、好代碼的原則和技巧、大規(guī)模網(wǎng)站開發(fā)技術等。
按照這個提綱學下去吧:http://www.sijiaomao.com/course.htm