1
0
Fork 0

Avoid using realpath when generating classmap, speeds up generation and keeps paths local to project in case of symlinks/path repo

pull/5144/head
Jordi Boggiano 2016-04-01 11:31:39 +01:00
parent e5813d06ae
commit 5822b58c1f
1 changed files with 9 additions and 2 deletions

View File

@ -20,6 +20,7 @@ namespace Composer\Autoload;
use Symfony\Component\Finder\Finder; use Symfony\Component\Finder\Finder;
use Composer\IO\IOInterface; use Composer\IO\IOInterface;
use Composer\Util\Filesystem;
/** /**
* ClassMapGenerator * ClassMapGenerator
@ -73,14 +74,20 @@ class ClassMapGenerator
} }
$map = array(); $map = array();
$filesystem = new Filesystem();
$cwd = getcwd();
foreach ($path as $file) { foreach ($path as $file) {
$filePath = $file->getRealPath(); $filePath = $file->getPathname();
if (!in_array(pathinfo($filePath, PATHINFO_EXTENSION), array('php', 'inc', 'hh'))) { if (!in_array(pathinfo($filePath, PATHINFO_EXTENSION), array('php', 'inc', 'hh'))) {
continue; continue;
} }
if (!$filesystem->isAbsolutePath($filePath)) {
$filePath = $cwd . '/' . $filePath;
$filePath = $filesystem->normalizePath($filePath);
}
if ($blacklist && preg_match($blacklist, strtr($filePath, '\\', '/'))) { if ($blacklist && preg_match($blacklist, strtr($filePath, '\\', '/'))) {
continue; continue;
} }