Skip to content

Commit 9f8b464

Browse files
mikadamczykalongosz
authored andcommitted
EZP-30462: Changed ez.fieldFormMapper tag to ezplatform.field_type.form_mapper (#292)
1 parent b1214bd commit 9f8b464

File tree

3 files changed

+150
-49
lines changed

3 files changed

+150
-49
lines changed

bundle/DependencyInjection/Compiler/FieldTypeFormMapperDispatcherPass.php

+48-8
Original file line numberDiff line numberDiff line change
@@ -18,19 +18,25 @@
1818
*/
1919
class FieldTypeFormMapperDispatcherPass implements CompilerPassInterface
2020
{
21+
public const FIELD_TYPE_FORM_MAPPER_DISPATCHER = 'ezrepoforms.field_type_form_mapper.dispatcher';
22+
public const DEPRECATED_FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG = 'ez.fieldFormMapper.value';
23+
public const DEPRECATED_FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG = 'ez.fieldFormMapper.definition';
24+
public const FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG = 'ezplatform.field_type.form_mapper.value';
25+
public const FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG = 'ezplatform.field_type.form_mapper.definition';
26+
2127
public function process(ContainerBuilder $container)
2228
{
23-
if (!$container->hasDefinition('ezrepoforms.field_type_form_mapper.dispatcher')) {
29+
if (!$container->hasDefinition(self::FIELD_TYPE_FORM_MAPPER_DISPATCHER)) {
2430
return;
2531
}
2632

27-
$dispatcherDefinition = $container->findDefinition('ezrepoforms.field_type_form_mapper.dispatcher');
33+
$dispatcherDefinition = $container->findDefinition(self::FIELD_TYPE_FORM_MAPPER_DISPATCHER);
2834

2935
foreach ($this->findTaggedFormMapperServices($container) as $id => $tags) {
3036
foreach ($tags as $tag) {
3137
if (!isset($tag['fieldType'])) {
3238
throw new LogicException(
33-
'ez.fieldFormMapper service tags need a "fieldType" attribute to identify which field type the mapper is for. None given.'
39+
'`ezplatform.field_type.form_mapper` or deprecated `ez.fieldFormMapper` service tags need a "fieldType" attribute to identify which field type the mapper is for. None given.'
3440
);
3541
}
3642

@@ -40,16 +46,50 @@ public function process(ContainerBuilder $container)
4046
}
4147

4248
/**
43-
* Gathers services tagged as either ez.fieldFormMapper.value or ez.fieldFormMapper.definition.
49+
* Gathers services tagged as either
50+
* - ez.fieldFormMapper.value (deprecated)
51+
* - ez.fieldFormMapper.definition (deprecated)
52+
* - ezplatform.field_type.form_mapper.value
53+
* - ezplatform.field_type.form_mapper.definition.
4454
*
4555
* @param \Symfony\Component\DependencyInjection\ContainerBuilder $container
4656
*
4757
* @return array
4858
*/
49-
private function findTaggedFormMapperServices(ContainerBuilder $container)
59+
private function findTaggedFormMapperServices(ContainerBuilder $container): array
5060
{
51-
return
52-
$container->findTaggedServiceIds('ez.fieldFormMapper.value') +
53-
$container->findTaggedServiceIds('ez.fieldFormMapper.definition');
61+
$deprecatedFieldFormMapperValueTags = $container->findTaggedServiceIds(self::DEPRECATED_FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG);
62+
$deprecatedFieldFormMapperDefinitionTags = $container->findTaggedServiceIds(self::DEPRECATED_FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG);
63+
$fieldFormMapperValueTags = $container->findTaggedServiceIds(self::FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG);
64+
$fieldFormMapperDefinitionTags = $container->findTaggedServiceIds(self::FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG);
65+
66+
foreach ($deprecatedFieldFormMapperValueTags as $ezFieldFormMapperValueTag) {
67+
@trigger_error(
68+
sprintf(
69+
'`%s` service tag is deprecated and will be removed in eZ Platform 4.0. Please use `%s` instead.',
70+
self::DEPRECATED_FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG,
71+
self::FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG
72+
),
73+
E_USER_DEPRECATED
74+
);
75+
}
76+
77+
foreach ($deprecatedFieldFormMapperDefinitionTags as $ezFieldFormMapperValueTag) {
78+
@trigger_error(
79+
sprintf(
80+
'`%s` service tag is deprecated and will be removed in eZ Platform 4.0. Please use `%s` instead.',
81+
self::DEPRECATED_FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG,
82+
self::FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG
83+
),
84+
E_USER_DEPRECATED
85+
);
86+
}
87+
88+
return array_merge(
89+
$deprecatedFieldFormMapperValueTags,
90+
$deprecatedFieldFormMapperDefinitionTags,
91+
$fieldFormMapperValueTags,
92+
$fieldFormMapperDefinitionTags
93+
);
5494
}
5595
}

bundle/Resources/config/fieldtypes.yaml

+41-41
Original file line numberDiff line numberDiff line change
@@ -25,63 +25,63 @@ services:
2525

2626
EzSystems\RepositoryForms\FieldType\Mapper\AuthorFormMapper:
2727
tags:
28-
- { name: ez.fieldFormMapper.definition, fieldType: ezauthor }
29-
- { name: ez.fieldFormMapper.value, fieldType: ezauthor }
28+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezauthor }
29+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezauthor }
3030

3131
EzSystems\RepositoryForms\FieldType\Mapper\BinaryFileFormMapper:
3232
tags:
33-
- { name: ez.fieldFormMapper.definition, fieldType: ezbinaryfile }
34-
- { name: ez.fieldFormMapper.value, fieldType: ezbinaryfile }
33+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezbinaryfile }
34+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezbinaryfile }
3535

3636
EzSystems\RepositoryForms\FieldType\Mapper\CheckboxFormMapper:
3737
tags:
38-
- { name: ez.fieldFormMapper.definition, fieldType: ezboolean }
39-
- { name: ez.fieldFormMapper.value, fieldType: ezboolean }
38+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezboolean }
39+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezboolean }
4040

4141
EzSystems\RepositoryForms\FieldType\Mapper\SelectionFormMapper:
4242
tags:
43-
- { name: ez.fieldFormMapper.definition, fieldType: ezselection }
44-
- { name: ez.fieldFormMapper.value, fieldType: ezselection }
43+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezselection }
44+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezselection }
4545

4646
EzSystems\RepositoryForms\FieldType\Mapper\CountryFormMapper:
4747
tags:
48-
- { name: ez.fieldFormMapper.definition, fieldType: ezcountry }
49-
- { name: ez.fieldFormMapper.value, fieldType: ezcountry }
48+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezcountry }
49+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezcountry }
5050

5151
EzSystems\RepositoryForms\FieldType\Mapper\DateFormMapper:
5252
tags:
53-
- { name: ez.fieldFormMapper.definition, fieldType: ezdate }
54-
- { name: ez.fieldFormMapper.value, fieldType: ezdate }
53+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezdate }
54+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezdate }
5555

5656
EzSystems\RepositoryForms\FieldType\Mapper\DateTimeFormMapper:
5757
tags:
58-
- { name: ez.fieldFormMapper.definition, fieldType: ezdatetime }
59-
- { name: ez.fieldFormMapper.value, fieldType: ezdatetime }
58+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezdatetime }
59+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezdatetime }
6060

6161
EzSystems\RepositoryForms\FieldType\Mapper\FloatFormMapper:
6262
tags:
63-
- { name: ez.fieldFormMapper.definition, fieldType: ezfloat }
64-
- { name: ez.fieldFormMapper.value, fieldType: ezfloat }
63+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezfloat }
64+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezfloat }
6565

6666
EzSystems\RepositoryForms\FieldType\Mapper\ImageFormMapper:
6767
tags:
68-
- { name: ez.fieldFormMapper.definition, fieldType: ezimage }
69-
- { name: ez.fieldFormMapper.value, fieldType: ezimage }
68+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezimage }
69+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezimage }
7070

7171
EzSystems\RepositoryForms\FieldType\Mapper\IntegerFormMapper:
7272
tags:
73-
- { name: ez.fieldFormMapper.definition, fieldType: ezinteger }
74-
- { name: ez.fieldFormMapper.value, fieldType: ezinteger }
73+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezinteger }
74+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezinteger }
7575

7676
EzSystems\RepositoryForms\FieldType\Mapper\ISBNFormMapper:
7777
tags:
78-
- { name: ez.fieldFormMapper.definition, fieldType: ezisbn }
79-
- { name: ez.fieldFormMapper.value, fieldType: ezisbn }
78+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezisbn }
79+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezisbn }
8080

8181
EzSystems\RepositoryForms\FieldType\Mapper\MediaFormMapper:
8282
tags:
83-
- { name: ez.fieldFormMapper.definition, fieldType: ezmedia }
84-
- { name: ez.fieldFormMapper.value, fieldType: ezmedia }
83+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezmedia }
84+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezmedia }
8585

8686
EzSystems\RepositoryForms\FieldType\Mapper\AbstractRelationFormMapper:
8787
abstract: true
@@ -94,63 +94,63 @@ services:
9494
autoconfigure: false
9595
public: false
9696
tags:
97-
- { name: ez.fieldFormMapper.definition, fieldType: ezobjectrelation }
98-
- { name: ez.fieldFormMapper.value, fieldType: ezobjectrelation }
97+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezobjectrelation }
98+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezobjectrelation }
9999

100100
EzSystems\RepositoryForms\FieldType\Mapper\RelationListFormMapper:
101101
parent: EzSystems\RepositoryForms\FieldType\Mapper\AbstractRelationFormMapper
102102
autowire: true
103103
autoconfigure: false
104104
public: false
105105
tags:
106-
- { name: ez.fieldFormMapper.definition, fieldType: ezobjectrelationlist }
107-
- { name: ez.fieldFormMapper.value, fieldType: ezobjectrelationlist }
106+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezobjectrelationlist }
107+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezobjectrelationlist }
108108

109109
EzSystems\RepositoryForms\FieldType\Mapper\TextLineFormMapper:
110110
tags:
111-
- { name: ez.fieldFormMapper.definition, fieldType: ezstring }
112-
- { name: ez.fieldFormMapper.value, fieldType: ezstring }
111+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezstring }
112+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezstring }
113113

114114
EzSystems\RepositoryForms\FieldType\Mapper\TextBlockFormMapper:
115115
tags:
116-
- { name: ez.fieldFormMapper.definition, fieldType: eztext }
117-
- { name: ez.fieldFormMapper.value, fieldType: eztext }
116+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: eztext }
117+
- { name: ezplatform.field_type.form_mapper.value, fieldType: eztext }
118118

119119
EzSystems\RepositoryForms\FieldType\Mapper\TimeFormMapper:
120120
tags:
121-
- { name: ez.fieldFormMapper.definition, fieldType: eztime }
122-
- { name: ez.fieldFormMapper.value, fieldType: eztime }
121+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: eztime }
122+
- { name: ezplatform.field_type.form_mapper.value, fieldType: eztime }
123123

124124
EzSystems\RepositoryForms\FieldType\Mapper\FormTypeBasedFieldValueFormMapper:
125125
abstract: true
126126

127127
EzSystems\RepositoryForms\FieldType\Mapper\UserAccountFieldValueFormMapper:
128128
tags:
129-
- { name: ez.fieldFormMapper.definition, fieldType: ezuser }
130-
- { name: ez.fieldFormMapper.value, fieldType: ezuser }
129+
- { name: ezplatform.field_type.form_mapper.definition, fieldType: ezuser }
130+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezuser }
131131

132132
EzSystems\RepositoryForms\FieldType\Mapper\UrlFormMapper:
133133
tags:
134-
- { name: ez.fieldFormMapper.value, fieldType: ezurl }
134+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezurl }
135135

136136
EzSystems\RepositoryForms\FieldType\Mapper\MapLocationFormMapper:
137137
tags:
138-
- { name: ez.fieldFormMapper.value, fieldType: ezgmaplocation }
138+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezgmaplocation }
139139

140140
EzSystems\RepositoryForms\FieldType\Mapper\KeywordFormMapper:
141141
tags:
142-
- { name: ez.fieldFormMapper.value, fieldType: ezkeyword }
142+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezkeyword }
143143

144144
ezrepoforms.field_type.form_mapper.ezemail:
145145
parent: EzSystems\RepositoryForms\FieldType\Mapper\FormTypeBasedFieldValueFormMapper
146146
autowire: true
147147
autoconfigure: false
148148
public: false
149149
tags:
150-
- { name: ez.fieldFormMapper.value, fieldType: ezemail }
150+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezemail }
151151
calls:
152152
- [setFormType, ['Symfony\Component\Form\Extension\Core\Type\EmailType']]
153153

154154
EzSystems\RepositoryForms\FieldType\Mapper\ImageAssetFormMapper:
155155
tags:
156-
- { name: ez.fieldFormMapper.value, fieldType: ezimageasset }
156+
- { name: ezplatform.field_type.form_mapper.value, fieldType: ezimageasset }
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
3+
/**
4+
* This file is part of the eZ RepositoryForms package.
5+
*
6+
* @copyright Copyright (C) eZ Systems AS. All rights reserved.
7+
* @license For full copyright and license information view LICENSE file distributed with this source code.
8+
*/
9+
namespace EzSystems\RepositoryFormsBundle\Tests\DependencyInjection\Compiler;
10+
11+
use EzSystems\RepositoryForms\Limitation\LimitationValueMapperInterface;
12+
use EzSystems\RepositoryFormsBundle\DependencyInjection\Compiler\FieldTypeFormMapperDispatcherPass;
13+
use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase;
14+
use Symfony\Component\DependencyInjection\ContainerBuilder;
15+
use Symfony\Component\DependencyInjection\Definition;
16+
use Symfony\Component\DependencyInjection\Reference;
17+
18+
class FieldTypeFormMapperDispatcherPassTest extends AbstractCompilerPassTestCase
19+
{
20+
protected function setUp(): void
21+
{
22+
parent::setUp();
23+
24+
$this->setDefinition(FieldTypeFormMapperDispatcherPass::FIELD_TYPE_FORM_MAPPER_DISPATCHER, new Definition());
25+
}
26+
27+
protected function registerCompilerPass(ContainerBuilder $container): void
28+
{
29+
$container->addCompilerPass(new FieldTypeFormMapperDispatcherPass());
30+
}
31+
32+
/**
33+
* @dataProvider tagsProvider
34+
*/
35+
public function testRegisterMappers(string $tag)
36+
{
37+
$fieldTypeIdentifier = 'field_type_identifier';
38+
$serviceId = 'service_id';
39+
$def = new Definition();
40+
$def->addTag($tag, ['fieldType' => $fieldTypeIdentifier]);
41+
$this->setDefinition($serviceId, $def);
42+
43+
$this->compile();
44+
45+
$this->assertContainerBuilderHasServiceDefinitionWithMethodCall(
46+
FieldTypeFormMapperDispatcherPass::FIELD_TYPE_FORM_MAPPER_DISPATCHER,
47+
'addMapper',
48+
[new Reference($serviceId), $fieldTypeIdentifier]
49+
);
50+
}
51+
52+
public function tagsProvider(): array
53+
{
54+
return [
55+
[FieldTypeFormMapperDispatcherPass::DEPRECATED_FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG],
56+
[FieldTypeFormMapperDispatcherPass::DEPRECATED_FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG],
57+
[FieldTypeFormMapperDispatcherPass::FIELD_TYPE_FORM_MAPPER_VALUE_SERVICE_TAG],
58+
[FieldTypeFormMapperDispatcherPass::FIELD_TYPE_FORM_MAPPER_DEFINITION_SERVICE_TAG],
59+
];
60+
}
61+
}

0 commit comments

Comments
 (0)