2015-11-22 80 views
3

我有一個有趣的問題。我的網站加載罰款的前端,但是當我嘗試導航到:無法重新聲明班級Magento

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文件重新聲明,一個個類..只有在我評論完所有內容並刷新管理頁面時才發現,它不會給出任何錯誤。只是一個白頁。

任何想法?

回答

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