← К заметкам

Заметки

Как разбирать Call to undefined method после обновления PHP/Битрикса

Call to undefined method означает, что у фактически загруженного класса нет вызванного метода. Это отличается от ошибки статического вызова существующего нестатического метода в PHP 8.

В коробке можно проверить, откуда загружен класс:

$class_name = \Bitrix\Main\Loader::class;
$reflection = new ReflectionClass($class_name);
echo $reflection->getFileName();

Замените класс на тот, который указан в ошибке. Затем сравните файл и наличие метода с версией модуля, на которую рассчитан ваш код.

После частичного обновления могут не совпасть файлы разных модулей; после переноса — подхватываться локальная копия класса. Также проверьте регистр имени файла в автозагрузке и состояние OPcache после корректного обновления.

Добавление new не исправит действительно отсутствующий метод. Для ошибки нестатического вызова есть отдельный разбор.