Laravel 9.32版本发布

2023-06-01 00:00:00 laravel 版本 发布

Laravel团队2022年9月28日发布了9.32版本,其中包含 dd() 文件和行输出、加密和解密 .env 文件、刀片组件属性的简短语法等等:


将源文件添加到dd输出

Nuno Maduro改进dd()并dump()输出,添加源文件和行:

dd.png

如果您在文件夹中或在不受版本控制的代码中的某处有恶意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

相关文章