From e609d8eb25582bdcf6b4b0ef2f9dd24bfeabbcb9 Mon Sep 17 00:00:00 2001 From: Alan Poulain <contact@alanpoulain.eu> Date: Sat, 8 Mar 2025 14:36:48 +0100 Subject: [PATCH] feat(metadata): reduce ApiFilter service id --- src/Metadata/Util/AttributeFilterExtractorTrait.php | 6 +++++- .../TestBundle/ApiResource/Issue5648/DummyResource.php | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Metadata/Util/AttributeFilterExtractorTrait.php b/src/Metadata/Util/AttributeFilterExtractorTrait.php index fc29ff832f6..ab03578995d 100644 --- a/src/Metadata/Util/AttributeFilterExtractorTrait.php +++ b/src/Metadata/Util/AttributeFilterExtractorTrait.php @@ -133,7 +133,11 @@ private function readFilterAttributes(\ReflectionClass $reflectionClass): array private function generateFilterId(\ReflectionClass $reflectionClass, string $filterClass, ?string $filterId = null): string { $suffix = null !== $filterId ? '_'.$filterId : $filterId; + $filterClassName = (new \ReflectionClass($filterClass))->getName(); + if (null !== $suffix) { + $filterClassName = ''; + } - return 'annotated_'.(new UnicodeString(str_replace('\\', '', $reflectionClass->getName().(new \ReflectionClass($filterClass))->getName().$suffix)))->snake()->toString(); + return 'annotated_'.(new UnicodeString(str_replace('\\', '', $reflectionClass->getName().$filterClassName.$suffix)))->snake()->toString(); } } diff --git a/tests/Fixtures/TestBundle/ApiResource/Issue5648/DummyResource.php b/tests/Fixtures/TestBundle/ApiResource/Issue5648/DummyResource.php index 62b86ff4684..cc0b2913ea5 100644 --- a/tests/Fixtures/TestBundle/ApiResource/Issue5648/DummyResource.php +++ b/tests/Fixtures/TestBundle/ApiResource/Issue5648/DummyResource.php @@ -30,7 +30,7 @@ ], stateOptions: new Options(entityClass: Dummy::class) )] -#[ApiFilter(CustomFilter::class)] +#[ApiFilter(CustomFilter::class, id: 'custom_filter')] class DummyResource { #[ApiProperty(identifier: true)]