简单框架MVC:如何将控制器操作与url相关联


Simple framework MVC: how to associate the controller actions to urls?

我按照这个不错的视频教程创建了一个迷你MVC PHP框架。

正如您所看到的,这个家伙在Controller类中创建了一个名为home()的操作来显示主页面。

现在,我需要创建另一个名为foobar()的操作来显示另一个页面,但如何以简单的方式将其与url关联?

这通常通过路由来完成。如果URL的第一部分标识控制器,第二部分标识操作,则提取这些变量并进行相应的路由。

一个非常基本的例子:

$action = 'foobar';
$controllerName = 'whatever';
if(class_exists($controllerName)){
    $controller = new $controllerName;
    if(method_exists($controller, $action)){
        $controller->$action();
    }
}

显然,$action$controllerName是从URL中获得的。

此代码片段尝试在名为"whatever"的类内调用方法"foobar"。