Skip to content

Commit b5a7717

Browse files
committed
Change the key for storing revisioned fields since config keys have to be globally unique for all extensions
1 parent a062600 commit b5a7717

File tree

8 files changed

+35
-35
lines changed

8 files changed

+35
-35
lines changed

src/Revisionable/Document/Repository/RevisionRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ protected function fillDocument(object $document, array $data): void
114114
assert($documentMeta instanceof ClassMetadata);
115115

116116
$config = $this->getListener()->getConfiguration($this->getDocumentManager(), $documentMeta->getName());
117-
$fields = $config['versioned'];
117+
$fields = $config['versionedFields'];
118118

119119
foreach ($data as $field => $value) {
120120
if (!in_array($field, $fields, true)) {

src/Revisionable/Entity/Repository/RevisionRepository.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public function revert(object $entity, int $version = 1): void
8888
->setParameter('version', $version);
8989

9090
$config = $this->getListener()->getConfiguration($this->getEntityManager(), $entityClass);
91-
$fields = $config['versioned'];
91+
$fields = $config['versionedFields'];
9292
$filled = false;
9393
$revisionsFound = false;
9494

src/Revisionable/Mapping/Driver/Attribute.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,14 +95,14 @@ public function readExtendedMetadata($meta, array &$config)
9595
continue;
9696
}
9797

98-
$config['versioned'][] = $field;
98+
$config['versionedFields'][] = $field;
9999
}
100100
}
101101

102102
// Validate configuration
103103
if (!$meta->isMappedSuperclass && $config) {
104104
// The revisionable flag must be set, except for embedded models, and the versioned config should be a non-empty array
105-
if (isset($config['versioned']) && !isset($config['revisionable']) && !$this->isEmbed($meta)) {
105+
if (isset($config['versionedFields']) && !isset($config['revisionable']) && !$this->isEmbed($meta)) {
106106
throw new InvalidMappingException(sprintf('Class "%s" has "%s" annotated fields but is missing the "%s" class annotation.', $meta->getName(), Versioned::class, Revisionable::class));
107107
}
108108
}
@@ -130,7 +130,7 @@ private function inspectEmbeddedForVersioned(string $field, array $config, ORMCl
130130
continue;
131131
}
132132

133-
$config['versioned'][] = $embeddedField;
133+
$config['versionedFields'][] = $embeddedField;
134134
}
135135
}
136136

src/Revisionable/Mapping/Driver/Xml.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function readExtendedMetadata($meta, array &$config)
6767
// Validate configuration
6868
if (!$meta->isMappedSuperclass && $config) {
6969
// The revisionable flag must be set, except for embedded models, and the versioned config should be a non-empty array
70-
if (isset($config['versioned']) && (!$this->isEmbed($meta) && !isset($config['revisionable']))) {
70+
if (isset($config['versionedFields']) && (!$this->isEmbed($meta) && !isset($config['revisionable']))) {
7171
throw new InvalidMappingException(sprintf("Class '%s' has fields with the 'gedmo:versioned' element but the class does not have the 'gedmo:revisionable' element.", $meta->getName()));
7272
}
7373
}
@@ -172,7 +172,7 @@ private function inspectElementForVersioned(\SimpleXMLElement $element, array $c
172172
continue;
173173
}
174174

175-
$config['versioned'][] = $prepend
175+
$config['versionedFields'][] = $prepend
176176
? $prepend.'.'.$field
177177
: $field;
178178
}

src/Revisionable/Mapping/Driver/Yaml.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ public function readExtendedMetadata($meta, array &$config)
6666
// Validate configuration
6767
if (!$meta->isMappedSuperclass && $config) {
6868
// The revisionable flag must be set, except for embedded models, and the versioned config should be a non-empty array
69-
if (isset($config['versioned']) && !isset($config['revisionable'])) {
69+
if (isset($config['versionedFields']) && !isset($config['revisionable'])) {
7070
throw new InvalidMappingException(sprintf("Class '%s' has fields marked as versioned but the class does not have the 'revisionable' configuration.", $meta->getName()));
7171
}
7272
}
@@ -167,7 +167,7 @@ private function inspectConfigurationForVersioned(array $mapping, array $config,
167167
continue;
168168
}
169169

170-
$config['versioned'][] = $prepend
170+
$config['versionedFields'][] = $prepend
171171
? $prepend.'.'.$field
172172
: $field;
173173
}

src/Revisionable/RevisionableListener.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
* @phpstan-type RevisionableConfiguration = array{
3434
* revisionable?: bool,
3535
* revisionClass?: class-string<RevisionInterface<T>>,
36-
* versioned?: list<non-empty-string>,
36+
* versionedFields?: list<non-empty-string>,
3737
* }
3838
*
3939
* @template T of Revisionable|object
@@ -286,7 +286,7 @@ private function getObjectChangeSetData(RevisionableAdapter $ea, object $object,
286286
$newValues = [];
287287

288288
foreach ($ea->getObjectChangeSet($uow, $object) as $field => $changes) {
289-
if (!isset($config['versioned']) || !in_array($field, $config['versioned'], true)) {
289+
if (!isset($config['versionedFields']) || !in_array($field, $config['versionedFields'], true)) {
290290
continue;
291291
}
292292

@@ -358,7 +358,7 @@ private function createRevision(string $action, object $object, RevisionableAdap
358358

359359
$newValues = [];
360360

361-
if (RevisionInterface::ACTION_REMOVE !== $action && isset($config['versioned'])) {
361+
if (RevisionInterface::ACTION_REMOVE !== $action && isset($config['versionedFields'])) {
362362
$newValues = $this->getObjectChangeSetData($ea, $object, $revision);
363363
$revision->setData($newValues);
364364
}

tests/Gedmo/Mapping/RevisionableMongoDBODMMappingTest.php

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ public function testRevisionableMapping(string $className): void
6767
static::assertArrayHasKey('revisionable', $config);
6868
static::assertTrue($config['revisionable']);
6969

70-
static::assertArrayHasKey('versioned', $config);
71-
static::assertCount(1, $config['versioned']);
72-
static::assertContains('title', $config['versioned']);
70+
static::assertArrayHasKey('versionedFields', $config);
71+
static::assertCount(1, $config['versionedFields']);
72+
static::assertContains('title', $config['versionedFields']);
7373
}
7474

7575
/**
@@ -108,10 +108,10 @@ public function testRevisionableWithEmbedded(string $className, string $embedded
108108
static::assertArrayHasKey('revisionClass', $config);
109109
static::assertSame(Revision::class, $config['revisionClass']);
110110

111-
static::assertArrayHasKey('versioned', $config);
112-
static::assertCount(2, $config['versioned']);
113-
static::assertContains('title', $config['versioned']);
114-
static::assertContains('embedded', $config['versioned']);
111+
static::assertArrayHasKey('versionedFields', $config);
112+
static::assertCount(2, $config['versionedFields']);
113+
static::assertContains('title', $config['versionedFields']);
114+
static::assertContains('embedded', $config['versionedFields']);
115115

116116
/*
117117
* Inspect the embedded class
@@ -120,8 +120,8 @@ public function testRevisionableWithEmbedded(string $className, string $embedded
120120
$cacheId = ExtensionMetadataFactory::getCacheId($embeddedClassName, 'Gedmo\Revisionable');
121121
$config = $this->cache->getItem($cacheId)->get();
122122

123-
static::assertArrayHasKey('versioned', $config);
124-
static::assertCount(1, $config['versioned']);
125-
static::assertContains('subtitle', $config['versioned']);
123+
static::assertArrayHasKey('versionedFields', $config);
124+
static::assertCount(1, $config['versionedFields']);
125+
static::assertContains('subtitle', $config['versionedFields']);
126126
}
127127
}

tests/Gedmo/Mapping/RevisionableORMMappingTest.php

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,9 @@ public function testRevisionableMapping(string $className): void
8484
static::assertArrayHasKey('revisionable', $config);
8585
static::assertTrue($config['revisionable']);
8686

87-
static::assertArrayHasKey('versioned', $config);
88-
static::assertCount(1, $config['versioned']);
89-
static::assertContains('title', $config['versioned']);
87+
static::assertArrayHasKey('versionedFields', $config);
88+
static::assertCount(1, $config['versionedFields']);
89+
static::assertContains('title', $config['versionedFields']);
9090
}
9191

9292
/**
@@ -127,9 +127,9 @@ public function testRevisionableCompositeMapping(string $className): void
127127
static::assertArrayHasKey('revisionClass', $config);
128128
static::assertSame(Revision::class, $config['revisionClass']);
129129

130-
static::assertArrayHasKey('versioned', $config);
131-
static::assertCount(1, $config['versioned']);
132-
static::assertContains('title', $config['versioned']);
130+
static::assertArrayHasKey('versionedFields', $config);
131+
static::assertCount(1, $config['versionedFields']);
132+
static::assertContains('title', $config['versionedFields']);
133133
}
134134

135135
/**
@@ -169,9 +169,9 @@ public function testRevisionableCompositeRelationMapping(string $className): voi
169169
static::assertTrue($config['revisionable']);
170170
static::assertArrayNotHasKey('revisionClass', $config);
171171

172-
static::assertArrayHasKey('versioned', $config);
173-
static::assertCount(1, $config['versioned']);
174-
static::assertContains('title', $config['versioned']);
172+
static::assertArrayHasKey('versionedFields', $config);
173+
static::assertCount(1, $config['versionedFields']);
174+
static::assertContains('title', $config['versionedFields']);
175175
}
176176

177177
/**
@@ -209,9 +209,9 @@ public function testRevisionableWithEmbedded(string $className): void
209209
static::assertArrayHasKey('revisionClass', $config);
210210
static::assertSame(Revision::class, $config['revisionClass']);
211211

212-
static::assertArrayHasKey('versioned', $config);
213-
static::assertCount(2, $config['versioned']);
214-
static::assertContains('title', $config['versioned']);
215-
static::assertContains('embedded.subtitle', $config['versioned']);
212+
static::assertArrayHasKey('versionedFields', $config);
213+
static::assertCount(2, $config['versionedFields']);
214+
static::assertContains('title', $config['versionedFields']);
215+
static::assertContains('embedded.subtitle', $config['versionedFields']);
216216
}
217217
}

0 commit comments

Comments
 (0)