AopBuild
AopBuild::before()返回的是一个链式对象,after,around
方法 | 说明 |
---|---|
methods | 类中的匹配的方法 |
methodsStart | 类中的开头匹配的方法 |
methodsEnd | 类中的结尾匹配的方法 |
methodsExcept | 类中的除了给定的的方法 |
methodsContains | 类中的包含匹配的方法 |
methodsAll | 类中的所有的方法 |
methodsExcept | 类中的除了给定的的方法 |
wave | 需要织入的类 |
using | 需要织入的方法 |
一个神奇的功能
IUserService是接口
UserServiceImpl 是实现类
容器注册
Ioc::bind(IUserService::class,UserImpl::class);
//添加切面
AopBuild::before(IUserService::class)
->methods(["saveUser","delUser"])
->wave(UserLogicTestAop::class)
->using("testBefore")
->addPoint();
其实这时
$service=Ioc::get(IUserService::class);
$service 是集成自UserImpl的类
call 直接回调
通过 call 函数可以直接写回调,而不需要指定切面的类和方法
AopBuild::after(UserLogic::class)
->methods("saveUser")
->call(function (JoinPoint $point,$result){
//直接将织入的逻辑写到这里
trace("执行 call");
return $result;
})
->addPoint();