4.1 KiB
UPGRADE
Upgrading from 0.4 to 0.5
-
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 theXApiClientBuilderInterfaceand must be used to configure theHttpClientandRequestFactoryinstances 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()andsetRequestFactoryby installing the HTTP discovery package. -
The
xabbuh/oauth1-authenticationpackage now must be installed if you want to use OAuth1 authentication. -
A second optional
$attachmentsargument (defaulting totrue) has been added to thegetStatement(),getVoidedStatement(), andgetStatements()methods of theStatementsApiClientclass and theStatementsApiClientInterface. -
An optional fifth
$headersparameter has been added to thecreateRequest()method of theHandlerInterfaceand theHandlerclass which allows to pass custom headers when performing HTTP requests.
Upgrading from 0.2 to 0.3
-
Removed the
ApiClientclass. The$requestHandlerand$versionattributes have been moved to the former child classes of theApiClientclass and their visibility has been changed toprivate. -
The visibility of the
$documentDataSerializerproperty of theActivityProfileApiClient,AgentProfileApiClient,DocumentApiClient, andStateApiClientclasses 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 theHandlerInterfaceand theHandlerclass. -
Removed the
getHttpClient()method from theHandlerclass. -
Removed the
getSerializerRegistry()method from theXApiClientclass. -
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.
Upgrading from 0.1 to 0.2
- Statement identifiers must be passed as
StatementIdobjects instead of strings.