summaryrefslogtreecommitdiffstats
path: root/lib/private/AppFramework
diff options
context:
space:
mode:
authorFerdinand Thiessen <rpm@fthiessen.de>2023-01-28 03:41:24 +0100
committerFerdinand Thiessen <rpm@fthiessen.de>2023-02-06 14:16:35 +0100
commitba8a50c0591c14a63947bda81915988fb03067fe (patch)
tree2656c23a7201bfd7d2b6440af3a3f527a7e3ade0 /lib/private/AppFramework
parent3473b69ad2df1862225cbdff884cf94996f554fc (diff)
downloadnextcloud-server-ba8a50c0591c14a63947bda81915988fb03067fe.tar.gz
nextcloud-server-ba8a50c0591c14a63947bda81915988fb03067fe.zip
fix: Throw `NotFoundExceptionInterface` to fulfill PSR container interface if class not found
Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
Diffstat (limited to 'lib/private/AppFramework')
-rw-r--r--lib/private/AppFramework/Utility/QueryNotFoundException.php41
-rw-r--r--lib/private/AppFramework/Utility/SimpleContainer.php5
2 files changed, 44 insertions, 2 deletions
diff --git a/lib/private/AppFramework/Utility/QueryNotFoundException.php b/lib/private/AppFramework/Utility/QueryNotFoundException.php
new file mode 100644
index 00000000000..04faaa51a4b
--- /dev/null
+++ b/lib/private/AppFramework/Utility/QueryNotFoundException.php
@@ -0,0 +1,41 @@
+<?php
+
+declare(strict_types=1);
+
+/**
+ * @copyright Copyright (c) 2023, Ferdinand Thiessen <rpm@fthiessen.de>
+ *
+ * @author Ferdinand Thiessen <rpm@fthiessen.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OC\AppFramework\Utility;
+
+use OCP\AppFramework\QueryException;
+use Psr\Container\NotFoundExceptionInterface;
+
+/**
+ * Private implementation of the `Psr\Container\NotFoundExceptionInterface`
+ *
+ * QueryNotFoundException is a simple wrapper over the `QueryException`
+ * to fulfill the PSR Container interface.
+ *
+ * You should not catch this class directly but the `NotFoundExceptionInterface`.
+ */
+class QueryNotFoundException extends QueryException implements NotFoundExceptionInterface {
+}
diff --git a/lib/private/AppFramework/Utility/SimpleContainer.php b/lib/private/AppFramework/Utility/SimpleContainer.php
index 06e9d4a3ec7..89e4204c85e 100644
--- a/lib/private/AppFramework/Utility/SimpleContainer.php
+++ b/lib/private/AppFramework/Utility/SimpleContainer.php
@@ -127,7 +127,8 @@ class SimpleContainer implements ArrayAccess, ContainerInterface, IContainer {
' Class can not be instantiated');
}
} catch (ReflectionException $e) {
- throw new QueryException($baseMsg . ' ' . $e->getMessage());
+ // Class does not exist
+ throw new QueryNotFoundException($baseMsg . ' ' . $e->getMessage());
}
}
@@ -145,7 +146,7 @@ class SimpleContainer implements ArrayAccess, ContainerInterface, IContainer {
return $object;
}
- throw new QueryException('Could not resolve ' . $name . '!');
+ throw new QueryNotFoundException('Could not resolve ' . $name . '!');
}
/**