Skip to content

Commit b5c98da

Browse files
authored
Merge pull request #521 from clue-labs/psr7-uri
Add new `Uri` class for new PSR-7 implementation
2 parents 58f9049 + c6caa12 commit b5c98da

10 files changed

+1082
-9
lines changed

README.md

+13
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ multiple concurrent HTTP requests without blocking.
7979
* [xml()](#xml)
8080
* [Request](#request-1)
8181
* [ServerRequest](#serverrequest)
82+
* [Uri](#uri)
8283
* [ResponseException](#responseexception)
8384
* [React\Http\Middleware](#reacthttpmiddleware)
8485
* [StreamingRequestMiddleware](#streamingrequestmiddleware)
@@ -2664,6 +2665,18 @@ application reacts to certain HTTP requests.
26642665
> Internally, this implementation builds on top of a base class which is
26652666
considered an implementation detail that may change in the future.
26662667

2668+
#### Uri
2669+
2670+
The `React\Http\Message\Uri` class can be used to
2671+
respresent a URI (or URL).
2672+
2673+
This class implements the
2674+
[PSR-7 `UriInterface`](https://www.php-fig.org/psr/psr-7/#35-psrhttpmessageuriinterface).
2675+
2676+
This is mostly used internally to represent the URI of each HTTP request
2677+
message for our HTTP client and server implementations. Likewise, you may
2678+
also use this class with other HTTP implementations and for tests.
2679+
26672680
#### ResponseException
26682681

26692682
The `React\Http\Message\ResponseException` is an `Exception` sub-class that will be used to reject

src/Browser.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
namespace React\Http;
44

55
use Psr\Http\Message\ResponseInterface;
6-
use RingCentral\Psr7\Uri;
76
use React\EventLoop\Loop;
87
use React\EventLoop\LoopInterface;
98
use React\Http\Io\Sender;
109
use React\Http\Io\Transaction;
1110
use React\Http\Message\Request;
11+
use React\Http\Message\Uri;
1212
use React\Promise\PromiseInterface;
1313
use React\Socket\ConnectorInterface;
1414
use React\Stream\ReadableStreamInterface;
@@ -834,7 +834,7 @@ private function requestMayBeStreaming($method, $url, array $headers = array(),
834834
{
835835
if ($this->baseUrl !== null) {
836836
// ensure we're actually below the base URL
837-
$url = Uri::resolve($this->baseUrl, $url);
837+
$url = Uri::resolve($this->baseUrl, new Uri($url));
838838
}
839839

840840
foreach ($this->defaultHeaders as $key => $value) {

src/Io/AbstractRequest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use Psr\Http\Message\RequestInterface;
66
use Psr\Http\Message\StreamInterface;
77
use Psr\Http\Message\UriInterface;
8-
use RingCentral\Psr7\Uri;
8+
use React\Http\Message\Uri;
99

1010
/**
1111
* [Internal] Abstract HTTP request base class (PSR-7)

src/Io/Transaction.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@
88
use React\EventLoop\LoopInterface;
99
use React\Http\Message\Response;
1010
use React\Http\Message\ResponseException;
11+
use React\Http\Message\Uri;
1112
use React\Promise\Deferred;
1213
use React\Promise\Promise;
1314
use React\Promise\PromiseInterface;
1415
use React\Stream\ReadableStreamInterface;
15-
use RingCentral\Psr7\Uri;
1616

1717
/**
1818
* @internal
@@ -264,7 +264,7 @@ public function onResponse(ResponseInterface $response, RequestInterface $reques
264264
private function onResponseRedirect(ResponseInterface $response, RequestInterface $request, Deferred $deferred, ClientRequestState $state)
265265
{
266266
// resolve location relative to last request URI
267-
$location = Uri::resolve($request->getUri(), $response->getHeaderLine('Location'));
267+
$location = Uri::resolve($request->getUri(), new Uri($response->getHeaderLine('Location')));
268268

269269
$request = $this->makeRedirectRequest($request, $location, $response->getStatusCode());
270270
$this->progress('redirect', array($request));

0 commit comments

Comments
 (0)