Laravel 5.3 现已发布 并可供所有人使用。以下是这些新功能的简要概述
Laravel Scout
Laravel Scout 是一个基于驱动程序的 Eloquent 全文搜索引擎。它开箱即用地支持 Algolia,而且由于它基于驱动程序,社区中的任何人都可以创建他们自己的与其他全文搜索系统的集成。
Scout 通过在现有模型中实现 “Searchable” 特性来工作。然后只需将数据与搜索服务同步,例如这样
php artisan scout:import App\\Post
之后你可以使用以下方法搜索你的模型
Post::search('Alice')->get();
你甚至可以进行分页
Post::search('Alice')->paginate()
它甚至包括简单的 where 子句
Post::search(‘Alice’)—>where('acount_id', '>', 1)->paginate()
Laravel Mailable
Laravel Mailable 是一个新的 Mail 类,用于以表达方式发送电子邮件
Mail::to('laravel@example.com')->send(new OrderComplete);
当然你也可以使用所有其他的邮件功能
Mail::to('laravel@example.com')->cc('john@example.com')->queue(new OrderComplete);
Laravel Notifications
Laravel Notifications 允许你通过 Slack、短信或电子邮件等服务快速更新。
通知附带了一个响应式的交易电子邮件模板。在你的通知类中,发送消息所需的所有代码如下
$this->line('Thank you for joining') ->action('Button Text', 'http://url.com') ->line('If you have any questions please hit reply') ->success()
或者如果这是一个错误
$this->line('Sorry we had a problem with your order') ->action('Button Text', 'http://url.com') ->error()
Laravel Passport
Laravel Passport 是一个可选的软件包,它是一个开箱即用的完整 oAuth 2 服务器。
你可以设置你的范围,Vue.js 组件用于令牌生成、撤销令牌等等。
回滚单个迁移
迁移中添加了一个新功能,允许你 只回滚单个迁移 而不是整个批次
php artisan migrate:rollback --step=1
Blade Foreach 循环
在 Blade foreach 循环内部,你现在可以访问一个 $loop
变量。这将允许你做类似的事情
@if($loop->first) Do something on the first iteration.@endif @if($loop->last) Do something on the last iteration.@endif
Eloquent 集合被干净地序列化并被排队作业重新拉取
在 5.3 中,Eloquent 集合被干净地序列化并被排队作业重新拉取,就像单个模型一样! pic.twitter.com/IZ5t118WNT
— Laravel (@laravelphp) 2016 年 5 月 31 日
Jacob Bennett 告诉我们 为什么这很重要。
队列控制台输出更改为显示实际类名
清理 Laravel 队列控制台输出,使其显示实际类名,而不是每个作业的 “CallQueuedHandler”。???? pic.twitter.com/iYKAhTHaeU
— Taylor Otwell (@taylorotwell) 2016 年 6 月 1 日
自定义简单分页功能
今天在 Laravel 5.3 开发中。通过视图重新引入简单分页自定义功能。???? pic.twitter.com/Ir28svVGCA
— Taylor Otwell (@taylorotwell) 2016 年 6 月 1 日
First Or Create
现在 firstOrCreate 允许传递额外的值。示例
return User::firstOrCreate(['github_id', $githubUser->id], ['avatar' => $githubUser->avatar]);
Query Builder 现在将返回一个集合
Query Builder 以前总是返回数组,现在它将 返回一个集合。这将使结果保持一致,无论你如何提取数据
$collection = DB::table('posts')->get();
多个迁移路径
现在你可以从服务提供者加载自己的迁移路径
$this->loadMigrationsFrom('path/to/migrations/folder')
有关更多信息,Alex Bowers 提供了一个概述。
Laravel Echo
Laravel Echo 是一个旨在改进当前事件广播系统的新功能。查看 Laracasts 视频 以了解更多信息。
新的缓存助手
cache()
全局助手可以执行三个主要功能:获取、放置或返回一个后端服务的实例。有关更多详细信息,请查看 Matt Stauffer 的 文章。
该列表只涵盖了一些重大变化,但 Laravel 5.3 有望成为一个不错的版本,并将 在 Laracon 正式宣布。务必加入 Laravel 新闻通讯,以便在 5.3 正式发布后获得通知。
