rg / phpnsc
6.3.0
2024-04-04 11:10 UTC
Requires
- php: >=7.4
- phpunit/php-timer: ^5.0
- symfony/console: 4.0|^5.0
Requires (Dev)
- phpunit/phpunit: ^9.6.10
This package is auto-updated.
Last update: 2024-09-04 12:00:24 UTC
README
PHP命名空间检查器,检查项目中的所有文件以查找无效的类引用。
如果使用了类的简单或相对名称,但该类不在同一命名空间中,或者不在相应的子命名空间中,或者没有相应的use语句,则它将打印错误。
- 或不在同一命名空间中
- 或不在相应的子命名空间中
- 或没有相应的use语句
用法
- 将JSON配置文件添加到项目根目录中(参见
config.sample.json
) - 运行 phpnsc
phpnsc run path/to/config.json
配置
配置必须位于JSON文件中,通常位于项目的根目录。示例
{ "sources": [ { "vendor": "vendorNamespace", "folders": { "root": "path/to/sources", "include": [ "subpackage", "subpackage_two" ], "exclude": [ "subpackage/excluded" ] }, "filetypes": { "include": [ ".php" ], "exclude": [ ".config.php" ] } } ], "output": [ { "class": "rg\\tools\\phpnsc\\CheckstyleOutput", "parameter": "build/logs/phpnsc.xml" }, { "class": "rg\\tools\\phpnsc\\ConsoleOutput", "parameter": "" } ] }
- sources: 要扫描的源文件夹列表
- vendor: 指定项目的根供应商命名空间,请参阅 (https://gist.github.com/1234504)
- folders/root: 项目的根文件夹
- include: 应包含项目根目录的哪些子文件夹?
- exclude: 是否有应该排除的子子文件夹?
- filetypes: 应包含和排除分析中的文件类型
- output: 应使用的输出类数组。目前支持
- CheckstyleOutput (与checkstyle兼容的XML文件,例如用于CI服务器)
- ConsoleOutput
工作原理
首先,工具将扫描符合配置文件中定义的标准的所有文件。对于每个文件,它将去除所有不必要的元素,如注释、字符串或非PHP内容。然后,它将分析项目中的所有定义的类和接口,以及每个文件中使用的和引用的类和接口。在下一步中,它将使用这些信息来推断所有类和接口是否被正确引用。
当前限制
此工具仍然是alpha版本。它很可能不会找到所有错误,也可能会有误报。此外,它无法处理一个use语句导入多个命名空间,并可能在使用别名时出现问题。