zean/proxy 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

zean/proxy

Composer 安装命令:

composer require zean/proxy

包简介

use this library can complete aop

README 文档

README

一个简单的代理实现,可以帮助实现面向切面编程(AOP)

Install

composer require zean/proxy

Usage

Example

<?php
/**
 * 真正的业务类
 */
class TestService
{
    public function test($param)
    {
        echo $param . PHP_EOL;
    }
}

/**
 * 在业务方法,前后加日志,通过环绕增强来实现
 * 只需要实现AroundAdvice接口,完成before、after、exception方法
 */
class LogAdvice implements AroundAdvice
{
    /**
     * @param $method
     * @param $parameters
     * @param $className
     *
     * @return mixed
     */
    public function before($method, $parameters, $className)
    {
        echo 'start log' . PHP_EOL;
    }

    /**
     * @param $method
     * @param $parameters
     * @param $result
     * @param $className
     *
     * @return mixed
     */
    public function after($method, $parameters, $result, $className)
    {
        echo 'end' . PHP_EOL;
    }

    /**
     * @param string $method
     * @param mixed  $parameters
     * @param string $className
     * @param Exception  $exception
     */
    public function exception($method, $parameters, $className, $exception)
    {
        echo 'what?' . $exception->getMessage() . PHP_EOL;
    }
}

$logProxy = AOPProxy::create(new TestService());
$logProxy->addAdvice(new LogAdvice());
$logProxy->test('test');

result: start log
test
end log

前置增强需要实现BeforeAdvice、后置增强需要实现AfterAdvice

支持创建单例,create($obj, $useSingleton),当第二个参数为true的时候创建的代理为单例(默认为true)

统计信息

  • 总下载量: 14
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2016-08-02

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固