Laravel 8 现已发布!

发布于 作者:

Laravel 8 is Now Released! image

Laravel 8 现已 发布,并包含许多新功能,包括 Laravel Jetstream、模型目录、模型工厂类、迁移压缩、速率限制改进、时间测试助手、动态刀片组件等等。

在我们开始介绍新功能之前,我们想指出,从版本 6 开始,Laravel 现在遵循语义化版本控制,并且每六个月发布一个新的主要版本。您可以看到 发布流程是如何运作的

Laravel Jetstream

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

模型目录

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

模型工厂类

从 Laravel 8 开始,Eloquent 模型工厂现在是基于类的,改进了对工厂之间关系的支持(例如,用户拥有许多帖子)。我认为您会同意使用改进后的模型工厂生成记录的新语法多么棒。

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);
});

如您所见,for() 方法接受 HTTP 请求实例,让您可以完全控制动态限制请求。

时间测试助手

Laravel 用户一直通过优秀的 Carbon 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" />

了解更多关于 Laravel v8 的信息…

这些只是 Laravel 8 中的一些新功能,要查看完整列表,请查看 Laravel 8 发布说明 以及 升级指南。此外,如果您想要一种简单的更新方法,请不要忘记 Laravel Shift

Taylor 还在 Laracon 在线 上介绍了其中一些功能,如果您想了解,仍然可以购买门票。此外,Laracasts:Laravel 8 中的新功能 系列可以帮助您快速了解此版本中的新功能。

与所有版本一样,Laravel 的诞生要归功于许多人,我们感谢所有做出贡献、提交 PR、分享想法以及使用该框架的人。Laravel 确实是一项全球性的团队合作努力。

Paul Redmond photo

Laravel 新闻的撰稿人。全栈 Web 开发人员和作者。

Cube

Laravel 新闻稿

加入 40,000 多名其他开发人员,绝不错过新的技巧、教程等等。

Laravel Forge logo

Laravel Forge

轻松创建和管理您的服务器,并在几秒钟内部署您的 Laravel 应用程序。

Laravel Forge
Tinkerwell logo

Tinkerwell

Laravel 开发人员必备的代码运行器。使用 AI、自动完成和对本地和生产环境的即时反馈进行调试。

Tinkerwell
No Compromises logo

没有妥协

Joel 和 Aaron,来自 No Compromises 播客的两位经验丰富的开发人员,现在可以为您在 Laravel 项目中雇用。 ⬧ 固定价格 7,500 美元/月。 ⬧ 没有冗长的销售流程。 ⬧ 没有合同。 ⬧ 100% 退款保证。

没有妥协
Kirschbaum logo

Kirschbaum

提供创新和稳定性,以确保您的 Web 应用程序成功。

Kirschbaum
Shift logo

Shift

正在运行旧版本的 Laravel?即时、自动化的 Laravel 升级和代码现代化,让您的应用程序保持新鲜。

Shift
Bacancy logo

Bacancy

让您的项目充满活力,聘用经验丰富的 Laravel 开发人员,具有 4-6 年的经验,每月仅需 2,500 美元。获得 160 小时的专业知识和 15 天免费试用。立即安排通话!

Bacancy
Lucky Media logo

Lucky Media

立即获得幸运 - Laravel 开发的理想选择,拥有超过十年的经验!

Lucky Media
Lunar: Laravel E-Commerce logo

Lunar:Laravel 电子商务

Laravel 的电子商务。一个开源软件包,将现代无头电子商务功能的强大功能带到 Laravel。

Lunar:Laravel 电子商务
LaraJobs logo

LaraJobs

官方 Laravel 工作板

LaraJobs
SaaSykit: Laravel SaaS Starter Kit logo

SaaSykit:Laravel SaaS 启动工具包

SaaSykit 是一个 Laravel SaaS 启动工具包,包含运行现代 SaaS 所需的所有功能。付款、精美结账、管理面板、用户仪表板、身份验证、即用组件、统计信息、博客、文档等等。

SaaSykit:Laravel SaaS 启动工具包
Rector logo

Rector

您无缝升级 Laravel、降低成本和加速创新以成就成功企业的合作伙伴

Rector
MongoDB logo

MongoDB

通过将 MongoDB 和 Laravel 有力地集成到您的 PHP 应用程序中,让开发人员能够轻松高效地构建应用程序。支持事务性、搜索、分析和移动用例,同时使用熟悉的 Eloquent API。了解 MongoDB 的灵活、现代数据库如何改变您的 Laravel 应用程序。

MongoDB
Maska is a Simple Zero-dependency Input Mask Library image

Maska 是一个简单的零依赖输入掩码库

阅读文章
Add Swagger UI to Your Laravel Application image

将 Swagger UI 添加到您的 Laravel 应用程序

阅读文章
Assert the Exact JSON Structure of a Response in Laravel 11.19 image

在 Laravel 11.19 中断言响应的精确 JSON 结构

阅读文章
Build SSH Apps with PHP and Laravel Prompts image

使用 PHP 和 Laravel 提示构建 SSH 应用程序

阅读文章
Building fast, fuzzy site search with Laravel and Typesense image

使用 Laravel 和 Typesense 构建快速、模糊的站点搜索

阅读文章
Add Comments to your Laravel Application with the Commenter Package image

使用 Commenter 软件包为您的 Laravel 应用程序添加评论

阅读文章