2013-09-22 74 views
0

我有一個問題,我有以下接口(http://pastebin.com/c11xbdxh) ,我有以下類實現上述接口(http://pastebin.com/m1zGNfSm)。實現接口和自動加載類

function autoloadClass($className) 
{ 
     $classParts = explode("\\", $className); 
     $fileName = SYSTEM_CORE_PATH . DIRECTORY_SEPARATOR . "classes" . DIRECTORY_SEPARATOR . strtolower(str_replace('_', DIRECTORY_SEPARATOR, end($classParts)) . '.class.php'); 

     if (is_readable($fileName)) { 
      if (SYSTEM_DEBUG) { 
       include_once($fileName); 
      } else { 
       @include_once($fileName); 
      } 
     } 
} 
spl_autoload_register("autoloadClass"); 

,當我創建一個新的對象類(自動加載代碼下)我沒有得到任何錯誤沒有任何輸出:

以動態加載的類我使用下面的自動加載功能...

try { 
$db = new Core\Infrastructure\MySQL(array('user' => DB_USER, 'pass' => DB_PASS, 'host' => DB_HOST, 'name' => DB_NAME)); 
} catch (PDOException $pdoE) { 
    echo $pdoE->getMessage(); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

echo "<pre>ddd"; 
$db->runQuery("SELECT * FROM `users`;"); 
print_r($db->fetchData()); 

謝謝您的幫助:)

+0

您正在試圖評估不變爲真,這可能被設置爲任何其他值,可以被定義()是更好的辦法,因爲現在,你最有可能正在進入拒絕錯誤的第二種情況 –

+0

我使用了一個後備代碼,如果以前沒有定義,它將其定義爲false。 –

回答

0

好吧,我已經修復它,自動加載只從文件加載類,它不會加載界面。

我簡單地添加了一個基於class_implements函數的短代碼給我寫的自動加載函數。

感謝所有的幫助:d

1

「沒有得到任何錯誤沒有任何輸出」通常是指由error_reportin吃了致命的或解析錯誤g設置。檢查日誌。確保error_reporting(E_ALL)已設置,最好在ini文件中。

$fileName不可讀時,添加調試輸出。這可能會提供一個洞察力。

+0

我已啓用error_reporting,但仍然沒有收到任何錯誤。 當我添加一個接口時,問題開始了...... –