22
22
*/
23
23
final class Parameters implements \IteratorAggregate, \Countable
24
24
{
25
+ /**
26
+ * @var array<int, array{0: string, 1: Parameter}>
27
+ */
25
28
private array $ parameters = [];
26
29
27
30
/**
@@ -68,7 +71,9 @@ public function add(string $key, Parameter $value): self
68
71
}
69
72
70
73
/**
71
- * @param class-string $parameterClass
74
+ * @template T of Parameter
75
+ *
76
+ * @param class-string<T> $parameterClass
72
77
*/
73
78
public function remove (string $ key , string $ parameterClass = QueryParameter::class): self
74
79
{
@@ -84,7 +89,11 @@ public function remove(string $key, string $parameterClass = QueryParameter::cla
84
89
}
85
90
86
91
/**
87
- * @param class-string $parameterClass
92
+ * @template T of Parameter
93
+ *
94
+ * @param class-string<T> $parameterClass
95
+ *
96
+ * @return T|null
88
97
*/
89
98
public function get (string $ key , string $ parameterClass = QueryParameter::class): ?Parameter
90
99
{
@@ -98,7 +107,9 @@ public function get(string $key, string $parameterClass = QueryParameter::class)
98
107
}
99
108
100
109
/**
101
- * @param class-string $parameterClass
110
+ * @template T of Parameter
111
+ *
112
+ * @param class-string<T> $parameterClass
102
113
*/
103
114
public function has (string $ key , string $ parameterClass = QueryParameter::class): bool
104
115
{
@@ -118,7 +129,7 @@ public function count(): int
118
129
119
130
public function sort (): self
120
131
{
121
- usort ($ this ->parameters , fn ($ a , $ b ): int | float => $ b [1 ]->getPriority () - $ a [1 ]->getPriority ());
132
+ usort ($ this ->parameters , static fn (array $ a , array $ b ): int => $ b [1 ]->getPriority () - $ a [1 ]->getPriority ());
122
133
123
134
return $ this ;
124
135
}
0 commit comments