6 declare(strict_types=1);
15 as FieldTypeConverterInterface;
17 as IndexTypeConverterInterface;
21 as FieldIndexResolver;
36 private $fieldTypeConverter;
41 private $indexTypeConverter;
46 private $attributeAdapterProvider;
51 private $fieldTypeResolver;
56 private $fieldIndexResolver;
68 FieldTypeConverterInterface $fieldTypeConverter,
69 IndexTypeConverterInterface $indexTypeConverter,
70 FieldTypeResolver $fieldTypeResolver,
71 FieldIndexResolver $fieldIndexResolver,
75 $this->fieldTypeConverter = $fieldTypeConverter;
76 $this->indexTypeConverter = $indexTypeConverter;
77 $this->fieldTypeResolver = $fieldTypeResolver;
78 $this->fieldIndexResolver = $fieldIndexResolver;
79 $this->attributeAdapterProvider = $attributeAdapterProvider;
88 public function getFields(array $context = []): array
94 $attributeAdapter = $this->attributeAdapterProvider->getByAttributeCode(
$attribute->getAttributeCode());
95 $code = $attributeAdapter->getAttributeCode();
97 $allAttributes[
$code] = [
98 'type' => $this->fieldTypeResolver->getFieldType($attributeAdapter),
101 $index = $this->fieldIndexResolver->getFieldIndex($attributeAdapter);
106 if ($attributeAdapter->isComplexType()) {
107 $allAttributes[
$code .
'_value'] = [
108 'type' => $this->fieldTypeConverter->convert(FieldTypeConverterInterface::INTERNAL_DATA_TYPE_STRING)
113 $allAttributes[
'store_id'] = [
114 'type' => $this->fieldTypeConverter->convert(FieldTypeConverterInterface::INTERNAL_DATA_TYPE_STRING),
115 'index' => $this->indexTypeConverter->convert(IndexTypeConverterInterface::INTERNAL_NO_INDEX_VALUE),
118 return $allAttributes;
__construct(Config $eavConfig, FieldTypeConverterInterface $fieldTypeConverter, IndexTypeConverterInterface $indexTypeConverter, FieldTypeResolver $fieldTypeResolver, FieldIndexResolver $fieldIndexResolver, AttributeProvider $attributeAdapterProvider)
getFields(array $context=[])