Recently PHP.net announced, with their latest PHP 5.2.14 release, the end of active development of the PHP 5.2 branch. End of active development means that there will be no more new features or bug-fixes released in the current 5.2 version, and users are encouraged to move to the latest 5.3 branch of PHP. However, security updates will be considered on a case-by-case basis.
According to a recent Twitter poll, we found that over 50% of developers are already working with the latest 5.3 release. An additional 35% is already in the process of migrating to 5.3. This means that the majority of developers see the importance of upgrading and are already taking action, well before PHP's announcement. (We are aware, though, that we are surrounded by a particularly well-educated group of hard-core community people, so these results might be slightly skewed.)
Existing web applications that are using PHP 5.2 may not immediately be affected by the announcement; however, if bugs are now found arising from the PHP core, or security holes are found after the final end-of-life is announced, they will not be fixed. Your development support team may have no option other than to suggest an upgrade. In the end, if you are unprepared and you are using managed or shared hosting, it may be the hosting provider who has the final say regarding what version of PHP you are using. They may force you to prepare for their own migration, which will be within their own deadlines and not your own.
PHP 5.3 has been available as a release for over a year now, and since there have been 3 additional maintenance releases, so its core can be considered to be mature and stable. This has also given software vendors the chance to make their software compatible, which most have been able to do. Not all vendor PHP software is compatible, however, with some less maintained projects still having issues with PHP 5.3 changes.
Same old story
This process is very common in the IT world, where companies expect to have stable maintained software. Maintaining multiple releases can be used to limit the amount of change these companies have to deal with between maintenance releases, whilst allowing for additional features to be added in a later release. In the end, however, the software companies need to drop support for older versions in order to recover time for the development and support of new releases.
Normally, scheduling ending of support is done in so-called "end-of-life" roadmaps. Planning and releasing those roadmaps is a very delicate process, especially in a web-based environment where a lot of players will be affected. Neither developers nor end-users want to spend time, money or effort into upgrading systems that already work fine. But most of the time those systems work well because developers don't have to maintain all previous releases, unlike their vendors.
Key to successful migration
In order to successfully migrate to a new version of PHP, a development company must analyse the components of the system that makes up the project to see if they are compatible or upgradable. This includes the hosting provider who, in a managed or shared hosting system, may be required to be involved.
Software vendor code such as content management systems and development frameworks must be compatible as well, so if using older, incompatible releases, then it may be required to update to a later major release if available. On the other hand, if none are available - either because the vendor has not allocated enough of its time to fix compatibility issues, or that the vendor no longer provides the software - then it may be wise to consider switching to another vendor. In most cases, however, popular software vendors will have compatible versions ready now due to demand. Those that don't will now have the final incentive to do so with the announcement.
If you are running custom code, then this must also be compatible for the migration. Verifying this should be very easy if the project has excellent code coverage in its unit tests. Either way, however, it would be recommended to run the project through your quality assurance procedures, as a migration is every bit as important to get right for your business as a new project release.
Need help migrating? Check out our migration services, or share your experiences by commenting on this post.