Minor【 PHP架構】6.代理,minorphp架構代理
6.1 代理
Minor提供了一個類似於java中InvocationHandler介面和一個Proxy類的代理模式的實現,具體可參考我的這篇文章:http://www.cnblogs.com/orlion/p/5350752.html
6.1.1 使用
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
'; } public function after() { echo '[LogHandler] after
'; }}
phpnamespace App\Lib;class Shop{ private $mail = null; public function boot(MailProvider $mail) { $this->mail = $mail; } public function buy($productName) { echo '[Shop] buy ' . $productName . '
'; !is_null($this->mail) && $this->mail->send('DemoUser'); }}
http://www.bkjia.com/PHPjc/1135178.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1135178.htmlTechArticleMinor【 PHP架構】6.代理,minorphp架構代理 6.1 代理 Minor提供了一個類似於java中InvocationHandler介面和一個Proxy類的代理模式的實現,具體可參考...