• 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');
        }
    }
  • 相关阅读:
    简单的购物车
    分页显示
    登录验证码的实现
    简单遗传算法代码
    jQ
    2.servlet的会话机制session
    1.servlet的会话机制cookie
    基本数据类型和引用数据类型的区别
    struts2-第一章-基础用法2
    struts2第一章-基本用法
  • 原文地址:https://www.cnblogs.com/orlion/p/5595974.html
Copyright © 2020-2023  润新知