zoukankan      html  css  js  c++  java
  • Minor【 PHP框架】6.代理

    框架Github地址:github.com/Orlion/Minor

    (如果觉得还不错给个star哦(^-^)V)

    框架作者: Orlion

    知乎:https://www.zhihu.com/people/orlion

    Github: https://github.com/Orlion

    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 AppLib;
    
    use MinorProxyInvocationHandler;
    
    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 AppLib;
    
    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');
        }
    }
  • 相关阅读:
    (十一)Updating Documents
    (十)Modifying Your Data
    (九)Delete an Index
    (八)Index and Query a Document
    (七)Create an Index
    (六)List All Indices
    (五)Cluster Health
    (四)Exploring Your Cluster
    (三)Installation
    (二)Basic Concepts 基本概念
  • 原文地址:https://www.cnblogs.com/orlion/p/5595974.html
Copyright © 2011-2022 走看看