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

本文为协同翻译文章,如您发现瑕疵请点击「改进」按钮提交优化建议
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4

Laravel 8 他来了他来了

2周前 评论

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

2周前 评论
黄威

项目已升级至Laravel 8.0

2周前 评论
CrazyZard 2周前

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

1周前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!