Итак, первое, что мы создадим для приложения User Demo - новый модуль с именем User. В этот модуль мы добавим всю функциональность, связанную с управлением пользователями и аутентификацией. Если вы еще не знакомы с концепцией модулей, обратитесь к главе Создание нового модуля.
Модуль User будет иметь очень малое количество зависимостей от других модулей веб-сайта. Цель создания этого модуля - сделать многократно используемый блок, который вы можете использовать в своем веб-приложении без каких-либо изменений (либо с небольшими модификациями).
В идеале, вы сможете использовать модуль User при разработке своего сайта, не внося в модуль никаких изменений. Однако, для реальных сайтов вам, возможно, придется добавить какие-нибудь поля в таблицу
user
, изменить рабочий процесс создания пользователя или модифицировать алгоритм фильтрации доступа. В таком случае вам нужно будет адаптировать код под свои нужды.
Модуль User будет иметь следующую структуру (см. рисунок 16.1 ниже):
Ниже мы вкратце опишем классы, которые будут находиться в каталоге модуля.
У нас будет два контроллера:
Будет одна сущность Doctrine:
Четыре формы для сбора данных:
И несколько сервисов:
Большинство контроллеров и сервисов будут инстанцированы с помощью фабрик. Классы фабрик можно найти под подкаталогами Factory.
Внутри каталога view будет находиться несколько шаблонов представлений, которые будут визуализировать HTML-разметку страниц пользовательского интерфейса из нашего модуля.
Как и обычно, в каталоге config будет находиться файл module.config.php, который будет содержать маршруты и регистрацию для наших контроллеров и сервисов. Он также будет содержать ключ access_filter, определяющий, какие веб-страницы будут доступны не вошедшему на сайт пользователю (этот ключ будет считываться сервисом AuthManager).
Как видите, модуль User - это обычный модуль ZF3, имеющий структуру, которая соответствует шаблону проектирования MVC.