diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-07-16 17:06:17 +0200 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2020-07-21 20:42:24 +0200 |
commit | e029055e766298c5852eedabf06ff42b06a50198 (patch) | |
tree | 545fe2ae2409c0e9e7e010d88e858774e442b968 | |
parent | 9a7a8b6e38ced74eae05d2cacddff8a39b0c2b04 (diff) | |
download | nextcloud-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.php | 12 | ||||
-rw-r--r-- | lib/private/AppFramework/Bootstrap/FunctionInjector.php | 10 | ||||
-rw-r--r-- | lib/public/AppFramework/App.php | 1 | ||||
-rw-r--r-- | lib/public/AppFramework/Bootstrap/IBootContext.php | 8 |
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 |