回複內容:
!--------------- created at 2014-08-23 ---------------
二話不說先來一個 Github 上 PHP 開源項目的排名 Search · stars:>0 · GitHub
, 好有個概念.
大家的回答都比較老了, 現在是 2014 年 8 月下旬, PHP 最近這幾年還是發生了很多變化, 尤其是 Laravel 的出現, 讓很多已經開始放棄 PHP 的人又從新回到 PHP 的懷抱.
離開 PHP 是因為覺得社區就是一盤散沙, 大家各種為戰, 當我想學個架構, 來提高生產效率的時候, 上 Google 一搜, 出來的就是
- 50個你必須瞭解的 PHP 架構>
- <10個最有名的 PHP 架構>....
真的很嚇人, 這麼多的架構, 我無從入手.
最後我下定決心, 把每一個架構都學習一遍, 真正在學習的時候, 頭又大了, 每一個架構都有不同的代碼規範, 不同的架構, 不同 "功能一樣調用方式不一樣的函數方法" , 可以這麼說
每一個架構都在
發明屬於自己的語言
在學到第五個架構的時候, 我就決定放棄了, 因為, 我覺得, 我雖然年輕, 但是不至於時間如此廉價的浪費掉.
後來一直聽說 Ruby 社區有一個叫 Ruby on Rails 的 Web 架構, 是全世界最好的架構, 為了用上最好的架構我開始學習 Ruby 直到接觸 Rails, 還記得第一次用 Rails 寫 Demo App 的時候, 熱淚盈眶呀, 多麼好的設計, 並且最重要的, Rails 的社區是如此理智, 大家喊得口號是
- Convention over configuration;
- DRY - Don't Repeat You;
- KISS - Keep it simple and stupid;
- Don't reinventing the wheel;
- Optimized for programmer happiness and sustainable productivity
多麼智慧, 多麼聰明, 又是多麼簡單的一些想法, 我瘋狂的愛上了 Rails.
2012 年末, 無意間在 Tuts+ 網站上看到 Jeffrey Way
的一套 Laravel 3 Essentials
( 注意: Laravel 現在已經是 Laravel 4 了, 這套課程已經 out dated 了 ) 課程, 看完以後對 Laravel 印象深刻, 從那會就一直留意 Laravel 的發展.
2013 年 6 月份, Laravel 4 發布, 整合了 Composer, 架構的可擴充性極高, 還有 100% full testing coverage.
關於 Laravel 4 的好, 我在這個問題裡面已經講了 最好的 PHP 架構是什嗎?為什嗎? , 就不複製過來了.
Laravel China:
Laravel China is ready Laravel 中文文檔
, 歡迎發起 issue 提交紕漏 和建議 --> Laravel China · GitHub
PHPHub:
最後對 PHP & Laravel 的愛好者喊一句, 我抽空弄了個社區, 歡迎加入一起討論技術, 一起成長.
PHPhub - PHP & Laravel的中文社區
一個乾淨, 純粹的, 積極向上的 PHP 中文社區
網站是使用 Laravel4 編寫的, 代碼基於 MIT Licence 開源 summerblue/phphub · GitHub
, 歡迎大家貢獻代碼.
逛知乎看到這個問題,想起了多年前的我,過來插句嘴
不聊誰優誰劣,只是談談用過的幾個架構的感受:
1. ThinkPHP 文檔全中文,易上手,對於配置環境沒什麼要求。當年上學的時候結合sae做個小站上個活動頁,很快搞定。可想加點擴充功能的時候就很懵,一是百度不到答案,二是配置起來比較麻煩。
2. Yaf 亞一程鳥哥的作品,據說是世界上最快的php架構,不少大公司的項目都是在此基礎上再開發, 用C寫的擴充,安裝的時候得編譯,有點麻煩,需要自己造很多輪子。
3. Laravel 這兩年非常火,內建的使用者權限和blade模板用起來很方便。結合composer能把你所有想寫但不會寫或者懶得寫的功能都一健懟進來,但在沒有國內鏡像的時候每次composer install/update都像是在走鋼絲,生產環境分分鐘要爆炸。文檔有中文有英文,遇到問題能從stackoverflow上找到不少答案。
跳出來說,不糾結於使用哪種架構,落地到具體的業務情境,有一套自己最熟悉的開發工具才是最實在的事情。
同樣都是菜刀,有的人用來殺豬,有的用來雕花。
況且你大部分時間不是在寫代碼,而是在改需求。 Kohana(http://kohanaframework.org/
)是我最喜歡的架構,個人從中學習了很多,它的檔案系統和結構非常清晰,擴充靈活,安全,HMVC,大量使用了PHP5的新特性,代碼非常優雅,文檔也不錯。
我個人寫的超輕微架構也要發布了。 CodeIgniter
中文資料相對比較齊全 簡潔 易學 可擴充性強
- 入門層級推薦Codeigniter。因為它比較容易上手,有很棒的文檔,有中文社區,但是它也有不好的地方,一是Codeigniter不算是完全的OO架構,二是對更大一點的項目而言,功能薄弱了一點,需要自己去拓展。
- 功能稍微強大一點的,推薦Yii。它比Codeigniter要複雜一些,文檔沒Codeigniter的好,所以花的力氣要大一些。
個人感覺是,不要太早就上架構,打好基礎還是很重要的。
smarty只是模板引擎,應該還算不上是架構吧? yii 快 全 老外一直維護,易理解,看看文檔就能快速上手了 國外的CodeIgniter,國產的ThinkPHP
看過許多架構,有些確實強大,但是非常繁瑣難懂,比較容易上手的應該屬ThinkPHP了
如果你英文閱讀能力過硬,還是建議使用國外架構,他們通常強大和健壯的多,缺點就是出現問題的時候你只能在英文世界尋找答案 強烈推薦 Yii 架構
越用越覺得強大。
程式員寫項目不就是要講究效率嗎?如果你還在為一個分頁、表單驗證花大把的時間,那你改試試這個架構了。
不然等著你的就是加班,和加班。先使用 ThinkPHP 3.2 用作初期使用,做一個完整的產品出來,在使用的過程中要閱讀它的源碼,最好是自己能去改,因為TP是基於php 5.2設計的,與php 5.3之間的差距還非常大,所以儘可能的按照php 5.3的方式來改TP,改的過程中,自然而然能理解TP的設計原理和一個PHP架構所該有哪些功能。
然後就去使用Laravel 4,因為他文法簡潔,使用composer,命名空間等,對於PHP所完成的功能塊也清晰。
最後去使用 Smyfony,因為這個架構非常的強大,他會帶給你一個完善和爽快的新世界(前提當然是你能充分地理解它的設計目的)。
在使用這三個架構時,你就會充分的理解出他們分別的設計目的和針對的Team Dev層次了。
而決定於用哪個,便是由你的項目大小、參與人數、開發人員素質多方面決定的了。 Zend