Yii 2.0.16

0. Команда PHP-фреймворка Yii выпустила версию 2. Исправлены несколько проблем с безопасностью. 16, содержащую более сотни исправлений и немного улучшений.

0 достигла заморозки более чем год назад, что означает что в неё принимаются главным образом исправления. Ветка Yii 2. В самом конце этого поста есть чуть больше информации про Yii 3. Сделано это было чтобы позволить команде Yii сфокусироваться на Yii 3.

Обязательно прочитайте UPGRADE.md. В данный релиз вошли несколько изменений, которые могут повлиять на существующие приложения.

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

Полный список, как обычно, можно посмотреть в CHANGELOG. Ниже приведены наиболее интересные улучшения, которым всё-таки удалось просочиться в релиз.

Active Record

Salem Ouerdani, @tunecino добавил behavior для optimistic locking.

В случае, когда пользователь пытается сохранить правки на основе устаревших данных (потому что другой пользователь уже сохранился), кидается StaleObjectException, а обновление или удаление не делается. Optimistic locking позволяет нескольким пользователям одновременно редактировать запись и избегать потенциальных конфликтов на стороне сервера.

Теперь просто. Сам механизм такой блокировки был реализован в первых версиях Yii, но использовать его правильно было не так просто.

Документацию можно найти в официальном руководстве
и API OptimisticLockBehavior.

Миграции

Если вы хотите изменить это, то можете выставить yii\console\controllers\MigrateController::useTablePrefix в false в конфиге консольных команд. Консольный генератор миграций теперь по умолчанию использует префиксы таблиц.

Базы данных

  • Драйвер MySQL теперь поддерживает точность до доли секунды для временных типов (требуется MySQL >= 5.6.4).
  • Драйвер Oracle теперь поддерживает сброс последовательностей.

Хелперы

  • yii\helpers\Inflector научился корректно работать с UTF-8.
  • Добавлен флаг yii\mutex\FileMutex::$isWindows для шар Windows на гостевых машинах Unix.
  • Объекты yii\helpers\UnsetArrayValue, yii\helpers\ReplaceArrayValue теперь могут быть восстановлены после сериализации при помощи var_export().

GridView

Добавлена опция $filterOnFocusOut, определяющая должна ли производиться фильтрация при потере фокуса.

jQuery

3. Теперь можно установить jQuery 3.

Mutex

  • Частота попыток получения блокировки yii\mutex\FileMutex::acquireLock() увеличена в том случае если предоставлен $timeout.
  • Добавлена поддержка $timeout в yii\mutex\PgsqlMutex::acquire().

Исправления безопасности

Были исправлены две проблемы с безопасностью:

  • CVE-2018-14578: обход проверки CSRF токена в \yii\web\Request::getMethod()
  • CVE-2018-19454: лишнее логирование конфиденциальной информации в \yii\log\Target

Шаблоны приложений

  • Конфиги Codeception были почищены как в шаблоне basic, так и в advanced.
  • В шаблон Advanced добавлен простой конфиг для Docker.
  • Шаблон Advanced теперь требует более новую версию Codeception, которая работает только начиная с PHP 7.0. Старые приложения будут работать как прежде.

Немного о Yii 3.0

0. Следующей мажорной версией Yii будет 3. Подробный анонс будет позже, а пока кратко:

Обновлённая архитектура: фреймворк разбит на отдельные пакеты.
Это позволит собирать из них то, что вам нужно.

JavaScript-независимый: вместе с реорганизацией исходного кода Yii отвязывается от JavaScript-фреймворка в ядре.
Ключевые пакеты Yii не требуют jQuery.

Уже реализованы многие PSR: логирование, кеш, DI и другие. Совместимость с PSR: Yii 3 будет следовать рекомендациям PHP-FIG.

0 находится в стадии активной разработки. Yii 3. Подробный анонс будет сделан по достижению альфа-версии.


Оставить комментарий

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

*

x

Ещё Hi-Tech Интересное!

Поиск задач в JIRA (простым языком). Часть 1: Быстрый и базовый поиск

В последнее время JIRA активно используют организации, не имеющие прямой связи с IT. Специалистам, не знакомым ранее с JIRA, бывает сложно понять структуру JQL-запросов, если не привести примеры. И начнем мы с «базового» и «быстрого» поиска. Для упрощения восприятия, мы ...

Если связь — просто жесть, то ее нужно закопать

Любой советский школьник, собиравший подобную схему знал, что без заземления — никак. Нынешнее поколение Z, взращенное айфонами, сомневается даже в необходимости антенн! Эта статья показывает важность и необходимость двух данных элементов в условиях слабого сигнала. У истинных связистов методика используемая ...