如何用PHP8设置符合WordPress编码标准的phpc?

时间:2021-03-26 作者:jost21

正在尝试设置PHP_CodeSniffer 使用WordPress Codings Standards. 我在跑步PHP v8.0.3phpcs v3.5.8. (2021 3月)。

WPCS通过以下方式安装:

git clone -b master https://github.com/WordPress/WordPress-Coding-Standards.git wpcs
安装工作正常,但运行phpcs会导致此错误:

phpcs: Uncaught TypeError: vsprintf(): Argument #2 ($values) must be of type array, 
string given in file.php
这显然是issue 使用WPC并固定在commit. 提交似乎还没有合并到master中,所以我查看了develop分支。这似乎可以解决上述问题,但会导致另一个错误:

phpcs: Referenced sniff "PHPCSUtils" does not exist    
提议的solution 要解决此问题,请切换到主分支,这使我回到原点。

所以两者都是masterdevelop由于不同的原因,不工作。我想可以手动更改主分支中的源代码,但这似乎不是一个可持续的解决方案。

有没有更好的方法使PHPC与当前版本的PHP和WPC一起工作?

1 个回复
SO网友:jost21

显然是PHPC(link to issue) 和WPC(link to issue) 此时不要使用PHP8,直到下一个版本才会使用。

因此,建议改用PHP 7.4。

"E;“黑客”;选项

在将我的系统降级到PHP7之前,我尝试了这个黑客程序。这似乎对我有用,至少对我做的简短测试是这样。但这可能会引起任何问题,所以use it at you own risk.

替换本地ControlStructureSpacingSniff.php 文件(in/WordPress/Sniffs/WhiteSpace/ 复制的repo或composer安装的供应商文件夹的onedevelop 树枝