加载类EWSType_FindItemType(php-ews)时出现致命错误

时间:2011-08-11 14:09:40

标签: php class class-design exchangewebservices

我从来没有真正玩过课程,但我希望在我正在处理atm的页面上使用php-ews

我的主文件是通过include

调用5“root”php文件
include ("php-ews/ExchangeWebServices.php");
include ("php-ews/EWS_Exception.php");
include ("php-ews/EWSType.php");
include ("php-ews/NTLMSoapClient.php");
include ("php-ews/NTLMStream.php");

然而,这些人抱怨说,子文件夹中的文件不包括在内,在这种情况下。

Fatal error: Class 'EWSType_FindItemType' not found in C:\wamp\www\intranet\dashboard\mailtest.php on line 19

我已尝试在EWSType.php文件中包含上述文件,然后它会抱怨未包含下一个文件。我已经尝试了在文件夹中包含任何.php的方法,但是无效。

我认为我只是想加载一个错误的课程,并且想知道是否有人可以指示我的方式!

2 个答案:

答案 0 :(得分:1)

不要手动加载类,而是尝试__autoload它们。这样你就不必担心保留包含列表了。 Autoloader会为您完成。 如果类文件的调用与类本身相同,那么应该很容易。

参见http://php.net/manual/en/function.spl-autoload-register.phphttp://de3.php.net/manual/en/language.oop5.autoload.php了解详情

function ews_autoloader($className) {
  if($className != 'EWS_Exception') {
    $classPath = str_replace('_','/',$className);
  }
  if(file_exists("php-ews/{$classPath}.php") {
    include("php-ews/{$classPath}.php");
  }
}

spl_autoload_register('ews_autoloader');

答案 1 :(得分:0)

设法将一些代码放在一起以包含主文件夹文件。

$dir    = '/wamp/www/intranet/dashboard/php-ews/EWSType/';
$files1 = scandir($dir);
foreach ($files1 as $value) {
if(preg_match('/\.php$/i', $value)){
$inc = "php-ews/EWSType/";
$inc .= $value;
include ($inc);
}}