From 6e2e5a9a5dc9c58952022c413662d71d7f613b16 Mon Sep 17 00:00:00 2001 From: Maxcastel Date: Tue, 25 Nov 2025 13:59:40 +0100 Subject: [PATCH 1/2] =?UTF-8?q?Revert=20"Revert=20"fix:=20=F0=9F=90=9B=20m?= =?UTF-8?q?ake=20default=20value=20of=20`pagination=5Fmaximum=5Fitems=5Fpe?= =?UTF-8?q?r=5Fpage`=20same=E2=80=A6"=20(#7533)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit f4a1697ca8028395c611648bd0032a8761069e67. --- src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php b/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php index 805b6d1e2c..6d89a3b7a6 100644 --- a/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php +++ b/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php @@ -309,7 +309,7 @@ private function registerCommonConfiguration(ContainerBuilder $container, array $container->setParameter('api_platform.collection.pagination.client_items_per_page', $config['defaults']['pagination_client_items_per_page'] ?? false); $container->setParameter('api_platform.collection.pagination.client_partial', $config['defaults']['pagination_client_partial'] ?? false); $container->setParameter('api_platform.collection.pagination.items_per_page', $config['defaults']['pagination_items_per_page'] ?? 30); - $container->setParameter('api_platform.collection.pagination.maximum_items_per_page', $config['defaults']['pagination_maximum_items_per_page'] ?? null); + $container->setParameter('api_platform.collection.pagination.maximum_items_per_page', $config['defaults']['pagination_maximum_items_per_page'] ?? 30); $container->setParameter('api_platform.collection.pagination.page_parameter_name', $config['defaults']['pagination_page_parameter_name'] ?? $config['collection']['pagination']['page_parameter_name']); $container->setParameter('api_platform.collection.pagination.enabled_parameter_name', $config['defaults']['pagination_enabled_parameter_name'] ?? $config['collection']['pagination']['enabled_parameter_name']); $container->setParameter('api_platform.collection.pagination.items_per_page_parameter_name', $config['defaults']['pagination_items_per_page_parameter_name'] ?? $config['collection']['pagination']['items_per_page_parameter_name']); From 0600344e36b36b38b977777ca1fbf9a92bb79c87 Mon Sep 17 00:00:00 2001 From: Maxcastel Date: Tue, 25 Nov 2025 15:23:25 +0100 Subject: [PATCH 2/2] fix(pagination_maximum_items_per_page): null => disabled, explicit value => explicit value, not set => 30 --- .../ApiPlatformExtension.php | 2 +- .../ApiPlatformExtensionTest.php | 37 +++++++++++++++++++ 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php b/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php index 6d89a3b7a6..820ae01974 100644 --- a/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php +++ b/src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php @@ -309,7 +309,7 @@ private function registerCommonConfiguration(ContainerBuilder $container, array $container->setParameter('api_platform.collection.pagination.client_items_per_page', $config['defaults']['pagination_client_items_per_page'] ?? false); $container->setParameter('api_platform.collection.pagination.client_partial', $config['defaults']['pagination_client_partial'] ?? false); $container->setParameter('api_platform.collection.pagination.items_per_page', $config['defaults']['pagination_items_per_page'] ?? 30); - $container->setParameter('api_platform.collection.pagination.maximum_items_per_page', $config['defaults']['pagination_maximum_items_per_page'] ?? 30); + $container->setParameter('api_platform.collection.pagination.maximum_items_per_page', \array_key_exists('pagination_maximum_items_per_page', $config['defaults']) ? $config['defaults']['pagination_maximum_items_per_page'] : 30); $container->setParameter('api_platform.collection.pagination.page_parameter_name', $config['defaults']['pagination_page_parameter_name'] ?? $config['collection']['pagination']['page_parameter_name']); $container->setParameter('api_platform.collection.pagination.enabled_parameter_name', $config['defaults']['pagination_enabled_parameter_name'] ?? $config['collection']['pagination']['enabled_parameter_name']); $container->setParameter('api_platform.collection.pagination.items_per_page_parameter_name', $config['defaults']['pagination_items_per_page_parameter_name'] ?? $config['collection']['pagination']['items_per_page_parameter_name']); diff --git a/src/Symfony/Tests/Bundle/DependencyInjection/ApiPlatformExtensionTest.php b/src/Symfony/Tests/Bundle/DependencyInjection/ApiPlatformExtensionTest.php index 9b7b0972ad..2c8e5033f2 100644 --- a/src/Symfony/Tests/Bundle/DependencyInjection/ApiPlatformExtensionTest.php +++ b/src/Symfony/Tests/Bundle/DependencyInjection/ApiPlatformExtensionTest.php @@ -300,4 +300,41 @@ public function testItRegistersMetadataConfiguration(): void $this->assertContainerHasService('api_platform.metadata.resource_extractor.php_file'); $this->assertSame([$emptyPhpFile], $this->container->getDefinition('api_platform.metadata.resource_extractor.php_file')->getArgument(0)); } + + public function testPaginationMaximumItemsPerPageIsNotSet(): void + { + $config = self::DEFAULT_CONFIG; + (new ApiPlatformExtension())->load($config, $this->container); + + $this->assertTrue($this->container->hasParameter('api_platform.collection.pagination.maximum_items_per_page')); + $this->assertSame(30, $this->container->getParameter('api_platform.collection.pagination.maximum_items_per_page')); + } + + public function testPaginationMaximumItemsPerPageIsSetWithNull(): void + { + $config = self::DEFAULT_CONFIG; + $config['api_platform']['defaults']['pagination_maximum_items_per_page'] = null; + (new ApiPlatformExtension())->load($config, $this->container); + + $this->assertTrue($this->container->hasParameter('api_platform.collection.pagination.maximum_items_per_page')); + $this->assertNull($this->container->getParameter('api_platform.collection.pagination.maximum_items_per_page')); + } + + public function testPaginationMaximumItemsPerPageIsSetWithExplicitValue(): void + { + $config = self::DEFAULT_CONFIG; + $config['api_platform']['defaults']['pagination_maximum_items_per_page'] = 22; + (new ApiPlatformExtension())->load($config, $this->container); + + $this->assertSame(22, $this->container->getParameter('api_platform.collection.pagination.maximum_items_per_page')); + } + + public function testPaginationMaximumItemsPerPageIsSetWithZero(): void + { + $config = self::DEFAULT_CONFIG; + $config['api_platform']['defaults']['pagination_maximum_items_per_page'] = 0; + (new ApiPlatformExtension())->load($config, $this->container); + + $this->assertSame(0, $this->container->getParameter('api_platform.collection.pagination.maximum_items_per_page')); + } }