`
chenge2k
  • 浏览: 6949 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

简单的php aop

    博客分类:
  • php
阅读更多
对比之下,感觉比spring aop简单易懂。

<?php 
//应用程序中某个业务逻辑类 
class BIZ 
{ 
    public function foobar() 
    { 
        echo '业务逻辑<br />'; 
    } 
} 
//业务逻辑类的包装类 
class AOP 
{ 
    private $instance; 
    public function __construct($instance) 
    { 
        $this->instance = $instance; 
    } 
    public function __call($method, $argument) 
    { 
        if(! method_exists($this->instance, $method)) 
        { 
            throw new Exception('未定义的方法:' . $method); 
        } 
        echo '权限检查<br />'; 
        $callBack = array($this->instance, $method); 
        $return = call_user_func_array($callBack, $argument); 
        echo '日志记录<br />'; 
        return $return; 
    } 
} 
//工厂方法 
class Factory 
{ 
    public function getBizInstance() 
    { 
        return new AOP(new BIZ()); 
    } 
} 
//客户端调用演示 
header("Content-Type: text/html; charset=gbk"); 
try 
{ 
    $obj = Factory::getBizInstance(); 
    $obj->foobar(); 
} 
catch(Exception $e) 
{ 
    echo 'Caught exception: ',  $e->getMessage(); 
} 
?>

屏幕显示:

权限检查
业务逻辑
日志记录


http://blog.163.com/lgh_2002/blog/static/44017526201052563459/
分享到:
评论

相关推荐

    PHP-设计模式: AOP切面编程,DI依赖注入,DIC容器DEMO。简单易懂哦

    本篇我们将聚焦于“PHP设计模式”中的两个核心概念:AOP(面向切面编程)和DI(依赖注入),以及与之相关的DIC(依赖注入容器)。 首先,我们来理解一下“面向切面编程”(AOP)。在传统的面向对象编程中,我们通常...

    PHP的AOP库Go!.zip

    是一个 PHP 5.4 库,让 PHP 支持 AOP 面向方面编程方法,无需 PECL 扩展、Runkit、evals 或者 DI 容器支持。可使用 XDebug 轻松调试。 示例代码: // Aspect/MonitorAspect.php namespace Aspect; use Go\...

    AOP:PHP中的AOP

    AOP扩展旨在使您想到将AOP集成到PHP的最简单方法。 AOP旨在实现跨领域关注点的分离(缓存,日志,安全性,事务等) 安装 您可以使用pecl sudo pecl install aop-beta 或者 从github下载AOP,编译并将扩展名添加...

    PHP的AOP扩展Runkit.zip

    不过,在使用runkit的时候,还遇到一个问题:就是大小写的问题,起初,在“钩”方法的时候,有的方法带有大写字母,通过反射得到的方法名 也是区分大小写的,但是,应该在php解析执行函数的时候,还是把所有方法名或...

    aop.rar_php a

    标题 "aop.rar_php a" 暗示我们讨论的主题是关于PHP的AOP(面向切面编程)框架。AOP是一种编程范式,它允许程序员定义“切面”,这些切面可以插入到应用程序的不同部分,以实现关注点的分离,如日志、事务管理或权限...

    AOP资源

    3. **Aspect Oriented PHP (AoPHP)**:PHP语言的AOP实现,允许开发者定义切面并自动织入到PHP类中。 在实际开发中,使用AOP可以有效降低系统的复杂性,提高代码的整洁度。通过合理设计切面和切入点,可以避免代码的...

    支付宝 开放平台AOP版 RSA 手机WEB及APP支付 PHP

    支付宝app支付,最新版本开始了新的模式,AOP版,此版本和微信开放平台类似,得设置各种参数,各种调试。 官网给的sdk就是坑,各种坑爹,对于我们这些小白来说,根本搞不定。网络上搜索也无结果,全部还是老的代码...

    使用AOP进行权限控制

    ### 使用AOP进行权限控制:深入解析与实施 #### 背景 在现代软件开发中,权限控制是确保系统安全、数据隐私和合规性的关键环节。然而,在传统的开发模式下,权限控制代码往往散布在应用程序的各个角落,导致代码...

    帮swoft2实现一个aop非侵入式的缓存方式

    上述代码示例展示了如何定义一个简单的缓存切面。`beforeCache`方法会在匹配的方法执行前被调用,尝试从Redis中获取缓存。如果缓存存在,就直接返回,否则继续执行原方法并将结果存储到缓存中。 为了进一步完善缓存...

    Laravel开发-goaop-laravel-bridge

    然后,在`config/aop.php`(如果不存在,需要创建)中设置AOP的相关配置,例如切点匹配规则、编织策略等。 在完成配置后,你可以开始定义切面。切面通常包含通知(advice),它们是实际执行的代码块,可以在特定的...

    php 反射简单例子

    本文将深入探讨PHP反射的工作原理,并通过一个简单的例子来说明其用法。 1. PHP反射基础 反射API是PHP内建的一组类,它提供了对类、接口、函数、方法和常量等对象的元数据访问。这些类包括`\ReflectionClass`、`\...

    JMSAopBundle:向Symfony添加AOP功能

    **JMSAopBundle**是针对Symfony框架的一个扩展,它为开发者提供了面向切面编程(Aspect-Oriented Programming, AOP)的能力。面向切面编程是一种编程范式,旨在提高软件的可重用性,降低模块间的耦合度,使得关注点...

    php笔记之:AOP的应用

    在PHP中,尽管AOP的应用不如Java等语言广泛,但在企业级开发中,它仍然是一个重要的工具,尤其在处理如日志记录、权限验证、事务管理等跨多个类或方法的共同任务时。 **AOP的核心概念:** 1. **切面(Aspect)**:...

    PHP三层结构(下) PHP实现AOP第1/2页

    在这个例子中,我们将深入探讨中间服务层(业务逻辑层)以及如何在PHP中实现面向切面编程(AOP)。 首先,中间服务层,也称为业务逻辑层,主要负责处理应用的核心业务逻辑。在这个案例中,`LWordServiceCore` 类...

    JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架.rar

    JFinal 是基于 Java 语言的极速 WEB + ORM + AOP + Template Engine 框架,其核心设计目标是开发迅速、代码量少、学习简单、功能强大、轻量级、易扩展、Restful。在拥有 Java 语言所有优势的同时再拥有 ruby、python...

    PHP语言中的面向方面编程实现.pdf

    本文首先介绍了AOP技术的基础概念,然后分析了PHP语言中AOP技术的实现策略,提出了基于PHP语言的AOP实现目标和实现原理。接着,描述了使用AOP技术的软件系统结构和核心文件,并设计了相应的AOP支持类。最后,通过...

    aop4php:介绍 AOP 世界的小型 PHP 库

    支持面向方面的编程 (AOP) 的语言更常使用用于一组点的函数 - 切入点。 这些点的功能由程序代码决定,它被礼貌地称为 Advice (AspectJ)。 因此,方面描述了一组特定系统组件的横切关注点。 组件本身仅包括它们应该...

Global site tag (gtag.js) - Google Analytics