summaryrefslogtreecommitdiffstats
path: root/wp-includes/Requests/src/Exception/InvalidArgument.php
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--wp-includes/Requests/src/Exception/InvalidArgument.php41
1 files changed, 41 insertions, 0 deletions
diff --git a/wp-includes/Requests/src/Exception/InvalidArgument.php b/wp-includes/Requests/src/Exception/InvalidArgument.php
new file mode 100644
index 0000000..0ab7332
--- /dev/null
+++ b/wp-includes/Requests/src/Exception/InvalidArgument.php
@@ -0,0 +1,41 @@
+<?php
+
+namespace WpOrg\Requests\Exception;
+
+use InvalidArgumentException;
+
+/**
+ * Exception for an invalid argument passed.
+ *
+ * @package Requests\Exceptions
+ * @since 2.0.0
+ */
+final class InvalidArgument extends InvalidArgumentException {
+
+ /**
+ * Create a new invalid argument exception with a standardized text.
+ *
+ * @param int $position The argument position in the function signature. 1-based.
+ * @param string $name The argument name in the function signature.
+ * @param string $expected The argument type expected as a string.
+ * @param string $received The actual argument type received.
+ *
+ * @return \WpOrg\Requests\Exception\InvalidArgument
+ */
+ public static function create($position, $name, $expected, $received) {
+ // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
+ $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
+
+ return new self(
+ sprintf(
+ '%s::%s(): Argument #%d (%s) must be of type %s, %s given',
+ $stack[1]['class'],
+ $stack[1]['function'],
+ $position,
+ $name,
+ $expected,
+ $received
+ )
+ );
+ }
+}