本文翻譯自 https://maxoffsky.com/code-blog/history-of...
圖片來源 Unsplash
Laravel 4 出現之前的 PHP 框架世界
PHP 5.3 版本於 2009 年 8 月釋出,它引入了名稱空間和名為閉包的匿名函式等新語言特性。這些新特性旨在幫助 PHP 開發人員更好的編寫物件導向的程式碼。儘管提供了許多好處,並指出一個光明的發展前途,但是眾多框架並未關注未來,而是側重於支援舊版本的 PHP。此時框架陣營主要包括 Symfony,Zend,Slim 微框架,Kohana,Lithium 和 CodeIgniter,CodeIgniter 可能是當中最具知名度的 PHP 框架。開發人員喜歡它的全面文件和簡單性,任何 PHP 程式設計師都可以快速開始使用它。它的創造者提供了大量的支援,和一個龐大的社群。不過時間到了 2011 年,Laravel 的創始人Taylor Otwell 認為 CodeIgniter 缺乏一些構建 Web 應用程式的關鍵功能。例如,CodeIgniter 缺少開箱可用的使用者驗證和閉包路由。Laravel 的第一個測試版本在 2011 年 6 月 9 日釋出,據 Laravel 的創始人 Taylor Otwell 介紹,Laravel 版本 1 僅僅是為了解決使用 PHP 框架 CodeIgniter 時不斷增長的痛苦。
Laravel 1
從第一個版本開始,Laravel 已經包含了內建的使用者認證,用於資料庫操作的 Eloquent ORM,本地化,模型以及關係,簡單的路由機制,快取,Session,檢視,通過模組和庫提供的擴充套件性,表單,HTML 幫助函式 等等特性。
此時Laravel 還不是一個 MVC 框架,因為它還沒有控制器功能。不過開發者們立即喜歡上這個新框架的乾淨語法,和它蘊含的潛力。在接下來的幾個月中,Taylor 新增了驗證方法,分頁,命令列包安裝器,擴充套件了 Eloquent ORM,併為框架的元件新增了數以百計的單元測試。 Laravel 在不到六個月的時間內就從版本 1 升級到了 版本 2 。
Laravel 2
2011 年 11 月 24 日私有釋出了版本 2,它在 Readme 檔案裡寫到:
“Laravel 使用簡單,富有表現力的語法來構建精彩的應用程式,將你從義大利麵條式的程式碼中釋放出來。開發應該是讓你享受的創造性體驗,而不是痛苦的事情。享受新鮮空氣。“
作為框架的第二個主要版本,它從創作者和社群中得到了一些穩固的升級。實現了以下功能:控制器支援,「Blade」模板引擎,依賴反轉控制的容器。隨著控制器的加入,該框架成為一個完全合格的 MVC 框架。開發者們很興奮 Laravel 被塑造的模樣,但不滿意取消了第三方模組的支援(在第 3 版中作為 Bundle 被重新引入)。路由和控制器可以進行混合和匹配的能力(以前流行的 PHP 框架缺乏的一個功能),強大的 Eloquent ORM,以及在框架核心中使用控制反轉的模式,這些特性吸引了更多的開發者興奮的嘗試新的 Laravel 框架。不到兩個月後,新的主要版本釋出,Laravel 3 .
Laravel 3
Laravel 3 釋出於 2012 年 2 月 22日,伴隨一個閃亮的新網站和眾多新功能。此版本專注於整合單元測試,Artisan命令列介面,資料遷移,時間,更多的 Session 驅動器,和資料庫驅動器,「bundle」的整合等等。Eloquent ORM 被重構成一個 bundle
包,並且在短時間內沒有被包含進框架。它最終被納入 Laravel 3,從那之後一直是框架的一部分。Laravel 3 是當時最穩定的 Laravel ,它足夠強大以應付各種不同的 Web 應用程式。與其他框架相比,它又足夠簡單,以及平滑的學習曲線。
Laravel 3 很快便追上了如 CodeIgniter 和 Kohana 這樣的 PHP 框架大男孩,許多開發者因其強大的功能和表現力從其他框架切換過來。眾多關於 Laravel 3 的部落格帖子,教程,評論和課程出現在網路上,Laravel 成為 PHP 世界的新熱點。關於 Laravel 的論壇持續的引導新的使用者。Laravel 3 在穩定的版本中保持了相當長的一段時間,但在框架釋出 5 個月後,框架的建立者決定從頭開始重寫整個框架,使之成為一組通過 PHP 依賴管理器「Composer」分發的軟體包。Laravel 4 在開發中的代號為 「Illuminate」。Laravel 4 是一個重大升級,其擁有全新構建的框架核心,和令人驚訝的擴充套件性。下表顯示了所有 Laravel 版本的功能比較,包括最後一個主要版本 Laravel 4(譯註:文章釋出於 2013 年 7 月)。Laravel 4 裡發生了什麼變化,以及為何會從之前的版本發生如此大的飛躍?
Laravel 版本比較
特性 | Laravel 1 | Laravel 2 | Laravel 3 | Laravel 4 |
---|---|---|---|---|
Auth | ✔ | ✔ | ✔ | ✔ |
Cache | ✔ | ✔ | ✔ | ✔ |
Eloquent | ✔ | ✔ | ✔ | ✔ |
DB Connectors | ✔ | ✔ | ✔ | ✔ |
MySQL | ✔ | ✔ | ✔ | ✔ |
PostgreSQL | ✔ | ✔ | ✔ | ✔ |
SQLServer | ✔ | ✔ | ||
Migrations | ✔ | ✔ | ||
IoC container | ✔ | ✔ | ✔ | |
Config | ✔ | ✔ | ✔ | ✔ |
Form helpers | ✔ | ✔ | ✔ | ✔ |
HTML helpers | ✔ | ✔ | ✔ | ✔ |
URL helpers | ✔ | ✔ | ✔ | ✔ |
Routing | ✔ | ✔ | ✔ | ✔ |
Controllers | ✔ | ✔ | ✔ | |
Models | ✔ | ✔ | ✔ | ✔ |
Views | ✔ | ✔ | ✔ | ✔ |
Relationships between models | ✔ | ✔ | ✔ | |
Redirects | ✔ | ✔ | ✔ | ✔ |
Response | ✔ | ✔ | ✔ | ✔ |
String helpers | ✔ | ✔ | ✔ | ✔ |
Validation | ✔ | ✔ | ✔ | |
Unit Tests | ✔ | ✔ | ||
Blade templating engine | ✔ | ✔ | ||
DB Seeding | ✔ | |||
Queues | ✔ | |||
✔ | ||||
Facades | ✔ | |||
Command line interface (CLI) | ✔ | ✔ | ||
擴充套件性實現 | 模組 | 模組 | bundle | composer 包 |
Illuminate,也被稱之為 Laravel 4
Laravel 4 於 2013 年 5 月 28 日釋出,在版本 3 之後的 1 年又 3 個月。似乎每隔幾個月都有一個 Laravel 新版本。儘管頻繁釋出新版本是框架在發展的一個跡象,不過這也降低了框架的可靠性。一些開發者抱怨「節奏太快」和「不穩定」,因為他們必須遷移到新版本,有時候因此無法在以前的架構上構建大型應用程式。社群希望有更多的穩定性,以及一些新功能和經過更好單元測試的 Laravel 元件。Laravel 4 是所有以前框架的頂端,展現了 PHP 開發的光明前景。
Laravel 4 從一開始就被重寫為一個元件(或包)的集合,它們相互融合以構成一個框架。這些元件的管理通過名為「Composer」的最佳 PHP 依賴管理器完成。Laravel 4 具有一系列之前 Laravel 版本(甚至其它 PHP 框架)所不具有的功能:資料庫種子,訊息佇列,內建郵件應用,更強大的包含範圍定義、軟刪除等功能的 Eloquent ORM。
與之前的 Laravel 版本不同,從現在起 Laravel 將有一個定期的釋出時間表 - 每 6 個月釋出一次包含程式修補和錯誤修復的小版本。隨著更多的單元測試已經覆蓋 100% 的框架功能,Laravel 4 承諾通過 Composer 軟體包提供更加穩定和輕鬆的擴充套件。
通過擁抱 PHP 5.4 的新功能,Laravel 在短短兩年多的時間裡已經走了很長的路,吸引了越來越多的全球開發者。框架背後的遠見卓識者 - Taylor Otwell 和圍繞 Laravel 的社群在很短的時間內為 PHP Web 應用程式創造了一個對未來有好的基礎架構,取得了巨大的進步。使用者與貢獻者社群的穩定增長,也意味著 Laravel 的成功。
本作品採用《CC 協議》,轉載必須註明作者和本文連結