コントローラ内で(必要に応じて)さまざまなコントローラをロードするためのローダーをビルドしようとしています。私は、私の家のコントローラで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();
に表示されているように、このメソッドを呼び出す必要がありますが、今回はこのメソッドを呼び出す必要があります。
$controller = new $class();
の直後に$controller->index()
を追加すると、コントローラのindex()メソッドが呼び出されます。
このメソッド部分を、index()だけでなく、コントローラに関連付けられたメソッドを呼び出せるようにコーディングするにはどうすればよいですか。
これは** **広すぎる方法です。 – yivi