2013-03-15 46 views
1
 spl_autoload_register(function ($className) 
     { 
      if (file_exists($className . '.php')) 
      { 
       require_once($className . '.php'); 
      } 
      else 
      { 
       throw new Exception('Could not load class: ' . $className); 
      } 
     }); 

     //Load models and save them in variable instances 
     try 
     { 
      $this->database = new Database (
               $config['DB']['HOST_IP'], 
               $config['DB']['DATABASE_NAME'], 
               $config['DB']['USERNAME'], 
               $config['DB']['PASSWORD'] 
              ); 
      //Set the initial language for our template model. 
      Template::setLanguage(); 
     } 
     catch (Exception $e) 
     { 
      echo $e->getMessage(); 
     } 

脚本作品,如果我抹去file_exists,但file_exists返回false不管。file_exists()不无safe_mode设置正对

什么可能导致这种情况?

此外,我收到一条错误消息:Uncaught exception 'Exception' with message 'Could not load class: Template'。是因为模板类是静态的吗?

+0

'file_exists()'搜索实际的文件系统路径,但不是'include_path'。那么你是否传递了一个可以在文件系统上访问的路径,就像当前脚本的相对路径? – 2013-03-15 11:37:37

+0

如果是这样的话,有一些例子[关于'file_exists()'docs](http://us3.php.net/manual/en/function.file-exists.php)封装它来搜索'include_path' – 2013-03-15 11:39:54

回答

0

的问题上有两个扩展的错误信息我的PHP文件。 (例如index.php.php)不幸的是,windows环境没有配置,所以我努力寻找问题。

0

你的代码有2个错误。

  1. 而是有意义的,合理的系统错误消息的你ecoing只是无用的和广义的错误信息,不能帮你
  2. 您uare使用try-catch只是呼应的消息。这是致命的错误。

所以,只需删除代码中的所有try-catch块并再次运行它。
,从不使用try..catch,如果你不打算手柄错误

取而代之的是一套错误报告,以便能够看到

error_reporting(E_ALL); 
ini_set('display_errors',1); 
+0

开发环境中的错误报告已设置为相同。是不是require_once失败是值得的例外?如果您能展示正确的方式,我将不胜感激。 PS。你昨天收到我寄给你的电子邮件了吗? – 2013-03-15 11:48:27