]> source.dussan.org Git - nextcloud-server.git/commitdiff
Undeprecate IAppContainer and IServerContainer 21891/head
authorChristoph Wurst <christoph@winzerhof-wurst.at>
Fri, 17 Jul 2020 08:17:18 +0000 (10:17 +0200)
committerChristoph Wurst <christoph@winzerhof-wurst.at>
Fri, 17 Jul 2020 08:17:18 +0000 (10:17 +0200)
With 4152216bd8cf9d49e6749d26bb8b491dd49b089b 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>
lib/public/AppFramework/IAppContainer.php
lib/public/IServerContainer.php

index 2a3689e7063de6e67498f78a8108ee8a7f947c72..f3497a6e0e1d67b116444ef5d1482455593d8b81 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+
+declare(strict_types=1);
+
 /**
  * @copyright Copyright (c) 2016, ownCloud, Inc.
  *
 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
index 7df270e5c87a24cf3ee77203866331c1ef024030..215cfab84fd75eaaef24ccd4196c748e8d14371c 100644 (file)
@@ -1,4 +1,7 @@
 <?php
+
+declare(strict_types=1);
+
 /**
  * @copyright Copyright (c) 2016, ownCloud, Inc.
  *
  *
  */
 
-/**
- * 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