123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Eav\Model;
- use Magento\Eav\Api\AttributeSetManagementInterface;
- use Magento\Eav\Api\AttributeSetRepositoryInterface;
- use Magento\Eav\Api\Data\AttributeSetInterface;
- use Magento\Eav\Model\Config as EavConfig;
- use Magento\Framework\Exception\InputException;
- class AttributeSetManagement implements AttributeSetManagementInterface
- {
- /**
- * @var EavConfig
- */
- private $eavConfig;
- /**
- * @var AttributeSetRepositoryInterface
- */
- private $repository;
- /**
- * @param Config $eavConfig
- * @param AttributeSetRepositoryInterface $repository
- * @codeCoverageIgnore
- */
- public function __construct(
- EavConfig $eavConfig,
- AttributeSetRepositoryInterface $repository
- ) {
- $this->eavConfig = $eavConfig;
- $this->repository = $repository;
- }
- /**
- * {@inheritdoc}
- */
- public function create($entityTypeCode, AttributeSetInterface $attributeSet, $skeletonId)
- {
- /** @var \Magento\Eav\Model\Entity\Attribute\Set $attributeSet */
- if ($attributeSet->getId() !== null) {
- throw InputException::invalidFieldValue('id', $attributeSet->getId());
- }
- if ($skeletonId == 0) {
- throw InputException::invalidFieldValue('skeletonId', $skeletonId);
- }
- // Make sure that skeleton attribute set is valid (try to load it)
- $this->repository->get($skeletonId);
- try {
- $attributeSet->setEntityTypeId($this->eavConfig->getEntityType($entityTypeCode)->getId());
- $attributeSet->validate();
- } catch (\Exception $exception) {
- throw new InputException(__($exception->getMessage()));
- }
- $this->repository->save($attributeSet);
- $attributeSet->initFromSkeleton($skeletonId);
- return $this->repository->save($attributeSet);
- }
- }
|