diff --git a/composer.json b/composer.json
index 36a6f74..99c26a9 100644
--- a/composer.json
+++ b/composer.json
@@ -4,8 +4,11 @@
"type": "project",
"license": "GPL-2.0-or-later",
"require-dev": {
- "phpunit/phpunit": "^12.5",
"php-stubs/wordpress-stubs": "^6.8",
+ "phpcompatibility/php-compatibility": "^10.0@alpha",
+ "phpcompatibility/phpcompatibility-paragonie": "^2.0@alpha",
+ "phpcompatibility/phpcompatibility-wp": "^3.0@alpha",
+ "phpunit/phpunit": "^12.5",
"sirbrillig/phpcs-changed": "^2.11",
"vimeo/psalm": "^6.0",
"wp-coding-standards/wpcs": "^3.0"
diff --git a/composer.lock b/composer.lock
index 4c98970..b698b8f 100644
--- a/composer.lock
+++ b/composer.lock
@@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "175cfcb93fa1b19f22942ab74fba5cb1",
+ "content-hash": "92c4c00406d0bfcc7057aaa5f9b93e3b",
"packages": [
{
"name": "citation-style-language/locales",
@@ -2244,6 +2244,234 @@
},
"time": "2026-02-03T19:29:21+00:00"
},
+ {
+ "name": "phpcompatibility/php-compatibility",
+ "version": "10.0.0-alpha2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
+ "reference": "e0f0e5a3dc819a4a0f8d679a0f2453d941976e18"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/e0f0e5a3dc819a4a0f8d679a0f2453d941976e18",
+ "reference": "e0f0e5a3dc819a4a0f8d679a0f2453d941976e18",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.4",
+ "phpcsstandards/phpcsutils": "^1.1.2",
+ "squizlabs/php_codesniffer": "^3.13.3 || ^4.0"
+ },
+ "replace": {
+ "wimg/php-compatibility": "*"
+ },
+ "require-dev": {
+ "php-parallel-lint/php-console-highlighter": "^1.0.0",
+ "php-parallel-lint/php-parallel-lint": "^1.4.0",
+ "phpcsstandards/phpcsdevcs": "^1.2.0",
+ "phpcsstandards/phpcsdevtools": "^1.2.3",
+ "phpunit/phpunit": "^4.8.36 || ^5.7.21 || ^6.0 || ^7.0 || ^8.0 || ^9.3.4 || ^10.5.32 || ^11.3.3",
+ "yoast/phpunit-polyfills": "^1.1.5 || ^2.0.5 || ^3.1.0"
+ },
+ "type": "phpcodesniffer-standard",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "9.x-dev",
+ "dev-develop": "10.x-dev"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "homepage": "https://github.com/wimg",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "homepage": "https://github.com/jrfnl",
+ "role": "lead"
+ },
+ {
+ "name": "Contributors",
+ "homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
+ }
+ ],
+ "description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
+ "homepage": "https://techblog.wimgodden.be/tag/codesniffer/",
+ "keywords": [
+ "compatibility",
+ "phpcs",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibility/issues",
+ "security": "https://github.com/PHPCompatibility/PHPCompatibility/security/policy",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibility"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCompatibility",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcompatibility",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-28T11:36:33+00:00"
+ },
+ {
+ "name": "phpcompatibility/phpcompatibility-paragonie",
+ "version": "2.0.0-alpha2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
+ "reference": "7a979711c87d8202b52f56c56bd719d09d8ed7f5"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/7a979711c87d8202b52f56c56bd719d09d8ed7f5",
+ "reference": "7a979711c87d8202b52f56c56bd719d09d8ed7f5",
+ "shasum": ""
+ },
+ "require": {
+ "phpcompatibility/php-compatibility": "^10.0@dev"
+ },
+ "require-dev": {
+ "paragonie/random_compat": "dev-master",
+ "paragonie/sodium_compat": "dev-master"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "lead"
+ }
+ ],
+ "description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
+ "homepage": "http://phpcompatibility.com/",
+ "keywords": [
+ "compatibility",
+ "paragonie",
+ "phpcs",
+ "polyfill",
+ "standards",
+ "static analysis"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/issues",
+ "security": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie/security/policy",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCompatibility",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcompatibility",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-11-29T13:09:49+00:00"
+ },
+ {
+ "name": "phpcompatibility/phpcompatibility-wp",
+ "version": "3.0.0-alpha2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
+ "reference": "bd53f24e7528422ac51d64dc8d53e8d4c4a877b3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/bd53f24e7528422ac51d64dc8d53e8d4c4a877b3",
+ "reference": "bd53f24e7528422ac51d64dc8d53e8d4c4a877b3",
+ "shasum": ""
+ },
+ "require": {
+ "phpcompatibility/php-compatibility": "^10.0@dev",
+ "phpcompatibility/phpcompatibility-paragonie": "^2.0@dev"
+ },
+ "type": "phpcodesniffer-standard",
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "LGPL-3.0-or-later"
+ ],
+ "authors": [
+ {
+ "name": "Wim Godden",
+ "role": "lead"
+ },
+ {
+ "name": "Juliette Reinders Folmer",
+ "role": "lead"
+ }
+ ],
+ "description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
+ "homepage": "http://phpcompatibility.com/",
+ "keywords": [
+ "compatibility",
+ "phpcs",
+ "standards",
+ "static analysis",
+ "wordpress"
+ ],
+ "support": {
+ "issues": "https://github.com/PHPCompatibility/PHPCompatibilityWP/issues",
+ "security": "https://github.com/PHPCompatibility/PHPCompatibilityWP/security/policy",
+ "source": "https://github.com/PHPCompatibility/PHPCompatibilityWP"
+ },
+ "funding": [
+ {
+ "url": "https://github.com/PHPCompatibility",
+ "type": "github"
+ },
+ {
+ "url": "https://github.com/jrfnl",
+ "type": "github"
+ },
+ {
+ "url": "https://opencollective.com/php_codesniffer",
+ "type": "open_collective"
+ },
+ {
+ "url": "https://thanks.dev/u/gh/phpcompatibility",
+ "type": "thanks_dev"
+ }
+ ],
+ "time": "2025-12-16T13:35:20+00:00"
+ },
{
"name": "phpcsstandards/phpcsextra",
"version": "1.5.1",
@@ -5637,7 +5865,11 @@
],
"aliases": [],
"minimum-stability": "stable",
- "stability-flags": {},
+ "stability-flags": {
+ "phpcompatibility/php-compatibility": 15,
+ "phpcompatibility/phpcompatibility-paragonie": 15,
+ "phpcompatibility/phpcompatibility-wp": 15
+ },
"prefer-stable": false,
"prefer-lowest": false,
"platform": {},
@@ -5645,5 +5877,5 @@
"platform-overrides": {
"php": "8.3.30"
},
- "plugin-api-version": "2.9.0"
+ "plugin-api-version": "2.6.0"
}
diff --git a/phpcs.xml.dist b/phpcs.xml.dist
index 721cd9b..f0aaf2e 100644
--- a/phpcs.xml.dist
+++ b/phpcs.xml.dist
@@ -23,6 +23,14 @@
+
+
+
+