Laravel 9.32 发布
Laravel团队发布了9.32,其中包含 dd()
文件和行输出、加密和解密 .env 文件、刀片组件属性的简短语法等:
将源文件添加到dd输出
Nuno Maduro 改进了 dd()
和 dump()
输出,添加了源文件和行:
如果你在“vendor/”文件夹中或代码中不受版本控制的地方有一个恶意的 dd()
调用,则此更新非常有用。这是对所有 dd()
的生活质量的巨大改善!
加密和解密 .env
Joe Dixon 贡献了两个工匠命令来加密和解密 .env 文件。根据 PR description 描述,这些命令受 Rails 的启发,Rails 具有类似的功能(从5.1开始):
灵感来自 Rails ,自2017年 Rails 5.1 发布以来,Rails 一直拥有类似的功能。
这样做的最大好处是,加密的环境文件可以提交到版本控制,这打开了许多可能性。
一个好处是你可以将加密文件提交给版本控制,从而对你的开发设置、暂存等进行版本控制:
# 寻找 .env 并创建 .env.encrypted
php artisan env:encrypt
# 使用支持的密码
php artisan env:encrypt --cipher=aes-256-cbc
# 寻找 .env.production 并创建 .env.production.encrypted
php artisan env:encrypt --env=production
要解密加密文件,你可以使用以下 artisan 命令:
# 解密 .env.encrypted 以创建 .env 文件
php artisan env:decrypt --key=h9kAPUmxdZ8ZbwT3
# 指定选项
php artisan env:decrypt \
--key=h9kAPUmxdZ8ZbwT3 \
--env=production \
--filename=.env"
跨作业共享不重叠密钥
Tim MacDonald 为「WithoutOverlapping」提供了更新,该更新在作业之间应用重叠逻辑,而不是仅支持同一类的实例。 有关详细信息,请参阅 PR #44227。
Blade 组件的简短属性语法
Pascal Baljet 提供了使用更短语法将属性传递给 Blade 组件的功能:
<!-- current syntax -->
<x-profile :user-id="$userId"></x-profile>
<!-- short syntax -->
<x-profile :$userId></x-profile>
以整数和浮点数形式获取请求数据
Jason McCreary 添加了将请求数据方便地转换为浮点和整数类型的支持:
// 之前
intval($request->input('some_int_value'));
floatval($request->input('some_float_value'));
// 现在
$request->integer('some_int_value');
$request->float('some_float_value');
可转换字符串
Jason McCreary 贡献了「方便地将字符串转换为类似于 Laravel 的 HTTP 请求中的常见数据类型」:
// 之前
intval(str('shift-worker-01')->afterLast('-')->toString());
floatval(str('Result: 1.23')->after(':')->trim()->toString());
str('YeS')->lower()->toString() === 'yes';
Carbon::parse(str('DOB: 12-31-2001')->after(':')->trim()->toString());
// 现在
str('shift-worker-01')->afterLast('-')->toInteger();
str('Result: 1.23')->after(':')->trim()->toFloat();
str('YeS')->lower()->toBoolean();
str('DOB: 12-31-2001')->after(':')->trim()->toDate();
允许枚举路由绑定具有默认值
Florian Stascheck 提供了在定义路由时为枚举路由绑定提供默认值的能力:
Route::get('/categories-default/{category?}', function (CategoryBackedEnum $category = CategoryBackedEnum::Fruits) {
return $category->value;
})->middleware('web');
请参阅 PR #44255 了解有关其工作原理的更多详细信息。
发行说明
你可以在下面查看新功能和更新的完整列表以及 9.31.0 和 9.32.0 之间的差异
在 GitHub 上。 以下发行说明直接来自 changelog:
v9.32.0
新增
- 新增 env:encrypt 和 env:decrypt 命令(#44034)
- 跨作业共享不重叠密钥 (#44227)
- 新增缺少的 citext 类型映射到
Illuminate/Database/Console/DatabaseInspectionCommand::$typeMappings
(#44237) - 模板组件的简短属性语法 (#44217)
- 将源文件添加到 dd 函数输出 (#44211)
- 新增方法以将请求数据获取为整数或浮点数 (#44239)
- 新增 Eloquent User Provider 查询处理程序 (#44226)
- 新增方法
Illuminate/Support/Testing/Fakes/BusFake::dispatchFakeBatch()
(#44176) - 新增转换字符串的方法 (#44238)
- 新增方法
Illuminate/Routing/UrlGenerator::withKeyResolver()
(#44254) - 为集合的序列化添加一个钩子 (#44272)
- 允许枚举路由绑定具有默认值 (#44255)
- 新增基准实用程序类 (b4293d7, #44297)
- 新增方法
Illuminate/Console/Scheduling/ManagesFrequencies::everyOddHour()
(#44288)
修复
更改
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
推荐文章: