| 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 | |
| ) | |
| ); | |
| } | |
| } | |