Model
Модель (Model) в движке представлена триплетом – Сущность (Entity) + Модуль (Module) + Маппер (Mapper).Сущность (Entity) – это класс, предназначенный для работы с неким набором данных, свойств, которые присущи конкретному объекту. Например, сущность «Пользователь» (User) имеет такие свойства, как идентификатор, логин, адрес электронной почты, возраст и т.д. Один пользователь – это одна сущность (один экземпляр объекта), другой пользователь – другая сущность.
Модуль (Module) – это класс для манипуляции сущностями (чтения, записи, модификации, преобразования, и т.д.). Модуль может создаваться как для работы с одним единственным классом сущности, так и с разными классами сущностей.
Маппер (Mapper) – класс, предназначенный для взаимодействия модуля с базой данных. Как правило, именно в этом классе формируется запрос непосредственно к базе данных, и получаемый из базы набор данных оформляется в сущность (или массив сущностей).
Объекты классов модуля и маппера обычно существуют в единством экземпляре.
Расположение файлов классов этих компонентов – сущности, модуля и маппера – в директориях движка подчеркивает их связанность. Например, в директории /page находится модуль page, а в поддиректориях entity и mapper соответственно файлы классов сущности page и маппера page.
Т.е. ведущим в этом триплете является модуль, а сущности и маппер принадлежат ему. Это отражено и в названии классов:
class ModulePage extends Module { }
class ModulePage_EntityPage extends Entity { }
class ModulePage_MapperPage extends Mapper { }
Controller
С Контроллером (Controller) в AltoCMS тоже не обошлось без нюансов, хотя в данном случае нюансы касаются больше терминологии и менования классов. Так уж сложилось исторически, что контроллеры в движке именуются «экшенами» (actions). Соответственно, группируются файлы экшенов в директории actions и имеют названия вида ActionName.class.php.А то, что в традиционном MVC называется «экшен» в терминологии Альто называется «ивент» (event). А в остальном экшены Альто работают так, как и должны работать контроллеры в MVC-концепции.
Viewer
А вот что касается Представления (Viewer), то здесь все традиционно, без всяких нюансов и выверотов. Компонент Представления в Альто построен на базе шаблонизатора Smarty 3, который обеспечивает необходимую гибкость и абстракцию от бизнес-логики.
Основной термин:
MVC
Синонимы:
Model-Viewer-Controller
0 комментариев