miguelcolmenares / cf7-stubs
Contact Form 7 function and class declaration stubs for static analysis
Installs: 99
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/miguelcolmenares/cf7-stubs
Requires
- php: ^7.4 || ^8.0
Requires (Dev)
- nikic/php-parser: ^4.18
- php-stubs/generator: ^0.8.3
- php-stubs/wordpress-stubs: ^6.7
- phpstan/phpstan: ^1.10
This package is auto-updated.
Last update: 2025-11-24 21:29:25 UTC
README
Provides stub declarations for Contact Form 7 functions, classes, interfaces, and traits. These stubs can help plugin and theme developers leverage static analysis tools like PHPStan and Psalm.
The package includes two files:
contact-form-7-stubs.php- Auto-generated stubs from Contact Form 7 source codecontact-form-7-types.php- Additional constants and type definitions
Note: The auto-generated stubs may have some PHPStan errors due to missing type hints in the original CF7 code. Including
contact-form-7-types.phphelps reduce these errors by providing essential constants likeMB_IN_BYTES.
Current version: Contact Form 7 6.1.3
Stubs include:
- 308 functions
- 66 classes
- 8 traits
- 0 interfaces
The stubs are generated directly from the Contact Form 7 plugin source code using php-stubs/generator.
Requirements
- PHP 7.4 or 8.0+
Installation
Require this package as a development dependency with Composer.
composer require --dev miguelcolmenares/cf7-stubs
Alternatively you may download contact-form-7-stubs.php directly.
Usage with PHPStan
composer require --dev szepeviktor/phpstan-wordpress
The package szepeviktor/phpstan-wordpress depends on phpstan/phpstan and WordPress stubs. Then include the Contact Form 7 stubs in your PHPStan configuration:
# phpstan.neon.dist parameters: bootstrapFiles: - vendor/miguelcolmenares/cf7-stubs/contact-form-7-stubs.php - vendor/miguelcolmenares/cf7-stubs/contact-form-7-types.php
Note: Make sure WordPress stubs are loaded before Contact Form 7 stubs, as CF7 depends on WordPress classes. The contact-form-7-types.php file provides additional type annotations that improve static analysis accuracy.
Usage with Psalm
Update your Psalm config to include this section:
<stubs> <file name="vendor/miguelcolmenares/cf7-stubs/contact-form-7-stubs.php" /> </stubs>
Furthermore, ensure Contact Form 7 plugin files are not included in <projectFiles>.
Usage in Intellisense
If your IDE has trouble parsing Contact Form 7, you may find the stubs useful for enabling code completion and related features. For example, there are instructions for usage with VSCode's Intelephense extension.
Versioning
This package is versioned to match the Contact Form 7 version from which the stubs are generated.
Generating stubs for a different Contact Form 7 version
-
Run a modern PHP version (7.4+)
-
Clone this repository and
cdinto it -
Update the version in
source/composer.json:"contact-form-7/contact-form-7": "x.x.x"
And update the download URL:
"url": "https://downloads.wordpress.org/plugin/contact-form-7.x.x.x.zip"
-
Run
composer updatein thesourcedirectory (or deletesource/contact-form-7to force re-download) -
Run
./generate.shfrom the root directory
The contact-form-7-stubs.php file should now be updated.
Trademark Notice
"Contact Form 7" is a trademark of Rock Lobster, LLC. This project is not affiliated with, endorsed by, or sponsored by Rock Lobster, LLC or the Contact Form 7 project. This is an independent tool created to provide static analysis support for developers using the Contact Form 7 plugin.
For more information, see the Contact Form 7 Trademark Policy.
License
MIT