sabre/dav v1.9.0-alpha1 Release Notes

Release Date: 2013-11-07 // over 10 years ago
    • ๐Ÿš€ The zip release ships with sabre/vobject 3.1.3, sabre/http 2.0.0alpha5, and sabre/event 1.0.0.
    • BC Break: The CardDAV and CalDAV BackendInterface each have a new method: getMultipleCards and getMultipleCalendarObjects. The Abstract and PDO backends have default implementations, but if you implement that interface directly, this method is now required.
    • BC Break: XML property classes now receive an extra argument in their unserialize method ($propertyMap). This allows for recursively parsing properties, if needed.
    • ๐Ÿ”Œ BC Break: Now using sabre/event for event emitting/subscription. For plugin authors this means Server::subscribeEvent is now Server::on, and Server::broadcastEvent is now Server::emit.
    • ๐Ÿšš BC Break: Almost all core functionality moved into a CorePlugin.
    • BC Break: Most events triggered by the server got an overhaul.
    • ๐Ÿ”„ Changed: Sabre\HTTP now moved into a dedicated sabre/http package.
    • โž• Added: Support for WebDAV-sync (rfc6578).
    • โž• Added: Support for caldav-subscriptions, which is an easy way for caldav clients to manage a list of subscriptions on the server.
    • โž• Added: Support for emitting and receiving jCal instead of iCalendar for CalDAV.
    • โž• Added: BasicCallback authenticaton backend, for creating simple authentication systems without having to define any classes.
    • โž• Added: A $transactionType property on the server class. This can be used for logging and performance measuring purposes.
    • ๐Ÿ›  Fixed: If event handlers modify the request body from a PUT request, an ETag is no longer sent back.
    • โž• Added: Sabre\DAV\IMultiGet to optimize requests that retrieve information about lists of resources.
    • โž• Added: MultiGet support to default CalDAV and CardDAV backends, speeding up the multiget and sync reports quite a bit!
    • โž• Added: ICSExportPlugin can now generate jCal, filter on time-ranges and expand recurrences.
    • ๐Ÿ›  Fixed: Read-only access to calendars still allows the sharee to modify basic calendar properties, such as the displayname and color.
    • ๐Ÿ”„ Changed: The default supportedPrivilegeSet has changed. Most privileges are no longer marked as abstract.
    • ๐Ÿ”„ Changed: More elegant ACL management for CalendarObject and Card nodes.
    • โž• Added: Browser plugin now marks a carddav directory as type Directory, and a shared calendar as 'Shared'.
    • โž• Added: When debugExceptions is turned on, all previous exceptions are also traversed.
    • โœ‚ Removed: Got rid of the Version classes for CalDAV, CardDAV, HTTP, and DAVACL. Now that there's no separate packages anymore, this makes a bit more sense.
    • โž• Added: Generalized the multistatus response parser a bit more, for better re-use.
    • โž• Added: Sabre\DAV\Client now has support for complex properties for PROPPATCH. (Issue #299).
    • โž• Added: Sabre\DAV\Client has support for gzip and deflate encoding.
    • โž• Added: Sabre\DAV\Client now has support for sending objects as streams.
    • โž• Added: Deserializer for {DAV:}current-user-privilege-set.
    • โž• Added: Addressbooks or backends can now specify custom acl rules when creating cards.
    • โž• Added: The ability for plugins to validate custom tokens in If: headers.
    • ๐Ÿ”จ Changed: Completely refactored the Lock plugin to deal with the new If: header system.
    • โž• Added: Checking preconditions for MOVE, COPY, DELETE and PROPPATCH methods.
    • โž• Added: has() method on DAV\Property\SupportedReportSet.
    • โž• Added: If header now gets checked (with ETag) all the time. Before the dealing with the If-header was a responsibility of the Locking plugin.
    • ๐Ÿ›  Fixed: Outbox access for delegates.
    • โž• Added: Issue 333: It's now possible to override the calendar-home in the CalDAV plugin.
    • โž• Added: A negotiateContentType to HTTP\Request. A convenience method.
    • ๐Ÿ›  Fixed: Issue 349: Denying copying or moving a resource into it's own subtree.
    • ๐Ÿ›  Fixed: SabreDAV catches every exception again.
    • โž• Added: Issue #358, adding a component=vevent parameter to the content-types for calendar objects, if the caldav backend provides this info.