程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> Minor【 PHP框架】6.代理,minorphp框架代理

Minor【 PHP框架】6.代理,minorphp框架代理

編輯:關於PHP編程

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);

    }
}
<?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');
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved