codeigniter: куда направляются сущности?
Мне было интересно, что мне делать с моими сущностями? Например, класс с именем Статьи, с несколькими элементами данных (имя/название/дата) и получателями и установщиками. Я мог бы добавить их в свои статьи, но лучше их разделить. Так что вы думаете?
Спасибо!
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 и сохранит классы сущностей разделенными. Надеюсь, это поможет!
Мне понравилось решение @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();
}
}
Модели CodeIgniter используют одноэлементный шаблон. Вы можете создавать библиотеки или использовать $foo =new Some_Model, если хотите, помните, что все это просто PHP:)