Example #1
0
 /**
  * {@inheritdoc}
  */
 public function buildType(FieldConfigInterface $config, array $options)
 {
     $config->setValueComparison($this->valueComparison);
     $config->setValueTypeSupport(ValuesBag::VALUE_TYPE_RANGE, true);
     $config->setValueTypeSupport(ValuesBag::VALUE_TYPE_COMPARISON, true);
     $viewTransformers = $config->getViewTransformers();
     $config->resetViewTransformers();
     $config->addViewTransformer(new BirthdayTransformer($viewTransformers, $options['allow_age'], $options['allow_future_date']));
 }
Example #2
0
 /**
  * Transforms the value if a value transformer is set.
  *
  * @param mixed                $value
  * @param FieldConfigInterface $field
  *
  * @return string
  */
 protected function normToView($value, FieldConfigInterface $field) : string
 {
     // Scalar values should be converted to strings to
     // facilitate differentiation between empty ("") and zero (0).
     if (null === $value || !$field->getViewTransformers()) {
         if (null !== $value && !is_scalar($value)) {
             throw new \RuntimeException(sprintf('Norm value of type %s is not a scalar value or null and not cannot be ' . 'converted to a string. You must set a viewTransformer for field "%s" with type "%s".', gettype($value), $field->getName(), $field->getType()->getName()));
         }
         return (string) $value;
     }
     foreach ($field->getViewTransformers() as $transformer) {
         $value = $transformer->transform($value);
     }
     return (string) $value;
 }
Example #3
0
 /**
  * Reverse transforms a value if a value transformer is set.
  *
  * @param string               $value  The value to reverse transform
  * @param FieldConfigInterface $config
  *
  * @return mixed Returns null when the value is empty or invalid
  */
 protected function viewToNorm($value, FieldConfigInterface $config)
 {
     $transformers = $config->getViewTransformers();
     if (!$transformers) {
         return '' === $value ? null : $value;
     }
     try {
         for ($i = count($transformers) - 1; $i >= 0; --$i) {
             $value = $transformers[$i]->reverseTransform($value);
         }
         return $value;
     } catch (TransformationFailedException $e) {
         return $e;
     }
 }