首頁  >  文章  >  後端開發  >  關於PHP中間鍵的內容解析

關於PHP中間鍵的內容解析

不言
不言原創
2018-08-04 11:58:071941瀏覽

這篇文章帶給大家的內容是關於PHP中間鍵的內容解析(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。

PHP中間鍵:所謂的中間鍵其實就是在執行路由之前或之後執行一些函數,之前可以檢測該API是否可以被請求,有沒有權限等,後置中間件可以實現記錄一些函數執行之後的日誌等。

暫時想到的方法有可以在父級controller封裝一個方法,在執行一些函數的時候先執行beferAction,執行完Action之後再執行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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn