Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
PHP HTML
Failed to load latest commit information.
build-tools first commit
src/M6Web/Bundle/WSClientBundle Merge pull request #30 from M6Web/feature/coke
.atoum.php
.bootstrap.atoum.php Mod: autoloading by the good way
.coke add coke
.gitignore change composer bin directory
.travis.yml fix travis ci
CONTRIBUTING.md change composer bin directory
LICENSE Add: OSS files
README.md change composer bin directory
composer.json change composer bin directory

README.md

Bundle WSClient Build Status

This bundle give a simple webservices client to call external urls. By default, it is based on Guzzle but you can plug any other client library.

Services

No default service is defined. You must set a configuration to instanciate one or more services.

Configuration

The main configuration key is m6_ws_client. Each subkey defines an instance of a webservice client. These services are named m6_ws_client_ + the subkey except for the default subkey that defines the main service m6_ws_client. For each instance, several parameters can be set :

  • base_url : the base domain of each url called with the service. If an absolute url is passed to the client, the base url is ignored.
  • config (optional) : additional parameters to configure the client, must be an array. See http://guzzle.readthedocs.org/en/latest/clients.html#request-options
  • cache (optional) :
    • ttl : 86400s by default. Max ttl if force_request_ttl is FALSE, forced ttl if force_request_ttl is TRUE
    • force_request_ttl (optional) : FALSE by default. If TRUE, request TTL is the same than the cache TTL, otherwise the request TTL is calculated according to response headers.
    • service : low level cache service (must implement M6Web\Bundle\WSClientBundle\Cache\CacheInterface)
    • adpater : adapter class name (must implement \Doctrine\Common\Cache\Cache)
    • storage : (optional) storage class name (must implement \GuzzleHttp\Subscriber\Cache\CacheStorageInterface)
    • subscriber : (optional) subscriber class (must implement \GuzzleHttp\Subscriber\Cache\SubscriberInterface)
    • can_cache : (optional) a callable to determine if a request can be cached

Here is an example of a simple configuration :

m6_ws_client:
    clients:
        default:
            base_url: 'toto.m6web.fr'
            config:
                timeout: 10
                allow_redirects: {max: 5, strict: false, referer: true}
                exceptions: false
            cache:
                ttl: 3600
                adapter: M6\Bundle\RedisBundle\Guzzle\RedisCacheAdapter
                service: m6_redis

Simple use case

For instance, in a controller :

$wsclient = $this->get('m6_ws_client');
$response = $wsclient->get('http://toto.m6web.fr/parse/?content=my_content');

echo $response->getBody();

unit test

composer install --dev
./bin/atoum
Something went wrong with that request. Please try again.