/** * @param array $schemaArray * @param $buttonName * @return Element */ public function build(array $schemaArray, $buttonName) { $schema = []; foreach ($schemaArray as $item) { if (is_array($item)) { $schema[] = $item; } else { $schema[] = $item->toArray(); } } return $this->generator->generate($schema, $buttonName); }
public function testGenerator() { $factory = new Factory(); //bootstrap factory $form = (new Form())->setAttribute('class', 'form-horizontal')->addChild($factory->makeFormInput('Email', 'email', 'inputEmail3', 'Email'))->addChild($factory->makeFormInput('Password', 'password', 'inputPassword3', 'Password'))->addChild($factory->makeFormInput('testSelect', 'select', 'select4', '', [['name' => 'one', 'value' => 1], ['name' => 'two', 'value' => 2]]))->addChild($factory->makeButton('Sign In')); $elements = $form->getAllElementsOfType('input'); /** @var $input Element */ foreach ($elements as $input) { $input->setAttribute('value', isset($element['value']) ? $element['value'] : ""); } $generator = new Generator($factory); $form2 = $generator->generate([['label' => 'Email', 'type' => 'email', 'id' => 'inputEmail3', 'placeholder' => 'Email'], ['label' => 'Password', 'type' => 'password', 'id' => 'inputPassword3', 'placeholder' => 'Password'], ['label' => 'testSelect', 'type' => 'select', 'id' => 'select4', 'placeholder' => '', 'options' => [['name' => 'one', 'value' => 1], ['name' => 'two', 'value' => 2]]]], 'Sign In'); $this->assertEquals($form->render(), $form2->render()); }