Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
IndexNameBuilder.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
11 
18 {
24  private static $indexId = 'indexId';
25 
31  private static $dimensions = 'dimensions';
32 
38  private static $alias = 'alias';
39 
43  private $objectManager;
44 
48  private $dimensionFactory;
49 
53  private $aliasFactory;
54 
58  private $data = [];
59 
65  public function __construct(
66  ObjectManagerInterface $objectManager,
67  DimensionFactory $dimensionFactory,
68  AliasFactory $aliasFactory
69  ) {
70  $this->objectManager = $objectManager;
71  $this->dimensionFactory = $dimensionFactory;
72  $this->aliasFactory = $aliasFactory;
73  }
74 
79  public function setIndexId(string $indexId): self
80  {
81  $this->data[self::$indexId] = $indexId;
82  return $this;
83  }
84 
90  public function addDimension(string $name, string $value): self
91  {
92  $this->data[self::$dimensions][] = $this->dimensionFactory->create([
93  'name' => $name,
94  'value' => $value,
95  ]);
96  return $this;
97  }
98 
103  public function setAlias(string $alias): self
104  {
105  $this->data[self::$alias] = $this->aliasFactory->create(['value' => $alias]);
106  return $this;
107  }
108 
112  public function build(): IndexName
113  {
114  $indexName = $this->objectManager->create(IndexName::class, $this->data);
115  $this->data = [];
116  return $indexName;
117  }
118 }
$objectManager
Definition: bootstrap.php:17
__construct(ObjectManagerInterface $objectManager, DimensionFactory $dimensionFactory, AliasFactory $aliasFactory)
$value
Definition: gender.phtml:16
if(!trim($html)) $alias
Definition: details.phtml:20
if(!isset($_GET['name'])) $name
Definition: log.php:14