Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AttributeMetadataConverter.php
Go to the documentation of this file.
1 <?php
6 namespace Magento\Customer\Model;
7 
8 use Magento\Customer\Api\Data\OptionInterfaceFactory;
9 use Magento\Customer\Api\Data\ValidationRuleInterfaceFactory;
10 use Magento\Customer\Api\Data\AttributeMetadataInterfaceFactory;
12 
17 {
21  private $optionFactory;
22 
26  private $validationRuleFactory;
27 
31  private $attributeMetadataFactory;
32 
36  protected $dataObjectHelper;
37 
46  public function __construct(
47  OptionInterfaceFactory $optionFactory,
48  ValidationRuleInterfaceFactory $validationRuleFactory,
49  AttributeMetadataInterfaceFactory $attributeMetadataFactory,
50  \Magento\Framework\Api\DataObjectHelper $dataObjectHelper
51  ) {
52  $this->optionFactory = $optionFactory;
53  $this->validationRuleFactory = $validationRuleFactory;
54  $this->attributeMetadataFactory = $attributeMetadataFactory;
55  $this->dataObjectHelper = $dataObjectHelper;
56  }
57 
65  {
66  $options = [];
67  if ($attribute->usesSource()) {
68  foreach ($attribute->getSource()->getAllOptions() as $option) {
69  $optionDataObject = $this->optionFactory->create();
70  if (!is_array($option['value'])) {
71  $optionDataObject->setValue($option['value']);
72  } else {
73  $optionArray = [];
74  foreach ($option['value'] as $optionArrayValues) {
75  $optionObject = $this->optionFactory->create();
76  $this->dataObjectHelper->populateWithArray(
77  $optionObject,
78  $optionArrayValues,
79  \Magento\Customer\Api\Data\OptionInterface::class
80  );
81  $optionArray[] = $optionObject;
82  }
83  $optionDataObject->setOptions($optionArray);
84  }
85  $optionDataObject->setLabel($option['label']);
86  $options[] = $optionDataObject;
87  }
88  }
89  $validationRules = [];
90  foreach ((array)$attribute->getValidateRules() as $name => $value) {
91  $validationRule = $this->validationRuleFactory->create()
92  ->setName($name)
93  ->setValue($value);
94  $validationRules[] = $validationRule;
95  }
96 
97  $attributeMetaData = $this->attributeMetadataFactory->create();
98 
99  if ($attributeMetaData instanceof AttributeDefaultValueInterface) {
100  $attributeMetaData->setDefaultValue($attribute->getDefaultValue());
101  }
102 
103  return $attributeMetaData->setAttributeCode($attribute->getAttributeCode())
104  ->setFrontendInput($attribute->getFrontendInput())
105  ->setInputFilter((string)$attribute->getInputFilter())
106  ->setStoreLabel($attribute->getStoreLabel())
107  ->setValidationRules($validationRules)
108  ->setIsVisible((boolean)$attribute->getIsVisible())
109  ->setIsRequired((boolean)$attribute->getIsRequired())
110  ->setMultilineCount((int)$attribute->getMultilineCount())
111  ->setDataModel((string)$attribute->getDataModel())
112  ->setOptions($options)
113  ->setFrontendClass($attribute->getFrontend()->getClass())
114  ->setFrontendLabel($attribute->getFrontendLabel())
115  ->setNote((string)$attribute->getNote())
116  ->setIsSystem((boolean)$attribute->getIsSystem())
117  ->setIsUserDefined((boolean)$attribute->getIsUserDefined())
118  ->setBackendType($attribute->getBackendType())
119  ->setSortOrder((int)$attribute->getSortOrder())
120  ->setIsUsedInGrid($attribute->getIsUsedInGrid())
121  ->setIsVisibleInGrid($attribute->getIsVisibleInGrid())
122  ->setIsFilterableInGrid($attribute->getIsFilterableInGrid())
123  ->setIsSearchableInGrid($attribute->getIsSearchableInGrid());
124  }
125 }
__construct(OptionInterfaceFactory $optionFactory, ValidationRuleInterfaceFactory $validationRuleFactory, AttributeMetadataInterfaceFactory $attributeMetadataFactory, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper)
$value
Definition: gender.phtml:16
if(!isset($_GET['name'])) $name
Definition: log.php:14