• AopBuild
    • 一个神奇的功能
    • call 直接回调

    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();

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