Как стать автором
Обновить

Kohana-form: beta релиз. Изменения и новшества

PHP *Kohana *
Здравствуйте. Наконец то настал тот день, когда модуль приобрел те очертания к которым я стремился. В связи с этим вышел beta релиз, и я бы хотел рассказать вам, что нового появилось в функционале kohana-form.

Первая статья — habrahabr.ru/post/216187



К имеющимся типам полей присоединились новые, которых так не хватало в первой версии.

Это поля с типом:
  • File
  • Choice
  • MultiChoice


Думаю из названия поля File и так понятно для чего оно предназначено, поэтому не буду разжевывать.
Поля Choice и Multichoice по умолчанию генерируют select'ы с одиночным и множественным выбором. Инициализируются довольно просто.

            "fields" => array(
                "select" => Field::factory("Choice", array(
                        "choices" => array(1, 2, 3)
                    )),
                "select" => Field::factory("MultiChoice", array(
                        "choices" => array(1, 2, 3)
                    )),               
            ),


Но самое главное новшество — Relation fields.
Это поля с типом:
  • One2Many
  • Many2Many


Инициализируются так же просто как и поля типа Choice, но инициализировать их нужно в отдельном разделе 2m_fields.

            "fields" => array(),

            "2m_fields" => array(
                "owners" => Field::factory("One2Many", array(
                        "model" => ORM::factory("Owner")
                    ))
                 "owners" => Field::factory("Many2Many", array(
                        "model" => ORM::factory("Owner")
                    ))
            ),


Генерируются select'ы с подгружеными связями. Однако я не рекомендую использовать эти поля где то кроме админки, да и в админке нужно использовать с умом. Чаще всего можно обойтись просто полем BelongsTo которое тоже представлено в модуле и инициализируется таким образом:

            "fields" => array(
                "image" => Field::factory("Image"),
                "owner" => Field::factory("BelongsTo", array(
                        "model" => ORM::factory("Owner")
                    )),
                "body" => Field::factory("Text")->widget("CKEditor")
            ),


Плюс, из примера выше можно заметить что появился новый виджет, заменяющий стандартную textarea.
Также появилось несколько типов полей не очень отличающихся по функционалу от имеющихся, но нужных для генерации формы из ORM модели, и сейчас нет необходимости заострять на них внимание.
На этом всё, изменений не так много, но они довольно объемные и наконец то сделали kohana-form таким, каким я его видел, когда только садился за клавиатуру.

Однако рано расслабляться, проект только в стадии beta тестирования, и я как и в прошлый раз прошу помощи у сообщества с тестированием, развитием, написанием документации, что бы вместе мы смогли сделать лучший модуль форм из всех имеющихся.

Спасибо за внимание.
Теги:
Хабы:
Всего голосов 15: ↑11 и ↓4 +7
Просмотры 4.7K
Комментарии Комментарии 21