使用 Rap 可以在任何受 IOC管理的对象的前后,在不影响原有代码,原有模块的情况下插入代码逻辑,做到模块(代码)之间的低耦合; ### 使用AOP * * * * * 实例: 这里只是演示,正式项目需要自行组织好代码位置的 ~~~ class AppInit implements Init{ public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){ //在UserLogic调用saveUser,delUser方法前调用UserLogicTestAop的testBefore方法 AopBuild::before(UserLogic::class) ->methods(["saveUser","delUser"]) ->wave(UserLogicTestAop::class) ->using("testBefore") ->addPoint(); //在UserLogic调用方法以save或del开头的方法前调用UserLogicTestAop的testAfter方法 AopBuild::after(UserLogic::class) ->methodsStart(["save","del"]) ->wave(UserLogicTestAop::class) ->using("testAfter") ->addPoint(); //在UserLogic调用方法saveUser后调用UserLogicTestAop调用回掉方法 AopBuild::after(UserLogic::class) ->methods("saveUser") ->call(function (JoinPoint $point,$result){ //执行逻辑 可以修改掉返回的数据哦 return $result; }) ->addPoint(); } } ~~~