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

31 Января (ред)

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

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

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

Роутинг Маршруты внешне остались такими-же, но теперь нужен особый порядок и структура в их расположении. Начало групп теперь именуется как toGroup и все дополнительные правила назначаются в начале группы, endGroup просто завершает группу. Определения к контроллерам и другим классам в маршрутах теперь не зависят от конкретного namespace и представляют собой полное название класса. Это нужно иметь ввиду и теперь конструкция 'DefaultController@index' представляет собой название класса целиком App\Controllers\DefaultController::class плюс название метода ('index' по умолчанию).

Конфигурация Эта часть подверглась значительным изменениям. Ранее все работало на константах, теперь аналогичные параметры в виде именованного массива перенесены в файлы папки /config/. Вы можете добавлять свои параметры и они будут доступны средствами фреймворка (например в функции config()). Теперь часть параметров может переопределяться в модулях.

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

Использование хелперов не приветствуется Если ранее вы использовали какие-либо helpers фреймворка, то теперь всё взаимодействие реализовано через сервисы контейнера. Прочитайте об этом раздел в документации.

Получение данных Объект Request теперь стандартизирован, только названия методов могут немного отличаться. Некоторые данные запроса теперь возвращаются не как значения, а объекты с данными, позволяющие получить значение в нужном формате. Вместе с контроллером в маршруте теперь нельзя передавать набор данных, только для middleware. Альтернативой может стать распределение по методам контроллера. Перенос данных между контроллерами в новой версии осуществляется при помощи специального dto сервиса.

URL c кириллицей Класс, который ранее заведовал преобразованием названий в URL, теперь вынесен в отдельную библиотеку phphleb/idnaconv и его нужно устанавливать отдельно.

Конструктор страниц Конструктор страниц не выдержал проверку временем и не перенесён в новую версию. Им никто не пользовался всерьёз.

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

Роутер Radjax теперь не нужен Различия в производительности между основным и вспомогательным роутерами стали минимальными, поэтому старые маршруты этого роутера нужно будет переписать в одном виде с текущим.

fomiash fomiash + 200
Опубликовано в PHP фреймворк HLEB
Для ответа вы можете авторизоваться


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