\mf\coreAutoloader

General-purpose implementation that includes the optional functionality of allowing multiple base directories for a single namespace prefix.

Given a foo-bar package of classes in the file system at the following paths ...

/path/to/packages/foo-bar/
    src/
        Baz.php             # Foo\Bar\Baz
        Qux/
            Quux.php        # Foo\Bar\Qux\Quux
    tests/
        BazTest.php         # Foo\Bar\BazTest
        Qux/
            QuuxTest.php    # Foo\Bar\Qux\QuuxTest

... add the path to the class files for the \Foo\Bar\ namespace prefix as follows:

 <?php
 // instantiate the loader
 $loader = new \mf\core\Autoloader;

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

 // register the base directories for the namespace prefix
 $loader->addNamespace('Foo\Bar', '/path/to/packages/foo-bar/src');
 $loader->addNamespace('Foo\Bar', '/path/to/packages/foo-bar/tests');

The following line would cause the autoloader to attempt to load the \Foo\Bar\Qux\Quux class from /path/to/packages/foo-bar/src/Qux/Quux.php:

 <?php
 new \Foo\Bar\Qux\Quux;

The following line would cause the autoloader to attempt to load the \Foo\Bar\Qux\QuuxTest class from /path/to/packages/foo-bar/tests/Qux/QuuxTest.php:

 <?php
 new \Foo\Bar\Qux\QuuxTest;

Summary

Methods
Properties
Constants
register()
addNamespace()
loadClass()
No public properties found
No constants found
loadMappedFile()
requireFile()
$prefixes
N/A
No private methods found
No private properties found
N/A

Properties

$prefixes

$prefixes : array

An associative array where the key is a namespace prefix and the value is an array of base directories for classes in that namespace.

Type

array

Methods

register()

register() : void

Register loader with SPL autoloader stack.

addNamespace()

addNamespace(string  $prefix, string  $base_dir, boolean  $prepend = false) : void

Adds a base directory for a namespace prefix.

Parameters

string $prefix

The namespace prefix.

string $base_dir

A base directory for class files in the namespace.

boolean $prepend

If true, prepend the base directory to the stack instead of appending it; this causes it to be searched first rather than last.

loadClass()

loadClass(string  $class) : mixed

Loads the class file for a given class name.

Parameters

string $class

The fully-qualified class name.

Returns

mixed —

The mapped file name on success, or boolean false on failure.

loadMappedFile()

loadMappedFile(string  $prefix, string  $relative_class) : mixed

Load the mapped file for a namespace prefix and relative class.

Parameters

string $prefix

The namespace prefix.

string $relative_class

The relative class name.

Returns

mixed —

Boolean false if no mapped file can be loaded, or the name of the mapped file that was loaded.

requireFile()

requireFile(string  $file) : boolean

If a file exists, require it from the file system.

Parameters

string $file

The file to require.

Returns

boolean —

True if the file exists, false if not.