Skip to content

Commit 14806e0

Browse files
committed
Prepare for PHP 8.1
Closes GH-6305.
1 parent 5039999 commit 14806e0

File tree

11 files changed

+15
-1907
lines changed

11 files changed

+15
-1907
lines changed

CONTRIBUTING.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -327,7 +327,8 @@ Currently we have the following branches in use:
327327

328328
| Branch | |
329329
| --------- | --------- |
330-
| master | Active development branch for PHP 8.0, which is open for backwards incompatible changes and major internal API changes. |
330+
| master | Active development branch for PHP 8.1, which is open for backwards incompatible changes and major internal API changes. |
331+
| PHP-8.0 | Is used to release the PHP 8.0.x series. This is a current stable version and is open for bugfixes only. |
331332
| PHP-7.4 | Is used to release the PHP 7.4.x series. This is a current stable version and is open for bugfixes only. |
332333
| PHP-7.3 | Is used to release the PHP 7.3.x series. This is a current stable version and is open for bugfixes only. |
333334
| PHP-7.2 | Is used to release the PHP 7.2.x series. This is an old stable version and is open for security fixes only. |

NEWS

Lines changed: 1 addition & 384 deletions
Original file line numberDiff line numberDiff line change
@@ -1,388 +1,5 @@
11
PHP NEWS
22
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3-
?? ??? ????, PHP 8.0.0rc2
4-
5-
- Curl:
6-
. Fixed bug #80121 (Null pointer deref if CurlHandle directly instantiated).
7-
(Nikita)
8-
9-
- Opcache:
10-
. Fixed bug #80184 (Complex expression in while / if statements resolves to
11-
false incorrectly). (Nikita)
12-
13-
- Reflection:
14-
. Fixed bug #80190 (ReflectionMethod::getReturnType() does not handle static
15-
as part of union type). (Nikita)
16-
17-
- SPL:
18-
. Fixed bug #65387 (Circular references in SPL iterators are not garbage
19-
collected). (Nikita)
20-
21-
- Standard:
22-
. Fixed bug #64060 (lstat_stat_variation7.phpt fails on certain file systems).
23-
(M. Voelker, cmb)
24-
25-
01 Oct 2020, PHP 8.0.0rc1
26-
27-
- CLI:
28-
. Allow debug server binding to an ephemeral port via `-S localhost:0`. (Sara)
29-
30-
- Core:
31-
. Fixed bug #80109 (Cannot skip arguments when extended debug is enabled).
32-
(Nikita)
33-
34-
- ODBC:
35-
. Fixed bug #22986 (odbc_connect() may reuse persistent connection). (cmb)
36-
37-
- PDO_Firebird:
38-
. Fixed bug #64937 (Firebird PDO preprocessing sql). (Simonov Denis)
39-
40-
- SPL:
41-
. SplFixedArray is now IteratorAggregate rather than Iterator. (alexdowad)
42-
43-
- Zlib:
44-
. Fixed bug #78792 (zlib.output_compression disabled by Content-Type: image/).
45-
(cmb)
46-
47-
17 Sep 2020, PHP 8.0.0beta4
48-
49-
- Core:
50-
. Implement #[Attr] Attribute syntax as per final vote in RFC
51-
https://wiki.php.net/rfc/shorter_attribute_syntax_change
52-
. Fixed bug #80045 (memleak after two set_exception_handler calls with
53-
__call). (Nikita)
54-
. Fixed bug #80096 (Segmentation fault with named arguments in nested call).
55-
(Nikita)
56-
. Fixed faulty generator cleanup with yield from. (Bob)
57-
58-
- Date:
59-
. Fixed bug #80057 (DateTimeImmutable::createFromFormat() does not populate
60-
time). (Derick)
61-
62-
- FFI:
63-
. Added FFI\CType::getName() method. (chopins)
64-
65-
03 Sep 2020, PHP 8.0.0beta3
66-
67-
- Calendar:
68-
. Fixed bug #80007 (Potential type confusion in unixtojd() parameter parsing).
69-
(Andy Postnikov)
70-
71-
- COM:
72-
. Fixed bug #55847 (DOTNET .NET 4.0 GAC new location). (cmb)
73-
74-
- DOM:
75-
. Fixed bug #79968 (DOMChildNode API crash on unattached nodes). (Benjamin)
76-
77-
- Fileinfo:
78-
. Upgrade to libmagic 5.39. (Anatol)
79-
80-
- Opcache:
81-
. Fixed bug #80030 (Optimizer segfault with isset on static property with
82-
undef dynamic class name). (Nikita)
83-
84-
20 Aug 2020, PHP 8.0.0beta2
85-
86-
- SPL:
87-
. Fixed bug #79987 (Memory leak in SplFileInfo because of missing
88-
zend_restore_error_handling()). (Dmitry)
89-
90-
06 Aug 2020, PHP 8.0.0beta1
91-
92-
- Core:
93-
. Fixed bug #78236 (convert error on receiving variables when duplicate [).
94-
(cmb)
95-
. Fixed bug #79108 (Referencing argument in a function makes it a reference
96-
in the stack trace). (Nikita)
97-
. Fixed bug #79897 (Promoted constructor params with attribs cause crash).
98-
(Deus Kane)
99-
. Fixed bug #79946 (Build fails due to undeclared UINT32_C). (Nikita)
100-
. Fixed bug #77561 (Shebang line not stripped for non-primary script).
101-
(Nikita)
102-
. Fixed bug #79948 (Exit in auto-prepended file does not abort PHP execution).
103-
(Nikita)
104-
. Fixed bug #65275 (Calling exit() in a shutdown function does not change the
105-
exit value in CLI). (Nikita)
106-
. Fixed bug #62294 (register_shutdown_function() does not correctly handle
107-
exit code). (Nikita)
108-
. Fixed bug #79927 (Generator doesn't throw exception after multiple yield
109-
from iterable). (Nikita)
110-
. Fixed bug #78770 (Incorrect callability check inside internal methods).
111-
(Nikita)
112-
113-
- Date:
114-
. Fixed bug #60302 (DateTime::createFromFormat should new static(), not new
115-
self()). (Derick)
116-
. Implemented FR #79903 (datetime: new format "p", same as "P" but returning
117-
"Z" for UTC). (gharlan)
118-
119-
- JIT:
120-
. Fixed bug #79864 (JIT segfault in Symfony OptionsResolver). (Dmitry)
121-
. Fixed bug #79888 (Incorrect execution with JIT enabled). (Dmitry)
122-
123-
- LDAP:
124-
. Fixed memory leaks. (ptomulik)
125-
126-
- OCI8:
127-
. Modernized oci_register_taf_callback() callable argument parsing
128-
implementation. (girgias)
129-
130-
23 Jul 2020, PHP 8.0.0alpha3
131-
132-
- Core:
133-
. Fixed bug #79790 ("Illegal offset type" exception during AST evaluation
134-
not handled properly). (Nikita)
135-
. Fixed bug #79791 (Assertion failure when unsetting variable during binary
136-
op). (Nikita)
137-
. Fixed bug #79841 (Syntax error in configure / unescaped "[]" in php.m4).
138-
(Nikita)
139-
. Fixed bug #79828 (Segfault when trying to access non-existing variable).
140-
(Nikita)
141-
. Fixed bug #79852 (count(DOMNodeList) doesn't match
142-
count(IteratorIterator(DOMNodeList))). (Nikita)
143-
. Fixed bug #79867 (Promoted untyped properties should get null default
144-
value). (Nikita)
145-
146-
- Standard:
147-
. Fixed bug #79868 (Sorting with array_unique gives unwanted result). (Nikita)
148-
149-
09 Jul 2020, PHP 8.0.0alpha2
150-
151-
- FFI:
152-
. Fixed bug #79749 (Converting FFI instances to bool fails). (cmb)
153-
154-
- JIT:
155-
. Fixed bug #79743 (Fatal error when assigning to array property
156-
with JIT enabled). (Laruence)
157-
158-
- PCRE:
159-
. Updated to PCRE2 10.35. (cmb)
160-
161-
25 Jun 2020, PHP 8.0.0alpha1
162-
163-
- Core:
164-
. Removed the pdo_odbc.db2_instance_name php.ini directive. (Kalle)
165-
. Fixed bug #77619 (Wrong reflection on MultipleIterator::__construct).
166-
(Fabien Villepinte)
167-
. Fixed bug #65274 (Enhance undefined class constant error with class name).
168-
(Nikita)
169-
. Fixed bug #49555 (Fatal error "Function must be a string" message should be
170-
renamed). (Nikita)
171-
. Fixed bug #70839 (Converting optional argument to variadic forbidden by LSP
172-
checks). (Nikita)
173-
. Fixed bug #69084 (Unclear error message when not implementing a renamed
174-
abstract trait function). (Nikita)
175-
. Fixed bug #62609 (Allow implementing Traversable on abstract classes).
176-
(Nikita)
177-
. Fixed bug #79462 (method_exists and property_exists incoherent behavior).
178-
(cmb)
179-
. Fixed bug #79368 ("Unexpected end of file" is not an acceptable error
180-
message). (Alex Dowad)
181-
. Fixed bug #36365 (scandir duplicates file name at every 65535th file).
182-
(cmb)
183-
. Use SSE2 instructions do locale independent strtolower. (Laruence)
184-
. Fixed bug #79521 (Check __set_state structure). (carusogabriel)
185-
. Fixed bug #79467 (data:// wrappers are writable). (cmb)
186-
. Implemented FR #47074 (phpinfo() reports "On" as 1 for the some
187-
extensions). (cmb)
188-
. Implemented FR #72089 (require() throws fatal error instead of exception).
189-
(Nikita)
190-
. Fixed bug #77966 (Cannot alias a method named "namespace"). (Nikita)
191-
192-
- BZ2:
193-
. Fixed bug #71263 (fread() does not report bzip2.decompress errors). (cmb)
194-
195-
- CURL:
196-
. Bumped required libcurl version to 7.29.0. (cmb)
197-
198-
- Date:
199-
. Fixed bug #65547 (Default value for sunrise/sunset zenith still wrong).
200-
(cmb)
201-
. Fixed bug #69044 (discrepancy between time and microtime). (krakjoe)
202-
203-
- DOM:
204-
. Add property DOMXPath::$registerNodeNamespaces and constructor argument
205-
that allow global flag to configure query() or evaluate() calls.
206-
207-
- Enchant:
208-
. Add LIBENCHANT_VERSION macro.
209-
. Deprecate enchant_broker_set_dict_path, enchant_broker_get_dict_path,
210-
enchant_dict_add_to_personal and enchant_dict_is_in_session.
211-
. Add enchant_dict_add and enchant_dict_is_added functions.
212-
. Use libenchant-2 when available.
213-
214-
- FPM:
215-
. Fixed bug #64865 (Search for .user.ini files from script dir up to
216-
CONTEXT_DOCUMENT_ROOT). (Will Bender)
217-
. Add pm.status_listen option. (Jakub Zelenka)
218-
219-
- GD:
220-
. Fixed bug #55005 (imagepolygon num_points requirement). (cmb)
221-
. Replaced gd resources with objects. (Mark Randall)
222-
. Made the $num_points parameter of php_imagepolygon optional. (cmb)
223-
. Removed deprecated image2wbmp(). (cmb)
224-
. Removed deprecated png2wbmp() and jpeg2wbmp(). (cmb)
225-
. Added imagegetinterpolation(). (cmb)
226-
227-
- Iconv:
228-
. Dropped support for iconv without proper errno setting. (cmb)
229-
230-
- Intl:
231-
. Removed deprecated INTL_IDNA_VARIANT_2003. (cmb)
232-
233-
- JIT:
234-
. Fixed bug #79582 (Crash seen when opcache.jit=1235 and
235-
opcache.jit_debug=2). (Laruence)
236-
. Fixed bug #77857 (Wrong result if executed with JIT). (Laruence)
237-
. Fixed bug #79255 (PHP cannot be compiled with enable JIT).
238-
(Laruence, Dmitry)
239-
240-
- JSON:
241-
. The JSON extension is now an integral part of PHP and cannot be disabled
242-
as per RFC: https://wiki.php.net/rfc/always_enable_json (tandre)
243-
244-
- LDAP:
245-
. Removed deprecated ldap_sort. (mcmic)
246-
247-
- MBString:
248-
. Fixed bug #76999 (mb_regex_set_options() return current options). (cmb)
249-
. Removed the unused $is_hex parameter from mb_decode_numericentity(). (cmb)
250-
251-
- MySQLi:
252-
. Fixed bug #76809 (SSL settings aren't respected when persistent connections
253-
are used). (fabiomsouto)
254-
255-
- mysqlnd:
256-
. Fixed #60594 (mysqlnd exposes 160 lines of stats in phpinfo). (PeeHaa)
257-
258-
- OCI8:
259-
. Deprecated old OCI8 function aliases. (Jens de Nies)
260-
. Removed obsolete no-op function oci_internal_debug(). (Jens de Nies)
261-
262-
- OpCache:
263-
. Fixed bug #78654 (Incorrectly computed opcache checksum on files with
264-
non-ascii characters). (mhagstrand)
265-
. Fixed bug #76535 (Opcache does not replay compile-time warnings). (Nikita)
266-
. Fixed bug #79665 (ini_get() and opcache_get_configuration() inconsistency).
267-
(cmb)
268-
269-
- OpenSSL:
270-
. Added Cryptographic Message Syntax (CMS) support. (Eliot Lear)
271-
272-
- PCRE:
273-
. Don't ignore invalid escape sequences. (sjon)
274-
275-
- PGSQL:
276-
. Bumped required libpq version to 9.1. (cmb)
277-
278-
- PDO:
279-
. Changed default PDO error mode to exceptions. (AllenJB)
280-
. Fixed bug #77849 (Disable cloning of PDO handle/connection objects).
281-
(camporter)
282-
283-
- PDO_OCI:
284-
. Added support for setting and getting the oracle OCI 18c call timeout.
285-
(camporter)
286-
287-
- PDO_PGSQL:
288-
. Bumped required libpq version to 9.1. (cmb)
289-
290-
- phpdbg:
291-
. Fixed bug #76596 (phpdbg support for display_errors=stderr). (kabel)
292-
. Fixed bug #76801 (too many open files). (alekitto)
293-
. Fixed bug #77800 (phpdbg segfaults on listing some conditional breakpoints).
294-
(krakjoe)
295-
. Fixed bug #77805 (phpdbg build fails when readline is shared). (krakjoe)
296-
297-
- Reflection:
298-
. Fixed bug #78697 (ReflectionClass::implementsInterface - inaccurate error
299-
message with traits). (villfa)
300-
. Implement ReflectionProperty::hasDefaultValue and
301-
Reflection::getDefaultValue (beberlei)
302-
. Fixed bug #64592 (ReflectionClass::getMethods() returns methods out of
303-
scope). (Nikita)
304-
. Fixed bug #77325 (ReflectionClassConstant::$class returns wrong class when
305-
extending). (Nikita)
306-
. Fixed bug #69180 (Reflection does not honor trait conflict resolution /
307-
method aliasing). (Nikita)
308-
. Fixed bug #74939 (Nested traits' aliased methods are lowercased). (Nikita)
309-
. Implement #79628 (Add $filter parameter for ReflectionClass::getConstants
310-
and ReflectionClass::getReflectionConstants) (carusogabriel)
311-
312-
- Session:
313-
. Fixed bug #78624 (session_gc return value for user defined session
314-
handlers). (bshaffer)
315-
. Fixed bug #73529 (session_decode() silently fails on wrong input). (cmb)
316-
317-
- Shmop:
318-
. Converted shmop resources to objects. (cmb)
319-
320-
- SimpleXML:
321-
. Fixed bug #75245 (Don't set content of elements with only whitespaces).
322-
(eriklundin)
323-
. Fixed bug #63575 (Root elements are not properly cloned). (cmb)
324-
325-
- sodium:
326-
. Fixed bug #77646 (sign_detached() strings not terminated). (Frank)
327-
328-
- SQLite3:
329-
. Added SQLite3::setAuthorizer() and respective class constants. (bohwaz)
330-
331-
- SPL:
332-
. Fixed bug #71236 (Second call of spl_autoload_register() does nothing if it
333-
has no arguments). (Nikita)
334-
. Fixed bug #65006 (spl_autoload_register fails with multiple callables using
335-
self, same method). (Nikita)
336-
337-
- Standard:
338-
. Implemented FR #78638 (__PHP_Incomplete_Class should be final). (Laruence)
339-
. Fixed bug #77204 (getimagesize(): Read error! should mention file path).
340-
(peter279k)
341-
. Fixed bug #76859 (stream_get_line skips data if used with data-generating
342-
filter). (kkopachev)
343-
. Fixed bug #78385 (parse_url() does not include 'query' when question mark
344-
is the last char). (Islam Israfilov)
345-
. Fixed bug #75902 (str_replace should warn when misused with nested arrays).
346-
(Nikita)
347-
. Fixed bug #47983 (mixed LF and CRLF line endings in mail()). (cmb)
348-
. Made quoting of cmd execution functions consistent. (cmb)
349-
350-
- tidy:
351-
. Removed the unused $use_include_path parameter from tidy_repair_string().
352-
(cmb)
353-
354-
- XML:
355-
. Fixed bug #76874 (xml_parser_free() should never leak memory). (Nikita)
356-
357-
- XMLWriter:
358-
. Changed functions to accept/return XMLWriter objects instead of resources.
359-
(cmb)
360-
. Implemented FR #79344 (xmlwriter_write_attribute_ns: $prefix should be
361-
nullable). (cmb)
362-
363-
- Zip:
364-
. Fixed bug #72374 (remove_path strips first char of filename). (tyage, Remi)
365-
. Add ZipArchive::setMtimeName and ZipArchive::setMtimeIndex methods. (Remi)
366-
. Add ZipArchive::setProgressCallback method (since libzip 1.3.0). (Remi)
367-
. Add ZipArchive::setCancelCallback method (since libzip 1.6.0). (Remi)
368-
. Add optional "flags" parameter to ZipArchive::addEmptyDir, addFile and
369-
addFromString methods. (Remi)
370-
. Add "flags" options to ZipArchive::addGlob and addPattern methods
371-
keeping previous behavior having FL_OVERWRITE by default. (Remi)
372-
. Add ZipArchive::replaceFile() method. (Remi)
373-
. Add lastId property to ZipArchive. (Remi)
374-
. ZipArchive::status and ZipArchive::statusSys properties and
375-
ZipArchive::getStatusString() method stay valid after the archive
376-
is closed. (Remi)
377-
. Fixed bug #50678 (files extracted by ZipArchive class lost their
378-
original modified time). (Remi)
379-
. Implemented FR #77960 (add compression / encryption options for
380-
ZipArchive::addGlob and ZipArchive::addPattern). (Remi)
381-
. Add ZipArchive::EM_UNKNOWN and ZipArchive::EM_TRAD_PKWARE constants. (Remi)
382-
. Add ZipArchive::isCompressionMethodSupported() and
383-
ZipArchive::isEncryptionMethodSupported() method (libzip 1.7.0). (Remi)
384-
385-
- Zlib:
386-
. Fixed bug #71417 (fread() does not report zlib.inflate errors). (cmb)
3+
?? ??? ????, PHP 8.1.0alpha1
3874

3885
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>

0 commit comments

Comments
 (0)