HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/magento.bikenow.co/vendor/magento/framework/Component/DirSearch.php
<?php
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
namespace Magento\Framework\Component;

use Magento\Framework\Filesystem;

/**
 * Class for searching files across all locations of certain component type
 */
class DirSearch
{
    /**
     * Component registrar
     *
     * @var ComponentRegistrarInterface
     */
    private $registrar;

    /**
     * Read dir factory
     *
     * @var Filesystem\Directory\ReadFactory
     */
    private $readFactory;

    /**
     * Constructor
     *
     * @param ComponentRegistrarInterface $registrar
     * @param Filesystem\Directory\ReadFactory $readFactory
     */
    public function __construct(ComponentRegistrarInterface $registrar, Filesystem\Directory\ReadFactory $readFactory)
    {
        $this->registrar = $registrar;
        $this->readFactory = $readFactory;
    }

    /**
     * Search for files in each component by pattern, returns absolute paths
     *
     * @param string $componentType
     * @param string $pattern
     * @return array
     */
    public function collectFiles($componentType, $pattern)
    {
        return $this->collect($componentType, $pattern, false);
    }

    /**
     * Search for files in each component by pattern, returns file objects with absolute file paths
     *
     * @param string $componentType
     * @param string $pattern
     * @return ComponentFile[]
     */
    public function collectFilesWithContext($componentType, $pattern)
    {
        return $this->collect($componentType, $pattern, true);
    }

    /**
     * Collect files in components
     * If $withContext is true, returns array of file objects with component context
     *
     * @param string $componentType
     * @param string $pattern
     * @param bool|false $withContext
     * @return array
     */
    private function collect($componentType, $pattern, $withContext)
    {
        $files = [];
        foreach ($this->registrar->getPaths($componentType) as $componentName => $path) {
            $directoryRead = $this->readFactory->create($path);
            $foundFiles = $directoryRead->search($pattern);
            foreach ($foundFiles as $foundFile) {
                $foundFile = $directoryRead->getAbsolutePath($foundFile);
                if ($withContext) {
                    $files[] = new ComponentFile($componentType, $componentName, $foundFile);
                } else {
                    $files[] = $foundFile;
                }
            }
        }
        return $files;
    }
}