私は自分のエンティティをどうすればいいのだろうと思っていましたか? たとえば、Articles という名前のクラスで、いくつかのデータメンバー (名前/タイトル/日付) とゲッターとセッターがあります。これらを Articles データメンバーに追加することもできますが、それらを分離することをお勧めします。それで、あなたはどう思いますか?
ありがとう!
私は自分のエンティティをどうすればいいのだろうと思っていましたか? たとえば、Articles という名前のクラスで、いくつかのデータメンバー (名前/タイトル/日付) とゲッターとセッターがあります。これらを Articles データメンバーに追加することもできますが、それらを分離することをお勧めします。それで、あなたはどう思いますか?
ありがとう!
私は通常これを行います:
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構造が破損することはなく、エンティティクラスが分離されたままになります。お役に立てば幸いです。
@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();
}
}
CodeIgniter モデルはシングルトン パターンを使用します。ライブラリを作成するか、必要に応じて $foo = new Some_Model を使用できます。すべて PHP だけであることを思い出してください :)