承接 johnbillion/wp-compat 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

johnbillion/wp-compat

Composer 安装命令:

composer require johnbillion/wp-compat

包简介

PHPStan extension to help verify that your PHP code is compatible with a given version of WordPress

README 文档

README

WPCompat is a PHPStan extension which helps verify that your PHP code is compatible with a given version of WordPress. You can use it to help ensure that your plugin or theme remains compatible with its "Requires at least" version.

It works by checking that any WordPress functions, class methods, actions, or filters that are in use were introduced prior to the minimum version of WordPress that your code supports. For example, if your plugin or theme supports WordPress 6.0 or higher but the get_template_hierarchy() function is used unconditionally, the extension will trigger an error because that function was only introduced in WordPress 6.1.

If your code is correctly guarded with a valid function_exists() or method_exists() check then an error won't be triggered.

Status

Version information was last updated for WordPress 7.0.

Requirements

  • PHPStan 2.0 or higher
  • PHP 7.4 or higher (tested up to PHP 8.4)

Installation

composer require --dev johnbillion/wp-compat

If you also install phpstan/extension-installer then you're all set!

Manual installation

If you don't want to use phpstan/extension-installer, include extension.neon in your project's PHPStan config:

includes:
    - vendor/johnbillion/wp-compat/extension.neon

Configuration

Themes

If your style.css file contains a "Requires at least" header then wp-compat will read this header and use its value as the minimum supported WordPress version. There is no need for any additional config.

Plugins

If the name of your main plugin file matches its parent directory -- for example my-plugin/my-plugin.php -- then wp-compat will read the "Requires at least" header from this file and use its value as the minimum supported WordPress version. There is no need for any additional config.

If your main plugin file is named otherwise or located elsewhere, you can specify its name in your PHPStan config file:

parameters:
    WPCompat:
        pluginFile: my-plugin.php

Manual config

Alternatively you can specify the minimum supported WordPress version number of your plugin or theme directly in your PHPStan config file. Note that this must be a string so it must be wrapped in quote marks.

parameters:
    WPCompat:
        requiresAtLeast: '6.0'

Any version number in major.minor or major.minor.patch format is accepted.

Ignoring errors

You can ignore an error from this extension by using its error identifier. For full information, see the PHPStan guide to ignoring errors.

Functions and methods

If your code is correctly guarded with a valid function_exists() or method_exists() check then an error won't be triggered.

// @phpstan-ignore WPCompat.functionNotAvailable
wp_foo();

// @phpstan-ignore WPCompat.methodNotAvailable
WP::foo();

Actions and filters

There is no concept of checking the existence of an action or filter in WordPress in order to guard its usage. You can still ignore an error for an action or filter using its error identifier, which contains a sanitized version of the hook name.

// @phpstan-ignore WPCompat.filterNotAvailable.filtername
add_filter( 'filter_name', 'callback' );

// @phpstan-ignore WPCompat.actionNotAvailable.myactionname
add_action( 'my_action_name', 'callback' );

Technical details

This extension does not scan your project in order to detect the @since versions of WordPress functions, methods, and hooks. This information is included directly in the extension. This approach ensures that your code is always tested against the most up to date and most accurate @since documentation, regardless of the version of WordPress that your tests are using.

Functions and methods

The symbols.json file contains a dictionary of all functions and methods in WordPress along with the version of WordPress in which they were introduced.

The file can be regenerated by running:

composer generate

The JSON schema for the file can be found in schemas/symbols.json.

Actions and filters

Information about actions and filters is provided by the wp-hooks/wordpress-core package.

Sponsors

The time that I spend maintaining this extension and others is in part sponsored by:

Automattic

ServMask       WP Staging

Plus all my kind sponsors on GitHub:

Sponsors

Click here to find out about supporting my open source tools and plugins.

License

MIT

johnbillion/wp-compat 适用场景与选型建议

johnbillion/wp-compat 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 162.27k 次下载、GitHub Stars 达 25, 最近一次更新时间为 2024 年 09 月 03 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「wordpress」 「PHPStan」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 johnbillion/wp-compat 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 johnbillion/wp-compat 我们能提供哪些服务?
定制开发 / 二次开发

基于 johnbillion/wp-compat 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 162.27k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 25
  • 点击次数: 25
  • 依赖项目数: 9
  • 推荐数: 0

GitHub 信息

  • Stars: 25
  • Watchers: 3
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-09-03