Форум OlegON > Ресурсы OlegON > Вопросы сервера

Как перевести Vbulletin 3 на PHP8 : Вопросы сервера

28.11.2021 1:50


22.11.2021 20:23
OlegON
 
Адово количество работы привалило из-за причуд работы разработчиков PHP. К сожалению, не записывал заранее, что приходилось править.

С самого начала пришлось поправить несколько php файлов на предмет записи some[index], переписав в some['index'], ругалось
PHP message: PHP Fatal error: Uncaught Error: Undefined constant
Крайне не рекомендую сразу переходить на PHP8, лучше поднять копию форума на виртуалке, после чего править сначала на виртуалке, потом на основной ноде и потом переливать все на виртуалку опять. Сильно споткнулся на том, что многие такие записи были в модулях и темплейтах. В темплейтах надо выискивать condition, то есть условия, где есть записи вида some[index]. Везде править индексы не надо! С продуктами такая же засада, а поскольку править их сподручно только через веб-морду, то лучше на старом форуме все поправить, до перехода на PHP8.

Не очень понял причину, но в админке index.php строки с Data_length и Index_length, где менялись -1 на n/a, на этот n/a и стали менять, в результате чего падала процедура форматирования числа. Выкинул. Гораздо проще смотреть на -1.

В PHP8 объявлен XMLParser, соответственно, из class_xml его лучше выкинуть. Я сначала долго думал, как его перенаследовать, чтобы не ругалось, потом просто выкинул и оно работает. Более, чем странно :)

Потом очень много аналогичного пришлось поправить после ругани
PHP message: PHP Fatal error: Uncaught Error: Non-static method vBulletinHook::fetch_hook() cannot be called statically in
везде
Код:
$hook = vBulletinHook::fetch_hook
надо поменять на
Код:
$hook=(new vBulletinHook())->fetch_hook
просто жесть, я не рискнул глобально все поменять, потому вручную (заменой, конечно) поменял в нескольких десятках мест...
22.11.2021 22:03
OlegON
 
в index.php админки в самом начале есть строки проверки версии
Код:
if ($mysqlversion['version'] >= '3.23')
их надо убрать, если хотите видеть реальный размер таблиц вместо -1

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.