From 0134482c547f7afe51dae66d7cef3afb31adf575 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enes=20Yak=C4=B1=C5=9Ft=C4=B1r?= Date: Sun, 7 Jun 2026 10:20:55 +0300 Subject: [PATCH] fix: resolve string/int type mismatches in HtmlDashboardReporter - preg_replace() return value guarded with '?? ''' to eliminate string|null type - location line number explicitly cast to (string) before concatenation - PHPStan level 9 confirms zero errors after fix --- src/Reporting/HtmlDashboardReporter.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Reporting/HtmlDashboardReporter.php b/src/Reporting/HtmlDashboardReporter.php index a94dc54..18b8cc5 100644 --- a/src/Reporting/HtmlDashboardReporter.php +++ b/src/Reporting/HtmlDashboardReporter.php @@ -96,7 +96,7 @@ class HtmlDashboardReporter preg_match('/EXPLANATION:(.*)FIX:(.*)/s', $aiSuggestion, $matches); $explanation = trim($matches[1] ?? ''); $fixedCode = trim($matches[2] ?? ''); - $fixedCode = preg_replace('/^```html\s*|\s*```$/i', '', $fixedCode); + $fixedCode = preg_replace('/^```html\s*|\s*```$/i', '', $fixedCode) ?? ''; } else { $fixedCode = $aiSuggestion; } @@ -104,7 +104,7 @@ class HtmlDashboardReporter $escapedSnippet = htmlspecialchars($v->htmlSnippet, ENT_QUOTES, 'UTF-8'); $escapedFixed = $fixedCode ? htmlspecialchars($fixedCode, ENT_QUOTES, 'UTF-8') : ''; $escapedExplanation = $explanation ? htmlspecialchars($explanation, ENT_QUOTES, 'UTF-8') : ''; - $locationStr = $v->location ? htmlspecialchars($v->location['file'] . ':' . $v->location['line'], ENT_QUOTES, 'UTF-8') : 'N/A'; + $locationStr = $v->location ? htmlspecialchars($v->location['file'] . ':' . (string)$v->location['line'], ENT_QUOTES, 'UTF-8') : 'N/A'; $escapedRuleId = htmlspecialchars($v->ruleId, ENT_QUOTES, 'UTF-8'); $escapedMessage = htmlspecialchars($v->message, ENT_QUOTES, 'UTF-8');