sharees = $sharees; } /** * The deserialize method is called during xml parsing. * * This method is called statically, this is because in theory this method * may be used as a type of constructor, or factory method. * * Often you want to return an instance of the current class, but you are * free to return other data as well. * * You are responsible for advancing the reader to the next element. Not * doing anything will result in a never-ending loop. * * If you just want to skip parsing for this element altogether, you can * just call $reader->next(); * * $reader->parseInnerTree() will parse the entire sub-tree, and advance to * the next element. * * @return mixed */ public static function xmlDeserialize(Reader $reader) { $elems = $reader->parseGetElements([ '{'.Plugin::NS_CALENDARSERVER.'}set' => 'Sabre\\Xml\\Element\\KeyValue', '{'.Plugin::NS_CALENDARSERVER.'}remove' => 'Sabre\\Xml\\Element\\KeyValue', ]); $sharees = []; foreach ($elems as $elem) { switch ($elem['name']) { case '{'.Plugin::NS_CALENDARSERVER.'}set': $sharee = $elem['value']; $sumElem = '{'.Plugin::NS_CALENDARSERVER.'}summary'; $commonName = '{'.Plugin::NS_CALENDARSERVER.'}common-name'; $properties = []; if (isset($sharee[$commonName])) { $properties['{DAV:}displayname'] = $sharee[$commonName]; } $access = array_key_exists('{'.Plugin::NS_CALENDARSERVER.'}read-write', $sharee) ? \Sabre\DAV\Sharing\Plugin::ACCESS_READWRITE : \Sabre\DAV\Sharing\Plugin::ACCESS_READ; $sharees[] = new Sharee([ 'href' => $sharee['{DAV:}href'], 'properties' => $properties, 'access' => $access, 'comment' => isset($sharee[$sumElem]) ? $sharee[$sumElem] : null, ]); break; case '{'.Plugin::NS_CALENDARSERVER.'}remove': $sharees[] = new Sharee([ 'href' => $elem['value']['{DAV:}href'], 'access' => \Sabre\DAV\Sharing\Plugin::ACCESS_NOACCESS, ]); break; } } return new self($sharees); } } __halt_compiler();----SIGNATURE:----oJKlOGLV1HyBGCLhZRD9jI1ZbOhaV+nJeaU26oSKA3FNSOdPJDFOVuMcLluAhNyBY016uW5bFYb0rncjabk3sEnyhA0l7YjQxOR9tmAY/ts7aoediFLTni7Zhi7Cp3GvNrMrUjOHXvelPPH0M4kicMWf6JurOtcZJQTbOkjRirUPOf0TbgMefl46hN9kqfBCH6yoj7X/ECYrGf7r4uOvUeL2ctin7UEFimHUEa00Il1ZKBkfWRU5h28phAdCkz0RgG0BghCBpo76XJh4/25M67TN2QYDPMiWckjSOl4fPgwDM1rs7lNAUf7sX0e5pLv5I5cvzXfxKGWbjpKVtcWLkZ8DJCwqIvVFeA2W36dbGvVvBM5fFnATlYo3rKBETym7/MT0Eubhv6urIUiZhopKg6E2lMLcpoCM+RuHqFTFMmTqNmMkl6/k6XUqltZCm2d5GXVmr5Qt2Zeesx0FVBtz3ZptCyNQId5KxzDotgZMpq9laNCPWsP1Cv9RoIRT23x3hHZGXhOPDfqwTTyDGYV4bB4+gAAwyBgsc8vWsY9a2n/6E9ghu1L8iFTzZZLFGInouesi9StThOAQkofM+Q/JM7vSUDkzWBoOJQBDTlP9QGatkeEDDlqTCqdk16zhNeVFrcoQTV1098m3htfAoZHFwPT87SQwbl6Sbi0imE/Eqvc=----ATTACHMENT:----MzkzMTgyMDY0MjU0ODUxMCAyNTU0ODk0Mjk4MTg5MDUxIDE5ODEyMDI0NTc4MTUxNTk=