Size: a a a

2020 October 20

AM

Alexander Makarov in Yii Framework 3
Сергей Предводителев
В yii3 вроде бы нет такого сейчас, чтобы после конфигурации контейнера что-то дополнительно выполнялось (как я понимаю в ларе это boot ).

Сконфижили контейнер и сразу в бой на обработку запросов.
Верно. Сейчас нет.
источник

AM

Alexander Makarov in Yii Framework 3
Вероятно, можно сделать.
источник

СП

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

Создаём некий аналог BootstrapInterface и класс, в который конфижим массив для запуска состоящий из callable или bootstrapinterface.

На уровне точки входа после конфигурации запускаем этот новый класс.

Как-то так?

Но в какой пакет положить этот класс и bootstrapinterface?
источник

AS

Alexey Samoylov in Yii Framework 3
тебя Yii2 пример интересует?
источник

СП

Сергей Предводителев... in Yii Framework 3
Alexey Samoylov
тебя Yii2 пример интересует?
Не, это я уже про yii3)
источник

AS

Alexey Samoylov in Yii Framework 3
в yii2 я просто контейнер расширил так чтоб он запоминал, какая из дефиниций умеет в BootableInterface
источник

AS

Alexey Samoylov in Yii Framework 3
и из приложения потом дергаю такое
источник

AS

Alexey Samoylov in Yii Framework 3
источник

AS

Alexey Samoylov in Yii Framework 3
когда уже апп точно готов к обработке реквеста (:
источник

В

Виктор in Yii Framework 3
Alexey Samoylov
когда уже апп точно готов к обработке реквеста (:
А можно пример из жизни, когда такое надо?
источник

AS

Alexey Samoylov in Yii Framework 3
Виктор
А можно пример из жизни, когда такое надо?
например когда твой сервис хочет поработать с ActiveRecord, а для этого в yii2 должен быть сконфигурирован компонент db
источник

В

Виктор in Yii Framework 3
Alexander Makarov
Верно. Сейчас нет.
А новые отложенные провайдеры не решают эти вопросы?
источник

AS

Alexey Samoylov in Yii Framework 3
а его на момент регистрации и инстанцирования сервиса может не быть
источник

В

Виктор in Yii Framework 3
Alexey Samoylov
например когда твой сервис хочет поработать с ActiveRecord, а для этого в yii2 должен быть сконфигурирован компонент db
При каждом старте приложения в момент конфигурирования сервис работает с БД?
источник

СП

Сергей Предводителев... in Yii Framework 3
Виктор
А новые отложенные провайдеры не решают эти вопросы?
Отложенные вызываются по требованию. А тут задача запуска всегда между конфигурацией контейнера и запуском приложения
источник

AS

Alexey Samoylov in Yii Framework 3
Виктор
При каждом старте приложения в момент конфигурирования сервис работает с БД?
или с редисом, или еще с каким-нибудь yii2 компонентом
источник

AS

Alexey Samoylov in Yii Framework 3
сервис может свои обработчики навешивать на активрекорд события
источник

В

Виктор in Yii Framework 3
Сергей Предводителев
Отложенные вызываются по требованию. А тут задача запуска всегда между конфигурацией контейнера и запуском приложения
И мы тут не возвращаемся к проблеме порядка вызовов? Один сервис в boot может запросить другой, которому тоже надо было бы boot до этого сделать.
источник

AS

Alexey Samoylov in Yii Framework 3
или делать, например, такое
источник

AS

Alexey Samoylov in Yii Framework 3
Виктор
И мы тут не возвращаемся к проблеме порядка вызовов? Один сервис в boot может запросить другой, которому тоже надо было бы boot до этого сделать.
по идее если ты внутри сервис провайдера просишь у контейнера инстанс, он тебе должен вернуться уже забутанный, и бутаться 1 раз
источник