行数
适用于任何环境的PHP项目快速规模测量CLI工具
有哪些杀手级特性?
- 可在任何地方安装 - 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
↓
最长文件 行数
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
测量项目
对于文本输出,您将获得如下数据:
文件系统 数量
目录 ................................................. 32
文件 ................................................ 160
代码行数 数量 / 相对比例
代码 ................................... 15 521 / 70.9 %
注释 ................................... 6 372 / 29.1 %
总计 .................................. 21 893 / 100 %
结构 数量
命名空间 ............................................. 32
类 .................................................. 134
* 常量 .............................................. 91
* 方法 ........................................... 1 114
接口 ................................................. 20
特性 .................................................. 4
枚举 .................................................. 1
函数 ................................................. 36
全局常量 .............................................. 0
方法 数量 / 相对比例
非静态 ................................. 1 058 / 95 %
静态 ..................................... 56 / 5 %
公共 .................................... 875 / 78.5 %
受保护 ................................... 90 / 8.1 %
私有 .................................... 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文件
此工具的用例是测量您的代码,而不是第三方库。因此,默认情况下它会忽略/vendor
目录以避免产生大量误报。
如果您也想测量vendor文件,请使用--allow-vendor
选项:
vendor/bin/lines measure vendor/rector/rector --allow-vendor