Laravel 11 引入 Dumpable Trait
虽然从技术上讲 Dumpable
trait 是 Laravel 11 新增的,我想说的是,它将 dump()
和 dd()
的思想整合为一个可重用的 trait,这样类就不必单独手动实现。应用开发人员和包作者也可以从这种新的 /support
trait 中受益,以便在可链接类中轻松添加调试方法。
在 Laravel 10 中,我们已经很喜欢能够将 ->dd()
或 ->dump()
中链接到各种框架类中,如 Carbon
、Stringable
、查询生成器和 TestResponse
:
use Illuminate\Support\Carbon;
$time = Carbon::now()
->addDay()
->addMinute()
->addSecond();
// dumping before adding a minute and second
$time = Carbon::now()
->addDay()
->dump()
->addMinute()
->dump()
->addSecond();
不过,在 Laravel 10 中,dump()
和 dd()
方法在每个类中单独创建的,而在 Laraver 11 中,所有这些代码都整合到了我们可以在任何类中使用的 Dumpable
trait 特性中。以下是 Laravel 11 中的 Illuminate Carbon
类的一个示例:
use Illuminate\Support\Traits\Dumpable;
class Carbon extends BaseCarbon
{
use Conditionable, Dumpable;
// ...
}
实现 dump()
和如下的 Dumpable trait 很相似。dd()
唯一的不同是代码会停止执行并退出:
public function dump(...$args)
{
dump($this, ...$args);
return $this;
}