Условие задачи - mentor-icron/oop-form GitHub Wiki

Необходимо создать группу классов реализующих прорисовку формы со следующими элементами:

  • Кнопка (Button)
  • Группа кнопок (GroupButton)
  • Выпадающий список (Select)

Сама форма также должна быть выполнена в ООП стиле.

Пример использования формы:

$form = new Form('url');
echo $form->begin();

echo $form->field(
    new Select(
        [
            'name' => 'select_name',
            'items' => ['a' => 'Apple', 'b' => 'Bread']
        ]
    )
);
echo $form->field(
    new GroupButton(
        [
            'items' => [
                new Button(['label' => 'BTN1']),
                new Button(['label' => 'BTN2'])
            ]
        ]
    )
);

echo $form->end();

Результат отработки вышеописанного скрипта:

<form action="url">
   <select name="select_name" >
       <option value="a">Apple</option>
       <option value="b">Bread</option>
   </select>
   <div class="btn-group" role="group">
      <button type="button" class="btn btn-default">BTN1</button>
      <button type="button" class="btn btn-default">BTN2</button>
   </div>
</form>
⚠️ **GitHub.com Fallback** ⚠️