johnbillion/wp-compat

PHPStan 扩展,用于验证您的 PHP 代码与指定版本的 WordPress 兼容

资助包维护!
johnbillion

安装: 378

依赖项: 4

建议者: 0

安全性: 0

星标: 8

关注者: 2

分支: 0

开放问题: 1

类型:phpstan-extension

0.2.1 2024-09-09 23:34 UTC

This package is auto-updated.

Last update: 2024-09-10 07:30:10 UTC


README

WPCompat 是一个 PHPStan 扩展,可帮助验证您的 PHP 代码与指定的 WordPress 版本兼容。您可以使用它来确保您的插件或主题与“至少需要”的版本保持兼容。

它通过检查正在使用的任何 WordPress 函数或类方法的 @since 版本是否低于或等于您的代码支持的 WordPress 最低版本来实现。例如,如果您的插件支持 WordPress 6.0 或更高版本,但无条件使用 get_template_hierarchy() 函数,则扩展将引发错误,因为该函数仅在 WordPress 6.1 中引入。

如果您的代码使用有效的 function_exists() 检查进行正确保护,则不会触发错误。扩展目前尚不支持调用方法时的相同 method_exists(),但它已列入待办事项列表。

状态

WPCompat 是一个全新的扩展,其检查还不够全面。一旦稳定,将发布 1.0 版本。

要求

  • PHPStan 1.12 或更高版本
  • PHP 7.4 或更高版本(已测试至 PHP 8.3)

安装

composer require --dev johnbillion/wp-compat

如果您还安装了 phpstan/extension-installer,则一切准备就绪!

手动安装

如果您不想使用 phpstan/extension-installer,请将 extension.neon 包含在项目的 PHPStan 配置中

includes:
    - vendor/johnbillion/wp-compat/extension.neon

配置

将支持的最低 WordPress 版本号添加到 PHPStan 配置文件中的参数。请注意,这必须是一个字符串,因此必须用引号括起来。

parameters:
    WPCompat:
        requiresAtLeast: '6.0'

接受 major.minormajor.minor.patch 格式的任何版本号。

忽略错误

您可以通过使用其错误标识符来忽略此扩展的错误。有关完整信息,请参阅 PHPStan 忽略错误的指南

// @phpstan-ignore WPCompat.functionNotAvailable
wp_foo();

// @phpstan-ignore WPCompat.methodNotAvailable
WP::foo();

技术细节

此扩展不会扫描您的项目以检测 WordPress 函数和方法的 @since 版本。这些信息包含在扩展中包含的 symbols.json 文件中。

symbols.json 文件包含 WordPress 中所有函数和方法的字典,以及它们首次引入的 WordPress 版本。

可以通过运行以下命令重新生成该文件:

composer generate

该文件的 JSON 模式可以在 schemas/symbols.json 中找到。

许可证

MIT