Directory / plugin

Eli's PHP Compatibility Scanner

v1.2.1 · by Eli Hanna

A PHP compatibility checker for your plugins and themes. See which files and lines will break on PHP 8 before you upgrade.

About this plugin

Before you upgrade PHP, check your plugins and themes. The scanner reads their code and lists every file and line that will break, or start throwing warnings, on the PHP version you pick (7.4 to 8.4). It checks any plugin or theme installed on the site, including premium and custom ones.

It is a PHP compatibility checker built on PHP_CodeSniffer and the PHPCompatibility ruleset. The plugin ships the current development version of that ruleset instead of its last stable release from 2019, so changes made in PHP 8.1, 8.2, 8.3 and 8.4 are covered.

PHP 8.2 stops receiving security fixes on 31 December 2026. If a site you look after still runs 8.2 or older, now is a good time to check what an upgrade would break.

Where it runs

The free scanner runs on your own setup: LocalWP, XAMPP, MAMP, Docker, or any server where PHP’s exec() function is enabled. Many managed hosts (WP Engine, Kinsta, SiteGround and others) turn exec() off, and the free scanner needs it.

If your site is on one of those hosts, PHP Compatibility Scanner Pro runs the scan on a remote service instead, so it does not need exec() and the heavy work happens off your live server. Pro is a separate plugin, available from coffeewp.dev.

How it works

PHP_CodeSniffer turns your code into PHP tokens instead of searching it as text. A function name inside a comment or a string is not reported, and each finding names the PHP version that deprecated or removed what your code uses.

How to Use:

  1. Open PHP Compatibility Scanner in the WordPress admin menu
  2. Review the System Check section to ensure your environment is compatible
  3. Select the plugins and/or themes you want to scan by checking their boxes
  4. Configure your scan options:
    • Target PHP Version: Choose the PHP version you want to test against (7.4 – 8.4)
    • Batch Size: Select how many files to process at once (default: 50 files)
    • Skip Vendor Directory: Keep checked to skip third-party dependencies
  5. Click Start Scan to begin the compatibility check
  6. View results in real-time as each plugin/theme is scanned
  7. Review any errors (❌) or warnings (⚠️) found in your code
  8. Click on any target to expand and see detailed compatibility issues

Contributing

This plugin is actively developed for WordPress development environments. Contributions are welcome, especially:

  • Additional PHP version compatibility rules
  • Performance optimizations
  • UI/UX improvements
  • Hosted environment compatibility solutions

Technical Details

How the scan runs

  1. Bundled dependencies: PHP_CodeSniffer and the PHPCompatibility ruleset ship with the plugin
  2. Batch processing: files are scanned in configurable batches (10 to 100) to manage memory usage
  3. Command execution: PHPCS is invoked through PHP’s exec() function
  4. Server-side state: file lists are stored in WordPress options to keep AJAX requests small
  5. Progressive UI: batch results appear in real time, with stop and start controls

Dependencies

  • PHP_CodeSniffer: ^3.13 (static analysis engine)
  • PHPCompatibility: dev-develop (compatibility ruleset)

License

GPLv2 or later – same as WordPress core.

Plugin tags