PHP 自动加载无法正确加载



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

require $server_path.'scripts/ews/vendor/autoload.php';
use garethpewsAPI;
use garethpewsAPIEnumeration;
use garethpewsAPIType;
$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' => EnumerationBodyTypeType::HTML,
                '_value' => 'This is <b>the</b> body'
            ),
            'ItemClass' => EnumerationItemClassType::APPOINTMENT,
            'Sensitivity' => EnumerationSensitivityChoicesType::NORMAL,
            'Categories' => array('Testing', 'php-ews'),
            'Importance' => EnumerationImportanceChoicesType::NORMAL
        )
    ),
    'SendMeetingInvitations' => EnumerationCalendarItemCreateOrDeleteOperationType::SEND_TO_NONE
);
$request = Type::buildFromArray($request);
$response = $ews->CreateItem($request);

我得到:

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

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

请看一下我的examples/,它们正好涵盖了这一点。首先要注意的是,创建日历事件非常简单,因此并不完全需要您的长请求。话虽如此,如果您想直接访问这些功能,则无法做到

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

你需要做

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

可在此处找到有关手动生成请求的详细信息。

最新更新