Skip to content

Commit 533b163

Browse files
committed
fix: Fix hook reference
1 parent 8c9463d commit 533b163

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

lib/Compiler/HookReference.php

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ private function parse()
5959
$type = $entry[0];
6060
$contents = $entry[1];
6161

62-
if (T_DOC_COMMENT === $type) {
62+
if ('T_DOC_COMMENT' === $type) {
6363
$docBlockFactory = \phpDocumentor\Reflection\DocBlockFactory::createInstance();
6464
$docBlock = $docBlockFactory->create($contents);
6565

@@ -217,6 +217,8 @@ private function isHook($name)
217217

218218
private function getHookType($name)
219219
{
220+
// Trim leading slashes.
221+
$name = ltrim($name, '\\');
220222
$name = explode('_', $name);
221223
$name = reset($name);
222224

@@ -240,7 +242,7 @@ private function isHookComment($docBlock)
240242
$keywords = ['Filters', 'Fires'];
241243

242244
foreach ($keywords as $keyword) {
243-
if (substr($docBlock->getSummary(), 0, mb_strlen($keyword)) === $keyword) {
245+
if (str_starts_with($docBlock->getSummary(), $keyword)) {
244246
return true;
245247
}
246248
}
@@ -252,6 +254,17 @@ private function getTokens()
252254
{
253255
$tokens = token_get_all($this->file->getSource());
254256

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);
256269
}
257270
}

0 commit comments

Comments
 (0)