@@ -59,7 +59,7 @@ private function parse()
59
59
$ type = $ entry [0 ];
60
60
$ contents = $ entry [1 ];
61
61
62
- if (T_DOC_COMMENT === $ type ) {
62
+ if (' T_DOC_COMMENT ' === $ type ) {
63
63
$ docBlockFactory = \phpDocumentor \Reflection \DocBlockFactory::createInstance ();
64
64
$ docBlock = $ docBlockFactory ->create ($ contents );
65
65
@@ -217,6 +217,8 @@ private function isHook($name)
217
217
218
218
private function getHookType ($ name )
219
219
{
220
+ // Trim leading slashes.
221
+ $ name = ltrim ($ name , '\\' );
220
222
$ name = explode ('_ ' , $ name );
221
223
$ name = reset ($ name );
222
224
@@ -240,7 +242,7 @@ private function isHookComment($docBlock)
240
242
$ keywords = ['Filters ' , 'Fires ' ];
241
243
242
244
foreach ($ keywords as $ keyword ) {
243
- if (substr ($ docBlock ->getSummary (), 0 , mb_strlen ( $ keyword )) === $ keyword ) {
245
+ if (str_starts_with ($ docBlock ->getSummary (), $ keyword )) {
244
246
return true ;
245
247
}
246
248
}
@@ -252,6 +254,17 @@ private function getTokens()
252
254
{
253
255
$ tokens = token_get_all ($ this ->file ->getSource ());
254
256
255
- return $ tokens ;
257
+ foreach ($ tokens as &$ token ){
258
+ if (is_array ($ token )) {
259
+ $ token [0 ] = token_name ($ token [0 ]);
260
+ }
261
+ }
262
+
263
+ // Filter out whitespace tokens.
264
+ $ tokens = array_filter ($ tokens , function ($ token ) {
265
+ return !is_array ($ token ) || !in_array ($ token [0 ], ['T_WHITESPACE ' ]);
266
+ });
267
+
268
+ return array_values ($ tokens );
256
269
}
257
270
}
0 commit comments