Сохранение форм Zend Framework в базе данных - PullRequest
0 голосов
/ 28 октября 2010

Я создаю генератор форм / конструктор для Zend Framework.Это для клиента, и, поскольку клиент хочет создавать формы, не вдаваясь в код, мне нужен интерфейс drag & drop.Пользователь должен иметь возможность перетаскивать заранее заданные элементы формы в контейнер, чтобы создать форму.Это легкая часть, которую я почти решил сам.Более сложная часть, и вопрос о сохранении этой формы.Я хочу сохранить эту форму в базе данных MySQL.Как мне подойти к этому?

Я думал о:

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

У кого-нибудь есть лучшее предложение, или это путь?

Любое мнение приветствуется!

Ответы [ 3 ]

0 голосов
/ 29 октября 2010

Я должен был сделать это несколько раз сейчас ... и это довольно просто.

  1. Храните необходимую информацию: метку, имя поля, тип, параметры и т. Д. (Вы можете использовать валидаторы / фильтры, если хотите) для каждого поля.

  2. Динамически генерируйте форму, перебирая поля, хранящиеся в базе данных, используя тип / опции для создания каждого элемента.

0 голосов
/ 29 октября 2010

Большинство классов в ZF можно сериализовать, поэтому, если ваша система уже позаботилась о построении элементов формы, вероятно, у вас есть объект Zend_Form.

Просто сериализуйте () его и сохраните в виде текстового или полнотекстового типа поля.Когда вы загрузите его обратно, просто отмените unserialize (), и вы получите функциональный объект Zend_Form.

0 голосов
/ 28 октября 2010

Я пытался сделать то же самое некоторое время назад.

Кажется, что лучший вариант - сохранить Zend Forms в формате Zend_Config (ini или xml, который проще обрабатыватьчерез JavaScript).

Но генератор на самом деле не нужен.Я только что создал ярлыки в своей среде IDE (для элементов формы, валидаторов и т. Д.), Поэтому я могу легко расширять абстрактные My_Form.

Рассмотреть возможность совместного использования кода вашего генератора, возможно, к нему могут присоединиться и помочь другие программисты.1011 *

...