@xjasmx

Как передать объект с параметром в Service Container?

Доброго времени суток!

Столкнулся с ситуацией, когда нужно сервису предать объект с параметром в service.yaml. Конкретно, для реализации oauth 2 League объекту AuthorizationServer нужно передать в метод enableGrantType собственно сам грант, и объект DateInterval с самим параметром.

Например
calls:
- method: enableGrantType
arguments:
- '@League\OAuth2\Server\Grant\PasswordGrant'
- ?

Вопрос - как такое внедрение можно реализовать через Service Container Symfony?
  • Вопрос задан
  • 62 просмотра
Решения вопроса 2
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
Можно так: https://symfony.com/doc/current/service_container/...
А можно так: https://symfony.com/doc/current/service_container/...
Или даже так: https://symfony.com/doc/current/service_container/...

В первом случае зарегистрировать ваш DateInterval как сервис, во втором - создавать его внутри конфигуратора/фабрики.
Ответ написан
prototype_denis
@prototype_denis
Symfony
Если не используете trikoder/oauth2-bundle

parameters:
    date_interval: 'PT3600S'

services:
    date_interval:
        class: DateInterval
        arguments:
            - '%date_interval%'

    League\OAuth2\Server\AuthorizationServer:
        calls:
            - method: enableGrantType
        arguments:
            - '@League\OAuth2\Server\Grant\PasswordGrant'
            - '@date_interval'


Если используете, то данное значение настраивается в конфигурации пакета https://github.com/trikoder/oauth2-bundle/blob/v2....
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы