Size: a a a

2020 September 03

AM

Alexander Makarov in Yii Framework 3
что-то тут не так :)
источник

А

Алексей R in Yii Framework 3
если я сделаю так, то мутант опять появится уже в условии
источник

А

Алексей R in Yii Framework 3
можно добавить ещё условие: retuern если пустой массив, но это усложняет функцию )
источник

AM

Alexander Makarov in Yii Framework 3
А что там вообще происходит? Какая-то интересная штука...
источник

А

Алексей R in Yii Framework 3
да, интересная )
источник

AM

Alexander Makarov in Yii Framework 3
почему чисти всё кроме последнего writeable?
источник

А

Алексей R in Yii Framework 3
последний провайдер не очищается, т.к. схеме будет неоткуда появиться )
источник

AM

Alexander Makarov in Yii Framework 3
а при чём тут writeable?
источник

AM

Alexander Makarov in Yii Framework 3
ты вроде из него читаешь, не?
источник

AM

Alexander Makarov in Yii Framework 3
а, понял
источник

AM

Alexander Makarov in Yii Framework 3
а если развернуть цикл? :)
источник

А

Алексей R in Yii Framework 3
последний провайдер - источник схемы. По идее он и не должен быть Writeable (если это провайдер схемы из аннотаций, например), но могут быть исключения (если это провайдер схемы из файла. Заполняется вручную, например. Такое нельзя очищать).
источник

AM

Alexander Makarov in Yii Framework 3
первый читаемый в развёрнутом скипаем, остальное чистим
источник

AM

Alexander Makarov in Yii Framework 3
флаг не нужен, итераций в 2 раза меньше
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
а если развернуть цикл? :)
поставщик провайдеров - генератор
источник

AM

Alexander Makarov in Yii Framework 3
ну тебе пофиг
источник

AM

Alexander Makarov in Yii Framework 3
ты всё-равно обходишь целиком
источник

А

Алексей R in Yii Framework 3
в принципе да
источник

AM

Alexander Makarov in Yii Framework 3
$providerKept = false;
$providers = array_reverse(iterator_to_array($this->getProviders()));
foreach ($providers as $provider) {
   if ($provider->isWritable()) {
       if (!$providerKept) {
           $providerKept = true;
       } else {
           $provider->clear();
       }
   }
}
источник

AM

Alexander Makarov in Yii Framework 3
так примерно будет
источник