首页 > 其他 > 详细

laravel中间件的实现原理

时间:2019-09-06 10:16:39      阅读:66      评论:0      收藏:0      [点我收藏+]
中间件的实现原理

运用 array_reduce 以及 call_user_func 实现

interface Middleware
{
    public static function handle(Closure $next);
}

class VerfiyCsrfToekn implements Milldeware{??? 
    public static function handle(Closure $next)??? {??????? 
        echo '验证csrf Token <br>';??????? 
        $next();??? 
    }
}

class VerfiyAuth implements Milldeware{
    public static function handle(Closure $next)??? {??????? 
        echo '验证是否登录 <br>';??????? 
        $next();??? 
    }
}

class SetCookie implements Milldeware{??? 
    public static function handle(Closure $next)??? {??????? 
        $next();??????? 
        echo '设置cookie信息!';??? 
    }
}

$handle = function () {??? 
    echo '当前要执行的程序!';
};

$pipe_arr = [ 'VerfiyCsrfToekn', 'VerfiyAuth', 'SetCookie', ];

$callback = array_reduce($pipe_arr, function ($stack, $pipe) {
    return function () use ($stack, $pipe) {
        return $pipe::handle($stack);
    };
}, $handle);

call_user_func($callback);

laravel中间件的实现原理

原文:https://www.cnblogs.com/luwz/p/11471263.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!