Skip to content

Releases: php-xapi/client

0.6.0

16 Mar 10:47
v0.6.0
Compare
Choose a tag to compare
0.6.0 Pre-release
Pre-release
  • added compatibility with HTTPlug 2

  • dropped the support for HHVM and for PHP < 5.6

  • updated the X-Experience-API-Version header to default to the latest patch
    version (1.0.3)

  • allow 2.x releases of the php-xapi/model package too

  • allow 3.x releases of the php-xapi/model package for PHP 7.2 compatibility

0.5.0

01 Nov 21:18
v0.5.0
Compare
Choose a tag to compare
0.5.0 Pre-release
Pre-release
  • 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 with php-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() and setRequestFactory() method have been added to the XApiClientBuilderInterface and must be used to configure the HttpClient and RequestFactory 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() and setRequestFactory by installing the HTTP discovery package.

  • The xabbuh/oauth1-authentication package now must be installed if you want to use OAuth1 authentication.

  • Bumped the required versions of all php-xapi packages to the 1.x release series.

  • Include the raw attachment content wrapped in a multipart/mixed encoded request when raw content is part of a statement's attachment.

  • Added the possibility to decide whether or not to include attachments when requesting statements from an LRS. A second optional $attachments argument (defaulting to true) has been added for this purpose to the getStatement(), getVoidedStatement(), and getStatements() methods of the StatementsApiClient class and the StatementsApiClientInterface.

  • An optional fifth $headers parameter has been added to the createRequest() method of the HandlerInterface and the Handler class which allows to pass custom headers when performing HTTP requests.

0.4.0

06 Oct 19:35
v0.4.0
Compare
Choose a tag to compare
0.4.0 Pre-release
Pre-release

The XApiClientBuilder class now makes use of the SerializerFactoryInterface introduced in release 0.4.0 of the php-xapi/serializer package. By default, it will fall back to the SerializerFactory implemented provided by the php-xapi/symfony-serializer to maintain backwards-compatibility with the previous release. However, you are now able to inject arbitrary implementations of the SerializerFactoryInterface into the constructor of the XApiClientBuilder to use whatever alternative implementation (packages providing such an implementation should provide the virtual php-xapi/serializer-implementation package).

0.3.0

27 Sep 14:25
v0.3.0
Compare
Choose a tag to compare
0.3.0 Pre-release
Pre-release
  • Do not send authentication headers when no credentials have been configured.
  • Fixed treating HTTP methods case insensitive. Rejecting uppercased HTTP method names contradicts the HTTP specification. Lowercased method names will still be supported to keep backwards compatibility though.
  • Fixed creating XApiClient instances in an invalid state. The XApiClientBuilder now throws a \LogicException when the build() method is called before a base URI was configured.
  • [BC BREAK]: Removed the ApiClient class. The $requestHandler and $version attributes have been moved to the former child classes of the ApiClient class and their visibility has been changed to private.
  • [BC BREAK]: The visibility of the $documentDataSerializer property of the ActivityProfileApiClient, AgentProfileApiClient, DocumentApiClient, and StateApiClient classes has been changed to private.
  • [BC BREAK]: Removed the getRequestHandler() method from the API classes:
    • ActivityProfileApiClient::getRequestHandler()
    • AgentProfileApiClient::getRequestHandler()
    • ApiClient::getRequestHandler()
    • DocumentApiClient::getRequestHandler()
    • StateApiClient::getRequestHandler()
    • StatementsApiClient::getRequestHandler()
  • [BC BREAK]: Removed the getVersion() method from the API interfaces:
    • ActivityProfileApiClientInterface::getVersion()
    • AgentProfileApiClientInterface::getVersion()
    • StateApiClientInterface::getVersion()
    • StatementsApiClientInterface::getVersion()
  • [BC BREAK]: Removed the getVersion() method from the API classes:
    • ActivityProfileApiClient::getVersion()
    • AgentProfileApiClient::getVersion()
    • ApiClient::getVersion()
    • DocumentApiClient::getVersion()
    • StateApiClient::getVersion()
    • StatementsApiClient::getVersion()
    • XApiClient::getVersion()
  • [BC BREAK]: Removed the getUsername() and getPassword() methods from the HandlerInterface and the Handler class.
  • [BC BREAK]: Removed the getHttpClient() method from the Handler class.
  • [BC BREAK]: Removed the getSerializerRegistry() method from the XApiClient class.
  • [BC BREAK]: Made all classes final.

0.2.0

26 Sep 07:09
v0.2.0
Compare
Choose a tag to compare
0.2.0 Pre-release
Pre-release
  • made the client compatible with version 0.5 of the php-xapi/model package
  • made the client compatible with version 0.3 of the php-xapi/serializer package

v0.1.0

21 Mar 11:42
v0.1.0
Compare
Choose a tag to compare
v0.1.0 Pre-release
Pre-release

First release of an Experience API client based on the Guzzle HTTP library.

This package replaces the xabbuh/xapi-client package which is now deprecated and should no longer be used.