Minor [PHP framework] 6. Proxy and minorphp framework proxy
6.1 proxy
Minor provides an implementation similar to the InvocationHandler interface in java and the Proxy mode of a Proxy class. For details, refer to my article: http://www.cnblogs.com/orlion/p/5350752.html
6.1.1 usage
class FooController extends Controller{ public function bar($productName) { $log = new LogHandler(); $shop = new Shop(); $shopProxy = Proxy::newProxyInstance($shop, $log); $shopProxy->buy($productName); }}
<?phpnamespace App\Lib;use Minor\Proxy\InvocationHandler;class LogHandler implements InvocationHandler{ public function invoke($target, \ReflectionMethod $method, Array $args = []) { $this->before(); $result = $method->invokeArgs($target, $args); $this->after(); return $result; } public function before() { echo '[LogHandler] before<br/><br/>'; } public function after() { echo '[LogHandler] after<br/><br/>'; }}
<?phpnamespace App\Lib;class Shop{ private $mail = null; public function boot(MailProvider $mail) { $this->mail = $mail; } public function buy($productName) { echo '[Shop] buy ' . $productName . '<br/><br/>'; !is_null($this->mail) && $this->mail->send('DemoUser'); }}