Блог хеллоуворлдщика

Создание форм в ZF3


Создание форм в ZF3

Мне очень нравится Zend Framework с выхода 2ой версии, но никогда не нравились формы. Формы в Zend Framework - это, ужас. Причем, мне не ясен подход разработчиков вообще, и не ясно, почему они считает это нормой. Чего же в них плохого?

Плохо то, что мы явно нарушаем принцип единственной ответственности, явно указываем тип поля у входного значения, расширяем элементы через декораторы. Это все очень плохо. Я не хочу знать вообще: какой тип поля у входного значения; я не хочу заботится о представлении в форме; я не хочу заботится о том, как это все будет выглядеть. Я просто хочу указать, что я жду. Все. На этом ответственность формы заканчивается. Не больше, ни меньше. Но как-то не делать так, как задумано - не получится. В любом случае, от типа поля и от трешовой манипуляции с формой в отображении мы не уйдем. Как я с этим борюсь?

В один прекрасный момент, я понял, что это клиника, и что нужно что-то делать. И я сделал. Я сделал свою форму bupy7/zf-form, которая мне полностью нравится и решает все свои задачи.

Данная форма расширяет функционал zendframework/zend-inputfilter, т.к. напрямую использовать его не совсем удобно. Плюс, на стороне отображения у нас есть удобный генератор форм от adamwathan/form.

С этого момента создавать и работать с формой стало очень удобно и комфортно. В своих проектах я еще использую макросы из Twig, чтобы не дублировать код. Теперь, каждый занимается своим делом, код стал прозрачным и легко расширяем.

Latest Stable Version Total Downloads Latest Unstable Version License Build Status Coverage Status

Ссылка на расширение и документацию: https://github.com/bupy7/zf-form

Возможно, раз за столько времени не было сделано что-то подобное, и все обходились решением от Zend Framework, мой подход не одобрят. Но, я всегда могу аргументировать свою точку зрения более детально, чем описал выше. Возможно, вы перейдете на темную сторону. ;)

share via vkontakte share via facebook share via mailru share via odnoklassniki share via twitter

Комментарии [0]

Нет комментариев.