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.
Synopsis
Section titled “Synopsis”final class ExceptionRendererRegistry
| Source | Exception/Rendering/ExceptionRendererRegistry.php |
Methods
Section titled “Methods”| Method | Description |
|---|---|
| [`developerRenderer(): ExceptionRenderer | null`](#developerrenderer) |
hasDeveloperRenderer(): bool | Reports whether a developer-renderer factory has been registered. |
hasSafeRenderer(): bool | Reports whether a safe-renderer factory has been registered. |
reset(): void | Test isolation. |
| [`safeRenderer(): ExceptionRenderer | null`](#saferenderer) |
setDeveloperRenderer(callable $factory): void | Register the developer-renderer factory. |
setSafeRenderer(callable $factory): void | Register the safe/production-renderer factory. |
developerRenderer()
Section titled “developerRenderer()”public static function developerRenderer(): ExceptionRenderer|null
Returns ExceptionRenderer|``null — Null if nothing has registered a developer renderer.
hasDeveloperRenderer()
Section titled “hasDeveloperRenderer()”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
hasSafeRenderer()
Section titled “hasSafeRenderer()”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
reset()
Section titled “reset()”public static function reset(): void
Test isolation.
safeRenderer()
Section titled “safeRenderer()”public static function safeRenderer(): ExceptionRenderer|null
Returns ExceptionRenderer|``null — Null if nothing has registered a safe renderer.
setDeveloperRenderer()
Section titled “setDeveloperRenderer()”public static function setDeveloperRenderer(callable $factory): void
Register the developer-renderer factory.
Set-if-absent: first caller wins.
| Parameter | Type | Description |
|---|---|---|
$factory | callable |
setSafeRenderer()
Section titled “setSafeRenderer()”public static function setSafeRenderer(callable $factory): void
Register the safe/production-renderer factory.
Set-if-absent: first caller wins.
| Parameter | Type | Description |
|---|---|---|
$factory | callable |