Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. ClassLoader.php

function ClassLoader::addPsr4

Same name in this branch
  1. 11.1.x 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 '\\':

list<string>|string $paths The PSR-4 base directories:

bool $prepend Whether to prepend the directories:

Return value

void

Throws

\InvalidArgumentException

File

vendor/composer/composer/src/Composer/Autoload/ClassLoader.php, line 230

Class

ClassLoader
ClassLoader implements a PSR-0, PSR-4 and classmap class loader.

Namespace

Composer\Autoload

Code

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

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal