С 01.02.2023 будет ограничена поддержка 1C-Битрикс на PHP версии ниже 8.0. Как теперь обновиться?
Именно такую неприятную надпись начиная с января 2023 года видят все владельцев сайтов на 1С-Битрикс.
На самом деле можно долго размышлять над целесообразностью такого резкого переезда на новую версию PHP и оправданностью такого решения вендора. Скорее всего, это связано с единым ядром с Б24, и чтобы не поддерживать "устаревшее" в битриксе решили провести унификацию (о чем, в принципе, на закрытой встрече с ведущими партнерами нам говорили). Тем не менее, выяснение причины не даст нам нужный результат: сайт же должен работать и выполнять свои функции. Но все равно, свежи воспоминания резкого переезда на PHP 7, которые сопровождались огромными проблемами.
Как же осуществить переезд на php8?
Несмотря на то, что версия PHP 8 отличается от седьмой несколько меньше, чем седьмая от пятой, без поддержки технического специалиста даже не пытайтесь осуществлять переезд Битрикса. Очень велика вероятность фатальных ошибок. По нашей практике практически все проекты на Битриксе нуждаются в тех или иных доработках после переезда, функционал ломается, обмены данными и интеграции в ряде случаев перестают работать.
Немного технической инфы для ваших разработчиков
PHP 8 стал более строгим к типизации данных. Мы в процессе переноса сталкивались с ошибками статических методов в классах, с обновленной функцией count(), в которой появились строгие требования к входным параметрам. Поэтому очень важна правильная последовательность при поднятии версии пхп до восьмой.
- Обязательно сделайте бэкап текущего сайта (можно без папки upload)
- Разверните бэкап на чистой виртуальной машине с аналогичными характеристиками основного сервера
- Обновите только ядро Битрикса. В этот момент у вас могут появиться ошибки MySql, если вы и mySql обновили до восьмой версии. В этом случае их нужно устранить (инфа есть на форуме Битрикса)
- Только сейчас поднимите версию php до 8.
- Зайдите в админку, она должна работать, если не возникли конфликты со сторонними модулями. Если они возникли, то придется устранять :(
- Когда админка заработает, запустите проверку системы. Не должно быть ошибок
- Теперь переходите на публичную версию вашей копии сайта и прокликайте несколько страниц. Может быть, в целом работать будет, но это еще не повод радоваться.
- Проверьте весь функционал, включая интеграции и отправку данных на почту, работу агентов и крона (это самая трудоемкая операция из всех).
- Скорее всего, вы обнаружите ошибки, тогда их придется устранять одну за одной.
- Если позволяет логика проекта, то обновите модули (строго один за одним с тестированием их функций и рекурсивной проверкой на измененные функции).
- выкачайте себе папку local и все сторонние модули и компоненты
- массово поищите в листингах php файлов вхождение функции count() и других (список будем пополнять по мере их нахождения)
- если в списке установленных модулей появились пустые строки, то в файле install/index.php нужно функцию module_name() заменить на __construct()
- сделайте локальное переопределение этих функций, например php7_count, в которых уже учтите требования к изменившимся входным данным
- рекурсивно замените все вызовы стандартных php функций на ваши
Сколько стоит переезд Битрикса на PHP8?
Если вы внимательно прочитали всё, что написано выше, но ничего не поняли. Или, может быть, у вас нет сертифицированного разработчика, который может это выполнить? Обращайтесь к нам в БрейнФорс, мы выполним эту операцию. Давайте откровенно: мы не знаем сложность вашего проекта, поэтому и стоимость фиксированную поставить не можем (очень велик риск появления весьма странных ошибок).
На данном этапе мы можем оперировать только средними статистическими данными по трудоемкости переноса Битрикса на ПХП8. В среднем по нашему опыту переезд занимает от 10 до 25 нормочасов разработчика. Безусловно, с увеличением количества перенесенных проектов эти цифры будут варьироваться.
Обращайтесь, мы действительно поможем!
