Skip to content

ExceptionRendererRegistry

Process-global slot for the “developer” and “safe” exception renderers (the ones ErrorHandlingMiddleware uses when core.developer_exceptions is true or false, respectively), mirroring the static, worker-lifetime pattern of DatabaseDriverRegistry / MiddlewareCatalog.

This exists so core never hard-references a concrete renderer class (e.g. WhoopsRenderer) directly. A plugin contributes a developer renderer via PluginRegistrar::developerExceptionRenderer() and a safe/production renderer via PluginRegistrar::safeExceptionRenderer(); first registration wins for each (set-if-absent), matching the override rule every other plugin seam uses. If nothing is registered for the relevant slot, ErrorHandlingMiddleware falls back to SafeRenderer.

final class ExceptionRendererRegistry

SourceException/Rendering/ExceptionRendererRegistry.php
MethodDescription
[`developerRenderer(): ExceptionRenderernull`](#developerrenderer)
hasDeveloperRenderer(): boolReports whether a developer-renderer factory has been registered.
hasSafeRenderer(): boolReports whether a safe-renderer factory has been registered.
reset(): voidTest isolation.
[`safeRenderer(): ExceptionRenderernull`](#saferenderer)
setDeveloperRenderer(callable $factory): voidRegister the developer-renderer factory.
setSafeRenderer(callable $factory): voidRegister the safe/production-renderer factory.

public static function developerRenderer(): ExceptionRenderer|null

Returns ExceptionRenderer|``null — Null if nothing has registered a developer renderer.

public static function hasDeveloperRenderer(): bool

Reports whether a developer-renderer factory has been registered.

Answers from the stored factory without invoking it, so asking the question never constructs a renderer.

Returns bool

public static function hasSafeRenderer(): bool

Reports whether a safe-renderer factory has been registered.

Answers from the stored factory without invoking it, so asking the question never constructs a renderer.

Returns bool

public static function reset(): void

Test isolation.

public static function safeRenderer(): ExceptionRenderer|null

Returns ExceptionRenderer|``null — Null if nothing has registered a safe renderer.

public static function setDeveloperRenderer(callable $factory): void

Register the developer-renderer factory.

Set-if-absent: first caller wins.

ParameterTypeDescription
$factorycallable

public static function setSafeRenderer(callable $factory): void

Register the safe/production-renderer factory.

Set-if-absent: first caller wins.

ParameterTypeDescription
$factorycallable