Комментарии 27
В DB command Добавлена опция для отключения логирования и профайлинга.отдельное спасибо! В дебаг режиме после 1к запросов они начинали дико тупить.
Фоновый импорт-экспорт, например.
Да, 1000 по n^1024. Довольно типично. На тему дебажить или нет — согласен.
Да и не в этом дело. Фоновые задачи (а у меня как раз импорт данных) могу выполнять огромное кол-во простых задач. Я разрабатываю локально и у меня естественно включен дебаг режим. Поэтому нормально протестировать производительность большого кол-ва запросов не получается. Замедление видно уже после 30 секунд работы. И я не использую ни логи, ни профайлинг базы в консоли. Добавленная же возможность позволяет их навсегда отключить. Что я уже и сделал. Ещё раз спасибо разработчикам.
Шаблон миграций теперь по умолчанию использует safeUp() и safeDown()
Каждый раз как генерирую миграции вспоминаю про это, и каждый раз думаю о том что надо сделать свой шаблон :)
$sqls = Yii::getLogger()->getProfiling(['yii\db\Command::query', 'yii\db\Command::execute']);
Этот код вызывает ошибку
md5() expects parameter 1 to be string, array given
/yiisoft/yii2/log/Logger.php
line 281
В yii\captcha\CaptchaAction теперь используется mt_rand() вместо rand()
Уж раз менять такие вещи — то почему бы сразу не использовать везде random_int() или random_bytes()? Давно и полифилл есть — paragonie/random_compat.
Хотя для капчи несущественно, конечно.
В yii\web\UrlManager добавлена поддержка кеширования вызовов
Спасибо большое, а то раньше приходилось кешировать ручками)
Фильтр для yii\grid\DataColumn автоматически генерится как выпадающий список в том случае, если format выставлен в boolean.
Лучше бы как чекбокс, но селект тоже неплохо.
Долго грешили на свои ошибки, но откатились до 2.0.11 и там все нормально. Смотрели diff. У вас там есть правки связанные с названием таблицы. Писать issue нет сейчас времени, если есть возможность — посмотрите.
Что именно смотреть? Как именно слетели? Как были прописаны правила?
[['some_column_name'], 'unique', 'targetAttribute' => ['SomeColumnNameLower' => 'lower(some_column_name)']],
...
public function getSomeColumnNameLower()
{
return mb_strtolower($this->some_column_name);
}
В новой версии были добавлены функции prefixConditions и applyTableAlias:
https://github.com/yiisoft/yii2/blob/master/framework/validators/UniqueValidator.php#L291
и теперь получается SQL запрос вида
SELECT * FROM some_table WHERE some_table.[[lower(some_column_name)]]=''
запрос падает с ошибкой.
Черкануть на GitHub способ воспроизведения и упомянуть предполагаемую причину — это до 10 минут времени, которые сэкономят десятки часов других разработчиков, которые могут столкнуться с той же проблемой.
Искренне не понимаю, как можно было обнаружить ошибку, поискать ее причину в своём проекте, посмотреть diff'ы кода фреймвока, найти там предполагаемую причину и потом перечеркнуть все потраченные усилия, не открыв issue.
yii\filters\AccessRule теперь позволяет передать параметры в функцию проверки роли.
Это просто прелестно! Всё время чувствовал легкие сомнения и неудобства, используя ActionFilter для проверки прав…
Yii 2.0.12