(т.к.есть шанс, что потребуется срочно изменить в зависимости от среды выполнения).
В коде
Пример URL имеет такой вид:
- GET_USER_URI='https://dev.service.com/api/v1/user/{USER_ID}/name'
В services.yaml прописал:
Service\UserService:
public: true
arguments: [
'%env(GET_USER_URI)%'
]
Итог
Все работает - из .env в сервис URL подтягиваются.
Через str_replace подменяю подстроку "USER_ID" на реальное значение.
Вопрос
Подскажите, пожалуйста, есть ли какой то best practise по замене таких подстрок из параметров на реальные значения или мой str_replace и есть оптимальное решение?)
Для этих целей уже давно создан guzzle service desciption.
https://guzzle3.readthedocs.io/webservice-client/guzzle-service-descriptions.html
Ух, хотелось бы не завязываться на Guzzle. Главное, что в Symfony аналога нет, тогда оставлю пока свой костыль с str_replace. В целом суть понял, спасибо!
может тебе просто домены в энве хронить, а урлы отдельно строить из хардкода
признаться в первый раз вижу эту штуку, вы в продакшене этот подход использовали? У меня сейчас так: - если API нормальное, то JSON маппим на DTO (сериалайзер в помощь) - если API сделано косо (так сложилось по историческим причинам), то респонс закидываю в массив, а геттеры делаю через aннотации https://github.com/mesilov/bitrix24-php-sdk/blob/master/src/Services/CRM/Deal/Result/DealItemResult.php (прошу прощения)
Обсуждают сегодня