From 0b77d8db8b11da8b94cb5a26509e30156c7f7afe Mon Sep 17 00:00:00 2001 From: Jordi Kroon Date: Fri, 12 Jun 2026 18:49:30 +0200 Subject: [PATCH] fix: skip exception name check for classname inside ooclass --- src/Sniff/ExceptionNameSniff.php | 4 ++++ tests/Unit/Sniff/ExceptionNameSniffTest.php | 10 ++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/Sniff/ExceptionNameSniff.php b/src/Sniff/ExceptionNameSniff.php index 2ff14ce..f2934ca 100644 --- a/src/Sniff/ExceptionNameSniff.php +++ b/src/Sniff/ExceptionNameSniff.php @@ -44,6 +44,10 @@ public function process(\DOMDocument $document, string $content, string $filePat continue; } + if ($node->parentNode instanceof \DOMElement && $node->parentNode->localName === 'ooclass') { + continue; + } + if ($this->looksLikeException($text, $suffixes)) { $violations[] = $this->createViolation( $filePath, diff --git a/tests/Unit/Sniff/ExceptionNameSniffTest.php b/tests/Unit/Sniff/ExceptionNameSniffTest.php index 397655c..de6600d 100644 --- a/tests/Unit/Sniff/ExceptionNameSniffTest.php +++ b/tests/Unit/Sniff/ExceptionNameSniffTest.php @@ -134,6 +134,16 @@ public function itHandlesMultipleClassnames(): void self::assertCount(2, $violations); } + #[Test] + public function itDoesNotFlagClassnameInsideOoclass(): void + { + $content = 'RuntimeException'; + $doc = $this->createDocument($content); + $violations = new ExceptionNameSniff()->process($doc, $content, 'file.xml'); + + self::assertSame([], $violations); + } + #[Test] public function itIncludesFilePathInViolation(): void {