Skip to content

[HttpKernel][ErrorHandler] Undocumented BC with logging #53430

Closed
@radar3301

Description

@radar3301

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):
image

Possible Solution

Options:

  1. Document the breaking change
  2. Move the Symfony\Component\HttpKernel\Log classes into symfony/error-handler (symfony/monolog-bridge and symfony/framework-bundle and symfony/http-kernel both already require symfony/error-handler, see image) image
  3. Revert this change

Option 2 "shouldn't" cause any issues, and will end up requiring less dependencies overall.

Additional Context

none

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      pFad - Phonifier reborn

      Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

      Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


      Alternative Proxies:

      Alternative Proxy

      pFad Proxy

      pFad v3 Proxy

      pFad v4 Proxy