我从来没有真正玩过类,但我希望在我正在处理的页面上使用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的方法,但都不起作用。
我假设我只是装入了一个错误的类,想知道是否有人能给我指路!
发布于 2011-08-11 22:32:49
尝试使用__autoload加载类,而不是手动加载类。这样,您就不需要担心保留包含列表。Autoloader将为您完成此操作。如果类文件的名称与类本身的名称相同,应该会很容易。
请参阅http://php.net/manual/en/function.spl-autoload-register.php和http://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');发布于 2011-08-11 23:24:41
我设法把一些代码放在一起,把主文件夹文件包含进来。
$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);
}}https://stackoverflow.com/questions/7027375
复制相似问题