Maison  >  Article  >  développement back-end  >  Analyse du contenu des clés intermédiaires PHP

Analyse du contenu des clés intermédiaires PHP

不言
不言original
2018-08-04 11:58:071974parcourir

Le contenu de cet article concerne l'analyse du contenu des clés intermédiaires PHP (avec code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Touche du milieu PHP : la soi-disant clé du milieu sert en fait à exécuter certaines fonctions avant ou après l'exécution du routage. Avant, vous pouvez vérifier si l'API peut être demandée, si elle dispose d'autorisations, etc., et la. le post-middleware peut enregistrer certaines fonctions après l'exécution, etc.

L'idée temporaire de la méthode est d'encapsuler une méthode dans le contrôleur parent, d'exécuter d'abord beforeAction lors de l'exécution de certaines fonctions, puis d'exécuter afterAction après l'exécution de l'action. Cela peut obtenir une simple clé intermédiaire.

Après avoir contacté Laravel, j'ai découvert que la clé intermédiaire de Laravel utilise la fermeture (Closure). Un exemple simple est le suivant :

$application = function ($names, $a){
    echo "this is a {$names} aaa {$a} application";    
    echo "<br />";
};// 前置中间键$auth = function ($handler){
    return function ($name, $as) use ($handler){
        echo "{$name} need {$as} a auth middleware";        
        echo "<br />";        
        return $handler;
    };
};
$stack = [];// 打包
function pack_middleware($handler, $stack){
    foreach (array_reverse($stack) as $key => $middleware) {        
    $handler = $middleware($handler);
    }    
    return $handler;
}
$stack[&#39;auth&#39;] = $auth;
$run = pack_middleware($application, $stack);
$run(&#39;Laravle&#39;, "aaaaa");

Le résultat final imprimé est le suivant

.
Laravle need aaaaa a auth middleware
this is a a aaa aa application

array_reverseLes fonctions sont exécutées séquentiellement et renvoient finalement des résultats, par exemple :

$a=array("a"=>"Volvo","b"=>"BMW","c"=>"Toyota");
print_r(array_reverse($a));

Le résultat final imprimé est le suivant : Array ( [c] => Toyota [ b] => BMW [a] => Volvo )

Articles connexes recommandés :

Comment vérifier si un fichier distant existe en PHP (code pur)

Comment créer une connexion logicielle en PHP (Code)

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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn