dflydev / composer-autoload
Composer 自动加载工具
Requires (Dev)
- composer/composer: 1.0.*@dev
This package is auto-updated.
Last update: 2024-08-29 03:35:19 UTC
README
提供一个标准接口,用于访问和读取 Composer 自动加载器。
警告:此API尚不稳定,可能随时更改。
为什么这个库存在?
尽管通常认为应用程序知道底层自动加载器不是最佳实践,但有时访问自动加载器是必需的。
创建此库的主要用例是提供一个 Composer实现 的 PSR-0 Resource Locator。
用法
<?php use Dflydev\Composer\Autoload\ClassLoaderLocator; $locator = new ClassLoaderLocator; $reader = $locator->getReader(); // Get access to all of the prefixes registered to all of // the Composer Class Loaders in one array. $prefixes = $reader->getPrefixes();
安装
通过 Composer 以 dflydev/composer-autoload 的形式。
要求
- PHP 5.3+
API
ClassLoaderLocator 类
类加载器
直接访问 Composer 类加载器。
- Composer\Autoload\ClassLoader[] getClassLoaders():获取所有 Composer 自动加载类加载器实例。
- Composer\Autoload\ClassLoader|null getFirstClassLoader():获取已注册的第一个类加载器。
- Composer\Autoload\ClassLoader|null getFirstClassLoader():获取已注册的最后一个类加载器。
类加载器读取器
通过类加载器读取器接口访问底层类加载器。
-
ClassLoaderReaderInterface getReader():获取一个类加载器读取器。
如果已注册多个类加载器或没有注册类加载器,则将返回一个组合类加载器读取器。
-
ClassLoaderReaderInterface[] getReaders():获取每个已注册类加载器的类加载器读取器。
-
ClassLoaderReaderInterface getFirstReader():获取第一个已注册类加载器的类加载器读取器。
-
ClassLoaderReaderInterface getFirstReader():获取最后一个已注册类加载器的类加载器读取器。
静态方法
-
init():初始化静态实例。
可用于确保在稍后实际使用之前一切已设置就绪。例如,如果可能要修改已注册的自动加载器列表,这将确保Composer的类加载器可以立即找到并记录。
-
reset():重置静态实例。
这实际上清除了找到的类加载器实例。下次尝试访问类加载器时,将再次扫描注册的自动加载器列表。
-
set(array $classLoaders):设置类加载器列表。
这主要供测试用途。
ClassLoaderReaderInterface
模仿 Composer\Autoload\ClassLoader
的数据方法。
-
array getPrefixes():获取命名空间到目录的映射
-
array getFallbackDirs():获取回退目录列表
-
array getClassMap():获取类映射
-
string|null findFile($class):查找特定类的文件。
注意事项
在某些情况下,Composer的类加载器可能被另一个自动加载实现所替换。常见示例是在Composer之上注册专门调试类加载器。在这些情况下,建议在需要autoload.php后立即调用init()
,以确保可以找到Composer的类加载器。
<?php Dflydev\Composer\Autoload\ClassLoaderLocator::init();
许可协议
MIT,见LICENSE。
社区
如果您有问题或想帮忙,请加入irc.freenode.net上的#dflydev频道。