人工制造/psalm-plugin-wordpress

WordPress占位符和插件用于Psalm静态分析。

安装次数: 281 133

依赖: 15

建议: 0

安全: 0

星级: 67

关注者: 24

分支: 17

开放问题: 2

类型:psalm-plugin

3.1.1 2024-02-29 11:38 UTC

This package is auto-updated.

Last update: 2024-08-31 00:25:56 UTC


README

Packagist Packagist

编写类型安全的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_filtersdo_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社区维护。