Size: a a a

2020 August 10

NO

Nex Otaku in Yii Framework 3
Не понял, как неиспользование промежуточного массива меняет подход с декларативного на императивный...
источник

NO

Nex Otaku in Yii Framework 3
Что нужно в итоге получить?
1. Объекты приложения
2. Объекты модулей
3. Применить настройки модулей
4. Применить настройки приложения
5. Применить настройки приложения для модулей

Так в целом?
источник

NO

Nex Otaku in Yii Framework 3
Если не думать о системе конфигов, а только представить конечный результат, он такой?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Плагин скрывает от нас array_merge (это норм потому что по конфигу понятно +- что и куда мёржится) и собирает конфиги по пакетам. Вот эту вторую часть я начинаю любить всё меньше. Запускается не то, что мы написали. Отсюда вроде бы очевидные решения сделать какой-нибудь require 'events-web.php'  или getenv('BLA') превращаются в те ещё костыли.
Так я ж тебе решение даю
источник

DS

Dmitriy S in Yii Framework 3
ConfigCollection::class => [
   '__construct()' => [
       [
            'routes' => fn() => require Builder::path('routes'),
            'events-web' => fn() => require Builder::path('events-web'),
            'events-console' => fn() => require Builder::path('events-console'),
       ],
   ],
],
И вот эту коллекцию в конструктор провайдера
источник

AM

Alexander Makarov in Yii Framework 3
В провайдере callback-и запускать?
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
В провайдере callback-и запускать?
Не, коллбек будет запускаться в методе get коллекции, а вот он уже будет вызываться в провайдере
источник

DS

Dmitriy S in Yii Framework 3
$routes = $configCollection->get('routes');
источник

DS

Dmitriy S in Yii Framework 3
Для тестов мы этот метод просто мокаем и возвращаем нужный массив конфига
источник

AM

Alexander Makarov in Yii Framework 3
Костылище...
источник

AM

Alexander Makarov in Yii Framework 3
Это не нормально что приходится такое городить.
источник

DS

Dmitriy S in Yii Framework 3
Ну тогда допиливай плагин, чтобы можно было конфиг получить
источник

AM

Alexander Makarov in Yii Framework 3
М?
источник

DS

Dmitriy S in Yii Framework 3
Фактически нужен модификатор еще один, который подгрузит конфиг после мержа
источник

AM

Alexander Makarov in Yii Framework 3
???
источник

AM

Alexander Makarov in Yii Framework 3
Так, давайте по порядку...
источник

AM

Alexander Makarov in Yii Framework 3
Сначала нужно решить, мёржим ли изменения в event-dispatcher и остальных пакетах. Как по мне, хуже не стало.
источник

AM

Alexander Makarov in Yii Framework 3
Потом продолжим на тему конифгов дискуссию...
источник

DS

Dmitriy S in Yii Framework 3
Модификаторы из yiisoft/arrays применяюься после мержа, значит ты можешь модификатором зарекваерить нужный конфиг после мержда
источник

DS

Dmitriy S in Yii Framework 3
Что-то вроде того
```
'yiisoft/event-dispatcher/eventdispatcher' => [
       '__class' => EventDispatcherProvider::class,
       '__construct()' => [
           'listenersConfig' => new RequireModificator('events-web')
       ],
   ],
```
источник