💥 PHP 8 и кастомизации Битрикс24: почему старый код внезапно перестаёт работать
Многие коробочные проекты годами спокойно работали на PHP 7.4. А потом происходит обновление на PHP 8 и портал начинает падать с TypeError в самых неожиданных местах.
В статье на Хабре разобрали самые частые причины таких поломок.
Что встречается чаще всего:
🔹 array_search(), count(), in_array() и другие array-функции
В PHP 7 многие ошибки были предупреждениями.
В PHP 8 – это уже фатальные ошибки.
Если вместо массива приходит null, страница может просто перестать работать.
🔹 Старые библиотеки и модули
PHP 8 требует строгого соответствия сигнатур.
Метод без типов аргументов или return type, который раньше работал годами, теперь может остановить весь процесс.
🔹 Нестатические методы
Классическая история из легаси-кода:
ClassName::method()
Если метод не объявлен как static, PHP 8 больше не будет закрывать на это глаза.
🔹 Работа с данными "на доверии"
Раньше многие кастомизации строились по принципу:
«тут точно придёт массив»
После обновления такие предположения становятся источником большинства TypeError.
📌 Практический совет
Один необработанный null способен положить страницу, AJAX и фоновые процессы одновременно.
Именно поэтому проверка совместимости с PHP 8 должна быть обязательной частью любого обновления коробочного Битрикс24.
#Битрикс24 #PHP8 #Разработка #Кастомизация #CRM
Многие коробочные проекты годами спокойно работали на PHP 7.4. А потом происходит обновление на PHP 8 и портал начинает падать с TypeError в самых неожиданных местах.
В статье на Хабре разобрали самые частые причины таких поломок.
Что встречается чаще всего:
🔹 array_search(), count(), in_array() и другие array-функции
В PHP 7 многие ошибки были предупреждениями.
В PHP 8 – это уже фатальные ошибки.
Если вместо массива приходит null, страница может просто перестать работать.
🔹 Старые библиотеки и модули
PHP 8 требует строгого соответствия сигнатур.
Метод без типов аргументов или return type, который раньше работал годами, теперь может остановить весь процесс.
🔹 Нестатические методы
Классическая история из легаси-кода:
ClassName::method()
Если метод не объявлен как static, PHP 8 больше не будет закрывать на это глаза.
🔹 Работа с данными "на доверии"
Раньше многие кастомизации строились по принципу:
«тут точно придёт массив»
После обновления такие предположения становятся источником большинства TypeError.
📌 Практический совет
Если поддерживаете приложения или кастомизации для клиентов:
— проверяйте все array-функции на работу с null
— используйте is_array() и ?? []
— проверяйте сигнатуры при наследовании
— включайте подробное логирование перед миграцией
Один необработанный null способен положить страницу, AJAX и фоновые процессы одновременно.
Именно поэтому проверка совместимости с PHP 8 должна быть обязательной частью любого обновления коробочного Битрикс24.
#Битрикс24 #PHP8 #Разработка #Кастомизация #CRM