Invision Power Board — Класс уже объявлен в PHP и IP. Содержание?

Я включаю файл с классом GroupManager, который eval’d с IP.content. Я получил ошибку, что класс уже определен. Если я не включаю, я не получаю ошибок. Если я переименую класс, я не получу ошибок (однако я уверен, что этот класс не существует где-либо еще). Я попробовал следующее в случае нескольких включений (я лично использовал include_once …):

if( !class_exists('GroupManager') ) {
class GroupManager {
}
}

Я все еще получаю ошибку:

 Cannot redeclare class GroupManager in ... GroupManager.php on line 37

Очевидно, что в моем 4-строчном файле нет строки 37.

Если я удаляю объявление класса и заменяю его эхом, я не получаю никакой ошибки, и это нормально, а значит, класс не существует в этой точке.

if( !class_exists('GroupManager') ) {
echo "Class does not exist???";
}

Я не уверен, как даже отладить это.

0

Решение

Я обнаружил проблему, и я должен был ее поймать намного раньше … Другой администратор включил этот файл в ловушку. Хук, очевидно, запускается на каждой странице, хотя каждая страница не требует хука … Таким образом, я не думал проверять хуки.

Если у кого-то есть странные проблемы с включением в IPB, убедитесь, что вы используете grep для include / require. Это избавит вас от многих хлопот.

Что-то вроде этого должно дать вам представление о том, куда включается файл:

grep -r include_name.php .

Это будет проверять все файлы рекурсивно из текущего каталога.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]