diff --git a/src/Core/RuleEngine.php b/src/Core/RuleEngine.php index d92e121..cf4c0aa 100644 --- a/src/Core/RuleEngine.php +++ b/src/Core/RuleEngine.php @@ -24,7 +24,8 @@ class RuleEngine $reflection = new \ReflectionMethod($rule, 'check'); $params = $reflection->getParameters(); - if (isset($params[0]) && $params[0]->getType() && $params[0]->getType()->getName() === 'DOMDocument') { + $type = $params[0]->getType(); + if (isset($params[0]) && $type instanceof \ReflectionNamedType && $type->getName() === 'DOMDocument') { // Document-level rule (Core\AbstractRule style) $violations = $rule->check($doc); $allViolations = array_merge($allViolations, $violations); diff --git a/src/Rules/HeadingOrderRule.php b/src/Rules/HeadingOrderRule.php index df079f2..0e7de0d 100644 --- a/src/Rules/HeadingOrderRule.php +++ b/src/Rules/HeadingOrderRule.php @@ -16,6 +16,9 @@ class HeadingOrderRule extends AbstractRule $lastLevel = 0; foreach ($headings as $h) { + if (!$h instanceof \DOMElement) { + continue; + } $level = (int)substr($h->tagName, 1); if ($lastLevel > 0 && $level > $lastLevel + 1) { $violations[] = $this->createViolation(