2б. Есть "компоненты" (папка core)
Это должен быть composer
Router() - из конфига по регулярке ищет совпадение на REQUEST_URI и запускает "вьюху"
4. Есть "контроллеры" (папка controllers) это модули самого проекта - хедер, футер, меню
шта.
Роутер пинает контроллер и его методы в зависимости от роута.
А контроллер уже работает с моделями и выводит результат через view.
Сейчас у вас контроллеры вообще просто для того чтобы они были получается...
я, правда, читал про какую-то там "бизнес-логику", но я как слышу слово бизнес, я говорю "оооо не, спасибо, бизнеса мы уже нажрались, оставьте себе" и эти умные слова не воспринимаю
Есть два лагеря, те кто за логику в контроллерах и за логику в моделях.
Делать всё в контроллере и иметь пустые модели чисто как сущности для работы с базой.
Делать всё в моделях и контроллер только вызывает методы модели, в контроллере логики при этом вообще никакой не должно быть.
Выбирать самому.
Я особо не парюсь и пишу через раз там где удобнее в каждом случае.
базнес-логика это непосредственно логика вашего проекта, а не внутренние процессы фреймворка и т.п.