php-loc 不是 composer 库,不能用 composer require 安装,而应通过 composer global require phploc/phploc 全局安装并配置 path,或直接下载 phar 文件运行;其统计默认含空行和注释,需关注“non-comment lines of code”指标。

PHP-Loc 不是 Composer 库,不能用 composer require 安装
PHP-Loc 是一个独立的命令行工具(CLI),不是设计为被其他 PHP 项目依赖的库,所以它没有 composer.json、不发布在 Packagist 上,也不支持 composer require。试图运行 composer require phploc/phploc 会报错:Package phploc/phploc not found —— 这是最常见的卡点。
正确做法是全局安装可执行二进制文件,而非“引入”到项目中。它和 phpunit、phpcs 类似,属于开发辅助工具,不是业务依赖。
推荐方式:用 Composer 全局安装 phploc 可执行命令
Composer 支持全局安装 PHAR 包,官方维护的 phploc 提供了标准安装方式:
- 确保已启用
~/.composer/vendor/bin(或 Windows 的%APPDATA%\Composer\vendor\bin)在系统PATH中 - 运行
composer global require phploc/phploc(注意:不是phploc/phploc的旧别名,新版包名就是phploc/phploc) - 安装完成后,终端直接执行
phploc,应输出版本号和帮助信息
验证是否生效:phploc --version。如果提示 command not found,大概率是 PATH 没配置好,不是安装失败。
统计项目规模时,路径和排除规则要显式指定
phploc 默认只扫描当前目录下的 *.php 文件,但实际项目常含 vendor/、tests/、build/ 等干扰目录,不排除会导致结果严重失真。
常用命令示例:
phploc --exclude vendor --exclude tests --exclude build src
关键点:
-
--exclude可多次使用,值为相对路径(相对于命令执行位置),不是 glob 模式 - 不要写成
--exclude="vendor/*",phploc不识别通配符,只认目录名 - 若源码在
app/而非src/,需把src换成app - 它默认统计 LOC、CLOC、NCLOC、Classes、Methods 等,无需额外参数
CI/CD 或无全局环境时,用 PHAR 直接运行更可靠
某些服务器禁用全局 Composer,或 CI 环境未预装,这时下载官方 PHAR 是最稳妥的方式:
- 访问 GitHub Releases 页面,找最新版
phploc-x.x.x.phar - 下载后加执行权限:
chmod +x phploc-7.0.1.phar - 直接运行:
./phploc-7.0.1.phar --exclude vendor src
PHAR 方式绕过 Composer 依赖和 PATH 配置问题,适合脚本化调用。注意 PHAR 文件本身不含自动更新机制,需手动升级。
真正容易被忽略的是:PHP-Loc 统计的是物理代码行(包括空行和注释),而多数人关心的是“有效逻辑行数”(NCLOC)。务必检查输出里 Non-Comment Lines of Code 这一项,而不是第一行的 Lines of Code —— 后者对评估真实规模意义不大。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











