Do not load app.php if Application implements IBootstrap

Signed-off-by: Morris Jobke <hey@morrisjobke.de>
pull/21812/head
Morris Jobke 5 years ago
parent 7b82895982
commit d9cc2f0213
No known key found for this signature in database
GPG Key ID: FE03C3A163FEDE68
  1. 8
      lib/private/AppFramework/Bootstrap/Coordinator.php
  2. 15
      lib/private/legacy/OC_App.php

@ -147,7 +147,6 @@ class Coordinator {
$this->logger->logException($e, [
'message' => "Could not boot $appId" . $e->getMessage(),
]);
return;
} catch (Throwable $e) {
$this->logger->logException($e, [
'message' => "Could not boot $appId" . $e->getMessage(),
@ -155,4 +154,11 @@ class Coordinator {
]);
}
}
public function isBootable(string $appId) {
$appNameSpace = App::buildAppNamespace($appId);
$applicationClassName = $appNameSpace . '\\AppInfo\\Application';
return class_exists($applicationClassName) &&
in_array(IBootstrap::class, class_implements($applicationClassName), true);
}
}

@ -149,7 +149,17 @@ class OC_App {
// in case someone calls loadApp() directly
self::registerAutoloading($app, $appPath);
if (is_file($appPath . '/appinfo/app.php')) {
/** @var \OC\AppFramework\Bootstrap\Coordinator $coordinator */
$coordinator = \OC::$server->query(\OC\AppFramework\Bootstrap\Coordinator::class);
$isBootable = $coordinator->isBootable($app);
$hasAppPhpFile = is_file($appPath . '/appinfo/app.php');
if ($isBootable && $hasAppPhpFile) {
\OC::$server->getLogger()->error('/appinfo/app.php is not loaded when \OCP\AppFramework\Bootstrap\IBootstrap on the application class is used. Migrate everything from app.php to the Application class.', [
'app' => $app,
]);
} elseif ($hasAppPhpFile) {
\OC::$server->getLogger()->debug('/appinfo/app.php is deprecated, use \OCP\AppFramework\Bootstrap\IBootstrap on the application class instead.', [
'app' => $app,
]);
@ -175,9 +185,6 @@ class OC_App {
}
\OC::$server->getEventLogger()->end('load_app_' . $app);
}
/** @var \OC\AppFramework\Bootstrap\Coordinator $coordinator */
$coordinator = \OC::$server->query(\OC\AppFramework\Bootstrap\Coordinator::class);
$coordinator->bootApp($app);
$info = self::getAppInfo($app);

Loading…
Cancel
Save