Invision Community 4.7.2 now features a third party application and plug-ins PHP 8 compatibility scanner.
Please read this post as you may find applications of plugins disabled after upgrading.
Why do we need this?
The underlying programming language that Invision Community uses is PHP. The latest version, PHP 8 was released in November 2020 and features many breaking changes and incompatibilities that are not backwards compatible. Some of these changes mean that what was a harmless silent notice, is now a fatal error which would mean that if you upgrade with incompatible code, your community would throw a fatal error which results in either a white screen, or a server level error message in your browser.
These fatal errors cannot be captured by Invision Community and managed. The fatal errors are deeper in the execution chain.
PHP 8 has been out for close to two years, and PHP 7.4 is 'end of life' and security updates will cease from November which means that it becomes insecure, so everyone will have to move to PHP 8 very shortly.
What is it
The compatibility checker examines all third party applications and plugins that you have added from the Marketplace.
We encourage our Marketplace authors to test with PHP 8 but not all do, and as such applications and plugins that work fine with PHP 7.4 will fail with PHP 8.
The compatibility checker scans all third party code for issues that could cause fatal errors, and if it finds them it will disable the application or plugin on upgrade.
The only way to re-enable the application or upgrade is to update it to a 4.7.2 compatible version from the marketplace.
Can I re-enable disabled third party plugins and applications?
Yes, if you are confident the plugins and applications are fine to run with your current PHP version then you can re-enable them until our November release which will then enforce the disabling of applications.
It's worth reaching out to the authors of key plugins and applications to see if they have a PHP8 compatible version available, or plan to have one by November so you can prepare for the November upgrade.
Is this really needed?
Unfortunately yes. PHP are making bold changes that are not backwards compatible. Invision Community is fortunate to have so many third party developers releasing apps and plugins to further enhance the feature-set, but we do not have direct control over this code. Our priority is to ensure that your site upgrades smoothly and remains online.
Why now?
We finally ran out of road. We have been working towards PHP 8 compatibility for a while, and we have encouraged our third party authors to do so too, and to test with PHP 8. We also informed the developers in August about the scanner and what it may do to their applications. We also have been releasing Invision Community 4.7 betas since May of this year to give them as much time as possible to update their applications. Enforcing this change is painful in the short term but benefits everyone in the longer term.
What else can I do?
Your self-hosting license allows you a test install which you should use as a staging site and test any upgrades on that staging site before performing the upgrade on your production site. This will enable you to capture any issues that may arise before you run it on your production site.
As always, we recommend that a back-up snapshot is taken before any upgrade so that you can easily rollback if you encounter any issues.
I'm using PHP 7, does this affect me?
Yes, the compatibility scanner will still run on the upgrade and check for PHP 8 issues so that when you do upgrade to PHP 8 you won't find that your community is no longer working.
Thanks for reading!