Laravel团队发布了9.32版本的dd()文件和行输出,加密和解密.env文件,刀片组件属性的简短语法,以及更多。
在dd输出中添加源文件
Nuno Maduro改进了dd() 和dump() 输出,增加了源文件和行。

如果你在vendor/ 文件夹中或在没有版本控制的代码中的某个地方有一个流氓的dd() 调用,这个更新是有益的。对于所有的dd()用户来说,这是一个巨大的生活质量的改善。
加密和解密.env
Joe Dixon贡献了两个 Artisan 命令来加密和解密 .env 文件。根据PR的描述,这些命令的灵感来自Rails,它有类似的功能(从5.1开始)。
这方面的灵感来自于Rails,他们在2017年发布的Rails 5.1中就有类似的功能。
这样做的最大好处是,加密的环境文件可以提交到版本控制中,这带来了许多可能性。
一个好处是,你可以将加密的文件提交到版本控制,从而对你的开发设置、暂存等进行版本控制。
# Looks for .env and creates .env.encrypted
php artisan env:encrypt
# Use a supported cipher
php artisan env:encrypt --cipher=aes-256-cbc
# Looks for .env.production and creates .env.production.encrypted
php artisan env:encrypt --env=production
要解密一个加密的文件,你可以使用以下artisan命令。
# Decrypts .env.encrypted to create a .env file
php artisan env:decrypt --key=h9kAPUmxdZ8ZbwT3
# Specify options
php artisan env:decrypt \
--key=h9kAPUmxdZ8ZbwT3 \
--env=production \
--filename=.env"
在工作间共享 WithoutOverlapping 密钥
Tim MacDonald对WithoutOverlapping 做出了更新,在不同的工作中应用重叠的逻辑,而不是只支持同一类别的实例。
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');
Cast stringables
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');
发布说明
你可以在GitHub上看到新功能和更新的完整列表以及9.31.0和9.32.0之间的差异。下面的发行说明直接来自更新日志。
v9.32.0
新增
- 新的 env:encrypt 和 env:decrypt 命令(#44034)
- 在作业间共享WithoutOverlapping密钥(#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)