laravel辅助函数tap的使用方法
被门夹过的核桃还能补脑嘛Laravel 5.3 中增加了一个新的全局帮助函数 tap(),改进了框架的声明能力。这个微妙的语法是从 Ruby 和 Lodash 借鉴而来,允许你去 tap 成链。 先看看 tap() 帮助函数的代码,只有短短的几行: Laravel5.3的tap
1 | function tap($value, $callback) |
Laravel5.4的tap
1 | function tap($value, $callback = null) |
你需要传一个值和一个回调到方法中,值作为回调的参数,回调将执行,最后值被返回。
第一种情况
默认情况下会返回一bool值
1 | $user = \App\Models\User::query()->find(1); |
返回user实例
1 | $user = \App\Models\User::query()->find(1); |
第二种情况
返回user实例
1 | $name = '樊雨薇'; |
第三种情况
让我们看看 Illuminate\Cache\Repository
下的 pull
方法,此函数将从指定键的缓存中获取值,并将其删除。pull
方法的实现:
1 | public function pull($key, $default = null) |
上面的例子中,$this-> forget() 返回一个布尔值,所以要使我们的函数返回原始值,需要将其储存到临时变量 $value 中。以下是 tap() 的实现,不再需要临时变量:
1 | public function pull($key, $default = null) |
第四种情况
vendor\laravel\framework\src\Illuminate\View\Factory.php
1 | public function make($view, $data = [], $mergeData = []) |
http://derekmd.com/2017/02/laravel-tap/?utm_source=learninglaravel.net
https://pigjian.com/article/laravel-tap-the-usage