Skip to content

Commit 544603b

Browse files
committed
Simplify ExistsFilter declaration
1 parent bc0806b commit 544603b

File tree

6 files changed

+13
-38
lines changed

6 files changed

+13
-38
lines changed

src/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilter.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ final class ExistsFilter extends AbstractFilter implements ExistsFilterInterface
3939
{
4040
use ExistsFilterTrait;
4141

42-
public function __construct(ManagerRegistry $managerRegistry, LoggerInterface $logger = null, string $existsParameterName = self::QUERY_PARAMETER_KEY, array $properties = null)
42+
public function __construct(ManagerRegistry $managerRegistry, LoggerInterface $logger = null, array $properties = null, string $existsParameterName = self::QUERY_PARAMETER_KEY)
4343
{
4444
parent::__construct($managerRegistry, $logger, $properties);
4545

src/Bridge/Doctrine/Orm/Filter/ExistsFilter.php

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
use ApiPlatform\Core\Bridge\Doctrine\Common\Filter\ExistsFilterTrait;
1818
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryBuilderHelper;
1919
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
20-
use ApiPlatform\Core\Exception\InvalidArgumentException;
2120
use Doctrine\Common\Persistence\ManagerRegistry;
2221
use Doctrine\ORM\Mapping\ClassMetadataInfo;
2322
use Doctrine\ORM\Query\Expr\Join;
@@ -44,33 +43,9 @@ class ExistsFilter extends AbstractContextAwareFilter implements ExistsFilterInt
4443

4544
/**
4645
* @param RequestStack|null $requestStack No prefix to prevent autowiring of this deprecated property
47-
* @param mixed|null $properties
4846
*/
49-
public function __construct(ManagerRegistry $managerRegistry, $requestStack = null, LoggerInterface $logger = null, /* string $existsParameterName = self::QUERY_PARAMETER_KEY, array*/ $properties = null)
47+
public function __construct(ManagerRegistry $managerRegistry, $requestStack = null, LoggerInterface $logger = null, array $properties = null, string $existsParameterName = self::QUERY_PARAMETER_KEY)
5048
{
51-
$existsParameterName = self::QUERY_PARAMETER_KEY;
52-
53-
if (($funcNumArgs = \func_num_args()) > 3) {
54-
$fourthArgument = func_get_arg(3);
55-
if (4 <= $funcNumArgs && (null === $fourthArgument || \is_array($fourthArgument))) {
56-
@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);
57-
$properties = $fourthArgument;
58-
} elseif (\is_string($fourthArgument)) {
59-
$existsParameterName = $fourthArgument;
60-
} else {
61-
throw new InvalidArgumentException(sprintf('The "$existsParameterName" argument of "%s" is expected to be a string.', __CLASS__));
62-
}
63-
}
64-
65-
if ($funcNumArgs > 4) {
66-
$fifthArgument = func_get_arg(4);
67-
if (null === $fifthArgument || \is_array($fifthArgument)) {
68-
$properties = $fifthArgument;
69-
} else {
70-
throw new InvalidArgumentException(sprintf('The "$properties" argument of "%s" is expected to be an array or null.', __CLASS__));
71-
}
72-
}
73-
7449
parent::__construct($managerRegistry, $requestStack, $logger, $properties);
7550

7651
$this->existsParameterName = $existsParameterName;

src/Bridge/Symfony/Bundle/Resources/config/doctrine_mongodb_odm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@
8686
<service id="api_platform.doctrine_mongodb.odm.exists_filter" class="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\Filter\ExistsFilter" public="false" abstract="true">
8787
<argument type="service" id="doctrine_mongodb" />
8888
<argument type="service" id="logger" on-invalid="ignore" />
89-
<argument>%api_platform.collection.exists_parameter_name%</argument>
89+
<argument key="$existsParameterName">%api_platform.collection.exists_parameter_name%</argument>
9090
</service>
9191
<service id="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\Filter\ExistsFilter" alias="api_platform.doctrine_mongodb.odm.exists_filter" />
9292

src/Bridge/Symfony/Bundle/Resources/config/doctrine_orm.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
<argument type="service" id="doctrine" />
100100
<argument>null</argument>
101101
<argument type="service" id="logger" on-invalid="ignore" />
102-
<argument>%api_platform.collection.exists_parameter_name%</argument>
102+
<argument key="$existsParameterName">%api_platform.collection.exists_parameter_name%</argument>
103103
</service>
104104
<service id="ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\ExistsFilter" alias="api_platform.doctrine.orm.exists_filter" />
105105

tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,10 +113,10 @@ public function testGetDescriptionDefaultFields()
113113
public function provideApplyTestData(): array
114114
{
115115
$existsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter {
116-
return new ExistsFilter($managerRegistry, null, 'exists', $properties);
116+
return new ExistsFilter($managerRegistry, null, $properties, 'exists');
117117
};
118118
$customExistsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter {
119-
return new ExistsFilter($managerRegistry, null, 'customExists', $properties);
119+
return new ExistsFilter($managerRegistry, null, $properties, 'customExists');
120120
};
121121

122122
return array_merge_recursive(
@@ -451,7 +451,7 @@ public function testLegacyExistsAfterSyntax()
451451
],
452452
],
453453
function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFilter {
454-
return new ExistsFilter($managerRegistry, null, 'exists', $properties);
454+
return new ExistsFilter($managerRegistry, null, $properties, 'exists');
455455
},
456456
];
457457

@@ -460,6 +460,6 @@ function (ManagerRegistry $managerRegistry, array $properties = null): ExistsFil
460460

461461
protected function buildFilter(?array $properties = null)
462462
{
463-
return new $this->filterClass($this->managerRegistry, null, 'exists', $properties);
463+
return new $this->filterClass($this->managerRegistry, null, $properties, 'exists');
464464
}
465465
}

tests/Bridge/Doctrine/Orm/Filter/ExistsFilterTest.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,10 @@ public function testGetDescriptionDefaultFields()
9595
public function provideApplyTestData(): array
9696
{
9797
$existsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter {
98-
return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties);
98+
return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists');
9999
};
100100
$customExistsFilterFactory = function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter {
101-
return new ExistsFilter($managerRegistry, $requestStack, null, 'customExists', $properties);
101+
return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'customExists');
102102
};
103103

104104
return array_merge_recursive(
@@ -245,7 +245,7 @@ public function testLegacyExistsAfterSyntax()
245245
sprintf('SELECT o FROM %s o WHERE o.description IS NOT NULL', Dummy::class),
246246
null,
247247
function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter {
248-
return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties);
248+
return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists');
249249
},
250250
];
251251

@@ -273,7 +273,7 @@ public function testLegacyRequest()
273273
sprintf('SELECT o FROM %s o WHERE o.description IS NOT NULL', Dummy::class),
274274
null,
275275
function (ManagerRegistry $managerRegistry, array $properties = null, RequestStack $requestStack = null): ExistsFilter {
276-
return new ExistsFilter($managerRegistry, $requestStack, null, 'exists', $properties);
276+
return new ExistsFilter($managerRegistry, $requestStack, null, $properties, 'exists');
277277
},
278278
];
279279

@@ -282,6 +282,6 @@ function (ManagerRegistry $managerRegistry, array $properties = null, RequestSta
282282

283283
protected function buildFilter(?array $properties = null)
284284
{
285-
return new $this->filterClass($this->managerRegistry, null, null, 'exists', $properties);
285+
return new $this->filterClass($this->managerRegistry, null, null, $properties, 'exists');
286286
}
287287
}

0 commit comments

Comments
 (0)