diff --git a/src/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilter.php b/src/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilter.php index 1fc3369bfdd..73eef88c5ad 100644 --- a/src/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilter.php +++ b/src/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilter.php @@ -39,7 +39,7 @@ final class ExistsFilter extends AbstractFilter implements ExistsFilterInterface { use ExistsFilterTrait; - public function __construct(ManagerRegistry $managerRegistry, LoggerInterface $logger = null, string $existsParameterName = self::QUERY_PARAMETER_KEY, array $properties = null) + public function __construct(ManagerRegistry $managerRegistry, LoggerInterface $logger = null, array $properties = null, string $existsParameterName = self::QUERY_PARAMETER_KEY) { parent::__construct($managerRegistry, $logger, $properties); diff --git a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php index c4a16049b61..871a4704489 100644 --- a/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php +++ b/src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php @@ -17,7 +17,6 @@ use ApiPlatform\Core\Bridge\Doctrine\Common\Filter\ExistsFilterTrait; use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryBuilderHelper; use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface; -use ApiPlatform\Core\Exception\InvalidArgumentException; use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\Query\Expr\Join; @@ -42,35 +41,8 @@ class ExistsFilter extends AbstractContextAwareFilter implements ExistsFilterInt { use ExistsFilterTrait; - /** - * @param RequestStack|null $requestStack No prefix to prevent autowiring of this deprecated property - * @param mixed|null $properties - */ - public function __construct(ManagerRegistry $managerRegistry, $requestStack = null, LoggerInterface $logger = null, /* string $existsParameterName = self::QUERY_PARAMETER_KEY, array*/ $properties = null) + public function __construct(ManagerRegistry $managerRegistry, ?RequestStack $requestStack = null, LoggerInterface $logger = null, array $properties = null, string $existsParameterName = self::QUERY_PARAMETER_KEY) { - $existsParameterName = self::QUERY_PARAMETER_KEY; - - if (($funcNumArgs = \func_num_args()) > 3) { - $fourthArgument = func_get_arg(3); - if (4 <= $funcNumArgs && (null === $fourthArgument || \is_array($fourthArgument))) { - @trigger_error(sprintf('Passing the "$properties" argument as 4th argument of "%s" is deprecated since API Platform 2.5 and will not be possible anymore in API Platform 3. Pass the new "$existsParameterName" argument as 4th argument and the old "$properties" argument as 5th argument instead.', __CLASS__), E_USER_DEPRECATED); - $properties = $fourthArgument; - } elseif (\is_string($fourthArgument)) { - $existsParameterName = $fourthArgument; - } else { - throw new InvalidArgumentException(sprintf('The "$existsParameterName" argument of "%s" is expected to be a string.', __CLASS__)); - } - } - - if ($funcNumArgs > 4) { - $fifthArgument = func_get_arg(4); - if (null === $fifthArgument || \is_array($fifthArgument)) { - $properties = $fifthArgument; - } else { - throw new InvalidArgumentException(sprintf('The "$properties" argument of "%s" is expected to be an array or null.', __CLASS__)); - } - } - parent::__construct($managerRegistry, $requestStack, $logger, $properties); $this->existsParameterName = $existsParameterName; diff --git a/src/Bridge/Symfony/Bundle/Resources/config/doctrine_mongodb_odm.xml b/src/Bridge/Symfony/Bundle/Resources/config/doctrine_mongodb_odm.xml index 6ccf194c382..f95ffc1964f 100644 --- a/src/Bridge/Symfony/Bundle/Resources/config/doctrine_mongodb_odm.xml +++ b/src/Bridge/Symfony/Bundle/Resources/config/doctrine_mongodb_odm.xml @@ -86,7 +86,7 @@ - %api_platform.collection.exists_parameter_name% + %api_platform.collection.exists_parameter_name% diff --git a/src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml b/src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml index 8d4bbeab72d..51f7dd53978 100644 --- a/src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml +++ b/src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml @@ -99,7 +99,7 @@ null - %api_platform.collection.exists_parameter_name% + %api_platform.collection.exists_parameter_name% diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php index 2ca6048675f..d824d8da5c8 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php @@ -113,10 +113,10 @@ public function testGetDescriptionDefaultFields() public function provideApplyTestData(): array { $existsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter { - return new ExistsFilter($managerRegistry, null, 'exists', $properties); + return new ExistsFilter($managerRegistry, null, $properties, 'exists'); }; $customExistsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter { - return new ExistsFilter($managerRegistry, null, 'customExists', $properties); + return new ExistsFilter($managerRegistry, null, $properties, 'customExists'); }; return array_merge_recursive( @@ -451,7 +451,7 @@ public function testLegacyExistsAfterSyntax() ], ], function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter { - return new ExistsFilter($managerRegistry, null, 'exists', $properties); + return new ExistsFilter($managerRegistry, null, $properties, 'exists'); }, ]; @@ -460,6 +460,6 @@ function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFil protected function buildFilter(?array $properties = null) { - return new $this->filterClass($this->managerRegistry, null, 'exists', $properties); + return new $this->filterClass($this->managerRegistry, null, $properties, 'exists'); } } diff --git a/tests/Bridge/Doctrine/Orm/Filter/ExistsFilterTest.php b/tests/Bridge/Doctrine/Orm/Filter/ExistsFilterTest.php index 7bfb3c83d8f..ac8ff833dfa 100644 --- a/tests/Bridge/Doctrine/Orm/Filter/ExistsFilterTest.php +++ b/tests/Bridge/Doctrine/Orm/Filter/ExistsFilterTest.php @@ -95,10 +95,10 @@ public function testGetDescriptionDefaultFields() public function provideApplyTestData(): array { $existsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter { - return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties); + return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists'); }; $customExistsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter { - return new ExistsFilter($managerRegistry, $requestStack, null, 'customExists', $properties); + return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'customExists'); }; return array_merge_recursive( @@ -245,7 +245,7 @@ public function testLegacyExistsAfterSyntax() sprintf('SELECT o FROM %s o WHERE o.description IS NOT NULL', Dummy::class), null, function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter { - return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties); + return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists'); }, ]; @@ -273,7 +273,7 @@ public function testLegacyRequest() sprintf('SELECT o FROM %s o WHERE o.description IS NOT NULL', Dummy::class), null, function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter { - return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties); + return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists'); }, ]; @@ -282,6 +282,6 @@ function (ManagerRegistry $managerRegistry, array $properties = null, RequestSta protected function buildFilter(?array $properties = null) { - return new $this->filterClass($this->managerRegistry, null, null, 'exists', $properties); + return new $this->filterClass($this->managerRegistry, null, null, $properties, 'exists'); } }