开发者

Fatal error while loading class EWSType_FindItemType (php-ews)

I've never really had to play with classes but am looking to use php-ews on a page i'm working on a开发者_开发百科tm.

my main file is calling the 5 "root" php files via include

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");

however these are complaining that files in there subfolders aren't included, in this case.

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

I have tried including the above file in the EWSType.php file and it then complains the next file isn't included. I have tried methods to include any .php in the folder and that isn't working.

I'm presuming I'm just going about loading a class wrong and was wondering if anyone could show me the way!


Instead of loading classes manually, try __autoloading them. That way you don't need to worry about keeping the list of includes. Autoloader will do it for you. Should be easy enough, if class files are called the same as as classes themselves.

See http://php.net/manual/en/function.spl-autoload-register.php and http://de3.php.net/manual/en/language.oop5.autoload.php for details

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');


managed to put together a little bit of code to get the main folder files included.

$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);
}}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜