Example #1
0
 /**
  * Envoie l'exception de l'erreur.
  *
  * Le type d'exception envoyé peut être paramétré à deux endroits,
  * au niveau du champ (option _exception_), ou au niveau du de la configuration
  * globale.
  * Par défaut une {@link Solire\Form\Exception} est envoyée.
  *
  * @param Field $field Champ responçable de l'erreur
  *
  * @return void
  * @throws mixed         En cas d'erreur sur un champ
  * @throws Exception\Lib Si il y a une erreur dans le formulaire
  */
 protected function throwError(Field $field)
 {
     $message = $field->getErrorMessage();
     if ($field->hasPersonalException() === true) {
         // Exception personnalisée au niveau du champ
         $className = $field->getPersonalException();
         $error = new $className($message);
     } elseif ($this->config->get(self::CONFIG, 'exception') !== null) {
         // Exception personnalisée au niveau du formulaire
         $className = $this->config->get(self::CONFIG, 'exception');
         $error = new $className($message);
     } else {
         $className = 'Exception';
         $error = new Exception($message);
     }
     $traits = class_uses($error);
     if (isset($traits['Solire\\Form\\Exception\\MonoTrait'])) {
         $error->setErrorInputName($this->target);
     }
     //        if (isset($this->_config['appelFonction'])) {
     //            if (is_callable($this->_config['appelFonction'])) {
     //                $error = call_user_func(
     //                    $this->_config['appelFonction'], $this, $error
     //                );
     //            }
     //        }
     throw $error;
 }