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.3(2024年11月19日;稳定版本)[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.3. 2024年11月19日 [2024年11月25日]. 
  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).