Yii2: Стабильный релиз 2.0.2

yii2 release 2.0.2Вторая версия отличного php-фреймворка yii2 уверенно развивается и стабильные версии выходят регулярно раз в месяц. Новая версия является патч-релизом yii 2.0 и содержит около 40 улучшений и исправлений. Полный список можно найти на гитхабе.

Инструкции по установке или обновлению до последней версии можно найти на официальном сайте.

Самые значимые изменения

Алиасы маршрутов

В предыдущих версиях, фреймворк поддерживал только алиасы для путей файлов и url. Однако, теперь добавлена поддержка алиасов для маршрутов. На практике это означает, что алиас можно использовать маршрута при формировании ссылки. Алиасы маршрутов поддерживаются методами Url::to() и Url::toRoute(). Пример использования:

use yii\helpers\Url;

Yii::setAlias('@posts', 'post/index');

// /index.php?r=post/index
echo Url::to(['@posts']);
echo Url::toRoute('@posts');

Алиасы маршрутов удобно использовать когда в процессе разработки маршрут может измениться и тогда не будет надобности в поиске всех точек использования изменившегося маршрута.

Конфигурация компонентов

Многие компоненты имеют свойства, которые необходимо задать для инициализации конкретного экземпляра компонента. Иногда, требуется использование компонента без его описания в настройках приложения. В таких случаях параметры компонента можно задать массивом при его инициализации:

$cache = Yii::createObject([
    'class' => 'yii\caching\DbCache',
    'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => '...',
    ],
]);

При создании нового класса, зависящего от внешнего компонента, можно воспользоваться следующим способом:

use yii\base\Object;
use yii\db\Connection;
use yii\di\Instance;

class MyClass extends Object
{
    public $db = 'db';

    public function init()
    {
        $this->db = Instance::ensure($this->db, Connection::className());
    }
}

Постоянные ссылки

При использовании yii\behaviors\SluggableBehavior, с помощью свойства immutable, можно запретить последующее изменение ссылки. Даже при изменении значения атрибута value, ссылка останется неизменной, при immutable = true. Обработка ошибок DatePicker Теперь yii\jui\DatePicker поддерживает language fallback. Удобно, когда при указании локали идентификатором, например de-DE, виджет не сможет найти файл /ui/i18n/datepicker-de-DE.js, он попытается открыть фал /ui/i18n/datepicker-de.js.

Передача ошибок валидации

Класс yii\base\Model теперь имеет удобный метод addErrors(), который позволяет передавать ошибки валидации из одной модели в другую. Для примера, возьмем класс модели формы, содержащий класс модели ActiveRecord. Ошибки валидации формы можно передать классу ActiveRecord:

use yii\base\Model;
use yii\db\ActiveRecord;

class MyForm extends Model
{
    public $model;

    public function process()
    {
        // ...
        if (!$this->validate()) {
            $this->model->addErrors($this->getErrors());
            // ....
        }
    }
}

Вместо заключения

Продолжаю следить за развитием yii2. В данный момент в работе 2 небольших проекта. Использование такого инструмента, как yii 2.0, упрощает многие моменты и, в тоже время, заставляет расти вместе с фреймворком.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *