- Added: childExists method to Sabre_DAV_ICollection. This is an api break, so
if you implement Sabre_DAV_ICollection directly, add the method. - Changed: Almost all HTTP method implementations now take a uri argument,
including events. This allows for internal rerouting of certain calls. If you
have custom plugins, make sure they use this argument. If they don't, they
will likely still work, but it might get in the way of future changes. - Changed: All getETag methods MUST now surround the etag with double-quotes.
This was a mistake made in all previous SabreDAV versions. If you don't do
this, any If-Match, If-None-Match and If: headers using Etags will work
incorrectly. (Issue 85). - Added: Sabre_DAV_Auth_Backend_AbstractBasic class, which can be used to easily
implement basic authentication. - Removed: Sabre_DAV_PermissionDenied class. Use Sabre_DAV_Forbidden instead.
- Removed: Sabre_DAV_IDirectory interface, use Sabre_DAV_ICollection instead.
- Added: Browser plugin now uses {DAV:}displayname if this property is
available. - Added: Cache layer in the ObjectTree.
- Added: Tree classes now have a delete and getChildren method.
- Fixed: If-Modified-Since and If-Unmodified-Since would be incorrect if the
date is an exact match. - Fixed: Support for multiple ETags in If-Match and If-None-Match headers.
- Fixed: Improved baseUrl handling.
- Fixed: Issue 67: Non-seekable stream support in ::put()/::get().
- Fixed: Issue 65: Invalid dates are now ignored.
- Updated: Refactoring in Sabre_CalDAV to make everything a bit more ledgable.
- Fixed: Issue 88, Issue 89: Fixed compatibility for running SabreDAV on
Windows. - Fixed: Issue 86: Fixed Content-Range top-boundary from 'file size' to 'file
size'-1.