Как лучше сделать форму?

Sanchez

Новичок
Как лучше сделать форму?

Решил наконец сделать какие-то заготовки для себя, чтоб ускорить процесс создания и модификации сайтов, заодно совместить это с изучением паттернов ООП.
Делаю класс для отображения формы. В нем в массиве хранятся все поля формы - их имена, тип (текст, радиобуттон и т.п.). И есть методы, вроде "записать себя в mysql", "отобразить форму", которые используют этот массив.
В целом все чинно - например, чтоб добавить новый элемент на форму, достаточно добавить его в массив, а он автоматом будет и БД вставляться, и на форме отображаться, и т.п. Но есть небольшая проблемка - в некоторых случаях нужно выводить форму не простым перечислением всех полей (что делается например с помощью foreach для массива параметров формы), а более хитро - чаще всего - с учетом дизайна. Например, два поля расположить в одной строке, третье - через две бр-ки, и так далее. Вот как быть в таком случае? Писать отдельный метод или делать отдельную стратегию? Но тогда при добавлении поля придется его прописывать в каждом методе, где форма выводится как я сказал выше "более хитро". Что очень нежелательно. Есть ли какие-то более красивые решения? Ну или может вообще моя идея не очень удачна и лучше сделать как-то по-другому.
 

AmdY

Пью пиво
Команда форума
ИМХО, ненавижу генераторы форм, слишком уж они неповоротливые.
 

dark-demon

d(^-^)b
поэтому лучше использовать хелперы, а не загонять себя в рамки объектной модели.
 

Sanchez

Новичок
AmdY
Когда это самописный генератор - еще куда ни шло :)

dark-demon
А о каких хелперах идет речь?
 

alexeyco

Новичок
Sanchez
Если мы с тобой встречались, то вероятно, у тебя "аватара была отключена за неуплату". Если это так - я готов помочь тебе... если ты понял, о чем я то я помогу чтобы тебе долго писать не пришлось (я писал такой класс около 3-х месяцев и то он далек от твоих требований) но хоть работает не так медленно, как большинство подобных...
 

alexeyco

Новичок
"аватара была отключена за неуплату"? Ты ничего не понял? И еще на том форуме тебя Шурик звали
 

С.

Продвинутый новичок
Sanchez, сам прикинь. У тебя оказывается, что ты набор своих элементов перечисляешь дважды (один раз при задании свойств, а другой раз при определении местоположения). Один раз явно лишний. Почему бы не задавать свойства одновременно с распределением позиций.

Да, это не ООПно. Зато удООПно.
 

Sanchez

Новичок
alexeyco, не знаю, наверное просто кто-то еще был с таким же ником :) Но от помощи все равно не откажусь))


С., возможно ты прав, пока все думаю :)
 

alexeyco

Новичок
А давайте взглянем в сторону функционала? Например, (представим что такой класс существует) он позволяет проверять форму... Причем, используется аякс (xajax, например)... и если форма неверна, к каждому полю приписывается текст ошибки... Конечно, форма строится тупо сверху вниз, но... еще - наличие chained_rows - это например, ты меняешь активный элемент в поле select и половина формы перерисовывается (тоже аякс)... Вот такой если бы был класс - это было б класс или хрень?
 
Сверху