Laravel 5.3 正式发布,一起来围观新版本有哪些新特性吧


Laravel 团队今天宣布 Laravel 5.3 正式版本发布,新版本通过为通用任务提供开箱即用的附加功能来专注于提升开发者的开发速度。

这一版本会提供为期六个月的bug修复支持和一年的安全修复支持,Laravel 5.1 仍然是最新的LTS版本,提供为期两年的bug修复和三年的安全修复。

下面让我们快速浏览下 Laravel 5.3 的新功能和亮点。

全新的首页

laravel-homepage

Laravel官网首页进行了焕然一新的改造,展示了全新的扩展包,以及更多的社区资源的链接,例如Laracasts、Laravel News、Statamic等。

Laravel Scout

Laravel Scout是为Eloquent提供的、基于驱动的全文搜索引擎,通过在模型类中添加Searchable Trait进行工作,更新数据时同步数据到索引,然后通过以下方式进行搜索:

Post::search('Alice')->get();

Laravel Passport

Laravel Passport被设计用来在数分钟内部署自己的OAuth2服务器,这是一个可选包,可提供完整的功能,比如设置域、使用Vue.js组件生成token、撤销token等。

Laravel Mailable 和 Notifications

Laravel Mailable 提供了基于类发送邮件的功能,有了它之后,就可以简化邮件发送,而不再需要使用闭包方式。

Laravel Notifications 允许你通过Slack、短信、邮件等服务发送快速更新,Laravel社区甚至还为此开启了一个“Laravel Notifications Channel”频道,在这里,每个人都可以提交自己的驱动,目前已经拥有26个驱动了。

Laravel Echo

Laravel Echo 是对现有事件广播系统的一个优化,使其可以更简单的处理websockets,要使用Echo的话后端需要结合Laravel核心代码,前端JavaScript端需要使用NPM引入一个相应的扩展包。

迁移

迁移系统提供了一个新特性让你可以回滚单个迁移:

php artisan migrate:rollback --step=1

在此之前,step这个选项并不存在,你也不能回滚单个迁移,每次回滚就会把所有迁移都回滚。

简单分页

Laravel提供了两种风格的分页,更高级的一种是显示页码列表(我们将其称之为高级分页),而相对简单的方式是只显示previous和next这两个链接(我们将其称之为简单分页)。

在Laravel 5.3中,简单分页可以从一个视图文件中读取分页HTML,从而更方便我们自定义分页样式。更多详情请点击这篇教程

Blade Loop变量

Laravel Blade模板引擎现在提供了一个新的变量$loop,从而让我们在循环遍历结构中进行更细粒度的控制,改变量提供了如下属性:

  • index —— 当前循环索引
  • remaining —— 剩余循环数量
  • count —— 总数
  • first —— 是否是第一个
  • last —— 是否是最后一个
  • depth —— 深度层级
  • parent —— 嵌套循环的父级
更多详情请点击这篇教程

目录结构

对“app”目录进行了简化,将默认为空的目录都清理掉,如Events、Jobs、Listeners和Policies。当然,这一清除是可逆的,为了保持向后兼容,只要运行相应的Artisan make命令,相应的目录就会被添加回来。

队列任务

Eloquent集合现在被干净地序列化(只保存主键),队列任务重新拉取后又和独立的模型数据一致。

这一特性在任务被推送到队列后Eloquent集合数据发生改变时很有用。

查询构建器

查询构建器现在默认返回集合而不是数组,从而保持和Eloquent模型查询返回结果数据结构一致。

Cache辅助函数

Laravel 5.3 提供了一个全局的辅助函数cache,从而方便我们get、put或者return支撑服务实例。更多详情请点击这篇教程

文档修改

Laravel 5.3 的官方文档进行了大修,从安装到官方包,对所有文档都进行了更好的划分,在一些特定话题上还附上了视频教程链接,以方便那些更喜欢音频/视频的朋友更好的阅读文档。

升级指南

官方文档提供了升级指南,今天开始你就可以通过该指南进行旧版本的升级,预计升级时间将会在2-3个小时之间。

如果你是新手,还未安装过任何版本的Laravel,可以从安装文档开启Laravel之旅。

声明:本文整理翻译自Laravel News

Vote Vote Cancel Collect Collect Cancel

<< 上一篇: 基于 Laravel 的 Vue.js 中文学习教程 —— Class 与 Style 绑定

>> 下一篇: 基于 Laravel 的 Vue.js 中文学习教程 —— 条件渲染