人工编制/编码规范

人工编制编码规范

安装数: 316,267

依赖关系: 45

建议者: 0

安全性: 0

星标: 151

关注者: 27

分支: 19

开放性问题: 43

类型:phpcodesniffer-standard


README

这是人工编制风格指南的编码化版本。我们包括 phpcs、ESLint 和 stylelint 规则。

贡献

我们欢迎对这些标准做出贡献,并希望使体验尽可能无缝。有关贡献的更多信息,请参阅 CONTRIBUTING.md 文件。

设置

每个规则集都可以通过 Composer 或 NPM 单独使用。要安装所需的规则集,请使用以下命令之一

  • PHPCS: composer require --dev humanmade/coding-standards
  • ESLint: npx install-peerdeps --dev @humanmade/eslint-config@latest
  • stylelint: npm install --save-dev stylelint @humanmade/stylelint-config

使用 PHPCS

运行以下命令以运行标准检查

vendor/bin/phpcs --standard=vendor/humanmade/coding-standards .

我们使用 DealerDirect phpcodesniffer-composer-installer 包来处理 PHPCS 的 installed_paths,当首次安装 HM 规则集时。如果您遇到诸如 ERROR: Referenced sniff "WordPress-Core" does not exist 的错误,请删除 composer.lock 文件和 vendor 目录,然后重新安装 Composer 依赖项。

这里的最后一个 . 指定了要测试的文件;这通常是当前目录(.),但您也可以通过指定它们来选择性检查文件或目录。

您可以将此添加到您的 Travis YAML 文件中作为测试

script:
  - phpunit
  - vendor/bin/phpcs --standard=vendor/humanmade/coding-standards .

排除文件

此标准包括对 .phpcsignore 文件的特殊支持(将来,这应该被 集成到 phpcs 本身)。只需在根目录中放置一个 .phpcsignore 文件(您将从那里运行 phpcs)。

此文件的格式类似于 .gitignore 和类似文件:每行一个模式,注释行应以 # 开头,仅包含空白的行将被忽略

# Exclude our tests directory.
tests/

# Exclude any file ending with ".inc"
*\.inc

注意,模式应与 PHP_CodeSniffer 风格 匹配:为方便起见,将 * 转换为 .*,但所有其他字符都像正则表达式一样工作。

模式相对于 .phpcsignore 文件所在的目录。在加载时,它们将被转换为绝对模式:例如,在 /your/dir/.phpcsignore 中的 */tests/* 将成为正则表达式 /your/dir/.*/tests/.*这与常规 PHP_CodeSniffer 实践不同。

高级/扩展

如果您想添加更多规则(例如 WordPress.com VIP 特定规则)或自定义 PHPCS 默认值,您可以创建自己的自定义标准文件(例如 phpcs.ruleset.xml

<?xml version="1.0"?>
<ruleset>
	<!-- Files or directories to check -->
	<file>.</file>

	<!-- Path to strip from the front of file paths inside reports (displays shorter paths) -->
	<arg name="basepath" value="." />

	<!-- Set a minimum PHP version for PHPCompatibility -->
	<config name="testVersion" value="7.2-" />

	<!-- Use HM Coding Standards -->
	<rule ref="vendor/humanmade/coding-standards" />

	<!-- Add VIP-specific rules -->
	<rule ref="WordPress-VIP" />
</ruleset>

然后您可以在运行 phpcs 时引用此文件

vendor/bin/phpcs --standard=phpcs.ruleset.xml .

排除/禁用检查

您还可以自定义规则,以排除不适用于项目的元素

<rule ref="vendor/humanmade/coding-standards">
	<!-- Disable short array syntax -->
	<exclude name="HM.Debug.ForceShortArray" />
</rule>

规则也可以在行内禁用。phpcs 规则可以通过// @codingStandardsIgnoreLine 注释禁用,而 ESLint 规则可以通过/* eslint disable ... */ 注释禁用。

要找出这些代码的含义,在运行 phpcs 时指定 -s,代码将被输出。您可以使用完整代码,或部分代码来禁用错误组。

包含的检查

phpcs 标准基于来自 WordPress 编码规范WordPress-VIP 标准,并进行了 定制和补充,以符合我们的风格指南。

使用 ESLint

ESLint 包包含一个 ESLint 配置,您可以使用它来验证您的 JavaScript 代码风格。虽然可以通过 phpcs 运行 ESLint,但我们建议您直接通过 npm 安装和使用 eslint 或使用 linter-bot。有关如何配置 ESLint 以使用 Human Made 编码规范的信息,请参阅 @humanmade/eslint-config 包的 README

一旦您已安装 @humanmade/eslint-config npm 包,您只需指定您的项目级别的 ESLint 文件扩展了 humanmade 配置。如果您全局安装(npm install -g @humanmade/eslint-config),您也可以通过 eslint -c humanmade . 从命令行直接引用配置。

或者,您也可以创建自己的配置并扩展这些规则

.eslintrc

{
  "extends": "@humanmade"
}

使用 stylelint

stylelint 包包含一个 stylelint 配置,您可以使用它来验证您的 CSS 和 SCSS 代码风格。我们建议您直接通过 npm 安装和使用 stylelint 或使用 linter-bot。有关如何配置 stylelint 以使用 Human Made 编码规范的信息,请参阅 @humanmade/stylelint 包的 README

要将 Human Made 规则集成到您的项目中,添加一个 .stylelintrc 文件并扩展这些规则。您也可以添加自己的规则和覆盖以进行进一步的定制。

{
  "extends": "@humanmade/stylelint-config",
  "rules": {
    ...
  }
}