Skip to content

Commit

Permalink
Merge branch '3.2' into 4.0
Browse files Browse the repository at this point in the history
dpfaffenbauer committed Dec 22, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 974ea34 + 5428a25 commit 2e9bab9
Showing 5 changed files with 16 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -49,6 +49,7 @@ public function getConfigTreeBuilder(): TreeBuilder
->children()
->scalarNode('after')->end()
->scalarNode('before')->end()
->booleanNode('replace')->defaultTrue()->end()
->variableNode('definition')->end()
->end()
->end()
Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ public function load(array $configs, ContainerBuilder $container): void
$field['after'] ?? null,
$field['before'] ?? null,
$field['definition'] ?? null,
$field['replace'] ?? true,
]),
);

6 changes: 6 additions & 0 deletions src/CoreShop/Bundle/ClassDefinitionPatchBundle/PatchField.php
Original file line number Diff line number Diff line change
@@ -25,6 +25,7 @@ public function __construct(
protected ?string $after,
protected ?string $before,
protected ?array $definition,
protected bool $replace = true,
) {
if (null === $this->definition) {
$this->definition = [];
@@ -52,4 +53,9 @@ public function getDefinition(): ?array
{
return $this->definition;
}

public function isReplace(): bool
{
return $this->replace;
}
}
Original file line number Diff line number Diff line change
@@ -27,4 +27,6 @@ public function getAfter(): ?string;
public function getBefore(): ?string;

public function getDefinition(): ?array;

public function isReplace(): bool;
}
7 changes: 6 additions & 1 deletion src/CoreShop/Bundle/ClassDefinitionPatchBundle/Patcher.php
Original file line number Diff line number Diff line change
@@ -118,7 +118,12 @@ protected function patchWithClassUpdate(PatchInterface $patch): ClassUpdate

foreach ($patch->getFields() as $field) {
if ($classUpdater->hasField($field->getFieldName())) {
$classUpdater->replaceField($field->getFieldName(), $field->getDefinition());
if ($field->isReplace()) {
$classUpdater->replaceField($field->getFieldName(), $field->getDefinition());
}
else {
$classUpdater->replaceFieldProperties($field->getFieldName(), $field->getDefinition());
}
} elseif ($field->getBefore()) {
$classUpdater->insertFieldBefore($field->getBefore(), $field->getDefinition());
} elseif ($field->getAfter()) {

0 comments on commit 2e9bab9

Please sign in to comment.