Вышла новая версия PHP фреймворка Yii 2.0.4. Инструкции по установке и обновлению доступны на странице http://www.yiiframework.com/download/.

Версия 2.0.4 является патч релизом и содержит около сотни небольших улучшений и исправлений. Она исправляет проблему безопасности CVE-2015-3397, которая позволяла провести XSS для пользователей IE6/IE7. Если ваше приложение рассчитано на работу с этими браузерами, обновляйтесь как можно быстрее.



Из улучшений можно отметить:

  • Новый валидатор EachValidator, позволяющий проверить каждый элемент массива.
  • Новый метод yii\base\Model::attributeHints(), который позволяет настроить подсказки для полей ввода (в дополнение к их названиям).
  • indexBy() можно использовать вместе с column() при запросах к базе данных через yii\db\Query. В этом случае возвращается массив скалярных значений, индексированных указанным полем из базы или вычисляемым индексом.


Кроме приведённых выше изменений, есть и другие. Полный список можно посмотреть в CHANGELOG.md фреймворка и отдельных расширений.

Следить за разработкой фреймворка можно поставив звёздочку на GitHub. Также подписывайтесь на Twitter и присоединяйтесь к группе Facebook.

Спасибо всем, кто принимает участие в разработке Yii.

Комментарии (13)


  1. armab
    11.05.2015 13:53
    +3

    EachValidator классный!

    Из доков:

    public function rules()
    {
        return [
            // checks if every category ID is an integer
            ['categoryIDs', 'each', 'rule' => 'integer'],
        ]
    }
    


    1. Voenniy
      12.05.2015 09:52

      Да, давно нужен был такой валидатор, а то приходилось свои велосипеды делать.


    1. izac
      12.05.2015 14:00

      Да, мне его так давно не хватало.


  1. sokolnikov
    11.05.2015 14:13
    +1

    Спасибо за хорошо документированный код! attributeHints() еще не описан в гайде на сайте, но документации в коде класса Model вполне достаточно.


  1. Akdmeh
    11.05.2015 20:02

    Хотел уточнить на счет attributeHints. Данные надписи будут появляться в формах? Если да, нужна ли модификация форм, или вывод подсказок будет осуществлять какой-то существующий метод, например, field в ActiveForm?


    1. sokolnikov
      11.05.2015 20:44
      +1

      Вид модифицировать не надо. Надо всего лишь для соответствующей модели создать метод attributeHints() .

      Например:

      public function attributeHints() { return [ 'name' => 'Имя клиента' ]; }


      1. Akdmeh
        11.05.2015 20:48

        Это понятно. Проверил. В ActiveField изменился вид template, в который добавился {hint}, поэтому если данное свойство не перегружено в пользовательском классе, тогда все в порядке.


  1. Zhuravljov
    11.05.2015 20:16
    +1

    Еще добавили полноценную поддержку подзапросов в условных блоках. Спасибо!


    1. SamDark Автор
      11.05.2015 21:06
      +1

      Там много интересного, но небольшого.


  1. restyler
    12.05.2015 23:50

    Спасибо, про indexBy+column я тоже делал issue :)
    Ребята, ожидается ли в ядре какой-нибудь вариант реализации очередей?


    1. SamDark Автор
      13.05.2015 04:27
      +1

      Да: github.com/yiisoft/yii2/issues/492 и github.com/yiisoft/yii2/pull/2378. Можете поучаствовать в обсуждении и реализации и ускорить процесс.


      1. restyler
        14.05.2015 01:31

        да, я давно слежу за этими ветками, и они мертвые :( соваться с предложением скопировать немножко у laravel — это наверное моветон!


        1. SamDark Автор
          14.05.2015 12:15

          Ну так оживляйте. У них milestone выставлен в 2.1, то есть основная команда за них браться пока не будет, если конечно, не будет pull request-а.