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

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.