![]() 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/vendor/magento/module-deploy/Collector/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Deploy\Collector; use Magento\Deploy\Source\SourcePool; use Magento\Deploy\Package\Package; use Magento\Deploy\Package\PackageFactory; use Magento\Deploy\Package\PackageFile; use Magento\Framework\Module\Manager; use Magento\Framework\View\Asset\PreProcessor\FileNameResolver; /** * Deployable files collector * * Default implementation uses Source Pool object (@see SourcePool) */ class Collector implements CollectorInterface { /** * Source Pool object * * Provides the list of source objects * * @var SourcePool */ private $sourcePool; /** * Resolver for deployed static file name * * A given file could be an alternative source for the real static file which needs to be deployed. In such case * resolver provides the final static file name * * @var FileNameResolver */ private $fileNameResolver; /** * Factory class for Package object * * @see Package * @var PackageFactory */ private $packageFactory; /** @var \Magento\Framework\Module\Manager */ private $moduleManager; /** * Default values for package primary identifiers * * @var array */ private $packageDefaultValues = [ 'area' => Package::BASE_AREA, 'theme' => Package::BASE_THEME, 'locale' => Package::BASE_LOCALE ]; /** * Collector constructor * * @param SourcePool $sourcePool * @param FileNameResolver $fileNameResolver * @param PackageFactory $packageFactory * @param Manager|null $moduleManager */ public function __construct( SourcePool $sourcePool, FileNameResolver $fileNameResolver, PackageFactory $packageFactory, Manager $moduleManager = null ) { $this->sourcePool = $sourcePool; $this->fileNameResolver = $fileNameResolver; $this->packageFactory = $packageFactory; $this->moduleManager = $moduleManager ?: \Magento\Framework\App\ObjectManager::getInstance() ->get(\Magento\Framework\Module\Manager::class); } /** * @inheritdoc */ public function collect() { $packages = []; foreach ($this->sourcePool->getAll() as $source) { $files = $source->get(); foreach ($files as $file) { if ($file->getModule() && !$this->moduleManager->isEnabled($file->getModule())) { continue; } if (!$file->getFileName()) { continue; } $file->setDeployedFileName($this->fileNameResolver->resolve($file->getFileName())); $params = $this->getParams($file); $packagePath = "{$params['area']}/{$params['theme']}/{$params['locale']}"; if (!isset($packages[$packagePath])) { $packages[$packagePath] = $this->packageFactory->create($params); } if ($file->getFilePath()) { $file->setPackage($packages[$packagePath]); } } } return $packages; } /** * Retrieve package params * * @param PackageFile $file * @return array */ private function getParams(PackageFile $file) { $params = [ 'area' => $file->getArea(), 'theme' => $file->getTheme(), 'locale' => $file->getLocale(), 'module' => $file->getModule(), 'isVirtual' => (!$file->getLocale() || !$file->getTheme() || !$file->getArea()) ]; foreach ($this->packageDefaultValues as $name => $value) { if (!isset($params[$name])) { $params[$name] = $value; } } return $params; } }