src/Utility/ThemeFinder.php
protected function getThemePaths($themes)
    {
        $dirsFromConfig = array_filter(
            [
                $this->getConfig()->get('digipolis.root.project', false),
                $this->getConfig()->get('digipolis.root.web', false),
            ]
        );
        $dirs = empty($this->dirs)
            ? $dirsFromConfig
            : $this->dirs;
        if (empty($dirs)) {
            $dirs = [getcwd()];
        }

        $finder = clone $this->finder;
        $finder->in($dirs)->files();
        foreach ($themes as $themeName) {
            // Matches 'themes/(custom/){randomfoldername}/{themename}.info.yml'.
            $finder->path('/themes\/(custom\/)?[^\/]*\/' . preg_quote($themeName, '/') . '\.info\.yml/');
        }
        $processed = [];
        $paths = [];
        foreach ($finder as $infoFile) {
            $path = dirname($infoFile->getRealPath());
            // The web dir can be a subdir of the project root (in most cases
            // really). Make sure we don't compile the same theme twice.
            if (isset($processed[$path])) {
                continue;
            }
            $processed[$path] = true;
            $theme = $infoFile->getBasename('.info.yml');
            $paths[$theme] = $path;
        }
        return $paths;
    }
protected function getThemePaths($themes)
    {
        $dirsFromConfig = array_filter(
            [
                $this->getConfig()->get('digipolis.root.project', false),
                $this->getConfig()->get('digipolis.root.web', false),
            ]
        );
        $dirs = empty($this->dirs)
            ? $dirsFromConfig
            : $this->dirs;
        if (empty($dirs)) {
            $dirs = [getcwd()];
        }

        $finder = clone $this->finder;
        $finder->in($dirs)->files();
        foreach ($themes as $themeName) {
            // Matches 'themes/(custom/){randomfoldername}/{themename}.info.yml'.
            $finder->path('/themes\/(custom\/)?[^\/]*\/' . preg_quote($themeName, '/') . '\.info\.yml/');
        }
        $processed = [];
        $paths = [];
        foreach ($finder as $infoFile) {
            $path = dirname($infoFile->getRealPath());
            // The web dir can be a subdir of the project root (in most cases
            // really). Make sure we don't compile the same theme twice.
            if (isset($processed[$path])) {
                continue;
            }
            $processed[$path] = true;
            $theme = $infoFile->getBasename('.info.yml');
            $paths[$theme] = $path;
        }
        return $paths;
    }
protected function getThemePaths ( $ themes ) { $ dirsFromConfig = array_filter ( [ $ this -> getConfig ( ) -> get ( 'digipolis.root.project' , false ) , $ this -> getConfig ( ) -> get ( 'digipolis.root.web' , false ) , ] ) ; $ dirs = empty ( $ this -> dirs ) ? $ dirsFromConfig : $ this -> dirs ; if ( empty ( $ dirs ) ) { $ dirs = [ getcwd ( ) ] ; } $ finder = clone $ this -> finder ; $ finder -> in ( $ dirs ) -> files ( ) ; foreach ( $ themes as $ themeName ) { // Matches 'themes/(custom/){randomfoldername}/{themename}.info.yml'. $ finder -> path ( '/themes\/(custom\/)?[^\/]*\/' . preg_quote ( $ themeName , '/' ) . '\.info\.yml/' ) ; } $ processed = [ ] ; $ paths = [ ] ; foreach ( $ finder as $ infoFile ) { $ path = dirname ( $ infoFile -> getRealPath ( ) ) ; // The web dir can be a subdir of the project root (in most cases // really). Make sure we don't compile the same theme twice. if ( isset ( $ processed [ $ path ] ) ) { continue ; } $ processed [ $ path ] = true ; $ theme = $ infoFile -> getBasename ( '.info.yml' ) ; $ paths [ $ theme ] = $ path ; } return $ paths ; }
Get the theme paths.

@param array $themes
An array of theme names.

@return array
The theme paths keyed by theme name.
Get the theme paths .