Undeprecate IAppContainer and IServerContainer

With 4152216bd8 these two interfaces got
deprecated with the reasoning that we only need the base PSR interface.
However, there are cases where in Nextcloud you still want to have a
specific container (the one for the app vs the one for the server) when
you either have a container injected or query one from a container.

With a single interface that would not be possible. So it's probably
better if we leave the two interfaces, but only have them extend the PSR
interface. IContainer – with the custom methods – shall still be phased
out, but the two other sub interfaces can stay for tagging purposes.
Tagging means that no methods shall be added.

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
This commit is contained in:
Christoph Wurst 2020-07-17 10:17:18 +02:00
parent 79c677e26d
commit 22ff03969e
No known key found for this signature in database
GPG Key ID: CC42AC2A7F0E56D8
2 changed files with 20 additions and 19 deletions

View File

@ -1,4 +1,7 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@ -27,16 +30,18 @@
namespace OCP\AppFramework;
use OCP\IContainer;
use Psr\Container\ContainerInterface;
/**
* Class IAppContainer
* @package OCP\AppFramework
* This is a tagging interface for a container that belongs to an app
*
* The interface currently extends IContainer, but this interface is deprecated as of Nextcloud 20,
* thus this interface won't extend it anymore once that was removed. So migrate to the ContainerInterface
* only.
*
* This container interface provides short cuts for app developers to access predefined app service.
* @since 6.0.0
* @deprecated 20.0.0 use \Psr\Container\ContainerInterface
*/
interface IAppContainer extends IContainer {
interface IAppContainer extends ContainerInterface, IContainer {
/**
* used to return the appname of the set application

View File

@ -1,4 +1,7 @@
<?php
declare(strict_types=1);
/**
* @copyright Copyright (c) 2016, ownCloud, Inc.
*
@ -37,32 +40,25 @@
*
*/
/**
* Public interface of ownCloud for apps to use.
* Server container interface
*
*/
// use OCP namespace for all classes that are considered public.
// This means that they should be used by apps instead of the internal ownCloud classes
namespace OCP;
use OCP\Federation\ICloudFederationFactory;
use OCP\Federation\ICloudFederationProviderManager;
use OCP\Log\ILogFactory;
use OCP\Security\IContentSecurityPolicyManager;
use Psr\Container\ContainerInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
/**
* Class IServerContainer
* @package OCP
* This is a tagging interface for the server container
*
* The interface currently extends IContainer, but this interface is deprecated as of Nextcloud 20,
* thus this interface won't extend it anymore once that was removed. So migrate to the ContainerInterface
* only.
*
* This container holds all ownCloud services
* @since 6.0.0
* @deprecated 20.0.0 use \Psr\Container\ContainerInterface
*/
interface IServerContainer extends IContainer {
interface IServerContainer extends ContainerInterface, IContainer {
/**
* The calendar manager will act as a broker between consumers for calendar information and