aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-06-17 14:44:02 +0200
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-06-17 14:44:02 +0200
commit5bc8510b3b72cf4bc96614784110d88de8feea87 (patch)
tree1d8d91743c29495ad88c14097d4cc184e612226d
parent39f3fcdf6b41291dcdb6908807d6923621528cee (diff)
downloadnextcloud-server-5bc8510b3b72cf4bc96614784110d88de8feea87.tar.gz
nextcloud-server-5bc8510b3b72cf4bc96614784110d88de8feea87.zip
Load the app.php before running apps' boot method
Some apps require the composer autoloader from app.php. If we run boot before including that file, classes and functions from dependencies won't be found. Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
-rw-r--r--lib/private/legacy/OC_App.php7
-rw-r--r--lib/public/AppFramework/Bootstrap/IBootstrap.php7
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/private/legacy/OC_App.php b/lib/private/legacy/OC_App.php
index a3c429c9ce4..85fd8c99f05 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 581c7d6636a..770c830e735 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