Skip to content

Commit d402f5f

Browse files
committed
test(config): clean DBMS fixtures configuration
1 parent c61d28d commit d402f5f

File tree

16 files changed

+276
-434
lines changed

16 files changed

+276
-434
lines changed

src/Symfony/Bundle/DependencyInjection/ApiPlatformExtension.php

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,6 @@
1515

1616
use ApiPlatform\Api\FilterInterface;
1717
use ApiPlatform\Api\UrlGeneratorInterface;
18-
use ApiPlatform\Core\Annotation\ApiResource as ApiResourceAnnotation;
19-
use ApiPlatform\Core\Bridge\Doctrine\Orm\Filter\AbstractContextAwareFilter as DoctrineOrmAbstractContextAwareFilter;
20-
use ApiPlatform\Core\DataPersister\DataPersisterInterface;
21-
use ApiPlatform\Core\DataProvider\CollectionDataProviderInterface;
22-
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
23-
use ApiPlatform\Core\DataProvider\SubresourceDataProviderInterface;
24-
use ApiPlatform\Core\DataTransformer\DataTransformerInitializerInterface;
25-
use ApiPlatform\Core\DataTransformer\DataTransformerInterface;
2618
use ApiPlatform\Doctrine\Odm\Extension\AggregationCollectionExtensionInterface;
2719
use ApiPlatform\Doctrine\Odm\Extension\AggregationItemExtensionInterface;
2820
use ApiPlatform\Doctrine\Odm\Filter\AbstractFilter as DoctrineMongoDbOdmAbstractFilter;
@@ -143,20 +135,7 @@ private function registerCommonConfiguration(ContainerBuilder $container, array
143135
{
144136
$loader->load('symfony/events.xml');
145137
$loader->load('api.xml');
146-
$loader->load('v3/state.xml');
147-
148-
if ($config['metadata_backward_compatibility_layer']) {
149-
$loader->load('legacy/api.xml');
150-
$loader->load('legacy/data_provider.xml');
151-
$loader->load('legacy/backward_compatibility.xml');
152-
} else {
153-
$loader->load('v3/api.xml');
154-
$loader->load('legacy/data_provider.xml');
155-
$loader->load('v3/backward_compatibility.xml');
156-
}
157-
158-
$loader->load('data_persister.xml');
159-
$loader->load('data_provider.xml');
138+
$loader->load('state.xml');
160139
$loader->load('filter.xml');
161140

162141
if (class_exists(Uuid::class)) {
@@ -544,12 +523,6 @@ private function registerDoctrineMongoDbOdmConfiguration(ContainerBuilder $conta
544523
->setBindings(['$managerRegistry' => new Reference('doctrine_mongodb')]);
545524

546525
$loader->load('doctrine_mongodb_odm.xml');
547-
548-
if (!$config['metadata_backward_compatibility_layer']) {
549-
$loader->load('v3/doctrine_odm.xml');
550-
} else {
551-
$loader->load('legacy/doctrine_odm.xml');
552-
}
553526
}
554527

555528
private function registerHttpCacheConfiguration(ContainerBuilder $container, array $config, XmlFileLoader $loader): void
@@ -694,7 +667,6 @@ private function registerElasticsearchConfiguration(ContainerBuilder $container,
694667
}
695668

696669
$loader->load('elasticsearch.xml');
697-
$loader->load('legacy/elasticsearch.xml');
698670

699671
$container->registerForAutoconfiguration(RequestBodySearchCollectionExtensionInterface::class)
700672
->addTag('api_platform.elasticsearch.request_body_search_extension.collection');

src/Symfony/Bundle/DependencyInjection/Configuration.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,9 @@ public function getConfigTreeBuilder(): TreeBuilder
221221
'json' => ['mime_types' => ['application/json']], // Swagger support
222222
'html' => ['mime_types' => ['text/html']], // Swagger UI support
223223
]);
224-
$this->addFormatSection($rootNode, 'patch_formats', []);
224+
$this->addFormatSection($rootNode, 'patch_formats', [
225+
'json' => ['mime_types' => ['application/merge-patch+json']],
226+
]);
225227
$this->addFormatSection($rootNode, 'error_formats', [
226228
'jsonproblem' => ['mime_types' => ['application/problem+json']],
227229
'jsonld' => ['mime_types' => ['application/ld+json']],

src/Symfony/Bundle/Resources/config/api.xml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -116,17 +116,22 @@
116116
<tag name="cache.pool" />
117117
</service>
118118

119-
<!-- Iri Converter -->
120-
<service id="api_platform.symfony.iri_converter" class="ApiPlatform\Symfony\Routing\IriConverter" public="false">
121-
<argument type="service" id="api_platform.state_provider" />
122-
<argument type="service" id="api_platform.router" />
123-
<argument type="service" id="api_platform.api.identifiers_extractor" />
124-
<argument type="service" id="api_platform.resource_class_resolver" />
119+
<service id="api_platform.route_loader" class="ApiPlatform\Symfony\Routing\ApiLoader" public="false">
120+
<argument type="service" id="kernel" />
121+
<argument type="service" id="api_platform.metadata.resource.name_collection_factory" />
125122
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
126-
<argument type="service" id="api_platform.uri_variables.converter" />
123+
<argument type="service" id="service_container" />
124+
<argument>%api_platform.formats%</argument>
125+
<argument>%api_platform.resource_class_directories%</argument>
126+
<argument>%api_platform.graphql.enabled%</argument>
127+
<argument>%api_platform.enable_entrypoint%</argument>
128+
<argument>%api_platform.enable_docs%</argument>
129+
<argument>%api_platform.graphql.graphiql.enabled%</argument>
130+
<argument>%api_platform.graphql.graphql_playground.enabled%</argument>
127131
<argument>null</argument>
132+
133+
<tag name="routing.loader" />
128134
</service>
129-
<service id="ApiPlatform\Api\IriConverterInterface" alias="api_platform.symfony.iri_converter" />
130135

131136
<!-- Identifiers -->
132137
<service id="api_platform.api.identifiers_extractor" class="ApiPlatform\Api\IdentifiersExtractor" public="false">
@@ -153,5 +158,17 @@
153158
<tag name="api_platform.uri_variables.transformer" priority="-100" />
154159
</service>
155160

161+
<service id="api_platform.iri_converter" alias="api_platform.symfony.iri_converter" />
162+
163+
<service id="api_platform.symfony.iri_converter" class="ApiPlatform\Symfony\Routing\IriConverter" public="false">
164+
<argument type="service" id="api_platform.state_provider" />
165+
<argument type="service" id="api_platform.router" />
166+
<argument type="service" id="api_platform.api.identifiers_extractor" />
167+
<argument type="service" id="api_platform.resource_class_resolver" />
168+
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
169+
<argument type="service" id="api_platform.uri_variables.converter" />
170+
<argument>null</argument>
171+
</service>
172+
<service id="ApiPlatform\Api\IriConverterInterface" alias="api_platform.symfony.iri_converter" />
156173
</services>
157174
</container>

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

Lines changed: 102 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,6 @@
1212
<tag name="property_info.type_extractor" priority="-999" />
1313
</service>
1414

15-
<!-- Metadata loader -->
16-
<service id="api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory.legacy"
17-
class="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\Metadata\Property\DoctrineMongoDbOdmPropertyMetadataFactory"
18-
decorates="api_platform.metadata.property.metadata_factory.legacy" decoration-priority="40" public="false">
19-
<argument type="service" id="doctrine_mongodb"/>
20-
<argument type="service" id="api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory.legacy.inner"/>
21-
</service>
22-
23-
2415
<service id="api_platform.doctrine.metadata_factory" class="Doctrine\Persistence\Mapping\ClassMetadataFactory" public="false">
2516
<factory service="doctrine_mongodb.odm.default_document_manager" method="getMetadataFactory"/>
2617
</service>
@@ -43,52 +34,125 @@
4334
<tag name="api_platform.state_processor" priority="-100" />
4435
</service>
4536

46-
<service id="api_platform.doctrine_mongodb.odm.data_persister" class="ApiPlatform\Core\Bridge\Doctrine\Common\DataPersister" public="false">
37+
<!-- Filter -->
38+
39+
<service id="api_platform.doctrine_mongodb.odm.boolean_filter" class="ApiPlatform\Doctrine\Odm\Filter\BooleanFilter" public="false" abstract="true">
4740
<argument type="service" id="doctrine_mongodb" />
41+
<argument type="service" id="logger" on-invalid="ignore" />
42+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
43+
</service>
44+
<service id="ApiPlatform\Doctrine\Odm\Filter\BooleanFilter" alias="api_platform.doctrine_mongodb.odm.boolean_filter" />
4845

49-
<tag name="api_platform.data_persister" priority="-1000" />
46+
<service id="api_platform.doctrine_mongodb.odm.date_filter" class="ApiPlatform\Doctrine\Odm\Filter\DateFilter" public="false" abstract="true">
47+
<argument type="service" id="doctrine_mongodb" />
48+
<argument type="service" id="logger" on-invalid="ignore" />
49+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
5050
</service>
51+
<service id="ApiPlatform\Doctrine\Odm\Filter\DateFilter" alias="api_platform.doctrine_mongodb.odm.date_filter" />
5152

52-
<service id="api_platform.doctrine_mongodb.odm.collection_data_provider" public="false" abstract="true">
53-
<argument type="service" id="doctrine_mongodb"/>
54-
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory.retro_compatible" />
55-
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.collection" />
53+
<service id="api_platform.doctrine_mongodb.odm.exists_filter" class="ApiPlatform\Doctrine\Odm\Filter\ExistsFilter" public="false" abstract="true">
54+
<argument type="service" id="doctrine_mongodb" />
55+
<argument type="service" id="logger" on-invalid="ignore" />
56+
<argument key="$existsParameterName">%api_platform.collection.exists_parameter_name%</argument>
57+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
58+
</service>
59+
<service id="ApiPlatform\Doctrine\Odm\Filter\ExistsFilter" alias="api_platform.doctrine_mongodb.odm.exists_filter" />
60+
61+
<service id="api_platform.doctrine_mongodb.odm.numeric_filter" class="ApiPlatform\Doctrine\Odm\Filter\NumericFilter" public="false" abstract="true">
62+
<argument type="service" id="doctrine_mongodb" />
63+
<argument type="service" id="logger" on-invalid="ignore" />
64+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
65+
</service>
66+
<service id="ApiPlatform\Doctrine\Odm\Filter\NumericFilter" alias="api_platform.doctrine_mongodb.odm.numeric_filter" />
67+
68+
<service id="api_platform.doctrine_mongodb.odm.order_filter" class="ApiPlatform\Doctrine\Odm\Filter\OrderFilter" public="false" abstract="true">
69+
<argument type="service" id="doctrine_mongodb" />
70+
<argument>%api_platform.collection.order_parameter_name%</argument>
71+
<argument type="service" id="logger" on-invalid="ignore" />
72+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
73+
</service>
74+
<service id="ApiPlatform\Doctrine\Odm\Filter\OrderFilter" alias="api_platform.doctrine_mongodb.odm.order_filter" />
75+
76+
<service id="api_platform.doctrine_mongodb.odm.range_filter" class="ApiPlatform\Doctrine\Odm\Filter\RangeFilter" public="false" abstract="true">
77+
<argument type="service" id="doctrine_mongodb" />
78+
<argument type="service" id="logger" on-invalid="ignore" />
79+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
80+
</service>
81+
<service id="ApiPlatform\Doctrine\Odm\Filter\RangeFilter" alias="api_platform.doctrine_mongodb.odm.range_filter" />
82+
83+
<!-- Doctrine Aggregation extensions -->
84+
85+
<service id="api_platform.doctrine_mongodb.odm.aggregation_extension.filter" class="ApiPlatform\Doctrine\Odm\Extension\FilterExtension" public="false">
86+
<argument type="service" id="api_platform.filter_locator" />
87+
88+
<tag name="api_platform.doctrine_mongodb.odm.aggregation_extension.collection" priority="32" />
5689
</service>
90+
<service id="ApiPlatform\Doctrine\Odm\Extension\FilterExtension" alias="api_platform.doctrine_mongodb.odm.aggregation_extension.filter" />
5791

58-
<service id="api_platform.doctrine_mongodb.odm.item_data_provider" public="false" abstract="true">
92+
<service id="api_platform.doctrine_mongodb.odm.aggregation_extension.pagination"
93+
class="ApiPlatform\Doctrine\Odm\Extension\PaginationExtension" public="false">
5994
<argument type="service" id="doctrine_mongodb"/>
60-
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory.retro_compatible" />
61-
<argument type="service" id="api_platform.metadata.property.name_collection_factory"/>
62-
<argument type="service" id="api_platform.metadata.property.metadata_factory.legacy"/>
63-
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.item" />
95+
<argument type="service" id="api_platform.pagination" />
96+
97+
<tag name="api_platform.doctrine_mongodb.odm.aggregation_extension.collection"/>
6498
</service>
99+
<service id="ApiPlatform\Doctrine\Odm\Extension\PaginationExtension" alias="api_platform.doctrine_mongodb.odm.aggregation_extension.pagination" />
65100

66-
<service id="api_platform.doctrine_mongodb.odm.subresource_data_provider" public="false" abstract="true">
101+
<service id="api_platform.doctrine_mongodb.odm.aggregation_extension.order" class="ApiPlatform\Doctrine\Odm\Extension\OrderExtension" public="false">
102+
<argument>%api_platform.collection.order%</argument>
67103
<argument type="service" id="doctrine_mongodb" />
68-
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory.retro_compatible" />
69-
<argument type="service" id="api_platform.metadata.property.name_collection_factory" />
70-
<argument type="service" id="api_platform.metadata.property.metadata_factory.legacy" />
71-
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.collection" />
72-
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.item" />
104+
105+
<tag name="api_platform.doctrine_mongodb.odm.aggregation_extension.collection" priority="16" />
73106
</service>
107+
<service id="ApiPlatform\Doctrine\Odm\Extension\OrderExtension" alias="api_platform.doctrine_mongodb.odm.aggregation_extension.order" />
74108

75-
<service id="api_platform.doctrine_mongodb.odm.default.collection_data_provider"
76-
parent="api_platform.doctrine_mongodb.odm.collection_data_provider"
77-
class="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\CollectionDataProvider">
78-
<tag name="api_platform.collection_data_provider"/>
109+
<!-- Metadata loader -->
110+
<service id="api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory"
111+
class="ApiPlatform\Doctrine\Odm\Metadata\Property\DoctrineMongoDbOdmPropertyMetadataFactory"
112+
decorates="api_platform.metadata.property.metadata_factory" decoration-priority="40" public="false">
113+
<argument type="service" id="doctrine_mongodb"/>
114+
<argument type="service" id="api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory.inner"/>
79115
</service>
80-
<service id="api_platform.doctrine_mongodb.odm.default.item_data_provider"
81-
parent="api_platform.doctrine_mongodb.odm.item_data_provider"
82-
class="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\ItemDataProvider">
83-
<tag name="api_platform.item_data_provider"/>
116+
117+
<service id="api_platform.doctrine_mongodb.odm.search_filter" class="ApiPlatform\Doctrine\Odm\Filter\SearchFilter" public="false" abstract="true">
118+
<argument type="service" id="doctrine_mongodb" />
119+
<argument type="service" id="api_platform.iri_converter" />
120+
<argument type="service" id="api_platform.identifiers_extractor.cached" on-invalid="ignore" />
121+
<argument type="service" id="api_platform.property_accessor" />
122+
<argument type="service" id="logger" on-invalid="ignore" />
123+
<argument key="$nameConverter" type="service" id="api_platform.name_converter" on-invalid="ignore"/>
84124
</service>
85-
<service id="api_platform.doctrine_mongodb.odm.default.subresource_data_provider"
86-
parent="api_platform.doctrine_mongodb.odm.subresource_data_provider"
87-
class="ApiPlatform\Core\Bridge\Doctrine\MongoDbOdm\SubresourceDataProvider">
88-
<tag name="api_platform.subresource_data_provider" />
125+
126+
<service id="ApiPlatform\Doctrine\Odm\Filter\SearchFilter" alias="api_platform.doctrine_mongodb.odm.search_filter" />
127+
128+
<service id="ApiPlatform\Doctrine\Odm\State\CollectionProvider" class="ApiPlatform\Doctrine\Odm\State\CollectionProvider" public="false">
129+
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
130+
<argument type="service" id="doctrine_mongodb" />
131+
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.collection" />
132+
133+
<tag name="api_platform.state_provider" priority="-100" />
89134
</service>
90135

136+
<service id="ApiPlatform\Doctrine\Odm\State\ItemProvider" class="ApiPlatform\Doctrine\Odm\State\ItemProvider" public="false">
137+
<argument type="service" id="api_platform.metadata.resource.metadata_collection_factory" />
138+
<argument type="service" id="doctrine_mongodb" />
139+
<argument type="tagged" tag="api_platform.doctrine_mongodb.odm.aggregation_extension.item" />
140+
141+
<tag name="api_platform.state_provider" priority="-100" />
142+
</service>
91143

144+
<service id="api_platform.doctrine.odm.metadata.resource.metadata_collection_factory" class="ApiPlatform\Doctrine\Odm\Metadata\Resource\DoctrineMongoDbOdmResourceCollectionMetadataFactory" decorates="api_platform.metadata.resource.metadata_collection_factory" decoration-priority="40">
145+
<argument type="service" id="doctrine_mongodb" />
146+
<argument type="service" id="api_platform.doctrine.odm.metadata.resource.metadata_collection_factory.inner" />
147+
</service>
148+
149+
<service id="api_platform.doctrine_mongodb.odm.metadata.property.identifier_metadata_factory"
150+
class="ApiPlatform\Doctrine\Odm\Metadata\Property\DoctrineMongoDbOdmPropertyMetadataFactory"
151+
decorates="api_platform.metadata.property.identifier_metadata_factory"
152+
decoration-priority="40">
153+
<argument type="service" id="doctrine_mongodb"/>
154+
<argument type="service" id="api_platform.doctrine_mongodb.odm.metadata.property.identifier_metadata_factory.inner"/>
155+
</service>
92156
</services>
93157

94158
</container>

src/Symfony/Bundle/Resources/config/elasticsearch.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,6 @@
122122
<argument type="service" id="api_platform.elasticsearch.client" />
123123
<argument type="service" id="api_platform.elasticsearch.metadata.resource.metadata_collection_factory.inner" />
124124
</service>
125-
<service id="ApiPlatform\Core\Bridge\Elasticsearch\Api\IdentifierExtractorInterface" alias="api_platform.elasticsearch.identifier_extractor" />
126125

127126
</services>
128127

tests/Fixtures/app/AppKernel.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,7 @@ protected function configureContainer(ContainerBuilder $c, LoaderInterface $load
111111

112112
$loader->load(__DIR__."/config/config_{$this->getEnvironment()}.yml");
113113

114-
/* @TODO remove this check in 3.0 */
115-
if (\PHP_VERSION_ID >= 70200 && class_exists(Uuid::class) && class_exists(UuidType::class)) {
114+
if (class_exists(Uuid::class) && class_exists(UuidType::class)) {
116115
$loader->load(__DIR__.'/config/config_symfony_uid.yml');
117116
}
118117

@@ -238,7 +237,6 @@ class_exists(NativePasswordHasher::class) ? 'password_hashers' : 'encoders' => [
238237
$c->prependExtensionConfig('api_platform', ['enable_nelmio_api_doc' => true]);
239238
}
240239

241-
$loader->load(__DIR__.'/config/config.yml');
242240
$c->prependExtensionConfig('api_platform', [
243241
'mapping' => [
244242
'paths' => ['%kernel.project_dir%/../TestBundle/Resources/config/api_resources'],

0 commit comments

Comments
 (0)