Хорошая реализация форм

Sender

Новичок
Интересует, сталкивался ли кто с хорошей реализацией форм?
Просто накидайте ссылки и в двух словах.

Что хотелось бы увидеть от реализации:
1. Описание формы (примитивы), построение формы.
2. Валидация, в том числе и заковыристых случаев, типа "игнорировать валидацию адреса доставки если чекнут адрес-доставки такой-же". Валидация описываться должна на уровне формы.
3. В идеале например привязка к ORM, типа доктрины когда форма связана с объектом.
4. Получение на сервере значений как объекта, на клиенте рендеринг как строки, запись в хранилище как надо. Прозрачно и без боли.

Из опыта очень нравится как реализованы формы в onPHP.

Из опыта не очень нравится как реализованы в Symfony.

Хочу расширить кругозор ну и если кто работает с Symfony, как вам работается с формами?
 

hell0w0rd

Продвинутый новичок
Когда работал с symfony - нормально с формами было. А чего конкретно не устраивает?
Если хочется расширяемости, гибкости - лучше сложно придумать.
 

AmdY

Пью пиво
Команда форума
Мы лет десять назад формы генерили через xslt, но по нынешним временам нафик надо. Во всех фреймворках есть решения для стандартных форм, а кастомные всё равно делаются больно уж уникальные с приправкой rest, js и ajax.
 

MiksIr

miksir@home:~$
Тут дело даже не в xslt, это может быть и PHP шаблонизатор, который на основе схемы генерит форму, но такого пока не нашел, только для java. Да ничего не мешает вводить в схему данных свои типы, дописывать свои xslt и по классам уже в доме вешать всякие аяксы. Но у меня специфика, что это данные для внешнего относительно меня сервиса, и хочется, что бы эту схему он мне и отдавал.
 

WMix

герр M:)ller
Партнер клуба
@AmdY, темная штучка кстати, а в связке с propel очень окуратно получалось
 

AmdY

Пью пиво
Команда форума
@WMix я о том же, что формы нужно шенерить не на основании левой xml-ки, а на основании рефлексии непосредственно модели. Пару лет назад было подобное обсуждение.
 

hell0w0rd

Продвинутый новичок
@WMix я о том же, что формы нужно шенерить не на основании левой xml-ки, а на основании рефлексии непосредственно модели. Пару лет назад было подобное обсуждение.
так у тебя в схеме xml модель полностью описана. Это же полное описание для валидации.
Однако имхо, если таких форм конечное количество - лучше ручками сделать.
 

hell0w0rd

Продвинутый новичок
Ну вопрос был про https://raw.githubusercontent.com/doctrine/doctrine2/master/doctrine-mapping.xsd. Такое можно хотеть, только если у тебя туча разных данных, которые приходят в формате xml и ссылкой на схему и хочется их на лету редактировать.
Мне это кажется частным случаем, скорее всего проще самому написать нужный конвертер.
 

WMix

герр M:)ller
Партнер клуба
Вот не скажи, если форма от формы отличается и подразумевает нечто большее чем сборка данных, соглашусь. Но когда форма это по сути строка таблицы, размазанная в несколько шагов, с логикой выборочных полей в зависимости от заполнения. То генерилка сам то.
 

Sender

Новичок
Когда работал с symfony - нормально с формами было. А чего конкретно не устраивает?
Если хочется расширяемости, гибкости - лучше сложно придумать.
Ну начнем с самого простого. CSRF явно должен описываться просто как поле с нужным валидатором. Сейчас чтобы управлять csrf надо его рендерить как поле, конфигурировать как форму.

Описывать сами формы с использованием массивов - то еще удовольствие.

Для простых случаев это все работает, но как только хочешь reuse, используешь формы в формах, сложные валидации - оно все начинает брыкаться в самых неожиданных местах.
 
Сверху