Size: a a a

2020 September 03

AM

Alexander Makarov in Yii Framework 3
У нас нет ВНЕ.
источник

СП

Сергей Предводителев... in Yii Framework 3
Я имею в виду пакет yiisoft/array можно не только для конфигов пользовать :)
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей R
не хватает таких коллекций с правилами на самом деле. Не уверен, решает ли ReverseBlockMerge мою проблему.. Мне в сусле надо генераторы объединять, добавляя их в начало:
в базовом конфиге generators => [A];
в приложении generators => [B, C]
в конфиге *-local generators => [D, E]

В итоге должно быть [D, E, B, C, A]
Мне в каждый вышестоящий конфиг ReverseBlockMerge::class надо добавлять? Я бы хотел просто в базовом конфиге сделать generators => new ReverseBlockMerge([A]) и всё остальное встанет куда надо
не логично.
конфиг А не должен никак влиять на внешние уровни.
источник

А

Алексей R in Yii Framework 3
кроме того, я поднимал вопрос с конфликтами, но так и не получил ясного ответа - есть у нас обработка конфликтов или нет?

Если два пакета на одном уровне будут писать значение в один ключ конфига, то будет исключение? Если нет, то каков приоритет?
источник

А

Алексей R in Yii Framework 3
Сергей Предводителев
не логично.
конфиг А не должен никак влиять на внешние уровни.
а вот мне надо.Я определяю базовый (последний) генератор или провайдер, а остальное пусть встаёт перед
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
кроме того, я поднимал вопрос с конфликтами, но так и не получил ясного ответа - есть у нас обработка конфликтов или нет?

Если два пакета на одном уровне будут писать значение в один ключ конфига, то будет исключение? Если нет, то каков приоритет?
Ну, заменит один пакет значение другого.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Ну, заменит один пакет значение другого.
а лучше бы исключение, мол, эй, парень, тут конфликт. Иди ка ты в приложении поставь более приоритетное значение
источник

СП

Сергей Предводителев... in Yii Framework 3
Если использовать подход с обёрткой - то это сделать не сложно.

Делаем модификатор, который кидает эксепшен, если при объединении есть одинаковые ключи:
(new MergeModificator([...]))->exceptionOnOverwrite()

Конфиг плагин объединяет на одном уровне с этим модификатором.
источник

А

Алексей R in Yii Framework 3
Сергей Предводителев
Если использовать подход с обёрткой - то это сделать не сложно.

Делаем модификатор, который кидает эксепшен, если при объединении есть одинаковые ключи:
(new MergeModificator([...]))->exceptionOnOverwrite()

Конфиг плагин объединяет на одном уровне с этим модификатором.
но не надо кидать исключение, если такой ключ есть уровнем выше
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей R
но не надо кидать исключение, если такой ключ есть уровнем выше
Правильно. КОнфиг-плагин знает про уровни. И на одном уровне будет объединять с таким модификатором. А между уровнями по обычному.
источник

AM

Alexander Makarov in Yii Framework 3
Алексей R
а лучше бы исключение, мол, эй, парень, тут конфликт. Иди ка ты в приложении поставь более приоритетное значение
Не факт. Это может быть конфликт, а может быть переписывание умолчаний.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Не факт. Это может быть конфликт, а может быть переписывание умолчаний.
тогда нужен ещё модификатор для "по умолчанию".. LowPriority :D
источник

AM

Alexander Makarov in Yii Framework 3
Чёт какой-то ад :)
источник

СП

Сергей Предводителев... in Yii Framework 3
Алексей R
тогда нужен ещё модификатор для "по умолчанию".. LowPriority :D
И не понятно что конфликт))
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Чёт какой-то ад :)
зато не в приложении
источник

А

Алексей R in Yii Framework 3
более понятные имена для этих коллекций + документация и всё хорошо будет
источник

А

Алексей R in Yii Framework 3
В общем думайте сами, issue создавать не буду, т.к. сложный текст
источник

СП

Сергей Предводителев... in Yii Framework 3
Тут теперь вопрос переделывать ли модификаторы из элемента массива на класс-обёртку.
источник

А

Алексей R in Yii Framework 3
Alexander Makarov
Не факт. Это может быть конфликт, а может быть переписывание умолчаний.
причём умолчания тоже разные бывают
Может быть коллекция по умолчанию, которая должна заменяться а не дополняться. Без такой фишки у меня в сусле пакете пустые конфиги - только скелет
источник

AM

Alexander Makarov in Yii Framework 3
@yiiliveext расскажешь как ты себе видишь https://github.com/yiisoft/arrays/issues/41 и обсуждение выше?
источник