My friends and family are under attack in Ukraine. Donate to protect them directly or help international organizations.

Legacy Consulting

Before considering the following services, I highly recommend that you automate your tests. Without them, changes to your application can cause unexpected issues that may not be apparent until much later, even with thorough manual testing. Also, repeated manual testing of the entire application will put so much strain on your team that it will often be cheaper and faster to automate upfront.

Improve Maintainability

There are many ways to improve a legacy application. Here is a non-exhaustive list:

We will decide which of these will bring the most value by discussing your goals and analyzing your code.

Upgrade PHP Version

Version upgrades are generally low-risk endeavors and are a great first step to modernizing your application. Certain compatibility issues, such as the use of removed extension, introduce more risk. However, I can help mitigate those risks.

You can read this ever-growing guide to PHP version upgrades that I published on the Zend website:

In some situations, you may need to keep the code compatible with both PHP versions. This takes a little longer, but is feasible.

Migrate Framework

I will modify your application to function with a more recent version of the framework, or with an entirely new framework. More modern frameworks have fewer bugs, provide better features, are more secure and have better performance.

I can also do this with various libraries and extensions. For example, you may want to move away from Doctrine 1 or Propel, or you may want to replace mcrypt with OpenSSL.

Before undertaking such a migration, I highly recommend that we start by uncoupling the application from the framework or library. If we don't, not only will the migration take longer and be riskier, but you'll also end up with code that doesn't take full advantage of the new framework. Additionally, without uncoupling, you'll have to put in as much effort every few years to keep up with the latest framework.