function AutoloadGenerator::createLoader
Registers an autoloader based on an autoload-map returned by parseAutoloads
Parameters
array<string, mixed[]> $autoloads see parseAutoloads return value:
Return value
File
-
vendor/
composer/ composer/ src/ Composer/ Autoload/ AutoloadGenerator.php, line 607
Class
- AutoloadGenerator
- @author Igor Wiedler <igor@wiedler.ch> @author Jordi Boggiano <j.boggiano@seld.be>
Namespace
Composer\AutoloadCode
public function createLoader(array $autoloads, ?string $vendorDir = null) {
$loader = new ClassLoader($vendorDir);
if (isset($autoloads['psr-0'])) {
foreach ($autoloads['psr-0'] as $namespace => $path) {
$loader->add($namespace, $path);
}
}
if (isset($autoloads['psr-4'])) {
foreach ($autoloads['psr-4'] as $namespace => $path) {
$loader->addPsr4($namespace, $path);
}
}
if (isset($autoloads['classmap'])) {
$excluded = [];
if (!empty($autoloads['exclude-from-classmap'])) {
$excluded = $autoloads['exclude-from-classmap'];
}
$classMapGenerator = new ClassMapGenerator([
'php',
'inc',
'hh',
]);
$classMapGenerator->avoidDuplicateScans();
foreach ($autoloads['classmap'] as $dir) {
try {
$classMapGenerator->scanPaths($dir, $this->buildExclusionRegex($dir, $excluded));
} catch (\RuntimeException $e) {
$this->io
->writeError('<warning>' . $e->getMessage() . '</warning>');
}
}
$loader->addClassMap($classMapGenerator->getClassMap()
->getMap());
}
return $loader;
}