Вот скрин это и в пу и на самом форуме
Посмотреть вложение 26738
Как исправить
Вариант 1 (правильный и безопасный): понизить версию PHP
XenForo 2.x (особенно версии до 2.2.15) не полностью совместим с PHP 8.1/8.2 без патчей. Оптимально:
- Переключить PHP на версию 7.4 или 8.0 в панели хостинга (или в конфиге веб‑сервера).
- Перезагрузить веб‑сервер (Apache/Nginx + PHP‑FPM).
- Проверить работу форума.
Это самый быстрый способ убрать ошибки без правки ядра XenForo .
Вариант 2: обновить XenForo до последней версии
Если используется старая сборка XenForo, в новых версиях разработчики уже добавили необходимые атрибуты #[ReturnTypeWillChange] и исправили вызовы parent в сторонних компонентах.
- Проверьте наличие обновлений в админ‑панели XenForo.
- Выполните обновление через установщик.
- Очистите кэш (в админ‑панели и на стороне сервера).
Вариант 3 (временный, не рекомендуется для продакшена): правка кода
Если нельзя сменить версию PHP и нет возможности обновить XenForo, можно вручную добавить атрибут #[ReturnTypeWillChange] к методам, вызывающим предупреждения. Например, в src/XF/Session/Session.php:
php
#[\ReturnTypeWillChange]
public function offsetExists(\$offset)
{
// ...
}
Аналогично — для offsetGet, offsetSet, offsetUnset в XF\Mvc\Entity\Entity и других классах. Для ошибки с parent в EventableFilesystem.php нужно заменить устаревшие конструкции на parent::class либо переписать вызов без использования строки 'parent'