sabre/dav v1.6.0 Release Notes

Release Date: 2012-02-22 // about 12 years ago
    • BC Break: Now requires PHP 5.3
    • BC Break: Any node that implemented Sabre_DAVACL_IACL must now also implement the getSupportedPrivilegeSet method. See website for details.
    • BC Break: Moved functions from Sabre_CalDAV_XMLUtil to Sabre_VObject_DateTimeParser.
    • BC Break: The Sabre_DAVACL_IPrincipalCollection now has two new methods: 'searchPrincipals' and 'updatePrincipal'.
    • BC Break: Sabre_DAV_ILockable is removed and all related per-node locking functionality.
    • BC Break: Sabre_DAV_Exception_FileNotFound is now deprecated in favor of Sabre_DAV_Exception_NotFound. The former will be removed in a later version.
    • BC Break: Removed Sabre_CalDAV_ICalendarUtil, use Sabre_VObject instead.
    • BC Break: Sabre_CalDAV_Server is now deprecated, check out the documentation on how to setup a caldav server with just Sabre_DAV_Server.
    • 0️⃣ BC Break: Default Principals PDO backend now needs a new field in the 'principals' table. See the website for details.
    • ➕ Added: Ability to create new calendars and addressbooks from within the browser plugin.
    • ➕ Added: Browser plugin: icons for various nodes.
    • ➕ Added: Support for FREEBUSY reports!
    • ➕ Added: Support for creating principals with admin-level privileges.
    • ➕ Added: Possibility to let server send out invitation emails on behalf of CalDAV client, using Sabre_CalDAV_Schedule_IMip.
    • 🔄 Changed: beforeCreateFile event now passes data argument by reference.
    • Changed: The 'propertyMap' property from Sabre_VObject_Reader, must now be specified in Sabre_VObject_Property::$classMap.
    • ➕ Added: Ability for plugins to tell the ACL plugin which principal plugins are searchable.
    • ➕ Added: [DAVACL] Per-node overriding of supported privileges. This allows for custom privileges where needed.
    • ➕ Added: [DAVACL] Public 'principalSearch' method on the DAVACL plugin, which allows for easy searching for principals, based on their properties.
    • Added: Sabre_VObject_Component::getComponents() to return a list of only components and not properties.
    • ➕ Added: An includes.php file in every sub-package (CalDAV, CardDAV, DAV, DAVACL, HTTP, VObject) as an alternative to the autoloader. This often works much faster.
    • ➕ Added: Support for the 'Me card', which allows Addressbook.app users specify which vcard is their own.
    • ➕ Added: Support for updating principal properties in the DAVACL principal backends.
    • 🔨 Changed: Major refactoring in the calendar-query REPORT code. Should make things more flexible and correct.
    • 🔄 Changed: The calendar-proxy-[read|write] principals will now only appear in the tree, if they actually exist in the Principal backend. This should reduce some problems people have been having with this.
    • Changed: Sabre_VObject_Element_* classes are now renamed to Sabre_VObject_Property. Old classes are retained for backwards compatibility, but this will be removed in the future.
    • Added: Sabre_VObject_FreeBusyGenerator to generate free-busy reports based on lists of events.
    • Added: Sabre_VObject_RecurrenceIterator to find all the dates and times for recurring events.
    • 🛠 Fixed: Issue 97: Correctly handling RRULE for the calendar-query REPORT.
    • 🛠 Fixed: Issue 154: Encoding of VObject parameters with no value was incorrect.
    • ➕ Added: Support for {DAV:}acl-restrictions property from RFC3744.
    • ➕ Added: The contentlength for calendar objects can now be supplied by a CalDAV backend, allowing for more optimizations.
    • Fixed: Much faster implementation of Sabre_DAV_URLUtil::encodePath.
    • 🛠 Fixed: {DAV:}getcontentlength may now be not specified.
    • 🛠 Fixed: Issue 66: Using rawurldecode instead of urldecode to decode paths from clients. This means that + will now be treated as a literal rather than a space, and this should improve compatibility with the Windows built-in client.
    • Added: Sabre_DAV_Exception_PaymentRequired exception, to emit HTTP 402 status codes.
    • ➕ Added: Some mysql unique constraints to example files.
    • 🛠 Fixed: Correctly formatting HTTP dates.
    • 🛠 Fixed: Issue 94: Sending back Last-Modified header for 304 responses.
    • Added: Sabre_VObject_Component_VEvent, Sabre_VObject_Component_VJournal, Sabre_VObject_Component_VTodo and Sabre_VObject_Component_VCalendar.
    • 🔄 Changed: Properties are now also automatically mapped to their appropriate classes, if they are created using the add() or __set() methods.
    • 🔄 Changed: Cloning VObject objects now clones the entire tree, rather than just the default shallow copy.
    • ➕ Added: Support for recurrence expansion in the CALDAV:calendar-multiget and CALDAV:calendar-query REPORTS.
    • 🔄 Changed: CalDAV PDO backend now sorts calendars based on the internal 'calendarorder' field.
    • ➕ Added: Issue 181: Carddav backends may no optionally not supply the carddata in getCards, if etag and size are specified. This may speed up certain requests.
    • ➕ Added: More arguments to beforeWriteContent and beforeCreateFile (see WritingPlugins wiki document).
    • ➕ Added: Hook for iCalendar validation. This allows us to validate iCalendar objects when they're uploaded. At the moment we're just validating syntax.
    • ➕ Added: VObject now support Windows Timezone names correctly (thanks mrpace2).
    • ➕ Added: If a timezonename could not be detected, we fall back on the default PHP timezone.
    • ➕ Added: Now a Composer package (thanks willdurand).
    • 🛠 Fixed: Support for \N as a newline character in the VObject reader.
    • ➕ Added: afterWriteContent, afterCreateFile and afterUnbind events.
    • ➕ Added: Postgresql example files. Not part of the unittests though, so use at your own risk.
    • 🛠 Fixed: Issue 182: Removed backticks from sql queries, so it will work with Postgres.