Go! 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
Go! 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议: MIT
开发语言: PHP
操作系统: 跨平台
收录时间: 2013-01-10
提 交 者: 红薯

Go! 是一个 PHP 5.4 库,让 PHP 支持 AOP 面向方面编程方法,无需 PECL 扩展、Runkit、evals 或者 DI 容器支持。可使用 XDebug 轻松调试。

示例代码:

// Aspect/MonitorAspect.php

namespace Aspect;

use Go\Aop\Aspect;
use Go\Aop\Intercept\FieldAccess;
use Go\Aop\Intercept\MethodInvocation;
use Go\Lang\Annotation\After;
use Go\Lang\Annotation\Before;
use Go\Lang\Annotation\Around;
use Go\Lang\Annotation\Pointcut;

/**
 * Monitor aspect
 */
class MonitorAspect implements Aspect
{

    /**
     * Method that will be called before real method
     *
     * @param MethodInvocation $invocation Invocation
     * @Before("execution(public Example->*(*))")
     */
    public function beforeMethodExecution(MethodInvocation $invocation)
    {
        $obj = $invocation->getThis();
        echo 'Calling Before Interceptor for method: ',
             is_object($obj) ? get_class($obj) : $obj,
             $invocation->getMethod()->isStatic() ? '::' : '->',
             $invocation->getMethod()->getName(),
             '()',
             ' with arguments: ',
             json_encode($invocation->getArguments()),
             "<br>\n";
    }
}

展开阅读全文

代码

Go! 的相关博客

php aop

//应用程序中某个业务逻辑类 class BIZ { public function foobar() { echo '业务逻辑 '; } } ...

php之aop实践

aop简介 AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理...

PHP-AOP简介

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不...

Go! php aop 初体验

源码好高深莫测。这好像是第三次搞,终于能看到预想的效果了。 $ex = new Example(); $ex->doSth(.2); 输出 Calling Before I...

PHP AOP 扩展 Xaop 现在支持属性 AOP 模式

支持属性AOP模式之前,Xaop仅支持方法的切入(文档注释注解模式 与 方法注入两种模式的 AOP),现在已经支持属性的AOP啦,下面来...

php-parser在Aop编程中的使用

在laravel下使用php-parser实现aop composer require nikic/php-parser Test.php <?php /** * Created by PhpStorm. * Use...

PHP的AOP扩展雨后春笋般的复活啦

Xaop PHP高性能的AOP扩展 功能特色 基于对象的文档注解AOP模式 方法注入AOP模式 框架 Yaf CSpeed Xannotation Phalcon 系统指...

aop

spring in action 第四章

AOP

AOP: Aspect Oriented Programming 面向切面编程。    面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP),是目...

AOP。。。

一、代理目标(target) 谁将被其他对象代理,谁就是代理目标 二、代理对象(proxy) 谁将代理其他对象,谁就是代理对象 三、...

Go! 的相关问答

还没有任何问答,马上提问

评论 (1)

加载中
谁能告诉我什么是AOP,有什么优势? Go!
2013/01/10 21:54
回复
举报
更多评论
1 评论
63 收藏
分享
返回顶部
顶部