➳ Предыстория этого блога ❂ ↑
Итак, наконец-то добрался до пробы мультиблогового движка, на котором сделан этот сайт, здесь есть еще много всего, сервис "вопросы и ответы", каталог ресурсов, но мне пока что нужно проверить как работает блог. Несмотря на множество возможностей движка, оказалось, что страницы грузятся довольно быстро, и последнее мне приятно видеть (далее будет ясно, почему). Теперь же посмотрим, на что...
Отчет по подготовке версии HLEB 2.0
Оказалось, что написание новой версии фреймворка не самое главное, большую часть работы занимает написание тестов на все его функции и составление документации. Кроме этого, из-за изменений в ядре фреймворка, необходимо сделать новые версии всех его собственных библиотек. Мне бы не хотелось, чтобы его возможности оказались урезанными по сравнению с предыдущей версией, поэтому будет и обновление библиотек. Возможно, что 70% от всей...
Вместо отчёта по фреймворку HLEB 2
Вышел отчёт по фреймворку Yii2 на Хабре https://habr.com/ru/articles/737662/ Так получилось, что разбираясь с RoadRunner и другими вещами, залезал в репозитории Yii3 в том числе и попутно отправил несколько пулл-реквестов, заметив неточности, и в итоге теперь мои имя и фамилия оказались в списке благодарностей разработчикам Yii) Это приятно видеть и вместо отчета по своему фреймворку могу сказать, что процесс идёт и такие вот штуки - побочные его...
Заметки о переделке фреймворка HLEB
Как-то так вышло, что в предыдущих заметках более указывал на недостатки проектов/решений, чем находил их положительные стороны. Но, как часто бывает, если бы меня полностью устраивало все, то и в собственных проектах (так называемых пет-проектах) не было бы необходимости. В этом блоге упомянуты разнообразные подходы к созданию программных продуктов (Веб в основном), где упоминаю, что каждый отдельный случай нужно рассматривать...
Вы еще не зарегистрировались? Войти
В преддверии версии фреймворка HLEB 2.0
Есть предварительные наброски, как будет выглядеть версия 2.0 фреймворка, поэтому поделюсь ими, дабы эти изменения не стали неожиданностью.
PHP 8.3 - при том, что переписывание ядра фреймворка началось только сейчас, к тому времени, как оно будет закончено - скорее всего выйдет релиз PHP 8.3, то есть версия фреймворка 1.x будет от PHP 7.1 до 8.2. В версии PHP 8.3 не так много новинок, скорее это будет условная граница для фреймворка и библиотек, где...
Как установить фреймворк HLEB на хостинг TIMEWEB
Хостинг Timeweb считается довольно популярным в России, но, к удивлению, внешний вид админпанели выглядит устаревшим как по удобству использования, так и по дизайну и вёрстке. Тем не менее, развернуть проект на нём очень просто.
Изначально при регистрации создается директория с доменом вида xxxxx.tw1.ru. Подробнее можно настроить в Панели управления в разделе Сайты - Мои сайты, там будет указана...
Hlogin: Создание кнопок и страниц для регистрации
Библиотека Hlogin, выполненная на PHP и JavaScript, предоставляет модуль регистрации для фреймворка HLEB.
Кнопки и ссылки
В официальной инструкции к библиотеке даётся краткое описание создания собственных кнопок для регистрации пользователя, но дизайн их, как и кнопок формы по умолчанию, хоть и представляет рабочий вариант, подойдёт не к каждому дизайну сайта.
Настройки отображения находятся в админпанели. В неё...
Как установить фреймворк HLEB на хостинг БЕГЕТ (Beget)
Хостинг Бегет один из популярных отечественных хостингов со штаб-квартирой в городе Санкт-Петербург. Недавно они повысили тарифы на многие услуги, но несмотря на это продолжают быть технологически продвинутым ресурсом с хорошей техподдержкой.
Предлагают также бесплатный хостинг с урезанными функциями, минимальными мощностями и отсутствием техподдержки. На него...
Установка PHP фреймворка HLEB на Open Server
Проект Open Server (не путать с одноимённой OS OpenServer) помогает автоматизировать локальное развёртывание проекта. Если возникла необходимость установки именно на нём, то вот краткая инструкция с картинками.
Open Server Panel — это портативная программная среда, созданная специально для веб-разработчиков с учётом их рекомендаций и пожеланий. OSPanel широко используется с целью разработки, отладки и тестирования веб-проектов, а...
Как во фреймворке HLEB перенести конфиг из папки database в config
Чтобы перенести конфиг базы данных в общую папку 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",
//...
Автоназначение маршрутов контроллер-метод во фреймворке HLEB.
В некоторых случаях, особенно когда проект большой, а к URL-адресам не предъявляется особых требований, можно настроить соответствие для маршрутов, при котором маршрутизатор автоматически будет находить нужный контроллер и в нём метод. Для расширения доступных вариантов семантического URL, попросту добавления новой страницы, достаточно создать класс контроллера в папке. Такой вариант есть, к примеру, во фреймворке Yii.
При задании в...
Выделение группы маршрутов фреймворка HLEB с помощью фигурных скобок
Если вы организуете код маршрутов с самостоятельным добавлением отступов, пример из инструкции:
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]+']);
то это форматирование может идти вразрез с установленными в вашей IDE настройками (во всех случаях при автоформатировании лишние отступы будут убраны). Мне это никогда не мешало, но если использовать малоизвестную особенность PHP - отдельные {}
, можно задать необходимые отступы. Дело в том, что в PHP можно использовать фигурные скобки как обрамление некоторого кода.
Панель отладки фреймворка HLEB и адаптация её к CSP
Единственная библиотека, которая прилагается к фреймворку по умолчанию - панель отладки. Она легковесная и изначально не несёт никаких компроментирующих данных вроде сессий или данных сервера. Её роль - дать сводную информацию о том, как фреймворк обработал запрос.
Отображается эта панель только в DEBUG-режиме и вместе с ней может отображаться ещё одна панель, показывающая статистику по...
Редирект на другой маршрут средствами фреймворка HLEB
Некоторые страницы сайта могут быть перемещены и возникает необходимость перенаправить пользователей и поисковые системы на новый адрес. На уровне кода есть такой сборный редирект по имени конечного маршрута.
redirect(getUrlByName($name, $params), 301);
Для создания универсального редиректа создадим контроллер:
Парадигма MVC во фреймворке HLEB
MVC
Парадигма MVC (Model-View-Controller) как набор паттернов придумана (во многих руководствах используется термин "открыт" для паттернов) для языка SmallTalk ещё в 1970-е годы. Принцип её реализации очень прост. Код приложения необходимо разделить на уровни, каждый из которых отвечает за свою часть работы приложения и не должен "знать" детали другого уровня.
В основе MVC и идее, оказавшей наибольшее влияние на более поздние фреймворки, лежит то,...
Пример создания API на фреймворке HLEB
В этой инструкции будет рассмотрено создание простого API на основе PHP фреймворка HLEB.
Установка
Если фреймворк HLEB ещё не установлен, то нужно скачать его из репозитория github.com/phphleb/hleb или установить через Composer:
composer create-project phphleb/hleb
Далее нужно указать путь веб-серверу в публичную папку /public установленного фреймворка. Если вы не знаете как это сделать, прочитайте инструкцию по...
Логирование: что это и как применяется
Логированием называют запись данных информационного характера в логи. Обычно вместе с логами автоматически сохраняется вторичная информация — когда и при каких системных обстоятельствах это происходило. Эта информация пригодится также при сортировке логов, чтобы помочь в расследовании конкретного инцидента или проверки работы участков системы. Реализация логирования важных участков...
Настройка фреймворка: Изменить название публичной директории public
Чтобы установить вместо папки "public" другую, например, "public_html" - необходимо в корневом файле "console" изменить строчку:
// `console` file
define( 'HLEB_PUBLIC_DIR', 'public_html' );
В остальном, если адрес ресурса уже направлен в "public_html" и сама папка переименована, никаких изменений делать не нужно.
Создание сайта с помощью фреймворка HLEB. Часть 10. Обещанная консольная команда
Последней в этом цикле статей по созданию демонстрационного сайта на PHP фреймворке HLEB, будет тема о создании собственной консольной команды, о которой упоминалось в самом начале, в части 1
Создание консольной команды
Автоматизация повторяющихся действий (в том числе создание собственных консольных команд) значительно улучшает жизнь разработчика.
Для начала просмотрим...
Создание сайта с помощью фреймворка HLEB. Часть 9. Завершающая настройка
В предыдущих частях мы собрали рабочий макет сайта на PHP фреймворке HLEB. Теперь можно его настроить.
Конечно, не планировалось отправлять этот сайт в публичный доступ, но я покажу, какие настройки могут пригодиться для полноценного проекта при выводе его "в люди".
Отключение режима DEBUG
По умолчанию во фреймворке DEBUG-режим включён, о чём может свидетельствовать панель отладки в правом верхнем углу.
Чтобы отключить DEBUG-режим -...
Создание сайта с помощью фреймворка HLEB. Часть 8. Ресурсы проекта
Подходит к завершению поэтапное создание демонстрационного сайта на PHP фреймворке HLEB. В этой части будут подключены файлы JS и CSS к проекту. Они уже были назначены ранее, теперь их нужно создать по образцу.
Ресурсы
В оригинальном проекте публичная папка с проектом называется public
, но вы в дальнейшем можете изменить название.
Файл CSS /public/css/main.css
body {
font-family: Verdana, Arial, serif;
padding: 15px 10px;
}
a {
padding-right: 10px;
color: #d27d11;
}
button {
...
Создание сайта с помощью фреймворка HLEB. Часть 7. Работа с шаблонами
Продолжаю серию статей на тему создания демонстрационного сайта на PHP фреймворке HLEB. В этой теме будут рассмотрены шаблоны, необходимые для генерации HTML-контента. Сам принцип шаблонов подразумевает, что там может быть не только HTML. В текущем проекте это страницы, некоторые части которых (footer и header) вынесены в отдельные шаблоны.
Шаблоны страниц
У этих шаблонов один общий признак - в них могут быть переданы переменные из контроллера, которые наполняют шаблон как эскиз осмысленным конкретным контентом.
Создайте файлы и разместите там следующие примеры кода:
Создание сайта с помощью фреймворка HLEB. Часть 6. Подключение контроллеров.
В этой части продолжаем кодировать демонстрационный проект на фреймворке HLEB. Это небольшой проект, в котором ставится задача по максимуму раскрыть возможности фреймворка при решении часто распространённых задач. В отличие от других подобных инструкций, здесь сразу приводятся примеры конечного кода, чтобы не заменять постоянно то один, то другой файл (мне попадались такие образчики упомянутых инструкций и это было не особенно...
Создание сайта с помощью фреймворка HLEB. Часть 5. Добавляем модели.
Продолжаем создание демонстрационного проекта на PHP фреймворке HLEB. Перед тем, как назначить контроллеры, нужно создать две модели, которые будут там использоваться, первая будет заведовать таблицей users
(она создана на шаге установки регистрации) и likes
, последнюю нужно создать. В ней будут храниться пользовательские лайки.
Примеры создания для MySQL, но они простые и можно переложить на любой другой поддерживаемый...