Найти тему

И снова об обновлениях. Переход проекта с php7.2 на php8.0

Здравствуйте, друзья!

Недавно взял очередной проект на обслуживание. Для каждого проекта в начале работы я провожу некую стандартную проверку, в которую в том числе входит проверка актуальности версий установленных модулей, и соответствие версии php рекомендациям производителя.

Было бы понятно, если бы этот проект работал на php7.4, так как есть определенные трудности при переходе на php8 у проектов с кучей модулей из маркета или кучей своих доработок. Но тут была версия 7.2, и проект не обновлялся года два минимум, при активной лицензии.

То есть лицензию покупали, но почему-то специалист, который поддерживал проект до меня, ничего не обновлял.

Важно не только покупать лицензию, но и пользоваться ее благами, не забывать ставить обновления.

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

  • в начале обновлений,
  • далее установка всех обновлений системных модулей версии php7.2,
  • создание резервной копии,
  • установка обновлений модулей маркетплейса,
  • переход на версию php7.4,
  • создание резервной копии.
  • ... ну и так далее до версии php8.0.

Из интересного.

В одном из модулей пришлось править CGroup::GetList;

В какой-то момент в каталоге потерялись цены. Где-то вычитал, что в компонентах каталога нужно включить режим совместимости - добавить в массив параметров компонента "COMPATIBLE_MODE" => "Y",.

Для комплексного компонента catalog править нужно файлы element.php (вызов компонента bitrix:catalog.element) и section.php (вызов компонента 'bitrix:catalog.section) шаблона.

Также был перевод агентов на cron.

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

Если кто знает, как обойти проблемы хостинга nic.ru, пишите.