Pull to refresh

Comments 27

Вот за:
В DB command Добавлена опция для отключения логирования и профайлинга.
отдельное спасибо! В дебаг режиме после 1к запросов они начинали дико тупить.
Расскажите, пожалуйста, что за задача требует выполнения 1к запросов в базу?

Фоновый импорт-экспорт, например.

А почему нельзя использовать batch insert? Или предполагается тысяча insert'ов по n^1024 строк? Тогда на мой взгляд дебаггер такому фоновому обработчику не нужен. Дебажить его можно прямо в консоли, а если нужно логировнаие, то это задача не дебаггера.

Да, 1000 по n^1024. Довольно типично. На тему дебажить или нет — согласен.

Я не говорил, что не нужно дебажить ) Я имел ввиду, что дебаг панель для этого не подходит. Страница со списком запросов будет весить чуть больше, чем весят сами данные. И при 1000 инсертов по n^1024 строк, этой страницей просто будет невозможно воспользоваться.
Потому что нет batch update. Мне приходится обновлять огромное кол-во отдельный сущностей. Чтобы избежать блокировок обновляю по одной без транзакций.

Да и не в этом дело. Фоновые задачи (а у меня как раз импорт данных) могу выполнять огромное кол-во простых задач. Я разрабатываю локально и у меня естественно включен дебаг режим. Поэтому нормально протестировать производительность большого кол-ва запросов не получается. Замедление видно уже после 30 секунд работы. И я не использую ни логи, ни профайлинг базы в консоли. Добавленная же возможность позволяет их навсегда отключить. Что я уже и сделал. Ещё раз спасибо разработчикам.
Шаблон миграций теперь по умолчанию использует safeUp() и safeDown()

Каждый раз как генерирую миграции вспоминаю про это, и каждый раз думаю о том что надо сделать свой шаблон :)
Специфичная ошибка: У меня в YII_DEBUG режиме. К rest массиву, прицевляются все SQL запросы и время их выполнения.
$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


Уверены что ошибка — кидайте в issue на github.

В yii\captcha\CaptchaAction теперь используется mt_rand() вместо rand()

Уж раз менять такие вещи — то почему бы сразу не использовать везде random_int() или random_bytes()? Давно и полифилл есть — paragonie/random_compat.


Хотя для капчи несущественно, конечно.

Возможно, будет даже раньше.

Спасибо Вам за столь великолепный фреймворк и его русскоязычную поддержку!
В yii\web\UrlManager добавлена поддержка кеширования вызовов

Спасибо большое, а то раньше приходилось кешировать ручками)

Фильтр для yii\grid\DataColumn автоматически генерится как выпадающий список в том случае, если format выставлен в boolean.

Лучше бы как чекбокс, но селект тоже неплохо.
Извините, а как вы себе чекбокс там предаставляете?
Как по мне селект самое то.
Спасибо!
После обновления на 2.0.12 слетели exist валидации. БУДЬТЕ ОСТОРОЖНЫ!
Долго грешили на свои ошибки, но откатились до 2.0.11 и там все нормально. Смотрели diff. У вас там есть правки связанные с названием таблицы. Писать issue нет сейчас времени, если есть возможность — посмотрите.

Что именно смотреть? Как именно слетели? Как были прописаны правила?

В проекте нужна проверка поля на уникальность без учета регистра. Раньше в модели в rules добавляли следующий код:
[['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, если ещё не закинули. Посмотрим и, если надо, исправим.

Черкануть на GitHub способ воспроизведения и упомянуть предполагаемую причину — это до 10 минут времени, которые сэкономят десятки часов других разработчиков, которые могут столкнуться с той же проблемой.


Искренне не понимаю, как можно было обнаружить ошибку, поискать ее причину в своём проекте, посмотреть diff'ы кода фреймвока, найти там предполагаемую причину и потом перечеркнуть все потраченные усилия, не открыв issue.

Не могу подтвердить. У меня ничего не слетело после обновления. Exist используется.
yii\filters\AccessRule теперь позволяет передать параметры в функцию проверки роли.

Это просто прелестно! Всё время чувствовал легкие сомнения и неудобства, используя ActionFilter для проверки прав…
Sign up to leave a comment.

Articles