@@ -17,11 +17,9 @@ final class Parser
17
17
/**
18
18
* Parses the given raw binary message into a Message object
19
19
*
20
- * @param string $data
21
20
* @throws InvalidArgumentException
22
- * @return Message
23
21
*/
24
- public function parseMessage ($ data )
22
+ public function parseMessage (string $ data ): Message
25
23
{
26
24
$ message = $ this ->parse ($ data , 0 );
27
25
if ($ message === null ) {
@@ -32,11 +30,9 @@ public function parseMessage($data)
32
30
}
33
31
34
32
/**
35
- * @param string $data
36
- * @param int $consumed
37
33
* @return ?Message
38
34
*/
39
- private function parse ($ data , $ consumed )
35
+ private function parse (string $ data , int $ consumed )
40
36
{
41
37
if (!isset ($ data [12 - 1 ])) {
42
38
return null ;
@@ -99,11 +95,9 @@ private function parse($data, $consumed)
99
95
}
100
96
101
97
/**
102
- * @param string $data
103
- * @param int $consumed
104
- * @return array
98
+ * @return array{Query, int}|array{null, null}
105
99
*/
106
- private function parseQuestion ($ data , $ consumed )
100
+ private function parseQuestion (string $ data , int $ consumed ): array
107
101
{
108
102
list ($ labels , $ consumed ) = $ this ->readLabels ($ data , $ consumed );
109
103
@@ -125,11 +119,9 @@ private function parseQuestion($data, $consumed)
125
119
}
126
120
127
121
/**
128
- * @param string $data
129
- * @param int $consumed
130
- * @return array An array with a parsed Record on success or array with null if data is invalid/incomplete
122
+ * @return array{Record, int}|array{null, null} An array with a parsed Record on success or array with null if data is invalid/incomplete
131
123
*/
132
- private function parseRecord ($ data , $ consumed )
124
+ private function parseRecord (string $ data , int $ consumed ): array
133
125
{
134
126
list ($ name , $ consumed ) = $ this ->readDomain ($ data , $ consumed );
135
127
@@ -278,7 +270,10 @@ private function parseRecord($data, $consumed)
278
270
];
279
271
}
280
272
281
- private function readDomain ($ data , $ consumed )
273
+ /**
274
+ * @return array{string, int}|array{null, null}
275
+ */
276
+ private function readDomain (string $ data , int $ consumed ): array
282
277
{
283
278
list ($ labels , $ consumed ) = $ this ->readLabels ($ data , $ consumed );
284
279
@@ -302,12 +297,10 @@ function ($label) {
302
297
}
303
298
304
299
/**
305
- * @param string $data
306
- * @param int $consumed
307
- * @param int $compressionDepth maximum depth for compressed labels to avoid unreasonable recursion
308
- * @return array
300
+ * @param int $compressionDepth maximum depth for compressed labels to avoid unreasonable recursion
301
+ * @return array{array<string>, int}|array{null, null}
309
302
*/
310
- private function readLabels ($ data , $ consumed , $ compressionDepth = 127 )
303
+ private function readLabels (string $ data , int $ consumed , int $ compressionDepth = 127 ): array
311
304
{
312
305
$ labels = [];
313
306
0 commit comments