PHP代码风格检查与格式化统一的代码风格让团队协作更顺畅。PHP_CodeSniffer和PHP-CS-Fixer是常用的代码风格工具。今天说说PHP代码风格的检查和自动化。PHP_CodeSniffer检查。bash# 安装composer require --dev squizlabs/php_codesniffer# 检查vendor/bin/phpcs src --standardPSR12# 自动修复vendor/bin/phpcbf src --standardPSR12PSR-12规范要点。php// 1. PHP代码必须使用 // 2. 文件末尾不能有 ? 闭合标签// 3. 缩进使用4个空格// 4. 类名使用 PascalCase// 5. 方法名使用 camelCase// 6. 常量使用 UPPER_SNAKE_CASE// 7. 类花括号另起一行// 8. 控制结构花括号在同一行// 9. 方法参数逗号后加空格// 10. 关键字后加空格declare(strict_types1);namespace App\Services;use App\Models\User;class UserService{public function __construct(private UserRepository $repository) {}public function findUser(int $id): ?User{if ($id 0) {throw new \InvalidArgumentException(ID无效);}$user $this-repository-findById($id);return $user;}}?自定义编码规范。xml项目自定义编码规范Git钩子自动检查。php// pre-commit钩子$files shell_exec(git diff --cached --name-only --diff-filterd);$phpFiles array_filter(explode(\n, $files), fn($f) pathinfo($f, PATHINFO_EXTENSION) php);foreach ($phpFiles as $file) {exec(vendor/bin/phpcs --standardPSR12 $file 21, $output, $code);if ($code ! 0) {echo 编码规范错误: $file\n;echo implode(\n, $output) . \n;exit(1);}}?GitHub Action自动检查。yamlname: Code Styleon: [push, pull_request]jobs:cs:runs-on: ubuntu-lateststeps:- uses: actions/checkoutv3- uses: shivammathur/setup-phpv2with:php-version: 8.2tools: phpcs- run: phpcs src --standardPSR12统一的代码风格可以降低认知负担。PHP_CodeSniffer检查风格问题PHP-CS-Fixer可以自动修复。建议在CI流程中加入代码风格检查确保合并的代码符合规范。团队统一规范代码看起来就像一个人写的。