From 15178cd37ceb47205163e6ed9de4e4d7e965f289 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 14:28:38 +0100 Subject: [PATCH 1/6] Fixing Services.yaml --- config/services.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/services.yaml b/config/services.yaml index 0ea1eba..6691e21 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -22,6 +22,6 @@ services: $exceptionConverters: - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ValidationFailedExceptionConverter' - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter' - - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ThrowableToProblemDetailsKernelListener' + - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter' tags: - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 } From 5a3e571e523a005d84606f606c9d072164096643 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 14:30:22 +0100 Subject: [PATCH 2/6] Fixing Services.yaml --- config/services.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/services.yaml b/config/services.yaml index 6691e21..062ec47 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -17,7 +17,7 @@ services: arguments: $problemDetailsFactory: '@Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactoryInterface' - Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ThrowableToProblemDetailsKernelListener: + Phauthentic\Symfony\ProblemDetails\ThrowableToProblemDetailsKernelListener: arguments: $exceptionConverters: - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ValidationFailedExceptionConverter' From cfb7789b97add067bbd79e9a6f4b2d5e685d3552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 14:42:51 +0100 Subject: [PATCH 3/6] Updating the composer package type --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 5f24e38..7c62d7b 100644 --- a/composer.json +++ b/composer.json @@ -1,6 +1,6 @@ { "name": "phauthentic/problem-details-symfony-bundle", - "type": "library", + "type": "symfony-bundle", "description": "Symfony bundle for the Problem Details for HTTP APIs RFC", "require": { "php": "^8.2", From 16951e4b67d922f3a9cecf3b5b2c33f5d1ffd169 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 14:48:44 +0100 Subject: [PATCH 4/6] Attempt to fix the converter --- config/services.yaml | 2 +- ...icThrowableConverter.php => GenericExceptionConverter.php} | 2 +- .../ExceptionConversion/GenericThrowableConverterTest.php | 4 ++-- tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) rename src/ExceptionConversion/{GenericThrowableConverter.php => GenericExceptionConverter.php} (96%) diff --git a/config/services.yaml b/config/services.yaml index 062ec47..37c2f72 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -22,6 +22,6 @@ services: $exceptionConverters: - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ValidationFailedExceptionConverter' - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter' - - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter' + - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter' tags: - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 } diff --git a/src/ExceptionConversion/GenericThrowableConverter.php b/src/ExceptionConversion/GenericExceptionConverter.php similarity index 96% rename from src/ExceptionConversion/GenericThrowableConverter.php rename to src/ExceptionConversion/GenericExceptionConverter.php index 4a4952e..6c4bb8d 100644 --- a/src/ExceptionConversion/GenericThrowableConverter.php +++ b/src/ExceptionConversion/GenericExceptionConverter.php @@ -24,7 +24,7 @@ * * @link https://www.rfc-editor.org/rfc/rfc9457.html */ -class GenericThrowableConverter implements ExceptionConverterInterface +class GenericExceptionConverter implements ExceptionConverterInterface { /** * @param ProblemDetailsFactoryInterface $problemDetailsFactory diff --git a/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php b/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php index 8234c6e..ea19946 100644 --- a/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php +++ b/tests/Unit/ExceptionConversion/GenericThrowableConverterTest.php @@ -5,7 +5,7 @@ namespace Phauthentic\Symfony\ProblemDetails\Tests\Unit\ExceptionConversion; use Exception; -use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter; +use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter; use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter; use Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactory; use Phauthentic\Symfony\ProblemDetails\ProblemDetailsResponse; @@ -24,7 +24,7 @@ public function setUp(): void { parent::setUp(); - $this->converter = new GenericThrowableConverter( + $this->converter = new GenericExceptionConverter( problemDetailsFactory: new ProblemDetailsFactory() ); } diff --git a/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php b/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php index 2b978c0..8794361 100644 --- a/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php +++ b/tests/Unit/ThrowableToProblemDetailsKernelListenerTest.php @@ -6,7 +6,7 @@ use Exception; use InvalidArgumentException; -use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericThrowableConverter; +use Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter; use Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactory; use PHPUnit\Framework\Attributes\DataProvider; use PHPUnit\Framework\Attributes\Test; @@ -45,7 +45,7 @@ public function testOnKernelException(string $environment, bool $shouldHaveTrace $listener = new ThrowableToProblemDetailsKernelListener( [ - new GenericThrowableConverter(new ProblemDetailsFactory(), $environment), + new GenericExceptionConverter(new ProblemDetailsFactory(), $environment), ] ); From 3aba8595b17cd050b310307dfc537db96b8a021c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 14:51:35 +0100 Subject: [PATCH 5/6] Attempt to fix the converter --- config/services.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/config/services.yaml b/config/services.yaml index 37c2f72..54240d3 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -12,16 +12,21 @@ services: arguments: $validationErrorsBuilder: '@Phauthentic\Symfony\ProblemDetails\Validation\ValidationErrorsBuilder' $problemDetailsResponseFactory: '@Phauthentic\Symfony\ProblemDetails\FromExceptionEventFactoryInterface' + tags: + - { name: 'exception.converter' } Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter: arguments: $problemDetailsFactory: '@Phauthentic\Symfony\ProblemDetails\ProblemDetailsFactoryInterface' + tags: + - { name: 'exception.converter' } + + Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter: + tags: + - { name: 'exception.converter' } Phauthentic\Symfony\ProblemDetails\ThrowableToProblemDetailsKernelListener: arguments: - $exceptionConverters: - - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\ValidationFailedExceptionConverter' - - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\HttpExceptionConverter' - - '@Phauthentic\Symfony\ProblemDetails\ExceptionConversion\GenericExceptionConverter' + $exceptionConverters: !tagged_iterator exception.converter tags: - - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 } + - { name: 'kernel.event_listener', event: 'kernel.exception', priority: 0 } \ No newline at end of file From 414729b67325a49f23a6f606067254cf9a547ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20Kr=C3=A4mer?= Date: Wed, 8 Jan 2025 15:00:29 +0100 Subject: [PATCH 6/6] Attempt to fix the converter --- src/ThrowableToProblemDetailsKernelListener.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ThrowableToProblemDetailsKernelListener.php b/src/ThrowableToProblemDetailsKernelListener.php index 64b8bb9..278a9ae 100644 --- a/src/ThrowableToProblemDetailsKernelListener.php +++ b/src/ThrowableToProblemDetailsKernelListener.php @@ -29,7 +29,7 @@ class ThrowableToProblemDetailsKernelListener * @param array $exceptionConverters */ public function __construct( - protected array $exceptionConverters = [] + protected iterable $exceptionConverters = [] ) { if (empty($this->exceptionConverters)) { throw new InvalidArgumentException('At least one converter must be provided');