8.2 released 8 December 2022, latest 8.2.33.
PHP 8.2 is currently supported. Active support is scheduled to end on 31 December 2024. It reaches end of life on 31 December 2026.
What changed
PHP 8.2 added readonly classes, disjunctive normal form types, standalone null, false, and true types, trait constants, and the Random extension's Randomizer API. It also introduced tools such as the SensitiveParameter attribute for redacting marked arguments from stack traces. Its most operationally significant compatibility change is the deprecation of creating dynamic properties on most classes. Code must declare properties, implement controlled behavior through __set(), or explicitly opt in with AllowDynamicProperties where that is justified. PHP 8.2 also deprecated utf8_encode() and utf8_decode(), which are limited ISO-8859-1 conversion helpers rather than general UTF-8 conversion functions.
What staying costs
PHP 8.2 remains in its active support window, so staying on it does not by itself mean running an unsupported runtime. The trade-off is that applications cannot use language and runtime capabilities introduced by newer PHP lines, and dependencies may eventually raise their minimum PHP requirement beyond 8.2. The dynamic-property and character-conversion deprecations are also technical debt: leaving them in place keeps warnings in logs and makes a later major runtime transition more disruptive. Teams that stay should continue applying available PHP 8.2 updates, because a supported line still receives maintenance and security fixes.
What to do
Choose a newer supported PHP target that is compatible with the application, framework, extensions, hosting platform, and deployment images. Add that target to CI before changing production, run unit, integration, and representative production-like workloads, and treat new warnings and deprecations as migration findings. Inventory dynamic properties by collecting deprecation output and static-analysis results; declare intended properties or redesign the affected objects rather than broadly suppressing the warning. Replace utf8_encode() and utf8_decode() with explicit conversions such as mb_convert_encoding() only after confirming the source encoding and expected failure behavior. Update Composer dependencies and PHP extensions within their declared compatibility ranges, then rehearse deployment and rollback using the actual web, worker, and command-line SAPIs used in production.
Release history
We can tell you what moving off PHP 8.2 involves.
What it takes to move off PHP 8.2 depends on what you built on it — the version you are on, how much depends on it, and how much of the work is mechanical. Leave your email with this version and we can tell you what that looks like for you.
Not sure yet? Get my plan
