Skip to content

Commit ff668ea

Browse files
authored
fix: unwanted deprecations (#4685)
* fix: rename identifiers -> uriVariables * fix: remove unwanted deprecations
1 parent f3bc39e commit ff668ea

31 files changed

+83
-79
lines changed

src/Core/Api/OperationType.php

-4
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313

1414
namespace ApiPlatform\Core\Api;
1515

16-
use ApiPlatform\Metadata\Operation;
17-
18-
trigger_deprecation('api-platform', '2.7', sprintf('%s is deprecated, an operation can be a collection using the %s::collection property.', OperationType::class, Operation::class));
19-
2016
final class OperationType
2117
{
2218
public const ITEM = 'item';

src/Core/Bridge/Symfony/Messenger/DataPersister.php

+1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
use ApiPlatform\Exception\OperationNotFoundException;
2020
use ApiPlatform\Exception\ResourceClassNotFoundException;
2121
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
22+
use ApiPlatform\Symfony\Messenger\DispatchTrait;
2223
use ApiPlatform\Util\ClassInfoTrait;
2324
use Symfony\Component\Messenger\Envelope;
2425
use Symfony\Component\Messenger\MessageBusInterface;

src/Core/Metadata/Property/Factory/AnnotationPropertyMetadataFactory.php

+4
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ public function __construct(Reader $reader = null, PropertyMetadataFactoryInterf
4040
*/
4141
public function create(string $resourceClass, string $property, array $options = []): PropertyMetadata
4242
{
43+
if (false === ($options['deprecate'] ?? null)) {
44+
trigger_deprecation('api-platform/core', '2.7', sprintf('Decorating the legacy %s is deprecated, use %s instead.', PropertyMetadataFactoryInterface::class, \ApiPlatform\Metadata\Property\Factory\PropertyMetadataFactoryInterface::class));
45+
}
46+
4347
$parentPropertyMetadata = null;
4448
if ($this->decorated) {
4549
try {

src/Core/Metadata/Property/Factory/AnnotationSubresourceMetadataFactory.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,6 @@ public function __construct(Reader $reader, PropertyMetadataFactoryInterface $de
3636
{
3737
$this->reader = $reader;
3838
$this->decorated = $decorated;
39-
40-
trigger_deprecation('api-platform/core', '2.7', 'Use alternate urls instead of declaring subresources on properties.');
4139
}
4240

4341
/**
@@ -62,6 +60,8 @@ public function create(string $resourceClass, string $property, array $options =
6260

6361
$annotation = $this->reader->getPropertyAnnotation($reflectionProperty, ApiSubresource::class);
6462
if ($annotation instanceof ApiSubresource) {
63+
trigger_deprecation('api-platform/core', '2.7', sprintf('Declare a new resource instead of using ApiSubresource on the property "%s".', $property));
64+
6565
return $this->updateMetadata($annotation, $propertyMetadata, $resourceClass, $property);
6666
}
6767
}

src/Core/Metadata/Property/Factory/SerializerPropertyMetadataFactory.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
use ApiPlatform\Core\Api\ResourceClassResolverInterface;
1717
use ApiPlatform\Core\Metadata\Property\PropertyMetadata;
1818
use ApiPlatform\Core\Metadata\Resource\Factory\ResourceMetadataFactoryInterface;
19-
use ApiPlatform\Core\Util\ResourceClassInfoTrait;
2019
use ApiPlatform\Exception\ResourceClassNotFoundException;
20+
use ApiPlatform\Util\ResourceClassInfoTrait;
2121
use Symfony\Component\PropertyInfo\Type;
2222
use Symfony\Component\Serializer\Mapping\AttributeMetadataInterface;
2323
use Symfony\Component\Serializer\Mapping\Factory\ClassMetadataFactoryInterface as SerializerClassMetadataFactoryInterface;

src/Core/Swagger/Serializer/DocumentationNormalizer.php

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313

1414
namespace ApiPlatform\Core\Swagger\Serializer;
1515

16+
use ApiPlatform\Api\FilterLocatorTrait;
1617
use ApiPlatform\Core\Api\FilterCollection;
17-
use ApiPlatform\Core\Api\FilterLocatorTrait;
1818
use ApiPlatform\Core\Api\FormatsProviderInterface;
1919
use ApiPlatform\Core\Api\IdentifiersExtractorInterface;
2020
use ApiPlatform\Core\Api\OperationAwareFormatsProviderInterface;
@@ -38,6 +38,7 @@
3838
use ApiPlatform\JsonSchema\TypeFactoryInterface;
3939
use ApiPlatform\Metadata\Resource\Factory\ResourceMetadataCollectionFactoryInterface;
4040
use ApiPlatform\OpenApi\OpenApi;
41+
use ApiPlatform\OpenApi\Serializer\ApiGatewayNormalizer;
4142
use ApiPlatform\PathResolver\OperationPathResolverInterface;
4243
use Psr\Container\ContainerInterface;
4344
use Symfony\Component\PropertyInfo\Type;

src/Doctrine/Common/State/Processor.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public function __construct(ManagerRegistry $managerRegistry)
3131
$this->managerRegistry = $managerRegistry;
3232
}
3333

34-
public function supports($data, array $identifiers = [], ?string $operationName = null, array $context = []): bool
34+
public function supports($data, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
3535
{
3636
return null !== $this->getManager($data);
3737
}
@@ -62,7 +62,7 @@ private function remove($data, array $context = [])
6262
$manager->flush();
6363
}
6464

65-
public function process($data, array $identifiers = [], ?string $operationName = null, array $context = [])
65+
public function process($data, array $uriVariables = [], ?string $operationName = null, array $context = [])
6666
{
6767
if (\array_key_exists('operation', $context) && $context['operation']->isDelete()) {
6868
return $this->remove($data);

src/Doctrine/Odm/State/CollectionProvider.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public function __construct(ResourceMetadataCollectionFactoryInterface $resource
4646
$this->collectionExtensions = $collectionExtensions;
4747
}
4848

49-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
49+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
5050
{
5151
/** @var DocumentManager $manager */
5252
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
@@ -59,7 +59,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
5959

6060
$aggregationBuilder = $repository->createAggregationBuilder();
6161

62-
$this->handleLinks($aggregationBuilder, $identifiers, $context, $resourceClass, $operationName);
62+
$this->handleLinks($aggregationBuilder, $uriVariables, $context, $resourceClass, $operationName);
6363

6464
foreach ($this->collectionExtensions as $extension) {
6565
$extension->applyToCollection($aggregationBuilder, $resourceClass, $operationName, $context);
@@ -81,7 +81,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
8181
return $aggregationBuilder->hydrate($resourceClass)->execute($executeOptions);
8282
}
8383

84-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
84+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
8585
{
8686
if (!$this->managerRegistry->getManagerForClass($resourceClass) instanceof DocumentManager) {
8787
return false;

src/Doctrine/Odm/State/ItemProvider.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -48,14 +48,14 @@ public function __construct(ResourceMetadataCollectionFactoryInterface $resource
4848
$this->itemExtensions = $itemExtensions;
4949
}
5050

51-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
51+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
5252
{
5353
/** @var DocumentManager $manager */
5454
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
5555

5656
$fetchData = $context['fetch_data'] ?? true;
5757
if (!$fetchData) {
58-
return $manager->getReference($resourceClass, reset($identifiers));
58+
return $manager->getReference($resourceClass, reset($uriVariables));
5959
}
6060

6161
/** @var ObjectRepository $repository */
@@ -66,10 +66,10 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
6666

6767
$aggregationBuilder = $repository->createAggregationBuilder();
6868

69-
$this->handleLinks($aggregationBuilder, $identifiers, $context, $resourceClass, $operationName);
69+
$this->handleLinks($aggregationBuilder, $uriVariables, $context, $resourceClass, $operationName);
7070

7171
foreach ($this->itemExtensions as $extension) {
72-
$extension->applyToItem($aggregationBuilder, $resourceClass, $identifiers, $operationName, $context);
72+
$extension->applyToItem($aggregationBuilder, $resourceClass, $uriVariables, $operationName, $context);
7373

7474
if ($extension instanceof AggregationResultItemExtensionInterface && $extension->supportsResult($resourceClass, $operationName, $context)) {
7575
return $extension->getResult($aggregationBuilder, $resourceClass, $operationName, $context);
@@ -87,7 +87,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
8787
return $aggregationBuilder->hydrate($resourceClass)->execute($executeOptions)->current() ?: null;
8888
}
8989

90-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
90+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
9191
{
9292
if (!$this->managerRegistry->getManagerForClass($resourceClass) instanceof DocumentManager) {
9393
return false;

src/Doctrine/Orm/State/CollectionProvider.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public function __construct(ResourceMetadataCollectionFactoryInterface $resource
4848
$this->collectionExtensions = $collectionExtensions;
4949
}
5050

51-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
51+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
5252
{
5353
/** @var EntityManagerInterface $manager */
5454
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
@@ -62,7 +62,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
6262
$queryBuilder = $repository->createQueryBuilder('o');
6363
$queryNameGenerator = new QueryNameGenerator();
6464

65-
$this->handleLinks($queryBuilder, $identifiers, $queryNameGenerator, $context, $resourceClass, $operationName);
65+
$this->handleLinks($queryBuilder, $uriVariables, $queryNameGenerator, $context, $resourceClass, $operationName);
6666

6767
foreach ($this->collectionExtensions as $extension) {
6868
$extension->applyToCollection($queryBuilder, $queryNameGenerator, $resourceClass, $operationName, $context);
@@ -75,7 +75,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
7575
return $queryBuilder->getQuery()->getResult();
7676
}
7777

78-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
78+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
7979
{
8080
if (!$this->managerRegistry->getManagerForClass($resourceClass) instanceof EntityManagerInterface) {
8181
return false;

src/Doctrine/Orm/State/ItemProvider.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ public function __construct(ResourceMetadataCollectionFactoryInterface $resource
4747
$this->itemExtensions = $itemExtensions;
4848
}
4949

50-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
50+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
5151
{
5252
/** @var EntityManagerInterface $manager */
5353
$manager = $this->managerRegistry->getManagerForClass($resourceClass);
5454

5555
$fetchData = $context['fetch_data'] ?? true;
5656
if (!$fetchData) {
57-
return $manager->getReference($resourceClass, $identifiers);
57+
return $manager->getReference($resourceClass, $uriVariables);
5858
}
5959

6060
/** @var EntityRepository $repository */
@@ -66,10 +66,10 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
6666
$queryBuilder = $repository->createQueryBuilder('o');
6767
$queryNameGenerator = new QueryNameGenerator();
6868

69-
$this->handleLinks($queryBuilder, $identifiers, $queryNameGenerator, $context, $resourceClass, $operationName);
69+
$this->handleLinks($queryBuilder, $uriVariables, $queryNameGenerator, $context, $resourceClass, $operationName);
7070

7171
foreach ($this->itemExtensions as $extension) {
72-
$extension->applyToItem($queryBuilder, $queryNameGenerator, $resourceClass, $identifiers, $operationName, $context);
72+
$extension->applyToItem($queryBuilder, $queryNameGenerator, $resourceClass, $uriVariables, $operationName, $context);
7373

7474
if ($extension instanceof QueryResultItemExtensionInterface && $extension->supportsResult($resourceClass, $operationName, $context)) {
7575
return $extension->getResult($queryBuilder, $resourceClass, $operationName, $context);
@@ -79,7 +79,7 @@ public function provide(string $resourceClass, array $identifiers = [], ?string
7979
return $queryBuilder->getQuery()->getOneOrNullResult();
8080
}
8181

82-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
82+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
8383
{
8484
if (!$this->managerRegistry->getManagerForClass($resourceClass) instanceof EntityManagerInterface) {
8585
return false;

src/Elasticsearch/State/CollectionProvider.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public function __construct(Client $client, DocumentMetadataFactoryInterface $do
5959
/**
6060
* {@inheritdoc}
6161
*/
62-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
62+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
6363
{
6464
try {
6565
$resourceMetadata = $this->resourceMetadataCollectionFactory->create($resourceClass);
@@ -83,7 +83,7 @@ public function supports(string $resourceClass, array $identifiers = [], ?string
8383
/**
8484
* {@inheritdoc}
8585
*/
86-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
86+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
8787
{
8888
$documentMetadata = $this->documentMetadataFactory->create($resourceClass);
8989
$body = [];

src/Elasticsearch/State/ItemProvider.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public function __construct(Client $client, DocumentMetadataFactoryInterface $do
5050
/**
5151
* {@inheritdoc}
5252
*/
53-
public function supports(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = []): bool
53+
public function supports(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = []): bool
5454
{
5555
try {
5656
$resourceMetadata = $this->resourceMetadataCollectionFactory->create($resourceClass);
@@ -74,15 +74,15 @@ public function supports(string $resourceClass, array $identifiers = [], ?string
7474
/**
7575
* {@inheritdoc}
7676
*/
77-
public function provide(string $resourceClass, array $identifiers = [], ?string $operationName = null, array $context = [])
77+
public function provide(string $resourceClass, array $uriVariables = [], ?string $operationName = null, array $context = [])
7878
{
7979
$documentMetadata = $this->documentMetadataFactory->create($resourceClass);
8080

8181
try {
8282
$document = $this->client->get([
8383
'index' => $documentMetadata->getIndex(),
8484
'type' => $documentMetadata->getType(),
85-
'id' => (string) reset($identifiers),
85+
'id' => (string) reset($uriVariables),
8686
]);
8787
} catch (Missing404Exception $e) {
8888
return null;

src/GraphQl/Resolver/Stage/ReadStage.php

+3-3
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public function __invoke(?string $resourceClass, ?string $rootClass, string $ope
9393
return [];
9494
}
9595

96-
$identifiers = [];
96+
$uriVariables = [];
9797
$normalizationContext['filters'] = $this->getNormalizedFilters($args);
9898

9999
if (!$operation && $resourceClass) {
@@ -106,11 +106,11 @@ public function __invoke(?string $resourceClass, ?string $rootClass, string $ope
106106
/** @var ResolveInfo $info */
107107
$info = $context['info'];
108108
if (isset($source[$info->fieldName], $source[ItemNormalizer::ITEM_IDENTIFIERS_KEY], $source[ItemNormalizer::ITEM_RESOURCE_CLASS_KEY])) {
109-
$identifiers = $source[ItemNormalizer::ITEM_IDENTIFIERS_KEY];
109+
$uriVariables = $source[ItemNormalizer::ITEM_IDENTIFIERS_KEY];
110110
$normalizationContext['linkClass'] = $source[ItemNormalizer::ITEM_RESOURCE_CLASS_KEY];
111111
}
112112

113-
return $this->provider->provide($resourceClass, $identifiers, $operationName, $normalizationContext);
113+
return $this->provider->provide($resourceClass, $uriVariables, $operationName, $normalizationContext);
114114
}
115115

116116
/**

src/HttpCache/EventListener/AddTagsListener.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ public function onKernelResponse(ResponseEvent $event): void
7474
$resources = $request->attributes->get('_resources');
7575
if (isset($attributes['collection_operation_name']) || ($attributes['subresource_context']['collection'] ?? false) || ($operation && $operation->isCollection())) {
7676
// Allows to purge collections
77-
$identifiers = $this->getOperationIdentifiers($operation, $request->attributes->all(), $attributes['resource_class']);
78-
$iri = $this->iriConverter instanceof IriConverterInterface ? $this->iriConverter->getIriFromResourceClass($attributes['resource_class'], $attributes['operation_name'] ?? null, UrlGeneratorInterface::ABS_PATH, ['identifiers_values' => $identifiers]) : $this->iriConverter->getIriFromResourceClass($attributes['resource_class'], UrlGeneratorInterface::ABS_PATH);
77+
$uriVariables = $this->getOperationUriVariables($operation, $request->attributes->all(), $attributes['resource_class']);
78+
$iri = $this->iriConverter instanceof IriConverterInterface ? $this->iriConverter->getIriFromResourceClass($attributes['resource_class'], $attributes['operation_name'] ?? null, UrlGeneratorInterface::ABS_PATH, ['identifiers_values' => $uriVariables]) : $this->iriConverter->getIriFromResourceClass($attributes['resource_class'], UrlGeneratorInterface::ABS_PATH);
7979
$resources[$iri] = $iri;
8080
}
8181

src/Hydra/Serializer/ErrorNormalizer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
namespace ApiPlatform\Hydra\Serializer;
1515

1616
use ApiPlatform\Api\UrlGeneratorInterface;
17-
use ApiPlatform\Core\Problem\Serializer\ErrorNormalizerTrait;
17+
use ApiPlatform\Problem\Serializer\ErrorNormalizerTrait;
1818
use Symfony\Component\Debug\Exception\FlattenException as LegacyFlattenException;
1919
use Symfony\Component\ErrorHandler\Exception\FlattenException;
2020
use Symfony\Component\Serializer\Normalizer\CacheableSupportsMethodInterface;

src/JsonApi/Serializer/ErrorNormalizer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
namespace ApiPlatform\JsonApi\Serializer;
1515

16-
use ApiPlatform\Core\Problem\Serializer\ErrorNormalizerTrait;
16+
use ApiPlatform\Problem\Serializer\ErrorNormalizerTrait;
1717
use Symfony\Component\Debug\Exception\FlattenException as LegacyFlattenException;
1818
use Symfony\Component\ErrorHandler\Exception\FlattenException;
1919
use Symfony\Component\Serializer\Normalizer\CacheableSupportsMethodInterface;

src/Metadata/Property/Factory/LegacyPropertyMetadataFactory.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313

1414
namespace ApiPlatform\Metadata\Property\Factory;
1515

16-
use ApiPlatform\Core\Exception\ResourceClassNotFoundException;
1716
use ApiPlatform\Core\Metadata\Property\Factory\PropertyMetadataFactoryInterface as LegacyPropertyMetadataFactoryInterface;
1817
use ApiPlatform\Exception\PropertyNotFoundException;
18+
use ApiPlatform\Exception\ResourceClassNotFoundException;
1919
use ApiPlatform\Metadata\ApiProperty;
2020
use ApiPlatform\Metadata\Property\DeprecationMetadataTrait;
2121

@@ -48,7 +48,7 @@ public function create(string $resourceClass, string $property, array $options =
4848
}
4949

5050
try {
51-
$legacyPropertyMetadata = $this->legacyPropertyMetadataFactory->create($resourceClass, $property, $options);
51+
$legacyPropertyMetadata = $this->legacyPropertyMetadataFactory->create($resourceClass, $property, ['deprecate' => false] + $options);
5252
} catch (PropertyNotFoundException|ResourceClassNotFoundException $propertyNotFoundException) {
5353
return $propertyMetadata;
5454
}

0 commit comments

Comments
 (0)