首页 > 其他 > 详细

Laravel 之 Middleware

时间:2021-06-07 20:07:58      阅读:25      评论:0      收藏:0      [点我收藏+]
Larave - Middleware 实现原理

函数基础知识

  • array_reduce — 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。
  • call_user_func — 把第一个参数作为回调函数调用
<?php

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

class SessionMiddleware implements Middleware
{
    public static function handle(Closure $next)
    {
        echo ‘session 配置成功‘.PHP_EOL;

        return $next();
    }
}

class CookieMiddleware implements Middleware
{
    public static function handle(Closure $next)
    {
        echo ‘cookie 配置成功‘.PHP_EOL;

        return $next();
    }
}

class ConfigMiddleWare implements Middleware
{
    public static function handle(Closure $next)
    {
        echo ‘config 配置成功‘.PHP_EOL;

        return $next();
    }
}

//方式一
function run(){
    ConfigMiddleWare::handle(function(){
        SessionMiddleware::handle(function (){
            $handle = function (){
                echo ‘程序进行中‘;
            };

            CookieMiddleware::handle($handle);
        });
    });
}

run();


//方式二
$handle = function (){
    echo ‘程序进行中‘;
};

$middlewareGroup = [
    ‘SessionMiddleware‘,
    ‘CookieMiddleware‘,
    ‘ConfigMiddleWare‘
];

$callback = array_reduce($middlewareGroup,function ($carry,$item){
    return function () use ($carry,$item){
        return $item::handle($carry);
    };
},$handle);

call_user_func($callback);


Laravel 之 Middleware

原文:https://www.cnblogs.com/ywjcqq/p/14859984.html

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