![]() 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/amasty/feed/Model/GoogleWizard/ |
<?php /** * @author Amasty Team * @copyright Copyright (c) Amasty (https://www.amasty.com) * @package Product Feed for Magento 2 */ namespace Amasty\Feed\Model\GoogleWizard; class ElementFactory { /** * Object Manager instance * * @var \Magento\Framework\ObjectManagerInterface */ protected $_objectManager = null; /** * Instance name to create * * @var string */ protected $_instanceName = null; /** * Factory constructor * * @param \Magento\Framework\ObjectManagerInterface $objectManager * @param string $instanceName */ public function __construct( \Magento\Framework\ObjectManagerInterface $objectManager, $instanceName = \Amasty\Feed\Model\GoogleWizard\Element::class ) { $this->_objectManager = $objectManager; $this->_instanceName = $instanceName; } /** * Create class instance with specified parameters * * @param array $data * @return \Amasty\Feed\Model\GoogleWizard\Element */ public function create(array $data = []) { $instanceName = $this->_instanceName; if (isset($data['elementType'])) { $instanceName = $this->prepareInstanceName($data['elementType']); } return $this->_objectManager->create($instanceName, $data); } protected function prepareInstanceName($instanceName) { $partsBaseInstanceName = explode('\\', $this->_instanceName); array_pop($partsBaseInstanceName); if (strstr($instanceName, '_')) { $partsInstanceName = explode('_', $instanceName); array_walk($partsInstanceName, function (&$value) { $value = ucfirst($value); }); $instanceName = implode('\\', $partsInstanceName); } $retInstanceName = implode('\\', $partsBaseInstanceName); $retInstanceName .= '\\' . ucfirst($instanceName); return $retInstanceName; } }