codeigniter: куда направляются сущности?


Мне было интересно, что мне делать с моими сущностями? Например, класс с именем Статьи, с несколькими элементами данных (имя/название/дата) и получателями и установщиками. Я мог бы добавить их в свои статьи, но лучше их разделить. Так что вы думаете?

Спасибо!

Author: ilbesculpi, 2010-09-10

3 answers

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

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 и сохранит классы сущностей разделенными. Надеюсь, это поможет!

 11
Author: ilbesculpi, 2010-09-13 16:20:38

Мне понравилось решение @ilbesculpi, но я немного изменил его, используя пространство имен, а не константу и require_once. Вот моя версия:

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

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();
    }
}
 2
Author: Tod Birdsall, 2016-01-07 17:12:27

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

 1
Author: Phil Sturgeon, 2010-09-10 15:07:39