vendor/symfony/form/FormError.php line 21

  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\Form;
  11. use Symfony\Component\Form\Exception\BadMethodCallException;
  12. /**
  13.  * Wraps errors in forms.
  14.  *
  15.  * @author Bernhard Schussek <bschussek@gmail.com>
  16.  */
  17. class FormError
  18. {
  19.     protected $messageTemplate;
  20.     protected $messageParameters;
  21.     protected $messagePluralization;
  22.     private string $message;
  23.     private mixed $cause;
  24.     /**
  25.      * The form that spawned this error.
  26.      */
  27.     private ?FormInterface $origin null;
  28.     /**
  29.      * Any array key in $messageParameters will be used as a placeholder in
  30.      * $messageTemplate.
  31.      *
  32.      * @param string      $message              The translated error message
  33.      * @param string|null $messageTemplate      The template for the error message
  34.      * @param array       $messageParameters    The parameters that should be
  35.      *                                          substituted in the message template
  36.      * @param int|null    $messagePluralization The value for error message pluralization
  37.      * @param mixed       $cause                The cause of the error
  38.      *
  39.      * @see \Symfony\Component\Translation\Translator
  40.      */
  41.     public function __construct(string $messagestring $messageTemplate null, array $messageParameters = [], int $messagePluralization nullmixed $cause null)
  42.     {
  43.         $this->message $message;
  44.         $this->messageTemplate $messageTemplate ?: $message;
  45.         $this->messageParameters $messageParameters;
  46.         $this->messagePluralization $messagePluralization;
  47.         $this->cause $cause;
  48.     }
  49.     /**
  50.      * Returns the error message.
  51.      */
  52.     public function getMessage(): string
  53.     {
  54.         return $this->message;
  55.     }
  56.     /**
  57.      * Returns the error message template.
  58.      */
  59.     public function getMessageTemplate(): string
  60.     {
  61.         return $this->messageTemplate;
  62.     }
  63.     /**
  64.      * Returns the parameters to be inserted in the message template.
  65.      */
  66.     public function getMessageParameters(): array
  67.     {
  68.         return $this->messageParameters;
  69.     }
  70.     /**
  71.      * Returns the value for error message pluralization.
  72.      */
  73.     public function getMessagePluralization(): ?int
  74.     {
  75.         return $this->messagePluralization;
  76.     }
  77.     /**
  78.      * Returns the cause of this error.
  79.      */
  80.     public function getCause(): mixed
  81.     {
  82.         return $this->cause;
  83.     }
  84.     /**
  85.      * Sets the form that caused this error.
  86.      *
  87.      * This method must only be called once.
  88.      *
  89.      * @throws BadMethodCallException If the method is called more than once
  90.      */
  91.     public function setOrigin(FormInterface $origin)
  92.     {
  93.         if (null !== $this->origin) {
  94.             throw new BadMethodCallException('setOrigin() must only be called once.');
  95.         }
  96.         $this->origin $origin;
  97.     }
  98.     /**
  99.      * Returns the form that caused this error.
  100.      */
  101.     public function getOrigin(): ?FormInterface
  102.     {
  103.         return $this->origin;
  104.     }
  105. }