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 compability breaks.
Unlike other major releases, 3.1 is a smaller update and upgrading to it should be relatively painless for most people.
- 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 authenticatation 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
- 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 likelyhood 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
The Client class will now throw
Sabre\HTTP\ClientHttpException in both
propPatch() methods in case a HTTP error was returned.
propPatch() didn't throw
any exceptions at all.
propPatch() will now also throw
Sabre\HTTP\ClientException in case other
problems arise with the request.