vena/php-cs-fixer-wordpress

PHP CS Fixer 的自定义规则集,接近 WordPress 编码规范

v1.0.3 2023-06-23 20:13 UTC

This package is auto-updated.

Last update: 2024-09-23 22:48:14 UTC


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 不同,此规则不关心类名。注意:这是一个风险修复器,可能无法准确地区分安全的转换。

鸣谢

PHP CS Fixer

WordPress 编码规范.

测试脚手架是基于 Kuba Werłos 的 PHP CS Fixer: custom fixers 的工作构建的