@Baumr Я не использовал его, потому что он не выполнял проверку в JS.

нальный вопрос

Существует ли хорошо протестированная и желательно зрелая библиотека для создания форм в PHP как со стороны клиента (именно здесь входит jQuery), так и со стороны сервера?

В идеале форма должна быть сгенерирована из классов PHP или написана в виде обычного HTML и проанализированаAgavi, Затем библиотека автоматически создаст правильные хуки jQuery, чтобы можно было запустить включенную проверку на стороне клиента jQuery.

Одно из заданий, которые я выполняю регулярно, - это изменение старой доброй формы контактов, и я хотел бы стандартизировать эту работу, чтобы каждый раз использовать один и тот же код передовой практики. Учитывая это, HTML-код, сгенерированный классами PHP, должен быть достаточно хорошим, чтобы при необходимости можно было добавлять дополнительные хуки CSS и т. Д.

Любые предложения с благодарностью принимаются.

Обновить

Я просматривал и просматривал варианты, которые нашел, и которые другие предложили ниже, и в настоящий момент я оценил бы проекты в следующем порядке по качеству на основании небольшого количества испытаний и исследований, которые я провел по всем из них.

ValidForm BuilderjFormerHTML_QuickForm2 (если вы можете заставить проверку на стороне клиента работать, то это должно подняться выше, чем jFormer!)PHP-форм-строитель-классИспользуйте Symfony! (вся структура MVC для рендеринга и проверки форм излишня)

Если честно, меня все еще не убеждает ни один из вариантов, и мне остается удивляться, почему люди, начинающие эти проекты, не начинают с каких-то надежных и хорошо протестированных компонентов. Например, я бы подумал сочетание:

Parsley.js Проверка на стороне клиентаФорма Symfony компонент возможноВозможно сУважение Валидация

Дала бы вам хорошую стабильную базу для работы и создала бы хорошую библиотеку поверх проверенных компонентов.

Также, если вам интересна библиотека, которая анализирует ваш HTML, а не генерирует HTML из класса PHP, я нашел проект под названиемMinacl, КакAgavi Вариант, который я упоминал в оригинальном вопросе.

Ответы на вопрос(2)

Ваш ответ на вопрос