Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
AttributeProvider.php
Go to the documentation of this file.
1 <?php
8 
11 
16 {
20  protected $providers;
21 
25  protected $metadataPool;
26 
30  protected $objectManager;
31 
35  protected $registry;
36 
42  public function __construct(
45  $providers = []
46  ) {
47  $this->metadataPool = $metadataPool;
48  $this->objectManager = $objectManager;
49  $this->providers = $providers;
50  }
51 
59  public function getAttributes($entityType)
60  {
61  if (!isset($this->registry[$entityType])) {
62  $metadata = $this->metadataPool->getMetadata($entityType);
63  $this->registry[$entityType] = $metadata->getEntityConnection()->describeTable($metadata->getEntityTable());
64  if ($metadata->getLinkField() != $metadata->getIdentifierField()) {
65  unset($this->registry[$entityType][$metadata->getLinkField()]);
66  }
67  $providers = [];
68  if (isset($this->providers[$entityType])) {
69  $providers = $this->providers[$entityType];
70  } elseif (isset($this->providers['default'])) {
71  $providers = $this->providers['default'];
72  }
73  foreach ($providers as $providerClass) {
74  $provider = $this->objectManager->get($providerClass);
75  $this->registry[$entityType] = array_merge(
76  $this->registry[$entityType],
77  $provider->getAttributes($entityType)
78  );
79  }
80  }
81  return $this->registry[$entityType];
82  }
83 }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
__construct(MetadataPool $metadataPool, ObjectManager $objectManager, $providers=[])