![]() 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/framework/Data/Form/Element/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\Framework\Data\Form\Element; use Magento\Framework\ObjectManagerInterface; /** * Form element Factory * * @api */ class Factory { /** * @var ObjectManagerInterface */ protected $_objectManager; /** * Standard library element types * * @var string[] */ protected $_standardTypes = [ 'button', 'checkbox', 'checkboxes', 'column', 'date', 'editablemultiselect', 'editor', 'fieldset', 'file', 'gallery', 'hidden', 'image', 'imagefile', 'label', 'link', 'multiline', 'multiselect', 'note', 'obscure', 'password', 'radio', 'radios', 'reset', 'select', 'submit', 'text', 'textarea', 'time', ]; /** * @param ObjectManagerInterface $objectManager */ public function __construct(ObjectManagerInterface $objectManager) { $this->_objectManager = $objectManager; } /** * Factory method * * @param string $elementType Standard element type or Custom element class * @param array $config * @return AbstractElement * @throws \InvalidArgumentException */ public function create($elementType, array $config = []) { if (in_array($elementType, $this->_standardTypes)) { $className = 'Magento\Framework\Data\Form\Element\\' . ucfirst($elementType); } else { $className = $elementType; } $element = $this->_objectManager->create($className, $config); if (!$element instanceof AbstractElement) { throw new \InvalidArgumentException( $className . ' doesn\'t extend \Magento\Framework\Data\Form\Element\AbstractElement' ); } return $element; } }