/** * @param ConstraintViolationListInterface|null $violations * @param array $item * @param array $messageParameters * @param int $code * @param \Exception|null $previous */ public function __construct(ConstraintViolationListInterface $violations, InvalidItemInterface $item, array $messageParameters = [], $code = 0, \Exception $previous = null) { $this->violations = $violations; $errors = []; /** @var ConstraintViolationInterface $violation */ foreach ($violations as $violation) { // TODO: re-format the message, property path doesn't exist for class constraint // TODO: for instance cf VariantGroupAxis $invalidValue = $violation->getInvalidValue(); if ($invalidValue instanceof ProductPriceInterface) { $invalidValue = sprintf('%s %s', $invalidValue->getData(), $invalidValue->getCurrency()); } elseif (is_object($invalidValue) && method_exists($invalidValue, '__toString')) { $invalidValue = (string) $invalidValue; } elseif (is_object($invalidValue)) { $invalidValue = get_class($invalidValue); } elseif (is_array($invalidValue)) { $invalidValue = implode(', ', $invalidValue); } $errors[] = sprintf("%s: %s: %s\n", $violation->getPropertyPath(), $violation->getMessage(), $invalidValue); } parent::__construct(implode("\n", $errors), $item, $messageParameters, $code, $previous); }
/** * Handle step execution warning * * @param StepExecution $stepExecution * @param mixed $element * @param InvalidItemException $e */ protected function handleStepExecutionWarning(StepExecution $stepExecution, $element, InvalidItemException $e) { if ($element instanceof AbstractConfigurableStepElement) { $warningName = $element->getName(); } else { $warningName = get_class($element); } $stepExecution->addWarning($warningName, $e->getMessage(), $e->getMessageParameters(), $e->getItem()); $this->dispatchInvalidItemEvent(get_class($element), $e->getMessage(), $e->getMessageParameters(), $e->getItem()); }
/** * Constructor * * @param string $code * @param string $value * @param array $item */ public function __construct($code, $value, array $item) { $this->messageParameters = ['%code%' => $code, '%value%' => $value]; $exception = new ParametrizedException($this->messageTemplate, $this->messageParameters); parent::__construct($exception->getMessage(), $item, $this->messageParameters); }
/** * Constructor * * @param array $fixtureConfig * @param InvalidItemException $previous */ public function __construct(array $fixtureConfig, InvalidItemException $previous) { $message = sprintf("%s\n%s", $previous->getMessage(), Yaml::dump(['fixture' => $fixtureConfig, 'item' => $previous->getItem()], 2)); parent::__construct($message); }
/** * Handle step execution warning * * @param StepExecution $stepExecution * @param mixed $element * @param InvalidItemException $e */ protected function handleStepExecutionWarning(StepExecution $stepExecution, $element, InvalidItemException $e) { $stepExecution->addWarning($e->getMessage(), $e->getMessageParameters(), $e->getItem()); $this->dispatchInvalidItemEvent(get_class($element), $e->getMessage(), $e->getMessageParameters(), $e->getItem()); }
/** * Constructor * * @param string $identifier * @param array $item */ public function __construct($identifier, array $item) { $messageParameters = ['%identifier%' => $identifier]; $exception = new ParametrizedException($this->messageTemplate, $messageParameters); parent::__construct($exception->getMessage(), $item, $messageParameters); }