【发布时间】:2017-07-12 22:17:09
【问题描述】:
我正在尝试构建一个加载器,以在控制器中加载各种控制器及其方法(根据需要)。我在我的家庭控制器上草绘了一个简单的代码来调用 LeftController(现在是一个虚拟控制器,但我打算将此控制器用作菜单)。
require 'controller/LeftController.php';
$LeftController = new LeftController();
$LeftController->index();
这适用于 HomeController。它加载 LeftController 控制器并显示方法 index()。
我的加载器基于上面的代码,这就是我到目前为止所做的
class Loader
{
public function controller($controller)
{
$file = 'controller/' . $controller . '.php';
$class = $controller;
if (file_exists($file)) {
require($file); // require 'controller/LeftController.php';
$controller = new $class(); //$LeftController = new LeftController();
var_dump($controller);
}
}
}
这也有效,并且控制器被实例化。我看到使用 var_dump() 的结果。
现在,我需要调用该方法,正如我们在最顶部的代码 $LeftController->index(); 中看到的,但这次是在 Loader 类上。
这样做的一种方法是,如果我在 $controller = new $class(); 之后添加 $controller->index(),但这将始终调用控制器的 index() 方法。
我如何编码这个方法部分,以便我可以调用与控制器关联的任何方法,而不仅仅是 index()。
【问题讨论】:
-
这方式太宽泛了。
标签: php oop model-view-controller controller loader