php mvc 路由器调度程序和身份验证

php mvc router dispatcher and authentication

我正在处理某人基于 Fat-Free Framework 编写的代码。基本上它是一个CRM。 我已经看到他使用了像我这里那样的调度函数: What is the difference between URL Router and Dispatcher? 我没有找到关于这种方法的足够文档。 无论如何,他还像这样将身份验证放在调度程序中:

function dispatch()
{
    if(UserManager::isLogin())
    {
        $controller = $router->getController();
        $actionName = $router->getAction();
        $controller[$actionName]();
    }
    else
    {
        routeTo('/login');
    }
}

我的问题是:您认为在调度程序中为所有控制器放置一个集中的身份验证检查是否正确,或者您是否会在每个控制器中进行登录检查,或者您会做其他事情吗?我使用了著名框架或 CMS 中的示例。

谢谢

首先F3默认不允许调度,所以方法是使用beforeroute()函数。 在您的基本控制器(或 class 路由到)中添加

public function beforeroute($f3){
   if(!UserManager::isLogin())
   {
       $f3->reroute('/login');
   }
}

然后任何时候你调用 class(用上面的函数扩展你的基础 class),它首先验证登录。希望这有帮助。