ホームページ  >  記事  >  バックエンド開発  >  PHP中間キーの内容分析

PHP中間キーの内容分析

不言
不言オリジナル
2018-08-04 11:58:071999ブラウズ

この記事の内容は、PHP 中間キーの内容解析 (コード付き) に関するもので、一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。

PHP 中間キー: いわゆる中間キーは、実際にはルーティングを実行する前または後にいくつかの関数を実行するためのもので、API がリクエストできるかどうか、権限があるかどうかなどを確認することができます。ポストミドルウェアは一部の機能、実行後のログなどを記録できます。

暫定的に考えられる方法は、親コントローラーにメソッドをカプセル化し、いくつかの関数を実行するときに最初に beforeAction を実行し、アクションの実行後に afterAction を実行して、単純な中間キーを実現することです。

laravelに問い合わせたところ、laravelの中間キーはクロージャ(Closure)を使用していることが分かりました。簡単な例は次のとおりです:

$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");

最終的な出力結果は次のとおりです

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

そのうちの array_reverse 関数は順番に実行され、最終的に結果を返します。例:

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

最終的に出力される結果は次のとおりです: Array ( [c] => Toyota [b] => BMW [a] => Volvo )

おすすめ関連記事:

PHP でリモート ファイルが存在するかどうかを確認する方法 (純粋なコード)

PHP でソフト接続を作成する方法 (コード)

以上がPHP中間キーの内容分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。