inpsyde / wp-stubs
WordPress Stubs
Requires (Dev)
- php: ^8
- php-stubs/generator: ^v0.8.1
- symfony/process: ^5
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版本
步骤
- 在Composer的
"require-dev"
属性中要求此项目(inpsyde/wp-stubs
) - 创建一个
psalm.xml
配置文件(见 文档) - 在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
中。
步骤
- 在Composer的
"require-dev"
属性中要求“版本化”项目,例如{ "require": { "inpsyde/wp-stubs-versions": "dev-latest" } }
。(注意包名附加了-versions
) - 创建一个
psalm.xml
配置文件(见 文档) - 在Psalm配置中添加以下行
<stubs> <file name="vendor/inpsyde/wp-stubs-versions/latest.php"/> </stubs>
使用这种方法,Composer将只下载最新版本。
最低要求
生成占位符的代码需要PHP 8.0+。然而,在消费此包时,除了能够运行WordPress之外,没有最低要求。
许可证
该仓库是免费软件,并按照MIT许可证条款发布。请参阅许可证获取完整许可证信息。