protected function sendSyncCollectionResponse($syncToken, $collectionUrl, array $added, array $modified, array $deleted, array $properties)
    {
        $fullPaths = [];

        // Pre-fetching children, if this is possible.
        foreach (array_merge($added, $modified) as $item) {
            $fullPath = $collectionUrl.'/'.$item;
            $fullPaths[] = $fullPath;
        }

        $responses = [];
        foreach ($this->server->getPropertiesForMultiplePaths($fullPaths, $properties) as $fullPath => $props) {
            // The 'Property_Response' class is responsible for generating a
            // single {DAV:}response xml element.
            $responses[] = new DAV\Xml\Element\Response($fullPath, $props);
        }

        // Deleted items also show up as 'responses'. They have no properties,
        // and a single {DAV:}status element set as 'HTTP/1.1 404 Not Found'.
        foreach ($deleted as $item) {
            $fullPath = $collectionUrl.'/'.$item;
            $responses[] = new DAV\Xml\Element\Response($fullPath, [], 404);
        }
        $multiStatus = new DAV\Xml\Response\MultiStatus($responses, self::SYNCTOKEN_PREFIX.$syncToken);

        $this->server->httpResponse->setStatus(207);
        $this->server->httpResponse->setHeader('Content-Type', 'application/xml; charset=utf-8');
        $this->server->httpResponse->setBody(
            $this->server->xml->write('{DAV:}multistatus', $multiStatus, $this->server->getBaseUri())
        );
    }
protected function sendSyncCollectionResponse($syncToken, $collectionUrl, array $added, array $modified, array $deleted, array $properties)
    {
        $fullPaths = [];

        // Pre-fetching children, if this is possible.
        foreach (array_merge($added, $modified) as $item) {
            $fullPath = $collectionUrl.'/'.$item;
            $fullPaths[] = $fullPath;
        }

        $responses = [];
        foreach ($this->server->getPropertiesForMultiplePaths($fullPaths, $properties) as $fullPath => $props) {
            // The 'Property_Response' class is responsible for generating a
            // single {DAV:}response xml element.
            $responses[] = new DAV\Xml\Element\Response($fullPath, $props);
        }

        // Deleted items also show up as 'responses'. They have no properties,
        // and a single {DAV:}status element set as 'HTTP/1.1 404 Not Found'.
        foreach ($deleted as $item) {
            $fullPath = $collectionUrl.'/'.$item;
            $responses[] = new DAV\Xml\Element\Response($fullPath, [], 404);
        }
        $multiStatus = new DAV\Xml\Response\MultiStatus($responses, self::SYNCTOKEN_PREFIX.$syncToken);

        $this->server->httpResponse->setStatus(207);
        $this->server->httpResponse->setHeader('Content-Type', 'application/xml; charset=utf-8');
        $this->server->httpResponse->setBody(
            $this->server->xml->write('{DAV:}multistatus', $multiStatus, $this->server->getBaseUri())
        );
    }
protected function sendSyncCollectionResponse ( $ syncToken , $ collectionUrl , array $ added , array $ modified , array $ deleted , array $ properties ) { $ fullPaths = [ ] ; // Pre-fetching children, if this is possible. foreach ( array_merge ( $ added , $ modified ) as $ item ) { $ fullPath = $ collectionUrl . '/' . $ item ; $ fullPaths [ ] = $ fullPath ; } $ responses = [ ] ; foreach ( $ this -> server -> getPropertiesForMultiplePaths ( $ fullPaths , $ properties ) as $ fullPath => $ props ) { // The 'Property_Response' class is responsible for generating a // single {DAV:}response xml element. $ responses [ ] = new DAV \ Xml \ Element \ Response ( $ fullPath , $ props ) ; } // Deleted items also show up as 'responses'. They have no properties, // and a single {DAV:}status element set as 'HTTP/1.1 404 Not Found'. foreach ( $ deleted as $ item ) { $ fullPath = $ collectionUrl . '/' . $ item ; $ responses [ ] = new DAV \ Xml \ Element \ Response ( $ fullPath , [ ] , 404 ) ; } $ multiStatus = new DAV \ Xml \ Response \ MultiStatus ( $ responses , self :: SYNCTOKEN_PREFIX . $ syncToken ) ; $ this -> server -> httpResponse -> setStatus ( 207 ) ; $ this -> server -> httpResponse -> setHeader ( 'Content-Type' , 'application/xml; charset=utf-8' ) ; $ this -> server -> httpResponse -> setBody ( $ this -> server -> xml -> write ( '{DAV:}multistatus' , $ multiStatus , $ this -> server -> getBaseUri ( ) ) ) ; }
Sends the response to a sync-collection request.

@param string $syncToken
@param string $collectionUrl
@param array  $added
@param array  $modified
@param array  $deleted
@param array  $properties
Sends the response to a sync - collection request .