Comprendre la structure d'un modèle dans MVC
Contrairement à une idée fausse courante, le modèle dans MVC est une couche, pas une seule classe ou objet. Cette couche est constituée de trois structures principales :
1. Objets de domaine
- Représentent des entités logiques dans le domaine problématique
- Définir la logique métier pour la validation, le calcul, etc.
- Indifférent au stockage
2. Mappeurs de données
- Responsables de la persistance
- Peut interagir avec des bases de données, des fichiers XML ou d'autres mécanismes de stockage
- Fournir une abstraction sur la couche de stockage physique
3. Services
- Fournir une interface de niveau supérieur à la logique métier du domaine
- Peut interagir avec les objets de domaine et les mappeurs de données
- Peut encapsuler la logique et les interactions communes , réduisant la complexité des contrôleurs
Accès au Modèle
Les contrôleurs et les vues doivent accéder aux services de modèle via une injection de dépendances ou une usine pour garantir un couplage lâche et une testabilité.
Interagir avec le modèle
- Les contrôleurs obtiennent les entrées de l'utilisateur et modifient l'état du modèle en fonction de celles-ci.
- Les contrôleurs ne doivent pas valider les entrées ou effectuer des requêtes de base de données.
- Les vues affichent l'état actuel du modèle à l'utilisateur.
Création du modèle
Concentrez-vous sur la création de services individuels qui implémentez des fonctions spécifiques, plutôt que d'essayer de créer une seule classe "Modèle". Ensuite, créez des objets de domaine et des mappeurs de données selon vos besoins.
Considérations supplémentaires
-
Tables de base de données et modèle : La relation entre la base de données les tableaux et les composants du modèle peuvent ne pas être 1:1:1 dans tous les cas.
-
Les vues ne sont pas Modèles : Les vues sont responsables de la logique de présentation, en utilisant des modèles pour assembler le contenu en fonction des données obtenues à partir du modèle.
-
Relation vue-contrôleur : Dans le développement Web, il est généralement préférable de avoir une relation 1:1 entre les vues et les contrôleurs, chaque contrôleur gérant les demandes pour une page spécifique.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!