5.1 Обзор
ORM в mzz предназначен для упрощения работы с данными в БД. Стандартные классы, входящие в ORM обладают минимально необходимым функционалом - CRUD (Create, Retrieve, Update, Delete).
ORM построен на базе The Data Mapper Pattern (рекомендуем ознакомиться со статьей перед продолжением чтения документации). Вкратце: в контектсте этого паттерна мы оперируем двумя терминами - маппер и доменный объект (ДО). Упрощённо: доменный объект - контейнер для данных, маппер - класс для заполнения ДО данными. Все действия по модификации также осуществляются через маппер.
Также отметим, что ДО является отображением данных приложения и данных в БД (в пределах 1 сеанса). Из этого следует, что до тех пор, пока объект не был сохранён специальным методом маппера, он будет выдавать "старые" данные (именно те, которые сейчас находятся в БД). Проиллюстрирую это на примере:
<?php // $news - Доменный Объект // $newsMapper - его маппер $news = $newsMapper->searchById(1); echo $news->getId(); // 1 echo $news->getTitle(); // "Заголовок для новости 1" $news->setTitle('Новый заголовок'); echo $news->getTitle(); // "Заголовок для новости 1" $newsMapper->save($news); echo $news->getTitle(); // "Новый заголовок" ?>
DO лежат в подкаталоге models каждого модуля, мапперы - в подкаталоге mappers.