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,以便更轻松、更高效地进行数据库索引。
碰撞
我们最近写了一篇关于 Collision 加入 Laravel 5.6 的文章,它作为一个 dev
依赖项,在控制台中提供美观的错误报告。
Bootstrap 4
所有前端脚手架和示例 Vue 组件现在都使用 Bootstrap 4。我们已经介绍了 Bootstrap 4 在 beta 版中,甚至创建了一个 Bootstrap 4 Laravel 预设。很高兴看到 Bootstrap 4 稳定版 与 Laravel 5.6 一起发布!
深入了解 Laravel 5.6
要将您的 Laravel 安装升级到 v5.6,请参考 升级指南。Laravel 努力使在主要版本之间更新您的应用程序尽可能短。从 5.5 升级到 5.6 预计需要 10-30 分钟。显然,您的里程数会根据您的应用程序而有所不同。