@Rushino Sie haben hier zwei "Apps" - das Front-End (für Leser) und das Back-End (für Administratoren). Für jede Funktionsgruppe haben Sie einen Controller.
Die Anmeldung ist eine solche Gruppe, die die Erzeugung des Formular-HTML (die Felder, die Ansicht aufrufend) und die Behandlung des Formulars (die Validierung, die Verbindung mit dem Modell) umfasst. 'Login' ist also ein Controller mit zwei Aktionen - generateForm und handleForm.
Pages ist unterteilt in die Front-End-App, in der nur Seiten angezeigt werden, und in die Back-End-App, in der sie bearbeitet, gelöscht, erstellt und möglicherweise auf andere Weise angezeigt werden können. Die Homepage ist mindestens eine 'andere Seite' im Frontend, passt also in den Seiten-Controller. Auf dem Backend könnte seine Logik so unterschiedlich sein, dass es einen völlig anderen Controller rechtfertigt.
Für Benutzer - Wenn Benutzer sich registrieren können, benötigen sie einen Frontend-Controller. Wenn nicht, wird alles, was mit Benutzern zu tun hat, im Backend ausgeführt.
Beachten Sie, dass für jede Backend-Funktion möglicherweise sowohl ein Generator als auch ein Handler erforderlich sind. Diese Dinge können jedoch mit einem Plugin, das ein generischer Formulargenerator ist, in Konfigurationsdateien aufgeteilt werden.
Zusammenfassend sieht es so aus:
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