dnaber/requisite

A modular, extensible PHP autoloader.

1.0.0 2016-03-24 18:52 UTC

This package is auto-updated.

Last update: 2024-04-09 16:44:48 UTC


README

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«