public function buildForm(FormBuilder $builder, array $options) { if ($options['type'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new FileToStringTransformer())); } $builder->appendNormTransformer(new FileToArrayTransformer())->addEventSubscriber(new FixFileUploadListener($this->storage), 10)->add('file', 'field')->add('token', 'hidden')->add('name', 'hidden')->add('originalName', 'hidden'); }
public function buildForm(FormBuilder $builder, array $options) { // Only pass a subset of the options to children $dateOptions = array_intersect_key($options, array_flip(array('years', 'months', 'days'))); $timeOptions = array_intersect_key($options, array_flip(array('hours', 'minutes', 'seconds', 'with_seconds'))); if (isset($options['date_widget'])) { $dateOptions['widget'] = $options['date_widget']; } if (isset($options['date_format'])) { $dateOptions['format'] = $options['date_format']; } $dateOptions['input'] = 'array'; if (isset($options['time_widget'])) { $timeOptions['widget'] = $options['time_widget']; } $timeOptions['input'] = 'array'; $parts = array('year', 'month', 'day', 'hour', 'minute'); $timeParts = array('hour', 'minute'); if ($options['with_seconds']) { $parts[] = 'second'; $timeParts[] = 'second'; } $builder->appendClientTransformer(new DataTransformerChain(array(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], $parts), new ArrayToPartsTransformer(array('date' => array('year', 'month', 'day'), 'time' => $timeParts)))))->add('date', 'date', $dateOptions)->add('time', 'time', $timeOptions); if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'Y-m-d H:i:s'))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], $parts))); } } } }
public function buildForm(FormBuilder $builder, array $options) { $formatter = new \IntlDateFormatter(\Locale::getDefault(), $options['format'], \IntlDateFormatter::NONE, \DateTimeZone::UTC); if ($options['widget'] === 'single-text') { $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $options['format'], \IntlDateFormatter::NONE)); } else { $yearOptions = $monthOptions = $dayOptions = array(); $widget = $options['widget']; if ($widget === 'choice') { // Only pass a subset of the options to children $yearOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['years'], $options['years']), 4, '0', STR_PAD_LEFT)); $monthOptions = array('choice_list' => new MonthChoiceList($formatter, $options['months'])); $dayOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['days'], $options['days']), 2, '0', STR_PAD_LEFT)); } $builder->add('year', $widget, $yearOptions)->add('month', $widget, $monthOptions)->add('day', $widget, $dayOptions)->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], array('year', 'month', 'day'))); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'Y-m-d'))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], array('year', 'month', 'day')))); } else { if ($options['input'] !== 'datetime') { throw new FormException('The "input" option must be "datetime", "string", "timestamp" or "array".'); } } } } $builder->setAttribute('formatter', $formatter)->setAttribute('widget', $options['widget']); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $formatter = new \IntlDateFormatter(\Locale::getDefault(), $options['format'], \IntlDateFormatter::NONE, \DateTimeZone::UTC); if ($options['widget'] === 'single_text') { $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $options['format'], \IntlDateFormatter::NONE)); } else { $yearOptions = $monthOptions = $dayOptions = array(); if ($options['widget'] === 'choice') { if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('year' => null, 'month' => null, 'day' => null), $options['empty_value']); } else { $options['empty_value'] = array('year' => $options['empty_value'], 'month' => $options['empty_value'], 'day' => $options['empty_value']); } // Only pass a subset of the options to children $yearOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['years'], $options['years']), 4, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['year'], 'required' => $options['required']); $monthOptions = array('choice_list' => new MonthChoiceList($formatter, $options['months']), 'empty_value' => $options['empty_value']['month'], 'required' => $options['required']); $dayOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['days'], $options['days']), 2, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['day'], 'required' => $options['required']); } $builder->add('year', $options['widget'], $yearOptions)->add('month', $options['widget'], $monthOptions)->add('day', $options['widget'], $dayOptions)->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], array('year', 'month', 'day'))); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'Y-m-d'))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], array('year', 'month', 'day')))); } } } $builder->setAttribute('formatter', $formatter)->setAttribute('widget', $options['widget']); }
public function buildForm(FormBuilder $builder, array $options) { if ($options['type'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new FileToStringTransformer())); } $builder->appendNormTransformer(new FileToArrayTransformer())->add('file', 'field'); }
public function buildForm(FormBuilder $builder, array $options) { $hourOptions = $minuteOptions = $secondOptions = array(); $parts = array('hour', 'minute'); if ($options['widget'] === 'choice') { $hourOptions['choice_list'] = new PaddedChoiceList(array_combine($options['hours'], $options['hours']), 2, '0', STR_PAD_LEFT); $minuteOptions['choice_list'] = new PaddedChoiceList(array_combine($options['minutes'], $options['minutes']), 2, '0', STR_PAD_LEFT); if ($options['with_seconds']) { $secondOptions['choice_list'] = new PaddedChoiceList(array_combine($options['seconds'], $options['seconds']), 2, '0', STR_PAD_LEFT); } } $builder->add('hour', $options['widget'], $hourOptions)->add('minute', $options['widget'], $minuteOptions); if ($options['with_seconds']) { $parts[] = 'second'; $builder->add('second', $options['widget'], $secondOptions); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'H:i:s'))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], $parts))); } } } $builder->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], $parts, $options['widget'] === 'text'))->setAttribute('widget', $options['widget'])->setAttribute('with_seconds', $options['with_seconds']); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $parts = array('hour', 'minute'); $format = 'H:i'; if ($options['with_seconds']) { $format = 'H:i:s'; $parts[] = 'second'; } if ('single_text' === $options['widget']) { $builder->appendClientTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['user_timezone'], $format)); } else { $hourOptions = $minuteOptions = $secondOptions = array(); if ('choice' === $options['widget']) { if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('hour' => null, 'minute' => null, 'second' => null), $options['empty_value']); } else { $options['empty_value'] = array('hour' => $options['empty_value'], 'minute' => $options['empty_value'], 'second' => $options['empty_value']); } $hours = $minutes = array(); foreach ($options['hours'] as $hour) { $hours[$hour] = str_pad($hour, 2, '0', STR_PAD_LEFT); } foreach ($options['minutes'] as $minute) { $minutes[$minute] = str_pad($minute, 2, '0', STR_PAD_LEFT); } // Only pass a subset of the options to children $hourOptions = array('choices' => $hours, 'empty_value' => $options['empty_value']['hour']); $minuteOptions = array('choices' => $minutes, 'empty_value' => $options['empty_value']['minute']); if ($options['with_seconds']) { $seconds = array(); foreach ($options['seconds'] as $second) { $seconds[$second] = str_pad($second, 2, '0', STR_PAD_LEFT); } $secondOptions = array('choices' => $seconds, 'empty_value' => $options['empty_value']['second']); } // Append generic carry-along options foreach (array('required', 'translation_domain') as $passOpt) { $hourOptions[$passOpt] = $minuteOptions[$passOpt] = $options[$passOpt]; if ($options['with_seconds']) { $secondOptions[$passOpt] = $options[$passOpt]; } } } $builder->add('hour', $options['widget'], $hourOptions)->add('minute', $options['widget'], $minuteOptions); if ($options['with_seconds']) { $builder->add('second', $options['widget'], $secondOptions); } $builder->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], $parts, 'text' === $options['widget'])); } if ('string' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'H:i:s'))); } elseif ('timestamp' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } elseif ('array' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], $parts))); } $builder->setAttribute('widget', $options['widget'])->setAttribute('with_seconds', $options['with_seconds']); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $format = $options['format']; $pattern = null; $allowedFormatOptionValues = array(\IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT); // If $format is not in the allowed options, it's considered as the pattern of the formatter if it is a string if (!in_array($format, $allowedFormatOptionValues, true)) { if (is_string($format)) { $defaultOptions = $this->getDefaultOptions($options); $format = $defaultOptions['format']; $pattern = $options['format']; } else { throw new CreationException('The "format" option must be one of the IntlDateFormatter constants (FULL, LONG, MEDIUM, SHORT) or a string representing a custom pattern'); } } $formatter = new \IntlDateFormatter(\Locale::getDefault(), $format, \IntlDateFormatter::NONE, 'UTC', \IntlDateFormatter::GREGORIAN, $pattern); if ('single_text' === $options['widget']) { $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $format, \IntlDateFormatter::NONE, \IntlDateFormatter::GREGORIAN, $pattern)); } else { $yearOptions = $monthOptions = $dayOptions = array(); if ('choice' === $options['widget']) { if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('year' => null, 'month' => null, 'day' => null), $options['empty_value']); } else { $options['empty_value'] = array('year' => $options['empty_value'], 'month' => $options['empty_value'], 'day' => $options['empty_value']); } $years = $months = $days = array(); foreach ($options['years'] as $year) { $years[$year] = str_pad($year, 4, '0', STR_PAD_LEFT); } foreach ($options['months'] as $month) { $months[$month] = str_pad($month, 2, '0', STR_PAD_LEFT); } foreach ($options['days'] as $day) { $days[$day] = str_pad($day, 2, '0', STR_PAD_LEFT); } // Only pass a subset of the options to children $yearOptions = array('choices' => $years, 'value_strategy' => ChoiceList::COPY_CHOICE, 'index_strategy' => ChoiceList::COPY_CHOICE, 'empty_value' => $options['empty_value']['year']); $monthOptions = array('choices' => $this->formatMonths($formatter, $months), 'value_strategy' => ChoiceList::COPY_CHOICE, 'index_strategy' => ChoiceList::COPY_CHOICE, 'empty_value' => $options['empty_value']['month']); $dayOptions = array('choices' => $days, 'value_strategy' => ChoiceList::COPY_CHOICE, 'index_strategy' => ChoiceList::COPY_CHOICE, 'empty_value' => $options['empty_value']['day']); // Append generic carry-along options foreach (array('required', 'translation_domain') as $passOpt) { $yearOptions[$passOpt] = $monthOptions[$passOpt] = $dayOptions[$passOpt] = $options[$passOpt]; } } $builder->add('year', $options['widget'], $yearOptions)->add('month', $options['widget'], $monthOptions)->add('day', $options['widget'], $dayOptions)->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], array('year', 'month', 'day'))); } if ('string' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'Y-m-d'))); } elseif ('timestamp' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } elseif ('array' === $options['input']) { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], array('year', 'month', 'day')))); } $builder->setAttribute('formatter', $formatter)->setAttribute('widget', $options['widget']); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $parts = array('year', 'month', 'day', 'hour', 'minute'); $timeParts = array('hour', 'minute'); $format = 'Y-m-d H:i:00'; if ($options['with_seconds']) { $format = 'Y-m-d H:i:s'; $parts[] = 'second'; $timeParts[] = 'second'; } if ($options['date_widget'] !== $options['time_widget']) { throw new FormException(sprintf('Options "date_widget" and "time_widget" need to be identical. Used: "date_widget" = "%s" and "time_widget" = "%s".', $options['date_widget'] ?: 'choice', $options['time_widget'] ?: 'choice')); } if ($options['widget'] === 'single_text') { $builder->appendClientTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['user_timezone'], $format)); } else { // Only pass a subset of the options to children $dateOptions = array_intersect_key($options, array_flip(array('years', 'months', 'days', 'empty_value', 'required', 'invalid_message', 'invalid_message_parameters', 'translation_domain'))); $timeOptions = array_intersect_key($options, array_flip(array('hours', 'minutes', 'seconds', 'with_seconds', 'empty_value', 'required', 'invalid_message', 'invalid_message_parameters', 'translation_domain'))); // If `widget` is set, overwrite widget options from `date` and `time` if (isset($options['widget'])) { $dateOptions['widget'] = $options['widget']; $timeOptions['widget'] = $options['widget']; } else { if (isset($options['date_widget'])) { $dateOptions['widget'] = $options['date_widget']; } if (isset($options['time_widget'])) { $timeOptions['widget'] = $options['time_widget']; } } if (isset($options['date_format'])) { $dateOptions['format'] = $options['date_format']; } $dateOptions['input'] = 'array'; $timeOptions['input'] = 'array'; $builder->appendClientTransformer(new DataTransformerChain(array(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], $parts), new ArrayToPartsTransformer(array('date' => array('year', 'month', 'day'), 'time' => $timeParts)))))->add('date', 'date', $dateOptions)->add('time', 'time', $timeOptions); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], $format))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], $parts))); } } } $builder->setAttribute('widget', $options['widget']); }
public function buildForm(FormBuilder $builder, array $options) { if (!isset($options['currency'])) { throw new \InvalidArgumentException(sprintf('The option "currency" must be given for form type "%s".', $this->getName())); } if (!isset($options['amount'])) { throw new \InvalidArgumentException(sprintf('The option "amount" must be given for form type "%s".', $this->getName())); } $allowAllMethods = !isset($options['allowed_methods']); $options['available_methods'] = array(); foreach ($this->paymentMethods as $method) { if (!$allowAllMethods && !in_array($method, $options['allowed_methods'], true)) { continue; } $options['available_methods'][] = $method; } if (!$options['available_methods']) { throw new \RuntimeException(sprintf('You have not selected any payment methods. Available methods: "%s"', implode(', ', $this->paymentMethods))); } $builder->add('method', 'choice', array('choices' => $this->buildChoices($options['available_methods']), 'expanded' => true)); foreach ($options['available_methods'] as $method) { $methodOptions = isset($options['method_options'][$method]) ? $options['method_options'] : array(); $builder->add('data_' . $method, $method, $methodOptions); } $self = $this; $builder->addValidator(new CallbackValidator(function ($form) use($self, $options) { $self->validate($form, $options); })); $builder->appendNormTransformer(new CallbackTransformer(function ($data) use($self, $options) { return $self->transform($data, $options); }, function ($data) use($self, $options) { return $self->reverseTransform($data, $options); })); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $format = $options['format']; $pattern = null; $allowedFormatOptionValues = array(\IntlDateFormatter::FULL, \IntlDateFormatter::LONG, \IntlDateFormatter::MEDIUM, \IntlDateFormatter::SHORT); // If $format is not in the allowed options, it's considered as the pattern of the formatter if it is a string if (!in_array($format, $allowedFormatOptionValues, true)) { if (is_string($format)) { $defaultOptions = $this->getDefaultOptions($options); $format = $defaultOptions['format']; $pattern = $options['format']; } else { throw new CreationException('The "format" option must be one of the IntlDateFormatter constants (FULL, LONG, MEDIUM, SHORT) or a string representing a custom pattern'); } } $formatter = new \IntlDateFormatter(\Locale::getDefault(), $format, \IntlDateFormatter::NONE, \DateTimeZone::UTC, \IntlDateFormatter::GREGORIAN, $pattern); if ($options['widget'] === 'single_text') { $builder->appendClientTransformer(new DateTimeToLocalizedStringTransformer($options['data_timezone'], $options['user_timezone'], $format, \IntlDateFormatter::NONE, \IntlDateFormatter::GREGORIAN, $pattern)); } else { $yearOptions = $monthOptions = $dayOptions = array(); if ($options['widget'] === 'choice') { if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('year' => null, 'month' => null, 'day' => null), $options['empty_value']); } else { $options['empty_value'] = array('year' => $options['empty_value'], 'month' => $options['empty_value'], 'day' => $options['empty_value']); } // Only pass a subset of the options to children $yearOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['years'], $options['years']), 4, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['year'], 'required' => $options['required']); $monthOptions = array('choice_list' => new MonthChoiceList($formatter, $options['months']), 'empty_value' => $options['empty_value']['month'], 'required' => $options['required']); $dayOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['days'], $options['days']), 2, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['day'], 'required' => $options['required']); } $builder->add('year', $options['widget'], $yearOptions)->add('month', $options['widget'], $monthOptions)->add('day', $options['widget'], $dayOptions)->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], array('year', 'month', 'day'))); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], 'Y-m-d'))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], array('year', 'month', 'day')))); } } } $builder->setAttribute('formatter', $formatter)->setAttribute('widget', $options['widget']); }
/** * {@inheritdoc} */ public function buildForm(FormBuilder $builder, array $options) { $parts = array('hour', 'minute'); $format = 'H:i:00'; if ($options['with_seconds']) { $format = 'H:i:s'; $parts[] = 'second'; } if ($options['widget'] === 'single_text') { $builder->appendClientTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['user_timezone'], $format)); } else { $hourOptions = $minuteOptions = $secondOptions = array(); if ($options['widget'] === 'choice') { if (is_array($options['empty_value'])) { $options['empty_value'] = array_merge(array('hour' => null, 'minute' => null, 'second' => null), $options['empty_value']); } else { $options['empty_value'] = array('hour' => $options['empty_value'], 'minute' => $options['empty_value'], 'second' => $options['empty_value']); } // Only pass a subset of the options to children $hourOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['hours'], $options['hours']), 2, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['hour'], 'required' => $options['required']); $minuteOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['minutes'], $options['minutes']), 2, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['minute'], 'required' => $options['required']); if ($options['with_seconds']) { $secondOptions = array('choice_list' => new PaddedChoiceList(array_combine($options['seconds'], $options['seconds']), 2, '0', STR_PAD_LEFT), 'empty_value' => $options['empty_value']['second'], 'required' => $options['required']); } } $builder->add('hour', $options['widget'], $hourOptions)->add('minute', $options['widget'], $minuteOptions); if ($options['with_seconds']) { $builder->add('second', $options['widget'], $secondOptions); } $builder->appendClientTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['user_timezone'], $parts, $options['widget'] === 'text')); } if ($options['input'] === 'string') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToStringTransformer($options['data_timezone'], $options['data_timezone'], $format))); } else { if ($options['input'] === 'timestamp') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToTimestampTransformer($options['data_timezone'], $options['data_timezone']))); } else { if ($options['input'] === 'array') { $builder->appendNormTransformer(new ReversedTransformer(new DateTimeToArrayTransformer($options['data_timezone'], $options['data_timezone'], $parts))); } } } $builder->setAttribute('widget', $options['widget'])->setAttribute('with_seconds', $options['with_seconds']); }