Minor PHP框架6.代理
Posted Orlion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Minor PHP框架6.代理相关的知识,希望对你有一定的参考价值。
框架Github地址:github.com/Orlion/Minor
(如果觉得还不错给个star哦(^-^)V)
框架作者: Orlion
知乎:https://www.zhihu.com/people/orlion
Github: https://github.com/Orlion
Minor提供了一个类似于java中InvocationHandler接口和一个Proxy类的代理模式的实现,具体可参考我的这篇文章:http://www.cnblogs.com/orlion/p/5350752.html
class FooController extends Controller { public function bar($productName) { $log = new LogHandler(); $shop = new Shop(); $shopProxy = Proxy::newProxyInstance($shop, $log); $shopProxy->buy($productName); } }
<?php namespace 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/>\'; } }
<?php namespace 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\'); } }
以上是关于Minor PHP框架6.代理的主要内容,如果未能解决你的问题,请参考以下文章