PHP version 8.2 was released on December 8, 2022 and I’m sure you’ve already heard about the great new features. The Randomizer
& random generator engines classes, DNF types; constants within traits; the sensitive parameter trait; static return types for dates; the n
regular expression modifier; false
, true
, and null
types; the readonly class modifier, a handful of deprecations, and a small performance bump.
These features are great. They add some new things to play with, fix a few issues, and provide the usual speed boost. What about the more subtle features that aren’t reported on. They need some love too.
phpinfo()
‘s Visual Upgrade
The first thing I will go over is a feature that doesn’t appear to be reported on anywhere. Not even in the changelog. Why?
The phpinfo()
function got a facelift. It now supports dark mode using the OS and browser’s CSS prefers-color-scheme
media query. There is also now sticky headers for tables. The headers will stay at the top of the screen while you continue scrolling.
Some other new features that go unnoticed…
- Opimized code path for newly created files using the
file://
stream wrapper. - Lower memory usage for strings created by various different functions.
- Added support for curl’s
CURLOPT_XFERINFOFUNCTION
progress callback option. This replaces the deprecatedCURLOPT_PROGRESSFUNCTION
option. - Added support for curl’s
CURLOPT_MAXFILESIZE_LARGE
option which sould be used instead ofCURLOPT_MAXFILESIZE
in cases where the file is greater than 2 gigabytes. - Added
curl_upkeep(callable)
function that accepts a callable (function/method) and is used when HTTP2 keep-alive/ping requests are sent. - The
idate(format, timestamp)
function now supports the “N” and “o” specifiers to get the ISO day of week and ISO year respectively. - Added the
FILTER_FLAG_GLOBAL_RANGE
option when validating with theFILTER_VALIDATE_IP
flag in the filter functions. The filter will fail when non-global IPV4/IPV6 IP ranges are used in accordance with RFC 6890 where theGlobal
attribute isfalse
. - A number of Apple Mac-specific memory and JIT compiler-related improvements.
- Added JIT indirect call reduction.
- Added the
openssl_cipher_key_length(algorithm)
function. - Added the
ReflectionFunction::isAnonymous()
method which returnstrue
if the function is anonymous (e.g. a closure). - Added the
ReflectionMethod::hasPrototype()
method which returnstrue
if the method has an inherited parent method (prototype). - Added a number of new Socket options.
- Added
ini_parse_quantity(string_value)
function to convert parsed shorthand ini values that may include a number of supported units tointeger
value. - Added
memory_reset_peak_usage()
function to allow checking for excess memory usage multiple times throughout a script.
Upgrade Soon!
PHP 8.2 has many features that will make development and testing with PHP easier. It’s easy to overlook the more suble and less-reported-on features, but they are often some of the more useful or awaited changes. It’s highly reccomended that you upgrade to version 8.2 soon and always keep your software versions up-to-date to get the latest features and security fixes.
Leave a Reply