Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Attributes
AttributeMetadataConverter Class Reference

Public Member Functions

 __construct (OptionInterfaceFactory $optionFactory, ValidationRuleInterfaceFactory $validationRuleFactory, AttributeMetadataInterfaceFactory $attributeMetadataFactory, \Magento\Framework\Api\DataObjectHelper $dataObjectHelper)
 
 createMetadataAttribute ($attribute)
 

Protected Attributes

 $dataObjectHelper
 

Detailed Description

Converter for AttributeMetadata

Definition at line 16 of file AttributeMetadataConverter.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( OptionInterfaceFactory  $optionFactory,
ValidationRuleInterfaceFactory  $validationRuleFactory,
AttributeMetadataInterfaceFactory  $attributeMetadataFactory,
\Magento\Framework\Api\DataObjectHelper  $dataObjectHelper 
)

Initialize the Converter

Parameters
OptionInterfaceFactory$optionFactory
ValidationRuleInterfaceFactory$validationRuleFactory
AttributeMetadataInterfaceFactory$attributeMetadataFactory
\Magento\Framework\Api\DataObjectHelper$dataObjectHelper

Definition at line 46 of file AttributeMetadataConverter.php.

51  {
52  $this->optionFactory = $optionFactory;
53  $this->validationRuleFactory = $validationRuleFactory;
54  $this->attributeMetadataFactory = $attributeMetadataFactory;
55  $this->dataObjectHelper = $dataObjectHelper;
56  }

Member Function Documentation

◆ createMetadataAttribute()

createMetadataAttribute (   $attribute)

Create AttributeMetadata Data object from the Attribute Model

Parameters
\Magento\Customer\Model\Attribute$attribute
Returns
\Magento\Customer\Api\Data\AttributeMetadataInterface

Definition at line 64 of file AttributeMetadataConverter.php.

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  }
$value
Definition: gender.phtml:16
if(!isset($_GET['name'])) $name
Definition: log.php:14

Field Documentation

◆ $dataObjectHelper

$dataObjectHelper
protected

Definition at line 36 of file AttributeMetadataConverter.php.


The documentation for this class was generated from the following file: