1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Eav\Model;
- use Magento\Framework\Model\EntitySnapshot\AttributeProviderInterface;
- use Magento\Framework\EntityManager\MetadataPool;
- use Magento\Eav\Api\AttributeRepositoryInterface;
- use Magento\Framework\Api\SearchCriteriaBuilder;
- /**
- * Class EntitySnapshot
- */
- class AttributeProvider implements AttributeProviderInterface
- {
- /**
- * @var MetadataPool
- */
- protected $metadataPool;
- /**
- * @var AttributeRepositoryInterface
- */
- protected $attributeRepository;
- /**
- * @var SearchCriteriaBuilder
- */
- protected $searchCriteriaBuilder;
- /**
- * AttributeProvider constructor.
- *
- * @param MetadataPool $metadataPool
- * @param AttributeRepositoryInterface $attributeRepository
- * @param SearchCriteriaBuilder $searchCriteriaBuilder
- */
- public function __construct(
- MetadataPool $metadataPool,
- AttributeRepositoryInterface $attributeRepository,
- SearchCriteriaBuilder $searchCriteriaBuilder
- ) {
- $this->metadataPool = $metadataPool;
- $this->attributeRepository = $attributeRepository;
- $this->searchCriteriaBuilder = $searchCriteriaBuilder;
- }
- /**
- * Returns array of fields
- *
- * @param string $entityType
- * @return array
- * @throws \Exception
- */
- public function getAttributes($entityType)
- {
- $metadata = $this->metadataPool->getMetadata($entityType);
- $searchResult = $this->attributeRepository->getList(
- $metadata->getEavEntityType(),
- $this->searchCriteriaBuilder->addFilter('attribute_set_id', null, 'neq')->create()
- );
- $attributes = [];
- foreach ($searchResult->getItems() as $attribute) {
- $attributes[] = $attribute->getAttributeCode();
- }
- return $attributes;
- }
- }
|