2013-09-22 42 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,但仍然没有收到任何错误。 当我添加一个接口时,问题开始了...... –