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


Vote Vote Cancel Collect Collect Cancel

<< 上一篇: Leetcode基础刷题之PHP解析(137. Single Number II)

>> 下一篇: Leetcode PHP题解--D117 599. Minimum Index Sum of Two Lists