Существует ли гибкий form-builder (PHP), позволяющий одновременно назначать правила для серверной и клиентской валидации?
Собственно вопрос о том, чтобы не повторять одну и ту же работу два раза, в частности на хабре
уже была попытка осмысления этой проблемы и предложен один из выходов (вернее его прообраз) и как там правильно заметили:
основная мысль — генерация клиентской валидации на сервере
Например, для клиентской валидации и построения всяких вкусностей типа повторяющиеся блоки (к примеру
zforms.ru/docs/repeatable-model/) есть красивые решения типа
zforms.ru/ от разработчика интерфейсов компании Яндекс
Дмитрия Филатова
Да и просто, для валидации полно плагинов с использованием jQuery.
В конце концов есть
Vanadium: семантическая валидация на клиенте
Для построения форм и серверной валидации есть замечательная библиотека
Алексея Борзова и, как
поправил меня сам Алексей, —
Bertrand Mansion:
HTML_QuickForm2.
Есть первая версия HTML_QuickForm, которая позволяет делать то, что требуется, т.е. строить формы и на основании запрашиваемых правил серверной валидации на лету генерировать правила клиентской валидации, но у нее есть огромный минус — невозможность простыми способами строить сложные формы, т.е. когда требуется например группу полей добавлять в группу, зато ей очень хорошо удаются плоские формы.
Дмитрий Филатов на мой вопрос есть ли обертка для построения таких форм ответил мне в МоёмКруге:
Есть не обертка на PHP, а xml-описание правил валидации, из которого строится с помощью xsl клиентский код и которое может быть использовано для серверной валидации.
Алексей Борзов
на вопрос о дальнейшей судьбе HTML_QuickForm2 ответил:
HTML_QuickForm2 в альфе потому, что опять же недописана функциональность (а именно интеграция с жаваскриптом). Но в отличие от старой версии он почти на 100% покрыт тестами и по стабильности явно не хуже...
Другими словами, есть дикое желание подружить HTML_QuickForm2 и zforms.ru, но перед этим хотел бы поинтересоваться у «ленивых программистов», как они борются с ленью при построении форм и двойной работой по проверке вводимых данных?
update: вопрос решил путем запуска проекта
jquickform.ru/