Отладка и исправление кастомизированных компонентов сайта для php8
1Цели и задачи
К нам обратился один из крупнейших в России специализированных магазинов снаряжения для горнолыжного спорта и сноубординга, всех видов туризма, кемпинга и путешествий, альпинизма и скалолазания, бега и мультигонок sport-marafon.ru с проблемой - на тестовой площадке после попытки переключиться на php 8.1 и обновить ядро Битрикс сыпались ошибки всевозможных модулей и сайт был полностью неработоспособен. С первого взгляда задача выглядела достаточно объемной, в связи с этим ИТ-отдел интернет-магазина обратился к внешнему подрядчику за ее решением. Дополнительной сложностью являлся многолетний "багаж" разработок на живом проекте - многие модули и компоненты уже не имели обновлений под новую версию php от вендоров и их обновлением или заменой также пришлось заниматься самостоятельно.2Аналитика и первая итерация исправлений
Из-за большого объема работы и непрогнозируемых трудозатрат процесс отладки и обновления было решено проводить итеративно. На первой итерации обновили ядро Битрикс, устранили ошибки модулей\библиотек блокирующих работоспособность Административной панели, выявили и составили первичный перечень ошибок пользовательской части сайта. Выяснилось, что ошибки несовместимости в компонентах и классах библиотек частично блокируют отображение и функционал пользовательского интерфейса сайта. Также из-за большого объема данных в таблице БД при обновлении модуля Интернет-магазин (sale) стандартный сценарий обновления таблиц БД не успевает отрабатывать и падает по таймауту.По результатам данной итерации удалось оживить административный раздел сата на php 8.1 и обновить версию ядра Битрикс до 22.5. Публичная часть осталась частично неработоспособной и все ошибки были формализованы и сформированы в новый список работ.
Часть форм и интерактивных сценариев пользователей также были протестированы и выявлены и формализованы ошибки функционала.
3Исправление основных ошибок
После исправления критических ошибок наши специалисты продолжили тестирование и отладку критического пути пользователя - главная, поиск, страницы каталога, избранное, детальная карточка товара, добавление в корзину и оформление заказа, личный кабинет. Статичные страницы также были проверены. Многие компоненты использовали шаблонизатор Twig.Были выявлены следующие проблемы:
- Ошибка при отправке форм обратной связи
- Восстановление работоспособности шаблонизатора Twig. Обновление composer расширения.
- Рефакторинг и восстановление работоспособности сервиса Избранное
- Страница конкретной статьи блога не работает, падает по таймауту.
- Ошибки микрофреймворка Slim для REST api при взаимодействия с корзиной, также его зависимостей Apiship
- Не работает регистрация - при заполнении всех полей и нажатии на кнопку "Зарегистрироваться" ничего не происходит
- Ошибка при подписке на снижение цены
- Из раздела “Сравнение товаров” не добавляется товар в корзину
- Не рассчитывается скидка по дисконтной карте.
- Бесконечная загрузка при очистке блока Избранное. При нажатии на иконку добавления в избранное в карточке товара, он добавляется в избранное, появляется сообщение о добавлении в Избранное, цвет сердечка меняется, но товар не добавляется в избранное.
- Не отображается цена на товар в каталоге
Также выявилась объемная задача по восстановлению работоспособности генерации pdf-файла в корзине - используемая библиотека не поддерживала новую версию php и потребовался рефакторинг.
4Восстановление работы сайта
В итоге были выполнены следующие работы по сайту:- Ядро Битрикс обновили до последней версии
- Конвертировали таблицы БД
- Обновили шаблонизатор Twig
- Выявили и отладили ошибки в компонентах сайта
- Выявили подписки на события и обновили/устранили ненужные
- Восстановили работу pdf-генерации файлов в корзине
- Восстановили работу модулей административного раздела
В результате комплексного тестирования были выявлены и решены ошибки, не связанные с обновлением сайта и присутсвовавшие на основном сайте
Битрикс обновлен до последней версии, таблицы БД конвертированы в новый формат модуля sale
Обновлена библиотека генерации PDF - используется актуальная версия с поддержкой php 8 - не только изменения в коде, но и composer и mpdf библиотеку.
Более 50 шаблонов кастомизированных компонентов приведены в соответствие стандартам php8
Нужен похожий проект?
Расскажите о задаче — покажем близкие по смыслу работы и предложим решение со сроками и бюджетом.
Похожие проекты




