Skip to content

Commit ae47a24

Browse files
committed
Mark FulfilledPromise and RejectedPromise as internal
Use `resolve()` and `reject()` instead.
1 parent ccd60f8 commit ae47a24

File tree

9 files changed

+43
-37
lines changed

9 files changed

+43
-37
lines changed

README.md

Lines changed: 2 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,6 @@ Table of Contents
3434
* [PromiseInterface::always()](#promiseinterfacealways)
3535
* [PromiseInterface::cancel()](#promiseinterfacecancel)
3636
* [Promise](#promise-2)
37-
* [FulfilledPromise](#fulfilledpromise)
38-
* [RejectedPromise](#rejectedpromise)
3937
* [Functions](#functions)
4038
* [resolve()](#resolve)
4139
* [reject()](#reject)
@@ -144,19 +142,15 @@ All consumers are notified by having `$onRejected` (which they registered via
144142

145143
The promise interface provides the common interface for all promise
146144
implementations.
145+
See [Promise](#promise-2) for the only public implementation exposed by this
146+
package.
147147

148148
A promise represents an eventual outcome, which is either fulfillment (success)
149149
and an associated value, or rejection (failure) and an associated reason.
150150

151151
Once in the fulfilled or rejected state, a promise becomes immutable.
152152
Neither its state nor its result (or error) can be modified.
153153

154-
#### Implementations
155-
156-
* [Promise](#promise-2)
157-
* [FulfilledPromise](#fulfilledpromise)
158-
* [RejectedPromise](#rejectedpromise)
159-
160154
#### PromiseInterface::then()
161155

162156
```php
@@ -341,27 +335,6 @@ with that thrown exception as the rejection reason.
341335
The resolver function will be called immediately, the canceller function only
342336
once all consumers called the `cancel()` method of the promise.
343337

344-
### FulfilledPromise
345-
346-
Creates a already fulfilled promise.
347-
348-
```php
349-
$promise = new React\Promise\FulfilledPromise($value);
350-
```
351-
352-
Note, that `$value` **cannot** be a promise. It's recommended to use
353-
[resolve()](#resolve) for creating resolved promises.
354-
355-
### RejectedPromise
356-
357-
Creates a already rejected promise.
358-
359-
```php
360-
$promise = new React\Promise\RejectedPromise($reason);
361-
```
362-
363-
Note, that `$reason` **must** be a `\Throwable`.
364-
365338
### Functions
366339

367340
Useful functions for creating, joining, mapping and reducing collections of

src/FulfilledPromise.php renamed to src/Internal/FulfilledPromise.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,16 @@
11
<?php
22

3-
namespace React\Promise;
3+
namespace React\Promise\Internal;
44

5+
use React\Promise\Promise;
6+
use React\Promise\PromiseInterface;
7+
use function React\Promise\enqueue;
8+
use function React\Promise\fatalError;
9+
use function React\Promise\resolve;
10+
11+
/**
12+
* @internal
13+
*/
514
final class FulfilledPromise implements PromiseInterface
615
{
716
private $value;

src/RejectedPromise.php renamed to src/Internal/RejectedPromise.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,17 @@
11
<?php
22

3-
namespace React\Promise;
3+
namespace React\Promise\Internal;
44

5+
use React\Promise\Promise;
6+
use React\Promise\PromiseInterface;
7+
use function React\Promise\_checkTypehint;
8+
use function React\Promise\enqueue;
9+
use function React\Promise\fatalError;
10+
use function React\Promise\resolve;
11+
12+
/**
13+
* @internal
14+
*/
515
final class RejectedPromise implements PromiseInterface
616
{
717
private $reason;

src/Promise.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace React\Promise;
44

5+
use React\Promise\Internal\RejectedPromise;
6+
57
final class Promise implements PromiseInterface
68
{
79
private $canceller;

src/functions.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
namespace React\Promise;
44

55
use React\Promise\Exception\CompositeException;
6+
use React\Promise\Internal\FulfilledPromise;
7+
use React\Promise\Internal\RejectedPromise;
68

79
/**
810
* Creates a promise for the supplied `$promiseOrValue`.

tests/FunctionResolveTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace React\Promise;
44

5+
use React\Promise\Internal\FulfilledPromise;
6+
use React\Promise\Internal\RejectedPromise;
57
use Exception;
68

79
class FunctionResolveTest extends TestCase

tests/FulfilledPromiseTest.php renamed to tests/Internal/FulfilledPromiseTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
<?php
22

3-
namespace React\Promise;
3+
namespace React\Promise\Internal;
44

55
use InvalidArgumentException;
66
use LogicException;
77
use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
8+
use React\Promise\PromiseTest\PromiseFulfilledTestTrait;
9+
use React\Promise\PromiseTest\PromiseSettledTestTrait;
10+
use React\Promise\TestCase;
811

912
class FulfilledPromiseTest extends TestCase
1013
{
11-
use PromiseTest\PromiseSettledTestTrait,
12-
PromiseTest\PromiseFulfilledTestTrait;
14+
use PromiseSettledTestTrait,
15+
PromiseFulfilledTestTrait;
1316

1417
public function getPromiseTestAdapter(callable $canceller = null)
1518
{

tests/RejectedPromiseTest.php renamed to tests/Internal/RejectedPromiseTest.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
<?php
22

3-
namespace React\Promise;
3+
namespace React\Promise\Internal;
44

55
use Exception;
66
use LogicException;
77
use React\Promise\PromiseAdapter\CallbackPromiseAdapter;
8+
use React\Promise\PromiseTest\PromiseRejectedTestTrait;
9+
use React\Promise\PromiseTest\PromiseSettledTestTrait;
10+
use React\Promise\TestCase;
811

912
class RejectedPromiseTest extends TestCase
1013
{
11-
use PromiseTest\PromiseSettledTestTrait,
12-
PromiseTest\PromiseRejectedTestTrait;
14+
use PromiseSettledTestTrait,
15+
PromiseRejectedTestTrait;
1316

1417
public function getPromiseTestAdapter(callable $canceller = null)
1518
{

tests/fixtures/SimpleFulfilledTestThenable.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace React\Promise;
44

5+
use React\Promise\Internal\RejectedPromise;
6+
57
class SimpleFulfilledTestThenable
68
{
79
public function then(callable $onFulfilled = null, callable $onRejected = null)

0 commit comments

Comments
 (0)