ブートストラップファイルに入れる必要があります。
これはあなたがこれを行うことができる方法です:
- すべてのHTTPリクエストをフロントコントローラー、index.php、app.php、または呼び出したい方法に強制します。
- フロントコントローラーは、フレームワークで使用されるいくつかの定数を定義してから、Bootstrap.phpファイルを含めることができます。Bootstrapはアプリケーションを起動します。
- さて、私がBootstrapで最初に行うことは、自動読み込みを登録することです。このようにして、\ System \ Router\Routerクラスまたは\System\ Router \ Dispatcherクラスを簡単に取得でき、ポイントを取得できます。
もう1つ、アプリケーションのModelsフォルダーをPSR0クラスローダーに登録することもできます。したがって、Modelsフォルダーは次のようになります。
application/Models/
- Entities
- Services
Email.php
Cache.php
コントローラの内部から、このようなモデルを簡単に入手できます
public function someController()
{
$email = new \Models\Services\Email();
// Do stuff with email service
}
質問に対する簡単な答えは、最初に「小刻みに動く」スペースを提供するフロントコントローラーを用意し、そこからアプリを起動するブートストラップをロードすることです。ブートストラップで最初に行うことは、クラスローダーを要求することです。 、およびアプリケーションを介して使用するライブラリを登録します。
次に、アプリケーションのコントローラーとモデルフォルダーの自動読み込みを登録することもできます。ブートストラップファイルの最後で、リクエストをディスパッチしようとしているときに、次のようにコントローラーを要求できます。
$app = new '\\Application\\Controllers\\' . $class;
// Dispatch request with call_user_func_array or ReflectionMethod and ReflectionClass
自動ロードされるため、Controllerクラスを必要とせず、正しい名前空間を指定するだけです。
すばらしい質問です。これがお役に立てば幸いです。カスタムMVCで遊んでいる他の人がいるのを見てうれしいです:)