Клиентский сайт на 1C-Bitrix работал на устаревшей версии PHP. Нужно было перевести проект на PHP 8.5 — без простоя, без потери функциональности и без права на ошибку: сайт активно используется, любой сбой сразу бьёт по бизнесу заказчика.
С чем пришлось столкнуться
Стандартное ядро Bitrix к новой версии PHP было готово. Проблема оказалась в другом — в кастомных модулях, написанных предыдущим разработчиком специально под нужды проекта. Часть кода:
- использовала устаревшие конструкции языка, которые PHP 8.5 либо не поддерживает, либо помечает как deprecated с падением в фатальную ошибку;
- завязана была на нестрогую типизацию и «магическое» поведение старого PHP, от которого новая версия окончательно отказалась;
- не документирована и не покрыта тестами, поэтому просто «включить и посмотреть, что упадёт» было не вариант — нужно было разбираться в логике каждого модуля вручную.
По сути, самописная часть проекта оказалась единственным настоящим препятствием на пути к обновлению.
Как решал
- Аудит модулей. Прогнал проект в тестовом окружении на PHP 8.5, собрал полный список ошибок и предупреждений по каждому кастомному модулю.
- Разбор логики. По каждому проблемному месту восстановил замысел предыдущего разработчика — без документации это отдельная работа, требующая аккуратного чтения кода, а не просто патчинга до исчезновения ошибки.
- Точечное переписывание. Обновил синтаксис и типизацию под требования PHP 8.5, сохранив исходную бизнес-логику модулей один в один — заказчику не нужны были новые фичи, нужна была стабильность.
- Тестирование на стейджинге. Проверил ключевые сценарии: административную часть, пользовательские формы, интеграции — всё, что зависело от переписанных модулей.
- Выкатка на прод без даунтайма. Обновление и деплой сделал так, чтобы сайт ни на секунду не уходил в недоступность — критично, так как это боевой проект с реальными пользователями.
Результат
- Сайт полностью переведён на PHP 8.5.
- Все кастомные модули работают на новой версии без потери функциональности.
- Обновление прошло без прерывания работы сайта.
- Весь объём работ — от аудита до выкатки на прод — уложился в один рабочий день.
Почему это было непросто
Обновление версии PHP на «чистом» Bitrix — рутинная задача. Сложность в таких проектах почти всегда не в ядре CMS, а в самописном коде, оставшемся от предыдущих разработчиков: без документации, без тестов, с неочевидной логикой. Умение быстро разобраться в чужом коде, понять его назначение и безопасно адаптировать под новые требования — отдельный навык, который в моей практике на Bitrix-проектах нужен регулярно.

Комментарии
Пока нет комментариев. Будьте первым!