Size: a a a

2020 September 01

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Ну да, вот провайдерс объединяется с провайжерс-веб. И при инициализации провайдеров в первую очередь регистрируются веб, а затем обычные провайдеры
Ну так это и есть порядок внутри блока. ReverseBlockMegre решает только порядок самих блоков, чтобы  провайдеры регистрировались в зависимости от иерархии зависимостей.
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Ну так это и есть порядок внутри блока. ReverseBlockMegre решает только порядок самих блоков, чтобы  провайдеры регистрировались в зависимости от иерархии зависимостей.
Не только от иерархии, но и внутри приложения тоже
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Не только от иерархии, но и внутри приложения тоже
Нет, внутри приложения уже сам плагин задает порядок после мержа. Ща гляну как там оно.
источник

СП

Сергей Предводителев... in Yii Framework 3
Вообще я думаю получать что-то из контейнера до его конфигурации - зло
источник

СП

Сергей Предводителев... in Yii Framework 3
Порядок провайдеров должен быть не важен, как и порядок в конфиге common, например.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Вообще я думаю получать что-то из контейнера до его конфигурации - зло
может и не  совсем зло, просто это два разных подхода, и когда смерживаются конфиги и провайдеры, то могут быть проблемы. Да и работают они немного по-разному, в провайдерах имеет приоритет провайдер самой вложенной зависимости.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Порядок провайдеров должен быть не важен, как и порядок в конфиге common, например.
Та обсуждали уже это, так сделать реально, но и полностью избавится от дергания провайдером зависимостей из контейнера не выйдет
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Та обсуждали уже это, так сделать реально, но и полностью избавится от дергания провайдером зависимостей из контейнера не выйдет
почему не выйдет?
Можно задавать для контенера статические функции внутри провайдера, а внтури них уже дёргать из контейнера
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
почему не выйдет?
Можно задавать для контенера статические функции внутри провайдера, а внтури них уже дёргать из контейнера
А пользователю ты как запретишь в конструкторе дергать?
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
А пользователю ты как запретишь в конструкторе дергать?
Есть не очень красивый вариант передавать ему НЕ контейнеринтерфейс,  апрокси, в котором есть только set метод)
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Есть не очень красивый вариант передавать ему НЕ контейнеринтерфейс,  апрокси, в котором есть только set метод)
Коллекцию, я так пробовал, вариант рабочий, но нельзя закрыть коллекцию из-за deferred провайдеров, а значит будет возможность сетить рантайм.
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
может и не  совсем зло, просто это два разных подхода, и когда смерживаются конфиги и провайдеры, то могут быть проблемы. Да и работают они немного по-разному, в провайдерах имеет приоритет провайдер самой вложенной зависимости.
Кстати вот и нет. Если в пакете в провайдере задаётся для интерфейса Х класс А, а в приложении в провайдере для того же интерфейса Х задаётся класс Б. То по итогу реализацией интерфейса Х будет класс А из пакета.
источник

СП

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

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Кстати вот и нет. Если в пакете в провайдере задаётся для интерфейса Х класс А, а в приложении в провайдере для того же интерфейса Х задаётся класс Б. То по итогу реализацией интерфейса Х будет класс А из пакета.
Так я об этом и написал, пакет здесь наиболее вложенная зависимость и имеет больший приоритет
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Так я об этом и написал, пакет здесь наиболее вложенная зависимость и имеет больший приоритет
так почему пакет имеет больший приоритет чем моё приложение? Получается если пакет что-то задаёт, то я это уже никак не переопределю.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
так почему пакет имеет больший приоритет чем моё приложение? Получается если пакет что-то задаёт, то я это уже никак не переопределю.
Именно, и этим они отличаются от конфигов. Есть кейсы, где такое поведение полезно.
источник

СП

Сергей Предводителев... in Yii Framework 3
Как-то очень не очевидно.
источник

СП

Сергей Предводителев... in Yii Framework 3
Провайдеры же просто для удобства и группировки. А в итоге несут с собой кучу сложности и неоднозначности.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Провайдеры же просто для удобства и группировки. А в итоге несут с собой кучу сложности и неоднозначности.
Нет, они не просто для удобства и группировки, именно приоритет более важная функция, ну и плюс возможность проводить какие-то подготовительные операции.
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Нет, они не просто для удобства и группировки, именно приоритет более важная функция, ну и плюс возможность проводить какие-то подготовительные операции.
А в каких кейсах пакет должен переопределять приложение?
источник