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

 

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

 

以上是关于Minor PHP框架6.代理的主要内容,如果未能解决你的问题,请参考以下文章

Minor PHP框架5.事件

Minor PHP框架2.第一个应用 Hello World

Minor PHP框架3.路由控制器视图

Minor PHP框架4.服务容器与服务提供者

spring框架学习6:spring-aop的五种通知类型

Spring框架-第三篇