Laravel

Laravel

From

维基百科,自由的百科全书

此条目需要更新(2019年1月15日)
请更新本文以反映近况和新增内容。完成修改时,请移除本模板。

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 安装下列模块:

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

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

参见[编辑] 注记[编辑]

Report Page