独自の mvc モデルを作成するため、すべてのモデルとコントローラー クラスを含める必要があります。
今のところ、使用するコントローラーでモデルが必要になるたびに:
require_once('myModel.php');
Javaでのインポートに少し似ています
しかし、私は質問があります。この方法を続けることは良い解決策ですか? コードの先頭にすべてのモデルとコントローラーを含めることをお勧めしますが、このソリューションは重すぎるのではないかと心配しています。
ありがとう
独自の mvc モデルを作成するため、すべてのモデルとコントローラー クラスを含める必要があります。
今のところ、使用するコントローラーでモデルが必要になるたびに:
require_once('myModel.php');
Javaでのインポートに少し似ています
しかし、私は質問があります。この方法を続けることは良い解決策ですか? コードの先頭にすべてのモデルとコントローラーを含めることをお勧めしますが、このソリューションは重すぎるのではないかと心配しています。
ありがとう
一般に、独自のフレームワークを作成することはお勧めしませんが、学習目的でそれを主張したり、作成したい場合は、PHP コミュニティが FIG (Framework Interop Group) を作成して、フレームワーク間の一貫性と処理方法を維持します。
あなたが解決しようとしている問題はオートローディングと呼ばれ、AS PSR-0標準としても文書化されています https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md、いい読み。
PSR-0 準拠のオートローダーの例を次に示します。PHP - 最も軽量な psr-0 準拠のオートローダー
基本的に、ネームスケープ パスがファイルを探す場所を示すことを意味します。
たとえば、bootstrap.php で BussinessObject を取得したい場合:
//MVC/Models/BussinessObject.php
namespace MVC/Models;
class BussinessObject {
}
//MVC/bootstrap.php
namespace MVC;
use MVC/Models/BussinessObject;
$BussinessObject = new BussinessObject()
次に、オートローダーは MVC/Models/BussinessObject.php でファイルを探し、呼び出しにはそのパスを使用する必要があります。
最善の方法は、本当に必要な場合にのみファイルを含めることです。これは実用的ではないことが多いため、使用する基本的な関数を含むファイルのみをアプリの初期化に含めるようにしてください。