Pull to refresh

Yii 1.1.2

Reading time3 min
Views2K
Очевидно, что в этом году график выхода версий фреймворка намного поспокойнее. Зато теперь каждый релиз приносит гораздо больше исправлений ошибок и добавлений новых возможностей.

В новой, только что вышедшей, версии 1.1.2 мы имеем порядка 20 багфиксов и 30 улучшений или нововведений.


Рассмотрим самые примечательные:

  • Добавлена возможность «на лету» управлять отношениями в моделях ActiveRecord.
    Для этого добавлено три метода: Все три метода являются по сути оберткой для управления открытым (public) свойством CActiveRecordMetaData::relations, которое хранит в себе все отношения. Доступ к этим методам и свойству из экземпляра AR-класса производится с помощью метода CActiveRecord::getMetaData().

  • Добавлен метод CActiveRecord::resetScope() позволяющий сбрасывать все использованные в цепочке именованные группы условий (scopes) включая группу условий по умолчанию.

  • Добавлен метод CModel::getValidatorList() для гибкого управления валидаторами модели «на лету».

  • В метод CBaseController::widget() добавлен третий параметр, который позволяет не выводить результаты работы виджета сразу на экран, а возвращать, например, для сохранения в переменную. Подобным образом, как это делает CController::render() и другие рендер-методы.

  • CCaptchaAction теперь поддерживает неограниченное количество попыток ввода установкой свойства testLimit равным нулю.

  • В CAssetManager::publish() добавлен четвертый параметр, который включает принудительное копирование ресурсных файлов и директорий из исходного места в публикуемую директорию даже если они были опубликованы до этого. Этот параметр стоит использовать преимущественно только во время разработки, когда исходные файлы ресурсов постоянно правятся.

  • Создан еще один класс для кеширования. Теперь можно использовать WinCache с помощью класса CWinCache. Естественно, для этого в PHP должно быть включено соответствующее расширение.

  • Появилась возможность совмещать обычные шаблоны PHP-native и специальные шаблоны настраиваемые через дополнительные классы (например, CPradoViewRenderer)

  • CTypeValidator теперь поддерживает проверку не только одиночных переменных, но и содержимого массивов.

  • Добавлен метод CFileHelper::getExtension для определения расширения файла.

  • Улучшения в CDbCriteria:
    • Исправлена ошибка, которая раньше делала невозможным объединение двух условий с параметрами.

    • Также в CDbCriteria::select названия полей теперь можно обрамлять кавычками при сложных запросах.

    • Добавлен метод CDbCriteria::addBetweenCondition(), который позволяет удобно добавлять в sql-запрос конструкции вида «column BETWEEN a AND b».
  • Добавлен украинский перевод сообщений.

  • Создана функция CHttpSession::get(), которая возвращает значение переменной сессии по ее имени. Эта функция очень похожа на CHttpSession::itemAt(), за исключением того, что может возвращать значение по-умолчанию, если переменная сессии с заданным именем не определена.


Модуль Gii



Отдельно необходимо отметить новый модуль под названием Gii, который включен в дистрибутив.

То, что раньше делалось с помощью утилиты yiic, теперь с легкостью можно сделать прямо в браузере. Этот модуль предоставляет возможность для генерации кода не из командной строки, а в браузере, что конечно же гораздо удобнее.

В Gii исходно включено несколько генераторов (и их количество можно расширять), каждый из которых отвечает за генерацию кода своего типа. Например, генератор контроллера производит код класса контроллера вместе с несколькими view-файлами, а генератор модели создает ActiveRecord-класс для определенной таблицы в БД.

Типичные действия при использовании генератора:
  1. Войти на страницу генератора.
  2. Заполнить форму с параметрами для генерации. Например, при использовании генератора модулей, чтобы создать новый модуль, нужно ввести название (идентификатор) модуля.
  3. Нажать кнопку «Предварительный просмотр», чтобы увидеть какие файлы будут созданы и, кликнув по любому из них, просмотреть их содержимое.
  4. Нажать кнопку «Генерировать» для непосредственного создания файлов.
  5. По желанию просмотреть лог-файл с описанием всех действий произведенных при генерации нового кода.
Так как модуль создает новые файлы с php-кодом, то его стоит использовать только на сервере разработчика.

Более подробную информацию, а также инструкции по подключению модуля читайте в документации.
Tags:
Hubs:
Total votes 61: ↑50 and ↓11+39
Comments33

Articles