Является ли хорошим тоном использование форм исключительно для биндинга и валидации?
Здравствуйте.
Собственно вопрос, является ли хорошим тоном использовать компонент форм исключительно для биндинга данных в модель и для валидации ? Для меня эти видится удобным, если сравнивать с использованием "ручного" биндинга данных в контроллере, например, когда идут сплошные проверки на наличие ключа в массиве значений if(isset($data['key'])){do_some_code();}, либо таких же проверок, но в сервисе.
Александр Евгеньевич: проверки делаются просто. делаешь массив с ключами всеми возможными, потом тупо мерж двух массивов этого и пришедшего, и цикл по результатам мержа.
shagguboy: ммм, круто у меня 25 полей, у каждого поля проверить руками тип, правила, подтянуть ,если надо сущности по связям и т.д. Нет уж, эти килограммы кода проще сделать автоматически, вопрос в инструменте.
bears: ага, отлично. По вашему есть ли существенная разница в использовании JMSSerializer и FormType ? Просто сериалайзер мне постольку поскольку , точнее очень громоздкий получается из-за большого количества дополнительных полей, проще через сервис-трансформер в массив запихнуть .
Александр Евгеньевич: Сложно конечно на этот вопрос ответить, так как зависит от проекта. В общем я этот бандл использую только в REST проектах, чаще всего с Backbone. Этот бандл отлично справляется как с сериализацией сущности в json, так и обратно. Причем без разницы, сколько там связанных сущностей, главное указать группы. Чаще всего вполне достаточно одного сервиса (буквально с 2-3 методами) - обертки над этим бандлом, вот и все. Главное не возиться в форм тайпами (субъективно, но мне не нравится система форм в symfony, хотя признаю что функционал действительно хороший), особенно если надо добавить новое свойство в сущность, то это делается и в форм тайпе, и при выводе формы и еще где надо, а с сериалайзером все это не имеет смысла - грубо говоря кода меньше. В общем для REST приложений на symfony штука незаменимая, иначе функционал излишен. Но в любом случае - делать все вручную как-то не очень. Все тонкости проекта не знаю, но высока вероятность что я бы делал именно через сериалайзер а не через формы symfony.