skaut/wordpress-stubs

High quality stubs for WordPress functions and classes

2.8.1 2023-12-23 22:25 UTC

README

GitHub Actions

This repo contains stubs for WordPress functions and classes to be used with phan or phpstan. This allows for better type-checking of a codebase as the stubs all have type information.

Alternatives

php-stubs/wordpress-stubs

The php-stubs/wordpress-stubs project uses stubs that are exported directly from WordPress source code. That means that the stubs are more complete and updated quicker. On the other hand, a lot of functions and classes are documented poorly in WordPress and array types are almost never typed properly (i. e. just array<mixed>). This package has all the stubs created by hand, so they are much more precise.

Installation

$ composer require --dev skaut/wordpress-stubs

Add to your .phan/config.php:

return [
	'directory_list' => [
		'vendor/skaut/wordpress-stubs/stubs'
	],
	'exclude_analysis_directory_list' => [
		'vendor/skaut/wordpress-stubs/stubs'
	]
];

Add to your phpstan.neon:

parameters:
	scanDirectories:
	  - vendor/skaut/wordpress-stubs/stubs
	scanFiles:
	  - vendor/skaut/wordpress-stubs/stubs/WordPress/functions.php
	dynamicConstantNames:
	  - WP_DEBUG
	  - ...

(you have to list dynamic constants yourself)

Completeness

The stubs are not complete. If you spot any missing functions or classes, please open an issue.