定制 miguelcolmenares/cf7-stubs 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

miguelcolmenares/cf7-stubs

最新稳定版本:v6.1.3.1

Composer 安装命令:

composer require miguelcolmenares/cf7-stubs

包简介

Contact Form 7 function and class declaration stubs for static analysis

README 文档

README

Packagist License

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 code
  • contact-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.php helps reduce these errors by providing essential constants like MB_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

  1. Run a modern PHP version (7.4+)

  2. Clone this repository and cd into it

  3. 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"
  4. Run composer update in the source directory (or delete source/contact-form-7 to force re-download)

  5. Run ./generate.sh from 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

统计信息

  • 总下载量: 527
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-11-17