PHP migration to a current PHP version
Is your application still running on PHP 5 or 7? I move it step by step to a supported PHP 8 version, without rewriting it.
Why the PHP version matters
- Versions that are no longer supported receive no security updates.
- Current libraries and frameworks often require newer PHP versions.
- Newer versions are usually faster and bring language features that make code safer.
- Hosting providers eventually retire old versions.
php.net/supported-versions.php shows which PHP versions are currently supported.
How I work
- Assessment: PHP version, required extensions, Composer dependencies, tests and hosting environment.
- Securing: tests for critical flows, static analysis (for example with PHPStan) and a reproducible environment, for instance with Docker.
- Automating what can be automated: tools such as Rector take over part of the mechanical refactoring.
- Migrating in stages: I go through the PHP versions one after another and check after every step.
- Adapting dependencies: update or replace libraries that do not support the new version.
Typical stumbling blocks
- Removed functions, such as the mysql_* functions (since PHP 7.0) or each() and create_function() (since PHP 8.0)
- Stricter type checks and new warnings that reveal previously unnoticed errors
- Dynamically created properties, which are deprecated since PHP 8.2
- Old extensions and libraries without support for new PHP versions
- Different PHP versions on development and production systems
Who this is for
For Symfony projects and custom PHP applications that have grown and have not been touched for a while. If an outdated Symfony version is running as well, I combine the migration with a Symfony upgrade.
Frequently asked questions
Do I have to have my application rewritten?
Usually not. The goal is to bring the existing code to a current PHP version and only refactor where necessary.
Can I jump straight from PHP 5 to PHP 8?
Technically that is rarely advisable. I migrate in stages because errors are easier to narrow down that way. How many stages are needed depends on the code.
What if libraries do not support PHP 8?
Then we check whether there is an updated package or a replacement. In some cases I isolate the affected spot until it can be replaced.
How long does a PHP migration take?
That depends on the amount of code, test coverage and dependencies. After the assessment I give you an estimate.
From the blog
Critical PHP vulnerability: update to 8.5.12, 8.4.27, 8.3.36 or 8.2.35 now
Two critical PHP vulnerabilities allow unauthenticated remote code execution. Who is affected, which versions fix it and what to do on PHP 8.1 and older.
PHP and Symfony in October 2026: security updates, end of support and what's coming in November
The monthly roundup: three Symfony vulnerabilities, the end of PHP 8.2, PHP 8.6 and Symfony 8.2 in November and what it means for existing projects.