Laravel 8 .0 已经发布,发行说明

热搜

Laravel 8 现已发布,包括许多新功能,包括 Laravel Jetstream、模型目录、模型工厂类、迁移压扁、速率限制改进、时间测试帮助程序、动态刀片组件以及更多功能。

在我们进入新功能之前,我们想指出,从版本 6 开始,Laravel 现在遵循 semver,并将每六个月发布一个新的主要版本。您可以在这里看到发布过程的工作原理

拉维尔喷气流

Laravel Jetstream改进了以前版本中现有的 Laravel UI 基架。它为新项目提供了一个起点,包括登录、注册、电子邮件验证、双重身份验证、会话管理、通过 Laravel 的 API 支持和团队管理。

模型目录

Laravel 8 的应用程序框架包括一个目录。所有生成器命令都假定 模型中存在 。但是,如果此目录不存在,框架将假定应用程序将模型保留到文件夹中。app/Modelsapp/Modelsapp/

模型工厂类

Eloquent 模型工厂现在从 Laravel 8 开始以类为基础,改进了对工厂之间关系的支持(即,用户拥有许多职位)。我想你会同意新的语法是多么真棒, 通过新的和改进的模型工厂生成记录:

use App\Models\User;

User::factory()->count(50)->create();

// using a model state "suspended" defined within the factory class
User::factory()->count(5)->suspended()->create();

迁移挤压

如果应用程序包含许多迁移文件,现在可以将它们压缩到单个 SQL 文件中。此文件将在运行迁移时首先执行,然后是任何剩余的迁移文件,这些文件不是压缩架构文件的一部分。压缩现有迁移可以减少迁移文件膨胀,并可能在运行测试时提高性能。

改进的速率限制

Laravel 8 改进了现有的速率限制功能,同时支持与现有节气门中间件的向后兼容性,并提供更大的灵活性。Laravel 8 具有速率限制器的概念,您可以通过立面定义:

use Illuminate\Cache\RateLimiting\Limit;
use Illuminate\Support\Facades\RateLimiter;

RateLimiter::for('global', function (Request $request) {
    return Limit::perMinute(1000);
});

如您所看到的,该方法采用 HTTP 请求实例,使您可以完全控制动态限制请求。for()

时间测试帮助程序

Laravel 用户通过优秀的碳 PHP 库,在时间修改中享有完全控制。Laravel 8 通过提供方便的测试帮助器来操作测试时间,从而更进一步:

// Travel into the future...
$this->travel(5)->milliseconds();
$this->travel(5)->seconds();
$this->travel(5)->minutes();
$this->travel(5)->hours();
$this->travel(5)->days();
$this->travel(5)->weeks();
$this->travel(5)->years();

// Travel into the past...
$this->travel(-5)->hours();

// Travel to an exact time...
$this->travelTo(now()->subHours(6));

// Return back to the present time...
$this->travelBack();

使用这些方法时,每次测试之间的时间将重置。

动态刀片组件

有时,您需要在运行时动态呈现刀片组件。Laravel 8 提供用于渲染组件的<x-dynamic-component/>

<x-dynamic-component :component="$componentName" class="mt-4" />

了解更多有关拉拉维尔 v8...

这些只是Laravel 8中的一些新功能,要查看完整的列表,请查看Laravel 8发行说明以及升级指南。此外,如果你想要一个简单的更新方式,不要忘记Laravel移位。

Taylor 还在 Laracon Online 上演练了其中一些功能,如果您想查看,您仍然可以购买机票。此外,Laracasts: Laravel 8系列中的新功能可帮助您快速获得此版本中的新功能。

与所有的版本一样,Laravel 是由这么多人促成的,我们要感谢所有贡献者、提交 PR、分享想法以及使用框架的人。Laravel 是真正的全球团队努力。