Translate
Эта версия фреймворка устарела, воспользуйтесь HLEB2

PHP Микрофреймворк HLEB

Скачать Скачать с GitHub
Предназначение Установить Настройка Структура проекта Маршрутизация Типы маршрутов Группы маршрутов Защита маршрутов Конструктор страниц Контроллеры Модели Получение данных Базы данных Регистрация API DI Дополнительно

Предназначение

Микрофреймворк отличается от обычного фреймворка тем, что позволяет запустить полноценный продукт при минимальных временных затратах и обращениях к документации фреймворка, он лёгкий, простой и быстрый. При этом он решает типовые задачи, такие как роутинг (маршрутизация), перекладывание действий на контроллеры, поддержка моделей, в общем, базовая реализация MVC. Это тот самый минимум, который нужен, чтобы быстро запустить приложение.

При необходимости создать небольшой оригинальный сайт, легковесную админ-панель, вспомогательный сервис, API или просто прототип нужного функционала, лучше всего использовать микрофреймворк. Почему именно "оригинальный" сайт? Для стандартных сайтов существуют разновидности CMS, но обычно, чтобы реализовать нестандартную идею, нужны гибкие инструменты с возможностью их комбинирования. На принципе комбинирования и работают современные фреймворки, позволяя подключать собственные дополнительные модули или модули от сторонних разработчиков. В микрофреймворке поставляется "каркас", к которому дописывается код проекта, добавленный программистом в рамках предварительно заданной структуры. Так как над облегченной версией фреймворка с приставкой "микро" в большинстве случаев работает один программист, реализуя задачи в собственной необходимости структуризации и дальнейшей поддержки, то здесь меньше требований к каким-либо соблюдениям правил, по крайней мере в данном случае это тоже сведено к минимуму.

Диаграмма

PHP Микрофреймворк HLEB отвечает этим требованиям, но для того, чтобы проект на его основе полностью раскрывал свой потенциал, а также был достаточно защищён, необходимо изучить небольшую, но необходимую инструкцию по применению. Руководство состоит из следующих основных пунктов.

Структура проекта

В этом разделе рассматривается местоположение рабочих папок и файлов проекта, в целом эти файлы нужны для связи с ядром фреймворка и менять их вне предписаний этой документации не рекомендуется. Остальное, сам создаваемый проект, его масштабирование и подключение сторонних библиотек, полностью в распоряжении разработчика.

Маршрутизация

Принцип работы маршрутизатора в обработке входящих запросов и предоставления удобного и современного вида URL-адресов, которые, к тому же, смотрятся достаточно привлекательно. За определением адреса следует дальнейшая соответствующая реакция приложения с отображением (или их отсутствием) данных, а также другими любыми назначенными действиями. Всё это настраивается в виде схемы роутов и составляет карту маршрутизации, согласно которой функционирует весь сайт.

Контроллеры

Маршрутизатор направляет выполнение программы от определения входящего адреса к заданному в карте маршрутизации соответствующему контроллеру, представляющему из себя, в данном случае, PHP-класс с определённым действием и возвращаемыми пользователю данными. Если предварительные вычисления (например, проверка авторизации) не требуются, в маршрутизаторе можно указать отдаваемые данные (из файла или строку) без участия контроллера.

Конструктор страниц

Конструктор страниц - это метод сборки запрошенной страницы из разных файлов в одну, отдаваемую пользователю. Обычно для соединения разных частей страницы используется последовательная вставка её компонентов друг в друга, определенная в этих компонентах. Преимущество конструктора в том, что отдельные файлы, как части страниц, независимы друг от друга, а их сопоставление назначается в маршрутизаторе с заданием именованных наборов, в том числе можно использовать сборку наборов. Данная возможность, то есть сам конструктор страниц, не является обязательной и может использоваться по необходимости.

Архитектура

Код фреймворка HLEB выполнен как в процедурном стиле, так и с использованием OOП. При добавлении каждой функции выбор делался в пользу быстродействия, минимализма и простоты использования. Такой подход связан с тем, что данный микрофреймворк останется микрофреймворком и не будет масштабироваться. Можно сказать, что он подвергся структурной минификации. Это не является рекомендуемым стилем разработки проекта на его основе, на данный момент существует множество руководств, как писать масштабируемый и удобный в поддержке код, готовый к переделке и внедрению нового функционала в сжатые сроки.

Проекты на основе фреймворка

Из известных автору проектов на основе HLEB выделяется форумный (и Q&A) движок LibArea.
Проект на GitHub: github.com/LibArea/libarea
На примере этого рабочего кода вы можете изучить, как применяется роутинг и налаживается взаимодействие с фреймворком.

Рабочее окружение для фреймворка

Для быстрого развертывания рабочего пространства для фреймворка можно использовать проект github.com/Nelkor/toaster. Он включает в себя полную организацию разработки на основе Docker и запускается одной командой.



Предназначение Установить Настройка Структура проекта Маршрутизация Типы маршрутов Группы маршрутов Защита маршрутов Конструктор страниц Контроллеры Модели Получение данных Базы данных Регистрация API DI Дополнительно



Группа поддержки в Телеграм - @phphleb

Задать вопрос в блоге, который сделан с использованием фреймворка HLEB.

Этот сайт-инструкция к фреймворку HLEB сделан с использованием фреймворка HLEB.

HLEB - PHP Микрофреймворк Свободная лицензия. Без гарантий. © Foma Tuturov 2019-2025