diff --git a/lib/private/legacy/OC_App.php b/lib/private/legacy/OC_App.php index a3c429c9ce..85fd8c99f0 100644 --- a/lib/private/legacy/OC_App.php +++ b/lib/private/legacy/OC_App.php @@ -149,9 +149,6 @@ class OC_App { // in case someone calls loadApp() directly self::registerAutoloading($app, $appPath); - /** @var \OC\AppFramework\Bootstrap\Coordinator $coordinator */ - $coordinator = \OC::$server->query(\OC\AppFramework\Bootstrap\Coordinator::class); - $coordinator->bootApp($app); if (is_file($appPath . '/appinfo/app.php')) { \OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app); try { @@ -176,6 +173,10 @@ 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); if (!empty($info['activity']['filters'])) { foreach ($info['activity']['filters'] as $filter) { diff --git a/lib/public/AppFramework/Bootstrap/IBootstrap.php b/lib/public/AppFramework/Bootstrap/IBootstrap.php index 581c7d6636..770c830e73 100644 --- a/lib/public/AppFramework/Bootstrap/IBootstrap.php +++ b/lib/public/AppFramework/Bootstrap/IBootstrap.php @@ -38,6 +38,13 @@ interface IBootstrap { public function register(IRegistrationContext $context): void; /** + * Boot the application + * + * At this stage you can assume that all services are registered and the DI + * container(s) are ready to be queried. + * + * This is also the state where an optional `appinfo/app.php` was loaded. + * * @param IBootContext $context * * @since 20.0.0