![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/setup/src/Magento/Setup/Fixtures/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Setup\Fixtures; /** * Fixture for Attribute Sets and Attributes based on the configuration * * Support the following format: * <!-- Number of product attribute sets --> * <product_attribute_sets>{int}</product_attribute_sets> * * <!-- Number of attributes per set --> * <product_attribute_sets_attributes>{int}</product_attribute_sets_attributes> * * <!-- Number of values per attribute --> * <product_attribute_sets_attributes_values>{int}</product_attribute_sets_attributes_values> * * @see setup/performance-toolkit/profiles/ce/small.xml */ class AttributeSetsFixture extends Fixture { /** Name of generated attribute set */ const PRODUCT_SET_NAME = 'Product Set '; /** * @var int */ protected $priority = 25; /** * @var AttributeSet\AttributeSetFixture */ private $attributeSetsFixture; /** * @var AttributeSet\Pattern */ private $pattern; /** * @param FixtureModel $fixtureModel * @param AttributeSet\AttributeSetFixture $attributeSetsFixture * @param AttributeSet\Pattern $pattern */ public function __construct( FixtureModel $fixtureModel, AttributeSet\AttributeSetFixture $attributeSetsFixture, \Magento\Setup\Fixtures\AttributeSet\Pattern $pattern ) { parent::__construct($fixtureModel); $this->attributeSetsFixture = $attributeSetsFixture; $this->pattern = $pattern; } /** * {@inheritdoc} */ public function execute() { $attributeSets = $this->fixtureModel->getValue('attribute_sets', null); if ($attributeSets !== null) { foreach ($attributeSets['attribute_set'] as $attributeSetData) { $this->attributeSetsFixture->createAttributeSet($attributeSetData); } } $attributeSetsCount = $this->fixtureModel->getValue('product_attribute_sets', null); if ($attributeSetsCount !== null) { for ($index = 1; $index <= $attributeSetsCount; $index++) { $this->attributeSetsFixture->createAttributeSet( $this->pattern->generateAttributeSet( self::PRODUCT_SET_NAME . $index, $this->fixtureModel->getValue('product_attribute_sets_attributes', 3), $this->fixtureModel->getValue('product_attribute_sets_attributes_values', 3), function ($attributeIndex, $attribute) use ($index) { return array_replace_recursive( $attribute, [ 'attribute_code' => "attribute_set{$index}_" . $attributeIndex, ] ); } ) ); } } } /** * {@inheritdoc} */ public function getActionTitle() { return 'Generating attribute sets'; } /** * {@inheritdoc} */ public function introduceParamLabels() { return [ 'attribute_sets' => 'Attribute Sets (Default)', 'product_attribute_sets' => 'Attribute Sets (Extra)' ]; } }