Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Collector.php
Go to the documentation of this file.
1 <?php
7 
12 
18 class Collector implements CollectorInterface
19 {
27  private $sourcePool;
28 
37  private $fileNameResolver;
38 
45  private $packageFactory;
46 
52  private $packageDefaultValues = [
53  'area' => Package::BASE_AREA,
54  'theme' => Package::BASE_THEME,
55  'locale' => Package::BASE_LOCALE
56  ];
57 
65  public function __construct(
66  SourcePool $sourcePool,
67  FileNameResolver $fileNameResolver,
68  PackageFactory $packageFactory
69  ) {
70  $this->sourcePool = $sourcePool;
71  $this->fileNameResolver = $fileNameResolver;
72  $this->packageFactory = $packageFactory;
73  }
74 
78  public function collect()
79  {
80  $packages = [];
81  foreach ($this->sourcePool->getAll() as $source) {
82  $files = $source->get();
83  foreach ($files as $file) {
84  $file->setDeployedFileName($this->fileNameResolver->resolve($file->getFileName()));
85  $params = [
86  'area' => $file->getArea(),
87  'theme' => $file->getTheme(),
88  'locale' => $file->getLocale(),
89  'module' => $file->getModule(),
90  'isVirtual' => (!$file->getLocale() || !$file->getTheme() || !$file->getArea())
91  ];
92  foreach ($this->packageDefaultValues as $name => $value) {
93  if (!isset($params[$name])) {
94  $params[$name] = $value;
95  }
96  }
97  $packagePath = "{$params['area']}/{$params['theme']}/{$params['locale']}";
98  if (!isset($packages[$packagePath])) {
99  $packages[$packagePath] = $this->packageFactory->create($params);
100  }
101  if ($file->getFilePath()) {
102  $file->setPackage($packages[$packagePath]);
103  }
104  }
105  }
106  return $packages;
107  }
108 }
$source
Definition: source.php:23
__construct(SourcePool $sourcePool, FileNameResolver $fileNameResolver, PackageFactory $packageFactory)
Definition: Collector.php:65
$value
Definition: gender.phtml:16
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18
foreach($appDirs as $dir) $files
if(!isset($_GET['name'])) $name
Definition: log.php:14