新人剛接觸 PHP,哪種框架比較容易上手?

接觸php不久,但想了解下PHP框架,熟悉下MVC的思想,之前都沒接觸過這類框架,想問下大家有什麼好的框架可以推薦,考慮的出發點又是什麼。特別是對於新人~


我習慣看英文的Framework,在StackOverflow和Quora也看了許多討論,其實框架這個東西,很大程度上是習慣的問題。還有一點,就是要選一些經常維護的框架。如果學了一些冷門的框架,結果人家不維護了,那其實很浪費。
總結一些我用過的幾個框架:

  1. CodeIgniter:我曾經用的是1.7版本,代碼效率一般,因為是要兼容PHP 4的緣故。2.0之後就放棄了PHP 4,代碼更乾淨了。官方文檔非常詳細,社區也很大,用的人很多。缺點是沒有一套很好的ORM庫,默認的Model基於ActiveRecord,但是其實就是一個SQL的延伸。
  2. Zend:所謂的官方PHP框架,架構很鬆散,可以按需要取用。一開始不是很好學習,但是如果真正懂了的話效率也很高。由於有Zend在背後,所以不會擔心不維護的問題。缺點是文檔雖然看起來很多,但是並不容易看懂。
  3. Symfony:應該是法國人的老牌Framework,非常龐大,適合企業級別的項目。許多配置用YAML,而且對於環境的要求很麻煩,我簡單看了看就放棄了。
  4. Yii:應該是華人開發的,以前和朋友開發的時候用過,Performance很不錯,但是裡面的Coding Style不是很喜歡,文檔也不錯。
  5. Kohana:曾經是基於CI的,但是後來重寫了代碼,但是繼承了CI的哲學。HMVC架構並不是很容易學,但是代碼非常乾淨,高效。自帶的ORM也不錯,缺點是文檔不全面。
  6. 編輯1:差點忘了CakePHP:這是我接觸的第一個框架,也是最像Ruby on Rails的框架,Bake script可以自動生成許多東西,但是我反而不是很喜歡自動生成。運行比較慢,大概是overhead太多的緣故。支持PHP 4,但是後來幾個核心成員新建了一個PHP 5.3的框架叫Lithium (http://lithify.me/),原生支持MongoDB,我只看了看文檔,還沒有用。

上面是常見的框架,也都是全面的框架。下面有一些冷門的,輕量級的:

  1. Slim Framework:我個人最喜歡的輕量級框架,基於RESTful route組織的,壓縮包才80KB。繼承了Sinatra和Web.py的哲學,我跟作者以前討論過,他在1.5從Singleton換到了Instance,我反而覺得沒必要,我很喜歡1.3版本。這不能算是一個full stack MVC framework,也沒有強制要求OO。
  2. LightVC:這個更輕量(壓縮包24K),只提供VC,不提供Model,做著同時謝了一個ORM叫CoughPHP,配合起來不錯。
  3. Flourish Lib:這不應該是一個框架,而是一些Library的集合,裡面許多Lib很好用。

最後再推薦一個ORM,一般流行的是Doctrine和Propel,我自己最愛的是RedBean。現在開發都是用Slim來做Route,從Flourish拷貝一些代碼,再用RedBean來做ORM,雖然看起來很繞彎,到時我自己習慣了,駕輕就熟也就OK。


我比較推薦CI-codeignighter.

說下幾個理由:

  1. 成熟的開發社區,有一幫人和你一起在學這個框架,你不懂的時候可以問,在國內有中文社區(http://codeigniter.org.cn/)
  2. 相對容易的學習曲線,對比zendframk,它的語法還是相對簡單很多,而且有一些配套的書籍可以參考,雖然比較舊了,但還是有參考價值。
  3. 詳細的幫助文檔,ci的官方博客上有UserGuide,可以幫你迅速了解相關的語法和功能,非常的詳細,而且ci框架本身也做了非常多的注釋。

總結:可以說,ci對於初學者來說,是一個非常不錯的框架,上手容易。

附註:參考書籍列表
CodeIgniter for Rapid PHP Application Development
http://book.douban.com/subject/3065901/


強烈不建議新手上手框架!
另外,yii和CI有什麼關係??


如果剛接觸PHP的話,我建議不要先碰框架。框架裡面有很多提煉的東西在裡面,容易讓人知其然而不知其所以然,不利於基本功的訓練。

MVC是一種編程的思想,和框架關係不大,你可以很熟悉MVC而不熟悉框架,你也可以很熟悉框架而不熟悉MVC


PHP中沒有像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 的好書有哪些?

TAG:PHP | Web開發框架 | PHP框架 |