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

    Здравствуйте. Наконец то настал тот день, когда модуль приобрел те очертания к которым я стремился. В связи с этим вышел 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 тестирования, и я как и в прошлый раз прошу помощи у сообщества с тестированием, развитием, написанием документации, что бы вместе мы смогли сделать лучший модуль форм из всех имеющихся.

    Спасибо за внимание.
    Поделиться публикацией

    Комментарии 21

      +11
      Kohana r.i.p… к сожалению…
        +3
        ИМХО для большинства к счастью: уменьшится фрагментация знаний за счет ухода подобных легаси фреймворков.
          +3
          К счастью
            0
            Хотя FuelPHP (его форк по сути) пока живет.
              +1
              Да он что-то тоже буксует… На гите давно активности нет, roadmap обновлена в феврале…
                –4
                Возможно, потому что на поле появился новый игрок в лице Laravel.
                  +3
                  Стал замечать, что Laravel очень часто называют причиной проблем у того или иного фреймворка.
                  Почему-то Laravel-«ремесленники» очень активны в желании везде упомянуть любимый фреймворк. Их относительно мало, но шума по Laravel много.

                  Не воспримите это на свой счет, я просто об общей тенденции, которую наблюдаю.
                    0
                    Мне самому Laravel в принципе нравится, сейчас занимаюсь его изучением. Однако я не люблю холивары на подобные темы — каждый пользуется ровно тем, что ему подходит, только и всего :)
                      0
                      Да, насчет холиваров я солидарен. Не подумайте, что «разжигаю». Совсем не утверждаю что какой-либо из них лучше, а какой-либо хуже. Просто упоминаний одних фреймоврокв, например Zend, мало, а Laravel — много.
                        +1
                        Когда Yii стабильной второй версией таки разродится, думаю, тоже будет много разговоров и обсуждений.
                      0
                      Вот не надо про мало, загляните на гитхаб, он в лидерах, на packageist 81 страница по тегу packagist.org/search/?tags[]=laravel
                      Про laravel не только много базза, но и куча кода, который пишет сообщество.
                      В 2012 на форуме коханы было обсуждение 3-го laravel, тогда все и ломанулись мигрировать, ребята из core раньше контрибутили в kohana, даже по синтаксису фреймворки схожие, так что связь не натянута, laravel, действительно, добил kohana.
                        –1
                        Верно подмечено. Но ведь не думаете, что люди, годами сидевшие на Yii, Zend, CodeIgniter, Kohana, etc и решившие попробовать лару — просто так орут на право и налево о загадочных преимуществах фреймворка? Осмелюсь перечислить следующие современные холивары:
                        • CoffeeScript vs JavaScript
                        • Ruby vs PHP
                        • Scss vs Less
                        • Laravel vs *другой фрейм*
                        • Composer vs Pear
                        Причём достаточно попробовать, что бы понять почему у тех, кто в теме — такая бурная реакция.

                        Хотя конечно популяризировать направо и налево — очень плохая реклама, естественно.
                  +1
                  Да уж… В любом случае библиотека будет полезна для проектов, которые всё еще используют Kohana)
                  0
                  Мне больше нравится подход: рендеринг отдельно, валидация отдельно.
                    0
                    Ну никто не запрещает использовать такой подход. Тут по желанию.
                    0
                    Наконец то настал тот день, когда

                    Вы опоздали, имхо. Попробуйте портануть в Laravel.
                      0
                      Года 3 назад пригодилось бы…
                        +1
                        Судя по постам здесь(http://forum.kohanaframework.org/discussion/12509/final-releases-of-kohana-beginning-of-ohanzee) ошибкой было архитектурное решение с собственными модулями.
                          +1
                          Насколько я знаю использовать модули из Composer в Kohana совсем несложно. Мне самому не приходилось, но поиск в Гугле выдает кучу совсем несложных инструкций. Вот эту например — www.andrewault.net/2013/10/31/use-composer-with-kohana-3-3/
                            0
                            Не спора ради, но суть в другом. Модули коханы нельзя скомпоновать вне контекста kohana-core. А наблюдается тенденция низко связанных модулей. Symfony в этом плане можно сказать преуспел, хотя он и не framework, а фабрика компонентов(правда, чувствуется некое over engineered). По ссылке комментом выше говорится что текущие модули коханы перепишут в независимые компоненты ohanzee.
                              0
                              Просто кохана 3 вышла раньше, чем симфони 2 и разработчики коханы, наверно, даже не догадывались о революции в php в виде composer.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое