• AOP使用
    • 使用AOP

    AOP使用

    使用 Rap 可以在任何受 IOC管理的对象的前后,在不影响原有代码,原有模块的情况下插入代码逻辑,做到模块(代码)之间的低耦合;

    使用AOP


    实例:这里只是演示,正式项目需要自行组织好代码位置的

    1. class AppInit implements Init{
    2. public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){
    3. //在UserLogic调用saveUser,delUser方法前调用UserLogicTestAop的testBefore方法
    4. AopBuild::before(UserLogic::class)
    5. ->methods(["saveUser","delUser"])
    6. ->wave(UserLogicTestAop::class)
    7. ->using("testBefore")
    8. ->addPoint();
    9. //在UserLogic调用方法以save或del开头的方法前调用UserLogicTestAop的testAfter方法
    10. AopBuild::after(UserLogic::class)
    11. ->methodsStart(["save","del"])
    12. ->wave(UserLogicTestAop::class)
    13. ->using("testAfter")
    14. ->addPoint();
    15. //在UserLogic调用方法saveUser后调用UserLogicTestAop调用回掉方法
    16. AopBuild::after(UserLogic::class)
    17. ->methods("saveUser")
    18. ->call(function (JoinPoint $point,$result){
    19. //执行逻辑 可以修改掉返回的数据哦
    20. return $result;
    21. })
    22. ->addPoint();
    23. }
    24. }

    上一篇:AOP面向切面   下一篇:切面