If you are using the Symfony bundle you want to use HTTPlug. It is a great tool to decouple from the HTTP client. If you are new to HTTPlug you may want to read their introduction. The very easiest way of using HTTPlug is to install the HTTPlugBundle.
The standard configuration (no configuration) works for a common setup but you may
want to add some configuration. If you want to add logging for all the requests and
responses for a client named
acme you may do:
httplug: plugins: logger: ~ clients: acme: factory: 'httplug.factory.guzzle6' plugins: ['httplug.plugin.logger'] config: verify: false timeout: 2 translation: http_client: 'httplug.client.acme'
When you are using the auto translation features you may want to cache the responses from your paid third party translator services. To configure HTTPlug to be aggressive for those request you need the CachePlugin and a PSR-6 cache pool.
# Using PHP-cache.com for PSR-6 cache. cache_adapter: providers: my_redis: factory: 'cache.factory.redis' httplug: plugins: logger: ~ cache: cache_pool: 'cache.provider.my_redis' config: default_ttl: 94608000 # three years respect_cache_headers: false # We cache no matter what the server says clients: translator_client: factory: 'httplug.factory.guzzle6' plugins: ['httplug.plugin.cache', 'httplug.plugin.logger'] translation: # ... http_client: 'httplug.client.translator_client' fallback_translation: service: 'google' # 'yandex' is available as an alternative api_key: 'foobar'
See PHP-cache.com for information about caching.