我有一个问题,我有以下界面(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 :(得分:1)
“任何输出都不会出现任何错误”通常表示error_reporting设置所导致的致命或分析错误。检查日志。确保设置error_reporting(E_ALL)
,最好是在ini文件中。
在$fileName
无法读取时添加调试输出。这可能会提供一个见解。
答案 1 :(得分:0)
好的我已修复它,自动加载只从文件中加载类,它不会加载接口。
我只是简单地将基于class_implements
函数的短代码添加到我写的自动加载函数中。
感谢您的所有帮助:D