Skip to content

Commit 6cddcd2

Browse files
authored
Merge pull request #821 from meyerbaptiste/various_fixes_after_static_analysis
Various fixes after static analysis
2 parents 2a4bca8 + 83da509 commit 6cddcd2

40 files changed

+117
-127
lines changed

src/Api/ResourceClassResolver.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public function getResourceClass($value, string $resourceClass = null, bool $str
4949
$typeToFind = $type = $resourceClass;
5050
}
5151

52-
if (!$this->isResourceClass($typeToFind) || ($strict && isset($type) && $resourceClass !== $type)) {
52+
if (($strict && isset($type) && $resourceClass !== $type) || !$this->isResourceClass($typeToFind)) {
5353
if (is_subclass_of($type, $resourceClass) && $this->isResourceClass($resourceClass)) {
5454
return $type;
5555
}

src/Bridge/Doctrine/Orm/CollectionDataProvider.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public function __construct(ManagerRegistry $managerRegistry, array $collectionE
4242

4343
/**
4444
* {@inheritdoc}
45+
*
46+
* @throws RuntimeException
4547
*/
4648
public function getCollection(string $resourceClass, string $operationName = null)
4749
{

src/Bridge/Doctrine/Orm/Extension/EagerLoadingExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ private function joinRelations(QueryBuilder $queryBuilder, string $resourceClass
116116

117117
$queryBuilder->addSelect(sprintf('partial %s.{%s}', $associationAlias, implode(',', $select)));
118118

119-
$relationAlias = $relationAlias.++$j;
119+
$relationAlias .= ++$j;
120120

121121
$this->joinRelations($queryBuilder, $mapping['targetEntity'], $propertyMetadataOptions, $associationAlias, $relationAlias, $method === 'leftJoin');
122122
}

src/Bridge/Doctrine/Orm/Extension/FilterExtension.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function applyToCollection(QueryBuilder $queryBuilder, QueryNameGenerator
4747
}
4848

4949
foreach ($this->filters as $filterName => $filter) {
50-
if (in_array($filterName, $resourceFilters) && $filter instanceof FilterInterface) {
50+
if ($filter instanceof FilterInterface && in_array($filterName, $resourceFilters)) {
5151
$filter->apply($queryBuilder, $queryNameGenerator, $resourceClass, $operationName);
5252
}
5353
}

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@
1313

1414
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
1515
use ApiPlatform\Core\Exception\InvalidArgumentException;
16-
use Doctrine\Common\Persistence\ManagerRegistry;
1716
use Doctrine\DBAL\Types\Type as DBALType;
1817
use Doctrine\ORM\QueryBuilder;
19-
use Psr\Log\LoggerInterface;
20-
use Symfony\Component\HttpFoundation\RequestStack;
2118

2219
/**
2320
* Filters the collection by boolean values.
@@ -33,11 +30,6 @@
3330
*/
3431
class BooleanFilter extends AbstractFilter
3532
{
36-
public function __construct(ManagerRegistry $managerRegistry, RequestStack $requestStack, LoggerInterface $logger = null, array $properties = null)
37-
{
38-
parent::__construct($managerRegistry, $requestStack, $logger, $properties);
39-
}
40-
4133
/**
4234
* {@inheritdoc}
4335
*/

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

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,7 @@
1212
namespace ApiPlatform\Core\Bridge\Doctrine\Orm\Filter;
1313

1414
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
15-
use Doctrine\Common\Persistence\ManagerRegistry;
1615
use Doctrine\ORM\QueryBuilder;
17-
use Psr\Log\LoggerInterface;
18-
use Symfony\Component\HttpFoundation\RequestStack;
1916

2017
/**
2118
* Filters the collection by date intervals.
@@ -37,11 +34,6 @@ class DateFilter extends AbstractFilter
3734
'time' => true,
3835
];
3936

40-
public function __construct(ManagerRegistry $managerRegistry, RequestStack $requestStack, LoggerInterface $logger = null, array $properties = null)
41-
{
42-
parent::__construct($managerRegistry, $requestStack, $logger, $properties);
43-
}
44-
4537
/**
4638
* {@inheritdoc}
4739
*/
@@ -88,7 +80,7 @@ protected function filterProperty(string $property, $values, QueryBuilder $query
8880
list($alias, $field) = $this->addJoinsForNestedProperty($property, $alias, $queryBuilder, $queryNameGenerator);
8981
}
9082

91-
$nullManagement = isset($this->properties[$property]) ? $this->properties[$property] : null;
83+
$nullManagement = $this->properties[$property] ?? null;
9284

9385
if (self::EXCLUDE_NULL === $nullManagement) {
9486
$queryBuilder->andWhere($queryBuilder->expr()->isNotNull(sprintf('%s.%s', $alias, $field)));

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,8 @@
1313

1414
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
1515
use ApiPlatform\Core\Exception\InvalidArgumentException;
16-
use Doctrine\Common\Persistence\ManagerRegistry;
1716
use Doctrine\DBAL\Types\Type as DBALType;
1817
use Doctrine\ORM\QueryBuilder;
19-
use Psr\Log\LoggerInterface;
20-
use Symfony\Component\HttpFoundation\RequestStack;
2118

2219
/**
2320
* Filters the collection by numeric values.
@@ -45,11 +42,6 @@ class NumericFilter extends AbstractFilter
4542
DBALType::SMALLINT => true,
4643
];
4744

48-
public function __construct(ManagerRegistry $managerRegistry, RequestStack $requestStack, LoggerInterface $logger = null, array $properties = null)
49-
{
50-
parent::__construct($managerRegistry, $requestStack, $logger, $properties);
51-
}
52-
5345
/**
5446
* {@inheritdoc}
5547
*/

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@
1313

1414
use ApiPlatform\Core\Bridge\Doctrine\Orm\Util\QueryNameGeneratorInterface;
1515
use ApiPlatform\Core\Exception\InvalidArgumentException;
16-
use Doctrine\Common\Persistence\ManagerRegistry;
1716
use Doctrine\ORM\QueryBuilder;
18-
use Psr\Log\LoggerInterface;
19-
use Symfony\Component\HttpFoundation\RequestStack;
2017

2118
/**
2219
* Filters the collection by range.
@@ -31,11 +28,6 @@ class RangeFilter extends AbstractFilter
3128
const PARAMETER_LESS_THAN = 'lt';
3229
const PARAMETER_LESS_THAN_OR_EQUAL = 'lte';
3330

34-
public function __construct(ManagerRegistry $managerRegistry, RequestStack $requestStack, LoggerInterface $logger = null, array $properties = null)
35-
{
36-
parent::__construct($managerRegistry, $requestStack, $logger, $properties);
37-
}
38-
3931
/**
4032
* {@inheritdoc}
4133
*/

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -168,9 +168,9 @@ private function getType(string $doctrineType) : string
168168
protected function filterProperty(string $property, $value, QueryBuilder $queryBuilder, QueryNameGeneratorInterface $queryNameGenerator, string $resourceClass, string $operationName = null)
169169
{
170170
if (
171+
null === $value ||
171172
!$this->isPropertyEnabled($property) ||
172-
!$this->isPropertyMapped($property, $resourceClass, true) ||
173-
null === $value
173+
!$this->isPropertyMapped($property, $resourceClass, true)
174174
) {
175175
return;
176176
}

src/Bridge/Doctrine/Orm/ItemDataProvider.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
1818
use ApiPlatform\Core\Exception\PropertyNotFoundException;
1919
use ApiPlatform\Core\Exception\ResourceClassNotSupportedException;
20+
use ApiPlatform\Core\Exception\RuntimeException;
2021
use ApiPlatform\Core\Metadata\Property\Factory\PropertyMetadataFactoryInterface;
2122
use ApiPlatform\Core\Metadata\Property\Factory\PropertyNameCollectionFactoryInterface;
2223
use Doctrine\Common\Persistence\ManagerRegistry;
@@ -53,6 +54,8 @@ public function __construct(ManagerRegistry $managerRegistry, PropertyNameCollec
5354

5455
/**
5556
* {@inheritdoc}
57+
*
58+
* @throws RuntimeException
5659
*/
5760
public function getItem(string $resourceClass, $id, string $operationName = null, bool $fetchData = false)
5861
{
@@ -68,6 +71,10 @@ public function getItem(string $resourceClass, $id, string $operationName = null
6871
}
6972

7073
$repository = $manager->getRepository($resourceClass);
74+
if (!method_exists($repository, 'createQueryBuilder')) {
75+
throw new RuntimeException('The repository class must have a "createQueryBuilder" method.');
76+
}
77+
7178
$queryBuilder = $repository->createQueryBuilder('o');
7279
$queryNameGenerator = new QueryNameGenerator();
7380

0 commit comments

Comments
 (0)