Two file folders circle the Zend logo. One is labeled with PHP.
August 5, 2024

PHP Migrations: When Is Migrating PHP Versions the Right Choice?

Migration

PHP migrations, while necessary and ultimately beneficial, can represent a significant challenge for many companies – particularly those contemplating a PHP content management system (CMS) migration. The rapid pace of innovation in the PHP language and libraries written in PHP often acts as a driver for migrating to newer PHP versions. However, such migrations can prove to be lengthy and expensive affairs that impact other business considerations.

In this blog, we look at why PHP migrations can be advantageous for companies currently running outdated and end of life PHP versions. We walk through how PHP migrations and updating PHP versions can benefit your web applications. Finally, we discuss PHP CMS migrations, and identify the pitfalls and particularities associated with PHP migrations within these platforms.

Back to top

Considerations for Planning PHP Migrations

PHP migrations involve many moving parts for web apps, from CMS platforms to e-commerce applications and beyond. From planning to execution, many factors must be considered for successful PHP migrations. These factors are not only difficult to estimate, but often are problematic to implement (i.e. testing, library swapping, etc.), so be sure to keep these considerations in mind as you plan any upcoming PHP migrations.

Current PHP Version

Before beginning any PHP migration process, always assess your current PHP web app. Consider all strengths, identify weaknesses or performance issues, and evaluate your current PHP version’s compatibility with your platform. Consider your app’s architecture, any existing dependencies, and all third-party integrations to ensure you are making informed decisions as you plan your PHP migration.

Cost of PHP Migrations

The direct cost (development hours) of a software migration can range from a few thousand to hundreds of thousands of dollars, depending on the size of the application, its business criticality, and the industry you are in. To avoid getting overrun by advances in PHP technologies, teams must consider the cost of software migrations – including the cost of falling behind.

PHP Migration Paths

Migrating PHP might not always be as straightforward as going from one version to another. In some cases, and especially when migrating across major versions, teams may need to migrate to an intermediary version before migrating to the most updated PHP version. This process, while time consuming, can ensure that teams don’t get waylaid with unexpected (and often substantial) refactoring and troubleshooting hours.

Updating PHP Versions

It is also important to note that PHP upgrades, or choosing to update PHP versions to a new minor version within the same major version, may still represent challenges. PHP 8.0 is a great example of this, where an upgrade from PHP 8.0 to PHP 8.1 or PHP 8.2 to PHP 8.3 might pose more significant challenges compared to upgrading PHP 8.1 to PHP 8.2.

This makes it all the more important for teams to carefully evaluate the time and resources needed to upgrade or migrate PHP, regardless of whether it’s between major or minor versions.

Read more about PHP versions >>

Start Planning Your Next PHP Migration

Executing successful PHP migrations require careful planning. In this free white paper, our experts discuss the best ways to prep for a PHP migration, including the pitfalls that can cost teams big.

Download Your Free Copy

Back to top

Benefits of PHP Migrations

For most applications, including CMS platforms, the primary benefits of a PHP migration revolve around improved security and increased performance. 

PHP migrations can also allow teams to leverage new language features, extensions, and libraries that were not present in the previous PHP version – all of which can provide tangible benefits during QA and maintenance cycles.

PHP Migration Benefits

Benefit

Description

Security

Migrating to supported PHP versions means better protection against critical vulnerabilities and exposures.

Performance

New PHP versions often give significant performance benefits over previous versions.

Compliance

Compliance standards often necessitate a migration, but upgrading can also make maintaining compliance easier.

Improvements

Migrating to the latest PHP version means teams can leverage new language features, extensions, and libraries.

Security

Simply put, applications running on unsupported PHP versions are more exposed to critical vulnerabilities. PHP applications that have completed PHP migrations to supported versions, or to third-party supported end of life versions, get the benefit of frequent security patches and hotfixes that keep the application less susceptible to security failures.

For companies with mission-critical applications, or applications that store any type of sensitive data, PHP migrations (or finding alternative means of PHP LTS) are critical for secure, successful operations.

Performance

User experience can make or break modern applications. One of the most critical points of user experience, of course, is application performance. PHP puts a big focus on improving performance through each release version, with some releases (such as PHP 7.3) netting double-digit performance gains.

For companies that don’t regularly perform PHP migrations, computing resource usage and cost (e.g. CPU, RAM) for their application can be substantially higher than if they completed a PHP migration to a newer, more performant PHP version – putting them at a competitive disadvantage.

Compliance

While compliance and security often go hand in hand, compliance standards can require up-to-date encryption standards and sometimes necessitate a PHP migration. All major compliance standards (PCI, SOX, HIPAA, GDPR, etc.) mandate the installation of a fully supported version of PHP. As of August 2024, community supported PHP versions include PHP 8.1, 8.2, and 8.3. Teams using end of life PHP versions 7.2 and above can also meet these compliance standards via commercial PHP long-term support.

A supported version of PHP basically guarantees, among other things, solutions for three major security concerns:

  1. Coverage of CVEs within compliance cycles (Example: SOX commands compliance within 90 days)
  2. Modern algorithms for cryptography 
  3. Most secure engine and extensions configurations

As an example of requirements that these standards govern on the PHP infrastructural decisions, here is the latest version of PCI DSS:

Two tables displaying current PCI DSS Requirements
Source: securityboulevard.com


As can be easily inferred, points 2, 4, 5 and 6 can be satisfied by using a supported version of PHP (possibly the latest in terms of configurations and cryptography security). Companies need to start complying with the new requirements ASAP, as version v4.0 has taken effect on March 31, 2024.

New Features, Extensions, and Libraries

While less of a decision point for most teams, leveraging the latest features in PHP, including newly developed extensions and libraries, can be a welcome benefit of completing PHP migrations.

PHP version releases also regularly introduce quality-of-life improvements for developers. PHP 8.3, for example, added a handful of nice improvements in the form of new features, including explicit typed class constants, dynamic class constant and Enum member fetch support, additions to the randomness functionality, and more. These improvements, while not game-changing, help make coding in PHP a better experience for developers, while providing improvements on all security aspects related to the engine and major extensions.

Back to top

Planning a PHP CMS Migration

Before beginning a PHP CMS migration, consider your company's goals and how your CMS application will help achieve them. The most important topics to research are the following:

  • User Experience: Think about what your users need, how they use your site, and what will make their lives easier.
  • Content Audit: Complete a Redundant, Outdated, Trivial (ROT) analysis of your content before migration.
  • Prioritize Your Backlog: In the lead-up to a major website overhaul, an organization often collects a substantial "wish list" of improvements they want to see on their website.

These considerations will help you decide how your final website should look and what you want to change.

Account for CMS Dependencies and Modified Code

Analyze your current CMS site to identify content types, modules, integrations, and custom functionality that need to be migrated. When that is complete, map out towards your migration target version in terms of architecture and content model.

If you're using contributed modules or custom code to extend your application's functionality, you'll need to check that they're compatible with the new version or find an alternative.

Some projects constantly compile a list of 'deprecated modules' in relation to each major version of the former. Make sure the information provided is thoroughly analyzed to avoid problems derived from the presence of deprecated modules after the upgrade.

Create Backups

Backing up your CMS website before migrating PHP versions protects your data and provides a fallback plan in case of issues. Make sure all the application's components are correctly backed up, including database tables, settings, content types, fields, views, user roles, permissions, etc., on both the public and private parts of your application.

Migration Tools

Some CMS applications provide migration tools, usually in the form of CLI scripts, that deliver many procedures apt at simplifying common upgrade tasks. Always study the related documentation and use the tools to maximize the safety of your migration process. Often, these tools can even accelerate your migration timeline.

Media and File Handling

One of the challenges of any PHP migration is managing media and file migrations, including preserving file paths and handling file references. Plan file migrations carefully, ensuring the maintenance of file paths. Use the CMS-specific media handling capabilities and consider additional contributed modules if necessary.

Incremental Testing

Perform incremental testing throughout the migration process. Test small subsets of data first before migrating the entire dataset to catch issues early and ensure a more controlled testing environment.

Assess Developer Skill Sets

When migrating to a newer version of a CMS, especially if the jump is big and the differences between the versions are considerable (architecturally, database schemes, API changes, etc.), it is useful to run an assessment of your developer team's capabilities.

The assessment can help with planning and prioritizing decisions, but it can also help identify areas where existing team members could benefit from upskilling and training. 

It is advisable to get the support of expert consultants with proven track record in these types of migrations, as the surface for errors is quite vast and the repercussions of each mistake can generate big ripples in terms of budgets and time to market.

On-Demand Webinar: Are CMS Ecosystems Keeping Pace With PHP?

Leading CMS platforms – including Drupal and WordPress – rely on PHP to deliver quality user experiences, but they often struggle to keep pace with the aggressive PHP release cycle. Listen in as our experts take a deep dive on the state of PHP within CMS.

Back to top

Final Thoughts: When to Execute PHP Migrations

With all the potential costs and complications that come with a PHP migration, particularly when considering a CMS migration, the decision to migrate your PHP can be daunting. When planning your migration or upgrade, one of the best ways to determine your readiness is to consider your current testing strategies and coverage.

For applications with excellent test coverage, and with teams that follow industry standard practices for end-to-end testing, PHP migrations don’t have to be painful. In fact, most can consider upgrading PHP versions when it’s convenient or least costly to the business.

For applications that do not currently possess excellent test coverage, most teams should stay on their current PHP version until it’s possible to fully implement these practices. Even then, for teams maintaining legacy applications, the cost of a PHP migration may not make sense, and it may be time to partner with an expert PHP team – such as Zend – to simplify your PHP migration while managing costs, timelines, and other factors.

Get a Team of Experts for Your Next PHP Migration 

Make the Zend PHP experts your PHP experts. If you are considering a PHP migration, Zend can help you plan and execute to perfection on your schedule without compromising security or compliance.

See Migration Support Options  Explore PHP LTS Services

Note: This blog was originally published August 6, 2020. It has been expanded to include updated information.

Back to top

Additional Resources

Back to top