Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AttributeMetadataHydrator.php
Go to the documentation of this file.
1 <?php
7 
9 use Magento\Customer\Api\Data\AttributeMetadataInterfaceFactory;
11 use Magento\Customer\Api\Data\OptionInterfaceFactory;
13 use Magento\Customer\Api\Data\ValidationRuleInterfaceFactory;
16 
21 {
25  private $attributeMetadataFactory;
26 
30  private $optionFactory;
31 
35  private $validationRuleFactory;
36 
40  private $dataObjectProcessor;
41 
50  public function __construct(
51  AttributeMetadataInterfaceFactory $attributeMetadataFactory,
52  OptionInterfaceFactory $optionFactory,
53  ValidationRuleInterfaceFactory $validationRuleFactory,
54  DataObjectProcessor $dataObjectProcessor
55  ) {
56  $this->attributeMetadataFactory = $attributeMetadataFactory;
57  $this->optionFactory = $optionFactory;
58  $this->validationRuleFactory = $validationRuleFactory;
59  $this->dataObjectProcessor = $dataObjectProcessor;
60  }
61 
68  public function hydrate(array $data)
69  {
71  $data[AttributeMetadataInterface::OPTIONS] = $this->createOptions(
73  );
74  }
76  $data[AttributeMetadataInterface::VALIDATION_RULES] = $this->createValidationRules(
78  );
79  }
80  return $this->attributeMetadataFactory->create(['data' => $data]);
81  }
82 
89  private function createOptions(array $data)
90  {
91  foreach ($data as $key => $optionData) {
94  }
95  $data[$key] = $this->optionFactory->create(['data' => $optionData]);
96  }
97  return $data;
98  }
99 
106  private function createValidationRules(array $data)
107  {
108  foreach ($data as $key => $validationRuleData) {
109  $data[$key] = $this->validationRuleFactory->create(['data' => $validationRuleData]);
110  }
111  return $data;
112  }
113 
120  public function extract($attributeMetadata)
121  {
122  return $this->dataObjectProcessor->buildOutputDataArray(
123  $attributeMetadata,
124  AttributeMetadata::class
125  );
126  }
127 }
$optionData
__construct(AttributeMetadataInterfaceFactory $attributeMetadataFactory, OptionInterfaceFactory $optionFactory, ValidationRuleInterfaceFactory $validationRuleFactory, DataObjectProcessor $dataObjectProcessor)