Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions
TypeResolver Class Reference

Public Member Functions

 __construct (MetadataPool $metadataPool)
 
 resolve ($type)
 

Detailed Description

Class TypeResolver

Definition at line 11 of file TypeResolver.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( MetadataPool  $metadataPool)

TypeResolver constructor.

Parameters
MetadataPool$metadataPool

Definition at line 31 of file TypeResolver.php.

32  {
33  $this->metadataPool = $metadataPool;
34  }

Member Function Documentation

◆ resolve()

resolve (   $type)
Parameters
object$type
Returns
string
Exceptions

Definition at line 41 of file TypeResolver.php.

42  {
43  // @todo remove after MAGETWO-52608 resolved
44  $className = get_class($type);
45  if (isset($this->typeMapping[$className])) {
46  return $this->typeMapping[$className];
47  }
48 
49  $reflectionClass = new \ReflectionClass($type);
50  $interfaceNames = $reflectionClass->getInterfaceNames();
51  $dataInterfaces = [];
52  foreach ($interfaceNames as $interfaceName) {
53  if (strpos($interfaceName, '\Api\Data\\') !== false) {
54  $dataInterfaces[] = $interfaceName;
55  }
56  }
57 
58  if (count($dataInterfaces) == 0) {
59  return $className;
60  }
61 
62  foreach ($dataInterfaces as $dataInterface) {
63  if ($this->metadataPool->hasConfiguration($dataInterface)) {
64  $this->typeMapping[$className] = $dataInterface;
65  }
66  }
67  if (empty($this->typeMapping[$className])) {
68  $this->typeMapping[$className] = reset($dataInterfaces);
69  }
70  return $this->typeMapping[$className];
71  }
$type
Definition: item.phtml:13
$reflectionClass
Definition: categories.php:25
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31

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