codeigniter: куда идут сущности?

Мне было интересно, что мне делать с моими сущностями? Например, класс с именем Articles, с несколькими datamembers (name/title/date) и getters & setters. Я мог бы добавить их в мои статьи datamember, но лучше отделить их. Так что ты думаешь?

спасибо!

3 ответов


Я обычно делаю так:

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, но я немного настроил его, используя пространство имен, а не используя константу и require_once. Вот моя версия:

1) Создайте мои классы сущностей в /system/application / entities.

namespace MyApplication\Entities;

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

2) Включите мой класс сущности в мою модель через using заявление.

use MyApplication\Entities\ArticlesEntity;

class ArticlesModel extends CI_Model
{
    function test() 
    {
      $entity = new ArticlesEntity();
      $ArticlesEntity->doSomeStuff();
    }
}

модели CodeIgniter используют одноэлементный шаблон. Вы можете создавать библиотеки или использовать $foo = new Some_Model если хотите, помните, что все это просто PHP:)