Skip to content

Commit 46e1b3d

Browse files
committed
compatibility with php-xapi/serializer 0.4.0
1 parent f229c5c commit 46e1b3d

8 files changed

+40
-27
lines changed

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
11
CHANGELOG
22
=========
33

4+
0.4.0
5+
-----
6+
7+
* The `XApiClientBuilder` class now makes use of the `SerializerFactoryInterface`
8+
introduced in release `0.4.0` of the `php-xapi/serializer` package. By
9+
default, it will fall back to the `SerializerFactory` implemented provided
10+
by the `php-xapi/symfony-serializer` to maintain backwards-compatibility
11+
with the previous release. However, you are now able to inject arbitrary
12+
implementations of the `SerializerFactoryInterface` into the constructor
13+
of the `XApiClientBuilder` to use whatever alternative implementation
14+
(packages providing such an implementation should provide the virtual
15+
`php-xapi/serializer-implementation` package).
16+
417
0.3.0
518
-----
619

composer.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
"guzzle/guzzle": "~3.7",
1717
"php-xapi/exception": "^0.1.0",
1818
"php-xapi/model": "^0.5.1",
19-
"php-xapi/serializer": "^0.3.0"
19+
"php-xapi/serializer": "^0.4",
20+
"php-xapi/serializer-implementation": "^1.0",
21+
"php-xapi/symfony-serializer": "^0.1"
2022
},
2123
"require-dev": {
2224
"phpspec/phpspec": "^2.3",

src/XApiClientBuilder.php

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@
1414
use Guzzle\Http\Client;
1515
use Guzzle\Plugin\Oauth\OauthPlugin;
1616
use Xabbuh\XApi\Client\Request\Handler;
17-
use Xabbuh\XApi\Serializer\ActorSerializer;
18-
use Xabbuh\XApi\Serializer\DocumentDataSerializer;
19-
use Xabbuh\XApi\Serializer\Serializer;
17+
use Xabbuh\XApi\Serializer\SerializerFactoryInterface;
2018
use Xabbuh\XApi\Serializer\SerializerRegistry;
21-
use Xabbuh\XApi\Serializer\StatementResultSerializer;
22-
use Xabbuh\XApi\Serializer\StatementSerializer;
19+
use Xabbuh\XApi\Serializer\Symfony\SerializerFactory;
2320

2421
/**
2522
* xAPI client builder.
@@ -28,16 +25,18 @@
2825
*/
2926
final class XApiClientBuilder implements XApiClientBuilderInterface
3027
{
28+
private $serializerFactory;
3129
private $baseUrl;
32-
3330
private $version;
34-
3531
private $username;
36-
3732
private $password;
38-
3933
private $oAuthCredentials;
4034

35+
public function __construct(SerializerFactoryInterface $serializerFactory = null)
36+
{
37+
$this->serializerFactory = $serializerFactory ?: new SerializerFactory();
38+
}
39+
4140
/**
4241
* {@inheritDoc}
4342
*/
@@ -99,12 +98,11 @@ public function build()
9998
$httpClient->addSubscriber(new OauthPlugin($this->oAuthCredentials));
10099
}
101100

102-
$serializer = Serializer::createSerializer();
103101
$serializerRegistry = new SerializerRegistry();
104-
$serializerRegistry->setStatementSerializer(new StatementSerializer($serializer));
105-
$serializerRegistry->setStatementResultSerializer(new StatementResultSerializer($serializer));
106-
$serializerRegistry->setActorSerializer(new ActorSerializer($serializer));
107-
$serializerRegistry->setDocumentDataSerializer(new DocumentDataSerializer($serializer));
102+
$serializerRegistry->setStatementSerializer($this->serializerFactory->createStatementSerializer());
103+
$serializerRegistry->setStatementResultSerializer($this->serializerFactory->createStatementResultSerializer());
104+
$serializerRegistry->setActorSerializer($this->serializerFactory->createActorSerializer());
105+
$serializerRegistry->setDocumentDataSerializer($this->serializerFactory->createDocumentDataSerializer());
108106

109107
$version = null === $this->version ? '1.0.1' : $this->version;
110108
$requestHandler = new Handler($httpClient, $version, $this->username, $this->password);

tests/Api/ActivityProfileApiClientTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Xabbuh\XApi\Model\Activity;
1717
use Xabbuh\XApi\Model\ActivityProfile;
1818
use Xabbuh\XApi\Model\IRI;
19-
use Xabbuh\XApi\Serializer\DocumentDataSerializer;
19+
use Xabbuh\XApi\Serializer\Symfony\DocumentDataSerializer;
2020

2121
/**
2222
* @author Christian Flothmann <[email protected]>

tests/Api/AgentProfileApiClientTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
use Xabbuh\XApi\Model\AgentProfile;
1818
use Xabbuh\XApi\Model\InverseFunctionalIdentifier;
1919
use Xabbuh\XApi\Model\IRI;
20-
use Xabbuh\XApi\Serializer\ActorSerializer;
21-
use Xabbuh\XApi\Serializer\DocumentDataSerializer;
20+
use Xabbuh\XApi\Serializer\Symfony\ActorSerializer;
21+
use Xabbuh\XApi\Serializer\Symfony\DocumentDataSerializer;
2222

2323
/**
2424
* @author Christian Flothmann <[email protected]>

tests/Api/ApiClientTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
use Symfony\Component\Serializer\SerializerInterface;
1515
use Xabbuh\XApi\Client\Request\HandlerInterface;
1616
use Xabbuh\XApi\Common\Exception\NotFoundException;
17-
use Xabbuh\XApi\Serializer\ActorSerializer;
18-
use Xabbuh\XApi\Serializer\DocumentDataSerializer;
1917
use Xabbuh\XApi\Serializer\SerializerRegistry;
20-
use Xabbuh\XApi\Serializer\StatementResultSerializer;
21-
use Xabbuh\XApi\Serializer\StatementSerializer;
18+
use Xabbuh\XApi\Serializer\Symfony\ActorSerializer;
19+
use Xabbuh\XApi\Serializer\Symfony\DocumentDataSerializer;
20+
use Xabbuh\XApi\Serializer\Symfony\StatementResultSerializer;
21+
use Xabbuh\XApi\Serializer\Symfony\StatementSerializer;
2222

2323
/**
2424
* @author Christian Flothmann <[email protected]>

tests/Api/StateApiClientTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
use Xabbuh\XApi\Model\InverseFunctionalIdentifier;
1919
use Xabbuh\XApi\Model\IRI;
2020
use Xabbuh\XApi\Model\State;
21-
use Xabbuh\XApi\Serializer\ActorSerializer;
22-
use Xabbuh\XApi\Serializer\DocumentDataSerializer;
21+
use Xabbuh\XApi\Serializer\Symfony\ActorSerializer;
22+
use Xabbuh\XApi\Serializer\Symfony\DocumentDataSerializer;
2323

2424
/**
2525
* @author Christian Flothmann <[email protected]>

tests/Api/StatementsApiClientTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,9 @@
2323
use Xabbuh\XApi\Model\StatementResult;
2424
use Xabbuh\XApi\Model\StatementsFilter;
2525
use Xabbuh\XApi\Model\Verb;
26-
use Xabbuh\XApi\Serializer\ActorSerializer;
27-
use Xabbuh\XApi\Serializer\StatementResultSerializer;
28-
use Xabbuh\XApi\Serializer\StatementSerializer;
26+
use Xabbuh\XApi\Serializer\Symfony\ActorSerializer;
27+
use Xabbuh\XApi\Serializer\Symfony\StatementResultSerializer;
28+
use Xabbuh\XApi\Serializer\Symfony\StatementSerializer;
2929

3030
/**
3131
* @author Christian Flothmann <[email protected]>

0 commit comments

Comments
 (0)