A free and open-source book on ZF3 for beginners


16.2. Создание модуля User

Итак, первое, что мы создадим для приложения User Demo - новый модуль с именем User. В этот модуль мы добавим всю функциональность, связанную с управлением пользователями и аутентификацией. Если вы еще не знакомы с концепцией модулей, обратитесь к главе Создание нового модуля.

Модуль User будет иметь очень малое количество зависимостей от других модулей веб-сайта. Цель создания этого модуля - сделать многократно используемый блок, который вы можете использовать в своем веб-приложении без каких-либо изменений (либо с небольшими модификациями).

В идеале, вы сможете использовать модуль User при разработке своего сайта, не внося в модуль никаких изменений. Однако, для реальных сайтов вам, возможно, придется добавить какие-нибудь поля в таблицу user, изменить рабочий процесс создания пользователя или модифицировать алгоритм фильтрации доступа. В таком случае вам нужно будет адаптировать код под свои нужды.

Модуль User будет иметь следующую структуру (см. рисунок 16.1 ниже):

Рисунок 16.1. Структура модуля User Рисунок 16.1. Структура модуля User

Ниже мы вкратце опишем классы, которые будут находиться в каталоге модуля.

У нас будет два контроллера:

Будет одна сущность Doctrine:

Четыре формы для сбора данных:

И несколько сервисов:

Большинство контроллеров и сервисов будут инстанцированы с помощью фабрик. Классы фабрик можно найти под подкаталогами Factory.

Внутри каталога view будет находиться несколько шаблонов представлений, которые будут визуализировать HTML-разметку страниц пользовательского интерфейса из нашего модуля.

Как и обычно, в каталоге config будет находиться файл module.config.php, который будет содержать маршруты и регистрацию для наших контроллеров и сервисов. Он также будет содержать ключ access_filter, определяющий, какие веб-страницы будут доступны не вошедшему на сайт пользователю (этот ключ будет считываться сервисом AuthManager).

Как видите, модуль User - это обычный модуль ZF3, имеющий структуру, которая соответствует шаблону проектирования MVC.


Top