Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Loader.php
Go to the documentation of this file.
1 <?php
7 
11 use Magento\ConfigurableProduct\Api\Data\OptionValueInterfaceFactory;
13 
17 class Loader
18 {
22  private $optionValueFactory;
23 
27  private $extensionAttributesJoinProcessor;
28 
35  public function __construct(
36  OptionValueInterfaceFactory $optionValueFactory,
37  JoinProcessorInterface $extensionAttributesJoinProcessor
38  ) {
39  $this->optionValueFactory = $optionValueFactory;
40  $this->extensionAttributesJoinProcessor = $extensionAttributesJoinProcessor;
41  }
42 
47  public function load(ProductInterface $product)
48  {
49  $options = [];
51  $typeInstance = $product->getTypeInstance();
52  $attributeCollection = $typeInstance->getConfigurableAttributeCollection($product);
53  $this->extensionAttributesJoinProcessor->process($attributeCollection);
54  foreach ($attributeCollection as $attribute) {
55  $values = [];
56  $attributeOptions = $attribute->getOptions();
57  if (is_array($attributeOptions)) {
58  foreach ($attributeOptions as $option) {
60  $value = $this->optionValueFactory->create();
61  $value->setValueIndex($option['value_index']);
62  $values[] = $value;
63  }
64  }
65  $attribute->setValues($values);
66  $options[] = $attribute;
67  }
68 
69  return $options;
70  }
71 }
$values
Definition: options.phtml:88
$value
Definition: gender.phtml:16
__construct(OptionValueInterfaceFactory $optionValueFactory, JoinProcessorInterface $extensionAttributesJoinProcessor)
Definition: Loader.php:35