(т.к.есть шанс, что потребуется срочно изменить в зависимости от среды выполнения).
                  
                  
                  
                  
                  
                  В коде
                  
                  
                  Пример 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
 Sergio
                          K.
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                      
                      
                        
                          Sergio
                          K.
                        
                      
                    
                    
                    
                    
                      Автор вопроса
                    
                    
                  Ух, хотелось бы не завязываться на 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 (прошу прощения)
Обсуждают сегодня