Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php mvc路由器调度程序和身份验证_Php_Authentication_Model View Controller_Router_Dispatcher - Fatal编程技术网

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

php mvc路由器调度程序和身份验证,php,authentication,model-view-controller,router,dispatcher,Php,Authentication,Model View Controller,Router,Dispatcher,我正在编写一些基于无脂肪框架的代码。基本上这是一个客户关系管理。 我看到他使用了一个分派函数,就像我在这里看到的: 我没有找到足够的关于这种方法的文档。 无论如何,他还将身份验证放在dispatcher中,如下所示: function dispatch() { if(UserManager::isLogin()) { $controller = $router->getController(); $actionName = $router-&

我正在编写一些基于无脂肪框架的代码。基本上这是一个客户关系管理。 我看到他使用了一个分派函数,就像我在这里看到的: 我没有找到足够的关于这种方法的文档。 无论如何,他还将身份验证放在dispatcher中,如下所示:

function dispatch()
{
    if(UserManager::isLogin())
    {
        $controller = $router->getController();
        $actionName = $router->getAction();
        $controller[$actionName]();
    }
    else
    {
        routeTo('/login');
    }
}
我的问题是:您认为在调度器中为所有控制器设置一个集中身份验证检查是正确的,还是在每个控制器中执行登录检查,还是执行其他操作?我从著名的框架或CMS中找到了合适的例子


感谢

默认情况下,First F3不允许分派,因此方法是使用beforeroute()函数。 在基本控制器(或路由到的类)中添加

然后,无论何时调用该类(使用上述函数扩展基类),它都会首先验证登录。希望这有帮助

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