public function ClassLoader::addPsr4 in Automatic Updates 8
Same name and namespace in other branches
- 7 vendor/composer/ClassLoader.php \Composer\Autoload\ClassLoader::addPsr4()
Registers a set of PSR-4 directories for a given namespace, either appending or prepending to the ones previously set for this namespace.
Parameters
string $prefix The prefix/namespace, with trailing '\\':
array|string $paths The PSR-4 base directories:
bool $prepend Whether to prepend the directories:
Throws
\InvalidArgumentException
File
- vendor/
composer/ ClassLoader.php, line 156
Class
- ClassLoader
- ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
Namespace
Composer\AutoloadCode
public function addPsr4($prefix, $paths, $prepend = false) {
if (!$prefix) {
// Register directories for the root namespace.
if ($prepend) {
$this->fallbackDirsPsr4 = array_merge((array) $paths, $this->fallbackDirsPsr4);
}
else {
$this->fallbackDirsPsr4 = array_merge($this->fallbackDirsPsr4, (array) $paths);
}
}
elseif (!isset($this->prefixDirsPsr4[$prefix])) {
// Register directories for a new namespace.
$length = strlen($prefix);
if ('\\' !== $prefix[$length - 1]) {
throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
}
$this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
$this->prefixDirsPsr4[$prefix] = (array) $paths;
}
elseif ($prepend) {
// Prepend directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge((array) $paths, $this->prefixDirsPsr4[$prefix]);
}
else {
// Append directories for an already registered namespace.
$this->prefixDirsPsr4[$prefix] = array_merge($this->prefixDirsPsr4[$prefix], (array) $paths);
}
}