ClassLoader
    
            
            in package
            
        
    
    
    
        
            ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
$loader = new \Composer\Autoload\ClassLoader();
// register classes with namespaces
$loader->add('Symfony\Component', __DIR__.'/component');
$loader->add('Symfony',           __DIR__.'/framework');
// activate the autoloader
$loader->register();
// to enable searching the include path (eg. for PEAR packages)
$loader->setUseIncludePath(true);
In this example, if you try to use a class in the Symfony\Component namespace or one of its children (Symfony\Component\Console for instance), the autoloader will first look for the class under the component/ directory, and it will then fallback to the framework/ directory if not found before giving up.
This class is loosely based on the Symfony UniversalClassLoader.
Tags
Table of Contents
- $apcuPrefix : string|null
 - $classMap : array<string, string>
 - $classMapAuthoritative : bool
 - $fallbackDirsPsr0 : array<int, string>
 - $fallbackDirsPsr4 : array<int, string>
 - $includeFile : callable
 - $missingClasses : array<string, bool>
 - $prefixDirsPsr4 : array<string, array<int, string>>
 - $prefixesPsr0 : array<string, array<string, array<int, string>>>
 - List of PSR-0 prefixes
 - $prefixLengthsPsr4 : array<string, array<string, int>>
 - $registeredLoaders : array<string, self>
 - $useIncludePath : bool
 - $vendorDir : string|null
 - __construct() : mixed
 - add() : void
 - Registers a set of PSR-0 directories for a given prefix, either appending or prepending to the ones previously set for this prefix.
 - addClassMap() : void
 - addPsr4() : void
 - Registers a set of PSR-4 directories for a given namespace, either appending or prepending to the ones previously set for this namespace.
 - findFile() : string|false
 - Finds the path to the file where the class is defined.
 - getApcuPrefix() : string|null
 - The APCu prefix in use, or null if APCu caching is not enabled.
 - getClassMap() : array<string, string>
 - getFallbackDirs() : array<int, string>
 - getFallbackDirsPsr4() : array<int, string>
 - getPrefixes() : array<string, array<int, string>>
 - getPrefixesPsr4() : array<string, array<int, string>>
 - getRegisteredLoaders() : array<string, self>
 - Returns the currently registered loaders keyed by their corresponding vendor directories.
 - getUseIncludePath() : bool
 - Can be used to check if the autoloader uses the include path to check for classes.
 - isClassMapAuthoritative() : bool
 - Should class lookup fail if not found in the current class map?
 - loadClass() : true|null
 - Loads the given class or interface.
 - register() : void
 - Registers this instance as an autoloader.
 - set() : void
 - Registers a set of PSR-0 directories for a given prefix, replacing any others previously set for this prefix.
 - setApcuPrefix() : void
 - APCu prefix to use to cache found/not-found classes, if the extension is enabled.
 - setClassMapAuthoritative() : void
 - Turns off searching the prefix and fallback directories for classes that have not been registered with the class map.
 - setPsr4() : void
 - Registers a set of PSR-4 directories for a given namespace, replacing any others previously set for this namespace.
 - setUseIncludePath() : void
 - Turns on searching the include path for class files.
 - unregister() : void
 - Unregisters this instance as an autoloader.
 - findFileWithExtension() : string|false
 - initializeIncludeClosure() : void
 
Properties
$apcuPrefix
    private
        string|null
    $apcuPrefix
    
    
    
    
$classMap
    private
        array<string, string>
    $classMap
     = array()
    
    
    
$classMapAuthoritative
    private
        bool
    $classMapAuthoritative
     = false
    
    
    
$fallbackDirsPsr0
    private
        array<int, string>
    $fallbackDirsPsr0
     = array()
    
    
    
$fallbackDirsPsr4
    private
        array<int, string>
    $fallbackDirsPsr4
     = array()
    
    
    
$includeFile
    private
    static    callable
    $includeFile
    
    
    
    
$missingClasses
    private
        array<string, bool>
    $missingClasses
     = array()
    
    
    
$prefixDirsPsr4
    private
        array<string, array<int, string>>
    $prefixDirsPsr4
     = array()
    
    
    
$prefixesPsr0
List of PSR-0 prefixes
    private
        array<string, array<string, array<int, string>>>
    $prefixesPsr0
     = array()
        Structured as array('F (first letter)' => array('Foo\Bar (full prefix)' => array('path', 'path2')))
$prefixLengthsPsr4
    private
        array<string, array<string, int>>
    $prefixLengthsPsr4
     = array()
    
    
    
$registeredLoaders
    private
    static    array<string, self>
    $registeredLoaders
     = array()
    
    
    
$useIncludePath
    private
        bool
    $useIncludePath
     = false
    
    
    
$vendorDir
    private
        string|null
    $vendorDir
    
    
    
    
Methods
__construct()
    public
                __construct([string|null $vendorDir = null ]) : mixed
    
        Parameters
- $vendorDir : string|null = null
 
Return values
mixed —add()
Registers a set of PSR-0 directories for a given prefix, either appending or prepending to the ones previously set for this prefix.
    public
                add(string $prefix, array<int, string>|string $paths[, bool $prepend = false ]) : void
    
        Parameters
- $prefix : string
 - 
                    
The prefix
 - $paths : array<int, string>|string
 - 
                    
The PSR-0 root directories
 - $prepend : bool = false
 - 
                    
Whether to prepend the directories
 
Return values
void —addClassMap()
    public
                addClassMap(array<string, string> $classMap) : void
    
        Parameters
- $classMap : array<string, string>
 - 
                    
Class to filename map
 
Return values
void —addPsr4()
Registers a set of PSR-4 directories for a given namespace, either appending or prepending to the ones previously set for this namespace.
    public
                addPsr4(string $prefix, array<int, string>|string $paths[, bool $prepend = false ]) : void
    
        Parameters
- $prefix : string
 - 
                    
The prefix/namespace, with trailing '\'
 - $paths : array<int, string>|string
 - 
                    
The PSR-4 base directories
 - $prepend : bool = false
 - 
                    
Whether to prepend the directories
 
Tags
Return values
void —findFile()
Finds the path to the file where the class is defined.
    public
                findFile(string $class) : string|false
    
        Parameters
- $class : string
 - 
                    
The name of the class
 
Return values
string|false —The path if found, false otherwise
getApcuPrefix()
The APCu prefix in use, or null if APCu caching is not enabled.
    public
                getApcuPrefix() : string|null
    
    
    
        Return values
string|null —getClassMap()
    public
                getClassMap() : array<string, string>
    
    
    
        Return values
array<string, string> —Array of classname => path
getFallbackDirs()
    public
                getFallbackDirs() : array<int, string>
    
    
    
        Return values
array<int, string> —getFallbackDirsPsr4()
    public
                getFallbackDirsPsr4() : array<int, string>
    
    
    
        Return values
array<int, string> —getPrefixes()
    public
                getPrefixes() : array<string, array<int, string>>
    
    
    
        Return values
array<string, array<int, string>> —getPrefixesPsr4()
    public
                getPrefixesPsr4() : array<string, array<int, string>>
    
    
    
        Return values
array<string, array<int, string>> —getRegisteredLoaders()
Returns the currently registered loaders keyed by their corresponding vendor directories.
    public
            static    getRegisteredLoaders() : array<string, self>
    
    
    
        Return values
array<string, self> —getUseIncludePath()
Can be used to check if the autoloader uses the include path to check for classes.
    public
                getUseIncludePath() : bool
    
    
    
        Return values
bool —isClassMapAuthoritative()
Should class lookup fail if not found in the current class map?
    public
                isClassMapAuthoritative() : bool
    
    
    
        Return values
bool —loadClass()
Loads the given class or interface.
    public
                loadClass(string $class) : true|null
    
        Parameters
- $class : string
 - 
                    
The name of the class
 
Return values
true|null —True if loaded, null otherwise
register()
Registers this instance as an autoloader.
    public
                register([bool $prepend = false ]) : void
    
        Parameters
- $prepend : bool = false
 - 
                    
Whether to prepend the autoloader or not
 
Return values
void —set()
Registers a set of PSR-0 directories for a given prefix, replacing any others previously set for this prefix.
    public
                set(string $prefix, array<int, string>|string $paths) : void
    
        Parameters
- $prefix : string
 - 
                    
The prefix
 - $paths : array<int, string>|string
 - 
                    
The PSR-0 base directories
 
Return values
void —setApcuPrefix()
APCu prefix to use to cache found/not-found classes, if the extension is enabled.
    public
                setApcuPrefix(string|null $apcuPrefix) : void
    
        Parameters
- $apcuPrefix : string|null
 
Return values
void —setClassMapAuthoritative()
Turns off searching the prefix and fallback directories for classes that have not been registered with the class map.
    public
                setClassMapAuthoritative(bool $classMapAuthoritative) : void
    
        Parameters
- $classMapAuthoritative : bool
 
Return values
void —setPsr4()
Registers a set of PSR-4 directories for a given namespace, replacing any others previously set for this namespace.
    public
                setPsr4(string $prefix, array<int, string>|string $paths) : void
    
        Parameters
- $prefix : string
 - 
                    
The prefix/namespace, with trailing '\'
 - $paths : array<int, string>|string
 - 
                    
The PSR-4 base directories
 
Tags
Return values
void —setUseIncludePath()
Turns on searching the include path for class files.
    public
                setUseIncludePath(bool $useIncludePath) : void
    
        Parameters
- $useIncludePath : bool
 
Return values
void —unregister()
Unregisters this instance as an autoloader.
    public
                unregister() : void
    
    
    
        Return values
void —findFileWithExtension()
    private
                findFileWithExtension(string $class, string $ext) : string|false
    
        Parameters
- $class : string
 - $ext : string
 
Return values
string|false —initializeIncludeClosure()
    private
            static    initializeIncludeClosure() : void