Новое в Symfony 6.3 — Улучшения Form

Источник: «New in Symfony 6.3: Form Improvements»
Symfony 6.3 улучшает обработку секунд в полях даты/времени, обновляет виджеты HTML 5 для даты/времени и позволяет настраивать параметры опции placeholder.

Компонент Form — один из самых надёжных компонентов Symfony. Он настолько зрелый и стабильный, что в него больше не добавляются новые возможности. Однако в Symfony 6.3 мы его улучшили, добавив несколько новых незначительных возможностей.

Улучшенная обработка секунд в полях даты/времени

Опция with_seconds для таких полей как, DateTimeType и TimeType, сообщает Symfony, следует ли включать секунды в input. Когда в поле формы нет данных, эта опция показывает/скрывает секунды.

Однако, когда в поле есть какие-либо данные, секунды всегда отображаются из-за того, как обрабатываются значения даты/времени.

В Symfony 6.3 эта опция всегда будет работать должным образом, независимо от данных поля.

HTML5 виджеты даты/времени по умолчанию

Опция html5 полей даты говорит Symfony использовать собственный виджет HTML5 для отображения полей даты/времени. Однако установки значения true недостаточно, чтобы увидеть эти нативные виджеты. Вы также должны установить для опции widget значение single_text.

Однако из-за Обещания обратной совместимости Symfony мы не можем просто изменить значение по умолчанию для этой опции widget, потому что это нарушит работу некоторых приложений. Вместо этого в Symfony 6.3 мы рекомендуем устанавливать значение для этой опции. Таким образом, все приложения должны принять осознанное решение о том, какое значение использовать в этой опции widget.

Это позволит сделать single_text значением widget по умолчанию в Symfony 7.0 (выходящем в ноябре 2023 года), чтобы завершить это улучшение.

Выбор атрибутов placeholder

Поле ChoiceType и все связанные с ним поля (Country, Currency, Locale, Language, Entity, и т.д.) определяют опцию placeholder для отображения общей Choose an option/Выберите опцию пустой опции наверху списка опций.

В Symfony 6.3 мы добавили новую опцию placeholder_attr, чтобы вы могли настроить placeholder (например, чтобы отображать его отключённым, добавлять к нему HTML атрибуты и т.д.):

use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
// ...

$builder->add('fruits', ChoiceType::class, [
// ...
'placeholder' => '...',
'placeholder_attr' => [
'title' => 'Choose an option',
'disabled' => true,
'data-some-custom-attribute' => 'foo',
],
]);

Дополнительные материалы

Предыдущая Статья

Vim: Файлы шаблонов

Следующая Статья

Vim: Установка плагинов