WordPress有自己的代码格式标准,与PHP-FIG的PSR标准不一样。
这对于用了主流框架来说,会有些不适应。
不过我们可以用PHP_CodeSniffer来检测格式,写出“标准”的WordPress代码。
1 要求
WordPress使用PHP_CodeSniffer需要本地安装了:
- PHP5.2+
- PHP_CodeSniffer 2.9.0+(暂不支持3.0+)查看安装教程
2 让phpStorm支持phpcs
因为PHP_CodeSniffer默认没有WordPress代码规范,所以我们需要下载一个。
WordPress代码规范的Github仓库地址:https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards。
1、切换到CodeSniffer的Standards
目录下,然后克隆仓库到wpcs
目录:
git clone -b master https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git wpcs
2、打开PHPStorm,选择菜单Settings → Languages & Frameworks → PHP → Code Sniffer,然后从configuration
下选择local
。
再点击右边...
的浏览按钮,然后配置phpcs文件的路径,保存(windows系统则选择phpcs.bat文件)。
3、以此选择 Settings → Editor → Inspections → PHP → PHP Code Sniffer validation,再下拉选择 WordPress 规范。
说明:
如果 Code standard 列表中没有
WordPress
,则下拉选择Custom
,然后点...
预览按钮。在弹出框中选择第1步的
...\Standards\wpcs
下的WordPress
目录,然后点Refresh
刷新。
4、再回到编辑器,如果代码不符合规范,鼠标旁边就会有提示了。
5、如果要全面监测,选择菜单 Code → Inspect Code 就会列出检查的结果。
3 用phpcbf自动修正代码
1、打开菜单 Settings → Tools → External Tools,点击 +
添加。
对话框配置如下:
- Name:配置名称
- Description:描述
- Program:phpcbf的路径,windows系统用phpcbf.bat文件。
- Parameters:参数,后面会解释。
- Working directory:工作目录,这里用
$ProjectFileDir$
。
2、这里我们创建3个配置。
一个用来修正单个文件;
一个用来修正当前目录下的所有php文件(包含子目录);
一个用来修正当前目录下的所有php文件(包含子目录)。
如下是另外两个配置:
3、然后是phpcbf的参数,完整文档请看:PHP CodeSniffer documentation page。
本例用到的参数:
- –standard:规范名称或目录。
- –extensions:要修正的的文件扩展名(多个用逗号分隔,仅修正目录时有用)。
- -l: 当前目录,不递归。
和一些变量:
- $FileDir$/$FileName$::仅当前目录
- $FileDir$: 解析整个目录。
4、接下来还需要设置快捷键,菜单选择 Settings → Keymap,搜索“phpcbf”。
双击搜索结果,选择“Add keyboard shortcut”,然后输入键盘,例如“Ctrl + Alt + /”:
返回代码界面,按下快捷键,phpcbf 就会自动修正,结果如下。
windows系统会提示错误:
'diff' is not recognized as an internal or external command, operable program or batch file.
在 Parameters
栏中加上 --no-patch
就可以了。
参考资料: