inpsyde / wp-stubs

WordPress Stubs

安装次数: 49,614

依赖项: 6

建议者: 0

安全: 0

星级: 15

关注者: 5

分支: 0

开放问题: 0

类型:项目

dev-main 2024-09-11 00:26 UTC

This package is auto-updated.

Last update: 2024-09-11 00:26:40 UTC


README

此存储库包含自动生成的WordPress占位符,用于与静态分析工具一起使用。

常见问题解答

  • 为什么是这个而不是“”?

此项目的目的是

  • 在同一分支/版本中拥有多个WP版本
  • 不是 为全局变量提供占位符,而是为常量提供占位符
  • 拥有一个超级简单的“覆盖”方法。通过在fixtures.php 文件中声明占位符,可以覆盖WordPress中对函数、类和接口的声明。这样,就很容易修复WordPress中的不正确DocBlocks,并使用静态分析器支持的“高级”doc块(例如数组形状、类型别名、条件返回类型等)。

这是如何工作的

每天,GitHub Actions工作流都会调用wp.org API以查找新的WordPress版本。

如果找到新版本,它将生成并保存它们的占位符(使用https://github.com/php-stubs/generator),同时更新“最新”占位符。

如何使用

主要用途是用于静态分析工具,例如 Psalm

方法1:获取所有WordPress版本

步骤

  1. 在Composer的 "require-dev" 属性中要求此项目(inpsyde/wp-stubs
  2. 创建一个 psalm.xml 配置文件(见 文档
  3. 在Psalm配置中添加以下行
    <stubs>
        <file name="vendor/inpsyde/wp-stubs/stubs/latest.php"/>
    </stubs>

您可以将 latest.php 替换为特定的WP版本。请参阅 /stubs 目录 中的可用版本。

注意:在该文件夹中,两位数的版本号(如 5.9)并不一定表示WordPress版本 5.9,而是 5.9.* 系列中的最新版本。因此,如果您使用Composer要求WordPress,并且有类似 5.9.* 的要求,使用 stubs/5.9.php 占位符文件将匹配当前安装的版本。

“stubs”文件夹包含多个版本的占位符,以便您可以选择,但也可以使用CI脚本加载不同的版本来针对不同的占位符进行测试。

但是,包的大小可能会变得很大,如果不从IDE的分析中排除,可能会影响IDE的性能。

方法2:获取特定版本

先决条件

在您的 composer.json 中声明一个 仓库,例如

{
  "repositories": [
    {
      "type": "composer",
      "url": "https://raw.githubusercontent.com/inpsyde/wp-stubs/main",
      "only": [
        "inpsyde/wp-stubs-versions"
      ]
    }
  ]
}

针对Inpsyde开发者的说明:在Private Packagist中的Inpsyde组织反映了上述仓库,因此对于Inpsyde的私有仓库,这可能不是必需的,因为Private Packagist可能已经添加到仓库的 composer.json 中。

步骤

  1. 在Composer的 "require-dev" 属性中要求“版本化”项目,例如 { "require": { "inpsyde/wp-stubs-versions": "dev-latest" } }。(注意包名附加了 -versions
  2. 创建一个 psalm.xml 配置文件(见 文档
  3. 在Psalm配置中添加以下行
    <stubs>
        <file name="vendor/inpsyde/wp-stubs-versions/latest.php"/>
    </stubs>

使用这种方法,Composer将只下载最新版本。

最低要求

生成占位符的代码需要PHP 8.0+。然而,在消费此包时,除了能够运行WordPress之外,没有最低要求。

许可证

该仓库是免费软件,并按照MIT许可证条款发布。请参阅许可证获取完整许可证信息。