@Rushino Vous avez deux «applications» ici - le front-end (pour les lecteurs) et le backend (pour les administrateurs). Pour chaque groupe de fonctionnalités, vous avez un contrôleur.
La connexion est un tel groupe, qui comprend la génération du formulaire HTML (les champs, l'appel de la vue), et la gestion du formulaire (la validation, la connexion avec le modèle). La «connexion» est donc un contrôleur avec deux actions - generateForm et handleForm.
Les pages sont divisées entre l'application frontale - qui ne montre que les pages - et l'application backend qui permet de les modifier, les supprimer, les créer et éventuellement les afficher d'une manière différente. La page d'accueil est `` juste une autre page '' sur la face avant au moins, elle s'inscrit donc dans le contrôleur de pages. Sur le backend, sa logique peut être suffisamment différente pour justifier un contrôleur complètement différent.
Pour les utilisateurs - si les utilisateurs peuvent s'enregistrer eux-mêmes, ils auront besoin d'un contrôleur frontal, mais sinon, tout ce qui concerne les utilisateurs va simplement dans le backend.
Notez que chacune des fonctions backend peut nécessiter à la fois un générateur et un gestionnaire. Ces choses peuvent être divisées en fichiers de configuration, cependant, avec un plugin qui est un générateur de formulaire générique.
En résumé, cela ressemble à ceci:
Frontend
Pages
View, Handle
Login
View, Handle
Users
Register (note that the handler can be the same as 'create' on the backend)
Contact
View
Handle
Backend
Users
Create, Delete, Edit, Update, View
Pages
Create, Delete, Edit, Update, View