本页使用了标题或全文手工转换

Laravel

维基百科,自由的百科全书
跳到导航 跳到搜索
Laravel
Laravel logo
開發者 Taylor Otwell
初始版本 2011年6月,​8年前​(2011-06[1]
穩定版本
5.8.31[2]
(2019年8月7日,​3個月前​(2019-08-07
源代码库 編輯維基數據鏈接
编程语言 PHP7[3][4]
操作系统 跨平台
类型 Web應用框架
许可协议 MIT授權條款
网站 laravel.com

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

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

歷史[编辑]

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),支持發送不同類型的電子郵件,並支持資料庫的 軟刪除[13]
Laravel 5
2015年2月發佈[14]。 新的特點包括:提供周期性地執行任務的排程器 Scheduler,提供一個抽象層 Flysystem ,讓遠端與本地端的 檔案系統 能有相同的操作方式,提供 Elixir 以管理靜態資源,並提供了可簡化串接 OAuth 登入的套件 Socialite 。 Laravel 5 也同時修改了 目錄結構[15]
Laravel 5.1
2015年6月發佈,是 Laravel 的第一個 長期支援版本(LTS) ,並計畫提供兩年的 錯誤修正 和三年的 安全性更新 。 同時也預計未來每兩年會發佈一次新的 LTS 版本。[16]
Laravel 5.3
於2016年8月23日發佈。此版本著重在協助使用者加速開發,並提供了優化開發流程的工具。[17][18]
Laravel 5.4
2017年1月24日發佈。此版本提供了許多新功能,像 Laravel Dusk,Laravel Mix,Components & Slots(Blade),Markdown Emails,自動 Facades、路由的優化,collection 的高階函數,還有很多其他功能。[19]

版本發佈紀錄[编辑]

Laravel發行版本分為兩類:一般版本LTS長期支援版本[20]

一般版本
提供 6 個月的錯誤修正和 1 年的安全性更新。
LTS長期支援版本
如 Laravel 5.1,提供了 2 年錯誤修正和 3 年的安全性更新,提供了長期的支援和維護。
版本 發佈日期 錯誤修正至 安全性更新至 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日 2015年8月4日 2016年2月4日 ≥ 5.4.0
舊版本,不再支援: 5.1 LTS 2015年6月9日 2017年6月9日 2018年6月9日 ≥ 5.5.9
舊版本,不再支援: 5.2 2015年12月21日 2016年6月21日 2016年12月21日 ≥ 5.5.9
舊版本,不再支援: 5.3 2016年8月23日 2017年2月23日 2017年8月23日 ≥ 5.6.4
舊版本,不再支援: 5.4 2017年1月24日 2017年7月24日 2018年1月24日 ≥ 5.6.4
舊版本,仍被支援: 5.5 LTS 2017年8月30日 2019年8月30日 2020年8月30日 ≥ 7.0.0
舊版本,不再支援: 5.6 2018年2月7日 2018年8月7日 2019年2月7日 ≥ 7.1.3
舊版本,不再支援: 5.7 2018年9月4日 2019年3月4日 2019年9月4日 ≥ 7.1.3
舊版本,仍被支援: 5.8 2019年2月26日 2019年8月26日 2020年2月26日 ≥ 7.1.3
當前版本: 6.0 LTS 2019年9月3日 2021年9月3日 2022年9月3日 ≥ 7.2.0
图例: 舊版本 舊版本,仍被支援 当前版本 最新预览版本 未来版本

來源: Laravel[21]

功能[编辑]

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

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

官方提供的套件[编辑]

可透過 composer 以及 packagist 安裝下列模組:

  • Cashier 於 Laravel 4.2 推出,可串接訂閱制付款服務如 Stripe,並提供 优惠券收據 等功能。
  • SSH,於 Laravel 4.1 推出,允許程式透過 SSH 在遠端伺服器執行 CLI 指令
  • Scheduler, 於 Laravel 5.0 推出,可以透過程式排程 Artisan 指令的執行 cronjob,但仍需依賴 Cron daemon。
  • Flysystem,於 Laravel 5.0 推出,統一了 檔案系統 的函式,讓本地端和 雲端 儲存空間(如 亞馬遜 S3Rackspace Cloud)的操作邏輯一致。
  • Socialite,於 Laravel 5.0 推出,簡化串接 OAuth 的流程,提供平台如 Facebook, Twitter, Google上, GitHubBitbucket 等等。:13

Artisan CLI[编辑]

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

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

伺服器配置[编辑]

Laravel 對伺服器環境有少量的要求。 然而,這些要求可以透過使用家用的虛擬機來達成,因此強烈建議使用家用作為本地的開發環境。

若不使用 Homestead,您需要確保您的伺服器滿足以下的要求,這裏以長期支援版本 Laravel 5.5 為例,如果是最新版本 Laravel 5.8 需要 PHP 版本 >= 7.1.3 :

研討會[编辑]

Laracon[编辑]

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

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

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

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道場[32]主辦人兼台灣的社群推廣者范聖佑發起的研討會。自2017年開始,於張榮發基金會國際會議中心舉辦。研討會議程包括技術主題、實做主題以及套件發表會等內容。[33][34]

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

  • LaravelConf Taiwan 2017 - 2017年7月1日
  • LaravelConf Taiwan 2018 - 2018年7月8日
  • LaravelConf Taiwan 2019 - 2019年7月13日

合作伙伴[编辑]

在2017年4月7日,Taylor Otwell公告出了Laravel网站的"夥伴"章節。 其目的是為了提供Laravel社群一個公司的列表,列表內所列出的公司中,每一個公司都是能夠提供Laravel最佳发展和指导的可信公司。2017年九月,Laravel的合作伙伴包括:

  • Vehikl
  • Tighten Co.
  • Kirschbaum Development Group

参見[编辑]

註記[编辑]

参考文献[编辑]

  1. ^ 1.0 1.1 1.2 1.3 Maks Surguy. History of Laravel PHP framework, Eloquence emerging. maxoffsky.com. 2013-07-27 [2015-05-10]. 
  2. ^ laravel/framework: Release v5.7.20. github.com. 2019-08-07 [2019-08-07]. 
  3. ^ 參閱Laravel#版本發布紀錄一節
  4. ^ Laravel documentation (version 5.3): Release notes. laravel.com. [2015-08-29]. 
  5. ^ The real-time community site Voten goes open-source. 
  6. ^ laravel/laravel: laravel/readme.md at master. 2015-04-22 [2015-05-10]. 
  7. ^ Daniel Gafitescu. Goodbye CodeIgniter, Hello Laravel. 2013-06-06 [2013-12-21]. 
  8. ^ Laravel 5 Essentials. books.google.com (Packt). April 2015 [2015-09-02]. ISBN 978-1785283017. 
  9. ^ Laravel Documentation (versions 3.0 3.2.14). three.laravel.com. [2014-08-30]. (原始内容存档于2014-08-26). 
  10. ^ Laravel Documentation (version 4.2). laravel.com. [2014-08-30]. 
  11. ^ Bruno Skvorc. Best PHP Framework for 2015 – SitePoint Survey Results. 2015-03-28 [2015-06-14]. 
  12. ^ 辜騰玉. 開發者最愛PHP框架排行榜出爐!Laravel蟬聯第一,Phalcon被打入冷宮剩不到3%支持. iThome. 2015-04-01 [2018-08-17] (中文(台灣)‎). 
  13. ^ 13.0 13.1 Raphaël Saunier. Getting Started with Laravel 4. worldcat.org (Packt). January 2014 [2015-09-02]. ISBN 978-1783287031. 
  14. ^ 原先為 Laravel 4.3,因為一些內部因素而修改版本號)
  15. ^ Eric Barnes. Laravel 5. 2015-01-30 [2015-05-10]. 
  16. ^ Eric L. Barnes. Laravel 5.1 is released. laravel-news.com. 2015-06-09 [2015-06-14]. 
  17. ^ Eric L. Barnes. Laravel 5.3 is now released. laravel-news.com. 2016-08-23 [2016-08-23]. 
  18. ^ David oscar. What’s new in laravel 5.3. digitalsoft.in. 2016-08-23 [2016-08-23]. [永久失效連結]
  19. ^ Laravel 5.4 Is Now Released. Laravel News. 2017-01-24 [2017-02-21] (美国英语). 
  20. ^ Laravel Documentation: Releases. Laravel. [February 26, 2017]. 
  21. ^ Release Notes - Laravel. Laravel. [August 21, 2019]. 
  22. ^ 其餘未具體指出的,可以參考 Laravel 3 技術文件的功能敘述:Jeffrey Way. Why Laravel is Taking the PHP Community by Storm. 2012-11-28 [2015-05-09]. 
  23. ^ Laravel documentation (version 4.2): Package development. [2014-08-30]. 
  24. ^ Eloquent ORM in Laravel: What and Why!. [2014-12-19]. (原始内容存档于2014-12-19). 
  25. ^ Develop Faster with the Laravel PHP Framework. [2015-04-17]. 
  26. ^ Laravel documentation (version 4.0): Query builder. [2015-04-27]. (原始内容存档于2015-03-24). 
  27. ^
  28. ^ Jason Lewis. Your One-Stop Guide to Laravel Commands. code.tutsplus.com. 2013-02-28 [2015-05-09]. 
  29. ^ Laracon Online-The official worldwide Laravel online conference. [2017-03-24] (英语). 
  30. ^ Search Results. 2017-03-13 [2017-03-24] (英语). 
  31. ^ 截至2017年3月 (2017-03)
  32. ^ Laravel道場
  33. ^ 王銘岳. 【LaravelConf專訪‘TNL】技術團隊不僅是架網站,更是編輯、社群和業務的強大後援. The News Lens 關鍵評論網. 2017-07-26 [2018-08-19] (中文(台灣)‎). 
  34. ^ PHP 盛事 - 第二屆 LaravelConf Taiwan 2018 日前圓滿落幕. iThome. 2018-07-30 [2018-08-19] (中文(台灣)‎).