diff options
Diffstat (limited to 'lib/private/AppFramework')
-rw-r--r-- | lib/private/AppFramework/DependencyInjection/DIContainer.php | 3 | ||||
-rw-r--r-- | lib/private/AppFramework/Http/Dispatcher.php | 9 |
2 files changed, 10 insertions, 2 deletions
diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 462f9b978fd..6e0e452bccd 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -191,7 +191,8 @@ class DIContainer extends SimpleContainer implements IAppContainer { $c->get(IConfig::class), $c->get(IDBConnection::class), $c->get(LoggerInterface::class), - $c->get(EventLogger::class) + $c->get(EventLogger::class), + $c, ); }); diff --git a/lib/private/AppFramework/Http/Dispatcher.php b/lib/private/AppFramework/Http/Dispatcher.php index aaaf2ba6560..cc288edc966 100644 --- a/lib/private/AppFramework/Http/Dispatcher.php +++ b/lib/private/AppFramework/Http/Dispatcher.php @@ -42,6 +42,7 @@ use OCP\AppFramework\Http\Response; use OCP\Diagnostics\IEventLogger; use OCP\IConfig; use OCP\IRequest; +use Psr\Container\ContainerInterface; use Psr\Log\LoggerInterface; /** @@ -73,6 +74,8 @@ class Dispatcher { /** @var IEventLogger */ private $eventLogger; + private ContainerInterface $appContainer; + /** * @param Http $protocol the http protocol with contains all status headers * @param MiddlewareDispatcher $middlewareDispatcher the dispatcher which @@ -92,7 +95,8 @@ class Dispatcher { IConfig $config, ConnectionAdapter $connection, LoggerInterface $logger, - IEventLogger $eventLogger) { + IEventLogger $eventLogger, + ContainerInterface $appContainer) { $this->protocol = $protocol; $this->middlewareDispatcher = $middlewareDispatcher; $this->reflector = $reflector; @@ -101,6 +105,7 @@ class Dispatcher { $this->connection = $connection; $this->logger = $logger; $this->eventLogger = $eventLogger; + $this->appContainer = $appContainer; } @@ -216,6 +221,8 @@ class Dispatcher { $value = false; } elseif ($value !== null && \in_array($type, $types, true)) { settype($value, $type); + } elseif ($value === null && $type !== null && $this->appContainer->has($type)) { + $value = $this->appContainer->get($type); } $arguments[] = $value; |