using finder for classmap generator
parent
0822683706
commit
4af410e1b9
|
@ -12,6 +12,7 @@
|
|||
*/
|
||||
|
||||
namespace Composer\Autoload;
|
||||
use Symfony\Component\Finder\Finder;
|
||||
|
||||
/**
|
||||
* ClassMapGenerator
|
||||
|
@ -53,7 +54,7 @@ class ClassMapGenerator
|
|||
if (is_file($path)) {
|
||||
$path = array(new \SplFileInfo($path));
|
||||
} elseif (is_dir($path)) {
|
||||
$path = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($path));
|
||||
$path = Finder::create()->files()->followLinks()->name('/.*[php|inc]/')->in($path);
|
||||
} else {
|
||||
throw new \RuntimeException(
|
||||
'Could not scan for classes inside "'.$path.
|
||||
|
@ -65,10 +66,6 @@ class ClassMapGenerator
|
|||
$map = array();
|
||||
|
||||
foreach ($path as $file) {
|
||||
if (!$file->isFile()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$filePath = $file->getRealPath();
|
||||
|
||||
if (!in_array(pathinfo($filePath, PATHINFO_EXTENSION), array('php', 'inc'))) {
|
||||
|
@ -84,7 +81,6 @@ class ClassMapGenerator
|
|||
foreach ($classes as $class) {
|
||||
$map[$class] = $filePath;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $map;
|
||||
|
@ -102,7 +98,11 @@ class ClassMapGenerator
|
|||
$traits = version_compare(PHP_VERSION, '5.4', '<') ? '' : '|trait';
|
||||
|
||||
try {
|
||||
$contents = php_strip_whitespace($path);
|
||||
if (!is_readable($path)) {
|
||||
throw new \RuntimeException('file not found');
|
||||
}
|
||||
//suppress warnings on unclosed comments
|
||||
$contents = @php_strip_whitespace($path);
|
||||
} catch (\Exception $e) {
|
||||
throw new \RuntimeException('Could not scan for classes inside '.$path.": \n".$e->getMessage(), 0, $e);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue