При необходимости создать небольшой оригинальный сайт, легковесную админ-панель, вспомогательный сервис, API или просто прототип нужного функционала, лучше всего использовать микрофреймворк. Почему именно "оригинальный" сайт? Для стандартных сайтов существуют разновидности CMS, но обычно, чтобы реализовать нестандартную идею, нужны гибкие инструменты с возможностью их комбинирования. На принципе комбинирования и работают современные фреймворки, позволяя подключать собственные дополнительные модули или модули от сторонних разработчиков. В микрофреймворке поставляется "каркас", к которому дописывается код проекта, добавленный программистом в рамках предварительно заданной структуры. Так как над облегченной версией фреймворка с приставкой "микро" в большинстве случаев работает один программист, реализуя задачи в собственной необходимости структуризации и дальнейшей поддержки, то здесь меньше требований к каким-либо соблюдениям правил, по крайней мере в данном случае это тоже сведено к минимуму.
PHP Микрофреймворк HLEB отвечает этим требованиям, но для того, чтобы проект на его основе полностью раскрывал свой потенциал, а также был достаточно защищён, необходимо изучить небольшую, но необходимую инструкцию по применению. Руководство состоит из следующих основных пунктов.
Структура проекта
В этом разделе рассматривается местоположение рабочих папок и файлов проекта, в целом эти файлы нужны для связи с ядром фреймворка и менять их вне предписаний этой документации не рекомендуется. Остальное, сам создаваемый проект, его масштабирование и подключение сторонних библиотек, полностью в распоряжении разработчика.Маршрутизация
Принцип работы маршрутизатора в обработке входящих запросов и предоставления удобного и современного вида URL-адресов, которые, к тому же, смотрятся достаточно привлекательно. За определением адреса следует дальнейшая соответствующая реакция приложения с отображением (или их отсутствием) данных, а также другими любыми назначенными действиями. Всё это настраивается в виде схемы роутов и составляет карту маршрутизации, согласно которой функционирует весь сайт.Контроллеры
Маршрутизатор направляет выполнение программы от определения входящего адреса к заданному в карте маршрутизации соответствующему контроллеру, представляющему из себя, в данном случае, PHP-класс с определённым действием и возвращаемыми пользователю данными. Если предварительные вычисления (например, проверка авторизации) не требуются, в маршрутизаторе можно указать отдаваемые данные (из файла или строку) без участия контроллера.Конструктор страниц
Конструктор страниц - это метод сборки запрошенной страницы из разных файлов в одну, отдаваемую пользователю. Обычно для соединения разных частей страницы используется последовательная вставка её компонентов друг в друга, определенная в этих компонентах. Преимущество конструктора в том, что отдельные файлы, как части страниц, независимы друг от друга, а их сопоставление назначается в маршрутизаторе с заданием именованных наборов, в том числе можно использовать сборку наборов. Данная возможность, то есть сам конструктор страниц, не является обязательной и может использоваться по необходимости.Архитектура
Код фреймворка HLEB выполнен как в процедурном стиле, так и с использованием OOП. При добавлении каждой функции выбор делался в пользу быстродействия, минимализма и простоты использования. Такой подход связан с тем, что данный микрофреймворк останется микрофреймворком и не будет масштабироваться. Можно сказать, что он подвергся структурной минификации. Это не является рекомендуемым стилем разработки проекта на его основе, на данный момент существует множество руководств, как писать масштабируемый и удобный в поддержке код, готовый к переделке и внедрению нового функционала в сжатые сроки.Проекты на основе фреймворка
Из известных автору проектов на основе HLEB выделяется форумный (и Q&A) движок LibArea.Проект на GitHub: github.com/LibArea/libarea
На примере этого рабочего кода вы можете изучить, как применяется роутинг и налаживается взаимодействие с фреймворком.