Minor【 PHP架構】6.代理,minorphp架構代理_PHP教程

來源:互聯網
上載者:User

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類的代理模式的實現,具體可參考...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.