Eli's PHP Compatibility Scanner

Description

⚠️ Important: Development Environment Only

This plugin is designed for development environments like LocalWP, XAMPP, or self-hosted servers. It will not work on most managed hosting providers (WP Engine, Kinsta, SiteGround, etc.) due to security restrictions that disable the exec() function and limit access to PHP binaries.

How It Works

This plugin leverages PHP_CodeSniffer with the PHPCompatibility standard to perform deep static analysis of your PHP code.

Core Components:

  1. Bundled Dependencies: Includes PHP_CodeSniffer and PHPCompatibility ruleset
  2. Batch Processing: Scans files in configurable batches (10-100 files) to manage memory usage
  3. Command Execution: Executes PHPCS via PHP’s exec() function with specific parameters
  4. Server-Side State: Stores file lists in WordPress options to optimize AJAX requests
  5. Progressive UI: Real-time batch results with stop/start controls

How to Use:

  1. Navigate to Tools PHP Compatibility Scanner
  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

Why It Requires Development Environments

  • exec() Function: Required to run PHPCS binary – disabled on managed hosts
  • PHP Binary Access: Needs access to PHP executable – restricted on shared hosting
  • Composer Dependencies: Requires vendor directory with PHPCS installation
  • File System Access: Creates temporary files for batch processing
  • Memory/Time Limits: Long-running scans need relaxed execution limits

Supported Environments

  • LocalWP (recommended)
  • XAMPP/MAMP
  • Docker WordPress setups
  • Self-hosted VPS/dedicated servers
  • Development environments with shell access

Unsupported Environments

  • WP Engine (exec() disabled)
  • Kinsta (security restrictions)
  • SiteGround (managed hosting limitations)
  • GoDaddy Managed WordPress (function restrictions)
  • WordPress.com (no plugin uploads)
  • Most shared hosting providers

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

Dependencies

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

License

GPLv2 or later – same as WordPress core.

Screenshots

  • Plugin dashboard displaying environment compatibility check results
  • Configuration panel with scan options and available plugins/themes selection
  • Scan results showing detected PHP compatibility errors in selected plugins
  • Clean scan results indicating no compatibility issues found

Installation

Prerequisites

  • Development Environment: LocalWP, XAMPP, MAMP, or self-hosted server
  • PHP 7.4+: Required for plugin operation
  • WordPress 4.5+: Minimum WordPress version

Setup Instructions

  1. Download/Install the plugin to your wp-content/plugins/ directory
  2. Activate Plugin in WordPress Admin Plugins
  3. Access Tool via WordPress Admin Tools PHP Compatibility Scanner

Note: All required dependencies (PHP_CodeSniffer and PHPCompatibility) are included with the plugin – no additional setup required!

FAQ

What is this plugin for?

This plugin helps WordPress developers check if their custom code (plugins and themes) will work with different PHP versions. It’s especially useful when planning to upgrade PHP on production servers or when developing for clients with specific PHP version requirements.

Why won’t it work on my hosting provider?

Most managed hosting providers (WP Engine, Kinsta, SiteGround, etc.) disable the exec() function for security reasons. This plugin needs to run PHP commands to analyze your code, which requires this function to be enabled.

What PHP versions can I test against?

The plugin can test your code against PHP versions 7.4 through 8.4, helping you identify compatibility issues before upgrading.

How accurate are the results?

Very accurate! The plugin uses the official PHPCompatibility ruleset, which is the industry standard for PHP version compatibility testing. It catches both deprecated features and breaking changes.

Can I scan multiple plugins at once?

Yes! You can select multiple plugins and themes to scan simultaneously. The plugin processes them in batches to manage memory usage efficiently.

What if the scan takes too long?

The plugin includes stop/resume functionality. You can cancel a long-running scan at any time and resume it later. You can also adjust batch sizes to optimize performance.

Are my files modified during scanning?

No, your files are never modified. The plugin only reads your code to analyze it. Any temporary files created during scanning are automatically cleaned up.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Eli's PHP Compatibility Scanner” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.0.2

  • Updated plugin name to “Eli’s PHP Compatibility Scanner” for WordPress.org compliance
  • Improved documentation and usage instructions

1.0.0

  • Initial release
  • PHP compatibility scanning using PHPCompatibility standard
  • Modern, responsive user interface
  • Batch processing for large codebases
  • Real-time progress updates
  • Stop/resume functionality
  • Vendor directory exclusion
  • Support for PHP versions 7.4-8.4