Description
Symfony version(s) affected
6.4
Description
https://github.com/symfony/symfony/blob/6.4/src/Symfony/Component/ErrorHandler/CHANGELOG.md
nor
https://github.com/symfony/symfony/blob/6.4/CHANGELOG-6.4.md
do not document the Breaking Change from 6.3 in Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer
for the now required Symfony\Component\HttpKernel\Log\DebugLoggerConfigurator on line 143
How to reproduce
composer init
composer require symfony/error-handler
Create an index.php file with the contents:
<?php
use Symfony\Component\ErrorHandler\BufferingLogger;
use Symfony\Component\ErrorHandler\DebugClassLoader;
use Symfony\Component\ErrorHandler\ErrorHandler;
require __DIR__ . '/vendor/autoload.php';
ErrorHandler::register(new ErrorHandler(new BufferingLogger(), true));
throw new \RuntimeException();
Run php -S localhost:8000 index.php
and navigate to localhost:8000
Result:
Fatal error: Uncaught Symfony\Component\ErrorHandler\Error\ClassNotFoundError: Attempted to load class "DebugLoggerConfigurator" from namespace "Symfony\Component\HttpKernel\Log".
Did you forget a "use" statement for another namespace? in D:\php\symfony-error-handler-test\vendor\symfony\error-handler\ErrorRenderer\HtmlErrorRenderer.php:143
Stack trace:
#0 D:\php\symfony-error-handler-test\vendor\symfony\error-handler\ErrorRenderer\HtmlErrorRenderer.php(70): Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer->renderException()
#1 D:\php\symfony-error-handler-test\vendor\symfony\error-handler\ErrorHandler.php(645): Symfony\Component\ErrorHandler\ErrorRenderer\HtmlErrorRenderer->render()
#2 D:\php\symfony-error-handler-test\vendor\symfony\error-handler\ErrorHandler.php(531): Symfony\Component\ErrorHandler\ErrorHandler->renderException()
#3 [internal function]: Symfony\Component\ErrorHandler\ErrorHandler->handleException()
#4 {main}
thrown in D:\php\symfony-error-handler-test\vendor\symfony\error-handler\ErrorRenderer\HtmlErrorRenderer.php on line 143
Expected result (without the requirement of having to composer require symfony/http-kernel
):
Possible Solution
Options:
- Document the breaking change
- Move the
Symfony\Component\HttpKernel\Log
classes intosymfony/error-handler
(symfony/monolog-bridge
andsymfony/framework-bundle
andsymfony/http-kernel
both already requiresymfony/error-handler
, see image) - Revert this change
Option 2 "shouldn't" cause any issues, and will end up requiring less dependencies overall.
Additional Context
none