Files
2025-08-14 22:41:49 +02:00

2.1 KiB

UPGRADE

Upgrading from 1.x to 2.0

Raw attachment content data must be passed in order to make it possible for serializer implementiations to populate the $content attribute of Attachment objects during deserialization.

In order to achieve this an optional $attachments argument has been added to the StatementResultSerializerInterface::deserializeStatementResult(), and the deserializeStatement() and deserializeStatements() methods of the StatementSerializerInterface.

When being passed, this argument must be an array mapping SHA-2 hashes to an array which in turn maps the type and content keys to the attachment's content type and raw content data respectively.

Upgrading from 0.3 to 0.4

  • The serializer implementation has been separated from its API definition. This package now no longer ships with an implementation.

    The Symfony Serializer component integration has been moved to the separate php-xapi/symfony-serializer package.

    A default implementation of the SerializerRegistryInterface is still part of the php-xapi/serializer package though.

    This package ships with the following interfaces that must be implemented by packages that want to provide the xAPI serialization functionality:

    • ActorSerializerInterface
    • DocumentDataSerializerInterface
    • StatementResultSerializerInterface
    • StatementSerializerInterface
    • StatementFactoryInterface

    Implementors of the API provided by this package are advised to add the php-xapi/serializer-implementation package to the provide section of their composer.json file.

    The Tests subnamespace of this package contains a set of base abstract PHPUnit test classes integrators can use to make sure that their implementation adheres to the API specified by the php-xapi/serializer package.

  • The SerializerRegistry class is now final. If you need custom behavior inside the serializer registry, create your own implementation of the SerializerRegistryInterface.