Skip to content

Commit 118ed65

Browse files
authored
Create HigherOrderTapProxy
1 parent 6e912fb commit 118ed65

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

src/Utils/HigherOrderTapProxy

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
<?php
2+
3+
namespace ZhenMu\Support\Utils;
4+
5+
class HigherOrderTapProxy
6+
{
7+
/**
8+
* The target being tapped.
9+
*
10+
* @var mixed
11+
*/
12+
public $target;
13+
14+
/**
15+
* Create a new tap proxy instance.
16+
*
17+
* @param mixed $target
18+
* @return void
19+
*/
20+
public function __construct($target)
21+
{
22+
$this->target = $target;
23+
}
24+
25+
/**
26+
* Dynamically pass method calls to the target.
27+
*
28+
* @param string $method
29+
* @param array $parameters
30+
* @return mixed
31+
*/
32+
public function __call($method, $parameters)
33+
{
34+
$this->target->{$method}(...$parameters);
35+
36+
return $this->target;
37+
}
38+
}

0 commit comments

Comments
 (0)