1) Tout d'abord, jetez un œil à notre structure des répertoires
2) Utiliser l'écriture normale pour construire notre vérification
Ceci est principalement divisé en quatre étapes. Par rapport à l'utilisation de validateurs indépendants ou à la vérification des données un par un, la plupart du code a été optimisé. Cependant, lors de son utilisation, nous constaterons que nous en avons plusieurs. problèmes. Lors de la vérification de plusieurs modules, il y aura une redondance répétitive dans l'écriture de cette chaîne de code
Question Comment compresser le code d'appel en une seule ligne
AOP : Une technologie qui ajoute des fonctions de manière dynamique et uniforme à un programme sans modifier le code source. AOP est en fait une continuation du modèle de conception GoF. Le modèle de conception poursuit sans relâche le découplage entre l'appelant et l'appelé, améliorant la flexibilité et l'évolutivité du code. et la POO sont littéralement très similaires, ce sont deux idées de conception pour des domaines différents. La POO (Programmation Orientée Objet) encapsule de manière abstraite les entités et leurs attributs et comportements du processus de traitement métier pour obtenir une division plus claire et plus efficace des unités logiques.Nous avons introduit l'idée de la programmation aop pour résoudre nos problèmes en fusionnant et en unifiant des modules avec des fonctions uniques Nous avons créé le répertoire
sous common
et créé un validate
Fichier, héritageBaseValidate
thinkvalidate
- 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; }
Je me sens beaucoup plus à l'aise instantanément. Cela permet d'économiser beaucoup de code, car cette chose devrait être utilisée sous de nombreux contrôleursOptimisation 2Par exemple, dans le code. dans baseValidate, l'un des codes est is_null, qui est écrit pour vérifier toutes les données transmises. Lorsque nous devons vérifier toutes les données, il suffit d'écrire comme ceci
<.>
Les données peuvent également être vérifiées, mais il y aura un doute. Nous n'avons pas obtenu les données et nous ne pouvons pas les utiliser. de réacquérir dans le contrôleur, ce qui n'est pas conseillé, j'ai donc choisi de faire cela