不能重新宣布Magento班

时间:2015-11-22 14:51:33

标签: php magento redeclare

我有一个有趣的问题。我的网站的前端加载正常,但是当我尝试导航到:

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文件中重新声明的每个类,一个接一个..只是在我发表评论时才发现他们全部出来并刷新了管理页面,它没有任何错误。只是一个白页。

有什么想法吗?

1 个答案:

答案 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_existsReflectionFunction代替。

看起来某个地方包含/需要两次文件。 如果它是经常包含的__adminhtml.php文件,您可以添加对debug_print_backtrace()的调用,以查看其中包含的内容。

此外,如果您有自定义文件,则可以使用require_once代替require