object has no 'Periods' property
I upgrade to current version v0.10.2. Now I got this follow Error:
PHP Fatal error: Uncaught SoapFault: SOAP-ERROR: Encoding: object has no 'Periods' property in C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\NTLMSoapClient.php:120 Stack trace: #0 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\NTLMSoapClient.php(120): SoapClient->__call('GetFolder', Array) #1 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices\MiddlewareFactory.php(18): garethp\ews\API\NTLMSoapClient->__call('GetFolder', Array) #2 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(516): garethp\ews\API\ExchangeWebServices->garethp\ews\API\ExchangeWebServices{closure}(Object(garethp\ews\API\MiddlewareRequest), Object(Closure)) #3 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices\MiddlewareFactory.php(32): garethp\ews\API\ExchangeWebServices->garethp\ews\API{closure}(Object(garethp\ews\API\MiddlewareRequest)) #4 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(516): garethp\ews\API\ExchangeWebServices->garethp\ews\API\ExchangeWebServices{closure}(Object(garethp\ews\API\MiddlewareRequest), Object(Closure)) #5 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices\MiddlewareFactory.php(48): garethp\ews\API\ExchangeWebServices->garethp\ews\API{closure}(Object(garethp\ews\API\MiddlewareRequest)) #6 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(516): garethp\ews\API\ExchangeWebServices->garethp\ews\API\ExchangeWebServices{closure}(Object(garethp\ews\API\MiddlewareRequest), Object(Closure)) #7 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices\MiddlewareFactory.php(55): garethp\ews\API\ExchangeWebServices->garethp\ews\API{closure}(Object(garethp\ews\API\MiddlewareRequest)) #8 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(516): garethp\ews\API\ExchangeWebServices->garethp\ews\API\ExchangeWebServices{closure}(Object(garethp\ews\API\MiddlewareRequest), Object(Closure)) #9 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices\MiddlewareFactory.php(66): garethp\ews\API\ExchangeWebServices->garethp\ews\API{closure}(Object(garethp\ews\API\MiddlewareRequest)) #10 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(516): garethp\ews\API\ExchangeWebServices->garethp\ews\API\ExchangeWebServices{closure}(Object(garethp\ews\API\MiddlewareRequest), Object(Closure)) #11 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(526): garethp\ews\API\ExchangeWebServices->garethp\ews\API{closure}(Object(garethp\ews\API\MiddlewareRequest)) #12 C:\Users\fglueck\git\cockpit\inc\vendor\garethp\php-ews\src\API\ExchangeWebServices.php(317): garethp\ews\API\ExchangeWebServices->executeMiddlewareStack(Array, Object(garethp\ews\API\MiddlewareRequest)) #13 C:\Users\fglueck\git\cockpit\report\office\off_ews.php(289): garethp\ews\API\ExchangeWebServices->__call('GetFolder', Array) #14 C:\Users\fglueck\git\cockpit\report\office\off_ews.php(297): off_ews->getFolder(Array) #15 C:\Users\fglueck\git\cockpit\report\office\off_ews.php(1250): off_ews->getFolderByFolderId('AAMkADY1MDIzMDc...', 'fglueck@..') #16 C:\Users\fglueck\git\cockpit\report\office\off_ews.php(1352): off_ews->sync_user(Array) #17 C:\Users\fglueck\git\cockpit\report\office\off_ews.php(1485): off_ews->syncAll() #18 C:\Users\fglueck\git\cockpit\report\batch\batch_ews.php(39): off_ews::sync('fglueck') #19 Command line code(1): batch_ews->batch() #20 {main}
I set options to by ini file: version = Exchange2013_SP1 MailboxCulture = "de-DE" timezone = "W. Europe Standard Time"
I try it also with Exchange2013, Exchange2010, ... it dosn't makes no difference.
$api = API::withCallbackToken('outlook.office365.com', $token, $conf['options']);
Here are my methods, that create the parameters: public function getFolderByFolderId(string $folderId, string $mailbox) { return $this->getFolder([ 'FolderId' => ['Id' => $folderId, 'Mailbox' => $mailbox] ]); } public function getFolder(array $identifier) : Type\BaseFolderType { $request = [ 'FolderShape' => [ 'BaseShape' => [ '_' => 'AllProperties' ] # AllProperties|Default ] , 'FolderIds' => $identifier ]; $request = Type::buildFromArray($request); return $this->api()->getClient()->GetFolder($request); }
When I downgrade to 0.10.1 it works fine. So I can exclude sideeffects with guzzle upgrade.
I have same issue SoapFault exception: [Client] SOAP-ERROR: Encoding: object has no 'Periods' property in vendor/garethp/php-ews/src/API/NTLMSoapClient.php:120
@kambereBr Can you please a look at this one? Thanks!
Can you please a look at this one? Thanks!
Of course, I’ll take a look. Thanks!
This should be fixed in master, and I'll release a version for it soon