@@ -48,6 +48,9 @@ PHP 8.4 UPGRADE NOTES
4848    removed.
4949    RFC: https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant
5050
51+ - Date:
52+   . The class constants are typed now.
53+ 
5154- DBA:
5255  . dba_open() and dba_popen() will now return a Dba\Connection
5356    object rather than a resource. Return value checks using is_resource()
@@ -69,6 +72,8 @@ PHP 8.4 UPGRADE NOTES
6972  . DOMDocument::$actualEncoding, DOMDocument::config, DOMEntity::$actualEncoding,
7073    DOMEntity::$encoding, DOMEntity::$version have been deprecated.
7174    RFC: https://wiki.php.net/rfc/deprecations_php_8_4#formally_deprecate_soft-deprecated_domdocument_and_domentity_properties
75+   . Removed DOMImplementation::getFeature().
76+     RFC: https://wiki.php.net/rfc/deprecations_php_8_4#remove_domimplementationgetfeature_feature_version
7277
7378- GMP:
7479  . The GMP class is now final and cannot be extended anymore.
@@ -83,6 +88,7 @@ PHP 8.4 UPGRADE NOTES
8388    - TypeError for invalid offset types
8489    - ValueError for an empty string
8590    - ValueError if the integer index does not fit in a signed 32 bit integer
91+   . The class constants are typed now.
8692
8793- MBString:
8894  . mb_encode_numericentity() and mb_decode_numericentity() now check that
@@ -98,6 +104,19 @@ PHP 8.4 UPGRADE NOTES
98104    is converted to Unicode. This is significant because around 40 SJIS-Mac characters
99105    convert to a sequence of multiple Unicode codepoints.
100106
107+ - Mysqli:
108+   . The unused and undocumented constant MYSQLI_SET_CHARSET_DIR
109+     has been removed.
110+   . The MYSQLI_STMT_ATTR_PREFETCH_ROWS constant has been removed.
111+     The feature is unavailable with mysqlnd.
112+   . The MYSQLI_CURSOR_TYPE_FOR_UPDATE and MYSQLI_CURSOR_TYPE_SCROLLABLE
113+     constants have been removed. This functionality was never implemented,
114+     neither with mysqlnd nor with libmysql.
115+   . The unused MYSQLI_TYPE_INTERVAL constant, which is currently a stub
116+     and an alias for MYSQLI_TYPE_ENUM, has been removed. There are no
117+     plans to add such data type to MySQL yet, so it's unclear what its value
118+     would finally be.
119+ 
101120- MySQLnd:
102121  . The error code reported for MySQL server wait timeouts has been changed from 2006
103122    to 4031 for MySQL server versions 8.0.24 and above.
@@ -149,6 +168,9 @@ PHP 8.4 UPGRADE NOTES
149168    has changed. Consult https://github.com/PCRE2Project/pcre2/blob/master/NEWS
150169    for a full changelog.
151170
171+ - PDO:
172+   . The class constants are typed now.
173+ 
152174- PDO_DBLIB:
153175  . setAttribute, DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER and DBLIB_ATTR_DATETIME_CONVERT
154176    have been changed to set value as a bool.
@@ -180,6 +202,7 @@ PHP 8.4 UPGRADE NOTES
180202    ReflectionClass::SKIP_*.
181203    If you have a method or constant with the same name, you might encounter
182204    errors if the declaration is incompatible.
205+   . The class constants are typed now.
183206
184207- SimpleXML:
185208  . Get methods called, or casting to a string on a SimpleXMLElement will no
@@ -211,6 +234,10 @@ PHP 8.4 UPGRADE NOTES
211234    OutOfBoundsException instead of RuntimeException. As OutOfBoundsException
212235    is a child class of RuntimeException, code that uses RuntimeException
213236    continues to function.
237+   . The class constants are typed now.
238+ 
239+ - Sqlite:
240+   . The class constants are typed now.
214241
215242- Standard:
216243  . round() now validates the value of the $mode parameter and throws a ValueError
@@ -246,6 +273,7 @@ PHP 8.4 UPGRADE NOTES
246273  . Passing an invalid character encoding to XMLReader::open() or
247274    XMLReader::XML() now throws a ValueError. Passing a string containing NULL
248275    bytes previously emitted a warning and now throws a ValueError as well.
276+   . The class constants are typed now.
249277
250278- XMLWriter:
251279  . Passing a string containing NULL bytes previously emitted a warning and
@@ -670,6 +698,9 @@ PHP 8.4 UPGRADE NOTES
670698    RFC: https://wiki.php.net/rfc/new_rounding_modes_to_round_function
671699  . ResourceBundle::get() now has a tentative return type of:
672700    ResourceBundle|array|string|int|null
701+   . The idn_to_ascii() and idn_to_utf8() now always throw ValueErrors if the
702+     $domain name is empty or too long, and if $variant is not
703+     INTL_IDNA_VARIANT_UTS46.
673704
674705- LibXML:
675706  . libxml_set_streams_context() now immediately throws a TypeError when a
@@ -923,6 +954,9 @@ PHP 8.4 UPGRADE NOTES
923954  . New RequestParseBodyException.
924955    RFC: https://wiki.php.net/rfc/rfc1867-non-post
925956
957+ - DBA:
958+   . Dba\Connection opaque object replacing DBA resources
959+ 
926960- DOM:
927961  . Implemented DOM HTML5 parsing and serialization.
928962    RFC: https://wiki.php.net/rfc/domdocument_html5_parser.
@@ -971,69 +1005,29 @@ PHP 8.4 UPGRADE NOTES
9711005    effect, and is silently ignored. This underlying feature was
9721006    deprecated in libcurl 7.11.1 and removed in 7.62.0.
9731007
974- - Date:
975-   . The class constants are typed now.
976- 
977- - DOM:
978-   . Removed DOMImplementation::getFeature().
979-     RFC: https://wiki.php.net/rfc/deprecations_php_8_4#remove_domimplementationgetfeature_feature_version
980- 
9811008- Intl:
982-   . The class constants are typed now.
9831009  . The behaviour of Intl class has been normalized to always throw Error
9841010    exceptions when attempting to use a non-initialized object,
9851011    or when cloning fails.
986-   . The idn_to_ascii() and idn_to_utf8() now always throw ValueErrors if the
987-     $domain name is empty or too long, and if $variant is not
988-     INTL_IDNA_VARIANT_UTS46.
9891012
9901013- LibXML:
9911014  . The libxml extension now requires at least libxml2 2.9.4.
9921015
9931016- MBString:
9941017  . Unicode data tables have been updated to Unicode 16.0.
9951018
996- - Mysqli:
997-   . The unused and undocumented constant MYSQLI_SET_CHARSET_DIR
998-     has been removed.
999-   . The MYSQLI_STMT_ATTR_PREFETCH_ROWS constant has been removed.
1000-     The feature is unavailable with mysqlnd.
1001-   . The MYSQLI_CURSOR_TYPE_FOR_UPDATE and MYSQLI_CURSOR_TYPE_SCROLLABLE
1002-     constants have been removed. This functionality was never implemented,
1003-     neither with mysqlnd nor with libmysql.
1004-   . The unused MYSQLI_TYPE_INTERVAL constant, which is currently a stub
1005-     and an alias for MYSQLI_TYPE_ENUM, has been removed. There are no
1006-     plans to add such data type to MySQL yet, so it's unclear what its value
1007-     would finally be.
1008-   . A new constant has been added: MYSQLI_TYPE_VECTOR.
1009- 
10101019- Mysqlnd:
10111020  . Support for the new VECTOR data type from MySQL 9.
10121021
10131022- OpenSSL:
10141023  . The OpenSSL extension now requires at least OpenSSL 1.1.1.
10151024
1016- - PDO:
1017-   . The class constants are typed now.
1018- 
10191025- PDO_PGSQL:
10201026  . The pdo_pgsql extension now requires at least libpq 10.0.
10211027
10221028- PgSQL:
10231029  . The pgsql extension now requires at least libpq 10.0.
10241030
1025- - Reflection:
1026-   . The class constants are typed now.
1027- 
1028- - Spl:
1029-   . The class constants are typed now.
1030- 
1031- - Sqlite:
1032-   . The class constants are typed now.
1033- 
1034- - XMLReader:
1035-   . The class constants are typed now.
1036- 
10371031- XSL:
10381032  . The typed properties XSLTProcessor::$cloneDocument and
10391033    XSLTProcessor::$doXInclude are now declared.
0 commit comments