Size: a a a

2020 April 06

DS

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

AM

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

DS

Dmitriy S in Yii Framework 3
Ну тогда я на второй способ бросаю иксепшин с not allowed in the event configurator
источник

AM

Alexander Makarov 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
Incorrect event configuration. bla-bla-bla format should be used.
источник

DS

Dmitriy S in Yii Framework 3
ок
источник

DS

Dmitriy S in Yii Framework 3
А ивент сабскрайберс нам не нужны? Это в основном для кейсов с ручной отложенной сборкой листенеров, хз нужно оно или нет.
источник

DS

Dmitriy S in Yii Framework 3
Это по аналогии с DeferredServiceProvider
источник

DS

Dmitriy S in Yii Framework 3
Чтобы не дергать контейнер, пока событие не наступило
источник

DS

Dmitriy S in Yii Framework 3
В этом случае даже кложи создаваться не будут до запроса листенера у провайдера.
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
А ивент сабскрайберс нам не нужны? Это в основном для кейсов с ручной отложенной сборкой листенеров, хз нужно оно или нет.
Не понял.
источник

DS

Dmitriy S in Yii Framework 3
Есть класс с интерфейсом EventSubscriberInterface, в нем методы getEventNames() и register(Provider $provider, ContainerInterface $container), в провайдере метод registerSubscriber() (или в кострукторе массив с сабскрайберами), котрый в массив с листенерами записывает сабскрайберы вместо листенеров, если вызван метод getListenersFor() проверяется перед отдачей листенера есть ли он объект с интерфейсом EventSubscriberInterface, если да, то регаем листенеры методом register и отдаем. Сами листенеры создаются в методе register, там же и дергается все из контейнера и инжектится. Как-то так. В итоге у нас листенеры создаются непосредственно при вызове событие, до этого регаются только сабскрайберы.
источник

AM

Alexander Makarov in Yii Framework 3
Особо не вижу профита.
источник

DS

Dmitriy S in Yii Framework 3
Хотя, вместо register, лучше getListener($eventName, Provider $provider, ContainerInterface $container), чтобы только на конткретное событие регать
источник

DS

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

AM

Alexander Makarov in Yii Framework 3
Давай отложим.
источник

AM

Alexander Makarov in Yii Framework 3
Что мне сейчас посмотреть?
источник