#TODO
-
CAUTION: This release drops support for PHP 5.3 due to the introduced dependency on
php-http/httplug
(see below). -
The client now depends on the HTTPlug library to perform HTTP requests. This means that the package now depends the virtual
php-http/client-implementation
. To satisfy this dependency you have to pick an implementation and install it together withphp-xapi/client
.For example, if you prefer to use Guzzle 6 you would do the following:
$ composer require --no-update php-http/guzzle6-adapter $ composer require php-xapi/client
-
The
setHttpClient()
andsetRequestFactory()
method have been added to theXApiClientBuilderInterface
and must be used to configure theHttpClient
andRequestFactory
instances you intend to use.To use Guzzle 6, for example, this will look like this:
use Http\Adapter\Guzzle6\Client; use Http\Message\MessageFactory\GuzzleMessageFactory; use Xabbuh\XApi\Client\XApiClientBuilder; $builder = new XApiClientBuilder(); $client = $builder->setHttpClient(new Client()) ->setRequestFactory(new GuzzleMessageFactory()) ->setBaseUrl('http://example.com/xapi/') ->build();
You can avoid calling
setHttpClient()
andsetRequestFactory
by installing the HTTP discovery package. -
The
xabbuh/oauth1-authentication
package now must be installed if you want to use OAuth1 authentication. -
A second optional
$attachments
argument (defaulting totrue
) has been added to thegetStatement()
,getVoidedStatement()
, andgetStatements()
methods of theStatementsApiClient
class and theStatementsApiClientInterface
. -
An optional fifth
$headers
parameter has been added to thecreateRequest()
method of theHandlerInterface
and theHandler
class which allows to pass custom headers when performing HTTP requests.
-
Removed the
ApiClient
class. The$requestHandler
and$version
attributes have been moved to the former child classes of theApiClient
class and their visibility has been changed toprivate
. -
The visibility of the
$documentDataSerializer
property of theActivityProfileApiClient
,AgentProfileApiClient
,DocumentApiClient
, andStateApiClient
classes has been changed toprivate
. -
Removed the
getRequestHandler()
method from the API classes:ActivityProfileApiClient::getRequestHandler()
AgentProfileApiClient::getRequestHandler()
ApiClient::getRequestHandler()
DocumentApiClient::getRequestHandler()
StateApiClient::getRequestHandler()
StatementsApiClient::getRequestHandler()
XApiClient::getRequestHandler()
-
Removed the
getVersion()
method from the API interfaces:ActivityProfileApiClientInterface::getVersion()
AgentProfileApiClientInterface::getVersion()
StateApiClientInterface::getVersion()
StatementsApiClientInterface::getVersion()
-
Removed the
getVersion()
method from the API classes:ActivityProfileApiClient::getVersion()
AgentProfileApiClient::getVersion()
ApiClient::getVersion()
DocumentApiClient::getVersion()
StateApiClient::getVersion()
StatementsApiClient::getVersion()
XApiClient::getVersion()
-
Removed the
getUsername()
andgetPassword()
methods from theHandlerInterface
and theHandler
class. -
Removed the
getHttpClient()
method from theHandler
class. -
Removed the
getSerializerRegistry()
method from theXApiClient
class. -
All classes are final now which means that you can now longer extend them. Consider using composition/decoration instead if you need to build functionality on top of the built-in classes.
- Statement identifiers must be passed as
StatementId
objects instead of strings.