codeigniter: куда деваются объекты? - PullRequest
7 голосов
/ 10 сентября 2010

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

Спасибо!

Ответы [ 3 ]

11 голосов
/ 13 сентября 2010

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

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

3 голосов
/ 07 января 2016

Мне понравилось решение @ 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();
    }
}
1 голос
/ 10 сентября 2010

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

...