Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Builder.php
Go to the documentation of this file.
1 <?php
7 
12 
16 class Builder extends AbstractBuilder
17 {
23  protected $circularBuilder;
24 
32  public function __construct(
36  ) {
37  parent::__construct($dependenciesParser, $reportWriter);
38 
39  $this->circularBuilder = $circularBuilder;
40  }
41 
48  protected function buildData($modulesData)
49  {
50  $modules = [];
51  foreach ($this->buildCircularDependencies($modulesData) as $moduleName => $modulesChains) {
52  $chains = [];
53  foreach ($modulesChains as $modulesChain) {
54  $chains[] = new Data\Chain($modulesChain);
55  }
56  $modules[] = new Data\Module($moduleName, $chains);
57  }
58  return new Data\Config($modules);
59  }
60 
67  protected function buildCircularDependencies($modulesData)
68  {
69  $dependencies = [];
70  foreach ($modulesData as $moduleData) {
71  foreach ($moduleData['dependencies'] as $dependencyData) {
72  $dependencies[$moduleData['name']][] = $dependencyData['module'];
73  }
74  }
75  return $this->circularBuilder->buildCircularDependencies($dependencies);
76  }
77 }
__construct(ParserInterface $dependenciesParser, WriterInterface $reportWriter, Circular $circularBuilder)
Definition: Builder.php:32