![]() 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/View/File/Collector/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Framework\View\File\Collector; use Magento\Framework\Component\ComponentRegistrar; use Magento\Framework\Component\ComponentRegistrarInterface; use Magento\Framework\Filesystem\Directory\ReadFactory; use Magento\Framework\View\Design\ThemeInterface; use Magento\Framework\View\File\CollectorInterface; use Magento\Framework\View\File\Factory as FileFactory; /** * Source of view files introduced by a theme */ class Theme implements CollectorInterface { /** * @var FileFactory */ private $fileFactory; /** * @var ReadFactory */ private $readDirFactory; /** * @var ComponentRegistrarInterface */ private $componentRegistrar; /** * @var string */ private $subDir; /** * Constructor * * @param FileFactory $fileFactory * @param ReadFactory $readDirFactory * @param ComponentRegistrarInterface $componentRegistrar * @param string $subDir */ public function __construct( FileFactory $fileFactory, ReadFactory $readDirFactory, ComponentRegistrarInterface $componentRegistrar, $subDir = '' ) { $this->fileFactory = $fileFactory; $this->readDirFactory = $readDirFactory; $this->componentRegistrar = $componentRegistrar; $this->subDir = $subDir ? $subDir . '/' : ''; } /** * Retrieve files * * @param ThemeInterface $theme * @param string $filePath * @return \Magento\Framework\View\File[] * @throws \UnexpectedValueException */ public function getFiles(ThemeInterface $theme, $filePath) { $themePath = $theme->getFullPath(); if (empty($themePath)) { return []; } $themeAbsolutePath = $this->componentRegistrar->getPath(ComponentRegistrar::THEME, $themePath); if (!$themeAbsolutePath) { return []; } $themeDir = $this->readDirFactory->create($themeAbsolutePath); $files = $themeDir->search($this->subDir . $filePath); $result = []; foreach ($files as $file) { $filename = $themeDir->getAbsolutePath($file); $result[] = $this->fileFactory->create($filename, null, $theme); } return $result; } }