PHP фреймворк HLEB

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

Особенности разработки
fomiash fomiash
13 Сентября 2022
PHP фреймворк HLEB

➳ Предыстория этого блога ❂

ocrmnolblog logo

Итак, наконец-то добрался до пробы мультиблогового движка, на котором сделан этот сайт, здесь есть еще много всего, сервис "вопросы и ответы", каталог ресурсов, но мне пока что нужно проверить как работает блог. Несмотря на множество возможностей движка, оказалось, что страницы грузятся довольно быстро, и последнее мне приятно видеть (далее будет ясно, почему). Теперь же посмотрим, на что...

Читать далее
5
2251
14

Какой PHP-фреймворк выбрать для новичка

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

Так как...

Читать далее
1
690

Настройка соответствия контроллер/метод для HLEB2 аналогично роутингу Yii2

В YII2 (да и не только в нём) по умолчанию маршруты автоматически распределяются по контроллерам и методам. Например, адрес /site/index будет указывать в контроллер SiteController и его метод actionIndex(). С одной стороны это удобно, но способствует тому, что разработчики делают огромные контроллеры со множеством методов, что встречается почти в каждом проекте на YII. В совокупности с неинтуитивным роутингом в YII такое автоназначение маршрутов...

Читать далее
2
1552
4

Настройки безопасности сайта на фреймворке HLEB2

HLEB2 — это фреймворк на PHP, который используется для создания веб-приложений и RESTful API. Хотя он сам по себе достаточно простой, безопасность остаётся важным аспектом при работе с любым веб-фреймворком.

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

Читать далее
1
627

Версионность (SemVer) во фреймворке HLEB2

SemVer (Semantic Versioning) - это соглашение о версионировании программного обеспечения, которое определяет структуру и семантику номеров версий. Основная цель SemVer — обеспечить четкое и последовательное понимание изменений в программном обеспечении.

Структура номера версии

Номер версии SemVer состоит из трех частей, разделенных точками.

Например: v3(major).1(minor).8(patch)

  • Основная версия (Major): Указывает на значительные изменения в...
Читать далее
2
1297
1
Публикуйте, отвечайте, комментируйте...
Вы еще не зарегистрировались?
Войти

Бенчмарки контейнера HLEB2 us Slim Framework

Ранее опубликовал сравнение роутинга для Slim и HLEB2 при большом количестве маршрутов (иначе не было видно заметных различий), теперь пришёл черед реализации контейнера. Как и в прошлый раз получается, в Slim контейнер сторонний нужно установить, на выбор. Выбор пал на контейнер Symfony, так как слышал о нём лестные отзывы, что он без проблем может содержать несколько тысяч зарегистрированных...

Читать далее
3
562
fomiash fomiash
25 Февраля 2024
PHP фреймворк HLEB

Принципы MVC во фреймворке HLEB2

Структура проекта, объявленная как Model-View-Controller (Модель-Вид-Контроллер) давно не нова, к тому же, часто неправильно трактуется при использовании в Web, особенно в отношении backend.

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

Читать далее
2
480

Переход на HLEB2 c первой версии фреймворка

В связи с выпуском второй версии фреймворка HLEB добавлю несколько рекомендаций к официальной документации для перехода с первой версии.

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

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

Читать далее
1
496
fomiash fomiash
19 Сентября 2023
PHP фреймворк HLEB

Отчет по подготовке версии HLEB 2.0

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

Читать далее
1
986
1

Вместо отчёта по фреймворку HLEB 2

Вышел отчёт по фреймворку Yii2 на Хабре https://habr.com/ru/articles/737662/ Так получилось, что разбираясь с RoadRunner и другими вещами, залезал в репозитории Yii3 в том числе и попутно отправил несколько пулл-реквестов, заметив неточности, и в итоге теперь мои имя и фамилия оказались в списке благодарностей разработчикам Yii) Это приятно видеть и вместо отчета по своему фреймворку могу сказать, что процесс идёт и такие вот штуки - побочные его...

Читать далее
3
970
2

Заметки о переделке фреймворка HLEB

Как-то так вышло, что в предыдущих заметках более указывал на недостатки проектов/решений, чем находил их положительные стороны. Но, как часто бывает, если бы меня полностью устраивало все, то и в собственных проектах (так называемых пет-проектах) не было бы необходимости. В этом блоге упомянуты разнообразные подходы к созданию программных продуктов (Веб в основном), где упоминаю, что каждый отдельный случай нужно рассматривать...

Читать далее
2
879
2

В преддверии версии фреймворка HLEB 2.0

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

PHP 8.3 - при том, что переписывание ядра фреймворка началось только сейчас, к тому времени, как оно будет закончено - скорее всего выйдет релиз PHP 8.3, то есть версия фреймворка 1.x будет от PHP 7.1 до 8.2. В версии PHP 8.3 не так много новинок, скорее это будет условная граница для фреймворка и библиотек, где...

Читать далее
2
544
1

Как установить фреймворк HLEB на хостинг TIMEWEB

Хостинг Timeweb считается довольно популярным в России, но, к удивлению, внешний вид админпанели выглядит устаревшим как по удобству использования, так и по дизайну и вёрстке. Тем не менее, развернуть проект на нём очень просто.

Изначально при регистрации создается директория с доменом вида xxxxx.tw1.ru. Подробнее можно настроить в Панели управления в разделе Сайты - Мои сайты, там будет указана...

Читать далее
1
279
fomiash fomiash
27 Декабря 2022
PHP фреймворк HLEB

Hlogin: Создание кнопок и страниц для регистрации

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

Библиотека Hlogin, выполненная на PHP и JavaScript, предоставляет модуль регистрации для фреймворка HLEB.

Кнопки и ссылки

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

Читать далее
2
353
fomiash fomiash
15 Декабря 2022
PHP фреймворк HLEB

Как установить фреймворк HLEB на хостинг БЕГЕТ (Beget)

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

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

Читать далее
1
345
fomiash fomiash
08 Декабря 2022
PHP фреймворк HLEB

Установка PHP фреймворка HLEB на Open Server

Проект Open Server (не путать с одноимённой OS OpenServer) помогает автоматизировать локальное развёртывание проекта. Если возникла необходимость установки именно на нём, то вот краткая инструкция с картинками.

Open Server Panel — это портативная программная среда, созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий. OSPanel широко используется с целью разработки, отладки и тестирования веб-проектов, а...

Читать далее
1
382

Как во фреймворке HLEB перенести конфиг из папки database в config

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

Чтобы перенести конфиг базы данных в общую папку config нужно назначить константу SEARCH_DBASE_CONFIG_FILE, указывающую в нужную директорию.

// Файл /public/index.php
// ...
define('SEARCH_DBASE_CONFIG_FILE', realpath(__DIR__ . '/../config/'));
// ...
// Файл /consolе
// ...
define('SEARCH_DBASE_CONFIG_FILE', realpath(__DIR__ . '/config/'));
// ...

Затем перенести файлы из папки database в config, а первоначальную папку можно удалить.

Чтобы класс DB подключался автозагрузчиком фреймворка в файле /app/Optional/MainConnector.php изменить строчку

//...
"DB" => "config/DB.php",
//...
2
203
1

Автоназначение маршрутов контроллер-метод во фреймворке HLEB.

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

В некоторых случаях, особенно когда проект большой, а к URL-адресам не предъявляется особых требований, можно настроить соответствие для маршрутов, при котором маршрутизатор автоматически будет находить нужный контроллер и в нём метод. Для расширения доступных вариантов семантического URL, попросту добавления...

Читать далее
2
833
3

Выделение группы маршрутов фреймворка HLEB с помощью фигурных скобок

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

Если вы организуете код маршрутов с самостоятельным добавлением отступов, пример из инструкции:

Route::prefix('/ru/{version}/');
    Route::getGroup();
        Route::get('/', 'version.');
        Route::get('/{page}/', 'version + page')->where(['page' => '[a-z]+']);
    Route::endGroup();
Route::where(['version' => '[a-z0-9]+']);

то это форматирование может идти вразрез с...

Читать далее
2
240
fomiash fomiash
27 Октября 2022
PHP фреймворк HLEB

Панель отладки фреймворка HLEB и адаптация её к CSP

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

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

![Debug panel from...

Читать далее
2
259
fomiash fomiash
19 Октября 2022
PHP фреймворк HLEB

Редирект на другой маршрут средствами фреймворка HLEB

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

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

  redirect(getUrlByName($name, $params), 301);

Для создания универсального редиректа создадим контроллер:

Читать далее
1
282
1
fomiash fomiash
17 Октября 2022
PHP фреймворк HLEB

Парадигма MVC во фреймворке HLEB

MVC

Парадигма MVC (Model-View-Controller) как набор паттернов придумана (во многих руководствах используется термин "открыт" для паттернов) для языка SmallTalk ещё в 1970-е годы. Принцип её реализации очень прост. Код приложения необходимо разделить на уровни, каждый из которых отвечает за свою часть работы приложения и не должен "знать" детали другого уровня.

В основе MVC и идее, оказавшей наибольшее влияние на более поздние фреймворки, лежит то,...

Читать далее
3
328
2
fomiash fomiash
09 Октября 2022
PHP фреймворк HLEB

Пример создания API на фреймворке HLEB

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

В этой инструкции будет рассмотрено создание простого API на основе PHP фреймворка HLEB.

Установка

Если фреймворк HLEB ещё не установлен, то нужно скачать его из репозитория github.com/phphleb/hleb или установить через Composer:

composer create-project phphleb/hleb

Далее нужно указать путь веб-серверу в публичную...

Читать далее
4
262
fomiash fomiash
29 Сентября 2022
PHP фреймворк HLEB

Логирование: что это и как применяется

Логирование

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

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

Читать далее
4
326
fomiash fomiash
23 Сентября 2022
PHP фреймворк HLEB

Настройка фреймворка: Изменить название публичной директории public

(!) Примеры и описание для более новой версии фреймворка HLEB2 могут отличаться от приведенных в тексте.

Чтобы установить вместо папки "public" другую, например, "public_html" - необходимо в корневом файле "console" изменить строчку:

// `console` file
define( 'HLEB_PUBLIC_DIR', 'public_html' );

Для версии HLEB2:

// `console` file
define('HLEB_PUBLIC_DIR', realpath(__DIR__ . '/public'));

В остальном, если адрес ресурса уже направлен в "public_html" и сама папка переименована, никаких изменений делать не нужно.

2
211


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.