我有一个有趣的问题。我的网站的前端加载正常,但是当我尝试导航到:
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文件中重新声明的每个类,一个接一个..只是在我发表评论时才发现他们全部出来并刷新了管理页面,它没有任何错误。只是一个白页。
有什么想法吗?
答案 0 :(得分:4)
以下是一些调试技巧,您可以尝试找出问题的原因。
此代码段将显示先前定义的给定类的位置:
$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
。