Size: a a a

2021 September 29

МФ

Максим Федоров... in symfony
сделай свой FooClient, в нем зависимость: настроенный газл
зарегал в контейнере и все
источник

ПГ

Павел Г. in symfony
Еще какой то бандл есть для газла
источник

МФ

Максим Федоров... in symfony
ну или фабрику клиентов сделать
источник

А

Антон in symfony
Тебе таймаут надо в конструкторе сконфижить или ты хочешь по месту настраивать?
источник

IK

Igor Korolchuk in symfony
сделать фабрику которая создаст и законфигурит объект
при инжекте в services yaml указать эту фабрику
источник

ПГ

Павел Г. in symfony
Там можно настраивать как symfony/http-client несколько клиентов
источник

ПГ

Павел Г. in symfony
Бандл есть уже :)
источник

ПГ

Павел Г. in symfony
Хотя возможно он дипрекейтед...
источник

ПГ

Павел Г. in symfony
Печаль (
источник

D

Dmitriy in symfony
Так тогда в FooClient придётся Guzzle делать как public. Или я что-то не так понял?
источник

А

Антон in symfony
Не придется
источник

D

Dmitriy in symfony
В конструкторе. Там не только таймаут, ещё base url, возможно, и т.п.
источник

ПГ

Павел Г. in symfony
Через new сделать, зачем вообще DI guzzle
источник

ПГ

Павел Г. in symfony
Ну внутри фабрики всмысле :)
источник

А

Антон in symfony
GuzzleHttp\Guzzle:
   factory: ['GuzzleFactory', 'build']
   arguments:
       $baseUri: ''
       $timeout: '%env(int:HTTP_TIMEOUT)%'


В статический метод build прилетят аргументы, а там сделаешь return new Guzzle().

Дальше в любом месте можно инжектить в конструктор газзл, он подтянется из фабрики

P.S.: неймспейсы надо заменить только.
источник

ПГ

Павел Г. in symfony
О четко
источник

D

Dmitriy in symfony
Наверняка. Хочется понять, как правильно это универсально делать, т.к. сегодня надо Газзл, а завтра sdk-клиент какой-нибудь. Под каждых чих бандл вряд ли будет готовый
источник

ПГ

Павел Г. in symfony
Тогда надо делать свой интерфейс
источник

D

Dmitriy in symfony
Норм, огонь. Спасибо
источник

ПГ

Павел Г. in symfony
HttpClientInterface с своими методами
источник