laravel pint 可解决 php 团队代码风格不统一问题,需依次完成安装验证、配置 pint.json、选择预设与自定义规则、设置 exclude 路径、集成 pre-commit 钩子。

如果您在团队协作中发现 PHP 代码缩进不一、use 语句顺序混乱、数组语法混用等风格差异,则很可能是缺乏统一的静态代码分析与自动修复机制。Laravel Pint 作为官方轻量级工具,可直接介入项目结构完成风格标准化。以下是配置该工具的具体路径:
一、确认安装并验证执行环境
确保 Pint 已作为开发依赖存在于项目中,且可执行文件能被系统识别。Laravel 10.28+ 默认自带,但仍建议显式安装以保证版本可控和跨环境一致性。
1、在项目根目录运行 composer require laravel/pint --dev 安装依赖。
2、检查 vendor/bin/pint 文件是否存在,并确认其具有可执行权限(Linux/macOS 下运行 chmod +x vendor/bin/pint)。
3、执行 ./vendor/bin/pint --version 输出版本号,验证安装成功。
二、创建并校验 pint.json 配置文件
pint.json 是 Pint 唯一识别的配置入口,必须位于项目根目录,命名严格为小写,且 JSON 格式无语法错误;任何格式偏差将导致 Pint 静默回退至默认 preset。
1、在项目根目录新建文件,命名为 pint.json(不可加点、不可大写、不可带扩展名后缀如 .config)。
2、写入标准配置,例如指定 Laravel 风格并覆盖全部源码路径:
{ "preset": "laravel", "paths": ["app", "config", "database", "routes", "tests", "src", "packages"] }
3、立即执行 ./vendor/bin/pint --test,观察是否报错或输出“no files found”——若出现此类提示,说明 paths 中路径不存在或拼写错误,需逐项核对。
三、按需启用预设风格与自定义规则
Pint 支持三种主流 preset:laravel(默认)、psr12、symfony,每种对应一套完整规则集;如需微调,必须通过 rules 字段声明,且规则名称须与 PHP-CS-Fixer 兼容。
1、将 preset 切换为 PSR-12 规范,在 pint.json 中设置 "preset": "psr12"。
2、强制使用短数组语法并规范二元运算符空格,添加 rules 块:
"rules": { "array_syntax": {"syntax": "short"}, "binary_operator_spaces": {"default": "single_space"} }
3、保存后再次运行 ./vendor/bin/pint --test,确认规则生效且无解析异常。
四、排除非目标文件与目录
避免对第三方代码、生成文件或模板逻辑块进行误格式化,需通过 exclude 显式声明跳过路径;注意 exclude 不支持 glob 表达式,仅接受精确目录名或文件名列表。
1、在 pint.json 的顶层添加 exclude 字段,例如跳过测试固件与 Blade 相关路径:
"exclude": ["tests/Fixtures", "resources/views", "storage", "vendor"]
2、确保所列路径均为相对于项目根目录的相对路径,不以斜杠开头,也不含通配符(如 **/*.php 将被完全忽略)。
3、执行 ./vendor/bin/pint --test 并检查输出中是否仍包含被 exclude 的路径——若存在,说明路径名与实际目录不一致,需修正。
五、集成 Git 提交前自动化检查
为防止不符合规范的代码进入仓库,可在 pre-commit 阶段调用 Pint 执行只读检查,失败则中断提交流程。此方式无需额外服务或守护进程,仅依赖 Git Hook 脚本即可实现。
1、在项目根目录创建 .git/hooks/pre-commit 文件(无扩展名),赋予可执行权限:chmod +x .git/hooks/pre-commit。
2、在该文件中写入以下内容:
#!/bin/sh\n./vendor/bin/pint --test || exit 1
3、尝试修改一个 PHP 文件并执行 git commit,若格式不合规,命令将输出差异并终止提交,提示开发者先运行 ./vendor/bin/pint 修复。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











