![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-eav/Model/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Eav\Model; /** * EAV Entity Attribute Data Factory * * @author Magento Core Team <[email protected]> */ class AttributeDataFactory { const OUTPUT_FORMAT_JSON = 'json'; const OUTPUT_FORMAT_TEXT = 'text'; const OUTPUT_FORMAT_HTML = 'html'; const OUTPUT_FORMAT_PDF = 'pdf'; const OUTPUT_FORMAT_ONELINE = 'oneline'; const OUTPUT_FORMAT_ARRAY = 'array'; // available only for multiply attributes // available only for multiply attributes protected $_dataModels = []; /** * @var \Magento\Framework\ObjectManagerInterface */ protected $_objectManager; /** * @var \Magento\Framework\Stdlib\StringUtils */ protected $string; /** * @param \Magento\Framework\ObjectManagerInterface $objectManager * @param \Magento\Framework\Stdlib\StringUtils $string * @codeCoverageIgnore */ public function __construct( \Magento\Framework\ObjectManagerInterface $objectManager, \Magento\Framework\Stdlib\StringUtils $string ) { $this->_objectManager = $objectManager; $this->string = $string; } /** * Return attribute data model by attribute * Set entity to data model (need for work) * * @param \Magento\Eav\Model\Attribute $attribute * @param \Magento\Framework\Model\AbstractModel $entity * @return \Magento\Eav\Model\Attribute\Data\AbstractData */ public function create(\Magento\Eav\Model\Attribute $attribute, \Magento\Framework\Model\AbstractModel $entity) { /* @var $dataModel \Magento\Eav\Model\Attribute\Data\AbstractData */ $dataModelClass = $attribute->getDataModel(); if (!empty($dataModelClass)) { if (empty($this->_dataModels[$dataModelClass])) { $dataModel = $this->_objectManager->create($dataModelClass); $this->_dataModels[$dataModelClass] = $dataModel; } else { $dataModel = $this->_dataModels[$dataModelClass]; } } else { if (empty($this->_dataModels[$attribute->getFrontendInput()])) { $dataModelClass = sprintf( 'Magento\Eav\Model\Attribute\Data\%s', $this->string->upperCaseWords($attribute->getFrontendInput()) ); $dataModel = $this->_objectManager->create($dataModelClass); $this->_dataModels[$attribute->getFrontendInput()] = $dataModel; } else { $dataModel = $this->_dataModels[$attribute->getFrontendInput()]; } } $dataModel->setAttribute($attribute); $dataModel->setEntity($entity); return $dataModel; } }