Don't do a recursive search
Signed-off-by: Joas Schilling <coding@schilljs.com>
This commit is contained in:
parent
9208f6379c
commit
5695a4ec92
|
@ -49,6 +49,7 @@ use OC\ServerContainer;
|
|||
use OCP\AppFramework\Http\IOutput;
|
||||
use OCP\AppFramework\IApi;
|
||||
use OCP\AppFramework\IAppContainer;
|
||||
use OCP\AppFramework\QueryException;
|
||||
use OCP\Files\Folder;
|
||||
use OCP\Files\IAppData;
|
||||
use OCP\IL10N;
|
||||
|
@ -373,7 +374,25 @@ class DIContainer extends SimpleContainer implements IAppContainer {
|
|||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return mixed
|
||||
* @throws QueryException if the query could not be resolved
|
||||
*/
|
||||
public function query($name) {
|
||||
try {
|
||||
return $this->queryNoFallback($name);
|
||||
} catch (QueryException $e) {
|
||||
return $this->getServer()->query($name);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
* @return mixed
|
||||
* @throws QueryException if the query could not be resolved
|
||||
*/
|
||||
public function queryNoFallback($name) {
|
||||
$name = $this->sanitizeName($name);
|
||||
|
||||
if ($this->offsetExists($name)) {
|
||||
|
@ -388,6 +407,7 @@ class DIContainer extends SimpleContainer implements IAppContainer {
|
|||
}
|
||||
}
|
||||
|
||||
return $this->getServer()->query($name);
|
||||
throw new QueryException('Could not resolve ' . $name . '!' .
|
||||
' Class can not be instantiated');
|
||||
}
|
||||
}
|
||||
|
|
|
@ -79,7 +79,7 @@ class ServerContainer extends SimpleContainer {
|
|||
$segments = explode('\\', $name);
|
||||
$appContainer = $this->getAppContainer(strtolower($segments[1]));
|
||||
try {
|
||||
return $appContainer->query($name);
|
||||
return $appContainer->queryNoFallback($name);
|
||||
} catch (QueryException $e) {
|
||||
// Didn't find the service in the respective app container,
|
||||
// ignore it and fall back to the core container.
|
||||
|
|
|
@ -62,6 +62,7 @@ interface IContainer {
|
|||
*
|
||||
* @param string $name
|
||||
* @return mixed
|
||||
* @throws QueryException if the query could not be resolved
|
||||
* @since 6.0.0
|
||||
*/
|
||||
public function query($name);
|
||||
|
|
|
@ -68,7 +68,7 @@ class ManagerTest extends TestCase {
|
|||
parent::setUp();
|
||||
|
||||
$this->user = $this->createMock(IUser::class);
|
||||
$this->appManager = $this->createMock('\OC\App\AppManager');
|
||||
$this->appManager = $this->createMock(AppManager::class);
|
||||
$this->session = $this->createMock(ISession::class);
|
||||
$this->config = $this->createMock(IConfig::class);
|
||||
$this->activityManager = $this->createMock(IManager::class);
|
||||
|
|
Loading…
Reference in New Issue