Laravel 9.23 发布
Laravel 团队发布了 9.23 版本,其中包含一个 artisan docs 命令、对 CSP/SRI 的 Vite 支持、一个新的流畅的 JSON 断言方法等等。让我们来看看最新的 Laravel 9 版本:
Artisan docs 命令
Tim MacDonald 贡献了一个令人惊叹的 artisan docs
命令,让开发人员能够从命令行快速访问网站文档:
# 打开一个您可以用来键入所需内容的选择对话框
php artisan docs
# 打开验证文档
php artisan docs validation
事情变得非常疯狂,比如你想要转到验证文档页面上的 唯一
验证规则:
php artisan docs validation unique
# 部分搜索将打开唯一验证规则
php artisan docs va un
以下是不将页面传递给命令时的默认行为示例:
Fluent 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()
);
悄悄删除一个model
Anjorin Damilare 提供了一个 deleteQuietly()
模型方法,可以在不引发任何事件的情况下从数据库中删除模型:
use App\Models\Flight;
$flight = Flight::find(1);
$flight->deleteQuietly();
有条件的特征添加到文件系统适配器
Ralph J. Smit 贡献了将 Conditionable
特征添加到文件系统以允许您使用 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)
{
// 你需要在 **before** 调用此函数
// 这样第 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 部分,以帮助你入门。
发行说明
你可以在下面查看新功能和更新的完整列表以及 9.22.0 and 9.23.0 在 GitHub 上。以下发行说明直接来自 changelog:
v9.23.0
Added
- 为 Fluent JSON 测试匹配器添加 whereNot 方法 (#43383)
- 为 Model 添加 deleteQuietly 方法,并为相关方法使用箭头函数 (#43447)
- 为文件系统适配器添加了条件特性 (#43450)
- 引入 artisan docs 命令 (#43357)
- 添加了对 Vite 的支持 CSP nonce、SRI 和任意属性 (#43442)
- 支持从目标对象获取条件的条件 (#43449)
- 将
whereIn
添加到Illuminate/Routing/RouteRegistrar::allowedAttributes
(#43509)
Fixed
- 防止在特定时间安排大量作业时 redis 崩溃 (#43310)
Changed
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
我天,这速度,赶上中国基建的速度了
laravel9下打 route:list不显示中间件, 得
route:list -v