Translate

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

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

Подробная инструкция

Скачать с GitHub

НазваниеGitHub
HLEBphphleb/hleb
Engine for HLEBphphleb/framework
Debug Panelphphleb/debugpan
Radjax routerphphleb/radjax
XD ORMphphleb/xdorm
Admin Panelphphleb/adminpan
Tests from HLEB phphleb/tests

Основные принципы фреймворка HLEB

1. Независимость. Работоспособность ядра микрофреймворка не зависит от сторонних библиотек. Есть некоторое количество собственных расширений, распространяемых под той же свободной лицензией, которые можно самостоятельно заменить другими, дополнить другими или не использовать вообще.

2. Гибкость. Фреймворк HLEB создан для тех, кто понимает, для чего предназначен привнесённый ими код, поэтому фреймворк не требует лишних ограничений к разработке. В рамках MVC здесь возможен любой подход к структуре проекта. Сам микро-фреймворк представляет из себя оригинальную реализацию роутинга и предварительный каркас приложения.

3. Минимализм. Каждый запрос пользователя к сайту вызывает код фреймворка, поэтому те части последнего, которые всегда обязательны при запросе, реализованы с предельным минимализмом и низкой требовательностью к ресурсам.

4. Неприхотливость. Для работы фреймворка нужен только установленный PHP с базовыми настройками.

5. Многофункциональность. Несмотря на небольшой размер, микрофреймворк HLEB содержит множество полезных инструментов и дополнительных функций. В их числе: защита пользовательских запросов, панель отладки, работа с поддоменами, конструктор страниц, кэширование контента, консольные команды. Список можно расширить, добавив собственные библиотеки фреймворка: панель администратора, мини-ORM и сверхбыстрый роутер для второстепенных запросов.

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



Сравнение быстродействия микрофреймворков

Традиционно сделан тест фреймворков на толщину минимальной "прослойки" между получением запроса и выводом его на странице.
Использованы фреймворки: Lumen 6.0.0, Slim 4.0.0 и, понятное дело, HLEB (1.3.0). Для всех тестов использовался один и то же бэкграунд, а также PHP 7.1. Данные усреднены от 10 замеров подряд. Использовались только микрофреймворки, так как тот же Lumen раза в 3-4 быстрее Laravel и смысла сравнивать с последним нет. Во всех тестах - чем меньше значение, тем лучше.

1) У каждого микрофреймворка создан один маршрут, один контроллер и контент для отдачи в виде текстовой строчки. В итоге:

Lumen 0.037 сек
Slim 0.030 сек
HLEB 0.010 сек

2) Пиковое потребление памяти:

Lumen 3.620 МБ
Slim 2.400 МБ
HLEB 0.950 МБ

3) У каждого микрофреймворка создано 100 разных маршрутов, обращение идет через один контроллер, вызов адреса для последнего маршрута в списке.

Lumen 0.043 сек
Slim 0.036 сек
HLEB 0.011 сек

При включении OPcache все эти показатели пропорционально уменьшаются, прирост скорости может быть на порядок выше. То есть в десять раз.


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

Lumen 24.358 МБ
Slim
2.365
МБ
HLEB
0.384
МБ

Сравнение размеров директорий - не очень информационный тест, но дает обобщённое представление о базовом количестве зависимостей. Например, у Lumen подгружается их много, но по умолчанию большинство отключено. Несмотря даже на это тесты показали не самую лучшую скорость.
У Slim всё наоборот, изначально загружается только фреймворк как библиотека(0.336 МБ), а все дополнительные расширения и структура каталогов на усмотрение разработчика.
Для фреймворка HLEB дополнительно подгрузилась только одна собственная библиотека с отладочной панелью. Этого достаточно для его полноценной работы.



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

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