私は MVC を学習しようとしていますが、おそらく非常に基本的な質問があります。クラスとオブジェクトを作成するとき、JavaScript の場合のように、それらすべてを 1 つのファイルに入れることはできますか? または、クラスとコンストラクターごとに個別のファイルを作成する必要がありますか? ここで多くの例を見てきましたが、明確なものは何もありません。
3 に答える
クラスごとに個別のファイルを使用する必要はありませんが、そうすることをお勧めします。いくつかの信じられないほど大きなファイルを処理するよりも、多数の小さなファイルを処理する方がはるかに簡単です。また、プロジェクトに取り組む必要がある他の開発者の生活も楽になります。
通常、MVC パターンは、OOP 全体に設定された基本的なルールに従います。つまり、1 つのクラス = 1 つのファイルです。
使用しているフレームワークまたは CMS によっては、この規則に例外がある場合がありますが、ファイルに複数の (関連のない) クラスを配置すると、プロジェクトが複雑になる傾向があります。
いくつかの関連するクラスを 1 つのファイルに結合することは問題ないかもしれませんが、それでも私はそれをお勧めしません。
まだ言及されていない別のファイルを使用する利点の 1 つは、__autoload()
関数を使用して必要なときにのみクラスをロードし、アプリケーションのロードに必要なオーバーヘッドを削減できることです。
1 つの特定の実行にほんの一握りしか必要ないのに、何十ものクラス定義を含むモノリシック ファイル全体またはファイルのディレクトリをロードする必要はありません。
これは、グローバル インクルード ファイルで使用するものです。
define('__SITE_PATH', '/path/to/app');
/* auto load model classes */
function __autoload($class_name) {
$filename = 'class.' . strtolower($class_name) . '.php';
$file = __SITE_PATH . '/_model/' . $filename;
if( file_exists($file) == false ) {
return false;
}
require($file);
}