Laravel 9.23版本发布
Laravel 团队发布了 9.23,其中包含一个 artisan docs 命令、对 CSP/SRI 的 Vite 支持、一种新的流畅的 JSON 断言方法等等。让我们看一下最新的 Laravel 9 版本:
Artisan 文档命令
Tim MacDonald贡献了一个令人惊叹的新artisan docs命令,让开发人员可以从命令行快速访问网站文档:
#打开一个选择对话框,您可以使用它来输入您想要的内容
php artisan docs
#打开验证文档
php artisan docs validation
事情变得非常疯狂,假设您想转到unique验证文档页面上的验证规则:
php artisan docs validation unique
#部分搜索,将打开唯一的验证规则
php artisan docs va un
以下是不将页面传递给命令时的默认行为示例:
流畅的 JSON whereNot 断言
Mateus Guimarães贡献了一个whereNot()JSON 测试断言:
$response
->assertJson(fn (AssertableJson $json) =>
$json->where('id', 1)
->where('name', 'Victoria Faith')
->whereNot('status', 'pending')
->missing('password')
->etc()
);
悄悄删除模型
Anjorin Damilare提供了一个deleteQuietly()模型方法,可以在不引发任何事件的情况下从数据库中删除模型:
use App\Models\Flight;
$flight = Flight::find(1);
$flight->deleteQuietly();
添加到文件系统适配器的 Conditionable trait
Ralph J. Smit贡献了将Conditionable特征添加到 Filesystem 以允许您使用when()和unless()方法:
Storage::disk('public')
->when(true)
->delete('StardewTaylor.png');
Vite 支持 CSP、SRI 和任意值
Tim MacDonald贡献了对 Vite 实现的第一方支持,以创建一个将用于所有生成的脚本和样式标签的随机数:
use Illuminate\Support\Facades\Vite;
class ContentSecurityPolicy
{
public function handle($request, $next)
{
// 您需要在**解析响应之前**调用此函数
// 这样第 3 方就可以在整个请求中使用相同的 nonce
// 生命周期 齐吉
Vite::useCspNonce();
return $next($response)->withHeaders([
'Content-Security-Policy' => "script-src 'nonce-".Vite::cspNonce()."'",
]);
}
}
这个主题非常繁重,所以我建议通读Pull Request #43442上的描述以获取完整的详细信息。
此外,Laravel Vite 文档已更新Script & Style Tag Attributes部分以帮助您入门。
https://laravel.com/docs/9.x/vite#script-and-style-attributes
发行说明
您可以在下面查看新功能和更新的完整列表以及GitHub 上9.22.0 和 9.23.0之间的差异。以下发行说明直接来自变更日志:
https://github.com/laravel/framework/compare/v9.22.0...v9.23.0
https://github.com/laravel/framework/blob/abcc6ea7c5a80c22130ef3e71f64d1bf974c9806/CHANGELOG.md#v9230---2022-08-02
v9.23.0
添加
为 Fluent JSON 测试匹配器添加了 whereNot 方法 ( #43383 )
为 Model 添加 deleteQuietly 方法,并为相关方法使用箭头函数 ( #43447 )
向文件系统适配器添加了有条件的特征 ( #43450 )
引入 artisan docs 命令 ( #43357 )
使用 Vite 添加了对 CSP nonce、SRI 和任意属性的支持 ( #43442 )
支持从目标对象获取条件的条件 ( #43449 )
添加whereIn到Illuminate/Routing/RouteRegistrar::allowedAttributes( #43509 )
修复
防止在特定时间安排大量作业时 redis 崩溃 ( #43310 )
改变
使命令组件工厂可扩展 ( #43439 )
解决刀片组件显示为控制台格式化的报价 ( #43446 )
改进了服务命令的输出捕获 ( #43461 )
允许更简洁的单例绑定 ( # 43469 )
转:
https://laravel-news.com/laravel-9-23-0
相关文章