Laravel团队发布了9.21版本,为Artisan带来了全新的外观,两个全新的Artisan命令,以及更多。让我们来看看最新的Laravel 9版本中的所有优点。
一个全新的Artisan外观
努诺-马杜罗(Nuno Maduro)对artisan CLI进行了一次巨大的更新。"几乎所有内置的Artisan命令都被重新设计,以提供更好的体验。"
下面是一些来自Laravel 9.21的新安装的例子:


如果你想更深入的了解,请查看Laravel:Refreshing Artisanon the Laravel Blog.另外,Pull Request #43065有实施细节和几十个新旧CLI的并列比较.
Artisan关于命令
说到Artisan的改进,James Brooks创建了一个全新的命令: about.about 命令显示关于Laravel环境的输出,如调试模式,PHP版本,缓存状态,等等。

Artisan模型显示命令
Jess Archer贡献了一个新的model:show Artisan命令,显示有用的信息,让你对你的模型有一个概览。

它提供了来自数据库和Eloquent的数据,让你在一个地方对你的模型有一个完整、有用的了解。通常情况下,你必须探索数据库和模型类来编译这些信息。
为JsonResource添加了一个whenCounted方法
Steve Bauman为JSON资源贡献了一个whenCounted 方法,以便在模型上设置关系时有条件地包括关系计数。
// new PostResource($post->loadCount('comments'));
class PostResource extends PostResource
{
public function toArray($request)
{
return [
'id' => $this->id,
'comments_count' => $this->whenCounted('comments'),
];
}
}
将请求中的输入作为一个枚举来检索
@emargareten贡献了从请求对象中检索输入的枚举。
// Before
public function post(Request $request)
{
$status = StatusEnum::tryFrom($request->input('status'));
// do stuff with status enum...
}
// After
public 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)
- 改进集合中的模式功能(#43240)
- 在队列工作者resetScope回调中清除Facade resolvedInstances(#43215)。
- 改进 queue:work 命令(#43252)
- 当UPDATED_AT或CREATED_AT为空时,在Model::replicate删除空的默认属性名(#43279)。
- 防止模棱两可的列(#43278)
- 对sqlsrv数据库队列使用readpast查询提示而不是holdlock(#43259)
- 供应商发布标志,限制只发布现有文件(#43212)