- PVSM.RU - https://www.pvsm.ru -
Вышел релиз 1.1.16 PHP-фреймворка Yii. Вы можете скачать его по адресу yiiframework.com/download/ [1].
В данный релиз вошло более 120 улучшений и исправлений. Полный список изменений можно посмотреть здесь [2]. Внимание: не все изменения совместимы с предыдущей версией. Внимательно прочитайте инструкции по обновлению [3].
Спасибо всем, кто нам помогал [4] и без кого этот релиз бы не состоялся.
Отметим, что Yii 1.1 перешёл в режим поддержки, то есть не стоит ждать каких-либо новых возможностей или больших изменений в будущем. В данный момент мы активно разрабатываем и поддерживаем Yii 2.0, в котором используются свежие технологии. Следить за развитием Yii 2 можно поставив звёздочку или нажав на кнопку «watch» на странице проекта на GitHub [5]. Присоединяйтесь к нашим Twitter [6] и Facebook [7].
Далее мы расскажем о главных улучшениях.
Поддержка баз данных улучшается постоянно. На этот раз мы добавили поддержку MariaDB [8] и CUBRID [9].
ODBC теперь можно использовать через pdo_odbc:
'components'=>array(
......
'db'=>array(
'class'=>'CDbConnection'
'driverName'=>'mysql',
'connectionString'=>'odbc:Driver={MySQL};Server=127.0.0.1;Database=test',
'username'=>'',
'password'=>'',
),
),
При задании связей типа STAT можно использовать именованные группы параметров:
public function relations()
{
return array(
'recentPostCount'=>array(self::STAT,'Post','author_id','scopes'=>'recentScope'),
);
}
Теперь в реляционных запросах можно задать операции, применяемые после JOIN (то есть use|force|ignore index()):
$users=User::model()->findAll(array(
'select'=>'t.id,t.name',
'with'=>array(
'posts'=>array(
'alias'=>'p',
'select'=>'p.id,p.title',
'joinOptions'=>'USE INDEX(post__user)',
),
),
));
Подробнее можно почитать в разделе «Post-JOIN operations» в главе «Relational Active Record» полного руководства.
Были добавлены CDbCommand::naturalLeftJoin() и CDbCommand::naturalRightJoin(), которые позволяют использовать соответствующие типы join.
Стало возможным перекрыть первичный ключ модели через метод primaryKey() даже в том случае, если в таблице есть первичный ключ.
В CFileHelper добавлены новые методы:
createDirectory() — создаёт директорию, выставляя рекурсивно права.getExtensionByMimeType() — определяет расширение файла по типу MIME.Определение MIME типа было улучшено использованием файла mime.types из Apache HTTP.
CFileHelper::removeDirectory() теперь нормально работает с символическими ссылками на директории. Сделать «как было» можно передав ключ traverseSymlinks со значением false в массиве опций.
В CFileHelper::findFiles() добавлена новая опция absolutePaths. Если её выставить в
true, метод будет возвращать абсолютные пути. true является значением по умолчанию.
В CFileCache добавлены свойства cachePathMode и cacheFileMode, которые могут быть использованы для выполнения chmod() соответствующих директорий.
Несколько библиотек, используемых фреймворком, были обновлены:
Когда мы выпустили первую версию Yii 1.1, фактическим стандартом разметки был XHTML. Теперь же
это HTML5, поэтому мы решили обновить шаблон приложения, генерируемый при помощи yiic webapp до HTML5.
CHtml и CActiveForm получили поддержку полей ввода HTML5, таких как color, datetime, datetime-local, week и search.
Различные инструменты и библиотеки, часто используемые с Yii, были обновлены, так что мы обновили фреймворк для их поддержки.
CApcCache теперь совместим с APCu.Yii::import() и Yii::createComponent() теперь совместимы со сторонними автозагрузчиками классов, такими как загрузчик Composer.Yii и YiiBase были добавлены в автозагрузку в composer.json.Request научился работать с заголовком X-HTTP-Method-Override, используемым для эмуляции различных типов запроса через POST.
Новые методы getIsPatchRequest(), getIsPatchViaPostRequest() и getPatch() позволяют работать с запросами типа PATCH.
Фреймворк теперь отвечает с той же версией протокола HTTP, которая содержалась в запросе.
Request::getPreferredLanguage() теперь может выбирать лучший вариант в зависимости от поддерживаемых и запрашиваемых языков.
Обработка ошибок была улучшена.
ErrorHandler::getException(), что делает возможным его передачу различным сторонним API.CClientScript теперь кидает исключение, если вы пытаетесь зарегистрировать несуществующий пакет.CActiveForm::$clientOptions добавлен errorCallback. Теперь вы можете вклиниться в процесс клиентской валидации.JsonSerializable.CHtml::beginForm() научился работать с дополнительными методами HTTP через скрытое поле _method.CPasswordHelper::generateSalt() теперь возвращает соль с cost = $2y$.CFormatter научился работать с DateTime.
Автор: SamDark
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/framework/77894
Ссылки в тексте:
[1] yiiframework.com/download/: http://www.yiiframework.com/download/
[2] можно посмотреть здесь: https://raw.githubusercontent.com/yiisoft/yii/1.1.16/CHANGELOG
[3] инструкции по обновлению: https://raw.githubusercontent.com/yiisoft/yii/1.1.16/UPGRADE
[4] кто нам помогал: https://github.com/yiisoft/yii/graphs/contributors
[5] на странице проекта на GitHub: https://github.com/yiisoft/yii2
[6] Twitter: https://twitter.com/yiiframework
[7] Facebook: https://www.facebook.com/groups/yiitalk/
[8] MariaDB: https://mariadb.org/
[9] CUBRID: http://www.cubrid.org/
[10] CLDR23.1: http://cldr.unicode.org/index/downloads/cldr-23-1
[11] Источник: http://habrahabr.ru/post/246477/
Нажмите здесь для печати.