Главная → Портфолио → WEB-разработка → Web-программирование → Восстановление работы кастомизированного модуля Битрикс24 на php8

Восстановление работы кастомизированного модуля Битрикс24 на php8

Отладка кастомизированного интерфейса (модуля в Битрикс24) и большого количества классов, компонентов и шаблонов после перехода на php 8.2 и обновления ядра Битрикс24 до последней актуальной версии
Опубликовано: Март 2024
Универсальная лизинговая компания
Нужен похожий проект?
Восстановление работы кастомизированного модуля Битрикс24 на php8

1Цели и задачи

К нам обратилась компания, использующая Битрикс24 для сопровождения лизинговых сделок через полностью кастомный интерфейс, построенный на CRM-сущностях и HL-блоках. После переключения окружения на PHP 8 и обновления Битрикс24 интерфейс перестал корректно работать: возникли ошибки в компонентах и подключаемых библиотеках, часть страниц/сценариев стала недоступна, а критичный для процесса функционал (генерация документов DOCX) перестал формировать документы.

Важный момент: мы не переписывали бизнес-логику и не меняли пользовательские сценарии — задача была в том, чтобы восстановить работоспособность существующего решения (разработанного ранее не нашей командой) и обеспечить стабильную работу на PHP 8 и актуальной версии Битрикс24.

2Аналитика и первая итерация исправлений

Из-за того, что после обновления проявилось сразу несколько типов проблем (совместимость PHP 8, изменения в API Битрикса, конфликты/устаревание библиотек), работы проводили итеративно: фиксировали ошибки, проверяли ключевые сценарии, формировали список следующей итерации.

восстановление работы кастомизированного модуля длдя Битрикс24 после обновления до php 8.2 На первом этапе:
  • воспроизвели ошибки на тестовом контуре после обновления и собрали первичную диагностику;
  • выделили “критичный путь” пользователя в кастомном интерфейсе (просмотр/редактирование данных сделки, статусы, связанные данные, документы);
  • выявили участки кода, которые ломались из-за изменений в окружении и несовместимых зависимостей;
  • составили перечень проблем по интерфейсу и отдельно — по генерации DOCX.
По итогам первой итерации удалось вернуть базовую работоспособность ключевых разделов и получить понятную карту дальнейших работ: какие компоненты/классы требуют рефакторинга, какие библиотеки нужно обновить/заменить, где необходима аккуратная адаптация под PHP 8 без изменения логики.

3Рефакторинг и восстановление функционала

На основной итерации мы сфокусировались на рефакторинге проблемных участков и стабилизации зависимостей. Цель — “оживить” существующий кастомный интерфейс и DOCX-генерацию на новом окружении, не меняя бизнес-правила.

Основные проблемы, которые были выявлены и устранены:
  • ошибки совместимости кода с PHP 8 (в т.ч. места, где ранее работали неявные преобразования типов и устаревшие конструкции);
  • некорректная работа подключаемых библиотек после обновления (конфликты версий, устаревшие пакеты, несовместимые зависимости);
  • сбои в обработчиках/компонентах, отвечающих за отображение и сохранение данных CRM-сущностей и HL-блоков;
  • поломка генерации документов DOCX (шаблоны формировались с ошибками или не формировались вовсе) из-за несовместимости используемого механизма/библиотеки с PHP 8;
  • нестабильность отдельных сценариев интерфейса, завязанных на события, проверки прав и серверную валидацию.
В процессе работ:
  • провели рефакторинг кода, критичного для работы интерфейса, с сохранением логики и структуры данных;
  • актуализировали/заменили проблемные зависимости, устранили конфликты библиотек;
  • восстановили работу DOCX-генерации: корректная подстановка данных, формирование файлов и выдача пользователю в рамках привычного процесса;
  • добавили более устойчивую обработку ошибок и логирование там, где это было необходимо для дальнейшей поддержки.

4Итоги и результаты

В результате проект был успешно переведён на PHP 8 и обновлённый Битрикс24 без потери пользовательских сценариев и бизнес-логики кастомного решения. Работоспособность интерфейса, построенного на CRM-сущностях и HL-блоках, восстановлена, а генерация документов DOCX снова стала стабильной и пригодной для ежедневной работы.

Итоговый перечень выполненных работ:
  • адаптация проекта под PHP 8 и обновление Битрикс24;
  • диагностика и устранение ошибок, вызванных несовместимостью кода и зависимостей;
  • рефакторинг проблемных участков (без переписывания бизнес-логики интерфейса);
  • восстановление функционала кастомного интерфейса на CRM-сущностях и HL-блоках;
  • восстановление и стабилизация генерации DOCX-документов;
  • проверка ключевых сценариев и регрессионное тестирование критичного пути пользователя.
По завершении работы изменения были подготовлены к безопасному внедрению в продуктив: структурированы, проверены и переданы команде клиента для дальнейшего развертывания согласно их процессам.
Результаты работ по обновлению и отладке

В результате комплексного тестирования были выявлены и решены ошибки, не связанные с обновлением сайта и присутсвовавшие на основном сайте

Битрикс обновлен до последней версии, таблицы БД конвертированы в новый формат модуля sale

Обновлена библиотека генерации PDF - используется актуальная версия с поддержкой php 8 - не только изменения в коде, но и composer и mpdf библиотеку.

Более 50 шаблонов кастомизированных компонентов приведены в соответствие стандартам php8

Нужен похожий проект?

Расскажите о задаче — покажем близкие по смыслу работы и предложим решение со сроками и бюджетом.

Обсудить проект

Похожие проекты

Отладка и исправление кастомизированных компонентов сайта для php8
Восстановление работы сайта brutalshop.ru после обновления до php 8.2
Обновление php с 5.6 до 8.2 и применение шаблона Аспро Некст для fstfoto.ru