Я пытаюсь построить загрузчик для загрузки различных контроллеров с помощью своих методов (по мере необходимости) в контроллер. Я набросал простой код на моем домашнем контроллере, чтобы вызвать LeftController (теперь это фиктивный контроллер, но я намерен использовать этот контроллер в качестве меню).Вызов различных методов контроллера из загрузчика
require 'controller/LeftController.php';
$LeftController = new LeftController();
$LeftController->index();
Это работает в HomeController. Он загружает контроллер LeftController и отображает индекс метода().
На основании моего загрузчика на приведенном выше коде, это то, что я сделал до сих пор
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->index()
сразу после $controller = new $class();
, но это всегда вызовет метод index() контроллера.
Как закодировать эту часть метода так, чтобы я мог вызвать любой метод, связанный с контроллером, а не только с индексом().
Это ** способ ** слишком широко. – yivi