На своем сайте вы, как правило, будете делить ваши основные типы моделей (описанные выше) на подтипы. Например, у вас будут:
Формы. Формы - это модели, целью которых является сбор данных, введеных пользователем.
Формы - это подтип сущностей. Обычно они хранятся в директории APP_DIR/module/Application/src/Form
.
Фильтры. Фильтры предназначены для изменения входящих данных.
Фильтры - это подтип сервисов. Обычно они хранятся в директории APP_DIR/module/Application/src/Filter
.
Валидаторы. Валидаторы используются для проверки входящих данных.
Они также являются подтипом сервисов. Обычно они хранятся в директории APP_DIR/module/Application/src/Validator
.
Помощники видов. Они инкапсулируют функциональность рендеринга некоторой страницы.
Помощники видов схожи с сервисами. Обычно они хранятся в директории APP_DIR/module/Application/src/View/Helper
.
Маршруты. Маршруты - это особенный сервис, используемый для создания правил
отображения между URL и вашими контроллерами. Обычно они хранятся в директории APP_DIR/module/Application/src/Route
.
Так, в конце концов у вас получится следующая структура каталогов модуля вебсайта:
/Application/src
/Controller
/Factory
/Plugin
/Factory
/Entity
/Filter
/Form
/Repository
/Route
/Service
/Factory
/Validator
/ValueObject
/View
/Helper
/Factory
Вы можете иметь произвольное количество подтипов моделей. Чем сложнее ваше приложение, тем больше подтипов моделей у вас может быть.