Skip to content

Commit e535645

Browse files
committed
phpdoc + changelog
1 parent f6243a3 commit e535645

File tree

8 files changed

+31
-2
lines changed

8 files changed

+31
-2
lines changed

CHANGELOG.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
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

@@ -11,7 +15,7 @@
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)

src/Renderer/HeaderRenderer.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@
1515
*/
1616
final 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
) {

src/RendererProvider/ClosureRendererProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
use 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
*/
1719
final class ClosureRendererProvider implements RendererProviderInterface

src/RendererProvider/CompositeRendererProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
use Psr\Http\Message\ServerRequestInterface;
88
use Yiisoft\ErrorHandler\ThrowableRendererInterface;
99

10+
/**
11+
* `CompositeRendererProvider` aggregates multiple `RendererProviderInterface` implementations.
12+
*/
1013
final class CompositeRendererProvider implements RendererProviderInterface
1114
{
1215
/**

src/RendererProvider/ContentTypeRendererProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717

1818
use function array_key_exists;
1919

20+
/**
21+
* Provides a renderer based on the "Accept" header of the request.
22+
*/
2023
final class ContentTypeRendererProvider implements RendererProviderInterface
2124
{
2225
/**

src/RendererProvider/HeadRendererProvider.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
use Yiisoft\Http\HeaderValueHelper;
1313
use Yiisoft\Http\Method;
1414

15+
/**
16+
* Provides a renderer for HEAD requests.
17+
*/
1518
final class HeadRendererProvider implements RendererProviderInterface
1619
{
1720
public function get(ServerRequestInterface $request): ?ThrowableRendererInterface

src/RendererProvider/RendererProviderInterface.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,15 @@
77
use Psr\Http\Message\ServerRequestInterface;
88
use Yiisoft\ErrorHandler\ThrowableRendererInterface;
99

10+
/**
11+
* Interface that provides a way to get a `ThrowableRendererInterface` implementation based on the request.
12+
*/
1013
interface 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
}

src/ThrowableResponseFactory.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
use Yiisoft\ErrorHandler\RendererProvider\RendererProviderInterface;
1212
use Yiisoft\Http\Status;
1313

14+
/**
15+
* `ThrowableResponseFactory` produces a response with rendered `Throwable` object.
16+
*/
1417
final class ThrowableResponseFactory implements ThrowableResponseFactoryInterface
1518
{
1619
private readonly HeadersProvider $headersProvider;

0 commit comments

Comments
 (0)