diff --git a/src/Illuminate/Support/Traits/Tappable.php b/src/Illuminate/Support/Traits/Tappable.php new file mode 100644 index 000000000000..e4a321cdfd00 --- /dev/null +++ b/src/Illuminate/Support/Traits/Tappable.php @@ -0,0 +1,17 @@ +tap(function ($tappable) { + $tappable->setName('MyName'); + })->getName(); + + $this->assertEquals('MyName', $name); + } + + public function testTappableClassWithoutCallback() + { + $name = TappableClass::make()->tap()->setName('MyName')->getName(); + + $this->assertEquals('MyName', $name); + } +} + +class TappableClass +{ + use Tappable; + + private $name; + + public static function make() + { + return new static; + } + + public function setName($name) + { + $this->name = $name; + } + + public function getName() + { + return $this->name; + } +}