我从来没有真正玩过课程,但我希望在我正在处理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的方法,但是无效。
我认为我只是想加载一个错误的课程,并且想知道是否有人可以指示我的方式!
答案 0 :(得分:1)
不要手动加载类,而是尝试__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');
答案 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);
}}