2015-07-21 22:36:36 +08:00
|
|
|
PHP NEWS
|
1999-07-23 07:54:54 +08:00
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
2022-07-06 00:09:39 +08:00
|
|
|
?? ??? ????, PHP 8.2.0beta1
|
|
|
|
|
2022-07-10 21:18:51 +08:00
|
|
|
- CLI:
|
|
|
|
. Updated the mime-type table for the builtin-server. (Ayesh Karunaratne)
|
2022-06-20 21:14:29 +08:00
|
|
|
. Fixed potential overflow for the builtin server via the
|
|
|
|
PHP_CLI_SERVER_WORKERS environment variable. (yiyuaner)
|
|
|
|
. Fixed GH-8575 by changing STDOUT, STDERR and STDIN to not close on resource
|
|
|
|
destruction. (Jakub Zelenka)
|
2022-07-10 21:18:51 +08:00
|
|
|
|
2022-07-08 20:47:46 +08:00
|
|
|
- Core:
|
|
|
|
. Reduced the memory footprint of strings returned by var_export(),
|
|
|
|
json_encode(), serialize(), iconv_*(), mb_ereg*(), session_create_id(),
|
|
|
|
http_build_query(), strstr(), Reflection*::__toString(). (Arnaud)
|
2022-07-15 19:21:39 +08:00
|
|
|
. Fixed bug GH-8995 (WeakMap object reference offset causing TypeError).
|
|
|
|
(Tobias Bachert)
|
2022-01-07 01:09:40 +08:00
|
|
|
. Added error_log_mode ini setting. (Mikhail Galanin)
|
2019-10-27 00:34:43 +08:00
|
|
|
. Updated request startup messages. (Eric Norris)
|
2022-07-08 20:47:46 +08:00
|
|
|
|
2022-06-21 23:30:42 +08:00
|
|
|
- COM:
|
|
|
|
. Fixed bug GH-8750 (Can not create VT_ERROR variant type). (cmb)
|
|
|
|
|
2022-01-06 18:16:35 +08:00
|
|
|
- Filter:
|
|
|
|
. Added FILTER_FLAG_GLOBAL_RANGE to filter Global IPs. (vnsavage)
|
|
|
|
|
2022-05-01 17:49:09 +08:00
|
|
|
- FPM:
|
2022-07-08 20:47:46 +08:00
|
|
|
. Added listen.setfib pool option to set route FIB on FreeBSD. (David Carlier)
|
2022-03-17 20:09:23 +08:00
|
|
|
. Added access.suppress_path pool option to filter access log entries.
|
|
|
|
(Mark Gallagher)
|
2022-07-18 14:28:49 +08:00
|
|
|
. Fixed on fpm scoreboard occasional warning on acquisition failure.
|
|
|
|
(Felix Wiedemann)
|
2022-05-01 17:49:09 +08:00
|
|
|
|
2022-07-03 22:49:18 +08:00
|
|
|
- Opcache:
|
2022-07-15 21:53:42 +08:00
|
|
|
. Added initial support for JIT performance profiling generation
|
2022-07-03 22:49:18 +08:00
|
|
|
for macOs Instrument. (David Carlier)
|
2022-07-18 18:36:54 +08:00
|
|
|
. Fixed bug GH-8030 (Segfault with JIT and large match/switch statements).
|
|
|
|
(Arnaud)
|
2022-07-03 22:49:18 +08:00
|
|
|
|
2022-07-12 18:00:08 +08:00
|
|
|
- PCRE:
|
|
|
|
. Updated bundled libpcre to 10.40. (cmb)
|
|
|
|
|
2022-07-05 23:16:08 +08:00
|
|
|
- PDO_Firebird:
|
2022-07-12 19:43:41 +08:00
|
|
|
. Fixed bug GH-8576 (Bad interpretation of length when char is UTF-8). (cmb)
|
2022-07-05 23:16:08 +08:00
|
|
|
|
2022-07-19 11:10:55 +08:00
|
|
|
- Random:
|
|
|
|
. Added new random extension. (Go Kudo)
|
|
|
|
|
2022-07-07 18:49:09 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed empty array returned by str_split on empty input. (Michael Vorisek)
|
2022-07-10 21:18:51 +08:00
|
|
|
. Added ini_parse_quantity function to convert ini quantities shorthand
|
|
|
|
notation to int. (Dennis Snell)
|
2022-07-13 02:58:27 +08:00
|
|
|
. Enable arc4random_buf for Linux glibc 2.36 and onwards
|
|
|
|
for the random_bytes. (Cristian Rodriguez)
|
2022-07-15 19:49:59 +08:00
|
|
|
. Uses CCRandomGenerateBytes instead of arc4random_buf on macOs. (David Carlier).
|
2022-07-07 18:49:09 +08:00
|
|
|
|
2022-07-06 00:09:39 +08:00
|
|
|
07 Jul 2022, PHP 8.2.0alpha3
|
2022-06-21 23:22:34 +08:00
|
|
|
|
2022-07-04 17:59:16 +08:00
|
|
|
- Core:
|
|
|
|
. Uses safe_perealloc instead of perealloc for the
|
|
|
|
ZEND_PTR_STACK_RESIZE_IF_NEEDED to avoid possible overflows. (David Carlier)
|
|
|
|
|
2022-07-02 00:26:27 +08:00
|
|
|
- DBA:
|
|
|
|
. Fixed LMDB driver hanging when attempting to delete a non-existing key
|
|
|
|
(Girgias)
|
|
|
|
|
2022-07-06 03:15:21 +08:00
|
|
|
- Intl:
|
|
|
|
. Fixed build for ICU 69.x and onwards. (David Carlier)
|
|
|
|
|
2022-06-30 15:52:20 +08:00
|
|
|
- Opcache:
|
|
|
|
. Allocate JIT buffer close to PHP .text segemnt to allow using direct
|
|
|
|
IP-relative calls and jumps.
|
|
|
|
(Su Tao, Wang Xue, Chen Hu, Lizhen Lizhen, Dmitry)
|
|
|
|
|
2022-06-19 02:16:49 +08:00
|
|
|
- Sockets:
|
|
|
|
. Added TCP_CONGESTION socket option. (David Carlier)
|
2022-07-11 04:30:08 +08:00
|
|
|
. Added SO_ZEROCOPY/MSG_ZEROCOPY options. (David Carlier)
|
2022-06-19 02:16:49 +08:00
|
|
|
|
2022-07-04 17:59:16 +08:00
|
|
|
- SPL:
|
|
|
|
. Uses safe_erealloc instead of erealloc to handle heap growth
|
|
|
|
for the SplHeap::insert method to avoid possible overflows. (David Carlier)
|
|
|
|
|
2022-07-01 19:51:45 +08:00
|
|
|
- Standard:
|
|
|
|
. Fixed the crypt_sha256/512 api build with clang > 12. (David Carlier)
|
2022-07-04 17:59:16 +08:00
|
|
|
. Uses safe_erealloc instead of erealloc to handle options in getopt
|
|
|
|
to avoid possible overflows. (David Carlier)
|
2022-07-01 19:51:45 +08:00
|
|
|
|
2022-06-28 21:19:56 +08:00
|
|
|
- Zip:
|
|
|
|
|
|
|
|
. Implement fseek for zip stream when possible with libzip 1.9.1. (Remi)
|
|
|
|
|
2022-06-21 23:22:34 +08:00
|
|
|
23 Jun 2022, PHP 8.2.0alpha2
|
2022-06-07 23:47:44 +08:00
|
|
|
|
2022-04-26 16:58:22 +08:00
|
|
|
- Core:
|
2022-06-09 16:48:52 +08:00
|
|
|
. Fixed bug GH-8655 (Casting an object to array does not unwrap refcount=1
|
|
|
|
references). (Nicolas Grekas)
|
2022-06-02 23:15:55 +08:00
|
|
|
. Fixed bug GH-8661 (Nullsafe in coalesce triggers undefined variable
|
|
|
|
warning). (ilutov)
|
2022-03-11 05:35:01 +08:00
|
|
|
. Fixed bug GH-7821 and GH-8418 (Allow arbitrary const expressions in backed
|
|
|
|
enums). (ilutov)
|
2022-06-17 22:20:28 +08:00
|
|
|
. Fixed bug GH-8810 (Incorrect lineno in backtrace of multi-line function
|
|
|
|
calls). (ilutov)
|
2022-04-29 11:22:53 +08:00
|
|
|
. Optimised code path for newly created file with the stream plain wrapper. (Max Kellermann)
|
2022-06-07 23:47:44 +08:00
|
|
|
|
2022-06-06 02:50:23 +08:00
|
|
|
- Curl:
|
|
|
|
. Added new constants from cURL 7.62 to 7.80. (Pierrick)
|
2022-06-08 13:32:32 +08:00
|
|
|
. New function curl_upkeep(). (Pierrick)
|
2022-06-06 02:50:23 +08:00
|
|
|
|
streams/xp_socket: eliminate poll() when MSG_DONTWAIT is available
If there is a zero timeout and MSG_DONTWAIT is available (or the
socket is non-blocking), the poll() call is not necessary, and we can
just call recv() right away.
Before this change:
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "HTTP/1.1 301 Moved Permanently\r\n"..., 8192, MSG_DONTWAIT, NULL, NULL) = 348
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "", 1, MSG_PEEK, NULL, NULL) = 0
After this change:
recvfrom(4, 0x7ffe0cc719a0, 1, MSG_PEEK|MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "HTTP/1.1 301 Moved Permanently\r\n"..., 8192, MSG_DONTWAIT, NULL, NULL) = 348
recvfrom(4, "", 1, MSG_PEEK|MSG_DONTWAIT, NULL, NULL) = 0
The first poll() is replaced by recvfrom(), and the third poll() is
omitted completely.
ext/openssl/xp_ssl: eliminate poll() when MSG_DONTWAIT is available
If there is a zero timeout and MSG_DONTWAIT is available (or the
socket is non-blocking), the poll() call is not necessary, and we can
just call recv() right away.
Closes GH-8092.
2022-02-09 18:24:45 +08:00
|
|
|
- OpenSSL:
|
|
|
|
. Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)
|
|
|
|
|
Implement #77726: Allow null character in regex patterns
In 8b3c1a3, this was disallowed to fix #55856, which was a security
issue caused by the /e modifier. The fix that was made was the
"Easier fix" as described in the original report.
With this fix, pattern strings are no longer treated as null terminated,
so null characters can be placed inside and matched against with regex
patterns without security problems, so there is no longer a reason to
give the error. Allowing this is consistent with the behaviour of many
other languages, including JavaScript, and thanks to PCRE2[0], it does
not require manually escaping null characters. Now that we can avoid the
error here without the cost of escaping characters, there is really no
need anymore to stray here from the conventional behaviour.
Currently, null characters are still disallowed before the first
delimiter and in the options section at the end of a regex string, but
these error messages have been updated.
[0] Since PCRE2, pattern strings no longer have to be null terminated,
and raw null characters match as normal.
Closes GH-8114.
2022-04-25 02:52:53 +08:00
|
|
|
- PCRE:
|
|
|
|
. Implemented FR #77726 (Allow null character in regex patterns). (cmb)
|
|
|
|
|
2022-06-08 05:17:27 +08:00
|
|
|
- Standard:
|
|
|
|
. Deprecated utf8_encode() and utf8_decode(). (Rowan Tommins)
|
|
|
|
|
streams/xp_socket: eliminate poll() when MSG_DONTWAIT is available
If there is a zero timeout and MSG_DONTWAIT is available (or the
socket is non-blocking), the poll() call is not necessary, and we can
just call recv() right away.
Before this change:
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 0 (Timeout)
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "HTTP/1.1 301 Moved Permanently\r\n"..., 8192, MSG_DONTWAIT, NULL, NULL) = 348
poll([{fd=4, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 1, 0) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "", 1, MSG_PEEK, NULL, NULL) = 0
After this change:
recvfrom(4, 0x7ffe0cc719a0, 1, MSG_PEEK|MSG_DONTWAIT, NULL, NULL) = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN|POLLERR|POLLHUP}], 1, 60000) = 1 ([{fd=4, revents=POLLIN}])
recvfrom(4, "HTTP/1.1 301 Moved Permanently\r\n"..., 8192, MSG_DONTWAIT, NULL, NULL) = 348
recvfrom(4, "", 1, MSG_PEEK|MSG_DONTWAIT, NULL, NULL) = 0
The first poll() is replaced by recvfrom(), and the third poll() is
omitted completely.
ext/openssl/xp_ssl: eliminate poll() when MSG_DONTWAIT is available
If there is a zero timeout and MSG_DONTWAIT is available (or the
socket is non-blocking), the poll() call is not necessary, and we can
just call recv() right away.
Closes GH-8092.
2022-02-09 18:24:45 +08:00
|
|
|
- Streams:
|
|
|
|
. Discard poll calls on socket when no timeout/non blocking/MSG_DONTWAIT. (Max Kellermann)
|
|
|
|
|
2022-06-07 23:47:44 +08:00
|
|
|
09 Jun 2022, PHP 8.2.0alpha1
|
2021-02-15 12:55:25 +08:00
|
|
|
|
2021-10-03 17:21:35 +08:00
|
|
|
- CLI:
|
|
|
|
. Fixed bug #81496 (Server logs incorrect request method). (lauri)
|
|
|
|
|
2021-09-29 03:44:12 +08:00
|
|
|
- Core:
|
2021-09-28 22:58:18 +08:00
|
|
|
. Fixed bug #81380 (Observer may not be initialized properly). (krakjoe)
|
2022-02-05 20:00:17 +08:00
|
|
|
. Fixed bug GH-7771 (Fix filename/lineno of constant expressions). (ilutov)
|
2022-03-10 21:41:07 +08:00
|
|
|
. Fixed bug GH-7792 (Improve class type in error messages). (ilutov)
|
2021-12-21 16:29:09 +08:00
|
|
|
. Support huge pages on MacOS. (David CARLIER)
|
2021-09-29 05:28:33 +08:00
|
|
|
|
2021-12-24 18:14:48 +08:00
|
|
|
- Curl:
|
|
|
|
. Added support for CURLOPT_XFERINFOFUNCTION. (David Carlier)
|
2022-05-15 19:01:50 +08:00
|
|
|
. Added support for CURLOPT_MAXFILESIZE_LARGE. (David Carlier)
|
2021-12-24 18:14:48 +08:00
|
|
|
|
2022-05-05 19:15:44 +08:00
|
|
|
- Date:
|
|
|
|
. Fixed GH-8458 (DateInterval::createFromDateString does not throw if
|
|
|
|
non-relative items are present). (Derick)
|
2022-05-20 18:18:49 +08:00
|
|
|
. Fixed bug #52015 (Allow including end date in DatePeriod iterations)
|
|
|
|
(Daniel Egeberg, Derick)
|
2021-12-29 23:38:45 +08:00
|
|
|
. idate() now accepts format specifiers "N" (ISO Day-of-Week) and "o" (ISO
|
|
|
|
Year). (Pavel Djundik)
|
2022-05-05 19:15:44 +08:00
|
|
|
|
2022-03-19 23:16:07 +08:00
|
|
|
- FPM:
|
|
|
|
. Emit error for invalid port setting. (David Carlier)
|
2021-11-13 02:38:55 +08:00
|
|
|
. Added extra check for FPM proc dumpable on SELinux based systems.
|
|
|
|
(David Carlier)
|
2022-04-09 22:08:41 +08:00
|
|
|
. Added support for listening queue on macOS. (David Carlier)
|
2022-04-23 20:25:08 +08:00
|
|
|
. Changed default for listen.backlog on Linux to -1. (Cristian Rodríguez)
|
2022-03-19 23:16:07 +08:00
|
|
|
|
2022-03-28 10:48:30 +08:00
|
|
|
- FTP:
|
|
|
|
. Fix datetime format string to follow POSIX spec in ftp_mdtm(). (Jihwan Kim)
|
|
|
|
|
2021-11-11 14:26:04 +08:00
|
|
|
- Intl:
|
|
|
|
. Update all grandfathered language tags with preferred values
|
2022-01-20 18:30:35 +08:00
|
|
|
. Fixed GH-7939 (Cannot unserialize IntlTimeZone objects). (cmb)
|
2021-11-11 14:26:04 +08:00
|
|
|
|
2021-11-12 14:59:22 +08:00
|
|
|
- OCI8:
|
|
|
|
. Added oci8.prefetch_lob_size directive to tune LOB query performance
|
2021-12-12 19:31:07 +08:00
|
|
|
. Support for building against Oracle Client libraries 10.1 and 10.2 has been
|
|
|
|
dropped. Oracle Client libraries 11.2 or newer are now required.
|
2021-11-12 14:59:22 +08:00
|
|
|
|
2022-04-22 23:04:47 +08:00
|
|
|
- ODBC:
|
2022-05-27 23:00:16 +08:00
|
|
|
. Fixed bug GH-8300 (User input not escaped when building connection string).
|
|
|
|
(Calvin Buckley)
|
2022-04-22 23:04:47 +08:00
|
|
|
|
2022-02-18 02:40:56 +08:00
|
|
|
- PDO_ODBC:
|
|
|
|
. Fixed bug #80909 (crash with persistent connections in PDO_ODBC). (Calvin
|
|
|
|
Buckley)
|
2022-05-27 23:00:16 +08:00
|
|
|
. Fixed bug GH-8300 (User input not escaped when building connection string).
|
|
|
|
(Calvin Buckley)
|
2022-02-18 02:40:56 +08:00
|
|
|
|
2022-05-05 21:51:20 +08:00
|
|
|
- Reflection:
|
|
|
|
. Added ReflectionFunction::isAnonymous(). (Nicolas Grekas)
|
2022-05-04 19:21:37 +08:00
|
|
|
. Added ReflectionMethod::hasPrototype(). (Ollie Read)
|
2022-06-03 00:13:21 +08:00
|
|
|
. Narrow ReflectionEnum::getBackingType() return type to ReflectionNamedType.
|
|
|
|
(SamMousa)
|
2022-05-05 21:51:20 +08:00
|
|
|
|
2022-05-16 21:30:07 +08:00
|
|
|
- Session:
|
|
|
|
. Fixed bug GH-7787 (Improve session write failure message for user error
|
|
|
|
handlers). (ilutov)
|
|
|
|
|
2022-05-16 00:43:20 +08:00
|
|
|
- Sockets:
|
|
|
|
. Added TCP_NOTSENT_LOWAT socket option. (David Carlier)
|
2022-04-21 04:06:47 +08:00
|
|
|
. Added SO_MEMINFO socket option. (David Carlier)
|
2022-05-27 20:06:53 +08:00
|
|
|
. Added SO_RTABLE socket option (OpenBSD), equivalent of SO_MARK (Linux).
|
|
|
|
(David Carlier)
|
|
|
|
. Added TCP_KEEPALIVE, TCP_KEEPIDLE, TCP_KEEPINTVL, TCP_KEEPCNT socket
|
|
|
|
options. (David Carlier)
|
2022-06-02 21:08:03 +08:00
|
|
|
. Added ancillary data support for FreeBSD. (David Carlier)
|
2022-06-04 03:43:09 +08:00
|
|
|
. Added ancillary data support for NetBSD. (David Carlier)
|
2022-06-06 14:18:53 +08:00
|
|
|
. Added SO_BPF_EXTENSIONS socket option. (David Carlier)
|
2022-06-10 04:34:44 +08:00
|
|
|
. Added SO_SETFIB socket option. (David Carlier)
|
2022-05-16 00:43:20 +08:00
|
|
|
|
2022-03-30 15:45:47 +08:00
|
|
|
- Sodium:
|
|
|
|
. Added sodium_crypto_stream_xchacha20_xor_ic(). (Scott)
|
|
|
|
|
2022-03-15 03:09:20 +08:00
|
|
|
- SQLite3:
|
|
|
|
. Changed sqlite3.defensive from PHP_INI_SYSTEM to PHP_INI_USER. (bohwaz)
|
|
|
|
|
2021-12-05 11:59:18 +08:00
|
|
|
- Standard:
|
|
|
|
. net_get_interfaces() also reports wireless network interfaces on Windows.
|
|
|
|
(Yurun)
|
2021-12-16 03:00:24 +08:00
|
|
|
. Finished AVIF support in getimagesize(). (Yannis Guyon)
|
2021-12-29 19:51:18 +08:00
|
|
|
. Fixed bug GH-7847 (stripos with large haystack has bad performance).
|
|
|
|
(ilutov)
|
2022-03-04 20:24:08 +08:00
|
|
|
. New function memory_reset_peak_usage(). (Patrick Allaert)
|
2021-12-30 21:25:34 +08:00
|
|
|
. Fixed parse_url(): can not recognize port without scheme. (pandaLIU)
|
2021-12-05 11:59:18 +08:00
|
|
|
|
2022-05-16 21:30:07 +08:00
|
|
|
- Streams:
|
|
|
|
. Set IP_BIND_ADDRESS_NO_PORT if available when connecting to remote host.
|
|
|
|
(Cristian Rodríguez)
|
2022-05-20 01:27:14 +08:00
|
|
|
. Fixed bug GH-8548 (stream_wrapper_unregister() leaks memory). (ilutov)
|
2022-05-16 21:30:07 +08:00
|
|
|
|
2021-10-05 22:27:03 +08:00
|
|
|
- Zip:
|
|
|
|
. add ZipArchive::clearError() method
|
|
|
|
. add ZipArchive::getStreamName() method
|
|
|
|
. add ZipArchive::getStreamIndex() method
|
2022-05-13 20:59:12 +08:00
|
|
|
. On Windows, the Zip extension is now built as shared library (DLL) by
|
|
|
|
default. (cmb)
|
2021-10-05 22:27:03 +08:00
|
|
|
|
2013-05-17 17:22:04 +08:00
|
|
|
<<< NOTE: Insert NEWS from last stable release here prior to actual release! >>>
|