新人剛接觸 PHP,哪種框架比較容易上手?
12-27
接觸php不久,但想了解下PHP框架,熟悉下MVC的思想,之前都沒接觸過這類框架,想問下大家有什麼好的框架可以推薦,考慮的出發點又是什麼。特別是對於新人~
我習慣看英文的Framework,在StackOverflow和Quora也看了許多討論,其實框架這個東西,很大程度上是習慣的問題。還有一點,就是要選一些經常維護的框架。如果學了一些冷門的框架,結果人家不維護了,那其實很浪費。
總結一些我用過的幾個框架:
- CodeIgniter:我曾經用的是1.7版本,代碼效率一般,因為是要兼容PHP 4的緣故。2.0之後就放棄了PHP 4,代碼更乾淨了。官方文檔非常詳細,社區也很大,用的人很多。缺點是沒有一套很好的ORM庫,默認的Model基於ActiveRecord,但是其實就是一個SQL的延伸。
- Zend:所謂的官方PHP框架,架構很鬆散,可以按需要取用。一開始不是很好學習,但是如果真正懂了的話效率也很高。由於有Zend在背後,所以不會擔心不維護的問題。缺點是文檔雖然看起來很多,但是並不容易看懂。
- Symfony:應該是法國人的老牌Framework,非常龐大,適合企業級別的項目。許多配置用YAML,而且對於環境的要求很麻煩,我簡單看了看就放棄了。
- Yii:應該是華人開發的,以前和朋友開發的時候用過,Performance很不錯,但是裡面的Coding Style不是很喜歡,文檔也不錯。
- Kohana:曾經是基於CI的,但是後來重寫了代碼,但是繼承了CI的哲學。HMVC架構並不是很容易學,但是代碼非常乾淨,高效。自帶的ORM也不錯,缺點是文檔不全面。
- 編輯1:差點忘了CakePHP:這是我接觸的第一個框架,也是最像Ruby on Rails的框架,Bake script可以自動生成許多東西,但是我反而不是很喜歡自動生成。運行比較慢,大概是overhead太多的緣故。支持PHP 4,但是後來幾個核心成員新建了一個PHP 5.3的框架叫Lithium (http://lithify.me/),原生支持MongoDB,我只看了看文檔,還沒有用。
上面是常見的框架,也都是全面的框架。下面有一些冷門的,輕量級的:
- Slim Framework:我個人最喜歡的輕量級框架,基於RESTful route組織的,壓縮包才80KB。繼承了Sinatra和Web.py的哲學,我跟作者以前討論過,他在1.5從Singleton換到了Instance,我反而覺得沒必要,我很喜歡1.3版本。這不能算是一個full stack MVC framework,也沒有強制要求OO。
- LightVC:這個更輕量(壓縮包24K),只提供VC,不提供Model,做著同時謝了一個ORM叫CoughPHP,配合起來不錯。
- Flourish Lib:這不應該是一個框架,而是一些Library的集合,裡面許多Lib很好用。
最後再推薦一個ORM,一般流行的是Doctrine和Propel,我自己最愛的是RedBean。現在開發都是用Slim來做Route,從Flourish拷貝一些代碼,再用RedBean來做ORM,雖然看起來很繞彎,到時我自己習慣了,駕輕就熟也就OK。
我比較推薦CI-codeignighter.
說下幾個理由:- 成熟的開發社區,有一幫人和你一起在學這個框架,你不懂的時候可以問,在國內有中文社區(http://codeigniter.org.cn/)。
- 相對容易的學習曲線,對比zendframk,它的語法還是相對簡單很多,而且有一些配套的書籍可以參考,雖然比較舊了,但還是有參考價值。
- 詳細的幫助文檔,ci的官方博客上有UserGuide,可以幫你迅速了解相關的語法和功能,非常的詳細,而且ci框架本身也做了非常多的注釋。
總結:可以說,ci對於初學者來說,是一個非常不錯的框架,上手容易。
附註:參考書籍列表CodeIgniter for Rapid PHP Application Development
http://book.douban.com/subject/3065901/
強烈不建議新手上手框架!
另外,yii和CI有什麼關係??
如果剛接觸PHP的話,我建議不要先碰框架。框架裡面有很多提煉的東西在裡面,容易讓人知其然而不知其所以然,不利於基本功的訓練。
MVC是一種編程的思想,和框架關係不大,你可以很熟悉MVC而不熟悉框架,你也可以很熟悉框架而不熟悉MVCPHP中沒有像http://ASP.NET那樣的MVC架構,像CI都是通過router的方式實現MVC,個人建議還是先從基礎的學起,深入學習後再使用框架。當你再使用CI, Zend 等PHP框架時,你會發現其實本質上都是差不多的,知其然,更知其所以然。
PHP新人,建議先掌握PHP,以後再學習及考慮框架。
PHP框架,看自己喜愛吧。
個人感覺也是CI比較好,而且往深處也很多東西可以挖掘,比如鉤子機制、框架流程、面向對象、擴展框架核心等等
首先,Yii不是基於CI開發的,就連Kohana也和CI沒有多大關係,CI只是一個類庫(支持PHP4),而kohana是更加高級一點的mvc。Yii呢是PHP頂極框架,只有symfony和Yii有得比。但是symfony太龐大,太慢,而且個人感覺實現也沒有Yii優雅。
建議新手現學習ci或者kohana,做了一兩個案例後如果時間足夠嘗試Yii吧。zend framework、thinkphp即不簡單也不優雅。
我也剛剛開始結束php,我的老師說先寫個留言本,cms,完整的,以後再考慮哪些東西.
推薦使用thinkphp,簡單、容易上手
國內的話,英文不是很好的推薦thinkphp或者CI文檔都比較全。
英文好點的推薦yii
新人建議先學PHP基礎。。。
建議還是選學好PHP基本先吧,再考慮一下CI、SpeedPHP、ThinkPHP,後面兩個中文文檔比較齊全。
學習的話我覺得初學者不要用框架!還是自己動手寫寫源碼吧!如果想快速構建應用可以考慮thinkphp 和codeigniter。
php固有的缺點,導致php的框架一定要輕量,推薦thinkphp,官方文檔比較全(對初學者相當重要),而且源碼中文注釋詳細,看了一遍源碼後,就幾乎能完全掌握整個框架的運行機制,有利於你在thinkphp基礎上二次開發或重構
CI用來學習MVC很不錯,實際開發,推薦用國產的thinkphp~
不過如果長期從事二次開發的話,還是比較推薦學習設計模式,而不是框架,因為多數系統目前並沒有採用開源的通用框架,一般還都是量身定做的!所以還是推薦學習設計模式~
剛接觸PHP的還是推薦先不要這麼快接觸框架,接觸框架可能有一個很大的原因是大家都在用,而且可以很快的開發出一個應用,但是作為新手(如果沒有其他語言的編程經驗)還是推薦不用框架寫東西,可以接觸到更多的東西。天才不在此列。
國內的thinkphp or qeephp
yii很優秀也
看一些開源的cms或者論壇系統的代碼吧,框架什麼的,等熟悉了一點再看去學習
我覺得示php用來做內容展類的網站還好,做業務邏輯還是用其它語言好(後台的業務處理可以用任何語言的)。我來覺得php的使命是用做內容展示類的網站。CMS有很多精巧、優美的例子,如wordpress、 drupal. 我非常喜歡wordpress,就用10個表實現了豐富的內容展示功能。
推薦閱讀:
※PHP 的哪個 MVC 框架值得推薦?
※YII 框架的優點有哪些?
※怎麼在網上找到簡單的 PHP 實例?
※如何從頭開始學習 PHP?看教程,從 WordPress 入手怎麼樣?
※關於 PHP 的好書有哪些?