Laravel 6.0 版本正式发布了!
Laravel 团队今天宣布 Laravel 6.0 版本正式发布,该版本的发布标志着 Laravel 框架开始使用语义化版本,此外,该版本还包含了对 Laravel Vapor 的支持、优化了授权响应、任务中间件、懒集合、子查询优化以及很多其它细节优化。
下面是一些有关 Laravel 6.0 版本的新特性:
新的 LTS 版本
Laravel 6.0 是新的 LTS 版本,bug 修复会持续到 2021 年 9 月 3 号,安全修复会持续到 2022 年 9 月 3 号。上一个 LTS 版本还是两年前发布的 Laravel 5.5(安全修复还会持续到明年的 8 月 30 号)。
语义化版本
Laravel 的版本发行说明已经介绍了 Laravel 6.0 及以后版本会使用语义化版本:
The Laravel framework (laravel/framework) package now follows the semantic versioning standard. This makes the framework consistent with the other first-party Laravel packages which already followed this versioning standard. The Laravel release cycle will remain unchanged.
优化授权响应
在此之前,围绕授权功能提供自定义的错误消息给终端用户很困难,Laravel 6.0 引入了 Gate::inspect
方法来授权策略响应:
$response = Gate::inspect('view', $flight);
if ($response->allowed()) {
// 用户已授权...
}
if ($response->denied()) {
// 用户未授权,返回响应消息
echo $response->message();
}
我们可以基于该方法来轻松返回自定义响应消息给终端用户。
任务中间件
这里的任务指的是队列任务,任务中间件允许应用中间件到队列任务对其进行过滤:
// 可以在任务类中定义 middleware 方法指定中间件
public function middleware()
{
return [new SomeMiddleware];
}
// 还可以在分发任务时通过 through 方法指定中间件
SomeJob::dispatch()->through([new SomeMiddleware]);
使用中间件可以避免在任务类的 handle
方法中编写与主体业务逻辑无关的校验逻辑,降低了代码的耦合性,提高了代码的复用性。
懒集合
懒集合是处理大量集合数据的游戏规则改变者,包括 Eloquent 模型集合。Laravel 6.0 新引入了一个 Illuminate\Support\LazyCollection
类用来处理大型数据集,底层使用了 PHP 的生成器,从而保证即使数据量很大,也可以维护很低的内存使用。稍后我们会在集合文档中详细介绍这一特性。
Eloquent 子查询增强
关于这一块我们会在文档中详细介绍。
Laravel UI
Laravel 5.x 版本提供的前端脚手架功能现在已经移植到独立的 laravel/ui 扩展包中,这样一来,我们可以实现 UI 脚手架与主框架的剥离并进行独立迭代。
如果你想要继续使用传统的 Bootstrap/Vue 脚手架,可以运行如下命令:
composer require laravel/ui
php artisan ui vue --auth
更多新特性
更多新特性敬请关注学院维护的 Laravel 6.0 中文文档,你也可以通过 laravel new my-app
命令初始化一个新的 Laravel 6.0 应用进行探索。
注:本文整理翻译自 Laravel News。
4 Comments
学院君真是劳模, 为学院君点赞
最近做了个开源项目https://gitee.com/song-bo/LvaCMS
6.0可以用于正式项目了么? 毕竟是LTS版
当然可以