![]() 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/cartforge.co/vendor/magento/framework/Reflection/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Reflection; use Magento\Framework\Api\AttributeTypeResolverInterface; use Magento\Framework\Api\ExtensionAttribute\Config; class AttributeTypeResolver implements AttributeTypeResolverInterface { /** * @var Config */ protected $config; /** * @var TypeProcessor */ protected $typeProcessor; /** * @param TypeProcessor $typeProcessor * @param Config $config */ public function __construct(TypeProcessor $typeProcessor, Config $config) { $this->config = $config; $this->typeProcessor = $typeProcessor; } /** * {@inheritdoc} */ public function resolveObjectType($attributeCode, $value, $context) { if (!is_object($value)) { throw new \InvalidArgumentException('Provided value is not object type'); } $data = $this->config->get(); $context = trim($context, '\\'); $config = isset($data[$context]) ? $data[$context] : []; $output = get_class($value); if (isset($config[$attributeCode])) { $type = $config[$attributeCode]['type']; $output = $this->typeProcessor->getArrayItemType($type); if (!(class_exists($output) || interface_exists($output))) { throw new \LogicException( sprintf( 'The "%s" class doesn\'t exist and the namespace must be specified. Verify and try again.', $type ) ); } } return $output; } }