November 2025 brought PHP developers two big releases: PHP 8.5 on November 20 and Symfony 8.0 on November 27, together with the long-term Symfony 7.4 LTS.
What’s new in PHP 8.5
- The pipe operator
|>: chains of transformations read left to right, without nested calls. - The URI extension: built-in RFC 3986 and WHATWG URL parsing and normalisation instead of the quirky
parse_url(). - Clone with: clone an object and change properties in one go, handy for readonly classes.
- The
#[\NoDiscard]attribute: a warning when the result of an important function is ignored. array_first()andarray_last(): finally, no morereset()andend().
$slug = $title
|> trim(...)
|> strtolower(...)
|> (fn ($s) => preg_replace('/[^a-z0-9]+/', '-', $s));
Symfony 8.0 or 7.4 LTS
Symfony 8.0 requires PHP 8.4 or later. It removes everything deprecated in the 7.x branch and makes fuller use of modern language features. Symfony 7.4 ships the same new features but keeps backward compatibility and gets long-term support.
- New project: start on Symfony 8 and PHP 8.5.
- Live product on 6.4 or 7.x: move to 7.4 LTS first, then plan 8.x at your own pace.
Upgrade plan
- Update the project to the latest minor version of its branch and to PHP 8.4.
- Log deprecation warnings and fix them: in Symfony 8 those calls are simply gone.
- Run Rector with the PHP and Symfony rule sets, then static analysis (PHPStan).
- Update third-party bundles. This is where most problems show up.
- Bump Symfony in
composer.json, run the tests and check the flows by hand on staging.
We have been building on Symfony for years and regularly move projects between major versions. Let us estimate your upgrade.