人工制造 / psalm-plugin-wordpress
WordPress占位符和插件用于Psalm静态分析。
3.1.1
2024-02-29 11:38 UTC
Requires
- ext-simplexml: *
- php-stubs/wordpress-globals: ^0.2.0
- php-stubs/wordpress-stubs: ^6.0
- php-stubs/wp-cli-stubs: ^2.7
- vimeo/psalm: ^5 || ^6
- wp-hooks/wordpress-core: ^1.3.0
Requires (Dev)
- humanmade/coding-standards: ^1.2
- phpunit/phpunit: ^9.0
- psalm/plugin-phpunit: ^0.18.4
README
编写类型安全的WordPress代码。
此Psalm插件提供所有WordPress和WP CLI占位符,因此您的基于WordPress的项目或插件将具有对WordPress API调用的类型信息。这确保了您的WordPress插件或主题具有更少的错误!
- WordPress核心的所有占位符
- WP CLI占位符
apply_filters
返回值的类型。add_filter
/add_action
的类型- 使用您自己的占位符的配置选项
安装
有关将Psalm引入项目的更详细指南,请参阅完整的Psalm文档。
安装Psalm后,安装此包并启用插件
composer require --dev humanmade/psalm-plugin-wordpress
./vendor/bin/psalm-plugin enable humanmade/psalm-plugin-wordpress
配置
如果您遵循安装说明,psalm-plugin
命令将添加此插件配置到psalm.xml
配置文件。
<?xml version="1.0"?> <psalm xmlns="https://getpsalm.org/schema/config"> <!-- project configuration --> <plugins> <pluginClass class="PsalmWordPress\Plugin" /> </plugins> </psalm>
有关插件的更多详细信息,请参阅Psalm网站。
默认WordPress占位符
如果您不想使用此插件中作为其一部分的默认WordPress类/方法/函数占位符,必须将useDefaultStubs
设置为false
<pluginClass class="PsalmWordPress\Plugin"> <useDefaultStubs value="false" /> </pluginClass>
默认WordPress钩子
如果您不想使用此插件中作为其一部分的默认WordPress钩子,必须将useDefaultHooks
设置为false
<pluginClass class="PsalmWordPress\Plugin"> <useDefaultHooks value="false" /> </pluginClass>
自定义钩子
您还可以提供自定义钩子
<pluginClass class="PsalmWordPress\Plugin"> <hooks> <directory name="some/dir/hooks" recursive="true" /> <directory name="/absolute/other/dir/hooks" /> <file name="my-special-hooks/actions.json" /> </hooks> </pluginClass>
如果提供了目录,插件将搜索以下文件
actions.json
filters.json
hooks.json
插件期望钩子的JSON表示形式,如wp-hooks/generator中所述。
需要传递所有参数
如果您希望在所有情况下apply_filters
和do_action
没有相同数量的参数时引发错误,必须将requireAllParams
设置为true
<pluginClass class="PsalmWordPress\Plugin"> <requireAllParams value="true" /> </pluginClass>
WordPress路径
为了帮助Psalm分析您的项目,您可能需要定义一些WordPress的默认全局常量,例如路径常量。
<?xml version="1.0"?> <psalm autoloader="tests/bootstrap.php" xmlns="https://getpsalm.org/schema/config"> <!-- project configuration --> </psalm>
以下示例引导文件是为Bedrock安装准备的
<?php require_once dirname( __DIR__ ) . '/config/application.php'; define( 'WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/mu-plugins' ); define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' );
您可以考虑引入WordPress的默认常量函数,但这需要更多的模板代码,以便这些函数能够有效地定义常量。
有兴趣贡献吗?
随时通过PR修复错误或添加功能!
此外,请查看Psalm的贡献指南。
是谁制作的
由@joehoyle创建,由Psalm社区维护。