
正文
laravel中间件的实现原理
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
中间件的实现原理
运用 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);







