summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2019-10-11 08:21:24 +0200
committerChristoph Wurst <christoph@winzerhof-wurst.at>2019-10-11 08:21:24 +0200
commitf6a79338d4ea66f9c341d004951b606b5310b478 (patch)
treea22bb539d6d5fcd18453167dfcaeaded99b336df
parenta373fd584846101ed1b7e12ce8a10cb564446975 (diff)
downloadnextcloud-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.php2
-rw-r--r--lib/private/Route/Router.php2
-rw-r--r--lib/private/ServerContainer.php3
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];
}
}