Skip to content

Commit 21536b5

Browse files
Refactor renderText logic for better ANSI formatting, improve suggestions handling, and add relative path support in code excerpts. Update severity labels for better readability and enhance example script with additional test cases.
1 parent 0ed49c9 commit 21536b5

4 files changed

Lines changed: 119 additions & 79 deletions

File tree

.phpunit.result.cache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"version":2,"defects":{"ErrorExplainer\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":8,"PhpErrorInsight\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":8,"PhpErrorInsight\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":8,"PhpErrorInsight\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":7,"PhpErrorInsight\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":7,"PhpErrorInsight\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":7,"PhpErrorInsight\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":8,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":8,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":8,"PhpErrorInsight\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":8,"PhpErrorInsight\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":8,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":7,"PhpErrorInsight\\Tests\\RendererTest::testRenderJsonOutputsJson":8,"PhpErrorInsight\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":8,"PhpErrorInsight\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":8,"PhpErrorInsight\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":8,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomRegexHasPriority":8,"PhpErrorInsight\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":8,"PhpErrorInsight\\Tests\\TranslatorTest::testDotNotationRetrieval":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsSuggestions":7,"PhpErrorInsight\\Tests\\E2EJsonContentTypeTest::testForcesJsonWhenHttpContentTypeIsJson":7},"times":{"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayMergesProperly":0.002,"ErrorExplainer\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":0.026,"ErrorExplainer\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":0,"ErrorExplainer\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":0.001,"ErrorExplainer\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":0.001,"ErrorExplainer\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":0,"ErrorExplainer\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":0.002,"ErrorExplainer\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":0.001,"ErrorExplainer\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":0.002,"ErrorExplainer\\Tests\\RendererTest::testRenderJsonOutputsJson":0.001,"ErrorExplainer\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":0.006,"ErrorExplainer\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":0,"ErrorExplainer\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":0,"ErrorExplainer\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":0,"ErrorExplainer\\Tests\\SanitizerTest::testCustomRegexHasPriority":0.001,"ErrorExplainer\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":0.001,"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootAndEditorUrlFromEnv":0.003,"ErrorExplainer\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":0,"ErrorExplainer\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":0.013,"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":0.01,"ErrorExplainer\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":0.004,"ErrorExplainer\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":0.001,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":0,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":0,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":0.001,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":0,"ErrorExplainer\\Tests\\TranslatorTest::testDotNotationRetrieval":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":0,"PhpErrorInsight\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":0.002,"PhpErrorInsight\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":0,"PhpErrorInsight\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":0.003,"PhpErrorInsight\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":0,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":0,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":0,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":0,"PhpErrorInsight\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":0,"PhpErrorInsight\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":0,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":0.001,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":0,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":0.001,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":0,"PhpErrorInsight\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":0.007,"PhpErrorInsight\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":0.002,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":0.001,"PhpErrorInsight\\Tests\\RendererTest::testRenderJsonOutputsJson":0,"PhpErrorInsight\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":0.003,"PhpErrorInsight\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":0,"PhpErrorInsight\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":0,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomRegexHasPriority":0,"PhpErrorInsight\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":0,"PhpErrorInsight\\Tests\\TranslatorTest::testDotNotationRetrieval":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":0,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSuggestions":0,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsSuggestions":0.001,"PhpErrorInsight\\Tests\\E2EJsonContentTypeTest::testForcesJsonWhenHttpContentTypeIsJson":0.269}}
1+
{"version":2,"defects":{"ErrorExplainer\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":8,"PhpErrorInsight\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":8,"PhpErrorInsight\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":8,"PhpErrorInsight\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":7,"PhpErrorInsight\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":8,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":7,"PhpErrorInsight\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":7,"PhpErrorInsight\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":8,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":8,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":8,"PhpErrorInsight\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":8,"PhpErrorInsight\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":8,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":7,"PhpErrorInsight\\Tests\\RendererTest::testRenderJsonOutputsJson":8,"PhpErrorInsight\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":8,"PhpErrorInsight\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":8,"PhpErrorInsight\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":8,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":8,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomRegexHasPriority":8,"PhpErrorInsight\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":8,"PhpErrorInsight\\Tests\\TranslatorTest::testDotNotationRetrieval":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":8,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":8,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsSuggestions":7,"PhpErrorInsight\\Tests\\E2EJsonContentTypeTest::testForcesJsonWhenHttpContentTypeIsJson":7,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSuggestions":7},"times":{"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayMergesProperly":0.002,"ErrorExplainer\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":0.026,"ErrorExplainer\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":0,"ErrorExplainer\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":0.001,"ErrorExplainer\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":0.001,"ErrorExplainer\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":0,"ErrorExplainer\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":0.002,"ErrorExplainer\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":0.001,"ErrorExplainer\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":0.002,"ErrorExplainer\\Tests\\RendererTest::testRenderJsonOutputsJson":0.001,"ErrorExplainer\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":0.006,"ErrorExplainer\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":0,"ErrorExplainer\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":0,"ErrorExplainer\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":0.001,"ErrorExplainer\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":0,"ErrorExplainer\\Tests\\SanitizerTest::testCustomRegexHasPriority":0.001,"ErrorExplainer\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":0.001,"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootAndEditorUrlFromEnv":0.003,"ErrorExplainer\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":0,"ErrorExplainer\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":0.013,"ErrorExplainer\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":0.01,"ErrorExplainer\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":0.004,"ErrorExplainer\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":0.001,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":0,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":0,"ErrorExplainer\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":0.001,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":0,"ErrorExplainer\\Tests\\TranslatorTest::testDotNotationRetrieval":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":0,"ErrorExplainer\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":0,"PhpErrorInsight\\Tests\\ConfigTest::testFromEnvAndArrayLoadsProjectRootHostRootAndEditorUrlFromEnv":0.006,"PhpErrorInsight\\Tests\\ConfigTest::testArrayOptionsOverrideEnv":0,"PhpErrorInsight\\Tests\\E2ERegisterTest::testRegisterAndTriggerUserWarningOutputsJsonWithOriginalMessage":0.004,"PhpErrorInsight\\Tests\\ErrorExplainerUnregisterTest::testRegisterDisabledDoesNotInstallHandlersAndUnregisterIsIdempotent":0.001,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testPreviousErrorHandlerIsCalledWhenPresent":0,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionCallsPreviousWhenDisabled":0,"PhpErrorInsight\\Tests\\ErrorHandlerChainingTest::testHandleExceptionRethrowsWhenDisabledAndNoPrevious":0.001,"PhpErrorInsight\\Tests\\ErrorHandlerDumperInjectionTest::testInjectedDumperIsUsed":0,"PhpErrorInsight\\Tests\\ErrorHandlerFunctionalTest::testHandleErrorInvokesExplainerAndRenderer":0,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testPromptIsSanitizedBeforeDelegation":0.001,"PhpErrorInsight\\Tests\\ExplainerSanitizationTest::testEnvCanDisableSanitization":0,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsBullets":0.001,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainWithoutAIClientFallsBackToTranslations":0.001,"PhpErrorInsight\\Tests\\RendererLinkingTest::testHtmlContainsEditorLinksAndCopyButtonsWithRelativePaths":0.008,"PhpErrorInsight\\Tests\\RendererMappingTest::testEditorHrefMapsContainerPathToHostPath":0.002,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSummaryAndSuggestions":0.001,"PhpErrorInsight\\Tests\\RendererTest::testRenderJsonOutputsJson":0,"PhpErrorInsight\\Tests\\RendererTest::testRenderHtmlOutputsHtmlDocument":0.003,"PhpErrorInsight\\Tests\\SanitizerTest::testAuthorizationHeaderIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testJwtLikeTokenIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testEmailAndPhoneAreMasked":0,"PhpErrorInsight\\Tests\\SanitizerTest::testItalianCFAndIBANAreRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testPaymentLikeNumberIsRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testPrivateIPsAndCookieAreRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testFullPrivateIPRangesAreFullyRedacted":0,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomMaskAndRulesFromConfig":0,"PhpErrorInsight\\Tests\\SanitizerTest::testCustomRegexHasPriority":0,"PhpErrorInsight\\Tests\\StateDumperTest::testCollectStateReturnsExpectedKeys":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringUsesLocaleAndFallsBackToEn":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringDefaultsToEnWhenLanguageEmptyOrZero":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateStringWithPlaceholders":0,"PhpErrorInsight\\Tests\\TranslatorTest::testDotNotationRetrieval":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateReturnsKeyWhenMissing":0,"PhpErrorInsight\\Tests\\TranslatorTest::testTranslateListDefaultsToItAndFallsBackToIt":0,"PhpErrorInsight\\Tests\\RendererTest::testRenderTextOutputsSuggestions":0,"PhpErrorInsight\\Tests\\ExplainerTest::testExplainUsesInjectedAIClientAndExtractsSuggestions":0.001,"PhpErrorInsight\\Tests\\E2EJsonContentTypeTest::testForcesJsonWhenHttpContentTypeIsJson":0.277}}

examples/vanilla/index.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
require __DIR__ . '/../../vendor/autoload.php'; // Ensure you ran `composer dump-autoload`
1818

19-
use ErrorExplainer\ErrorExplainer;
19+
use PhpErrorInsight\ErrorExplainer;
2020

2121
ErrorExplainer::register([
2222
'enabled' => true,
@@ -28,6 +28,10 @@
2828
'language' => getenv('PHP_ERROR_INSIGHT_LANG') ?: 'en',
2929
'apiKey' => getenv('PHP_ERROR_INSIGHT_API_KEY') ?: null,
3030
'apiUrl' => getenv('PHP_ERROR_INSIGHT_API_URL') ?: null,
31+
'projectRoot' => dirname(__DIR__, 2),
3132
]);
3233

34+
trigger_error("Notice function called.", E_USER_NOTICE);
35+
trigger_error("Deprecated function called.", E_USER_DEPRECATED);
3336
echo $undefinedVar;
37+
throw new Exception('This is a test exception');

0 commit comments

Comments
 (0)