Tag: AOP

在PHP中近似实现AOP思想

简介

AOP 为Aspect Oriented Programming的缩写,意为: 面向切面编程 ,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。

主要的功能 是:日志记录,性能统计,安全控制,事务处理,异常处理等等。

主要的意图 是:将日志记录,性能统计,安全控制,事务处理,异常处理等代码从业务逻辑代码中划分出来,通过对这些行为的分离,我们希望可以将它们独立到非指导业务逻辑的方法中,进而改变这些行为的时候不影响业务逻辑的代码。

PHP实现

PHP的原生内核并没有相关的实现,不过借助魔术函数可以近似实现。

下面的代码主要实现了对实现了对业务类的包装:

  • 定义了两个层次的前置和后置函数:可以全局的(类层面的所有action),也可以局部的(对某个action的)
  • 允许继承

代码如下:

READ MORE