diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-10-11 08:21:24 +0200 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2019-10-11 08:21:24 +0200 |
commit | f6a79338d4ea66f9c341d004951b606b5310b478 (patch) | |
tree | a22bb539d6d5fcd18453167dfcaeaded99b336df | |
parent | a373fd584846101ed1b7e12ce8a10cb564446975 (diff) | |
download | nextcloud-server-f6a79338d4ea66f9c341d004951b606b5310b478.tar.gz nextcloud-server-f6a79338d4ea66f9c341d004951b606b5310b478.zip |
Make sure we create an app's Application class just once
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
-rw-r--r-- | lib/base.php | 2 | ||||
-rw-r--r-- | lib/private/Route/Router.php | 2 | ||||
-rw-r--r-- | lib/private/ServerContainer.php | 3 |
3 files changed, 4 insertions, 3 deletions
diff --git a/lib/base.php b/lib/base.php index 7674c16c26b..510a960e435 100644 --- a/lib/base.php +++ b/lib/base.php @@ -727,7 +727,7 @@ class OC { // Make sure that the application class is not loaded before the database is setup if ($systemConfig->getValue("installed", false)) { OC_App::loadApp('settings'); - $settings = new \OCA\Settings\AppInfo\Application(); + $settings = \OC::$server->query(\OCA\Settings\AppInfo\Application::class); $settings->register(); } diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 3d91a33cd8a..4c83f251012 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -371,7 +371,7 @@ class Router implements IRouter { $applicationClassName = $appNameSpace . '\\AppInfo\\Application'; if (class_exists($applicationClassName)) { - $application = new $applicationClassName(); + $application = \OC::$server->query($applicationClassName); } else { $application = new App($appName); } diff --git a/lib/private/ServerContainer.php b/lib/private/ServerContainer.php index b67b4d1e701..704d207223b 100644 --- a/lib/private/ServerContainer.php +++ b/lib/private/ServerContainer.php @@ -100,8 +100,9 @@ class ServerContainer extends SimpleContainer { if (!isset($this->hasNoAppContainer[$namespace])) { $applicationClassName = 'OCA\\' . $sensitiveNamespace . '\\AppInfo\\Application'; if (class_exists($applicationClassName)) { - new $applicationClassName(); + $app = new $applicationClassName(); if (isset($this->appContainers[$namespace])) { + $this->appContainers[$namespace]->offsetSet($applicationClassName, $app); return $this->appContainers[$namespace]; } } |