Laravel 9.21为Artisan引入了一个全新的外观

186 阅读3分钟

Laravel团队发布了9.21版本,为Artisan带来了全新的外观,两个全新的Artisan命令,以及更多。让我们来看看最新的Laravel 9版本中的所有优点。

一个全新的Artisan外观

努诺-马杜罗(Nuno Maduro)artisan CLI进行了一次巨大的更新。"几乎所有内置的Artisan命令都被重新设计,以提供更好的体验。"

下面是一些来自Laravel 9.21的新安装的例子:

artisan route:list

artisan migrate:fresh

如果你想更深入的了解,请查看Laravel:Refreshing Artisanon the Laravel Blog.另外,Pull Request #43065有实施细节和几十个新旧CLI的并列比较.

Artisan关于命令

说到Artisan的改进,James Brooks创建了一个全新的命令: about.about 命令显示关于Laravel环境的输出,如调试模式,PHP版本,缓存状态,等等。

artisan about

Artisan模型显示命令

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

artisan model:show

它提供了来自数据库和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

新增

撤销

修复

  • 修复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)