2525
2626use Throwable ;
2727
28- final class PHPUtils
28+ interface PHPUtilsInterface
2929{
3030
3131 /**
@@ -35,7 +35,72 @@ final class PHPUtils
3535 *
3636 * @phpstan-param array<int|float|string|object> $array
3737 * @throws Throwable
38+ *
39+ * This function is used to iterate over an array and call a callback function for each element.
3840 */
41+ public static function forEach (array $ array , callable $ callback ): Async ;
42+
43+ /**
44+ * @param array<int|float|string|object> $array
45+ * @param callable $callback
46+ * @return Async
47+ *
48+ * @phpstan-param array<int|float|string|object> $array
49+ * @throws Throwable
50+ *
51+ * This function is used to map over an array and apply a callback function to each element.
52+ */
53+ public static function arrayMap (array $ array , callable $ callback ): Async ;
54+
55+ /**
56+ * @param array<int|float|string|object> $array
57+ * @param callable $callback
58+ * @return Async
59+ *
60+ * @phpstan-param array<int|float|string|object> $array
61+ * @throws Throwable
62+ */
63+ public static function arrayFilter (array $ array , callable $ callback ): Async ;
64+
65+ /**
66+ * @param array<int|float|string|object> $array
67+ * @param callable $callback
68+ * @param mixed $initialValue
69+ * @return Async
70+ *
71+ * @throws Throwable
72+ *
73+ * This function is used to reduce an array to a single value by applying a callback function to each element.
74+ */
75+ public static function arrayReduce (array $ array , callable $ callback , mixed $ initialValue ): Async ;
76+
77+ /**
78+ * @param array<int|float|string|object> $array
79+ * @param string $className
80+ * @return Async
81+ *
82+ * @throws Throwable
83+ *
84+ * This function is used to check if all elements in an array are instances of a specific class.
85+ */
86+ public static function instanceOfAll (array $ array , string $ className ): Async ;
87+
88+ /**
89+ * @param array<int|float|string|object> $array
90+ * @param string $className
91+ * @return Async
92+ *
93+ * @throws Throwable
94+ *
95+ * This function is used to check if any element in an array is an instance of a specific class.
96+ */
97+ public static function instanceOfAny (array $ array , string $ className ): Async ;
98+
99+ }
100+
101+ final class PHPUtils implements PHPUtilsInterface
102+ {
103+
39104 public static function forEach (array $ array , callable $ callback ): Async
40105 {
41106 return new Async (function () use ($ array , $ callback ) {
@@ -46,14 +111,6 @@ public static function forEach(array $array, callable $callback): Async
46111 });
47112 }
48113
49- /**
50- * @param array<int|float|string|object> $array
51- * @param callable $callback
52- * @return Async
53- *
54- * @phpstan-param array<int|float|string|object> $array
55- * @throws Throwable
56- */
57114 public static function arrayMap (array $ array , callable $ callback ): Async
58115 {
59116 return new Async (function () use ($ array , $ callback ) {
@@ -66,14 +123,6 @@ public static function arrayMap(array $array, callable $callback): Async
66123 });
67124 }
68125
69- /**
70- * @param array<int|float|string|object> $array
71- * @param callable $callback
72- * @return Async
73- *
74- * @phpstan-param array<int|float|string|object> $array
75- * @throws Throwable
76- */
77126 public static function arrayFilter (array $ array , callable $ callback ): Async
78127 {
79128 return new Async (function () use ($ array , $ callback ) {
@@ -88,14 +137,6 @@ public static function arrayFilter(array $array, callable $callback): Async
88137 });
89138 }
90139
91- /**
92- * @param array<int|float|string|object> $array
93- * @param callable $callback
94- * @param mixed $initialValue
95- * @return Async
96- *
97- * @throws Throwable
98- */
99140 public static function arrayReduce (array $ array , callable $ callback , mixed $ initialValue ): Async
100141 {
101142 return new Async (function () use ($ array , $ callback , $ initialValue ) {
@@ -108,13 +149,6 @@ public static function arrayReduce(array $array, callable $callback, mixed $init
108149 });
109150 }
110151
111- /**
112- * @param array<int|float|string|object> $array
113- * @param string $className
114- * @return Async
115- *
116- * @throws Throwable
117- */
118152 public static function instanceOfAll (array $ array , string $ className ): Async
119153 {
120154 return new Async (function () use ($ array , $ className ) {
@@ -126,13 +160,6 @@ public static function instanceOfAll(array $array, string $className): Async
126160 });
127161 }
128162
129- /**
130- * @param array<int|float|string|object> $array
131- * @param string $className
132- * @return Async
133- *
134- * @throws Throwable
135- */
136163 public static function instanceOfAny (array $ array , string $ className ): Async
137164 {
138165 return new Async (function () use ($ array , $ className ) {
0 commit comments