aboutsummaryrefslogtreecommitdiffstats
path: root/lib/public/AppFramework/Utility/IControllerMethodReflector.php
diff options
context:
space:
mode:
Diffstat (limited to 'lib/public/AppFramework/Utility/IControllerMethodReflector.php')
-rw-r--r--lib/public/AppFramework/Utility/IControllerMethodReflector.php59
1 files changed, 59 insertions, 0 deletions
diff --git a/lib/public/AppFramework/Utility/IControllerMethodReflector.php b/lib/public/AppFramework/Utility/IControllerMethodReflector.php
new file mode 100644
index 00000000000..95d7fbebb56
--- /dev/null
+++ b/lib/public/AppFramework/Utility/IControllerMethodReflector.php
@@ -0,0 +1,59 @@
+<?php
+
+declare(strict_types=1);
+/**
+ * SPDX-FileCopyrightText: 2016-2024 Nextcloud GmbH and Nextcloud contributors
+ * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+namespace OCP\AppFramework\Utility;
+
+/**
+ * Interface ControllerMethodReflector
+ *
+ * Reads and parses annotations from doc comments
+ *
+ * @since 8.0.0
+ * @deprecated 22.0.0 will be obsolete with native attributes in PHP8
+ * @see https://help.nextcloud.com/t/how-should-we-use-php8-attributes/104278
+ */
+interface IControllerMethodReflector {
+ /**
+ * @param object $object an object or classname
+ * @param string $method the method which we want to inspect
+ * @return void
+ * @since 8.0.0
+ * @deprecated 17.0.0 Reflect should not be called multiple times and only be used internally. This will be removed in Nextcloud 18
+ */
+ public function reflect($object, string $method);
+
+ /**
+ * Inspects the PHPDoc parameters for types
+ *
+ * @param string $parameter the parameter whose type comments should be
+ * parsed
+ * @return string|null type in the type parameters (@param int $something)
+ * would return int or null if not existing
+ * @since 8.0.0
+ * @deprecated 22.0.0 this method is only used internally
+ */
+ public function getType(string $parameter);
+
+ /**
+ * @return array the arguments of the method with key => default value
+ * @since 8.0.0
+ * @deprecated 22.0.0 this method is only used internally
+ */
+ public function getParameters(): array;
+
+ /**
+ * Check if a method contains an annotation
+ *
+ * @param string $name the name of the annotation
+ * @return bool true if the annotation is found
+ * @since 8.0.0
+ * @deprecated 22.0.0 will be obsolete with native attributes in PHP8
+ * @see https://help.nextcloud.com/t/how-should-we-use-php8-attributes/104278
+ */
+ public function hasAnnotation(string $name): bool;
+}