独自の MVC を作成しようとしていることがわかりますので、これを行う際に注意すべきことを説明しようと思います。
MVC を作成するときに最初にしたいことは、Front Controller パターンを利用することです。これは、すべての HTTP リクエストが index.php という 1 つのファイルを通過することを意味します。これは、アプリケーションを 1 つのファイルに構成するのに役立ちます。常に言うことを開くだけでこれを行うことができます:
www.example.com/index.php/controller/method/param1/param2
または、ユーザーに .htaccess ファイルを使用して index.php を通過させることもできます。Codeigniter や CakePHP などの他のフレームワークの参照については、.htaccess ファイルの使用方法を参照してください。
フロントコントローラーファイルにいるときは、HTTP リクエストを適切なコントローラー/メソッドにルーティングすることを検討する必要があります。それを達成する方法は本当にたくさんあります。それを行うための最良の方法を見つけるのはあなた次第です.
とにかく、URL を分析し、URL から必要な Controller / Method / Params を抽出する Router クラスが必要です。次に、呼び出す必要があるコントローラー/メソッドがわかったら、コントローラーをインスタンス化し、必要なメソッドを呼び出す Dispatcher クラスが必要です。また、メソッドに渡してそこで使用できるようにする Params についても検討する必要があります。
これをいじる最も簡単な方法は、クエリ文字列を使用することです。
たとえば、次のような URL があるとします。
http://localhost/test/index.php?controller=home&method=welcome
コントローラーとメソッドの名前を簡単に取得できます。
これで、次のようなことができます。
// Get controller and method names
$controller = $_GET['controller'];
$method = $_GET['method'];
// Instantiate controller object
$app = new $controller();
// Call method on you controller object
call_user_func_array(array($app, $method));
これは、遊ぶためだけにできる最も簡単なことのようなものです。これを理解したら、次のように Router クラスを記述します。
http://localhost/test/index.php/controller/method/param1/param2
とにかく、これらのクラスが必要です:
すべてのリクエストが 1 つのファイルを通過するフロント コントローラーです。ここで、アプリケーションのブートストラップ、クラスの自動読み込みの登録、すべての設定などを行います。これはクラスではなく、すべてを起動する手続き型コードを含むファイルです。
URL を分析し、呼び出されたメソッドに渡したいコントローラー、メソッド、およびパラメーターを返すルーター。
Controller をインスタンス化し、Params を Method に渡す Method を呼び出すDispatcher 。
そして、すべての制御がシステムのユーザーに渡され、コントローラー/メソッド内で魔法を実行します。
リクエストをディスパッチしている間、これを使用することもできます:
call_user_func_array(array($app, $method), $params);
このように $params を $method に渡すので、メソッド内で $params を使用できます。
また、Reflection クラスを確認してください。これは、呼び出したいメソッドが存在するかどうかを分析するのに役立ちます。存在しない場合は、HTTP 404 などを呼び出す必要があります...
あなたの質問に対する簡単な答えはありませんが、これがお役に立てば幸いです。システムの構築を楽しんで、完璧になるまで改善してください:)