Changelog

The following changes went into ownCloud 8.1:

Breaking changes

The following breaking changes usually do only affect applications which misuse existing API or do not follow best practises.

Features

  • There is a new OCSResponse and OCSController which allows you to easily migrate OCS code to the App Framework. This was added purely for compatibility reasons and the preferred way of doing APIs is using a RESTful API
  • You can now stream files in PHP by using the built in StreamResponse.
  • For more advanced usecases you can now implement the CallbackResponse interface which allows your response to do its own response rendering
  • Custom preview providers can now be implemented using OCPIPreview::registerProvider
  • There is a mightier class for remote web service requests at OCPHttpClient
  • OCP\IImage allows now basic image manipulations such as resizing or rotating
  • OCP\Mail allows sending mails in an object-oriented way now
  • OCP\IRequest contains more methods now such as getting the request URI
  • OCP\Encryption allows writing custom encryption backends

Furthermore all public APIs have received a @since annotation allowing developers to see when a function has been introduced.

Deprecations

This is a deprecation roadmap which lists all current deprecation targets and will be updated from release to release. This lists the version when a specific method or class will be removed.

Note

Deprecations on interfaces also affect the implementing classes!

11.1

  • OCP\App::setActiveNavigationEntry has been deprecated in favour of \OCP\INavigationManager
  • OCP\BackgroundJob::registerJob has been deprecated in favour of OCP\BackgroundJob\IJobList
  • OCP\Contacts functions has been deprecated in favour of \OCP\Contacts\IManager
  • OCP\DB functions have been deprecated in favour of the ones in \OCP\IDBConnection
  • OCP\Files::tmpFile has been deprecated in favour of \OCP\ITempManager::getTemporaryFile
  • OCP\Files::tmpFolder has been deprecated in favour of \OCP\ITempManager::getTemporaryFolder
  • \OCP\IServerContainer::getDb has been deprecated in favour of \OCP\IServerContainer::getDatabaseConnection
  • \OCP\IServerContainer::getHTTPHelper has been deprecated in favour of \OCP\Http\Client\IClientService
  • Legacy applications not using the AppFramework are now likely to use the deprecated OCP\JSON and OCP\Response code:
    • \OCP\JSON has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy OCP\JSON code. This allows testable controllers and is highly encouraged.
    • \OCP\Response has been completely deprecated in favour of the AppFramework. Developers shall use the AppFramework instead of using the legacy OCP\JSON code. This allows testable controllers and is highly encouraged.
  • Diverse OCP\Users function got deprecated in favour of OCP\IUserManager:
    • OCP\Users::getUsers has been deprecated in favour of OCP\IUserManager::search
    • OCP\Users::getDisplayName has been deprecated in favour of OCP\IUserManager::getDisplayName
    • OCP\Users::getDisplayNames has been deprecated in favour of OCP\IUserManager::searchDisplayName
    • OCP\Users::userExists has been deprecated in favour of OCP\IUserManager::userExists
  • Various static OCP\Util functions have been deprecated:
    • OCP\Util::linkToRoute has been deprecated in favour of \OCP\IURLGenerator::linkToRoute
    • OCP\Util::linkTo has been deprecated in favour of \OCP\IURLGenerator::linkTo
    • OCP\Util::imagePath has been deprecated in favour of \OCP\IURLGenerator::imagePath
    • OCP\Util::isValidPath has been deprecated in favour of \OCP\IURLGenerator::imagePath

10.0

  • OCP\IDb: This interface and the implementing classes will be removed in favor of OCP\IDbConnection. Various layers in between have also been removed to be consistent with the PDO classes. This leads to the following changes:
  • Replace all calls on the db using getInsertId with lastInsertId
  • Replace all calls on the db using prepareQuery with prepare
  • The __construct method of OCP\AppFramework\Db\Mapper no longer requires an instance of OCP\IDb but an instance of OCP\IDbConnection
  • The execute method on OCP\AppFramework\Db\Mapper no longer returns an instance of OC_DB_StatementWrapper but an instance of PDOStatement

9.0

  • The following methods have been moved into the OCP\Template::<method> class instead of being namespaced directly:
  • OCP\image_path
  • OCP\mimetype_icon
  • OCP\preview_icon
  • OCP\publicPreview_icon
  • OCP\human_file_size
  • OCP\relative_modified_date
  • OCP\html_select_options
  • OCP\simple_file_size has been deprecated in favour of OCP\Template::human_file_size
  • The OCP\PERMISSION_<permission> and OCP\FILENAME_INVALID_CHARS have been moved to OCP\Constants::<old name>
  • The OC_GROUP_BACKEND_<method> and OC_USER_BACKEND_<method> have been moved to OC_Group_Backend::<method> and OC_User_Backend::<method> respectively

8.3

All documentation licensed under the Creative Commons Attribution 3.0 Unported license.