Composer\Autoload

ClassLoader::addPsr4()publicWPSCache 1.0

Registers a set of PSR-4 directories for a given namespace, either appending or prepending to the ones previously set for this namespace.

Метод класса: ClassLoader{}

Хуков нет.

Возвращает

null. Ничего (null).

Использование

$ClassLoader = new ClassLoader();
$ClassLoader->addPsr4( $prefix, $paths, $prepend );
$prefix(строка) (обязательный)
The prefix/namespace, with trailing '\\'
$paths(list|строка) (обязательный)
The PSR-4 base directories
$prepend(true|false)
Whether to prepend the directories
По умолчанию: false

Код ClassLoader::addPsr4() WPSCache 1.12.0

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
        );
    }
}