8

私は自分のエンティティをどうすればいいのだろうと思っていましたか? たとえば、Articles という名前のクラスで、いくつかのデータメンバー (名前/タイトル/日付) とゲッターとセッターがあります。これらを Articles データメンバーに追加することもできますが、それらを分離することをお勧めします。それで、あなたはどう思いますか?

ありがとう!

4

3 に答える 3

12

私は通常これを行います:

1.- / system / application/classesにエンティティクラスを作成します

class MyEntity {
}

2.-/system/application/config/constants.phpでそのフォルダーを指す定数を定義します

define('CLASSES_DIR', APPPATH . "classes/");

3.-モデルのエンティティクラスを含めます。

require_once(CLASSES_DIR  . "MyEntity.php");

class MyModel extends Model {

   function test() {
      $entity = new MyEntity();
      $entity->doSomeStuff();
   }

}

これにより、MVC構造が破損することはなく、エンティティクラスが分離されたままになります。お役に立てば幸いです。

于 2010-09-13T16:20:38.883 に答える
4

@ilbesculpi のソリューションが気に入りましたが、定数 and を使用するのではなく、名前空間を使用して少しカスタマイズしましたrequire_once。これが私のバージョンです:

1) /system/application/entities にエンティティ クラスを作成します。

namespace MyApplication\Entities;

class ArticlesEntity
{
    function doSomeStuff()
    {
        // Your code here...
    }
}

using2)ステートメントを介してエンティティ クラスをモデルに含めます。

use MyApplication\Entities\ArticlesEntity;

class ArticlesModel extends CI_Model
{
    function test() 
    {
      $entity = new ArticlesEntity();
      $ArticlesEntity->doSomeStuff();
    }
}
于 2016-01-07T17:12:27.447 に答える
1

CodeIgniter モデルはシングルトン パターンを使用します。ライブラリを作成するか、必要に応じて $foo = new Some_Model を使用できます。すべて PHP だけであることを思い出してください :)

于 2010-09-10T15:07:39.027 に答える