Skip to content

Commit 2364131

Browse files
Merge pull request #16 from php-http/response_factory
Require a Response factory in Client
2 parents a14e3f3 + bbde944 commit 2364131

File tree

2 files changed

+25
-17
lines changed

2 files changed

+25
-17
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
11
# Change Log
22

33

4+
## UNRELEASED
5+
6+
### Changed
7+
8+
- Client now requires a Response factory instead of a Message factory
9+
10+
411
## 0.2.0 - 2016-06-28
512

613
### Changed

src/Client.php

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22

33
namespace Http\Adapter\React;
44

5+
use Http\Client\HttpClient;
6+
use Http\Client\HttpAsyncClient;
7+
use Http\Client\Exception\HttpException;
8+
use Http\Client\Exception\RequestException;
59
use Http\Discovery\MessageFactoryDiscovery;
10+
use Http\Message\ResponseFactory;
11+
use Psr\Http\Message\RequestInterface;
612
use Psr\Http\Message\ResponseInterface;
13+
use Psr\Http\Message\StreamInterface;
714
use React\EventLoop\LoopInterface;
815
use React\Promise\Deferred;
916
use React\HttpClient\Client as ReactClient;
1017
use React\HttpClient\Request as ReactRequest;
1118
use React\HttpClient\Response as ReactResponse;
12-
use Http\Client\HttpClient;
13-
use Http\Client\HttpAsyncClient;
14-
use Http\Client\Exception\HttpException;
15-
use Http\Client\Exception\RequestException;
16-
use Http\Message\MessageFactory;
17-
use Psr\Http\Message\RequestInterface;
18-
use Psr\Http\Message\StreamInterface;
1919

2020
/**
2121
* Client for the React promise implementation.
@@ -39,21 +39,19 @@ class Client implements HttpClient, HttpAsyncClient
3939
private $loop;
4040

4141
/**
42-
* HTTPlug message factory.
43-
*
44-
* @var MessageFactory
42+
* @var ResponseFactory
4543
*/
46-
private $messageFactory;
44+
private $responseFactory;
4745

4846
/**
4947
* Initialize the React client.
5048
*
51-
* @param MessageFactory|null $messageFactory
52-
* @param LoopInterface|null $loop React Event loop
53-
* @param ReactClient|null $client React client to use
49+
* @param ResponseFactory|null $responseFactory
50+
* @param LoopInterface|null $loop
51+
* @param ReactClient|null $client
5452
*/
5553
public function __construct(
56-
MessageFactory $messageFactory = null,
54+
ResponseFactory $responseFactory = null,
5755
LoopInterface $loop = null,
5856
ReactClient $client = null
5957
) {
@@ -62,10 +60,11 @@ public function __construct(
6260
'You must give a LoopInterface instance with the Client'
6361
);
6462
}
63+
6564
$this->loop = $loop ?: ReactFactory::buildEventLoop();
6665
$this->client = $client ?: ReactFactory::buildHttpClient($this->loop);
6766

68-
$this->messageFactory = $messageFactory ?: MessageFactoryDiscovery::find();
67+
$this->responseFactory = $responseFactory ?: MessageFactoryDiscovery::find();
6968
}
7069

7170
/**
@@ -93,6 +92,7 @@ public function sendAsyncRequest(RequestInterface $request)
9392
$error
9493
));
9594
});
95+
9696
$reactRequest->on('response', function (ReactResponse $reactResponse = null) use ($deferred, $reactRequest, $request) {
9797
$bodyStream = null;
9898
$reactResponse->on('data', function ($data) use (&$bodyStream) {
@@ -140,6 +140,7 @@ public function sendAsyncRequest(RequestInterface $request)
140140
private function buildReactRequest(RequestInterface $request)
141141
{
142142
$headers = [];
143+
143144
foreach ($request->getHeaders() as $name => $value) {
144145
$headers[$name] = (is_array($value) ? $value[0] : $value);
145146
}
@@ -167,7 +168,7 @@ private function buildResponse(
167168
) {
168169
$body->rewind();
169170

170-
return $this->messageFactory->createResponse(
171+
return $this->responseFactory->createResponse(
171172
$response->getCode(),
172173
$response->getReasonPhrase(),
173174
$response->getHeaders(),

0 commit comments

Comments
 (0)