Skip to content

dnaber-de/Requisite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Requisite – a modular, extensible PHP autoloader

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.

Concept

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).

Rules

Psr4

Maps namespaces to filesystem directories relative to a base directory and base namespace as described in Psr-4.

ClassMap

Provides a static map of full qualified class names to file names.

Usage examples

/**
 * 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'
		]
	)
);

Roadmap

See issues labeled with »enhancement«

About

A modular, extendable PHP autoloader

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages