用于加载类的自动加载器将无法按预期工作

时间:2012-08-01 13:15:25

标签: php autoloader

最近我开始使用OOP,我创建了一个classLoader来加载我使用的类..所以我创建了这个类并使用它(本地),一切都很顺利。但是当我将所有内容上传到我的虚拟主机时它就停止了工作当我访问加载器需要加载类的页面时,我收到以下错误。

Fatal error: Uncaught exception 'Exception' with message 'Class "formhandler" could not be autoloaded from:
    /var/www/vhosts/***.nl/httpdocs/admin/lib/formhandler.php' in 
    /var/www/vhosts/***.nl/httpdocs/admin/index.php:30 Stack trace:
        #0 /var/www/vhosts/***.nl/httpdocs/admin/index.php(109): __autoload('formhandler')
        #1 {main} thrown in /var/www/vhosts/***.nl/httpdocs/admin/index.php on line 30

自动加载器的代码如下:

function __autoload($className) 
      {
        // get the base dir.
          $base = dirname(__FILE__);

          // get path
          $path = $className;


          $file = $base . "/lib/" . $path . '.php';       


          //if exists get file else throw error
          if (file_exists($file)) 
          {
              require $file;      
          }
          else 
          {
              error_log('Class "' . $className . '" could not be autoloaded');
              throw new Exception('Class "' . $className . '" could not be autoloaded from: ' . $file); 
          }
      }

2 个答案:

答案 0 :(得分:0)

比较formhandler类的生产路径。我保证它与/var/www/vhosts/.nl/httpdocs/admin/lib/formhandler.php之间会有所不同。纠正它。

答案 1 :(得分:0)

我找到了解决方案。我有新的formhandler();但我必须使用新的FormHandler();在我的脚本中,因为我的虚拟主机没有找到它......非常讨厌,但它现在有效!