$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.
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;
addNamespace(string $prefix, string $base_dir, boolean $prepend = false) : void
Adds a base directory for a namespace prefix.
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. |
loadMappedFile(string $prefix, string $relative_class) : mixed
Load the mapped file for a namespace prefix and relative class.
string | $prefix | The namespace prefix. |
string | $relative_class | The relative class name. |
Boolean false if no mapped file can be loaded, or the name of the mapped file that was loaded.