Hyperf 初体验-AOP 切面
什么是 AOP
再说 AOP
之前,肯定都知道 OOP
是什么,面向对象编程
。那么 AOP
就是 面向切面编程
- 通过预编译方式或运行期动态代理等技术实现程序功能的统一维护的一种技术。
OOP
是针对业务处理过程的实体及其属性和行为进行抽象和封装,以获得更加清晰高效的逻辑单元划分AOP
则是针对业务处理过程中的切面进行提取,它所面对的是处理过程的某个步骤或某个阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果
简单来说 切面就是 方法运行的前后执行的操作
如何定义切面
继承 AbstractAspect
类,每一个切面类差不多包含如下内容
<?php
namespace App\Aspect;
use App\Service\SomeClass;
use App\Annotation\SomeAnnotation;
use Hyperf\Di\Annotation\Aspect;
use Hyperf\Di\Aop\AbstractAspect;
use Hyperf\Di\Aop\ProceedingJoinPoint;
/**
* @Aspect
*/
class FooAspect extends AbstractAspect
{
// 要切入的类,可以多个,亦可通过 :: 标识到具体的某个方法,通过 * 可以模糊匹配
public $classes = [
SomeClass::class,