File tree Expand file tree Collapse file tree 8 files changed +31
-2
lines changed
Expand file tree Collapse file tree 8 files changed +31
-2
lines changed Original file line number Diff line number Diff line change 11# Yii Error Handler Change Log
22
3- ## 4.0.1 under development
3+ ## 4.1.0 under development
44
55- Bug #142 : Fix dark mode argument display issues (@pamparam83 )
6+ - Enh #145 : Set content type header in renderers (@vjik )
7+ - New #145 : Add ` Yiisoft\ErrorHandler\ThrowableResponseFactory ` that provides a response for ` Throwable ` object with
8+ renderer provider usage (@vjik )
9+ - Chg #145 : Mark ` Yiisoft\ErrorHandler\Factory\ThrowableResponseFactory ` as deprecated (@vjik )
610
711## 4.0.0 February 05, 2025
812
1115- Chg #139 : Change PHP constraint in ` composer.json ` to ` ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0 ` (@vjik )
1216- Enh #125 : Add error code & show function arguments (@xepozz )
1317- Enh #130 : Pass exception message instead of rendered exception to logger in ` ErrorHandler ` (@olegbaturin )
14- - Enh #133 : Extract response generator from ` ErrorCatcher ` middleware into separate ` ThrowableResponseFactory `
18+ - Enh #133 : Extract response generator from ` ErrorCatcher ` middleware into separate ` ThrowableResponseFactory `
1519 class (@olegbaturin )
1620- Enh #138 , #139 : Raise the minimum PHP version to 8.1 and minor refactoring (@vjik )
1721- Bug #139 : Explicitly mark nullable parameters (@vjik )
Original file line number Diff line number Diff line change 1515 */
1616final class HeaderRenderer implements ThrowableRendererInterface
1717{
18+ /**
19+ * @param string|null $contentType The content type to be set in the response header.
20+ */
1821 public function __construct (
1922 private readonly ?string $ contentType = null ,
2023 ) {
Original file line number Diff line number Diff line change 1212use function is_string ;
1313
1414/**
15+ * Provides a renderer based on a closure that returns a `ThrowableRendererInterface` or its class name.
16+ *
1517 * @psalm-type TClosure = Closure(ServerRequestInterface $request): (class-string<ThrowableRendererInterface>|ThrowableRendererInterface|null)
1618 */
1719final class ClosureRendererProvider implements RendererProviderInterface
Original file line number Diff line number Diff line change 77use Psr \Http \Message \ServerRequestInterface ;
88use Yiisoft \ErrorHandler \ThrowableRendererInterface ;
99
10+ /**
11+ * `CompositeRendererProvider` aggregates multiple `RendererProviderInterface` implementations.
12+ */
1013final class CompositeRendererProvider implements RendererProviderInterface
1114{
1215 /**
Original file line number Diff line number Diff line change 1717
1818use function array_key_exists ;
1919
20+ /**
21+ * Provides a renderer based on the "Accept" header of the request.
22+ */
2023final class ContentTypeRendererProvider implements RendererProviderInterface
2124{
2225 /**
Original file line number Diff line number Diff line change 1212use Yiisoft \Http \HeaderValueHelper ;
1313use Yiisoft \Http \Method ;
1414
15+ /**
16+ * Provides a renderer for HEAD requests.
17+ */
1518final class HeadRendererProvider implements RendererProviderInterface
1619{
1720 public function get (ServerRequestInterface $ request ): ?ThrowableRendererInterface
Original file line number Diff line number Diff line change 77use Psr \Http \Message \ServerRequestInterface ;
88use Yiisoft \ErrorHandler \ThrowableRendererInterface ;
99
10+ /**
11+ * Interface that provides a way to get a `ThrowableRendererInterface` implementation based on the request.
12+ */
1013interface RendererProviderInterface
1114{
15+ /**
16+ * @param ServerRequestInterface $request The server request.
17+ *
18+ * @return ThrowableRendererInterface|null The `ThrowableRendererInterface` implementation or null if not found.
19+ */
1220 public function get (ServerRequestInterface $ request ): ?ThrowableRendererInterface ;
1321}
Original file line number Diff line number Diff line change 1111use Yiisoft \ErrorHandler \RendererProvider \RendererProviderInterface ;
1212use Yiisoft \Http \Status ;
1313
14+ /**
15+ * `ThrowableResponseFactory` produces a response with rendered `Throwable` object.
16+ */
1417final class ThrowableResponseFactory implements ThrowableResponseFactoryInterface
1518{
1619 private readonly HeadersProvider $ headersProvider ;
You can’t perform that action at this time.
0 commit comments