![]() 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/framework/Css/PreProcessor/File/Collector/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\Css\PreProcessor\File\Collector; use Magento\Framework\App\Filesystem\DirectoryList; use Magento\Framework\Component\ComponentRegistrar; use Magento\Framework\Component\ComponentRegistrarInterface; use Magento\Framework\Filesystem; use Magento\Framework\Filesystem\Directory\ReadInterface; use Magento\Framework\View\Design\ThemeInterface; use Magento\Framework\View\File\CollectorInterface; /** * Source of base layout files introduced by modules */ class Library implements CollectorInterface { /** * @var \Magento\Framework\View\File\Factory */ protected $fileFactory; /** * @var ReadInterface */ protected $libraryDirectory; /** * @var \Magento\Framework\View\File\FileList\Factory */ protected $fileListFactory; /** * @var \Magento\Framework\Filesystem\Directory\ReadFactory */ private $readFactory; /** * Component registry * * @var ComponentRegistrarInterface */ private $componentRegistrar; /** * @param \Magento\Framework\View\File\FileList\Factory $fileListFactory * @param Filesystem $filesystem * @param \Magento\Framework\View\File\Factory $fileFactory * @param \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory * @param ComponentRegistrarInterface $componentRegistrar */ public function __construct( \Magento\Framework\View\File\FileList\Factory $fileListFactory, Filesystem $filesystem, \Magento\Framework\View\File\Factory $fileFactory, \Magento\Framework\Filesystem\Directory\ReadFactory $readFactory, ComponentRegistrarInterface $componentRegistrar ) { $this->fileListFactory = $fileListFactory; $this->libraryDirectory = $filesystem->getDirectoryRead( DirectoryList::LIB_WEB ); $this->fileFactory = $fileFactory; $this->readFactory = $readFactory; $this->componentRegistrar = $componentRegistrar; } /** * Retrieve files * * @param ThemeInterface $theme * @param string $filePath * @return \Magento\Framework\View\File[] */ public function getFiles(ThemeInterface $theme, $filePath) { $list = $this->fileListFactory->create(\Magento\Framework\Css\PreProcessor\File\FileList\Collator::class); $files = $this->libraryDirectory->search($filePath); $list->add($this->createFiles($this->libraryDirectory, $theme, $files)); foreach ($theme->getInheritedThemes() as $currentTheme) { $themeFullPath = $currentTheme->getFullPath(); $path = $this->componentRegistrar->getPath( ComponentRegistrar::THEME, $themeFullPath ); if (empty($path)) { continue; } $directoryRead = $this->readFactory->create($path); $foundFiles = $directoryRead->search("web/{$filePath}"); $list->replace($this->createFiles($directoryRead, $theme, $foundFiles)); } return $list->getAll(); } /** * @param ReadInterface $reader * @param ThemeInterface $theme * @param array $files * @return array */ protected function createFiles(ReadInterface $reader, ThemeInterface $theme, $files) { $result = []; foreach ($files as $file) { $filename = $reader->getAbsolutePath($file); $result[] = $this->fileFactory->create($filename, false, $theme); } return $result; } }