Ich versuche einen Lader zu bauen, um verschiedene Controller mit ihren Methoden (wie benötigt) in einem Controller zu laden. Ich habe einen einfachen Code auf meinem Home-Controller entworfen, um den LeftController aufzurufen (jetzt ein Dummy-Controller, aber ich beabsichtige, diesen Controller als Menü zu verwenden).Aufruf verschiedener Methoden eines Controllers vom Lader
require 'controller/LeftController.php';
$LeftController = new LeftController();
$LeftController->index();
Dies funktioniert im HomeController. Es lädt den Controller von LeftController und zeigt den Methodenindex() an.
Gründend meinen Loader auf dem obigen Code das ist, was ich bis jetzt
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);
}
}
}
Auch dies funktioniert getan habe und die Controller instanziiert wird. Ich sehe das Ergebnis mit dem var_dump().
Jetzt muss ich die Methode aufrufen, wie wir an der Spitze Code $LeftController->index();
aber auf der Loader-Klasse dieses Mal sehen.
Eine Möglichkeit, dies zu tun ist, wenn ich $controller->index()
direkt nach dem $controller = new $class();
hinzufügen, aber dies wird immer die index() -Methode des Controllers aufrufen.
Wie kann ich diesen Methodenteil so codieren, dass ich jede Methode aufrufen kann, die mit dem Controller verbunden ist, und nicht nur den Index().
Dieser ** Art und Weise ist ** zu breit. – yivi