Zend_Form: новичок с нестандартной формой. Должен ли я по-прежнему использовать Zend_Form? - PullRequest
0 голосов
/ 15 февраля 2012

!!! ОБНОВЛЕНО !!!

У нас есть таблицы со сложными данными о продуктах, поступающие из разных источников (внутренних, клиентов, поставщиков).
Поскольку авторство настолько разнообразно, нецелесообразно пытаться управлять деталями форматирования, такими как порядок столбцов и количество строк заголовка.

Эти таблицы CSV будут загружены в нашу БД через существующую форму.
(Мой первый Zend_Form ... Я почти закончил с этим)

Пользователь должен увидеть образец из данной электронной таблицы, чтобы он мог сопоставить столбцы и начальную строку.
Для этого мне нужно сгенерировать html-таблицу с этим динамическим содержимым и сплести элементы формы внутри данных таблицы и вокруг них. Пользователь выбирает, какие значения должны быть найдены в каждом столбце, и идентифицирует первую строку данных (после любых строк заголовка).
НАЖМИТЕ ЗДЕСЬ , чтобы увидеть пример.
(ПРИМЕЧАНИЕ: большая часть моей работы здесь относится к NDA, поэтому лучшие примеры, которые мы можем получить, - это выдуманные примеры:)
В этом примере я ожидаю, что результат будет:

_POST('first_row'=>2, 'column0'=>'mi', 'column1'=>'lName', 'column2'=>'fName', 'column3'=>'gender')

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

Является ли ZF хорошим инструментом для решения этой конкретной проблемы, или мне просто написать что-нибудь с нуля?
Как бы вы подошли бы к этому?
Наконец-то я ТОЛЬКО БАРИЛЛИ начинаю понимать, что это ЗФ прямо в моей голове, а это совершенно потеряло меня:)

Любой и все советы приветствуются.
~ Мо

1 Ответ

0 голосов
/ 16 февраля 2012

Я думаю, что в вашем случае использование Zend_Form было бы полезно для этой ситуации.

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

Независимо от того, использовали ли вы Zend_Form, чистый PHP или какое-то другое решение, многое из того, что вы будете делать, будет одинаковым (анализ CSV, предоставление динамических входных данных на основе CSV, а затем проверка ошибок при выборе). Я думаю, что использование Zend_Form имеет то преимущество, что получается что-то вроде этого очень чисто.

Учитывая природу Zend_Form, например как он проверяет существующие формы, основываясь на элементах, добавленных в сам Zend_Form, вы должны использовать специальный подход к форме. По сути, после того, как пользователь загрузит CSV один раз, вы создадите объект Zend_Form на основе количества столбцов, их позиций в CSV и имени столбца.

Поскольку вы не хотите, чтобы пользователь загружал CSV несколько раз, если они делают неправильные выборки, я бы проанализировал CSV в некую структуру, возможно, в простой объект или массив, а затем собрал бы свой Zend_Form на основе эти данные. Таким образом, вы можете сохранить эту структуру в сеансе, чтобы вы могли продолжать восстанавливать форму на основе проанализированных данных без необходимости каждый раз читать файл. Это связано с тем, что основная проблема с Zend_Form и динамическими формами заключается в том, что для формы требуется не только все элементы и их свойства, когда вы хотите отобразить форму, но также они необходимы для проверки формы и ее повторного отображения. утвержденная форма.

Я помню, что видел эту функцию много лет назад в сценарии PHP, который, как я обнаружил, все еще доступен. Возможно, вы могли бы посмотреть на это для идей. Я не буду размещать здесь ссылку, так как скриншоты и сценарии в основном относятся к веб-сайтам для взрослых, и сайт в основном является NSFW, но JMBSoft называет его TGPX. Седьмой из восьмого снимка экрана на главной странице продукта показывает процесс импорта, где он позволяет пользователю сопоставлять поля с данными, в точности то, что вы делаете.

Надеюсь, мой совет полезен, не стесняйтесь комментировать любые вопросы.

...