laravel - 求推薦PHP架構,本人有一定PHP基礎。

來源:互聯網
上載者:User
本人學過PHP,現在希望學習一個PHP的架構。
通過網上查閱資料,我瞭解到以下幾個架構經常被提到:

  • ThinkPHP:國產的PHP架構,不過感覺很多人對其評價不高。
  • CodeIgniter:有人說它功能很弱,設計思想比較老。
  • Laravel:據說是國外使用最多的PHP架構,我到Github上看了看確實挺熱。但國內好像就很冷。
  • 其他:Yii?CakePHP?Zend Framework?……

求指點。

——————

8月10日:根據大家的回答,決定學習Laravel。謝謝大家的解答。

回複內容:

本人學過PHP,現在希望學習一個PHP的架構。
通過網上查閱資料,我瞭解到以下幾個架構經常被提到:

  • ThinkPHP:國產的PHP架構,不過感覺很多人對其評價不高。
  • CodeIgniter:有人說它功能很弱,設計思想比較老。
  • Laravel:據說是國外使用最多的PHP架構,我到Github上看了看確實挺熱。但國內好像就很冷。
  • 其他:Yii?CakePHP?Zend Framework?……

求指點。

——————

8月10日:根據大家的回答,決定學習Laravel。謝謝大家的解答。

選擇 PHP 架構,必須得看看 FIG 了:http://www.php-fig.org/

FIG 是 Framework Interoperability Group(架構可互用性小組)的縮寫,由幾位開源架構的開發人員成立於 2009 年,從那開始也選取了很多其他成員進來,雖然不是 “官方” 組織,但也代表了社區中不小的一塊。

組織的目的在於:以最低程度的限制,來統一各個項目的編碼規範,避免各家自行發展的風格阻礙了程式設計師開發的困擾。有四套規範:

  • PSR-0 (Autoloading Standard) 自動載入標準
  • PSR-1 (Basic Coding Standard) 基礎編碼通訊協定
  • PSR-2 (Coding Style Guide) 編碼風格嚮導
  • PSR-3 (Logger Interface) 日誌介面

本來我一直使用的是 ci 和 zend,不過正如 @shamiao 大大所說推薦的,我也正在變成一名 laravel 的粉絲。

前幾天使用 esoTalk 搭了一個輕論壇 http://bbs.justjavac.com

論壇新地址:http://discuss.flarum.org.cn/

不過作者發 twitter 表示將開發 Flarum 替代 esoTalk。理由是 esoTalk 底層代碼不夠強大,那麼新的 Flarum 系統呢,底層使用了 laravel 架構。

幾周前,還有人對 toby 大大賣萌 http://discuss.flarum.org.cn/13-esotalk-toby

強烈推薦:Phalcon, CI

Laravel重的一塌糊塗、向後相容性差不說,代碼風格方面還用tab來縮排!在當今這個4空格(PSR,PEAR,ZEND)甚至是2空格(Langspec)縮排的世界中,可謂逆水行舟,作者本人的信譽也有問題,Phil多次勸過他遵循PSR,作者答應了,FIG上也有了,卻一直不改...更遑論其鼓吹的“優雅”和“效能超CI”了。

Laravel的可借鑒之處例如:IoC,DI,eloquent,Artisan這些Phalcon全都有,效能還更好(能比這個架構快的PHP架構不多了,唯一能抗衡的是YAF吧,但YAF那社區,那文檔,呵呵了)。

Codeigniter的3.0就快要stable了,對2.0中一些領人詬病的地方也做出了相當大的改進(例如原生支援composer,高度相容HHVM等),而且CI的快速部署、易於拓展、接近原生文法(學了就知道多麼人性,多麼簡潔)的特性也使得它老當益壯,一些比較不錯的第三方庫更新頻繁,其衍生架構Bonfire也是生機勃勃。

CI的主要缺點是:

  1. 缺少IoC/DI/ORM
  2. 缺少命名空間(其實我在用laravel的1年時間裡也沒見多少項目有貫徹通透的)
  3. 使用了單例模式(該模式已經considered an anti-pattern!)

至於Yii/ZendFramework/CakePHP/Slim/Swole/Symfony/Swoole,這幾個架構,由於我本人沒有接觸過,所以沒有資格評論,但就印象而言,這幾個架構實在是讓我打不起興趣學習。

看下 Github 最受歡迎的 PHP 開源項目, 跟著大家走, 准沒錯 https://github.com/search?l=PHP&q=+stars%3A%3E0&ref=searchresults&type=Repositories

個人推薦:PhalconLaravel4

http://segmentfault.com/q/1010000000435088

如果想短周期上手thinkphp ci

其他 laravel yii phalcon

生命苦短,我用Slim

理由?因為Slim不用學,開箱即用

個人強烈推薦學習 Symfony

優點:
1. 文檔非常齊全
2. 社區非常活躍
3. 企業級的架構,適合項目從小到大不斷迭代的各個階段
4. composer、自動化、命令列
5. 命名空間,完全物件導向的設計
6. 大量第三方包,加速開發進程
7. 設計非常棒的生產環境和開發環境,開發環境下完善的異常提示
8. 熟練後開發速度非常快,這個快不在於很快出一個demo,而在於能很快出一個完整的產品

缺點:
1. 具有較高的學習曲線,要花功夫去學會,新概念非常多,但學會後便是優勢
2. 效能相對較差,但是後期有大量方式去最佳化效能
3. 還是學起來的時候會比較累,但是文檔特別全,只要你肯花功夫就沒有問題

第一個層次是PHP技術的深度學習:如PHP字串、數組、檔案和PHP的進階特性以及PHP運行原理等; 第二個層次是Web技術的深度拓展:如深入Http協議、Linux技術、Web伺服器技術、前端JS技術、MySQL和NoSQL技術等;第三個層次是編程思想和能力的拓展:如資料結構和演算法設計、設計模式、好代碼的原則和技巧、大規模網站開發技術等。
按照這個提綱學下去吧:http://www.sijiaomao.com/course.htm

Yii

很簡單,去招聘網站,把這些架構一輸入,看哪個熱門學哪個,這也算是一種趨勢。
ps:我公司用的是yii

可以先熟悉一些微架構如slim,silex,之後可以重點看下symfony的組件

https://github.com/lloydzhou/router
可以看看,算不上架構,只是個路由控制器,很精鍊

強烈推薦學習laravel,你會發現在學習過程中,你會學習到架構之外的更多知識
1.如何翻牆,因為composer的安裝和使用在牆內的速度是令人髮指的
2.如何翻譯,因為laravel的文檔大部分是英文的,比如laravel5.1是6月發布的,直到今天10月19日,完全漢化的文檔還是沒有。
3.如何撕逼,你要對面用TP的人的不理解,用Yaf的人的鄙視,用Yii的人的試探的目光
4.如何營運,項目上線後,面對效能低下的問題你需要redis memcache opcache php7 hhvm 等等等最佳化效能的方案

PHP的架構都大同小異,個人覺得關鍵還是看項目的需求來選擇架構。或者說你是要找一個架構來進行什麼業務的開發,還是說是為了看架構的源碼

laravel
必須推薦

推薦laravel

我用thinkPHP

不多說。YII 原因看這裡:
http://segmentfault.com/q/1010000000500665#a-1020000000632699

沒人推薦YAF嗎?新浪微博和百度貼吧都是用這個C語言寫的PHP架構

http://www.laruence.com/manual/

我推薦CI 或者 TP3.1.x。
用過TP 3.2.x TP3.1.x CI cakephp laravel。
一開始覺得CI太簡陋,其實他擴充性最強大。TP 3.2問題真的很多。
TP 3.1.x也是一個不錯的選擇

只感覺Yii不錯

Laravel 你不會失望的

thinkphp 實用 挺好
用 Laravel 高大上

選擇yii你不會後悔,選擇了tp你會後悔。

thinkPHP坑還是不少的,有設計失誤,沒人管,目前作者失蹤,issue沒人管.目前教程就thinkphp.cn這一個地方有,一本完整的書都沒有,大牛可以用,初學者千萬別用

這個要看你學架構來做什麼樣的網站了

個人喜歡邊做項目邊學東西,通過實踐學來的東西比較實在,你可以先想一下自己打算做一個什麼項目,項目周期多長。然後根據項目大小、周期和自己的能力來選擇架構進行學習實踐。

Good Luck!

PS. 這個是我用CI架構寫的中國版Reddit -- 《91頭條》

我只用過Yii 所以只能推薦它了
Yii學習曲線比較陡 自學入門時比較難 掌握了就好了 開發很快的
(我本來想贊同那些回答Yii的,但是聲望不夠

推薦YAF架構

用laravel寫了些東西,感覺還是不錯的。

我的建議是:
要是個人業餘時間玩玩,三個架構,做個簡單的使用者登入,或留言板,那個順手用那個。別人在多的建議也代替不了你個人的主觀感受。自己嘗試為主。
要是上班以此為飯碗,我建議三個都學一學,從一個長遠的打算來看,每個公司的策略與技術曆史不一樣,所以都瞭解一下,而且架構都有很大的相似性,就我個人瞭解,ci與tp其實是很像,只是一個抓住了國人目前的技術心理,更方便,更傻瓜一點而已。或者目前在上班公司用那個就學那個,業餘自己折騰在多的東西,不如在公司跟同事們一起奮鬥需求變化萬千的實際項目。

你們說的架構效能是怎麼測出來的,就寫一個hello,world就算測試過了嗎?
不過不推薦Laravel這架構,推薦Phalcon這個架構,誰用誰知道

微架構推薦Slim和Silex,後者更重量級些不過和Symfony的組件可以很好混用,前者基本可以視作Sinatra PHP版,也很贊,有個叫TextPress的開源的輕量級flat-file部落格引擎就是用的它,可以作為不錯的學習參考。
重量級的主要就是Zend Framework和Symfony吧,太複雜沒玩過不置評。
近幾年流行起來的值得一提的還有Laravel和Phalcon,前者是截至目前GitHub上星數最多的PHP架構,很好上手,後者是效能第二高的PHP架構,幾乎全部的功能都用C實現,第一高的是Yaf不過Yaf的代碼風格是PHP 5.3以前的,不夠現代化,功能也比Phalcon少……
此外還有國產的ThinkPHP,對各類國內PaaS運行環境如ACE,BAE,SAE進行了最佳化,而且中文文檔完善,也是不錯的選擇。

Symfony是一定要學的,代表了PHP架構裡最先進的設計思想,開發人員靠譜,社區活躍,基於組件,低耦合,高重用;

Laravel和Drupal都是基於Symfony的;

新手不推薦C擴充的架構;

其實新手thinkphp上手快,文檔多,只適合新手。。

但是貌似tp有一點點的問題

ci, 必須的。

Symfony2 ,一定要學,它有著先進的設計思想,代表 PHP 最先進的生產力!

symfony2正在學習,一起共勉吧

我的一個開源架構,如果可以有興趣可以一起研究發展

我之前一直在糾結Laravel和Phalcon,不過寫完幾個demo後我就果斷選擇了phalcon,laravel真的很臃腫,一個PHP架構甚至比Symfony還重是無法接受的。相反,phalcon跑起來飛快,設計優雅,寫起來十分舒服。另外,phalcon 2.0之後是一個跨越,以後很多非controller層的代碼可以封裝到擴充中,這個效能想想就激動。不過選架構這種事情跟找女朋友差不多,不是非得追求最漂亮的,適合自己就好。

最近看到 slim這樣的小架構 感覺不錯

symfony

看來Kohana 是沒人用了_(:з」∠)_

PHP所有的架構都類似,學會一種後再學習其他的架構都比較簡單了,

新手就用Yii吧

鳥哥的Yaf架構不錯的

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.