dnaber/requisite

一个模块化、可扩展的PHP自动加载器。

1.0.0 2016-03-24 18:52 UTC

This package is auto-updated.

Last update: 2024-09-09 17:33:01 UTC


README

Tom ButtlerFuxia Scholz 启发。

此库需要PHP版本 5.5.0。如果您需要旧版本支持,请使用 1.0 版本分支,它仍然支持PHP 5.3.0

概念

这个自动加载器的主要思想是将文件定位(Requisite\Rule)和文件加载(Requisite\Loader)过程分离。

可以在 Requisite\SplAutoloader 的主自动加载器实例上注册多个规则。包含的规则 Rule\NamespaceDiretoryMapper 将命名空间匹配到目录名(这实际上实现了Psr-4)。

规则

Psr4

将命名空间映射到相对于基础目录和基础命名空间的基础系统目录,如Psr-4 中所述。

ClassMap

提供完全限定类名到文件名的静态映射。

用法示例

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

路线图

查看带有标签 “enhancement” 的问题