kuria / class-loader
类加载器实现(PSR-0,PSR-4)
v4.1.0
2023-06-11 09:47 UTC
Requires
- php: >=7.1
Requires (Dev)
- kuria/dev-meta: ^0.6
README
PHP 类加载器,实现了 PSR-0 和 PSR-4 自动加载。
内容
特性
- PSR-0 和 PSR-4 自动加载
- 类映射
- 自定义后缀
- composer 桥接器
- 调试模式
要求
- PHP 7.1.0+
使用示例
注册前缀
<?php use Kuria\ClassLoader\ClassLoader; // load the class loader manually require '/path/to/src/ClassLoader.php'; // create an instance $debug = true; // true during development, false in production $classLoader = new ClassLoader($debug); // register the autoloader $classLoader->register(); // PSR-4 prefix $classLoader->addPrefix('Foo\\Bar\\', 'vendor/foo/bar/src'); $classLoader->addPrefixes([ 'Kuria\\Error\\' => 'vendor/kuria/error/src', 'Foo\\Baz\\' => 'example/foo/baz', ]); // PSR-0 prefix $classLoader->addPrefix('Example\\FooBar\\', 'vendor/example/foobar', ClassLoader::PSR0); $classLoader->addPrefixes([ 'Kuria\\Error\\' => 'vendor/kuria/error/src', 'Foo_' => 'example/foo', ], ClassLoader::PSR0); // PSR-4 fallback (empty prefix) $classLoader->addPrefix('', 'src'); // PSR-0 fallback (empty prefix) $classLoader->addPrefix('', 'old-code/example', ClassLoader::PSR0); // single class $classLoader->addClass('Foo', 'path/to/foo.class.php'); // class map $classLoader->addClassMap([ 'Bar' => 'path/to/bar.class.php', 'Baz' => 'path/to/baz.class.php', ]);
使用 composer 桥接器
可以使用 ComposerBridge
类来初始化由 Composer 管理的包的自动加载。
<?php use Kuria\ClassLoader\ClassLoader; use Kuria\ClassLoader\ComposerBridge; require __DIR__ . '/vendor/kuria/class-loader/src/ClassLoader.php'; require __DIR__ . '/vendor/kuria/class-loader/src/ComposerBridge.php'; $classLoader = new ClassLoader(); ComposerBridge::configure($classLoader, __DIR__ . '/vendor'); $classLoader->register();
禁用前缀
如果您正在使用优化的自动加载器,您可以在 configure()
中传递可选的第三个参数来完全禁用前缀。只有类映射和文件将被加载。
<?php ComposerBridge::configure($classLoader, __DIR__ . '/vendor', false);
调试模式
如果启用了调试模式,在文件加载后执行检查以确定类、接口或特质是否在该文件中定义。
这有助于检测错误的或拼写错误的命名空间或类名。
要启用调试模式,请调用 $classLoader->setDebug(true)
或将 true
传递给适当的构造函数参数。