Rumah  >  Artikel  >  pembangunan bahagian belakang  >  关于PHP中间键的内容解析

关于PHP中间键的内容解析

不言
不言asal
2018-08-04 11:58:071974semak imbas

本篇文章给大家带来的内容是关于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如何来创建一个软连接(代码)

Atas ialah kandungan terperinci 关于PHP中间键的内容解析. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn