-
Upgrade to PHP 7.1+ #271
PHP 5.6 and 7.0 are no longer supported. We should only support active versions (7.1, 7.2 and 7.3 at the time of writing) -
Abstract the HTTP client using HTTPPlug #270
This version introduces HTTPPlug as the HTTP Client. HTTPPlug allows this library to use any HTTP Library as long as there is a HTTPPlug adaptor for it. All major libraries are available (Guzzle5/6, CURL, Buzz and many more).
Upgrade instructions:
- Check if any change from the list below affects your code and update it if required.
- Choose a client implementation and include it to your dependencies (ie
composer require php-http/curl-client
). We recommend that you choose the adapter for the library you already use in your project. If you don't use any,php-http/curl-client
is the most lightweight.- Upgrade your
intercom/intercom-php
dependency:composer update intercom/intercom-php
.Changes in this version:
IntercomClient
constructor third parameter now only accepts a key-value array of request headers, that will be included in every request, eg:new IntercomClient('token', null, ['Custom-Header' => 'value']);
. If you were passing any other options to the client (apart from headers), you will need to instantiate your own client and pass it using thesetHttpClient
method. Example:$httpClient = new Http\Adapter\Guzzle6\Client( new GuzzleHttp\Client(['connect_timeout' => 5]); ); $client = new IntercomClient('token'); $client->setHttpClient($httpClient);
IntercomClient
methodsetClient
has been renamed tosetHttpClient
. Its first argument must be aPsr\Http\Client\ClientInterface
. If you were using this method before upgrading, you can use the Guzzle6 adapter like in the example above. For example,$client->setClient($guzzleClient)
would need to be changed to$client->setHttpClient(new Http\Adapter\Guzzle6\Client($guzzleClient))
.
IntercomClient
no longer exposes the methodsgetGuzzleRequestOptions
andgetAuth
.
IntercomClient
now provides the methodssetRequestFactory
andsetUriFactory
so you can customize the generation of requests and URIs if needed.From now on, all the exceptions thrown by the SDK will implement
Http\Client\Exception
. See the different exceptions that can be thrown in the HTTPPlug documentation