vendor/symfony/validator/ConstraintViolation.php line 19

  1. <?php
  2. /*
  3.  * This file is part of the Symfony package.
  4.  *
  5.  * (c) Fabien Potencier <fabien@symfony.com>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Symfony\Component\Validator;
  11. /**
  12.  * Default implementation of {@ConstraintViolationInterface}.
  13.  *
  14.  * @author Bernhard Schussek <bschussek@gmail.com>
  15.  */
  16. class ConstraintViolation implements ConstraintViolationInterface
  17. {
  18.     private string|\Stringable $message;
  19.     private ?string $messageTemplate;
  20.     private array $parameters;
  21.     private ?int $plural;
  22.     private mixed $root;
  23.     private ?string $propertyPath;
  24.     private mixed $invalidValue;
  25.     private ?Constraint $constraint;
  26.     private ?string $code;
  27.     private mixed $cause;
  28.     /**
  29.      * Creates a new constraint violation.
  30.      *
  31.      * @param string|\Stringable $message         The violation message as a string or a stringable object
  32.      * @param string|null        $messageTemplate The raw violation message
  33.      * @param array              $parameters      The parameters to substitute in the
  34.      *                                            raw violation message
  35.      * @param mixed              $root            The value originally passed to the
  36.      *                                            validator
  37.      * @param string|null        $propertyPath    The property path from the root
  38.      *                                            value to the invalid value
  39.      * @param mixed              $invalidValue    The invalid value that caused this
  40.      *                                            violation
  41.      * @param int|null           $plural          The number for determining the plural
  42.      *                                            form when translating the message
  43.      * @param string|null        $code            The error code of the violation
  44.      * @param Constraint|null    $constraint      The constraint whose validation
  45.      *                                            caused the violation
  46.      * @param mixed              $cause           The cause of the violation
  47.      */
  48.     public function __construct(string|\Stringable $message, ?string $messageTemplate, array $parametersmixed $root, ?string $propertyPathmixed $invalidValueint $plural nullstring $code nullConstraint $constraint nullmixed $cause null)
  49.     {
  50.         $this->message $message;
  51.         $this->messageTemplate $messageTemplate;
  52.         $this->parameters $parameters;
  53.         $this->plural $plural;
  54.         $this->root $root;
  55.         $this->propertyPath $propertyPath;
  56.         $this->invalidValue $invalidValue;
  57.         $this->constraint $constraint;
  58.         $this->code $code;
  59.         $this->cause $cause;
  60.     }
  61.     public function __toString(): string
  62.     {
  63.         if (\is_object($this->root)) {
  64.             $class 'Object('.\get_class($this->root).')';
  65.         } elseif (\is_array($this->root)) {
  66.             $class 'Array';
  67.         } else {
  68.             $class = (string) $this->root;
  69.         }
  70.         $propertyPath = (string) $this->propertyPath;
  71.         if ('' !== $propertyPath && '[' !== $propertyPath[0] && '' !== $class) {
  72.             $class .= '.';
  73.         }
  74.         if (null !== ($code $this->code) && '' !== $code) {
  75.             $code ' (code '.$code.')';
  76.         }
  77.         return $class.$propertyPath.":\n    ".$this->getMessage().$code;
  78.     }
  79.     public function getMessageTemplate(): string
  80.     {
  81.         return (string) $this->messageTemplate;
  82.     }
  83.     public function getParameters(): array
  84.     {
  85.         return $this->parameters;
  86.     }
  87.     public function getPlural(): ?int
  88.     {
  89.         return $this->plural;
  90.     }
  91.     public function getMessage(): string|\Stringable
  92.     {
  93.         return $this->message;
  94.     }
  95.     public function getRoot(): mixed
  96.     {
  97.         return $this->root;
  98.     }
  99.     public function getPropertyPath(): string
  100.     {
  101.         return (string) $this->propertyPath;
  102.     }
  103.     public function getInvalidValue(): mixed
  104.     {
  105.         return $this->invalidValue;
  106.     }
  107.     /**
  108.      * Returns the constraint whose validation caused the violation.
  109.      */
  110.     public function getConstraint(): ?Constraint
  111.     {
  112.         return $this->constraint;
  113.     }
  114.     /**
  115.      * Returns the cause of the violation.
  116.      */
  117.     public function getCause(): mixed
  118.     {
  119.         return $this->cause;
  120.     }
  121.     public function getCode(): ?string
  122.     {
  123.         return $this->code;
  124.     }
  125. }