Laravel 9.21 为 Artisan 带来了全新的面貌
发布于 作者: Paul Redmond
Laravel 团队发布了 9.21,其中包含 Artisan 的全新外观、两个全新的 Artisan 命令等等。让我们来了解一下最新 Laravel 9 版本中的所有优点。
Artisan 的全新外观
Nuno Maduro 贡献了对 artisan
CLI 的巨大改进。“几乎所有内置的 Artisan 命令都经过重新设计,以提供更好的体验。”
以下是一些来自全新安装 Laravel 9.21 的示例。
如果您想深入了解,请查看 Laravel 博客上的 Laravel:刷新 Artisan。此外,Pull Request #43065 包含实现细节以及旧版 CLI 与新版 CLI 之间数十个并排比较的结果。
Artisan about 命令
说到 Artisan 的改进,James Brooks 创建了一个全新的命令:about。about
命令显示有关 Laravel 环境的信息,例如调试模式、PHP 版本、缓存状态等等。
Artisan model show 命令
Jess Archer 贡献了一个新的 model:show
Artisan 命令,用于显示有用的信息以提供模型的概览。
它提供来自数据库和 Eloquent 的数据,以便在一个地方为您提供模型的完整、有用的视图。通常,您需要浏览数据库和模型类才能编译此信息。
向 JsonResource 添加了 whenCounted 方法
Steve Bauman 贡献了一个 whenCounted
方法到 JSON 资源,以便在模型上设置关系时有条件地包含关系计数。
// new PostResource($post->loadCount('comments')); class PostResource extends PostResource{ public function toArray($request) { return [ 'id' => $this->id, 'comments_count' => $this->whenCounted('comments'), ]; }}
从请求中检索输入作为枚举
@emargareten 贡献了从请求对象中检索输入作为枚举的功能。
// Beforepublic function post(Request $request){ $status = StatusEnum::tryFrom($request->input('status')); // do stuff with status enum...} // Afterpublic function post(Request $request){ $status = $request->enum('status', StatusEnum::class); // do stuff with status enum...}
发行说明
您可以在下面看到完整的全新功能和更新列表,以及 GitHub 上 9.20.0 和 9.21.0 之间的差异。以下发行说明直接来自 变更日志
v9.21.0
新增
- 添加鼓舞人心的引言 (#43180, #43189)
- 为 Artisan 引入全新的外观 (#43065)
- 向 JsonResource 添加 whenCounted (#43101)
- Artisan model:show 命令 (#43156)
- Artisan
about
命令 (#43147, 51b5eda, #43225, #43276) - 将枚举转换添加到 Request (#43239)
回退
- 回退 "修复路由中的默认参数错误" (#43208)
- 回退路由更改 PR (#43255)
修复
- 修复 sqlsrv 的事务尝试计数器 (#43176)
变更
- 使 assertDatabaseHas failureDescription 更加支持多字节字符 (#43181)
- ValidationException 仅在使用字符串时进行概括 (#43177)
- 改进集合中的 mode 函数 (#43240)
- 在队列工作程序 resetScope 回调中清除 Facade resolvedInstances (#43215)
- 改进 queue:work 命令 (#43252)
- 在 Model::replicate 中,当 UPDATED_AT 或 CREATED_AT 为空时,删除空默认属性名 (#43279)
- 防止出现歧义的列 (#43278)
- 使用 readpast 查询提示而不是 holdlock 用于 sqlsrv 数据库队列 (#43259)
- 供应商发布标志,仅限于现有文件 (#43212)