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.1?
После обновления на 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