Two real WordPress plugins on PHP 8.4: what broke, and what I refused to auto-fix
Description and use
Refit assists WordPress plugin developers in safely upgrading code to PHP 8.4 by identifying only issues that affect the minimum supported PHP version and automatically applying safe fixes without breaking backward compatibility.
Problem
WordPress plugin maintainers face breaking changes when upgrading to PHP 8.4 while still supporting older PHP versions.
Outcome
Refit successfully identified zero fatal errors in an events plugin and fixed four dynamic property issues without breaking compatibility with PHP 7.2. In a social feed plugin, it reported a deprecation that could not be auto‑fixed due to the minimum PHP 7.0 requirement, leaving the decision to the maintainer.
Workflow
- Scan the plugin with
refit scanto identify breakages, checks, and deprecations. - Review the report, noting items that are already problems on the minimum PHP version.
- Run
refit fixto apply safe automatic fixes, ensuring the project is a clean git repo and that changes compile withphp -l. - Use
git diffto review changes and undo if necessary. - Optionally update the minimum PHP version if a deprecation cannot be auto‑fixed without breaking older PHP.
- Repeat scan and fix until the report shows zero breakages.
- Deploy the updated plugin to the hosting environment.
- Monitor for any runtime errors or deprecation warnings in production.
Evidence
Refit runs both, plus php -l. It does not reinvent the checks.
Refit declares them in the class as plain public properties. That works when the parent class is in your code.
The report also has a section called "Already a problem on PHP 7.2".
- Record date: 2026-11-01T03:59:00.323Z