Laravel团队发布了9.24版本

97 阅读2分钟

Laravel团队发布了9.24版本,新的工匠 "db "命令,一个新的内置验证规则,恢复软删除的模型,没有任何事件,以及更多。

新的数据库Artisan命令

James Brooks为数据库贡献了三个新的Artisan命令。db:show,db:table, 和db:monitor

首先,db:show 给你一个数据库的概述。它包括像数据库类型、版本、用户名等等。

db:show example output

接下来,db:table 命令让你看到一个表的细节,包括行的数量,列的细节,索引,等等。

db:table example output

最后,db:monitor 命令让你看到数据库的连接数等信息。

db:monitor example output

"does not end with "验证规则

@kichetof贡献了一个doesnt_end_with 验证规则,用于检查一个字符串是否不以给定的子串结尾。这里有一个来自拉动请求测试的例子。

// Validation passes
$v = new Validator(
  $trans,
  ['x' => 'hello world'],
  ['x' => 'doesnt_end_with:hello']
);
 
$this->assertTrue($v->passes());
 
// Validation fails
$v = new Validator(
  $trans,
  ['x' => 'hello world'],
  ['x' => 'doesnt_end_with:world']
);
 
$this->assertFalse($v->passes());

恢复一个没有事件的 "软删除 "模型

Venelin Iliev贡献了一个restoreQuietly() 方法,可以在不引发任何事件的情况下恢复一个软删除的模型。

$deletedModel->restoreQuietly();

让Config repository成为宏程序

Chris Kankiewicz贡献了在Config 仓库中添加 macroable 特质,这样用户就可以在他们的应用程序中扩展它。

config()->macro('sayHello', function () {
    return 'Hello, world';
});
 
config()->sayHello(); // Hello, world

版本说明

你可以在GitHub上看到以下完整的新功能和更新列表以及9.23.0和9.24.0之间的差异。下面的发布说明直接来自于更新日志

v9.24.0

新增

  • 新的db:show, db:table 和 db:monitor 命令(#43367)
  • 增加了验证doesnt_end_with规则(#43518)
  • 添加了Illuminate/Database/Eloquent/SoftDeletes::restoreQuietly() (#43550)
  • 为资源ConditionallyLoadsAttributes特性添加了mergeUnless(#43567)
  • 添加了Illuminate/Support/Testing/Fakes/NotificationFake::sentNotifications() (#43558)
  • Illuminate/Database/Eloquent/Builder.php ,将implode 添加到Passthru (#43574)
  • 使配置库可实现宏(#43598)
  • 为ConditionallyLoadsAtrribute trait添加whenNull(#43600)
  • 将子路由模型关系名称提取到方法中(#43597)

撤销

修复

  • 修复广播事件的唯一锁定(#43516)
  • 修复了在windows下运行docs命令的问题(#43566,#43585)
  • 修复了运行db:seed或在migrate命令中使用--seed时的输出问题(#43593)

已更改

  • 当artisan docs命令无法在系统中找到预期的二进制文件时,会优雅地失败(#43521)
  • 改进某些Artisan命令的输出(#43547)
  • Postgres DSN中的替代数据库名称,允许pgbouncer别名的数据库在9.x上继续工作(#43542)
  • 允许@class()用于组件标签(#43140)
  • 属性铸造的性能改进(#43554)
  • Queue worker daemon也应监听SIGQUIT(#43607)。
  • 当使用Collection->sortBy()与数组的排序操作时,保留原始键(#43609)