1) 起首 检察一下我们的目次组织
2)运用寻常的写法来组织一下我们的考证
这里重要分四步在走,相对于运用自力考证器或许挨个数据考证已优化了大部分的代码了,然则,当在运用中会发明,我们在多个考证或许多个模块的时刻会涌现重复性的冗余去写这一串代码
题目? 如何将上诉的代码压缩成一行呢
AOP: 在不修正源代码的情况下给顺序动态一致增加功用的一种手艺。AOP现实是GoF设想形式的连续,设想形式废寝忘食寻求的是调用者和被调用者之间的解耦,进步代码的灵活性和可扩展性,AOP能够说也是这类目的的一种完成
AOP、OOP在字面上虽然非常相似,但倒是面向差别范畴的两种设想头脑。OOP(面向对象编程)针对营业处置惩罚历程的实体及其属性和行动举行笼统封装,以取得越发清楚高效的逻辑单位分别。
我们引入aop编程的头脑来处理的我们的题目,经由过程将功用单一的模块兼并一致起来
我们在common下建立 validate目次,而且建立一个BaseValidate文件,继续 think\validate
BaseValidate.php<?php namespace app\common\validate; use app\common\controller\Base; use think\Request; use think\Validate; class BaseValidate extends Validate { /** * 基本类控制器 * @param null|array $data * @return bool */ public function goCheck($data = null) { # 当 data 不存在的时刻去自动校验猎取到的参数 if( is_null($data) ) { # 猎取待考证的参数 $data = Request::instance()->param(); } # 举行考证 if( !$this->check($data) ) { (new Base())->ajaxjson(Base::error, $this->getError()); # 抛出的自定义非常 } return true; }
优化后代码
霎时舒服了许多吧,省去了非常多的代码了算是,由于这个东西在许多控制器下都是应当须要举行运用的
优化2
如baseValidate中的代码,其中有一串代码是is_null,那是为了校验一切通报上来的数据而编写,当我们须要校验一切的数据的时刻只须要如许写
一样能够校验出数据,然则会有一个迷惑,我们没有来猎取data数据,没法运用data数据,照样须要在控制器中从新举行猎取,这是不可取的,所以我挑选如许做
本篇文章到这里就已悉数完毕了,更多其他精彩内容能够关注ki4网的PHP视频教程栏目!
以上就是thinkphp中运用AOP切面编程疾速考证数据的要领引见的细致内容,更多请关注ki4网别的相干文章!