/** * Generates: "Argument '{$argumentName}' is invalid: expected value to be of type '{$expectedType}'[, got '{$value}']". * * @param string $argumentName * @param string $expectedType * @param mixed|null $value Optionally to output the type that was received * @param \Exception|null $previous */ public function __construct($argumentName, $expectedType, $value = null, Exception $previous = null) { if ($value === null) { $valueString = ''; } elseif (is_object($value)) { $valueString = ", got '" . get_class($value) . "'"; } else { $valueString = ", got '" . gettype($value) . "'"; } parent::__construct($argumentName, "expected value to be of type '{$expectedType}'" . $valueString, $previous); }
/** * Generates: "Argument '{$argumentName}' is invalid: '{$value}' is wrong value[ in class '{$className}']". * * @param string $argumentName * @param mixed $value * @param string|null $className Optionally to specify class in abstract/parent classes * @param \Exception|null $previous */ public function __construct($argumentName, $value, $className = null, Exception $previous = null) { $valueStr = is_string($value) ? $value : var_export($value, true); $parameters = ['%actualValue%' => $valueStr]; $whatIsWrong = "'%actualValue%' is wrong value"; if ($className) { $whatIsWrong .= " in class '%className%'"; $parameters['%className%'] = $className; } parent::__construct($argumentName, $whatIsWrong, $previous); // Alter the message template & inject new parameters. $this->setMessageTemplate(str_replace('%whatIsWrong%', $whatIsWrong, $this->getMessageTemplate())); $this->addParameters($parameters); $this->message = $this->getBaseTranslation(); }
/** * Generates: "Argument '{$argumentName}' is invalid: expected value to be of type '{$expectedType}'[, got '{$value}']". * * @param string $argumentName * @param string $expectedType * @param mixed|null $value Optionally to output the type that was received * @param \Exception|null $previous */ public function __construct($argumentName, $expectedType, $value = null, Exception $previous = null) { $parameters = ['%expectedType%' => $expectedType]; $whatIsWrong = "expected value to be of type '%expectedType%'"; if ($value) { $whatIsWrong .= ", got '%actualType%'"; $actualType = is_object($value) ? get_class($value) : gettype($value); $parameters['%actualType%'] = $actualType; } parent::__construct($argumentName, $whatIsWrong, $previous); // Alter the message template & inject new parameters. $this->setMessageTemplate(str_replace('%whatIsWrong%', $whatIsWrong, $this->getMessageTemplate())); $this->addParameters($parameters); $this->message = $this->getBaseTranslation(); }
/** * Creates a new exception when $value is invalid. * * @param mixed $value */ public function __construct($value) { parent::__construct('$value', "'" . var_export($value, true) . "' is not a valid country identifier"); }
/** * Generates: "Argument '{$argumentName}' is invalid: '{$value}' is wrong value[ in class '{$className}']" * * @param string $argumentName * @param mixed $value * @param string|null $className Optionally to specify class in abstract/parent classes * @param \Exception|null $previous */ public function __construct($argumentName, $value, $className = null, Exception $previous = null) { $valueStr = is_string($value) ? $value : var_export($value, true); parent::__construct($argumentName, "'{$valueStr}' is wrong value" . ($className ? " in class '{$className}'" : ""), $previous); }