Dans votre application, vous diviserez généralement les principaux types de modèles (décrits précedement) en sous-types. Par exemple, vous aurez:
Les Forms. Les forms (formulaires) sont des modèles dont le but est de collecter des données saisies
par l'internaute. Les formulaires sont un sous-type d'entités. Vous stockerez généralement les formulaires
dans le dossier APP_DIR/module/Application/src/Form
.
Les Filters. Les filtres sont conçus pour transformer les données d'entrée. Les filtres sont un
sous-type de services. Vous allez généralement stocker les filtres dans le dossier
APP_DIR/module/Application/src/Filter
.
Les Validators. Les validateurs sont utilisés pour vérifier l'exactitude des données entrées.
Les validateurs sont également un sous-type de services. Vous stockez généralement les validateurs
dans le dossier APP_DIR/module/Application/src/Validator
.
Les View Helpers. Ils encapsulent certaines fonctionnalités de rendu de page. Les View Helpers sont
similaires aux services. Vous allez généralement les stocker dans le dossier APP_DIR/module/Application/src/View/Helper
.
Les Routes. Les routes sont un modèle de service spécifique utilisé pour implémenter des règles de mappage
personnalisés entre les URL et vos contrôleurs. Vous allez généralement stocker vos routes personnalisés
dans le dossier APP_DIR/module/Application/src/Route
.
Donc, vous devriez avoir la structure de module suivante :
/Application/src
/Controller
/Factory
/Plugin
/Factory
/Entity
/Filter
/Form
/Repository
/Route
/Service
/Factory
/Validator
/ValueObject
/View
/Helper
/Factory
Il est possible d'avoir d'autres sous-types de modèles. Plus votre application est complexe, plus vous avez de sous-types de modèles.