Given that eZ Publish (5.x series) where made before PHP 7 came out, there are a few things to be aware of and consider when wanting to run it on PHP 7.
Alternative: Running eZ Platform & eZ Platform Enterprise with Legacy Bridge
Did you know that you can also consider running eZ Publish legacy side by side with eZ Platform, and that this is supported now together with eZ Publish Enterprise? If you prefer new features and simplified migration paths this can be a good alternative to 5.4 which is kept as stable as possible and does not receive new features anymore.
While eZ Platform, including platform parts bundled with eZ Publish Platform 5.x have been made for more recent versions of PHP and tested for it early on. eZ Publish legacy was first created back in 2001 and has a long range of extensions written for it closely depending on how it was written. And as eZ Publish is considered mature software, backwards compatibility breaks are avoided as much as possible. This means that there are a few deprecation warnings to be expected when running eZ Publish (legacy) on PHP 7 which won't be fixed as they risk breaking extensions. This includes:
- Class constructor names
Community supported extensions
The following extensions have not yet been QA tested, and are hence not yet professionally supported by eZ Systems, if you find issues best way to proceed is by proposing fixes (Pull requests or otherwise):
- eZ MB Password Expiry
- eZ SI
- eZ Network
- eZ Content Staging
Importance of testing when upgrading to PHP7
PHP7 is a large change to the PHP language, and while it does provide a 2x improvment in performance, we can not stress enough the importance of testing your whole site/application when upgrading. You should essentially regards it as a re launch.
- While we try our best to cover all possible cases, especially in eZ Platform, our newest version. Our QA testing does not cover all the possible use case you might be using eZ Publish for.
- Extensions made by the community and shared on http://projects.ez.no/ or other places (github/composer, ..) might or might not have tested on PHP 7 yet.
- Your own code base will need to be adapted for PHP 7.
So make sure to stay on top of this when switching to PHP7; Make sure to phase it in for development, then staging/acceptance/qa environment, before upgrading production environment.