1

PHPフレームワークとしてCodeIginterを使用しています。私は以下の状況を説明しています:-

次の名前の3つのモデルが必要です:-

  • User_Model
  • Relation_Model
  • Reminder_Model

ここで状況を考えてみましょう。

User_Modelすでに書かれています。私は書いていRelation_Modelます。私の友人はを書きますReminder_Model

Relation_ModelUser_Modelその方法の1つで、インスタンス化し、それを使用します。getRelation($userID)

Reminder_ModelまたUser_Model、その機能のために1つのインスタンスをインスタンス化します。

Reminder_ModelgetRelationRelation_Modelのメソッドを呼び出す必要があります。

したがって、のインスタンスは少なくとも2つ必要ですUser_Model。1つはRelation_Model、もう1つはReminder_Model

問題は、私のインスタンスが私の友人のクラスのインスタンスに干渉しないように、内部をどのように確認するかです。 Relation_ModelUser_ModelUser_ModelReminder_Model

つまり、コーディングするためReminder_Modelに、私の友人はRelation_Model、そのメソッドの1つを使用するためだけに、の内部知識を持っているべきではありませんgetRelation

これの必要性を知りたい場合は、次のように言います。Reminder_Modelは、ログインしたユーザー(user-Aなど)のモデルをロードします。Relation_Modelは、user-Aのチームのメンバーであるユーザーのモデルと連携します。

4

1 に答える 1

4

User_Model クラスの同じインスタンスを使用できない理由を理解しているかどうかはわかりませんが、モデルを 2 回ロードする可能性があります->load->model('Use_Model', 'Second_User_Model')が役に立ちます。または、 $this->second_user_model = clone $this->user_modelのようにオブジェクトを複製することもできます。

于 2009-03-09T21:31:30.823 に答える