Je viens de lire un blog post qui explique MVC avec une analogie bancaire. J'ai quelques mois d'expérience avec le développement d'applications web avec un framework MVC (CakePHP), donc j'ai les bases, mais j'ai commencé à voir un thème qui m'a fait penser que je suis en train d'utiliser ma logique:Modèles de graisse, contrôleurs maigres et le modèle de conception MVC
- modèles Fat, contrôleurs maigres
- Gardez autant la logique métier dans les modèles que possible
dans mon application, les modèles sont anorexiques et les contrôleurs sont obèses. J'ai toute la logique métier dans les contrôleurs et rien d'autre que des associations et des règles de validation dans les modèles.
Numérisation par mes contrôleurs, je peux maintenant identifier beaucoup de logique qui devrait probablement aller dans un modèle:
- L'application a des listes, qui contiennent des éléments, et les articles peuvent être classés. La logique de tri qui place la liste dans l'ordre de classement est dans un contrôleur.
- De même, les éléments (modèle d'élément) ont également des images (modèle d'image). Chaque élément peut avoir une image par défaut (désignée par image_id dans la table des éléments). Lorsqu'un élément est affiché avec ses images, l'image par défaut doit apparaître en premier. J'ai la logique qui fait cela dans un contrôleur.
- Lorsqu'une liste est affichée, les listes associées sont affichées dans la barre latérale. La logique pour déterminer quelles listes sont liées est dans un contrôleur.
maintenant à mes questions:
- Avec les exemples que j'ai ci-dessus, je suis sur la bonne voie en pensant que ce sont des cas de logique actuellement dans un contrôleur qui appartient à un modèle?
- Quels sont les autres domaines de la logique, communs aux applications web, qui devraient aller dans les modèles?
- Je suis sûr que l'identification de ce problème et la modification de mon modèle de conception est la moitié de la bataille, mais même si je décide de prendre ces exemples ci-dessus et d'essayer de déplacer cette logique, je ne saurais pas par où commencer. . Quelqu'un peut-il me diriger dans la bonne direction en publiant du code ici, ou en liant à de bonnes ressources d'apprentissage? L'aide spécifique de CakePHP serait formidable, mais je suis sûr que tout ce que MVC suffira.
Entendu à ce sujet tout avant :) – Marco