Skip to content

Commit 01e092b

Browse files
authored
allow to accept values and handle null resource field transformers (#109)
1 parent a5dc587 commit 01e092b

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

UPGRADE.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
## 4.0.9
44
- [BUGFIX] fixed document deletion [see more](https://github.com/dachcom-digital/pimcore-dynamic-search/pull/108)
5+
- [IMPROVEMENT] allow `data_transformer` to accept `null` values and handle null resource field transformers
56
## 4.0.8
67
- [IMPROVEMENT] `dynamic_search.element_listener_options.allowed_document_types` added, read more about it [here](./docs/01_DispatchWorkflow.md#listener)
78
## 4.0.7

src/Document/Definition/DocumentDefinition.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ public function addOptionFieldDefinition(array $definition): static
6767
$resolver = new OptionsResolver();
6868
$resolver->setRequired(['name', 'data_transformer']);
6969
$resolver->setAllowedTypes('name', ['string']);
70-
$resolver->setAllowedTypes('data_transformer', ['array']);
70+
$resolver->setAllowedTypes('data_transformer', ['array', 'null']);
7171

7272
try {
7373
$options = $resolver->resolve($definition);
@@ -100,7 +100,7 @@ public function addSimpleDocumentFieldDefinition(array $definition): static
100100
$resolver->setRequired(['name', 'index_transformer', 'data_transformer']);
101101
$resolver->setAllowedTypes('name', ['string']);
102102
$resolver->setAllowedTypes('index_transformer', ['array']);
103-
$resolver->setAllowedTypes('data_transformer', ['array']);
103+
$resolver->setAllowedTypes('data_transformer', ['array', 'null']);
104104

105105
try {
106106
$options = $resolver->resolve($definition);

src/Generator/IndexDocumentGenerator.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,9 +180,15 @@ protected function processDocumentIndexTransformerField(
180180
/**
181181
* @throws \Exception
182182
*/
183-
protected function dispatchResourceFieldTransformer(array $options, string $dispatchTransformerName, ResourceContainerInterface $resourceContainer): mixed
183+
protected function dispatchResourceFieldTransformer(?array $options, string $dispatchTransformerName, ResourceContainerInterface $resourceContainer): mixed
184184
{
185185
$fieldTransformerName = $options['type'];
186+
187+
// it's not a source field
188+
if ($fieldTransformerName === null) {
189+
return null;
190+
}
191+
186192
$fieldTransformerConfiguration = $options['configuration'];
187193

188194
$fieldTransformer = $this->transformerManager->getResourceFieldTransformer($dispatchTransformerName, $fieldTransformerName, $fieldTransformerConfiguration);

0 commit comments

Comments
 (0)