本文目录导读:

我可以根据 PHP 社区、主流框架(如 Laravel、Symfony)及现代工程实践,为你梳理出该类项目最常参考的关键指标,你可以根据你项目的类型(如 API 服务、传统 MVC、命令行工具)对照下方清单进行排查:
性能与资源指标
这是 PHP 项目最重要的硬性指标,尤其在处理高并发请求时:
- 请求响应时间(TTFB 及总耗时):关注 P95 和 P99 分位数,而非平均值。
- 并发能力(QPS/TPS):每秒能处理的请求数/事务数。
- 内存峰值(Memory Peak):通过
memory_get_peak_usage()检测,防止PHP Fatal error: Allowed memory size。 - CPU 占用率:特别是同步阻塞场景下的 CPU 密集度。
- OpCache 命中率:生产环境必须开启
opcache,低命中率意味着代码未编译缓存,性能极差。 - 数据库查询数:单次页面请求发起的 SQL 次数(参考 N+1 问题)。
代码质量与可维护性指标
- 圈复杂度(Cyclomatic Complexity):衡量函数/方法的复杂程度(可通过 PHP Mess Detector 检测,建议 < 10)。
- 代码重复率:通过 PHPCPD 检测重复代码块。
- 测试覆盖率:使用 PHPUnit 结合 Xdebug,通常要求核心模块达到 80% 以上。
- 代码规范(PSR-12):是否符合 PHP-FIG 标准(PHPCS 检测)。
- 耦合度与内聚度:Laravel 中的
Service Provider数量、依赖注入的合理性。
安全指标(PHP 项目极易忽视)
- 依赖漏洞数量:通过
composer audit或sensiolabs/security-checker检测composer.lock中的 CVE 漏洞。 - SQL 注入风险:是否强制使用
PDO预处理语句(prepare/bindValue)。 - XSS 防护:是否对输出进行
htmlspecialchars()或使用模板引擎的自动转义。 - CSRF 防护:表单是否带
csrf_token。 - 用户上传文件类型:是否仅校验
Content-Type而非MIME和文件头。
架构与框架指标
如果你的项目基于 Laravel 或 Symfony:
- 中间件数量:是否过多导致请求管道过长。
- Model 的 N+1 查询:是否使用了
with()预加载。 - 缓存命中率:Redis/Memcached 用于 Session、视图或查询缓存的命中情况。
- 任务队列使用率:是否合理将耗时任务(如邮件、同步第三方)转入
Queue。 - Composer 依赖数量:生产环境是否过度引入冗余包(结合
composer why分析)。
运维与可观测性指标
- 错误日志级别:
error_reporting(E_ALL)是否开启,log_errors是否打开。 - 慢日志:PHP-FPM 的
request_slowlog_timeout设置。 - 健康检查端点:
/health接口的返回状态。 - 日志结构化:是否输出 JSON 格式日志以便接入 ELK/Loki。
如果你能提供项目代码或 composer.json 文件,我可以帮你:
- 分析依赖包中的安全漏洞。
- 检查是否漏配了 Nginx/Apache 的 PHP 优化参数(如
realpath_cache_size)。 - 定位代码中的性能瓶颈(如过度使用反射、正则回溯)。
请补充项目细节,我可以给到更精确的答案。