vena / php-cs-fixer-wordpress
PHP CS Fixer 的自定义规则集,接近 WordPress 编码规范
v1.0.3
2023-06-23 20:13 UTC
Requires
- php: >=7.0.0
- friendsofphp/php-cs-fixer: ^3.0.0
Requires (Dev)
- phpunit/phpunit: ^9.5
README
此包包含了一个针对 PHP CS Fixer 的规则和修复器的弗兰肯斯坦怪物,旨在满足大多数 WordPress 编码规范。它基于 @PSR2 和 @PhpCsFixer 规则集,并包括一些针对 WordPress 特殊情况的定制修复器。
此包未涵盖的 WPCS 规则包括但不限于
- 文件命名约定
- 制表符与空格
- 几乎所有无法自动修复的错误和警告
在 WPCS 3.0 中,Yoda 风格看起来不再需要,因此在此规则集中也不需要。
我使用 PHP CS Fixer,因为我觉得它比 PHP_CodeSniffer 更容易集成到我的工作流程中。如果您不是我,尤其是如果您需要 WPCS 兼容性,我强烈建议您坚持使用 PHP_CodeSniffer 和 官方 WPCS sniffs。
使用
// In case of not using autoload... require __DIR__ . '/includes.php'; $config = new PhpCsFixer\Config(); $RuleSet = new vena\WordPress\PhpCsFixer\WordPressRuleSet(); return $config ->registerCustomFixers( $RuleSet->getCustomFixers() ) // OPTIONAL. See below. ->registerCustomFixers( array( new vena\WordPress\PhpCsFixer\Fixer\WordPressCapitalPDangitFixer(), ) ) ->setRiskyAllowed( $RuleSet->isRisky() ) ->setIndent( "\t" ) ->setRules( array_merge( $RuleSet->getRules(), array( // OPTIONAL. See below. 'Vena/wp_capital_p_dangit' => true, ) ) ) ->setFinder( PhpCsFixer\Finder::create() ->exclude( 'vendor' ) ->in( __DIR__ ) ) ;
自定义修复器
WordPressParenthesesSpacesFixer
除少数例外,WPCS 指定在开括号后和闭括号前使用空格。
WordPressArrayIndexSpacesFixer
如果将变量用作数组键,它必须由空格包围。所有其他键不应有空格。
WordPressMultilineAssocArrayFixer
对于包含多个项和任何关联键的任何数组,每个项必须出现在新的一行上。注意:此修复器不修复缩进,应与 array_indentation 规则一起使用。
WordPressCapitalPDangitFixer
尝试自动更正字符串和注释中 WordPress 的常见拼写错误。其规则 Vena/wp_capital_p_dangit 不包含在 RuleSet::getRules() 辅助函数中,如果您打算使用它,必须将其添加到您的配置中。与官方 WPCS sniff 不同,此规则不关心类名。注意:这是一个风险修复器,可能无法准确地区分安全的转换。
鸣谢
测试脚手架是基于 Kuba Werłos 的 PHP CS Fixer: custom fixers 的工作构建的