当前位置: 首页 > 后端技术 > PHP

thinkphp中使用AOP切面编程快速验证我们的数据

时间:2023-03-30 05:10:30 PHP

thinkphp使用AOP切面编程快速验证我们的数据1)首先查看我们的目录结构2)使用通常的写法构造我们的验证主要有四个部分与使用相比独立验证者或数据逐一验证,大部分代码已优化。但是我们在使用的时候会发现,当我们使用多个验证或者多个模块的时候,会出现重复的冗余。写这串代码题?如何将申诉代码压缩成一行?AOP:一种在不修改源代码的情况下,动态统一地为程序添加功能的技术。AOP其实是GoF设计模式的延续。设计模式孜孜不倦地追求调用者和被调用者之间的解耦,提高了代码的灵活性和可扩展性。AOP可以说是这个目标的一种实现。AOP,虽然OOP从字面上很相似,但是是针对不同领域的两种设计思想。OOP(Object-OrientedProgramming)对业务流程中的实体及其属性和行为进行抽象和封装,以获得更清晰、更高效的逻辑单元划分。我们引入aop编程的思想来解决我们的问题。通过合并统一功能单一的模块,我们在common下创建一个validate目录,并创建一个BaseValidate文件,继承think\validateBaseValidate.phpparam();}#验证if(!$this->check($data)){(newBase())->ajaxjson(Base::error,$this->getError());#抛出自定义异常}returntrue;}优化后代码瞬间舒服多了,省了很多代码,因为这个东西要优化好在很多controller中使用2比如baseValidate里面的代码,有一串代码is_null,是这么写的验证所有传递的数据。当我们需要验证所有数据时,只需要这样写就可以验证数据了,但是会出现Confuse,我们没有获取到data数据,不能使用data数据,或者需要在controller中重新获取,这是不可取的,所以我选择这样做