Создание форм в Zend с INI-файла - PullRequest
1 голос
/ 17 мая 2011

Я знаю, что Zend_Form очень ненавидят многие разработчики, я даже слышал, что для многих это было главным отключением перехода от [вставьте здесь случайное имя php-фреймворка] на ZF, но совсем недавно Я обнаружил, что создание форм с помощью файла .ini - способ обойти это и лучший способ сделать это. Я не нашел никакой полезной информации о ней, кто-нибудь может указать мне правильный путь к ней?

Большое спасибо.

Ответы [ 2 ]

3 голосов
/ 22 июля 2013

Создать INI-файл, например.(мы будем использовать forms.ini для этого примера)

[production]

user.login.elements.LastName.type = "text"
user.login.elements.LastName.options.label = "Last Name:" 

(сохраните его в ../configs/forms.ini)

Впри начальной загрузке вам нужно инициализировать его, что-то вроде этого:

  $forms = new Zend_Config_Ini(APPLICATION_PATH . '/configs/forms.ini', 'production');
  Zend_Registry::set('forms', $forms);

, затем в вашем контроллере вы называете это

        $forms = Zend_Registry::get('forms');
        $form = new Zend_Form($forms->user->login);
        $this->view->form = $form;

, и на вашем экране вы можете отобразить его, используя

<?php echo $this->form ;?> 

или если бы вы пытались получить доступ только к одному элементу формы из набора для входа, вы бы сделали что-то вроде этого

<?php echo $this->form->LastName ;?>

надеюсь, это то, что вы искали

1 голос
/ 17 мая 2011

Проверьте это. Об этом говорится в официальном руководстве на этой странице: http://framework.zend.com/manual/1.12/en/zend.form.quickstart.html

Прокрутите вниз до раздела «Использование объекта Zend_Config». Вот несколько примеров.

Как упоминалось в документе, фабрика Zend_Config будет загружать INI-файл, описывающий вашу форму. После этого вы можете создать Zend_Form, используя этот экземпляр Zend_Config.

$config = new Zend_Config_Ini($configFile, 'development');
$form   = new Zend_Form($config->user->login);
...