Я бы сказал, что это выглядит как Шаблон активной записи
Обычно реализации объекта активной записи несут ответственность за себя (Create()
, Update()
, Delete()
)
ORM (объектно-реляционное сопоставление) обычно используется при сопоставлении схемы базы данных непосредственно с POCO (объект простого старого кода).Тогда посредник (обычно репозиторий) отвечает за поддержку ваших сущностей.
Большинство систем ORM используют что-то вроде этого:
$user = new User();
$user->Username = "Aren";
$user->Email = "aren@somewhere.com";
$em = new EntityManager;
$em->persist($user);
$em->flush();
----- Позвольте мне перефразировать ----
ORM , Реляционное отображение объектов обычно работает путем определения ассоциации между вашими таблицами и полями в объекте.Существует множество способов сделать это, Doctrine ORM поддерживает 3 метода: аннотацию кода, XML и YAML.
Пример отображения доктрины:
<?php
/** @Entity */
class MyPersistentClass
{
/** @Column(type="integer") */
private $id;
/** @Column(length=50) */
private $name; // type defaults to string
//...
}
Затем все операции создания / чтения / обновления / уничтожения (CRUD) на объектах управляются через менеджер / репозиторий объектов.SQL сгенерирован для вас, вы не несете ответственности за обеспечение того, как ваша сущность выводится из БД или сохраняется.(Хотя некоторые ORM предоставляют вам гибкость для его расширения).
ARP , Шаблон активной записи - это место, где каждый объект представляет строку в базе данных.Во многих распространенных реализациях ARP большинство операций с БД отображаются прямо на объекте (хотя и не обязательно).
$user = new User();
$user->loadByID(42);
Системы ORM иногда используют ARP для помощи в управлении сущностями.
В конечном счете, однако,без каких-либо метаданных для привязки объекта к его строке, я бы не сказал, что это ORM.
Я думаю, что это сводится к следующему:
- Еслисистема использует метаданные для автоматической привязки свойств / полей объекта к соответствующим столбцам таблицы.Его можно классифицировать как систему ORM.
- Если каждый объект представляет одну строку таблицы и обычно (но необязательно) предоставляет функции для управления собой, например
.save()
.delete()
и т. Д. Он можетбыть классифицированным как ARP (шаблон активной записи) - Ваша система может быть одновременно.