- 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/
Нажмите здесь для печати.