tomasvotruba / lines
测量PHP项目的大小
0.6.0
2024-07-12 09:18 UTC
Requires
- php: >=7.2
README
CLI工具,用于快速测量PHP项目大小,可在任何地方运行
有哪些杀手级功能?
- 安装任何地方 - PHP 7.2?PHPUnit 6?Symfony 3?没问题,此包无依赖项,支持PHP 7.2+
- 快速了解项目大小 - 没有细节,没有复杂性,只有代码行数
- 获取易于处理的JSON输出
- 我们使之简单,让您享受阅读 - 对于更复杂的操作,请使用如PHPStan之类的静态分析
安装
该包已指定作用域,并降级到PHP 7.2。因此,您可以在任何地方使用任何依赖项安装它
composer require tomasvotruba/lines --dev
使用方法
vendor/bin/lines measure src
对于简短输出
vendor/bin/lines measure src --short
对于JSON输出,只需添加--json
vendor/bin/lines measure src --json
您还可以将它们结合起来(对于博客文章和推文非常有用)
vendor/bin/lines measure src --short --json
您在寻找最长的10个文件吗?
vendor/bin/lines measure src --longest
↓
Longest files line count
src/Measurements.php ............................... 320
src/Console/OutputFormatter/TextOutputFormatter.php 136
src/NodeVisitor/StructureNodeVisitor.php ........... 124
src/Console/Command/MeasureCommand.php .............. 98
src/Analyser.php .................................... 92
src/DependencyInjection/ContainerFactory.php ........ 81
src/Console/OutputFormatter/JsonOutputFormatter.php . 70
src/Finder/PhpFilesFinder.php ....................... 56
src/ValueObject/TableView.php ....................... 54
src/ValueObject/TableRow.php ........................ 40
测量项
对于文本输出,您将获得如下数据
Filesystem count Directories ......................................... 32 Files .............................................. 160 Lines of code count / relative Code ................................... 15 521 / 70.9 % Comments ................................ 6 372 / 29.1 % Total .................................. 21 893 / 100 % Structure count Namespaces .......................................... 32 Classes ............................................ 134 * Constants ........................................ 91 * Methods ....................................... 1 114 Interfaces .......................................... 20 Traits ............................................... 4 Enums ................................................ 1 Functions ........................................... 36 Global constants ..................................... 0 Methods count / relative Non-static .............................. 1 058 / 95 % Static ..................................... 56 / 5 % Public .................................... 875 / 78.5 % Protected .................................. 90 / 8.1 % Private ................................... 149 / 13.4 %
或者以JSON格式
{
"filesystem": {
"directories": 10,
"files": 15
},
"lines_of_code": {
"code": 1064,
"code_relative": 95.4,
"comments": 51,
"comments_relative": 4.6,
"total": 1115
},
"structure": {
"namespaces": 11,
"classes": 14,
"class_methods": 88,
"class_constants": 0,
"interfaces": 1,
"traits": 0,
"enums": 0,
"functions": 5,
"global_constants": 3
},
"methods_access": {
"non_static": 82,
"non_static_relative": 93.2,
"static": 6,
"static_relative": 6.8
},
"methods_visibility": {
"public": 70,
"public_relative": 79.5,
"protected": 2,
"protected_relative": 2.3,
"private": 16,
"private_relative": 18.2
}
}
供应商文件扫描
此工具用例是测量您的代码,而不是第三方库。这就是为什么它默认忽略/vendor目录,以避免巨大的误报。
如果您想测量供应商文件,请使用--allow-vendor选项
vendor/bin/lines measure vendor/rector/rector --allow-vendor