關於PHP中間鍵的內容解析

來源:互聯網
上載者:User

本篇文章給大家帶來的內容是關於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['auth'] = $auth;$run = pack_middleware($application, $stack);$run('Laravle', "aaaaa");

最後列印結果如下

Laravle need aaaaa a auth middlewarethis 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 )

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.