@Rushino У вас есть два «приложения» здесь - интерфейс (для читателей) и сервер (для администраторов). Для каждой группы функций у вас есть контроллер.
Вход в систему - это такая группа, которая включает в себя создание формы HTML (поля, вызывающие представление) и обработку формы (проверка, связывающаяся с моделью). Таким образом, 'login' - это контроллер с двумя действиями - generateForm и handleForm.
Страницы разделены между внешним приложением - которое просто показывает страницы - и внутренним приложением, которое позволяет редактировать, удалять, создавать и, возможно, просматривать их по-другому. Домашняя страница - это, по крайней мере, «просто еще одна страница» на переднем конце, так что помещается в контроллер страниц. С другой стороны, его логика может быть достаточно разной, чтобы полностью оправдать наличие другого контроллера.
Для пользователей - если пользователи могут зарегистрироваться самостоятельно, им потребуется контроллер внешнего интерфейса, но если нет, все, что связано с пользователями, просто отправляется в бэкэнд.
Обратите внимание, что для каждой из внутренних функций могут потребоваться как генератор, так и обработчик. Эти вещи могут быть разбиты на конфигурационные файлы с помощью плагина, который является генератором общих форм.
В итоге это выглядит так:
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