- 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.