工具简介
PHP 代码格式化工具可以把杂乱、压缩过或缩进不一致的 PHP 代码整理成符合社区规范的整洁代码。它支持现代 PHP 语法,包括类型化属性和只读属性、构造函数属性提升、箭头函数、枚举、match 表达式和注解(attributes)。
底层运行的是 Prettier 加官方 PHP 插件,很多 Laravel 和 Symfony 团队在编辑器和 pre-commit 钩子里用的就是这个组合,所以结果会和你项目里的工具链保持一致。
使用方法
- 粘贴 PHP 代码,或打开一个
.php文件。短小的代码片段可以不写开头的<?php标签。 - 输入的同时,右侧就会显示格式化后的代码。
- 按需调整选项:
- 缩进:4 个空格是 PSR 规范的要求,也可以选 2 个空格或制表符。
- 每行宽度:超过宽度的行会在语法允许的位置换行。
- 大括号位置:类和函数的大括号另起一行(PER / PSR-12),或者放在同一行。
- PHP 版本:代码需要兼容的最低版本。
- 使用单引号,以及多行列表是否 加尾随逗号。
- 复制或下载结果。
如果代码有语法错误,提示信息会说明解析器期望的内容,以及它停下的行号和列号。
示例
示例是一个挤在一起的 Laravel 风格控制器:分组的 use 语句、属性数组、构造函数属性提升、表单验证调用、写在一行里的 if,以及带箭头函数的 array_map。格式化之后,每个方法的大括号换到单独一行,运算符和 => 两边补上空格,if 的语句体展开,过长的 response()->json() 调用被拆成每行一个数组元素,并加上尾随逗号。
不会改动的内容
格式化只调整排版。它不会重命名变量、调整 use 语句顺序、把 array() 改成短数组语法,也不会修改逻辑。注释(包括 PHPDoc 文档块)都会保留,并跟着周围的代码重新缩进。
小技巧
- 把每行宽度和 PHP 版本设成和项目里 Prettier 或 PHP-CS-Fixer 配置一样的值,可以避免 diff 里出现无关改动。
- 从日志或报错堆栈里复制出来的代码片段,格式化之后会好读很多。
- 在 issue 里分享代码前先格式化一下,评审的人就能专注于代码逻辑。
常见问题
› 遵循的是哪种代码规范?
默认按 PER 编码规范输出,它是 PHP-FIG 发布的 PSR-12 的后续版本。类和方法的大括号另起一行,控制结构的大括号留在同一行,缩进为 4 个空格。
› 为什么要选 PHP 版本?
有些语法只在特定版本之后才合法。例如参数列表里的尾随逗号需要 PHP 8.0,目标版本较老时格式化程序就不会加上。请选择代码需要兼容的最低版本。
› 能格式化 HTML 和 PHP 混写的文件吗?
能。支持带有内联 HTML 和短输出标签的模板文件。其中的 PHP 部分会被格式化,中间的 HTML 保持原样。
› 我的代码会被上传吗?
不会。格式化完全在浏览器里完成,不会向服务器发送任何内容。