dongmei2957 2011-08-11 14:09
浏览 50
已采纳

加载类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 atm.

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!

  • 写回答

2条回答 默认 最新

  • douren1891 2011-08-11 14:32
    关注

    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');
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器