@@ -45,6 +45,12 @@ PHP 8.5 UPGRADE NOTES
4545 change, but should more closely match user expectations, demonstrated by
4646 GH-15753 and GH-16198.
4747
48+ - DOM:
49+ . Cloning a DOMNamedNodeMap, DOMNodeList, Dom\NamedNodeMap, Dom\NodeList,
50+ Dom\HTMLCollection, and Dom\DtdNamedNodeMap now fails.
51+ This never actually resulted in a working object,
52+ so the impact should actually be zero.
53+
4854- FileInfo:
4955 . finfo_file() and finfo::file() now throws a ValueError instead of a
5056 TypeError when $filename contains nul bytes.
@@ -264,6 +270,19 @@ PHP 8.5 UPGRADE NOTES
2642704. Deprecated Functionality
265271========================================
266272
273+ - Core:
274+ . Returning a non-string from a user output handler is deprecated. The
275+ deprecation warning will bypass the handler with the bad return to ensure
276+ it is visible; if there are nested output handlers the next one will still
277+ be used.
278+ RFC: https://wiki.php.net/rfc/deprecations_php_8_4
279+ . Trying to produce output (e.g. with `echo`) within a user output handler
280+ is deprecated. The deprecation warning will bypass the handler producing the
281+ output to ensure it is visible; if there are nested output handlers the next
282+ one will still be used. If a user output handler returns a non-string and
283+ produces output, the warning about producing an output is emitted first.
284+ RFC: https://wiki.php.net/rfc/deprecations_php_8_4
285+
267286- Hash:
268287 . The MHASH_* constants have been deprecated. These have been overlooked
269288 when the mhash*() function family has been deprecated per
@@ -357,6 +376,8 @@ PHP 8.5 UPGRADE NOTES
357376 . socket_create/socket_bind can create AF_PACKET family sockets.
358377 . socket_getsockname gets the interface index and its string
359378 representation with AF_PACKET socket.
379+ . socket_set_option with multicast context throws a ValueError
380+ when the created socket is not of AF_INET/AF_INET6 family.
360381
361382- Tidy:
362383 . tidy::__construct/parseFile/parseString now throws a ValueError
@@ -394,6 +415,7 @@ PHP 8.5 UPGRADE NOTES
394415 RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement
395416
396417- DOM:
418+ . Added Dom\Element::getElementsByClassName().
397419 . Added Dom\Element::insertAdjacentHTML().
398420
399421- Enchant:
@@ -443,6 +465,13 @@ PHP 8.5 UPGRADE NOTES
443465 across multiple PHP requests.
444466 RFC: https://wiki.php.net/rfc/curl_share_persistence_improvement
445467
468+ - URI:
469+ . Uri\UriException, Uri\InvalidUriException, Uri\UriComparisonMode,
470+ Uri\Rfc3986\Uri, Uri\WhatWg\InvalidUrlException,
471+ Uri\WhatWg\UrlValidationErrorType, Uri\WhatWg\UrlValidationError,
472+ and Uri\WhatWg\Url are added.
473+ RFC: https://wiki.php.net/rfc/url_parsing_api
474+
446475========================================
4474768. Removed Extensions and SAPIs
448477========================================
@@ -466,6 +495,11 @@ PHP 8.5 UPGRADE NOTES
466495 library that was separated from ext/dom for being reused among other
467496 extensions. The new extension is not directly exposed to userland.
468497
498+ - URI:
499+ . An always enabled uri extension is added that can be used for handling
500+ URIs and URLs according to RFC 3986 and WHATWG URL.
501+ RFC: https://wiki.php.net/rfc/url_parsing_api
502+
469503- PCRE:
470504 . Upgraded to pcre2lib from 10.44 to 10.45.
471505
@@ -544,6 +578,11 @@ PHP 8.5 UPGRADE NOTES
544578 from being a multiple of loop iteration counts.
545579 It is recommended that this parameter is set to a prime number.
546580
581+ - OpenSSL:
582+ Added openssl.libctx to select the OpenSSL library context type. Either
583+ custom libctx for each thread can be used or a single global (default)
584+ libctx is used.
585+
547586========================================
54858712. Windows Support
549588========================================
@@ -592,6 +631,13 @@ PHP 8.5 UPGRADE NOTES
592631 . The `-z` or `--zend-extension` option has been removed as it was
593632 non-functional. Use `-d zend_extension=<path>` instead.
594633
634+ - PDO_ODBC
635+ . The fetch behaviour for larger columns has been changed. Rather than
636+ fetching 256 byte blocks, PDO_ODBC will try to fetch a larger block size;
637+ currently, this is the page size minus string overhead. Drivers that
638+ return SQL_NO_TOTAL in SQLGetData are also better handled as well.
639+ This should improve compatibility and performance. See GH-10809, GH-10733.
640+
595641========================================
59664214. Performance Improvements
597643========================================
@@ -625,6 +671,7 @@ PHP 8.5 UPGRADE NOTES
625671 . Improved performance of urlencode() and rawurlencode().
626672 . Improved unpack() performance with nameless repetitions by avoiding
627673 creating temporary strings and reparsing them.
674+ . Improved pack() performance.
628675
629676- XMLReader:
630677 . Improved property access performance.
0 commit comments