Planning for PHP 7.3 End-of-Service and your Magento servers
In about a year (December 2021), PHP 7.3 will reach it’s end of support (EOS). To ensure compatibility and compliance for the 2.3 release line, Magento will be adding support for PHP 7.4 to the release of Magento Commerce 2.3.7 in May 2021. This update will bring backward incompatible changes into 2.3.7 that may affect your site and extensions. As noted, you will have a seven-month window between the launch of 2.3.7 and EOS for PHP 7.3 to either upgrade to 2.3.7 or 2.4.x.
PHP 7.4, the latest PHP 7 minor release, was released for General Availability (GA) in November 2019. A listing of new features for PHP 7.4:
- Arrow functions for cleaner one-liner functions
- Preloading to improve performance
- Support for typed properties
- Custom object serialization
- Unpacking inside arrays
- Weak references
- Improved type variance
For more details, please see the Release Notes found here on github.
But, what does all of this really mean for your Magento instances? The real incentive for upgrading your PHP version is the promise of a performance boost. PHP 7.4 will introduce preloading to PHP core which is essentially accomplished via an extension to Opcache, the software that stores precompiled script bytecode in shared memory. This process helps eliminate the need for loading scripts on every request.
Opcache works by using opcodes; or, simplified versions of the code. Preloading works by compiling source files to opcodes, compiling the like bits together, and keeping the compiled code in memory. This code will be much easier and faster for PHP to pull than the alternative: files loaded and linked on every request. In the end, faster code execution translates to a faster loading website.
Blendium encourages all merchants to adopt the latest minor release 2.4.x, which supports PHP 7.4 in order to avoid any unnecessary interruptions. As a less desirable option to update to 2.3.7 once available.