Skip to content

Commit 8e874f0

Browse files
authored
fix(symfony): optional doctrine/annotation for upgrade command (#4739)
* fix(symfony): optional doctrine/annotation for upgrade command * fix phpstan? * do not use phpstan dev * do not use phpstan dev * oops
1 parent a84b6d4 commit 8e874f0

File tree

4 files changed

+8
-6
lines changed

4 files changed

+8
-6
lines changed

.github/workflows/ci.yml

-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,6 @@ jobs:
6565
path: ${{ steps.composercache.outputs.dir }}
6666
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
6767
restore-keys: ${{ runner.os }}-composer-
68-
- name: Allow unstable project dependencies
69-
run: composer config minimum-stability dev
7068
- name: Update project dependencies
7169
run: composer update --no-interaction --no-progress --ansi
7270
- name: Require Symfony components

src/Core/Bridge/Symfony/Bundle/Command/UpgradeApiResourceCommand.php

+6-2
Original file line numberDiff line numberDiff line change
@@ -46,14 +46,14 @@ final class UpgradeApiResourceCommand extends Command
4646
private $identifiersExtractor;
4747
private $localCache = [];
4848

49-
public function __construct(ResourceNameCollectionFactoryInterface $resourceNameCollectionFactory, ResourceMetadataFactoryInterface $resourceMetadataFactory, SubresourceOperationFactoryInterface $subresourceOperationFactory, SubresourceTransformer $subresourceTransformer, AnnotationReader $reader, IdentifiersExtractorInterface $identifiersExtractor)
49+
public function __construct(ResourceNameCollectionFactoryInterface $resourceNameCollectionFactory, ResourceMetadataFactoryInterface $resourceMetadataFactory, SubresourceOperationFactoryInterface $subresourceOperationFactory, SubresourceTransformer $subresourceTransformer, IdentifiersExtractorInterface $identifiersExtractor, AnnotationReader $reader = null)
5050
{
5151
$this->resourceNameCollectionFactory = $resourceNameCollectionFactory;
5252
$this->resourceMetadataFactory = $resourceMetadataFactory;
5353
$this->subresourceOperationFactory = $subresourceOperationFactory;
5454
$this->subresourceTransformer = $subresourceTransformer;
55-
$this->reader = $reader;
5655
$this->identifiersExtractor = $identifiersExtractor;
56+
$this->reader = $reader;
5757

5858
parent::__construct();
5959
}
@@ -248,6 +248,10 @@ private function readApiResource(string $resourceClass): array
248248
return [$attributes[0]->newInstance(), false];
249249
}
250250

251+
if (null === $this->reader) {
252+
throw new \RuntimeException(sprintf('Resource "%s" not found.', $resourceClass));
253+
}
254+
251255
return [$this->reader->getClassAnnotation($reflectionClass, ApiResource::class), true];
252256
}
253257
}

src/Symfony/Bundle/Resources/config/legacy/upgrade.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
<argument type="service" id="api_platform.metadata.resource.metadata_factory" />
1313
<argument type="service" id="api_platform.subresource_operation_factory" />
1414
<argument type="service" id="api_platform.upgrade.subresource_transformer" />
15-
<argument type="service" id="annotations.reader" />
1615
<argument type="service" id="api_platform.identifiers_extractor.legacy" />
16+
<argument type="service" id="annotations.reader" on-invalid="ignore" />
1717
</service>
1818
</services>
1919

tests/Core/Bridge/Symfony/Bundle/Command/UpgradeApiResourceCommandTest.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ private function getCommandTester(ResourceNameCollectionFactoryInterface $resour
4040
$application->setCatchExceptions(false);
4141
$application->setAutoExit(false);
4242

43-
$application->add(new UpgradeApiResourceCommand($resourceNameCollectionFactory, $resourceMetadataFactory, $subresourceOperationFactory, new SubresourceTransformer(), new AnnotationReader(), $identifiersExtractor->reveal()));
43+
$application->add(new UpgradeApiResourceCommand($resourceNameCollectionFactory, $resourceMetadataFactory, $subresourceOperationFactory, new SubresourceTransformer(), $identifiersExtractor->reveal(), new AnnotationReader()));
4444

4545
$command = $application->find('api:upgrade-resource');
4646

0 commit comments

Comments
 (0)