Upgrading from SabreDAV 3.0 to 3.1
sabre/dav 3.1 has been released, and with it there's a few new features and a few backwards compatibility breaks.
Unlike other major releases, 3.1 is a smaller update and upgrading to it should be relatively painless for most people.
New features
- This is the first sabre/dav release to support PHP 7. Previous versions had some compatibility issues that have now been solved.
- We've switched to sabre/vobject version 4, which has a lot of improvements itself.
- Support for calendar-availability. CalDAV clients that support this specification will allow users to specify what their working hours are, and this information will automatically be kept into consideration when generating freebusy requests. To use this, just make sure you have enabled the property storage plugin on your CalDAV server.
- There's a new authentication backend for people implementing OAuth2 Bearer token. It's not a full OAuth2 authentication system, but it does make it a bit easier for people looking to implement that.
- Lots of memory-usage improvements all around, especially when dealing with
CalDAV and CardDAV
REPORT
requests. - Lots of new exceptions and improvements to error messaging for edge-cases people have run into.
That's the most important stuff, but there's lots of smaller tweaks and improvements that hopefully result in an (even) more stable product.
For a full list of changes, consult the changelog.
API Changes and BC breaks
The following few chapters detail all the BC breaking changes that have been made. We've ordered them loosely in order of likelihood that the changes are relevant to you. Chances are that if you have never done any custom sabre/dav development, only the first item might be relevant to you.
Dropped PHP 5.4 support
PHP 5.4 is officially no longer supported by the PHP group, and we've also dropped support for it. We're taking advantage of several PHP 5.5 features, and as a result PHP 5.4 will no longer work.
If you are still running PHP 5.4, be sure to update. We'll keep supporting sabre/dav 3.0 for 12 months though and fix any bugs that crop up.
We're using sabre/vobject 4
Previous sabre/dav versions used sabre/vobject 3. Version 4 of this library has several BC breaking changes itself, which can affect you if you use sabre/dav and do things with the sabre/vobject library yourself.
To help you upgrade your code to sabre/vobject 4, there is a separate documentation page describing the exact changes.
Exception changes in Sabre\DAV\Client
.
The Client class will now throw Sabre\HTTP\ClientHttpException
in both
the propFind()
and propPatch()
methods in case a HTTP error was returned.
Before propFind()
used Sabre\DAV\Exception
, and propPatch()
didn't throw
any exceptions at all.
propPatch()
will now also throw Sabre\HTTP\ClientException
in case other
problems arise with the request.