Laravel 9.23版本发布

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

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

以下是不将页面传递给命令时的默认行为示例:

1.png


流畅的 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

相关文章