From 5ca27085fcb01db920326ea9ad892cc9a49253ab Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 4 Nov 2019 19:32:49 +0100 Subject: mark getAppContainer as a valid way to construct app containers this is triggerd (and not cought by the query arm) if an item from an app is queried before the app queries it's own Application instance Signed-off-by: Robin Appelman --- lib/public/AppFramework/App.php | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'lib/public/AppFramework') diff --git a/lib/public/AppFramework/App.php b/lib/public/AppFramework/App.php index 3b42b28758d..fd91d8d058d 100644 --- a/lib/public/AppFramework/App.php +++ b/lib/public/AppFramework/App.php @@ -77,6 +77,8 @@ class App { $e = new \RuntimeException('App class ' . $applicationClassName . ' is not setup via query() but directly'); $setUpViaQuery = false; + $classNameParts = explode('\\', trim($applicationClassName, '\\')); + foreach ($e->getTrace() as $step) { if (isset($step['class'], $step['function'], $step['args'][0]) && $step['class'] === ServerContainer::class && @@ -84,6 +86,12 @@ class App { $step['args'][0] === $applicationClassName) { $setUpViaQuery = true; break; + } else if (isset($step['class'], $step['function'], $step['args'][0]) && + $step['class'] === ServerContainer::class && + $step['function'] === 'getAppContainer' && + $step['args'][1] === $classNameParts[1]) { + $setUpViaQuery = true; + break; } } -- cgit v1.2.3