本文目录导读:

- 环境统一(最优先)
- 代码风格与规范(自动化强制)
- 静态分析与质量门禁
- 依赖管理(Composer)
- 代码审查(Code Review)
- 数据库变更管理
- 调试与日志规范
- 代码分割与架构
- 知识传递(结对与文档)
- 最简入门清单
在 PHP 团队协作中,核心挑战往往不是语言本身(PHP 上手相对容易),而是代码规范统一、环境一致性以及高效的协作流程。
以下是针对 PHP 团队协作的完整指南,从工具链到工作流,按优先级排序:
环境统一(最优先)
“在我机器上能跑”是团队协作最大的敌人,PHP 版本差异(7.4 vs 8.2)和扩展依赖极易引发问题。
- 必用工具:Docker,团队应使用
docker-compose.yml定义统一的 PHP 版本、Nginx/Apache、MySQL、Redis 环境。 - 备选工具:Homestead(Laravel 官方)或 Laragon(Windows 快速切换)。
- 禁止:各自在本地安装不同版本的 PHP 或使用不同的数据库版本(如有人用 MySQL 5.7,有人用 8.0,排序规则可能不同)。
代码风格与规范(自动化强制)
PHP 团队必须避免手动改代码风格,用工具强制执行。
- PSR-12:必须遵守 PHP-FIG 发布的编码标准(PSR-1/PSR-12)。
- 工具链:
- PHP-CS-Fixer:自动修复代码风格(空格、换行、缩进)。
- PHP_CodeSniffer (PHPCS):检查代码是否符合规范。
- Git Hooks:在提交代码前(
pre-commit)自动运行这些工具,不符合规范则禁止提交。
静态分析与质量门禁
为了在代码合并前发现潜在 Bug(而不是运行时爆雷)。
- PHPStan 或 Psalm:进行静态分析。
- Level 建议:新项目建议 Level 6 以上;老项目至少 Level 3,并逐步提升。
- PHPUnit:单元测试与集成测试。
- CI/CD 集成:在 GitLab CI 或 GitHub Actions 中配置流水线,代码若未通过测试和静态分析,不能合并到主分支。
依赖管理(Composer)
- 严格锁定版本:
composer.lock文件必须提交到 Git 仓库,这确保了生产环境和团队成员安装的依赖包完全一致。 - 禁止:某个人手动修改
vendor/目录下的源码。 - 仓库管理:对于大型公司,建议搭建 Private Packagist(私有仓库),避免直接使用
vcs拉取 Git 仓库导致的性能问题。
代码审查(Code Review)
- 短生命周期分支:推荐 Git Flow(维护版本)或 GitHub Flow / GitLab Flow(持续交付)。
- Merge Request / Pull Request:所有代码必须经过至少 1 名同事审查后才能合并。
- 静态审查重点:关注 SQL 注入、XSS、逻辑漏洞,以及是否有过度设计(避免写死,但也不要过度抽象)。
数据库变更管理
PHP 项目(特别是 Laravel/ThinkPHP)最头疼的是数据库结构不一致。
- 必用工具:Migrations(迁移)。
- Laravel:
php artisan make:migration - Symfony:Doctrine Migrations
- Laravel:
- 原则:数据库的结构变更(加字段、删表)不能手动在数据库里改,必须通过代码迁移文件来改变。
- 回滚策略:所有迁移必须有
up和down方法,支持回滚。
调试与日志规范
- 禁止:代码里出现
var_dump()或die()残留。 - 统一日志:使用 Monolog(PHP 标准日志库)。
- 断点调试:禁用
Xdebug在命令行下的乱输出,统一配置 IDE 的调试(如 PhpStorm 的 Zero-configuration debugging)。
代码分割与架构
- 禁止:在 Controller 里写业务逻辑和 SQL 查询(瘦控制器,胖模型)。
- 分层:强烈推荐使用 Service 层。
Controller负责接收 HTTP 请求,Service负责业务逻辑,Repository/Model负责数据访问。
- 框架选择:团队应选用统一规范较强的框架(如 Laravel 或 Symfony),不建议使用没有严格目录结构的原生 PHP 或过于轻量的框架,除非团队足够成熟。
知识传递(结对与文档)
- 技术分享:PHP 更新极快(8.0 之后的性能提升巨大),每周/双周安排 30 分钟内部技术分享(如讲 PHP 8 的 Attributes、Enums、Fibers)。
- 代码注释:遵循 PHPDoc 规范,关键是写清楚参数类型和返回值,不要注释“如何做”,要注释“为什么这么做”(业务逻辑的上下文)。
最简入门清单
如果你现在要建立 PHP 团队协作,请立刻执行这三步:
- 装 Docker:统一每个人的开发环境。
- 装 PHP-CS-Fixer + PHPStan:在 Git Commit 时强制检查。
- 开 Pull Request:禁止直接
push到main分支,必须走 Code Review。
这样可以立刻消灭 80% 的“代码冲突”和“环境报错”问题,当你开始写代码时,请时刻提醒自己:“我的同事能看懂这段代码吗?”