@Rushino Qui ci sono due "app": il front-end (per i lettori) e il back-end (per gli amministratori). Per ogni gruppo di funzionalità, hai un controller.
L'accesso è un tale gruppo, che include la generazione del modulo HTML (i campi, chiamando la vista) e la gestione del modulo (la convalida, la connessione con il modello). Quindi 'login' è un controller con due azioni - generateForm e handleForm.
Le pagine sono divise tra l'app di front-end - che mostra solo le pagine - e l'app di back-end che consente di modificare, eliminare, creare e possibilmente visualizzarle in un modo diverso. La homepage è "solo un'altra pagina" sul front-end almeno, quindi si adatta al controller delle pagine. Sul backend, la sua logica potrebbe essere abbastanza diversa da giustificare completamente un controller diverso.
Per gli utenti - se gli utenti possono registrarsi, hanno bisogno di un controller di frontend, ma in caso contrario, tutto ciò che riguarda gli utenti va nel back-end.
Si noti che ciascuna delle funzioni di back-end può richiedere sia un generatore che un gestore. Queste cose possono essere suddivise in file di configurazione, però, con un plugin che è un generatore di moduli generici.
In breve, assomiglia a questo:
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