summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-07-16 17:06:17 +0200
committerMorris Jobke <hey@morrisjobke.de>2020-07-21 20:42:24 +0200
commite029055e766298c5852eedabf06ff42b06a50198 (patch)
tree545fe2ae2409c0e9e7e010d88e858774e442b968
parent9a7a8b6e38ced74eae05d2cacddff8a39b0c2b04 (diff)
downloadnextcloud-server-e029055e766298c5852eedabf06ff42b06a50198.tar.gz
nextcloud-server-e029055e766298c5852eedabf06ff42b06a50198.zip
Make the bootstrap context return ContainerInterface instances
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
-rw-r--r--lib/private/AppFramework/Bootstrap/BootContext.php12
-rw-r--r--lib/private/AppFramework/Bootstrap/FunctionInjector.php10
-rw-r--r--lib/public/AppFramework/App.php1
-rw-r--r--lib/public/AppFramework/Bootstrap/IBootContext.php8
4 files changed, 16 insertions, 15 deletions
diff --git a/lib/private/AppFramework/Bootstrap/BootContext.php b/lib/private/AppFramework/Bootstrap/BootContext.php
index d206884c0b7..7c2582a7269 100644
--- a/lib/private/AppFramework/Bootstrap/BootContext.php
+++ b/lib/private/AppFramework/Bootstrap/BootContext.php
@@ -26,24 +26,24 @@ declare(strict_types=1);
namespace OC\AppFramework\Bootstrap;
use OCP\AppFramework\Bootstrap\IBootContext;
-use OCP\AppFramework\IAppContainer;
use OCP\IServerContainer;
+use Psr\Container\ContainerInterface;
class BootContext implements IBootContext {
- /** @var IAppContainer */
+ /** @var ContainerInterface */
private $appContainer;
- public function __construct(IAppContainer $appContainer) {
+ public function __construct(ContainerInterface $appContainer) {
$this->appContainer = $appContainer;
}
- public function getAppContainer(): IAppContainer {
+ public function getAppContainer(): ContainerInterface {
return $this->appContainer;
}
- public function getServerContainer(): IServerContainer {
- return $this->appContainer->getServer();
+ public function getServerContainer(): ContainerInterface {
+ return $this->appContainer->get(IServerContainer::class);
}
public function injectFn(callable $fn) {
diff --git a/lib/private/AppFramework/Bootstrap/FunctionInjector.php b/lib/private/AppFramework/Bootstrap/FunctionInjector.php
index cb1dc7d3f37..25c1fbc0be6 100644
--- a/lib/private/AppFramework/Bootstrap/FunctionInjector.php
+++ b/lib/private/AppFramework/Bootstrap/FunctionInjector.php
@@ -27,17 +27,17 @@ namespace OC\AppFramework\Bootstrap;
use Closure;
use OCP\AppFramework\QueryException;
-use OCP\IContainer;
+use Psr\Container\ContainerInterface;
use ReflectionFunction;
use ReflectionParameter;
use function array_map;
class FunctionInjector {
- /** @var IContainer */
+ /** @var ContainerInterface */
private $container;
- public function __construct(IContainer $container) {
+ public function __construct(ContainerInterface $container) {
$this->container = $container;
}
@@ -47,14 +47,14 @@ class FunctionInjector {
// First we try by type (more likely these days)
if (($type = $param->getType()) !== null) {
try {
- return $this->container->query($type->getName());
+ return $this->container->get($type->getName());
} catch (QueryException $ex) {
// Ignore and try name as well
}
}
// Second we try by name (mostly for primitives)
try {
- return $this->container->query($param->getName());
+ return $this->container->get($param->getName());
} catch (QueryException $ex) {
// As a last resort we pass `null` if allowed
if ($type !== null && $type->allowsNull()) {
diff --git a/lib/public/AppFramework/App.php b/lib/public/AppFramework/App.php
index 2f55fd45140..de1cbcb64e8 100644
--- a/lib/public/AppFramework/App.php
+++ b/lib/public/AppFramework/App.php
@@ -120,6 +120,7 @@ class App {
/**
* @return IAppContainer
* @since 6.0.0
+ * @todo make this return a ContainerInterface as well
*/
public function getContainer(): IAppContainer {
return $this->container;
diff --git a/lib/public/AppFramework/Bootstrap/IBootContext.php b/lib/public/AppFramework/Bootstrap/IBootContext.php
index ee0bef6a5fa..86232cef4ad 100644
--- a/lib/public/AppFramework/Bootstrap/IBootContext.php
+++ b/lib/public/AppFramework/Bootstrap/IBootContext.php
@@ -41,20 +41,20 @@ interface IBootContext {
*
* Useful to register and query app-specific services
*
- * @return IAppContainer|ContainerInterface
+ * @return ContainerInterface|IAppContainer
* @since 20.0.0
*/
- public function getAppContainer(): IAppContainer;
+ public function getAppContainer(): ContainerInterface;
/**
* Get hold of the server DI container
*
* Useful to register and query system-wide services
*
- * @return IServerContainer
+ * @return ContainerInterface|IServerContainer
* @since 20.0.0
*/
- public function getServerContainer(): IServerContainer;
+ public function getServerContainer(): ContainerInterface;
/**
* Invoke the given callable and inject all parameters based on their types