vahidalvandi / class-finder
一个可以提供特定命名空间中类列表的库
0.4.6
2022-10-14 07:30 UTC
Requires
- php: >=5.3
- ext-json: *
Requires (Dev)
- mikey179/vfsstream: ^1.6
- phpunit/phpunit: ~9.0
README
https://gitlab.com/hpierce1102/ClassFinder
一个用于识别特定命名空间中类的简单实用工具。
此包是Stack Overflow上一个答案的改进实现,并提供了一些额外的功能,而无需更多的配置。
要求
- 应用程序使用Composer。
- 类可以用Composer自动加载。
- PHP >= 5.3.0
安装
通过Composer要求来安装。
composer require vahidalvandi/class-finder
目前不支持其他安装方法。
支持的自动加载方法
^ 试验性。
* 计划。
** 未计划。如果需要此功能,请提交问题。
示例
标准模式
<?php require_once __DIR__ . '/vendor/autoload.php'; $classes = ClassFinder::getClassesInNamespace('TestApp1\Foo'); /** * array( * 'TestApp1\Foo\Bar', * 'TestApp1\Foo\Baz', * 'TestApp1\Foo\Foo' * ) */ var_dump($classes);
递归模式 (在v0.3-beta中)
<?php require_once __DIR__ . '/vendor/autoload.php'; $classes = ClassFinder::getClassesInNamespace('TestApp1\Foo', ClassFinder::RECURSIVE_MODE); /** * array( * 'TestApp1\Foo\Bar', * 'TestApp1\Foo\Baz', * 'TestApp1\Foo\Foo', * 'TestApp1\Foo\Box\Bar', * 'TestApp1\Foo\Box\Baz', * 'TestApp1\Foo\Box\Foo', * 'TestApp1\Foo\Box\Lon\Bar', * 'TestApp1\Foo\Box\Lon\Baz', * 'TestApp1\Foo\Box\Lon\Foo', * ) */ var_dump($classes);
文档
异常:
内部
未来工作
警告:在1.0.0之前,预期错误修复将不会回滚到旧版本。在不兼容的小版本0.X.Y中可能会引入不兼容的更改,其中X发生变化。
-
psr0支持
-
额外功能
各种想法
-
(包含在v0.3-beta中)ClassFinder::getClassesInNamespace('TestApp1\Foo', ClassFinder::RECURSIVE_MODE)
. 提供多层命名空间的类。 -
ClassFinder::getClassesImplementingInterface('TestApp1\Foo', 'TestApp1\FooInterface', ClassFinder::RECURSIVE_MODE)
. 过滤仅实现特定命名空间的类。 -
ClassFinder::debugRenderReport('TestApp1\Foo\Baz')
解决由于命名空间中存在错误、目录缺失等导致的“找不到类”错误的指导。将打印HTML报告。不适用于生产使用,但用于调试。