- PVSM.RU - https://www.pvsm.ru -
Команда PHP-фреймворка Yii выпустила версию 2.0.16, содержащую более сотни исправлений и немного улучшений [1]. Исправлены несколько проблем с безопасностью.
Ветка Yii 2.0 достигла заморозки более чем год назад [2], что означает что в неё принимаются главным образом исправления. Сделано это было чтобы позволить команде Yii сфокусироваться на Yii 3. В самом конце этого поста есть чуть больше информации про Yii 3.
В данный релиз вошли несколько изменений, которые могут повлиять на существующие приложения. Обязательно прочитайте UPGRADE.md [3].
Огромное спасибо членам сообщества Yii [4], которые участвующим в разработке. Без вас такой масштабный проект был бы невозможен. Отдельное спасибо переводчикам, поддерживающим документацию в актуальном состоянии.
Ниже приведены наиболее интересные улучшения, которым всё-таки удалось просочиться в релиз. Полный список, как обычно, можно посмотреть в CHANGELOG [1].
Salem Ouerdani, @tunecino добавил behavior для optimistic locking.
Optimistic locking позволяет нескольким пользователям одновременно редактировать запись и избегать потенциальных конфликтов на стороне сервера. В случае, когда пользователь пытается сохранить правки на основе устаревших данных (потому что другой пользователь уже сохранился), кидается StaleObjectException
, а обновление или удаление не делается.
Сам механизм такой блокировки был реализован в первых версиях Yii, но использовать его правильно было не так просто. Теперь просто.
Документацию можно найти в официальном руководстве [5]
и API OptimisticLockBehavior [6].
Консольный генератор миграций теперь по умолчанию использует префиксы таблиц. Если вы хотите изменить это, то можете выставить yiiconsolecontrollersMigrateController::useTablePrefix
в false
в конфиге консольных команд.
yiihelpersInflector
научился корректно работать с UTF-8.yiimutexFileMutex::$isWindows
для шар Windows на гостевых машинах Unix.yiihelpersUnsetArrayValue
, yiihelpersReplaceArrayValue
теперь могут быть восстановлены после сериализации при помощи var_export()
.Добавлена опция $filterOnFocusOut
, определяющая должна ли производиться фильтрация при потере фокуса.
Теперь можно установить jQuery 3.3.
yiimutexFileMutex::acquireLock()
увеличена в том случае если предоставлен $timeout
.$timeout
в yiimutexPgsqlMutex::acquire()
.Были исправлены две проблемы с безопасностью:
yiiwebRequest::getMethod()
yiilogTarget
Следующей версией Yii будет 3.0. Подробный анонс будет позже, а пока кратко:
Обновлённая архитектура: фреймворк разбит на отдельные пакеты [7].
Это позволит собирать из них то, что вам нужно.
JavaScript-независимый: вместе с реорганизацией исходного кода Yii отвязывается от JavaScript-фреймворка в ядре.
Ключевые пакеты Yii не требуют jQuery.
Совместимость с PSR: Yii 3 будет следовать рекомендациям PHP-FIG. Уже реализованы многие PSR: логирование, кеш, DI и другие.
Yii 3.0 находится в стадии активной разработки. Подробный анонс будет сделан по достижению альфа-версии.
Автор: SamDark
Источник [8]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/php-2/307252
Ссылки в тексте:
[1] более сотни исправлений и немного улучшений: https://github.com/yiisoft/yii2/blob/2.0.16/framework/CHANGELOG.md
[2] более чем год назад: https://www.yiiframework.com/news/156/yii-2-1-and-yii-2-0-feature-freeze
[3] UPGRADE.md: https://github.com/yiisoft/yii2/blob/2.0.16/framework/UPGRADE.md
[4] членам сообщества Yii: https://github.com/yiisoft/yii2/graphs/contributors
[5] официальном руководстве: https://www.yiiframework.com/doc/guide/2.0/en/db-active-record#optimistic-locks
[6] API OptimisticLockBehavior: https://www.yiiframework.com/doc/api/2.0/yii-behaviors-optimisticlockbehavior
[7] отдельные пакеты: https://github.com/yiisoft/docs/blob/master/000-packages.md
[8] Источник: https://habr.com/ru/post/438394/?utm_campaign=438394
Нажмите здесь для печати.