GeocoderLaravel icon indicating copy to clipboard operation
GeocoderLaravel copied to clipboard

Use service container to instantiate adapter

Open JaZo opened this issue 3 years ago • 0 comments

This allows you to specify how the adapter should be instantiated. You could, for example, set Guzzle options or use a different adapter in tests, to mock requests.

$this->app->bind(\Http\Client\HttpClient::class, function ($app) {
    if ($app->environment('testing')) {
        return new \Swis\Http\Fixture\Client(
            new \Swis\Http\Fixture\ResponseBuilder('/path/to/fixtures')
        );
    } else {
        return \Http\Adapter\Guzzle7\Client::createWithConfig(
            [
                'timeout' => 2,
            ]
        );
    }
});

N.B. This example uses our swisnl/php-http-fixture-client when in testing environment. This package allows you to easily mock requests with static fixtures. Definitely worth a try!

JaZo avatar Mar 15 '22 20:03 JaZo