Maison >cadre php >PensezPHP >Parlons de la façon dont la commande TP5.0.x exécute le filtre !

Parlons de la façon dont la commande TP5.0.x exécute le filtre !

藏色散人
藏色散人avant
2022-01-27 17:16:092659parcourir

La colonne suivante du didacticiel thinkphp framework vous présentera comment exécuter le filtre avec la commande Thinkphp5.0.x. J'espère que cela sera utile aux amis dans le besoin !

L'exécution de la commande Thinkphp5.0.x

utilise également <span style="color:#c7254e;">call_user_func()</span> pour l'exécution de la commande et l'exécute dans la fonction filterValue de la classe Request [Recommandation : tutoriel vidéo thinkphp]

Recherchez d'abord les fonctions qui appellent filterValue :

FilterValue() a été appelé dans les fonctions cookie() et input() dans la classe Request

Recherche d'appels de fonction cookie, mais aucun résultat n'a été trouvé ; Recherche d'appels d'entrée :

?

() :

$request

;

exécutera le constructeur de requête. À ce stade, le contenu POST a été obtenu via file_get_contents('php://input') dans le constructeur et attribué à la variable $request->input.

Step2$dispatch = self::

routeCheck

(

$request

,

$config

); at Dans routeCheck, la fonction check de la classe Route sera saisie : La fonction check appelle $request->method() : La valeur par défaut du paramètre entrant est false, et il sera exécuté sur elseif pour obtenir var_method => _method, Les variables obtenues seront écrasées ci-dessous, si __construct est transmis, $_POST obtient les données soumises par post et le tableau POST peut être parcouru dans. la fonction de construction pour écraser les membres de la classe de requête

Le processus d'utilisation suivant nécessite : le mode débogage est activé

param() sera appelé dans run() :

Suivez la fonction param :

/**

       * Récupérer les paramètres de la requête en cours

     * @access public

      * @param string|array $name variable name

     * @param Mixed      $default                                                                                                                                    

* @retour mixte

*/

Entrez d'abord la condition if et suivez la méthode méthode

method() si le paramètre entrant est vrai :

Exécutez l'instruction suivante : obtenez le type de requête d'origine

$_SERVER

['REQUEST_METHOD'], la valeur de retour est POST

et renvoyez-la au param, $method=POST

pour que le switch soit exécuté Dans la partie POST, entrez la fonction post :

fonction post :

/**​​​​

* @retour mixte

*/

Passer les paramètres :

, puis copiez dans $content, puis $_POST Et jugez si c'est au format json. Si c'est json, vous devez effectuer json_decode, sinon utilisez directement la valeur de $_POST

pour saisir la méthode de saisie. : le paramètre entrant est le

Name obtenu par POST S'il est faux, l'entrée renvoie des données, et post() renvoie directement la fonction

param() :

$vars

=

$this

->

post

(

faux) Entrez getFilter :  ;Dans

getFilter, $filter = $filter ? : $this->filter;obtient la valeur de la variable de filtre de la classe $request (précédemment couverte par le parcours de construction ), et comme valeur de retour à la fonction d'entrée

continuez à exécuter array_walk_recursive($data, [$this, 'filterValue'] , $filter );

array_walk_recursive() la fonction applique une fonction définie par l'utilisateur à chaque élément du tableau. Dans la fonction, le nom de clé et la valeur de clé du tableau sont des paramètres

qui équivaut à $filters=systemtaken Chaque variable dans $data est transmise en tant que $value. . Lorsqu'il est pris Lorsque ccc=ipconfig, system est utilisé comme premier paramètre de call_user_func, et ipconfig est utilisé comme second, provoquant l'exécution de la commande.

Résultat de l'exécution :

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer