Laravel 8 正式发布

Laravel

Laravel 8现已发布,并包含许多新功能,包括 Laravel Jetstream 、模型类目录、模型工厂类、迁移文件压缩、频率限制优化、时间测试辅助函数、动态 Blade 组件等新特性。

在我们介绍新功能之前,我们要指出,从版本6开始,Laravel 现在遵循语义版本控制(Semver),并将每六个月发布一个新的主要版本。您可以查看发布过程的工作方式

Laravel Jetstream

Laravel Jetstream 是在之前版本上进行优化和全新设计的 Laravel UI 脚手架代码。它为新项目提供了一个起点,包括登录、注册、邮箱验证、双因子认证(2FA)、会话管理、基于 Laravel 的 API 支持以及团队管理。

模型类目录

Laravel 8 的应用程序框架包括了一个 app/Models目录。所有的命令生成器都假定模型存在于 app/Models中; 如何该目录不存在,程序则将模型保存在 app/ 文件夹内。

模型工厂类

模型工厂现在开始从 Laravel 8 开始是基于类,并改进了对工厂之间关系的支持(即用户有很多帖子)。我想您会同意通过新的和改进的模型工厂生成新记录的语法是非常棒的:

use App\Models\User;

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

// 使用工厂类中定义的模型状态"挂起"
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);
});

如你所见,for() 方法采用 HTTP 请求示例,让你完全控制动态的请求限制。

时间测试辅助函数

Laravel 用户可以借助优秀的 Carbon PHP 库来完全控制时间修改。Laravel 8 在此基础上迈出了更大一步,通过提供更方便的测试助手函数来操作测试中的时间:

// 穿越到未来...
$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();

// 穿越回过去...
$this->travel(-5)->hours();

// 穿越到指定时间...
$this->travelTo(now()->subHours(6));

// 回到现在的时间...
$this->travelBack();

当使用到这些方法, 测试操作中的框架初始化时间将会重置

动态 Blade 组件

有时候你需要在运行之后动态的渲染页面组件, Laravel 8 提供了 <x-dynamic-component/> 去重新渲染页面组件 例如:

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

了解官方原版网站

这些只是Laravel 8中的一些新功能,要查看完整功能列表,请查看 Laravel 8 发行说明Laravel 8 升级指导. 对了, 如果想要更新现有的框架版本,请浏览 Laravel Shift.

泰勒还在Laracon上提供了一些功能的在线演示视频,如果想要观看的话您仍然可以购买门票 Laracon Online . 此外, Laracasts: What’s New in Laravel 8系列可以帮助您快速掌握此发行版中的新功能。

与所有发行版一样,Laravel是有很多人参与才得以实现,我们要感谢所有做出贡献,提交PR,分享想法和使用框架的人。Laravel确实是全球团队努力得来的成果。

本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://laravel-news.com/laravel8

译文地址:https://learnku.com/laravel/t/49405

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 5

Laravel 8 他来了他来了

3年前 评论

学不动了 :sob: :sob: :sob: :sob:

3年前 评论
黄威

项目已升级至Laravel 8.0

3年前 评论
CrazyZard 3年前

已经更新到laravel 8,做个记号。更新的时候需要把"beyondcode/laravel-dump-server": "^1.0",删除,这个是laravel之前版本自带的;更新文档没有提到,目前beyondcode/laravel-dump-server最新版本1.4只支持到laravel 7,我在本地安装一个新的laravel 8项目默认不提供beyondcode/laravel-dump-server

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!