@@ -48,6 +48,9 @@ PHP 8.4 UPGRADE NOTES
48
48
removed.
49
49
RFC: https://wiki.php.net/rfc/deprecations_php_8_4#remove_e_strict_error_level_and_deprecate_e_strict_constant
50
50
51
+ - Date:
52
+ . The class constants are typed now.
53
+
51
54
- DBA:
52
55
. dba_open() and dba_popen() will now return a Dba\Connection
53
56
object rather than a resource. Return value checks using is_resource()
@@ -69,6 +72,8 @@ PHP 8.4 UPGRADE NOTES
69
72
. DOMDocument::$actualEncoding, DOMDocument::config, DOMEntity::$actualEncoding,
70
73
DOMEntity::$encoding, DOMEntity::$version have been deprecated.
71
74
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
72
77
73
78
- GMP:
74
79
. The GMP class is now final and cannot be extended anymore.
@@ -83,6 +88,7 @@ PHP 8.4 UPGRADE NOTES
83
88
- TypeError for invalid offset types
84
89
- ValueError for an empty string
85
90
- ValueError if the integer index does not fit in a signed 32 bit integer
91
+ . The class constants are typed now.
86
92
87
93
- MBString:
88
94
. mb_encode_numericentity() and mb_decode_numericentity() now check that
@@ -98,6 +104,19 @@ PHP 8.4 UPGRADE NOTES
98
104
is converted to Unicode. This is significant because around 40 SJIS-Mac characters
99
105
convert to a sequence of multiple Unicode codepoints.
100
106
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
+
101
120
- MySQLnd:
102
121
. The error code reported for MySQL server wait timeouts has been changed from 2006
103
122
to 4031 for MySQL server versions 8.0.24 and above.
@@ -149,6 +168,9 @@ PHP 8.4 UPGRADE NOTES
149
168
has changed. Consult https://github.com/PCRE2Project/pcre2/blob/master/NEWS
150
169
for a full changelog.
151
170
171
+ - PDO:
172
+ . The class constants are typed now.
173
+
152
174
- PDO_DBLIB:
153
175
. setAttribute, DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER and DBLIB_ATTR_DATETIME_CONVERT
154
176
have been changed to set value as a bool.
@@ -180,6 +202,7 @@ PHP 8.4 UPGRADE NOTES
180
202
ReflectionClass::SKIP_*.
181
203
If you have a method or constant with the same name, you might encounter
182
204
errors if the declaration is incompatible.
205
+ . The class constants are typed now.
183
206
184
207
- SimpleXML:
185
208
. Get methods called, or casting to a string on a SimpleXMLElement will no
@@ -211,6 +234,10 @@ PHP 8.4 UPGRADE NOTES
211
234
OutOfBoundsException instead of RuntimeException. As OutOfBoundsException
212
235
is a child class of RuntimeException, code that uses RuntimeException
213
236
continues to function.
237
+ . The class constants are typed now.
238
+
239
+ - Sqlite:
240
+ . The class constants are typed now.
214
241
215
242
- Standard:
216
243
. round() now validates the value of the $mode parameter and throws a ValueError
@@ -246,6 +273,7 @@ PHP 8.4 UPGRADE NOTES
246
273
. Passing an invalid character encoding to XMLReader::open() or
247
274
XMLReader::XML() now throws a ValueError. Passing a string containing NULL
248
275
bytes previously emitted a warning and now throws a ValueError as well.
276
+ . The class constants are typed now.
249
277
250
278
- XMLWriter:
251
279
. Passing a string containing NULL bytes previously emitted a warning and
@@ -670,6 +698,9 @@ PHP 8.4 UPGRADE NOTES
670
698
RFC: https://wiki.php.net/rfc/new_rounding_modes_to_round_function
671
699
. ResourceBundle::get() now has a tentative return type of:
672
700
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.
673
704
674
705
- LibXML:
675
706
. libxml_set_streams_context() now immediately throws a TypeError when a
@@ -923,6 +954,9 @@ PHP 8.4 UPGRADE NOTES
923
954
. New RequestParseBodyException.
924
955
RFC: https://wiki.php.net/rfc/rfc1867-non-post
925
956
957
+ - DBA:
958
+ . Dba\Connection opaque object replacing DBA resources
959
+
926
960
- DOM:
927
961
. Implemented DOM HTML5 parsing and serialization.
928
962
RFC: https://wiki.php.net/rfc/domdocument_html5_parser.
@@ -971,69 +1005,29 @@ PHP 8.4 UPGRADE NOTES
971
1005
effect, and is silently ignored. This underlying feature was
972
1006
deprecated in libcurl 7.11.1 and removed in 7.62.0.
973
1007
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
-
981
1008
- Intl:
982
- . The class constants are typed now.
983
1009
. The behaviour of Intl class has been normalized to always throw Error
984
1010
exceptions when attempting to use a non-initialized object,
985
1011
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.
989
1012
990
1013
- LibXML:
991
1014
. The libxml extension now requires at least libxml2 2.9.4.
992
1015
993
1016
- MBString:
994
1017
. Unicode data tables have been updated to Unicode 16.0.
995
1018
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
-
1010
1019
- Mysqlnd:
1011
1020
. Support for the new VECTOR data type from MySQL 9.
1012
1021
1013
1022
- OpenSSL:
1014
1023
. The OpenSSL extension now requires at least OpenSSL 1.1.1.
1015
1024
1016
- - PDO:
1017
- . The class constants are typed now.
1018
-
1019
1025
- PDO_PGSQL:
1020
1026
. The pdo_pgsql extension now requires at least libpq 10.0.
1021
1027
1022
1028
- PgSQL:
1023
1029
. The pgsql extension now requires at least libpq 10.0.
1024
1030
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
-
1037
1031
- XSL:
1038
1032
. The typed properties XSLTProcessor::$cloneDocument and
1039
1033
XSLTProcessor::$doXInclude are now declared.
0 commit comments