У меня есть интересная проблема. Внешний интерфейс моего сайта загружается нормально, однако, когда я пытаюсь перейти к:
domain.com/index.php/admin
Я получил белую страницу. Я включил режим отладки, и он отображает эту ошибку:
Array ( [type] => 64 [message] => Cannot redeclare class Mage_Admin_Model_Session [file] => /var/www/vhosts/domain.co.uk/sub-domain.co.uk/includes/src/__adminhtml.php [line] => 504 )
После обнаружения этой новой ошибки я попытался закомментировать / удалить все классы, которые он не может переопределить, в файле __adminhtml.php, один за другим. Только для того, чтобы найти это к тому времени, когда я закомментировал их все и обновил администратора страница, это не дает никакой ошибки вообще. Просто белая страница.
Есть идеи?
Вот несколько советов по устранению неполадок, которые вы можете попытаться найти, как найти причину проблемы.
Этот фрагмент покажет вам, где данный класс был определен ранее:
$className = 'Foo';
if ( class_exists( $className ) ) {
$rc = new ReflectionClass($className);
print __FILE__.':'.__LINE__. ": Class $className already defined in ". $rc->getFileName() . ":" . $rc->getStartLine();
}
Вы можете сделать то же самое для функций; просто используйте function_exists
а также ReflectionFunction
вместо.
Похоже, где-то файл включен / требуется дважды.
Если это __adminhtml.php
файл, который включается один раз слишком часто, вы можете добавить вызов debug_print_backtrace()
чтобы увидеть, откуда это включается.
Кроме того, если у вас есть настроенные файлы, вы можете использовать require_once
вместо require
,
Других решений пока нет …