axepress / wp-graphql-cs
针对 WPGraphQL 生态系统的 PHP_CodeSniffer 规则(嗅探器)。
Requires
- php: >=7.2
- automattic/vipwpcs: ^3.0
- phpcompatibility/phpcompatibility-wp: ^2.1
- slevomat/coding-standard: ^8.12
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-05 18:33:44 UTC
README
本项目是用于验证为 WPGraphQL 生态系统开发的代码的 PHPCS 规则和嗅探器的集合。它使用了以下规则:
为什么使用这些标准?
共享编码标准是确保代码库一致性的好方法。它们还有助于避免常见的陷阱和错误,从而有助于减少错误和技术债务。
这类问题在 WPGraphQL 生态系统中尤为重要,我们必须创建健壮、高效且类型安全的代码,这些代码通常依赖于旧版 PHP 和 WordPress 代码。
此外,通过确保所有开发者遵循相同的准则和最佳实践,我们可以使项目协作变得更加容易,并确保它们与 WPGraphQL 核心和其它生态系统插件保持更新和兼容。
虽然目前这个规则集只包含来自其他项目的嗅探器集合,但我们希望在未来添加更多自定义嗅探器,以帮助解决 WPGraphQL 生态系统中常见的問題(例如,确保 GraphQL 类型命名正确、描述格式、懒加载字段等)。
规则集
项目提供了 WPGraphQL 社区可能需要的嗅探器超集。如果您使用 WPGraphQL
标准,您将获得所有检查。
当调用 phpcs
时,您可以使用以下标准名称来选择要使用的嗅探器。
WPGraphQL
- 包含项目中所有嗅探器的完整集合。WPGraphQL-Minimum
: WPGraphQL 项目的基礎规则集。WPGraphQL-Strict
: 包含WPGraphQL-Minimum
规则集中的所有嗅探器,以及额外的功能嗅探器,帮助您生成企业级代码。WPGraphQL-Extra
: 包含WPGraphQL-Strict
规则集中的所有嗅探器,以及额外的嗅探器,以保持项目代码的一致性。WPGraphQL-Docs
: 包含文档块和内联注释的嗅探器。
WPGraphQL-Core
: 包含 WPGraphQL 核心项目 目前使用的所有嗅探器。这包括WPGraphQL-Strict
和WPGraphQL-Docs
规则集,并禁用了一些嗅探器。
安装
推荐使用 Composer 安装此项目。运行以下命令将其安装到您的项目中
composer require --dev axepress/wp-graphql-cs
这将安装PHPCS的最新兼容版本以及所有外部嗅探器和规则集,因此无需将它们包含在您的依赖项列表中。
我们推荐使用PHP_CodeSniffer Standards Composer Installer 插件,它可以处理所有已安装标准的注册,因此无需手动设置installed_paths
配置值,无论是单一标准还是多个标准。
有关安装和使用的更多信息,请参阅WPCS 读取文件。
配置您的自定义规则集。
为了快速启动您的项目,您可以复制示例配置文件到您的项目根目录,并将其重命名为
.phpcs.xml.dist
,然后按照以下说明更新各个值。
在您的项目中使用这些嗅探器的最佳方式是创建一个扩展本项目提供的规则集的本地配置文件。当您将此文件命名为.phpcs.xml
、phpcs.xml
、.phpcs.xml.dist
或phpcs.xml.dist
时,PHP_CodeSniffer将自动定位它,只要它位于您运行CodeSniffer的目录或其上层目录中。
在此文件中,您需要配置以下内容
testVersion
- 您想要测试的最小PHP版本。这应该是您希望支持的PHP最低版本。虽然WPGraphQL官方支持PHP 7.1+,但我们建议测试PHP 7.3(当前积极测试的最低版本)或更高版本。minimum_wp_version
- 您想要测试的最小WordPress版本。这应该是您希望支持的最低WordPress版本。虽然WPGraphQL官方支持WordPress 5.0+,但我们建议测试WordPress 5.6(当前积极测试的最低版本)或更高版本。WordPress.WP.I18n.text_domain
- 您项目中使用的文本域。这被用于WordPress.WP.I18n
嗅探器来检查所有可翻译的字符串是否分配给一个文本域。我们建议使用格式wp-graphql-<项目名称>
。WordPress.NamingConventions.PrefixAllGlobals
- 您项目中使用的所有前缀列表。这被用于WordPress.NamingConventions.PrefixAllGlobals
嗅探器来检查所有全局函数、类、常量和变量是否已加前缀。