Browse Source

Make sure we create an app's Application class just once

Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
pull/17509/head
Christoph Wurst 6 years ago
parent
commit
f6a79338d4
No known key found for this signature in database GPG Key ID: CC42AC2A7F0E56D8
  1. 2
      lib/base.php
  2. 2
      lib/private/Route/Router.php
  3. 3
      lib/private/ServerContainer.php

2
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();
}

2
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);
}

3
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];
}
}

Loading…
Cancel
Save