php 自动加载未正确加载?

php autoload not loading correctly?

使用 php-ews 我尝试通过示例创建一个日历事件(只是为了掌握它):

require $server_path.'scripts/ews/vendor/autoload.php';
use garethp\ews\API;
use garethp\ews\API\Enumeration;
use garethp\ews\API\Type;

$ews = API::withUsernameAndPassword($exchange_host, $_SESSION["user_data"]["u_email"], $_SESSION["user_data"]["u_pwd"]);

似乎没有错误。

// Start building the request.
$calendar = $ews->getCalendar();

$start = new DateTime('8:00 AM');
$end = new DateTime('9:00 AM');

$request = array(
    'Items' => array(
        'CalendarItem' => array(
            'Start' => $start->format('c'),
            'End' => $end->format('c'),
            'Body' => array(
                'BodyType' => Enumeration\BodyTypeType::HTML,
                '_value' => 'This is <b>the</b> body'
            ),
            'ItemClass' => Enumeration\ItemClassType::APPOINTMENT,
            'Sensitivity' => Enumeration\SensitivityChoicesType::NORMAL,
            'Categories' => array('Testing', 'php-ews'),
            'Importance' => Enumeration\ImportanceChoicesType::NORMAL
        )
    ),
    'SendMeetingInvitations' => Enumeration\CalendarItemCreateOrDeleteOperationType::SEND_TO_NONE
);

$request = Type::buildFromArray($request);
$response = $ews->CreateItem($request);

我得到:

PHP 致命错误:调用未定义的方法 garethp\ews\API::CreateItem() in

在执行部分($ews->CreateItem())

请看一下我的 examples/, they cover exactly this. The firs thing to note is that creating Calendar events is incredibly simplified,所以您的长请求并不完全需要。也就是说,如果你想直接访问函数,你不能这样做

$response = $ews->CreateItem($request);

你需要做

$response = $ews->getClient()->CreateItem($request);

可以找到有关手动构建请求的更多信息here