Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
InterfaceFactory.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 
18 {
22  private $objectManager;
23 
27  private $argumentFactory;
31  private $fieldFactory;
32 
38  public function __construct(
39  ObjectManagerInterface $objectManager,
40  ArgumentFactory $argumentFactory,
41  FieldFactory $fieldFactory
42  ) {
43  $this->objectManager = $objectManager;
44  $this->argumentFactory = $argumentFactory;
45  $this->fieldFactory = $fieldFactory;
46  }
47 
52  {
53  $fields = [];
54  foreach ($data['fields'] as $field) {
55  $arguments = [];
56  foreach ($field['arguments'] as $argument) {
57  $arguments[$argument['name']] = $this->argumentFactory->createFromConfigData($argument);
58  }
59  $fields[$field['name']] = $this->fieldFactory->createFromConfigData($field, $arguments);
60  }
61  return $this->create($data, $fields);
62  }
63 
75  public function create(
76  array $interfaceData,
77  array $fields
78  ) : InterfaceType {
79  return $this->objectManager->create(
80  InterfaceType::class,
81  [
82  'name' => $interfaceData['name'],
83  'typeResolver' => $interfaceData['typeResolver'],
84  'fields' => $fields,
85  'description' => isset($interfaceData['description']) ? $interfaceData['description'] : ''
86  ]
87  );
88  }
89 }
$objectManager
Definition: bootstrap.php:17
$fields
Definition: details.phtml:14
__construct(ObjectManagerInterface $objectManager, ArgumentFactory $argumentFactory, FieldFactory $fieldFactory)
$arguments