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.
Method of the class: ClassLoader{}
No Hooks.
Return
null
. Nothing (null).
Usage
$ClassLoader = new ClassLoader(); $ClassLoader->addPsr4( $prefix, $paths, $prepend );
- $prefix(string) (required)
- The prefix/namespace, with trailing '\\'
- $paths(list
|string) (required) - The PSR-4 base directories
- $prepend(true|false)
- Whether to prepend the directories
Default: false
ClassLoader::addPsr4() ClassLoader::addPsr4 code WPSCache 1.12.4
public function addPsr4($prefix, $paths, $prepend = false) { $paths = (array) $paths; if (!$prefix) { // Register directories for the root namespace. if ($prepend) { $this->fallbackDirsPsr4 = array_merge( $paths, $this->fallbackDirsPsr4 ); } else { $this->fallbackDirsPsr4 = array_merge( $this->fallbackDirsPsr4, $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] = $paths; } elseif ($prepend) { // Prepend directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $paths, $this->prefixDirsPsr4[$prefix] ); } else { // Append directories for an already registered namespace. $this->prefixDirsPsr4[$prefix] = array_merge( $this->prefixDirsPsr4[$prefix], $paths ); } }