Laravel

开源PHP Web应用框架

Laravel 是一個由Taylor Otwell所建立,自由开源的 PHP Web 框架,旨在實作的Web軟體的MVC架構,並作為CodeIgniter的替代方案。其原始碼託管於GitHub,許可條款為MIT許可證[3]Laravel的特色包含:支援用户身份驗證授權,具有模組化的套件系統且有專屬的套件庫,提供連接許多種類的關連式資料庫的方式,提供工具來協助應用程式的部署和维持,並且發展出許多語法糖[4][5][6][7]

Laravel
Laravel logo
開發者Taylor Otwell
首次发布2011年6月,​13年前​(2011-06[1]
当前版本
  • 11.3.1(2024年10月15日;穩定版本)[2]
編輯維基數據鏈接
源代码库github.com/laravel/framework
编程语言PHP
类型Web應用框架
许可协议MIT授權條款
网站laravel.com

Laravel與SymfonyZendCodeIgniter、Yii2 和其他框架一起被視為最受歡迎的 PHP 框架之一。[8] [9]

歷史

编辑
Laravel 1
Laravel在2011年6月9日發佈了第一個 Beta測試版本,並在一個月後發布正式版本 Laravel 1。Laravel 1 預設提供了身份驗證、多語系、 Model(MVC)、view、session、路由和其他機制,但缺少控制器,以至於無法成為一个真正的MVC框架。[1]
Laravel 2
2011年9月正式發佈,並由作者與社群提供了許多優化。主要的新功能包括支持 controller,使 Laravel 2 成為真正的 MVC 框架,並且實現了 控制反轉(IoC) ,和提供樣版引擎 blade。 但同時也帶來一個缺點:移除了第三方套件的支援。[1]
Laravel 3
於2012年發佈。帶來的新功能包括:命令列介面(CLI) Artisan,支持多種 資料庫管理系统、提供 migration 為資料庫做 版本控制 ,支援事件(event)的處理,以及封裝系统 Bundles。 隨著Laravel 3 的發佈,Laravel 的使用者和受歡迎程度也隨之增加。[1]
Laravel 4
代號為 Illuminate,於2013年發佈。此版本將過去的程式碼全部重寫,並將各自分散許多的套件中,並透過 Composer 管理(一個應用程式等級的 套件管理工具 )。 這樣的修改提高了Laravel 4的可擴充性,搭配其官方的六个月的小數點版本的發布計畫。其他 Laravel 4的特點包括:資料庫的 seeding (為資料庫建置初始的資料),支持 佇列(queue),支持發送不同類型的電子郵件,並支持資料庫的 軟刪除[10]
Laravel 5
2015年2月發佈[11]。 新的特點包括:提供周期性地執行任務的排程器 Scheduler,提供一個抽象層 Flysystem ,讓遠端與本地端的 檔案系統 能有相同的操作方式,提供 Elixir 以管理靜態資源,並提供了可簡化串接 OAuth 登入的套件 Socialite 。 Laravel 5 也同時修改了 目錄結構[12]
Laravel 5.1
2015年6月發佈,是 Laravel 的第一個 長期支援版本(LTS) ,並計畫提供兩年的 錯誤修正 和三年的 安全性更新 。 同時也預計未來每兩年會發佈一次新的 LTS 版本。[13]
Laravel 5.3
於2016年8月23日發佈。此版本著重在協助使用者加速開發,並提供了優化開發流程的工具。[14][15]
Laravel 5.4
2017年1月24日發佈。此版本提供了許多新功能,像 Laravel Dusk,Laravel Mix,Components & Slots(Blade),Markdown Emails,自動 Facades、路由的優化,collection 的高階函數,還有很多其他功能。[16]
Laravel 6
2019年9月3日發佈。引入語義化版本控制,兼容 Laravel Vapor,優化授權響應、Job Middleware、Lazy Collections 和 Sub-query 等功能。移除預設的前端腳手架,並轉移至 Laravel UI 套件。[17]
Laravel 7
2020年3月3日發佈。加入Laravel Sanctum為SPA(單頁應用)、手機應用等提供API token的生成和管理功能,及Stub Customization、Custom Eloquent Casts、Blade Component Tags、基於Guzzle改進的HTTP Client、Fluent String Operations、CORS Support、Query Time Casts、Multiple Mail Drivers等功能,這個版本也改善了路由綁定和緩存的性能,並為Artisan 加入了test指令。[18]
Laravel 8
2020年9月8日發佈。Laravel 8通過引入Laravel Jetstream、模型工廠類、遷移壓縮、隊列批處理、改善速率限制、隊列改進、動態Blade組件、Tailwind分頁視圖、時間測試助手、artisan serve的改進、事件監聽器的改進,以及各種其他錯誤修復和可用性改進,對Laravel 7.x繼續進行了改善。[19]
Laravel 9
2022年2月8日发布,PHP 版本最低为 8.0,引入了对 Symfony 6.0 组件、Symfony Mailer、Flysystem 3.0 的支持、改进的输出、route:listLaravel Scout 数据库驱动程序、新的 Eloquent 访问器/变异器语法、通过 Enum 的隐式路由绑定以及各种其他错误修复和可用性改进。[20]
Laravel 10
2023年2月14 日发布,PHP 版本最低为 8.1,向所有应用程序框架方法以及用于在整个框架中生成类的用户区代码文件引入了参数和返回类型。此外,还引入了一个新的、开发人员友好的抽象层,用于启动外部进程并与外部进程交互。此外,Laravel Pennant 的引入提供了一种管理应用程序“功能标志”的绝佳方法。

版本發佈紀錄

编辑

自Laravel 9開始,所有版本均提供18個月的錯誤修正與2年的安全性更新。

版本 發佈日期 PHP 版本
舊版本,不再支援: 1.0 2011年6月
舊版本,不再支援: 2.0 2011年9月
舊版本,不再支援: 3.0 2012年2月22日
舊版本,不再支援: 3.1 2012年3月27日
舊版本,不再支援: 3.2 2012年5月22日
舊版本,不再支援: 4.0 2013年5月28日 ≥ 5.3.0
舊版本,不再支援: 4.1 2013年12月11日 ≥ 5.3.0
舊版本,不再支援: 4.2 2014年6月1日 ≥ 5.4.0
舊版本,不再支援: 5.0 2015年2月4日 ≥ 5.4.0
舊版本,不再支援: 5.1 LTS 2015年6月9日 ≥ 5.5.9
舊版本,不再支援: 5.2 2015年12月21日 ≥ 5.5.9
舊版本,不再支援: 5.3 2016年8月23日 ≥ 5.6.4
舊版本,不再支援: 5.4 2017年1月24日 ≥ 5.6.4
舊版本,不再支援: 5.5 LTS 2017年8月30日 ≥ 7.0.0
舊版本,不再支援: 5.6 2018年2月7日 ≥ 7.1.3
舊版本,不再支援: 5.7 2018年9月4日 ≥ 7.1.3
舊版本,不再支援: 5.8 2019年2月26日 ≥ 7.1.3
舊版本,不再支援: 6 LTS 2019年9月3日 ≥ 7.2 且 ≤ 8.0
舊版本,不再支援: 7 2020年3月3日 ≥ 7.2.5 且 ≤ 8.0
舊版本,不再支援: 8 2020年9月8日 ≥ 7.3 且 ≤ 8.1
舊版本,仍被支援: 9 2022年2月8日 ≥ 8.0 且 ≤ 8.2
當前版本: 10 2023年2月14日 ≥ 8.1 且 ≤ 8.3
未来版本: 11 2024年第一季 ≥ 8.2 且 ≤ 8.3
图例: 舊版本 舊版本,仍被支援 当前版本 最新预览版本 未来版本

來源:Laravel[21]

功能

编辑

以下幾點為 Laravel 的核心設計理念[22]

  • Eloquent ORM (物件關係對映):將 Active Record 模式 以 PHP 實作,提供一些函式來建立 資料庫 物件之間的關聯。 依照 Active Record 模式的原則,Eloquent ORM 以 類別 代表 資料表,並將這些類別的物件實例與資料表中的單一筆資料做綁定。[23][24]
  • Query builder:於 Laravel 3 釋出,提供一個能更直接的存取 Eloquent ORM 的管道。 與其撰寫 SQL 查詢語法,Laravel 的 query builder 提供了一系列的類別與 函式,得以使用程式化呼叫的方式來執行 SQL 查詢。 同時也可以對查詢語法的執行結果做(可再被查詢的)快取。[25]
  • Application logic:在專案中將其他已開發的功能整合,顯著的案例為 Controller 的使用與路由的宣告。 其語法與 Sinatra 框架相似。
  • Reverse routing:為專案內的超連結建立成一個一個的路由,當套用了路由的超連結被修改,便會自動更新所有使用了該路由的超連結。 使用時需要填入要使用的路由的名稱,Laravel 會將他們轉換成對應的 URIs
  • Restful controllers:提供一種將 HTTP GET 和 POST requests 背後的邏輯切割的方式。
  • Class auto loading:自動載入 PHP 的類別,不須手動維護所有類別的引用路徑。類別只會在被使用到的當下才載入,避免載入不須要的類別。
  • View composers:是可自定義的一些程式碼區塊,當 view 被載入時便會被執行。
  • Database seeding:提供一種管道來把預設的資料用來填充到資料庫,便於進行软件测试,或被作為應用程式最初的建置步驟。[26]
  • Filesystem:於 Laravel 5.0 新增,統一了 檔案系統 的函式,讓本地端和 雲端 儲存空間(如 亞馬遜 S3Rackspace Cloud)的操作邏輯一致。[27]
  • 单元测试 也被整合到了 Laravel,其包括的測試案例能夠偵測並預防框架內的迴歸,並可以使用 Artisan CLI 來執行單元測試.
  • Homestead: 一個Vagrant虛擬機,預載了 Laravel 開發者需要的所有開發工具,包括 Ubuntu,Gulp,Bower 以及其他輔助網頁開發的工具。[28]
  • Lazy Collection:於 Laravel 6 新增,使用 PHP 的 generators 來處理大量資料,同時保持較低的內存使用率。[29]

官方提供的套件

编辑

可透過 Composer 以及 Packagist 安裝下列套件:

  • Cashier:於 Laravel 4.2 推出,可串接訂閱制付款服務如 Stripe,並提供 优惠券收據 等功能。[30]
  • Envoy:於 Laravel 4.2 推出,提供了簡潔、輕量的語法,定義遠程服務器上運行的常見任務,使用 Blade 風格的語法,可以簡單的設置部署任務、執行 Artisan 指令等。[31]
  • Socialite:於 Laravel 5.0 推出,簡化串接 OAuth 的流程,提供平台如 FacebookTwitterGoogleGitHubBitbucket[32]
  • Passport:於 Laravel 5.3 推出,完整的 OAuth2 服務器實現。[33]
  • Scout:於 Laravel 5.3 推出,Eloquent 全文搜尋套件,預設使用 Algolia 驅動。[34]
  • Dusk:於 Laravel 5.4 推出,易於使用的瀏覽器自動化測試套件。[35]
  • Horizon:於 Laravel 5.5 推出,以 Redis 為基礎的 Laravel 隊列儀表板和設定系統。[36]
  • Telescope:於 Laravel 5.7 推出,提供簡潔的儀表板,監控應用程式的請求(Request)、異常(Exception)、日誌(Log)、資料庫查詢(Database queries)、排隊的作業(Queued jobs)、郵件(Mail)、通知(Notifications)、緩存操作、計劃任務(Notifications)、變量監控(variable dumps)等。[37]
  • Sanctum:於 Laravel 7.0 推出,為單頁應用移動應用程序和基於令牌的簡單API,提供了輕巧的身份驗證系統。[38]

Artisan CLI

编辑

Laravel 的 命令列介面 (CLI),稱為 Artisan,於 Laravel 3 推出時功能還相當有限。 隨後 Laravel 將架構改為以 Composer 作為基底,讓 Artisan 得以和 Symfony 框架的元件互補,也因此 Laravel 4 的 Artisan 提供了更多的功能。[39]

Artisan 的功能被分散到不同的子命令,用以協助打造與管理這些由 Laravel 建構而成的軟體。最常見的使用情境如:操作資料庫的 migration & seeding、汲取套件的靜態資源、為新建立的 controller 或 migration 產生程式碼樣板(為開發者省去重複撰寫相同程式碼的時間)。開發者也可以自行新增新的命令,來擴充 Artisan 的功能(如自動化的執行任務)。[10]

研討會

编辑

Laracon

编辑

Laracon為Laravel官方舉辦的研討會,曾在美國歐洲和網路上舉辦,主題囊括Laravel的開發、使用、和與其有關的軟體開發議題[40][41]。每年的會議具有各種不同的贊助者和組織成員,但 Laravel官方、Laravel News和UserScape通常是主要的組織成員。

一般來說,每一年都會在美國歐洲舉辦一次研討會。而2017年Laracon也首度於網路上舉辦,未來也將會有更多活動以類似形式出現在網路上[42]

目前已經舉辦了以下場次:

 
Taylor Otwell,2013 年在美國的 Laracon
日期 位置
2013年2月22~23日 华盛顿特区
2013年8月30~31日 阿姆斯特丹
2014年5月15~16日 纽约市
2014年8月28~30日 阿姆斯特丹
2015年8月11~12日 肯塔基州路易斯维尔
2015年8月25~26日 阿姆斯特丹
2016年7月27~29日 肯塔基州路易斯维尔
2016年8月23~24日 阿姆斯特丹
2017年8月 線上舉辦
2017年7月25~26日 纽约市
2017年8月28~30日 阿姆斯特丹

LaravelConf Taiwan

编辑

LaravelConf Taiwan為Laravel道場[43]主辦人兼台灣的社群推廣者范聖佑發起的研討會。自2017年開始,於張榮發基金會國際會議中心舉辦。研討會議程包括技術主題、實做主題以及套件發表會等內容[44][45],並自2021年起與前端框架Vue合辦Laravel x Vue Conf Taiwan

目前已經舉辦了以下場次:

  • LaravelConf Taiwan 2017[46] - 2017年7月1日
  • LaravelConf Taiwan 2018[47] - 2018年7月8日
  • LaravelConf Taiwan 2019[48] - 2019年7月13日
  • LaravelConf Taiwan 2020[49] - 2020年7月25日
  • Laravel x Vue Conf Taiwan 2021[50] - 2021年10月16日 ~ 10月17日
  • Laravel x Vue Conf Taiwan 2022[51] - 2022年12月2日 ~ 12月3日

合作夥伴

编辑

在2017年4月7日,Taylor Otwell 公告出了 Laravel 網站的「合作夥伴」章節。其目的是為了提供 Laravel 社群一個公司的列表,列表內所列出的公司,都是能夠提供 Laravel 最佳發展和指導的可信公司。 2024年1月,Laravel 的合作夥伴包括:

  • Vehikl
  • Tighten Co.
  • Kirschbaum Development Group
  • Active Logic
  • Bacancy
  • Redberry
  • Jump24
  • Madewithlove
  • Curotec
  • Black Airplane
  • byte5
  • DevSquad
  • Tighten
  • 64 Robots
  • Kirschbaum
  • Gearbox Solutions
  • Cyber-Duck
  • 10Code

参見

编辑

I have a passion for web designing. Our website: https://www.antino.io/san-diego-web-design页面存档备份,存于互联网档案馆) Antino Labs stands for its conviction! With an intention and conviction of emerging as an unparalleled IT Digital Transformation Services platform, we at Antino Labs are known for providing impeccable software services using cutting edge technology across the globe. We are top rated san diego web design company页面存档备份,存于互联网档案馆) with a dynamic exposure to the industry, we believe in refining and redefining our standard according to the changes in the market's requirements. Our multiple years of experience in the industry has enabled us to register our global presence.

参考文献

编辑
  1. ^ 1.0 1.1 1.2 1.3 Maks Surguy. History of Laravel PHP framework, Eloquence emerging. maxoffsky.com. July 27, 2013 [May 10, 2015]. (原始内容存档于2020-11-27). 
  2. ^ Release 11.3.1. 2024年10月15日 [2024年10月21日]. 
  3. ^ laravel/laravel: laravel/readme.md at master. 2015-04-22 [2015-05-10]. (原始内容存档于2019-09-21). 
  4. ^ Daniel Gafitescu. Goodbye CodeIgniter, Hello Laravel. 2013-06-06 [2013-12-21]. (原始内容存档于2020-11-30). 
  5. ^ Laravel 5 Essentials. books.google.com (Packt). April 2015 [2015-09-02]. ISBN 978-1785283017. (原始内容存档于2020-08-04). 
  6. ^ Laravel Documentation (versions 3.0 3.2.14). three.laravel.com. [2014-08-30]. (原始内容存档于2014-08-26). 
  7. ^ Laravel Documentation (version 4.2). laravel.com. [2014-08-30]. (原始内容存档于2014-09-20). 
  8. ^ Bruno Skvorc. Best PHP Framework for 2015 – SitePoint Survey Results. 2015-03-28 [2015-06-14]. (原始内容存档于2015-04-02). 
  9. ^ 辜騰玉. 開發者最愛PHP框架排行榜出爐!Laravel蟬聯第一,Phalcon被打入冷宮剩不到3%支持. iThome. 2015-04-01 [2018-08-17]. (原始内容存档于2019-08-07) (中文(臺灣)). 
  10. ^ 10.0 10.1 Raphaël Saunier. Getting Started with Laravel 4. worldcat.org (Packt). January 2014 [2015-09-02]. ISBN 978-1783287031. (原始内容存档于2019-08-07). 
  11. ^ 原先為 Laravel 4.3,因為一些內部因素而修改版本號)
  12. ^ Eric Barnes. Laravel 5. 2015-01-30 [2015-05-10]. (原始内容存档于2016-11-11). 
  13. ^ Eric L. Barnes. Laravel 5.1 is released. laravel-news.com. 2015-06-09 [2015-06-14]. (原始内容存档于2016-05-12). 
  14. ^ Eric L. Barnes. Laravel 5.3 is now released. laravel-news.com. 2016-08-23 [2016-08-23]. (原始内容存档于2016-08-28). 
  15. ^ David oscar. What’s new in laravel 5.3. digitalsoft.in. 2016-08-23 [2016-08-23]. [永久失效連結]
  16. ^ Laravel 5.4 Is Now Released. Laravel News. 2017-01-24 [2017-02-21]. (原始内容存档于2020-11-25) (美国英语). 
  17. ^ Laravel 6 release notes. Laravel. Laravel. [February 28, 2020]. (原始内容存档于2021-01-30). 
  18. ^ Laravel 7 release notes. Laravel. Laravel. [June 16, 2020]. (原始内容存档于2020-03-10). 
  19. ^ Laravel. Laravel 8 Release Notes. Laravel. [2021-02-25]. (原始内容存档于2021-07-21). 
  20. ^ Laravel. Laravel 9 Release Notes. Laravel. [2023-07-08]. (原始内容存档于2022-02-10). 
  21. ^ Release Notes - Laravel. Laravel. [2022-01-05]. (原始内容存档于2022-04-09). 
  22. ^ 其餘未具體指出的,可以參考 Laravel 3 技術文件的功能敘述:Jeffrey Way. Why Laravel is Taking the PHP Community by Storm. 2012-11-28 [2015-05-09]. (原始内容存档于2015-05-05). 
  23. ^ Eloquent ORM in Laravel: What and Why!. [2014-12-19]. (原始内容存档于2014-12-19). 
  24. ^ Develop Faster with the Laravel PHP Framework. [2015-04-17]. (原始内容存档于2020-12-03). 
  25. ^ Laravel documentation (version 4.0): Query builder. [2015-04-27]. (原始内容存档于2015-03-24). 
  26. ^ Sahil Sharma. Laravel Development Services. Aquatec Innovative Private Limited. [2022-09-09]. (原始内容存档于2022-12-06). 
  27. ^ File Storage - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-29). 
  28. ^
  29. ^ Collections - Laravel - The PHP Framework For Web Artisans. [28 February 2020]. (原始内容存档于2020-11-12). 
  30. ^ Laravel Cashier - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-10-30). 
  31. ^ Laravel Envoy - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2021-01-10). 
  32. ^ Laravel Socialite - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-23). 
  33. ^ Laravel Passport - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-12). 
  34. ^ Laravel Scout - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-29). 
  35. ^ Laravel Dusk - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-29). 
  36. ^ Laravel Horizon - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-23). 
  37. ^ Laravel Telescope - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-29). 
  38. ^ Laravel Sanctum - Laravel - The PHP Framework For Web Artisans. laravel.com. [February 28, 2020]. (原始内容存档于2020-11-23). 
  39. ^ Jason Lewis. Your One-Stop Guide to Laravel Commands. code.tutsplus.com. 2013-02-28 [2015-05-09]. (原始内容存档于2015-05-18). 
  40. ^ Laracon Online-The official worldwide Laravel online conference. [2017-03-24]. (原始内容存档于2020-12-16) (英语). 
  41. ^ Search Results. 2017-03-13 [2017-03-24]. (原始内容存档于2020-05-29) (英语). 
  42. ^ 截至2017年3月 (2017-03)
  43. ^ Laravel道場. [2018-08-19]. (原始内容存档于2020-10-27). 
  44. ^ 王銘岳. 【LaravelConf專訪‘TNL】技術團隊不僅是架網站,更是編輯、社群和業務的強大後援. The News Lens 關鍵評論網. 2017-07-26 [2018-08-19]. (原始内容存档于2019-08-08) (中文(臺灣)). 
  45. ^ PHP 盛事 - 第二屆 LaravelConf Taiwan 2018 日前圓滿落幕. iThome. 2018-07-30 [2018-08-19]. (原始内容存档于2020-08-08) (中文(臺灣)). 
  46. ^ LaravelConf 台灣 2017. laravelconf.tw. [2020-02-28]. (原始内容存档于2020-09-20) (中文(臺灣)). 
  47. ^ LaravelConf Taiwan 2018 - 台灣最專業的 Laravel 開發研討會. laravelconf.tw. [2020-02-28]. (原始内容存档于2020-09-24) (中文(臺灣)). 
  48. ^ LaravelConf Taiwan 2019. laravelconf.tw. [2020-02-28]. (原始内容存档于2020-03-02). 
  49. ^ LaravelConf Taiwan 2020. laravelconf.tw. [2023-01-17]. (原始内容存档于2022-04-18). 
  50. ^ {Laravel x Vue}Conf Taiwan 2021. laravelconf.tw. 
  51. ^ Laravel x Vue Conf Taiwan 2022. laravelconf.tw. [2020-02-28]. (原始内容存档于2020-10-28).