AopBuild

AopBuild::before()返回的是一个链式对象,after,around

方法说明
methods类中的匹配的方法
methodsStart类中的开头匹配的方法
methodsEnd类中的结尾匹配的方法
methodsExcept类中的除了给定的的方法
methodsContains类中的包含匹配的方法
methodsAll类中的所有的方法
methodsExcept类中的除了给定的的方法
wave需要织入的类
using需要织入的方法

一个神奇的功能


  1. IUserService是接口
  2. UserServiceImpl 是实现类
  3. 容器注册
  4. Ioc::bind(IUserService::class,UserImpl::class);
  5. //添加切面
  6. AopBuild::before(IUserService::class)
  7. ->methods(["saveUser","delUser"])
  8. ->wave(UserLogicTestAop::class)
  9. ->using("testBefore")
  10. ->addPoint();
  11. 其实这时
  12. $service=Ioc::get(IUserService::class);
  13. $service 是集成自UserImpl的类

call 直接回调


通过 call 函数可以直接写回调,而不需要指定切面的类和方法

  1. AopBuild::after(UserLogic::class)
  2. ->methods("saveUser")
  3. ->call(function (JoinPoint $point,$result){
  4. //直接将织入的逻辑写到这里
  5. trace("执行 call");
  6. return $result;
  7. })
  8. ->addPoint();

上一篇:切面   下一篇:事件通知