Laravel 5.6 正式发布,看看有哪些新功能!
发布时间 作者 Paul Redmond
Laravel 5.6 现已正式发布,是 Laravel 框架的下一个主要版本!此版本包含许多新功能,我们在此重点介绍了一些比较突出的功能。有关所有更改的完整列表,请访问 更改日志 (GitHub)。
日志记录改进
Laravel 5.6 版本中最大的功能是日志记录改进。首先,v5.6 日志记录配置从 config/app.php
文件移到了新的 config/logging.php
文件。
你可以配置“堆栈”,这些堆栈可以将日志消息发送到多个处理程序。例如,你可能会将所有调试消息发送到系统日志,并将错误日志发送到 Slack。
要详细了解配置和自定义日志,请访问 日志记录文档。
单服务器任务调度
如果你在多台服务器上运行任务调度程序,则该任务将在每台服务器上运行。你可以使用 onOneServer()
方法指示任务只在其中一台服务器上运行。
$schedule->command('report:generate') ->fridays() ->at('17:00') ->onOneServer();
注意:你必须使用 memcached
或 redis
缓存驱动程序作为默认的应用程序缓存驱动程序,才能利用 Laravel 5.6 版本中的单服务器任务调度功能。
动态速率限制
Laravel 5.6 引入了 动态速率限制,它提供了更大的灵活性,使你可以轻松地按用户限制速率。
Route::middleware('auth:api', 'throttle:rate_limit,1') ->group(function () { Route::get('/user', function () { // }); });
在上面的示例中,rate_limit
是 App\User
模型的一个属性,用于确定在给定时间限制内允许的请求次数。
广播频道类
现在你可以在 routes/channels.php
文件中使用频道类,而不是使用闭包。
若要生成新的频道类,Laravel 5.6 提供了一个新的 make:channel
命令。
php artisan make:channel OrderChannel
你可以在 routes/channels.php
文件中注册你的频道,如下所示:
use App\Broadcasting\OrderChannel; Broadcast::channel('order.{order}', OrderChannel::class);
API 控制器生成
现在你可以为 API 生成一个资源控制器,该控制器将排除不必要的 create
和 edit
操作,这些操作只适用于返回 HTML 的资源控制器。若要生成资源控制器,请使用 --api
标记。
php artisan make:controller API/PhotoController --api
Eloquent 日期转换
你可以单独自定义 Eloquent 日期和日期时间转换的格式。
protected $casts = [ 'birthday' => 'date:Y-m-d', 'joined_at' => 'datetime:Y-m-d H:00',];
此格式用于将模型序列化为数组或 JSON 数据。
Blade 组件别名
现在你可以为 Blade 组件设置别名,以便更方便地访问。例如,如果你将一个组件存储在 resources/views/components/alert.blade.php
中,你可以使用 component()
方法为其设置一个更短的名称。
Blade::component('components.alert', 'alert');
然后,你可以使用定义的别名渲染它。
@component('alert') <p>This is an alert component</p>@endcomponent
Argon2 密码哈希
Laravel 5.6 支持一种新的密码哈希算法,适用于 PHP 7.2+。你可以在新的 config/hashing.php
配置文件中控制默认使用的哈希驱动程序。
你可以在我们关于 Laravel 5.6 支持 Argon2i 哈希算法 的文章中了解更多信息。
UUID 方法
Illuminate\Support\Str
类中现在提供了两种新的方法,用于生成通用唯一标识符 (UUID)。
// The methods return a Ramsey\Uuid\Uuid object return (string) Str::uuid(); return (string) Str::orderedUuid();
orderedUuid()
方法将生成一个时间戳优先的 UUID,以便更轻松、更高效地进行数据库索引。
冲突
我们最近写了一篇关于 冲突即将进入 Laravel 5.6 的文章,它作为 dev
依赖项提供,在控制台中提供美观的错误报告。
Bootstrap 4
所有前端脚手架和示例 Vue 组件现在都使用 Bootstrap 4。我们已经在 测试版中 覆盖了 Bootstrap 4,甚至创建了 Bootstrap 4 Laravel 预设。很高兴看到 Bootstrap 4 正式版 与 Laravel 5.6 一起发布!
了解有关 Laravel 5.6 的更多信息
若要将 Laravel 安装升级到 v5.6,请参考 升级指南。Laravel 努力使应用程序在主要版本之间的更新尽可能简短。从 5.5 升级到 5.6 预计需要 10-30 分钟。当然,你的实际情况会根据你的应用程序而有所不同。