php - 实现接口(interface)和自动加载类

标签 php mysql interface pdo autoload

我有一个问题,我有以下界面( http://pastebin.com/c11xbdxh ) 我有以下类实现了上面的接口(interface)( 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());

感谢您的帮助:)

最佳答案

“不要收到任何错误,也没有任何输出”通常意味着 error_reporting 设置导致致命或解析错误。检查日志。确保设置了 error_reporting(E_ALL),最好在 ini 文件中设置。

$fileName不可读时添加调试输出。这可能会提供见解。

关于php - 实现接口(interface)和自动加载类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18944711/

相关文章:

php - Gmail、Yahoo、Facebook、Twitter 在 PHP 中联系进口商

java - 相当于 java getBytes() 的 php

mysql - 在 SQL 中获取带有 COUNT 的行的名称

mysql - Symfony 中应该使用抽象关系还是使用普通的 ORM 关系?

java - 如何调用列表中某些对象实现的特定接口(interface)? java

delphi - 访问冲突释放库,返回 dll 中类的接口(interface)

PHP MySQL 事务

php - Web服务API设计中哪种schema更好

c++ - 界面与组合

php - 如何根据复选框输入回显多行数据?