Neos\Flow\Package\Package::getClassesInNormalizedAutoloadPath PHP Method

getClassesInNormalizedAutoloadPath() protected method

protected getClassesInNormalizedAutoloadPath ( string $baseAutoloadPath, string $autoloadNamespace ) : Generator
$baseAutoloadPath string
$autoloadNamespace string
return Generator
    protected function getClassesInNormalizedAutoloadPath($baseAutoloadPath, $autoloadNamespace)
    {
        $autoloadNamespace = trim($autoloadNamespace, '\\') . '\\';
        $directories = [''];
        while ($directories !== []) {
            $currentRelativeDirectory = array_pop($directories);
            $currentAbsoluteDirectory = $baseAutoloadPath . $currentRelativeDirectory;
            if ($handle = opendir($currentAbsoluteDirectory)) {
                while (false !== ($filename = readdir($handle))) {
                    if ($filename[0] === '.') {
                        continue;
                    }
                    if ($currentAbsoluteDirectory !== $baseAutoloadPath && $this->isPathAutoloadEntryPoint($currentAbsoluteDirectory)) {
                        continue;
                    }
                    $pathAndFilename = $currentAbsoluteDirectory . $filename;
                    if (is_dir($pathAndFilename)) {
                        $directories[] = $currentRelativeDirectory . $filename . '/';
                        continue;
                    }
                    if (strpos(strrev($filename), 'php.') === 0) {
                        $potentialClassNamespace = $autoloadNamespace . str_replace('/', '\\', $currentRelativeDirectory) . basename($filename, '.php');
                        (yield $potentialClassNamespace => $pathAndFilename);
                    }
                }
                closedir($handle);
            }
        }
    }