Size: a a a

2020 October 16

AV

Andrii Vasyliev in Yii Framework 3
Не знаю используется ли в app или demo. Но у меня используется.
Сортировка нужна чтобы добиться применения  модификаторов в желаемом порядке.
иначе они будут в непонятном порядке
источник

СП

Сергей Предводителев... in Yii Framework 3
Andrii Vasyliev
Не знаю используется ли в app или demo. Но у меня используется.
Сортировка нужна чтобы добиться применения  модификаторов в желаемом порядке.
иначе они будут в непонятном порядке
Можешь пример показать... Желаемый - это всегда по алфавиту?
источник

А

Алексей R in Yii Framework 3
а что за модификаторы?
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей R
а что за модификаторы?
источник

А

Алексей R in Yii Framework 3
а, эти.. как-то они не нравятся мне ) ну я это уже говорил
источник

А

Алексей R in Yii Framework 3
как по мне, лучше использовать коллекции с нужными свойствами, чем запихивать модификаторы наравне с элементами
источник

AV

Andrii Vasyliev in Yii Framework 3
в одном пакете
$a = [
   'foo' => Reference::to('Foo'),
  'remove-keys' => new \Yiisoft\Arrays\Modifier\RemoveKeys(),
];
в другом пакете:
$b = [
   'bar' => new \Yiisoft\Arrays\Modifier\InsertValueBeforeKey(Reference::to('Bar'), 'foo'),
];

после мержа плагином:
$res = [
  Reference::to('Bar'),
  Reference::to('Foo'),
];
источник

AV

Andrii Vasyliev in Yii Framework 3
Алексей R
а, эти.. как-то они не нравятся мне ) ну я это уже говорил
тоже не нравится, пока лучше не придумал
источник

А

Алексей R in Yii Framework 3
Andrii Vasyliev
тоже не нравится, пока лучше не придумал
а коллекции?
источник

AV

Andrii Vasyliev in Yii Framework 3
например как? это будет общее решение?
источник

СП

Сергей Предводителев... in Yii Framework 3
Andrii Vasyliev
в одном пакете
$a = [
   'foo' => Reference::to('Foo'),
  'remove-keys' => new \Yiisoft\Arrays\Modifier\RemoveKeys(),
];
в другом пакете:
$b = [
   'bar' => new \Yiisoft\Arrays\Modifier\InsertValueBeforeKey(Reference::to('Bar'), 'foo'),
];

после мержа плагином:
$res = [
  Reference::to('Bar'),
  Reference::to('Foo'),
];
Как-то ооочень не явно. Например переименовав remove-keys в absolutely-remove-keys получим на выходе:

$res = [
  Reference::to('Foo'),
];
источник

А

Алексей R in Yii Framework 3
Предложение по модификаторам.
Параметры, к которым надо применять какие-то правила, засовывать в коллекции

return [
   'key1' => '123',
   'key2' => new KSort([
       'a' => 123,
       'z' => 123,
       'b' => 123,
   ]),
   'key3' => new MergeAppend([
       // ...
   ]),
   'key3' => new MergePrepend([
       // ...
   ]),
];
Или что-то универсальное
return [
   'key1' => new Collection([
       ...
   ])->sortBy(/*closue ir rule*/ Rule\Sort::KEY_REVERSE)
     ->mergeWith(Rule\Merge::COLLISION_EXCEPTION, Rule\Merge::REPLACE_DEFAULTS)
     ->setDefault(true)
     ->setValidator(Validator::class),
];
источник

AV

Andrii Vasyliev in Yii Framework 3
Сергей Предводителев
Как-то ооочень не явно. Например переименовав remove-keys в absolutely-remove-keys получим на выходе:

$res = [
  Reference::to('Foo'),
];
1. да, плохо, нужно придумать как это делать лучше, юзаю как временное решение, никому не навязываю и не рекомендую, надеюсь со временм переделать на что-то получше
2. переименовав получим то-же самое, не понял почему должен бы быть другой результат
источник

СП

Сергей Предводителев... in Yii Framework 3
Andrii Vasyliev
1. да, плохо, нужно придумать как это делать лучше, юзаю как временное решение, никому не навязываю и не рекомендую, надеюсь со временм переделать на что-то получше
2. переименовав получим то-же самое, не понял почему должен бы быть другой результат
2. потому что сортировка по алфавиту по ключам :)
absolutely-remove-key выполнится первее чем bar потому что a первее b
источник

AV

Andrii Vasyliev in Yii Framework 3
понял, да будет :)
источник

СП

Сергей Предводителев... in Yii Framework 3
Использование очень скрытой функциональности, которую в теории могут поломать случайно....

Но стоит ли явно прописывать, что модификаторы выполняются в алфавитном порядке ключей и делать для этого тест... вопрос :)
источник

AV

Andrii Vasyliev in Yii Framework 3
но всё равно будет два значения, но порядок другой
источник

AV

Andrii Vasyliev in Yii Framework 3
Сергей Предводителев
Использование очень скрытой функциональности, которую в теории могут поломать случайно....

Но стоит ли явно прописывать, что модификаторы выполняются в алфавитном порядке ключей и делать для этого тест... вопрос :)
ну сейчас есть хоть какой-то механизм чтобы получить желаемый результат
прежде чем убирать предоставь плиз сначала другой
источник

СП

Сергей Предводителев... in Yii Framework 3
Andrii Vasyliev
ну сейчас есть хоть какой-то механизм чтобы получить желаемый результат
прежде чем убирать предоставь плиз сначала другой
Я поэтому и не убираю :)
источник

AV

Andrii Vasyliev in Yii Framework 3
но я вообще не охраняю этот вариант, если будет другой рабочий и лучше - с удовольствием на него перейду
источник