Сегодня попробуем собрать микрофреймворк по описанным принципам. Будем делать так, чтобы минимизировать свой код. Поэтому, в отличие от полноценных микрофреймворков, у нас будет что-то ближе к начальному «каркасу». Я намеренно не хочу «улучшать» код и тем более раскидывать его по файлам, чтобы сохранить ясность в понимании того, как код будет работать.
В последующем вы можете сами его модернизировать так, чтобы вынести часть кода внутрь фреймворка.