PluginProbe
Depicter — Popup & Slider Builder / 1.9.6
Depicter — Popup & Slider Builder v1.9.6
4.8.1 trunk 1.0.0 1.1.0 1.1.2 1.1.4 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.3.0 1.3.1 1.3.2 1.3.3 1.3.5 1.3.8 1.5.0 1.5.1 1.5.2 1.5.5 1.6.0 1.6.1 1.6.2 1.7.0 All 76 releases
depicter / modules / GuzzleHttp / Promise / Create.php

Create.php in Depicter — Popup & Slider Builder 1.9.6, at modules/GuzzleHttp/Promise/Create.php

85 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Depicter\GuzzleHttp\Promise;
4
5 final class Create
6 {
7 /**
8 * Creates a promise for a value if the value is not a promise.
9 *
10 * @param mixed $value Promise or value.
11 *
12 * @return PromiseInterface
13 */
14 public static function promiseFor($value)
15 {
16 if ($value instanceof PromiseInterface) {
17 return $value;
18 }
19
20 // Return a Guzzle promise that shadows the given promise.
21 if (is_object($value) && method_exists($value, 'then')) {
22 $wfn = method_exists($value, 'wait') ? [$value, 'wait'] : null;
23 $cfn = method_exists($value, 'cancel') ? [$value, 'cancel'] : null;
24 $promise = new Promise($wfn, $cfn);
25 $value->then([$promise, 'resolve'], [$promise, 'reject']);
26 return $promise;
27 }
28
29 return new FulfilledPromise($value);
30 }
31
32 /**
33 * Creates a rejected promise for a reason if the reason is not a promise.
34 * If the provided reason is a promise, then it is returned as-is.
35 *
36 * @param mixed $reason Promise or reason.
37 *
38 * @return PromiseInterface
39 */
40 public static function rejectionFor($reason)
41 {
42 if ($reason instanceof PromiseInterface) {
43 return $reason;
44 }
45
46 return new RejectedPromise($reason);
47 }
48
49 /**
50 * Create an exception for a rejected promise value.
51 *
52 * @param mixed $reason
53 *
54 * @return \Exception|\Throwable
55 */
56 public static function exceptionFor($reason)
57 {
58 if ($reason instanceof \Exception || $reason instanceof \Throwable) {
59 return $reason;
60 }
61
62 return new RejectionException($reason);
63 }
64
65 /**
66 * Returns an iterator for the given value.
67 *
68 * @param mixed $value
69 *
70 * @return \Iterator
71 */
72 public static function iterFor($value)
73 {
74 if ($value instanceof \Iterator) {
75 return $value;
76 }
77
78 if (is_array($value)) {
79 return new \ArrayIterator($value);
80 }
81
82 return new \ArrayIterator([$value]);
83 }
84 }
85