PHP架構Laravel還是Codeigniter?

來源:互聯網
上載者:User
關鍵字 PHP systemsarchitect Codeigniter performance frameworks
我最近要搞一個項目,項目不是很大,需要一定的後期擴充,關鍵要考慮的是效能與開發速度。我個人PHP基礎還行,只接觸過Smarty,對MVC略熟悉,沒真正深入學習過一個MVC架構,可以說是一個新手,請大家針對我現在的情況,給我提出些建議或者你對Codeigniter和Laravel的使用心得,多謝!(圖片引自對PHP架構效能對比http://systemsarchitect.net/performance-benchmark-of-popular-php-frameworks/

回複內容:

力薦Laravel!
順更新2015最流行PHP架構報告:
更多報告資訊:更多報告資訊:http://laravelbase.com/posts/32
這兩個架構不是同一個層級的。
CI比較接近原生的PHP,在原有PHP代碼的基礎上封裝了很多類,因為它架構簡單,所以容易擴充。從另一個角度來看,也就是沒啥架構,最最原始的三層架構。
Laravel 簡直就是一次創新,大量吸收了Java,RoR等其他架構的精華,在架構方面,已基本做到現有Php架構最佳,擴充性,伸縮性強大得一塌糊塗,非常適合團隊作戰。

對於新手來說,Laravel初看上去不太像Php的原本寫法了,所謂優雅,就是你光憑代碼就可以知道意思,而不用讀注釋,代碼精簡複用度非常高;Laravel開發人員都是PHP圈子最頂尖的高手,他們習慣用新的技術和架構,即便如此,Laravel其實上手並不難,一旦以你掌握了它的大致要點後,你會逐漸發現它在每一個方面都全面超越CI,且實用性非常高。

Laravel的核心擴充其實也非常方便(這麼強大的架構你沒事幹嘛去擴充核心:D),只不過它少量核心類的耦合度較高,你需要花點時間讀讀源碼和API。如果是自訂類,那就完全沒問題,太方便了。

P.S 歡迎大家訪問我用Laravel 5 寫的小站:LaraBase - PHP工匠之家

說句題外話:Laravel 圈子裡面有個奇葩,叫 Jeffery Way,他以前在http://tutsplus.com 當編輯的,就是專門教CI的,後來成為Laravel的死忠,現在專職 教Laravel 的視頻課程,他的網站http://www.laracast.com 可能是這個星球上關於編程方面最強大的教程,那些說Laravel資料少的可以去看看。

什嗎?英語不行? 我認為為了Laravel你可以去學習一門語言,就是有那麼值。小項目的話 ci 還是很值得推薦的(當然也得看有多小……)。

ci 最大的好處是上手容易,對新手比較友好。有多容易呢?這麼說吧,我曾經在完全不會 php 的情況下邊學邊寫,照貓畫虎,用 ci 開發了一個個人 podcast 網站,帶完整後台。

因為是老項目,ci 的中文資料和案例非常豐富。ci 本身的文檔也非常詳實,易閱讀。橫向比較的話,我認為ci 比 nodejs 上的 express 還容易入門。 由衷推薦 Laravel

Laravel是PHP 5.3之後開發的新架構,充分使用了PHP 5.3之後的新特性,不像很多老牌架構有一大堆曆史包袱。
官方文檔詳盡豐富且歸類科學,稍微有一點PHP基礎便可很快入門,寫出可用的樣本程式
核心功能大量使用Composer第三方類庫,在很多人看來這是Laravel的弊病之一,但我認為這正是其優雅設計哲學之體現。所謂 術業有專攻,專業的人做專業的事, 成熟的第三方類庫往往是專業團隊經過長時間迭代打磨的成果,比如Laravel大量選用的symfony組件,日誌庫 monolog,時間庫 carbon 都是該類別最穩定流行的庫。
我相信,短暫嘗試後,很快你便會愛上Laravel,同時會愛上Composer的便捷。

THE PHP FRAMEWORK FOR WEB ARTISANS你,值得擁有。
-------
很贊同 @謝弟 的觀點,架構的效能不是不重要,只是沒有重要到需要優先考慮的地步,在我很有限的幾年WEB開發經驗下面,我覺得90%的效能瓶頸都是在資料庫層面,PHP層面即便真地出現效能瓶頸,線性地增加PHP處理節點或者使用HHVM這種開源項目也是無痛且高效的辦法。

我認為WEB開發多數情況下是敏捷開發,因此選擇架構是大致可以考慮以下幾點:
1. 開發迅速 : 基礎組件齊全且不累贅,架構的設計哲學可以助人快速寫出優雅且高效地代碼(相對而言)
2. 文檔簡明豐富和社區活躍 : 文檔不是多就好,精心規劃 的文檔內容組織和 簡明到位的排版可以大量降低架構的學習成本,比單純的求多求全堆砌內容高明很多。活躍的社區可以確保問題被快速響應,擁有大量工具模組
3. 邏輯清晰 : 架構的代碼邏輯清晰,代碼的目錄結構清晰,輕鬆地協作開發和代碼重用
4. 可擴充和無痛版本更新 : 核心代碼低耦合 ,便於擴充,架構設計有預見性,版本升級無需大功幹戈
5. 便於測試 : 一般來說滿足了 4 ,測試都不會是大問題,Codeception,phpunit 這種第三方測試載入器很多
6. 效能 : 大多數WEB應用無需考慮架構層面的效能問題,當你真的需要考慮架構效能問題的時候,也有很多平滑地解決方案
7. 無重大BUG漏洞:這個當然最重要,不過一般來說成熟的開源架構不會有這個問題,放最後thinkphp吧,這個簡單易用,但是缺點非常明顯,在更新26個字母就用完了首先聲明一下PHP架構的效能問題真的不重要, 效能問題主要還是資料庫那塊.

再說PHP機器是可以線性擴充的, 如並發效能不足以支承當前負載, 可以加機器解決. 而且不用修改任何代碼.

理論上能線性擴充的問題都不是問題.

再說下架構吧, CI架構是一個相當簡潔的架構, 該有的它都有, 比如input過濾器, url路由, helper等等.

上手相對容易, 不過這些組件是架構的都會有, 再說它確實是老了. 很多思想跟不上時代.

Laravel 比較新, 看下了它的路由, 寫的不錯, 比ci的路由處理要方便簡單. 很多新的思想在這個架構裡面

都有體現. 而且Laravel的市場使用率是最高的, 相信大多數人選擇它是有理由的.

如果之前沒有使用架構的經驗, 建議用Laravel.

其次, 使用什麼架構不重要, 重要的是你對架構的理解以及對架構的改造能力.

所以一定要看懂架構的原始碼, 比如資料庫訪問層, url路由的原理...

上個圖(關於不同架構的市場佔有率)

大概讀過這兩者的代碼
CI的設計比較老套,且還有曆史包袱
Laravel因為是後來者,設計上更先進一些
我是傾向於Laravel的

先把你這個項目內主要的技術需求點對照到各自的文檔看看支援程度如何
然後花一天時間分別用這兩個架構寫一個使用者登入註冊什麼的對比一下試試看

至於中文文檔什麼的存不存在就不要太依賴了,幹了這行就要有啃英文文檔的覺悟只用過CI跟Yii,就UP主所描述的水平推測,CI會比較適合你,能在短期上手開發出產品
當然,CI的缺點是對物件導向的理解更偏向於簡單的封裝,基本上我還是覺得自己在做面向過程的工作(水平問題,你也可以自己設計很多類來靈活運用,但畢竟架構輕量,要完成複雜的設計還需要使用者有較高水平)本人用過Yii2和Laravel,簡單說一下。如果你們前端不怎麼好,Yii的widget是一個很好的東西。前端無壓力還漂亮。代碼結構也清晰,IDE提示較好。
Laravle我覺得思想很先進,包括程式碼群組織和php特性。但是不得不說Facades這些概念,有點過度設計。不過我覺得,前端同學很好的話,就用laravelCodeigniter 的文檔相當豐富,Laravel 4 的資料不多。 Codeigniter 相當輕量級,下載下來就能用,Laravel 4 需要用 composer 下載安裝各種第三方依賴庫,在國內下載網速很慢。Codeigniter 相容 PHP 5.2,Laravel 4 要求 PHP 5.3.7 以上。

Codeigniter 中 URL 都預設路由到某個 controller 的方法,Laravel 4 允許用 Router 自由定製,甚至可以用一個匿名函數來處理某些邏輯上相對獨立的請求,例如驗證碼圖片產生,而不必去定義一個控制器類。Codeigniter 的資料庫操作一般採用 query builder 的方式,或者叫鏈式操作,Laravel 4 支援 query builder 方式以及 Eloquent ORM (非常好用,可以單獨拆出來放在其他項目裡)。Laravel 4 內建 artisan,以及一個很好用的外掛程式 way/generators ,能夠自動產生代碼,完成資料庫 migration 等等,Codeigniter 沒有這類工具。Laravel 4 內建 phpunit 支援,可以方便寫出單元測試。

最後,推薦一個 Laravel 4 的教程 :Code Bright : Code Bright ,寫得比較通俗易懂。Codeigniter 直覺化、輕量級、易學易用。如果要你自己寫個PHP架構,出來估計就跟Codeigniter 差不多。你可以用它來寫小東西,然後慢慢擴充。Codeigniter 不會妨礙你的規劃和發展,只會規範你的程式架構。當然他的缺點也在於此:比較簡陋,很多粗話還得自己慢慢弄。不過這不就是PHP的優點嗎?如果你真的需要一個先進酷炫的架構,還是用rails是正道,甩PHP所有架構幾條街不是問題。
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.