Laravel 9.32 版本发布
发布时间 作者 Paul Redmond
Laravel 团队发布了 9.32 版本,其中包括 `dd()` 文件和行输出、加密和解密 `.env` 文件、Blade 组件属性的简短语法等等。
在 `dd` 输出中添加源文件
Nuno Maduro 改进了 `dd()` 和 `dump()` 输出,添加了源文件和行号。
此更新对于那些在 `vendor/` 文件夹中或版本控制之外的代码中使用 `dd()` 的人非常有用。这对所有 `dd()` 用户来说是一个巨大的生活质量提升!
加密和解密 `.env`
Joe Dixon 为加密和解密 `.env` 文件贡献了两个 Artisan 命令。根据 PR 描述,这些命令的灵感来自 Rails,Rails 从 5.1 版本开始具有类似的功能。
此功能的灵感来自 Rails,Rails 从 2017 年发布的 5.1 版本开始具有类似的功能。
此功能最大的好处是,加密后的环境文件可以提交到版本控制,从而开启了许多可能性。
其中一个好处是您可以将加密后的文件提交到版本控制,从而对您的开发环境、预发布环境等进行版本控制。
# Looks for .env and creates .env.encryptedphp artisan env:encrypt # Use a supported cipherphp artisan env:encrypt --cipher=aes-256-cbc # Looks for .env.production and creates .env.production.encryptedphp artisan env:encrypt --env=production
要解密加密后的文件,可以使用以下 Artisan 命令
# Decrypts .env.encrypted to create a .env filephp artisan env:decrypt --key=h9kAPUmxdZ8ZbwT3 # Specify optionsphp artisan env:decrypt \ --key=h9kAPUmxdZ8ZbwT3 \ --env=production \ --filename=.env"
在作业之间共享 `WithoutOverlapping` 键
Tim MacDonald 贡献了对 `WithoutOverlapping` 的更新,这些更新会将重叠逻辑应用于所有作业,而不是只支持同一类的实例。有关更多详细信息,请参阅 Pull Request #44227。
Blade 组件的简短属性语法
Pascal Baljet 贡献了使用更简短的语法向 Blade 组件传递属性的功能。
<!-- current syntax --><x-profile :user-id="$userId"></x-profile> <!-- short syntax --><x-profile :$userId></x-profile>
将请求数据获取为整数和浮点数
Jason McCreary 添加了支持将请求数据方便地转换为浮点数和整数类型。
// Beforeintval($request->input('some_int_value'));floatval($request->input('some_float_value')); // After$request->integer('some_int_value');$request->float('some_float_value');
转换可字符串化的对象
Jason McCreary 贡献了方法来“方便地将可字符串化的对象转换为类似于 Laravel HTTP 请求中的那些常用数据类型”。
// Beforeintval(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()); // Afterstr('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');
有关此功能的工作原理的更多详细信息,请参阅 Pull Request #44255。
发行说明
您可以在下面查看新功能和更新的完整列表,以及 GitHub 上 9.31.0 和 9.32.0 之间的差异。以下发行说明直接来自 变更日志
v9.32.0
新增
- 新增 `env:encrypt` 和 `env:decrypt` 命令 (#44034)
- 在作业之间共享 `WithoutOverlapping` 键 (#44227)
- 将缺少的 `citext` 类型映射添加到 `Illuminate/Database/Console/DatabaseInspectionCommand::$typeMappings` (#44237)
- Blade 组件的简短属性语法 (#44217)
- 在 `dd` 函数输出中添加源文件 (#44211)
- 添加方法将请求数据获取为整数或浮点数 (#44239)
- 添加 Eloquent 用户提供者查询处理程序 (#44226)
- 添加 `Illuminate/Support/Testing/Fakes/BusFake::dispatchFakeBatch()` (#44176)
- 添加方法来转换可字符串化的对象 (#44238)
- 添加 `Illuminate/Routing/UrlGenerator::withKeyResolver()` (#44254)
- 在集合的序列化中添加钩子 (#44272)
- 允许枚举路由绑定具有默认值 (#44255)
- 添加基准测试实用程序类 (b4293d7, #44297)
- 添加 `Illuminate/Console/Scheduling/ManagesFrequencies::everyOddHour()` (#44288)
修复
- 修复递增字符串键 (#44247)
- 修复迁移中具有命名参数的 Fluent 类中的错误 (#44251)
- 修复“about”命令缓存报告 (#44305)
- 修复内存泄漏 (#44306, #44307)