23
23
use Reflector ;
24
24
use RuntimeException ;
25
25
use UnexpectedValueException ;
26
+ use function define ;
27
+ use function defined ;
26
28
use function file_exists ;
27
29
use function file_get_contents ;
28
30
use function get_class ;
29
31
use function in_array ;
30
32
use function is_string ;
33
+ use function strrpos ;
34
+ use function substr ;
31
35
use function token_get_all ;
32
36
use function trim ;
33
37
use const T_AS ;
39
43
use const T_STRING ;
40
44
use const T_USE ;
41
45
46
+ if (!defined ('T_NAME_QUALIFIED ' )) {
47
+ define ('T_NAME_QUALIFIED ' , 'T_NAME_QUALIFIED ' );
48
+ }
49
+
50
+ if (!defined ('T_NAME_FULLY_QUALIFIED ' )) {
51
+ define ('T_NAME_FULLY_QUALIFIED ' , 'T_NAME_FULLY_QUALIFIED ' );
52
+ }
53
+
42
54
/**
43
55
* Convenience class to create a Context for DocBlocks when not using the Reflection Component of phpDocumentor.
44
56
*
@@ -221,7 +233,8 @@ private function parseNamespace(ArrayIterator $tokens) : string
221
233
$ this ->skipToNextStringOrNamespaceSeparator ($ tokens );
222
234
223
235
$ name = '' ;
224
- while ($ tokens ->valid () && (in_array ($ tokens ->current ()[0 ], [T_STRING , T_NS_SEPARATOR ], true ) || defined ('T_NAME_QUALIFIED ' ) && T_NAME_QUALIFIED === $ tokens ->current ()[0 ])) {
236
+ $ acceptedTokens = [T_STRING , T_NS_SEPARATOR , T_NAME_QUALIFIED ];
237
+ while ($ tokens ->valid () && in_array ($ tokens ->current ()[0 ], $ acceptedTokens , true )) {
225
238
$ name .= $ tokens ->current ()[1 ];
226
239
$ tokens ->next ();
227
240
}
@@ -268,11 +281,11 @@ private function skipToNextStringOrNamespaceSeparator(ArrayIterator $tokens) : v
268
281
break ;
269
282
}
270
283
271
- if (defined ( ' T_NAME_QUALIFIED ' ) && T_NAME_QUALIFIED === $ currentToken [0 ]) {
284
+ if ($ currentToken [0 ] === T_NAME_QUALIFIED ) {
272
285
break ;
273
286
}
274
287
275
- if (defined ('T_NAME_FULLY_QUALIFIED ' ) && T_NAME_FULLY_QUALIFIED === $ currentToken [0 ]) {
288
+ if (defined ('T_NAME_FULLY_QUALIFIED ' ) && $ currentToken [0 ] === T_NAME_FULLY_QUALIFIED ) {
276
289
break ;
277
290
}
278
291
@@ -312,6 +325,14 @@ private function extractUseStatements(ArrayIterator $tokens) : array
312
325
$ currentNs .= (string ) $ tokenValue ;
313
326
$ currentAlias = $ tokenValue ;
314
327
break ;
328
+ case T_NAME_QUALIFIED :
329
+ case T_NAME_FULLY_QUALIFIED :
330
+ $ currentNs .= (string ) $ tokenValue ;
331
+ $ currentAlias = substr (
332
+ (string ) $ tokenValue ,
333
+ (int ) (strrpos ((string ) $ tokenValue , '\\' )) + 1
334
+ );
335
+ break ;
315
336
case T_CURLY_OPEN :
316
337
case '{ ' :
317
338
$ state = 'grouped ' ;
@@ -325,13 +346,6 @@ private function extractUseStatements(ArrayIterator $tokens) : array
325
346
$ state = 'end ' ;
326
347
break ;
327
348
default :
328
- if (defined ('T_NAME_QUALIFIED ' ) && T_NAME_QUALIFIED === $ tokenId ) {
329
- $ currentNs .= (string )$ tokenValue ;
330
- $ currentAlias = substr ($ tokenValue , strrpos ($ tokenValue , '\\' ) + 1 );
331
- } elseif (defined ('T_NAME_FULLY_QUALIFIED ' ) && T_NAME_FULLY_QUALIFIED === $ tokenId ) {
332
- $ currentNs .= (string ) $ tokenValue ;
333
- $ currentAlias = substr ($ tokenValue , strrpos ($ tokenValue , '\\' ) + 1 );
334
- }
335
349
break ;
336
350
}
337
351
0 commit comments