概念
AOP 为 Aspect Oriented Programming
的缩写,意为:面向切面编程
,通过动态代理等技术实现程序功能的统一维护的一种技术。AOP 是 OOP 的延续,也是 Hyperf 中的一个重要内容,是函数式编程的一种衍生范型。利用 AOP 可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
用通俗的话来讲,就是在 Hyperf 里可以通过 切面(Aspect)
介入到任意类的任意方法的执行流程中去,从而改变或加强原方法的功能,这就是 AOP。
注意这里所指的任意类并不是完全意义上的所有类,在 Hyperf 启动初期用于实现 AOP 功能的类自身不能被切入。
介绍
相对于其它框架实现的 AOP 功能的使用方式,我们进一步简化了该功能的使用不做过细的划分,仅存在 环绕(Around)
一种通用的形式:
切面(Aspect)
为对流程织入的定义类,包括要介入的目标,以及实现对原方法的修改加强处理代理类(ProxyClass)
,每个被介入的目标类最终都会生成一个代理类,来达到执行切面(Aspect)
方法的目的