Configure HTTPlug

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'

Configure caching

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'

Note

See PHP-cache.com for information about caching.