Laravel 9.32版本发布
Laravel团队2022年9月28日发布了9.32版本,其中包含 dd() 文件和行输出、加密和解密 .env 文件、刀片组件属性的简短语法等等:
将源文件添加到dd输出
Nuno Maduro改进dd()并dump()输出,添加源文件和行:
如果您在文件夹中或在不受版本控制的代码中的某处有恶意dd()调用,则此更新非常有用。
vendor/对于所有 dd() 的人来说,这是一个巨大的生活质量改进!
加密(Encrypt)和解密(Decrypt ) .env
Joe Dixon贡献了两个工匠命令来加密和解密 .env 文件。
根据PR 描述,这些命令的灵感来自具有类似功能的 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。生产并创建.env.production.encrypted
php artisan env:encrypt --env=production
要解密加密文件,您可以使用以下 artisan 命令:
# Decrypts .env.加密以创建.env文件
php artisan env:decrypt --key=h9kAPUmxdZ8ZbwT3
# 指定选项
php artisan env:decrypt \
--key=h9kAPUmxdZ8ZbwT3 \
--env=production \
--filename=.env"
跨作业共享不重叠键
Tim MacDonald为WithoutOverlapping跨作业应用重叠逻辑而不是仅支持同一类的实例提供了更新。
有关详细信息,请参阅拉取请求 #44227。
Blade组件的简短属性语法
Pascal Baljet贡献了使用更短语法将属性传递给 Blade 组件的能力:
<!-- current syntax -->
<x-profile :user-id="$userId"></x-profile>
<!-- short syntax -->
<x-profile :$userId></x-profile>
以整数和浮点数形式获取请求数据
Jason McCreary添加了对方便地将请求数据转换为浮点和整数类型的支持:
// Before
intval($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 请求中发现的常见数据类型”:
// Before
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());
// After
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');
有关其工作原理的更多详细信息,请参阅Pull Request #44255。
发行说明
您可以在下面查看新功能和更新的完整列表以及GitHub 上9.31.0 和 9.32.0之间的差异。
以下发行说明直接来自变更日志:
https://github.com/laravel/framework/compare/v9.31.0...v9.32.0
https://github.com/laravel/framework/blob/5dd58d428c64811b70ecba57a75e77c136578410/CHANGELOG.md#v9320---2022-09-27
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)
添加了转换 Stringables 的方法 ( #44238 )
添加Illuminate/Routing/UrlGenerator::withKeyResolver()(#44254)
为集合的序列化添加一个钩子 ( #44272 )
允许枚举路由绑定具有默认值 ( #44255 )
添加了基准实用程序类 ( b4293d7 , #44297 )
添加Illuminate/Console/Scheduling/ManagesFrequencies::everyOddHour()(#44288)
修复
修复递增的字符串键 ( #44247 )
使用迁移中的命名参数修复 Fluent 类中的错误 ( #44251 )
修复“about”命令缓存报告(#44305)
修复内存泄漏(#44306,#44307)
改变
用户登录中永恒定时攻击漏洞的补丁(#44069)
重构:在工匠服务中注册命令(#44257)
允许工厂使用 for 方法回收模型 ( #44265 )
在验证器中使用专用方法替换占位符 ( #44296 )
转:
https://laravel-news.com/laravel-9-32-0
相关文章