Modèles de matières grasses, maigre les contrôleurs et le modèle de conception MVC

Je viens de lire un post de blog qui explique MVC bancaire analogie. J'ai quelques mois d'expérience en développement d'applications web avec un framework MVC (CakePHP), j'ai donc commencer par les bases, mais j'ai commencé à voir un thème qui m'a fait penser que je vais prendre une approche erronée à l'endroit où j'ai mis ma logique:

  • Modèles de matières grasses, skinny contrôleurs
  • De conserver autant de 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 en dehors des associations et des règles de validation dans les modèles.

De numérisation par le biais de mes contrôleurs, je peut maintenant identifier beaucoup de logique qui devrait probablement aller dans un modèle:

  • L'application des listes, qui contiennent des éléments, et les éléments peuvent être classés. La logique de tri qui met la liste dans l'ordre de classement est dans un contrôleur.
  • De même, des éléments (Élément de modèle) ont également des images (le modèle de l'Image). Chaque élément peut avoir une image par défaut (désigné par image_id dans la table des articles). Lorsqu'un élément est affiché avec ses images, l'image par défaut apparaît 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 permettant de déterminer quelles sont les listes connexes est dans un contrôleur.

Maintenant à mes questions:

  1. Avec les exemples que j'ai donnés ci-dessus, suis-je sur la bonne voie, de penser que ceux sont des instances de la logique actuellement un contrôleur de ce qui appartient à un modèle?
  2. Quels sont les autres domaines de la logique, web apps, qui devrait aller dans les modèles?
  3. Je suis sûr que l'identification de ce problème et de changer mon modèle de conception est la moitié de la bataille, mais même si je décide de prendre ces exemples que j'ai donnés ci-dessus et essayez de déplacer cette logique pour un modèle, je ne sais pas par où commencer. Quelqu'un peut me pointer dans la bonne direction par l'affichage du code ici, ou un lien vers quelques bonnes ressources d'apprentissage? CakePHP spécifiques aider ce serait génial, mais je suis sûr que rien MVC suffira.
  • Entendu parler de tout cela 🙂