wp/wp-includes/Requests/src/Exception/InvalidArgument.php
changeset 21 48c4eec2b7e6
equal deleted inserted replaced
20:7b1b88e27a20 21:48c4eec2b7e6
       
     1 <?php
       
     2 
       
     3 namespace WpOrg\Requests\Exception;
       
     4 
       
     5 use InvalidArgumentException;
       
     6 
       
     7 /**
       
     8  * Exception for an invalid argument passed.
       
     9  *
       
    10  * @package Requests\Exceptions
       
    11  * @since   2.0.0
       
    12  */
       
    13 final class InvalidArgument extends InvalidArgumentException {
       
    14 
       
    15 	/**
       
    16 	 * Create a new invalid argument exception with a standardized text.
       
    17 	 *
       
    18 	 * @param int    $position The argument position in the function signature. 1-based.
       
    19 	 * @param string $name     The argument name in the function signature.
       
    20 	 * @param string $expected The argument type expected as a string.
       
    21 	 * @param string $received The actual argument type received.
       
    22 	 *
       
    23 	 * @return \WpOrg\Requests\Exception\InvalidArgument
       
    24 	 */
       
    25 	public static function create($position, $name, $expected, $received) {
       
    26 		// phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_debug_backtrace
       
    27 		$stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS, 2);
       
    28 
       
    29 		return new self(
       
    30 			sprintf(
       
    31 				'%s::%s(): Argument #%d (%s) must be of type %s, %s given',
       
    32 				$stack[1]['class'],
       
    33 				$stack[1]['function'],
       
    34 				$position,
       
    35 				$name,
       
    36 				$expected,
       
    37 				$received
       
    38 			)
       
    39 		);
       
    40 	}
       
    41 }