私は現在、単一のファイル セット/ホスティング環境から複数のサイトのコンテンツを強化するために使用されるアプリケーションを開発しているプロジェクトに取り組んでいます。
model_account
やなどの名前を持つ PHP クラスが多数あり、model_vehicle
それらはクラス名として save という名前の別のファイルで定義されています。以下のようにクラスファイルをロードするために使用spl_autoload_register
しています(簡略化):
function my_autoloader($class_name) {
if(substr($class_name, 0, 6)=='model_') {
require_once('models/'.$class_name.'.php');
}
}
私たちがやりたいことは、訪問者がサイト xxx にアクセスしていて、クラスのインスタンスを作成する場合です。たとえば、ファイルが存在する場合$account = new model_account();
は実際にクラスのインスタンスを作成model_xxx_account
し ( models/model_xxx_account.php
)、存在しない場合は、models/model_account.php
ファイルを含めて、のインスタンスを作成しますmodel_account
。
同様に、訪問者がサイト yyy から来た場合、存在する場合は使用し、存在しない場合はmodel_yyy_account
完全に戻ります。model_account
基本的に、条件が満たされた場合に別のクラスのインスタンスを作成したいのですが、同じインスタンス化呼び出しから作成します。
CI や Cake のような市販のフレームワークは使用していません。また、この投稿の命名規則を少し簡略化しました。オブジェクト指向の用語が適切でない場合は申し訳ありません。