Collections 支持 dd 跟 dump 啦!( Laravel 5.5 新功能早知道)
即将到来的 Laravel 5.5 的 Collections 类上新增了两个方法 dd 和 dump,能让代码的调试变得比以前更加容易。:tada:
简单介绍
假设有一个简单的集合,需要使用几个方法过滤之后再输出:
collect([1,2,3])->map(function($i){
return $i * 2;
})->reject(function($i){
return $i < 3;
});
在这种情况下,如果你想知道程序进行的每一步中会发生什么事情可能会很麻烦。可是现在!你可以选择在某一时刻「dump」出去,或者「dd」出去。 例如:
collect([1,2,3])->map(function($i){
return $i * 2;
})->dump()->reject(function($i){
return $i < 3;
});
dump()
输出结果,然后继续执行程序,下面是运行该代码时的结果:
Collection {#181 ▼
#items: array:3 [▼
0 => 2
1 => 4
2 => 6
]
}
而 dd()
会立即停止进程并「dump」出结果:
collect([1,2,3])->map(function($i){
return $i * 2;
})->dd()->reject(function($i){
return $i < 3;
});
结果:
array:3 [▼
0 => 2
1 => 4
2 => 6
]
这两个函数将会成为 Laravel 5.5 中受欢迎的功能之一。如果你现在就想开始使用这些功能,可以查看 Spatie 发布的一个名为 Collection Macros 的第三方软件包,这里面包含了上述两种方法以及一些其他的辅助函数。Just enjoy IT! :rose:
本作品采用《CC 协议》,转载必须注明作者和本文链接
本帖由系统于 7年前 自动加精
Collection 是 laravel 里面最好玩的东西之一。这样调试不用开 xdebug 或者想办法写条件 dd 了。
这就很6了:smile:
5.5 的翻译文档贴,还像还没有出来。我继续等。:gift_heart:
@zhuzhichao ,有个疑问,用习惯了laravel封装好的集合函数,发现都忘记了原生的php数组函数,咋办啊?
@动感超波 没事看看源代码嘛!你点到
dd
函数里面,就可以看到原来也是用的var_dump
和die
两个方法哦!