Laravel 9.34 发布

发布于 作者

Laravel 9.34 Released image

Laravel 团队发布了 9.33 和 9.34,引入了 Laravel 预知功能,自闭合 Blade 组件的简短属性语法等等。

注意:我们还将介绍上周五在典型每周发布之间发布的 Laravel 9.33 中发布的关键新功能。

Laravel 预知功能 (9.33)

Tim MacDonald 贡献了预知功能的引入。虽然本文不包含完整的解释,但请查看 Pull Request #44339,以深入了解预知功能提供的功能。总而言之,以下是 TLDR

预知功能是框架的一项新功能,它将允许开发者为他们的用户创造新的、更完善的体验。

预知功能引入了一个请求/响应头、中间件,以及在某些情况下,一个 Laravel 以独特方式响应的全局助手。

当预知请求进入 Laravel 时,在控制器执行之前会完成所有操作。这包括所有中间件、路由模型绑定解析、表单请求验证等等。

你应该认真阅读 Pull Request #44339,以查看如何利用这项激动人心的新功能的示例!

自闭合 Blade 组件的简短属性语法 (9.34)

Perry van der Meer 为自闭合 Blade 组件贡献了简短属性语法。这个 PR 基于在 Laravel 9.32 中为 Blade 组件发布的简短属性语法。

<!-- current short syntax -->
<x-profile :$userId></x-profile>
 
<!-- short syntax for self-closing component -->
<x-profile :$userId/>

在 Blade 视图中渲染 PHP 的“BackedEnum” (9.34)

Nuno Maduro 为支持 BackedEnum 贡献了 Blade 渲染。以以下路由视图示例为例

// routes/web.php
Route::get('/', function () {
return view('dashboard', ['role' => UserRoles:: ADMIN]);
});

给定 $role 变量,它现在将正确地渲染在 Blade 中。

Hello, {{ $role }}.
 
<!-- ❌ Before: TypeError: htmlspecialchars(): Argument #1 ($string) must be of type string -->
<!-- ✅ After: Hello, Admin. -->

向 MailFake 添加 cc() 方法 (9.33)

Adrian Nürnberger 贡献了 MailFake 中缺少的 cc() 方法。实现如下。

public function cc($users)
{
return (new PendingMailFake($this))->cc($users);
}

忽略 Stringable contains() 和 containsAll() 中的大小写 (9.33)

Jae Toole 为 Stringable contains()containsAll() 方法贡献了大小写不敏感的支持。

// returns true
$this->stringable('taylor')
->contains(['LOR'], true);
 
// returns true
$this->stringable('taylor otwell')
->containsAll(['TAYLOR', 'OTWELL'], true);

发行说明

您可以在下面看到新功能和更新的完整列表,以及 9.33.0 和 9.34.0 之间的差异。以下发行说明直接来自 变更日志

v9.34.0

添加

  • 自闭合 Blade 组件的简短属性语法 (#44413)
  • 添加了对在 Blade 视图中“渲染”PHP 的 BackedEnum 的支持 (#44445)

修复

  • 修复了 Symfony 响应的预知功能头 (#44424)
  • 允许创建包含点的数据库 (#44436)
  • 修复了 Windows 上的 dd 源 (#44451)

更改

  • 在缺少主机时,将错误输出添加到 db 命令 (#44394)
  • 更改了 Illuminate/Database/Schema/ForeignIdColumnDefinition::constrained() (#44425)
  • 允许在基于闭包的监听器中监听维护模式事件 (#44417)
  • 允许工厂回收给定类型的多个模型 (#44328)
  • 改进多个编辑器和 Docker 环境中的 dd 可点击链接 (#44406)

v9.33.0

添加

  • 添加了 Illuminate/Support/Testing/Fakes/MailFake::cc() (#44319)
  • 添加了 Stringable contains 和 containsAll 中 Str::contains 和 Str::containsAll 的大小写忽略 (#44369)
  • 添加了对 ULID 支持的缺少的 morphs 方法 (#44364)
  • 引入 Laravel 预知功能 (#44339)
  • 添加了 Illuminate/Routing/Route::flushController() (#44386)

修复

  • 修复了 PHPUnit 的 Annotations 注册表上的内存泄漏 (#44324, #44336)
  • 修复了 Illuminate/Filesystem/FilesystemAdapter::url() 与 config prefix (#44330)
  • 修复了 Timebox 类中“从 float 到 int 的隐式转换会导致精度丢失”错误 (#44357)

更改

  • 改进编译视图中的 dd 源 (#44347)
  • 仅打印来自 dump.php 的 dd 调用的源 (#44367)
  • 确保 Carbon 版本支持 PHP 8.2 (#44374)
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,来自“毫无妥协”播客的两名经验丰富的开发者,现已可以为您的 Laravel 项目提供服务。 ⬧ 固定价格 7,500 美元/月。 ⬧ 没有漫长的销售流程。 ⬧ 没有合同。 ⬧ 100% 返款保证。

毫无妥协
Kirschbaum logo

Kirschbaum

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

Kirschbaum
Shift logo

Shift

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

Shift
Bacancy logo

Bacancy

只需每月$2500,即可获得一位拥有4-6年经验的资深Laravel开发者,为您的项目注入活力。获得160小时的专业服务和15天无风险试用。立即预约通话!

Bacancy
Lucky Media logo

Lucky Media

Get Lucky Now - 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

在您的Laravel应用程序中添加Swagger UI

阅读文章
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 Prompts构建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应用程序添加评论

阅读文章