Переводим сайты на Битриксе на php 8.1

Знаем проблемы и ошибки, перевод по процедуре и с гарантией успеха
Перевод сайта на новую версию php рекомендован вендором

Поддержка 1С-Битрикс и коробочной версии Битрикс24 на php версии ниже 8.0 ограничена с 1 февраля.
С 1 мая 2023 установить обновление продукта не получится без перехода на php 8.0 или 8.1.

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

Порядок действий при переходе на php 8.1

1
Аудит вашего сайта
Смотрим какие модули установлены на вашем сайте, есть ли у них обновления для php 8.x, проводим аудит ресурса.
2
Создание копии, обновление Битрикса, обновление php
Создаем тестовую копию вашего сайта, обновляем сначала Битрикс до финальной версии, после обновляем php.
3
Тестирование и исправление ошибок
Проводим тестирование сайта по чек-листу, тестируем доработки, готовим исправления. Повторно тестируем после исправления ошибок. Фиксируем состав нужных исправлений.
4
Перевод продуктивной версии
Передаём вам бэкап Битрикса или делаем релиз через систему контроля версий. Далее тестируем изменения и обновляем версию php на продуктивном сервере.

Повторно тестируем по чек-листу.
Этот порядок действий отработан нами на реальных кейсах перевода сайта на новую версию php.

Типичные ошибки при переходе на новую версию php

Вызов нестатических методов статическим способом
Выше показано, как ошибку подсвечивает phpstorm

Неверное объявление обработчиков событий (объявлены динамически, а вызываются статически)

Технически тоже самое, что и пункт выше метод обработчика событий вызывается статически, при этом сам обработчик статически не объявлен. Решается аналогично предыдущему пункту
Передача аргументов неверного типа (in_array() а вместо массива оказался null, в count() попал null)

Начиная с php 8.0 если в in_array() или count() попадёт вместо массива попадёт null это приведёт к ошибки скрипта. В случае с in_array() решается написанием проверки is_array(). В случае с count() можно использовать empty().
Неверные типы данных при операциях в ядре Битрикса

Начиная с php 8.0 если в in_array() или count() попадёт вместо массива попадёт null это приведёт к ошибки скрипта. В случае с in_array() решается написанием проверки is_array(). В случае с count() можно использовать empty().
Использование устаревших функций (each(), который был удалён)

Начиная с версии php 8.0 была удалена функция each() (тут скрин ошибки не найду, воспроизводилось только на бою у клиента). PHPStorm предупреждает, что функция устарела ещё с версии php 7.2 и была удалена в php 8.0
Использование устаревшего синтаксиса

Иногда встречается старый синтаксис php, который был объявлен как устаревший в php 7.4 и удалён в новой версии. К примеру, использование фигурных скобок для обращения к элементам массива приводит к такой ошибке.
Прекращение поддержки обратного порядка аргументов функции implode()

Встречается редко, но с php 8.0 implode() больше не поддерживает обратный порядок аргументов, что приводит к ошибке скрипта. Решение — передать аргументы функции в правильном порядке.

Почему переход лучше доверить ИНТЕРВОЛГЕ

  • Наши разработчики сертифицированы вендором 1С-Битрикс;
  • Мы умеем сложные доработки и разбираемся в чужом коде;
  • Сделали отработанную процедуру — не экспериментируем на вашем проекте;
  • Имеем все существующие компетенции по 1С-Битрикс и Битрикс24, это подтверждено вендором;
  • Входим в топ 15 команд, отмеченных компетенцией Enterprise;
  • Нас рекомендуют клиенты и коллеги;
  • Больше десятка переводов сайтов на Битрикс на php 8.1 / 8.0 в живых проектах.

Сколько стоит перевод сайта Битрикс на php 8.1

Зависит от степени доработанности вашего сайта
52 500 руб.
Простые ресуры, например, корпоративный сайт или простейший интернет-магазин
Связаться с экспертом
87 500 руб.
Сайты на Битрикс со сложными доработками логики (например, развитые интернет-магазины)
Связаться с экспертом
140 000 руб.
Сложные ресурсы (b2b личные кабинеты, маркетплейсы, сайты с большим количеством интеграций)
Связаться с экспертом
Остались вопросы? Свяжитесь с экспертом
Нажимая кнопку «Отправить», я даю свое согласие на обработку моих персональных данных, в соответствии с Федеральным законом от 27.07.2006 года №152-ФЗ «О персональных данных», на условиях и для целей, определенных в Согласии на обработку персональных данных
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем