Inspired by Tom Buttler and Fuxia Scholz.
This library requires PHP version 5.5.0
. If you're looking for older support, use the 1.0
release branch,
that still supports PHP 5.3.0
.
The main idea behind this autoloader is the separation of the file locating (Requisite\Rule
) and file loading
(Requisite\Loader
) process.
One can register several rules on a main autoloader instance of Requisite\SplAutoloader
. The included rule
Rule\NamespaceDiretoryMapper
matches namespaces to directory names (which actually implements Psr-4).
Maps namespaces to filesystem directories relative to a base directory and base namespace as described in Psr-4.
Provides a static map of full qualified class names to file names.
/**
* Load the Requisite library. Alternatively you can use composer's
* autoloader via include vendor/autoload.php
*/
require_once 'src/Requisite/Requisite.php';
Requisite\Requisite::init();
$autoloader = new Requisite\SplAutoLoader;
//load the Monolog lib from the vendor/Monolog directory
$autoloader->addRule(
new Requisite\Rule\Psr4(
__DIR__ . '/vendor/Monolog', // base directory
'Monolog' // base namespace
)
);
// configure a ClassMap
$autoloader->addRule(
new Requisite\Rule\ClassMap(
[
'Foo\Bar' => '/vendor/package/src/Foo/Bar.php',
'Foo\Bazz' => '/vendor/package/src/Foo/Bazz.php'
]
)
);