Скучная, но важная теория
Буквально все web-фреймворки на любом языке программирования (но мы о PHP) имеют схожее содержание. Чаще всего они состоят из следующих пакетов:
Автозагрузчик - механизм, позволяющий загружать ресурсы приложения, такие как классы, файлы конфигураций или файлы шаблонов
Локатор служб - глобальное хранилище компонентов приложения, таких как конфигурация, системы доступа к БД, используемый шаблонизатор, автозагрузчик и т.д.
Шаблонизатор - для генерации результирующих HTML страниц используется шаблонизация
Роутер - механизм позволяющий маршрутизировать HTTP запросы к обработчикам
Многие из перечисленных сейчас компонентов могут вам показаться незнакомыми и не понятными, но я опишу каждый из них подробнее и дам готовую реализацию.
Процесс взаимодействия клиента с сервером через конкретный фреймворк можно представить в виде следующей схемы:
Клиент -> Сервер -> Роутер -> Модуль -> Контроллер -> Бизнес-логика -> Шаблонизатор -> Клиент
Это классическая MVC схема, наложенная на Web-сервер. Все запросы приходят в контроллер, который передает их в модель (бизнес-логика), которая в свою очередь оповещает представление (шаблонизатор).