class UniversalClassLoader

UniversalClassLoader implements a "universal" autoloader for PHP 5.3.

It is able to load classes that use either:

  • The technical interoperability standards for PHP 5.3 namespaces and class names (https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md);

  • The PEAR naming convention for classes (http://pear.php.net/).

Classes from a sub-namespace or a sub-hierarchy of PEAR classes can be looked for in a list of locations to ease the vendoring of a sub-set of classes for large projects.

Example usage:

$loader = new UniversalClassLoader();

// register classes with namespaces
$loader->registerNamespaces(array(
    'Symfony\Component' => __DIR__.'/component',
    'Symfony'           => __DIR__.'/framework',
    'Sensio'            => array(__DIR__.'/src', __DIR__.'/vendor'),
));

// register a library using the PEAR naming convention
$loader->registerPrefixes(array(
    'Swift_' => __DIR__.'/Swift',
));


// to enable searching the include path (e.g. for PEAR packages)
$loader->useIncludePath(true);

// activate the autoloader
$loader->register();

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.

Methods

useIncludePath(Boolean $useIncludePath)

Turns on searching the include for class files. Allows easy loading of installed PEAR packages

Boolean
getUseIncludePath()

Can be used to check if the autoloader uses the include path to check for classes.

array
getNamespaces()

Gets the configured namespaces.

array
getPrefixes()

Gets the configured class prefixes.

array
getNamespaceFallbacks()

Gets the directory(ies) to use as a fallback for namespaces.

array
getPrefixFallbacks()

Gets the directory(ies) to use as a fallback for class prefixes.

registerNamespaceFallbacks(array $dirs)

Registers the directory to use as a fallback for namespaces.

registerNamespaceFallback(string $dir)

Registers a directory to use as a fallback for namespaces.

registerPrefixFallbacks(array $dirs)

Registers directories to use as a fallback for class prefixes.

registerPrefixFallback(string $dir)

Registers a directory to use as a fallback for class prefixes.

registerNamespaces(array $namespaces)

Registers an array of namespaces

registerNamespace(string $namespace, array|string $paths)

Registers a namespace.

registerPrefixes(array $classes)

Registers an array of classes using the PEAR naming convention.

registerPrefix(string $prefix, array|string $paths)

Registers a set of classes using the PEAR naming convention.

register(Boolean $prepend = false)

Registers this instance as an autoloader.

Boolean|null
loadClass(string $class)

Loads the given class or interface.

string|null
findFile(string $class)

Finds the path to the file where the class is defined.

Details

at line line 75
useIncludePath(Boolean $useIncludePath)

Turns on searching the include for class files. Allows easy loading of installed PEAR packages

Parameters

Boolean $useIncludePath

at line line 86
Boolean getUseIncludePath()

Can be used to check if the autoloader uses the include path to check for classes.

Return Value

Boolean

at line line 96
array getNamespaces()

Gets the configured namespaces.

Return Value

array A hash with namespaces as keys and directories as values

at line line 106
array getPrefixes()

Gets the configured class prefixes.

Return Value

array A hash with class prefixes as keys and directories as values

at line line 116
array getNamespaceFallbacks()

Gets the directory(ies) to use as a fallback for namespaces.

Return Value

array An array of directories

at line line 126
array getPrefixFallbacks()

Gets the directory(ies) to use as a fallback for class prefixes.

Return Value

array An array of directories

at line line 138
registerNamespaceFallbacks(array $dirs)

Registers the directory to use as a fallback for namespaces.

Parameters

array $dirs An array of directories

at line line 148
registerNamespaceFallback(string $dir)

Registers a directory to use as a fallback for namespaces.

Parameters

string $dir A directory

at line line 160
registerPrefixFallbacks(array $dirs)

Registers directories to use as a fallback for class prefixes.

Parameters

array $dirs An array of directories

at line line 170
registerPrefixFallback(string $dir)

Registers a directory to use as a fallback for class prefixes.

Parameters

string $dir A directory

at line line 182
registerNamespaces(array $namespaces)

Registers an array of namespaces

Parameters

array $namespaces An array of namespaces (namespaces as keys and locations as values)

at line line 197
registerNamespace(string $namespace, array|string $paths)

Registers a namespace.

Parameters

string $namespace The namespace
array|string $paths The location(s) of the namespace

at line line 209
registerPrefixes(array $classes)

Registers an array of classes using the PEAR naming convention.

Parameters

array $classes An array of classes (prefixes as keys and locations as values)

at line line 224
registerPrefix(string $prefix, array|string $paths)

Registers a set of classes using the PEAR naming convention.

Parameters

string $prefix The classes prefix
array|string $paths The location(s) of the classes

at line line 236
register(Boolean $prepend = false)

Registers this instance as an autoloader.

Parameters

Boolean $prepend Whether to prepend the autoloader or not

at line line 248
Boolean|null loadClass(string $class)

Loads the given class or interface.

Parameters

string $class The name of the class

Return Value

Boolean|null True, if loaded

at line line 264
string|null findFile(string $class)

Finds the path to the file where the class is defined.

Parameters

string $class The name of the class

Return Value

string|null The path, if found