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 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 )

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值