Сущности и мапперы. Помогите с теорией, пожалуйста.

Приветствую, уважаемые. Помогите, пожалуйста, разобраться с некоторыми вопросами в работе движка. Пишу плагин, и все вроде бы отлично, но как только дошел до работы с бд, — возникли трудности. Суть приблизительно такова: плагин добавляет новую страницу(ивент) на блог(тут проблем нет), на этой странице форма, с уже знакомыми полями(да не обязательно эти): название блога, заголовок, Текст, метки… Далее, в Ивенте эещена проверяю, передал ли _POST(на самого себя), и если данные корректные, с помощу модуля, хочу добавить их в БД движка. Конечно, это можно решить простыми простыми запросами еще в ивенте экшена, но хочется сделать как положено — через маппер, и сущности. Так вот, я к чему веду — не могу понять, как из массива _POST сформировать сущности, которые и будут отправляться и получаться из/в БД. Как формируется массив _aDate? не пойму взаимодействия сущностней и мапперов в модели?
Если, есть минутка, помогите, пожалуйста, — можно просто теорию…
Прошу не отправлять читать мануали по плагинам, и движку — уже все от штудировал. Спасибо.

3 комментария

avatar
Я не силен в теории научными словами, поэтому опишу теми что знаю :)

Сущность представляет из себя геттеры и сеттеры, позволяющий обращаться с данными как с объектом. Она облегчает задачу тем что при выборке из базы данных посредством обращения к Engine::GetEntity('topic',$aRows) мы можем передать ей массив $aRows в котором определены данные в виде поле таблицы -> значение(обычная выборка, как и должно быть) и данные попадут в массив _aData, и в дальнейшем будут доступны через определенные нами геттеры.
Так же бывают случаи что нам необходимо записать данные в сущность(как в вашем варианте), для этого мы определяем сеттеры.

Сущности необходимы для облегчения работы с данными и наглядного отображения содержимого таблиц.

Создаем сущность со своими значениям —
github.com/livestreet/livestreet/blob/master/classes/actions/ActionTopic.class.php#L237

Передаем сущность в мэппер где данные снова извлекаются — github.com/livestreet/livestreet/blob/master/classes/modules/topic/mapper/Topic.mapper.class.php#L20

Выборка в мэппере после которой мы получим сущность с данными — github.com/livestreet/livestreet/blob/master/classes/modules/topic/mapper/Topic.mapper.class.php#L759
avatar
, , спасибо Вам огромное за разъяснения.
avatar
почему — то парсер порезал теги. beauty_free, SimonSmith — спасибо, Вам огроменное.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.