Commit: e47db37b177aeeea19d641a127c2f0c377acb41a
Author: Derick Rethans <[email protected]> Thu, 28 Nov 2019
09:27:30 +0000
Parents: 95bef66d1b3a0fb7f56e4bce0e7011a502866e59
Branches: master
Link:
http://git.php.net/?p=web/php.git;a=commitdiff;h=e47db37b177aeeea19d641a127c2f0c377acb41a
Log:
Go with 7.4.0! 🎉
Changed paths:
M ChangeLog-7.php
M archive/archive.xml
A archive/entries/2019-11-28-1.xml
M include/releases.inc
M include/version.inc
A releases/7_4_0.php
diff --git a/ChangeLog-7.php b/ChangeLog-7.php
index b70bb0d24..cdeb1edb8 100644
--- a/ChangeLog-7.php
+++ b/ChangeLog-7.php
@@ -6,9 +6,408 @@ site_header("PHP 7 ChangeLog", array("current" => "docs",
"css" => array("change
?>
<h1>PHP 7 ChangeLog</h1>
+<a href="#PHP_7_4">7.4</a> |
<a href="#PHP_7_3">7.3</a> | <a href="#PHP_7_2">7.2</a> |
<a href="#PHP_7_1">7.1</a> | <a href="#PHP_7_0">7.0</a>
+<a name="PHP_7_4"></a>
+
+<section class="version" id="7.4.0"><!-- {{{ 7.4.0 -->
+<h3>Version 7.4.0</h3>
+<b><?php release_date('28-Nov-2019'); ?></b>
+<ul>
+<li>Core:
+ <ul>
+ <li>Implemented RFC: <a
href="https://wiki.php.net/rfc/deprecate_curly_braces_array_access">Deprecate
curly brace syntax for accessing array elements and string offsets</a>.</li>
+ <li>Implemented RFC: <a
href="https://wiki.php.net/rfc/deprecations_php_7_4">Deprecations for PHP
7.4</a>.</li>
+ <li><?php bugfix(52752); ?> (Crash when lexing).</li>
+ <li><?php bugfix(60677); ?> (CGI doesn't properly validate shebang line
contains #!).</li>
+ <li><?php bugfix(71030); ?> (Self-assignment in list() may have
inconsistent behavior).</li>
+ <li><?php bugfix(72530); ?> (Use After Free in GC with Certain
Destructors).</li>
+ <li><?php bugfix(75921); ?> (Inconsistent: No warning in some cases when
stdObj is created on the fly).</li>
+ <li>Implemented FR <?php bugl(76148); ?> (Add array_key_exists() to the
list of specially compiled functions).</li>
+ <li><?php bugfix(76430); ?> (__METHOD__ inconsistent outside of
method).</li>
+ <li><?php bugfix(76451); ?> (Aliases during inheritance type checks
affected by opcache).</li>
+ <li>Implemented FR <?php bugl(77230); ?> (Support custom CFLAGS and
LDFLAGS from environment).</li>
+ <li><?php bugfix(77345); ?> (Stack Overflow caused by circular reference
in garbage collection).</li>
+ <li><?php bugfix(77812); ?> (Interactive mode does not support PHP
7.3-style heredoc).</li>
+ <li><?php bugfix(77877); ?> (call_user_func() passes $this to static
methods).</li>
+ <li><?php bugfix(78066); ?> (PHP eats the first byte of a program that
comes from process substitution).</li>
+ <li><?php bugfix(78151); ?> (Segfault caused by indirect expressions in
PHP 7.4a1).</li>
+ <li><?php bugfix(78154); ?> (SEND_VAR_NO_REF does not always send
reference).</li>
+ <li><?php bugfix(78182); ?> (Segmentation fault during by-reference
property assignment).</li>
+ <li><?php bugfix(78212); ?> (Segfault in built-in webserver).</li>
+ <li><?php bugfix(78220); ?> (Can't access OneDrive folder).</li>
+ <li><?php bugfix(78226); ?> (Unexpected __set behavior with typed
properties).</li>
+ <li><?php bugfix(78239); ?> (Deprecation notice during string conversion
converted to exception hangs).</li>
+ <li><?php bugfix(78335); ?> (Static properties/variables containing cycles
report as leak).</li>
+ <li><?php bugfix(78340); ?> (Include of stream wrapper not reading whole
file).</li>
+ <li><?php bugfix(78344); ?> (Segmentation fault on
zend_check_protected).</li>
+ <li><?php bugfix(78356); ?> (Array returned from ArrayAccess is
incorrectly unpacked as argument).</li>
+ <li><?php bugfix(78379); ?> (Cast to object confuses GC, causes
crash).</li>
+ <li><?php bugfix(78386); ?> (fstat mode has unexpected value on PHP
7.4).</li>
+ <li><?php bugfix(78396); ?> (Second file_put_contents in Shutdown hangs
script).</li>
+ <li><?php bugfix(78406); ?> (Broken file includes with user-defined stream
filters).</li>
+ <li><?php bugfix(78438); ?> (Corruption when __unserializing deeply nested
structures).</li>
+ <li><?php bugfix(78441); ?> (Parse error due to heredoc identifier
followed by digit).</li>
+ <li><?php bugfix(78454); ?> (Consecutive numeric separators cause OOM
error).</li>
+ <li><?php bugfix(78460); ?> (PEAR installation failure).</li>
+ <li><?php bugfix(78531); ?> (Crash when using undefined variable as
object).</li>
+ <li><?php bugfix(78535); ?> (auto_detect_line_endings value not parsed as
bool).</li>
+ <li><?php bugfix(78604); ?> (token_get_all() does not properly tokenize
FOO<?php with short_open_tag=0).</li>
+ <li><?php bugfix(78614); ?> (Does not compile with DTRACE anymore).</li>
+ <li><?php bugfix(78620); ?> (Out of memory error).</li>
+ <li><?php bugfix(78632); ?> (method_exists() in php74 works differently
from php73 in checking priv. methods).</li>
+ <li><?php bugfix(78644); ?> (SEGFAULT in
ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER).</li>
+ <li><?php bugfix(78658); ?> (Memory corruption using Closure::bindTo).</li>
+ <li><?php bugfix(78656); ?> (Parse errors classified as highest
log-level).</li>
+ <li><?php bugfix(78662); ?> (stream_write bad error detection).</li>
+ <li><?php bugfix(78768); ?> (redefinition of typedef
zend_property_info).</li>
+ <li><?php bugfix(78788); ?> (./configure generates invalid
php_version.h).</li>
+ <li>Fixed incorrect usage of QM_ASSIGN instruction. It must not return
IS_VAR. As a side effect, this allowed passing left hand list() "by reference",
instead of compile-time error.</li>
+ </ul>
+
+<li>CLI:
+ <ul>
+ <li>The built-in CLI server now reports the request method in log
files.</li>
+ </ul>
+
+<li>COM:
+ <ul>
+ <li>Deprecated registering of case-insensitive constants from
typelibs.</li>
+ <li><?php bugfix(78650); ?> (new COM Crash).</li>
+ <li><?php bugfix(78694); ?> (Appending to a variant array causes
segfault).</li>
+ </ul>
+
+<li>CURL:
+ <ul>
+ <li><?php bugfix(76480); ?> (Use curl_multi_wait() so that timeouts are
respected).</li>
+ <li>Implemented FR <?php bugl(77711); ?> (CURLFile should support UNICODE
filenames).</li>
+ <li>Deprecated CURLPIPE_HTTP1.</li>
+ <li>Deprecated $version parameter of curl_version().</li>
+ </ul>
+
+<li>Date:
+ <ul>
+ <li>Updated timelib to 2018.02.</li>
+ <li><?php bugfix(69044); ?> (discrepency between time and microtime).</li>
+ <li><?php bugfix(70153); ?> (\DateInterval incorrectly unserialized).</li>
+ <li><?php bugfix(75232); ?> (print_r of DateTime creating
side-effect).</li>
+ <li><?php bugfix(78383); ?> (Casting a DateTime to array no longer returns
its properties).</li>
+ <li><?php bugfix(78751); ?> (Serialising DatePeriod converts
DateTimeImmutable).</li>
+ </ul>
+
+<li>Exif:
+ <ul>
+ <li><?php bugfix(78333); ?> (Exif crash (bus error) due to wrong alignment
and invalid cast).</li>
+ <li><?php bugfix(78256); ?> (heap-buffer-overflow on
exif_process_user_comment). (CVE-2019-11042)</li>
+ <li><?php bugfix(78222); ?> (heap-buffer-overflow on exif_scan_thumbnail).
(CVE-2019-11041)</li>
+ </ul>
+
+<li>Fileinfo:
+ <ul>
+ <li><?php bugfix(78075); ?> (finfo_file treats JSON file as
text/plain).</li>
+ <li><?php bugfix(78183); ?> (finfo_file shows wrong mime-type for .tga
file).</li>
+ </ul>
+
+<li>Filter:
+ <ul>
+ <li>The filter extension no longer has the --with-pcre-dir on Unix builds,
allowing the extension to be once more compiled as shared using
./configure.</li>
+ </ul>
+
+<li>FFI:
+ <ul>
+ <li>Added FFI extension.</li>
+ <li><?php bugfix(78488); ?> (OOB in ZEND_FUNCTION(ffi_trampoline)).</li>
+ <li><?php bugfix(78543); ?> (is_callable() on FFI\CData throws
Exception).</li>
+ <li><?php bugfix(78716); ?> (Function name mangling is wrong for some
parameter types).</li>
+ <li><?php bugfix(78762); ?> (Failing FFI::cast() may leak memory).</li>
+ <li><?php bugfix(78761); ?> (Zend memory heap corruption with preload and
casting).</li>
+ <li>Implement FR <?php bugl(78270); ?> (Support __vectorcall convention
with FFI).</li>
+ <li>Added missing FFI::isNull().</li>
+ </ul>
+
+<li>FPM:
+ <ul>
+ <li>Implemented FR <?php bugl(72510); ?> (systemd service should be
hardened).</li>
+ <li><?php bugfix(74083); ?> (master PHP-fpm is stopped on multiple
reloads).</li>
+ <li><?php bugfix(78334); ?> (fpm log prefix message includes wrong
stdout/stderr notation).</li>
+ <li><?php bugfix(78599); ?> (env_path_info underflow in fpm_main.c can
lead to RCE). (CVE-2019-11043)</li>
+ </ul>
+
+<li>GD:
+ <ul>
+ <li>Implemented the scatter filter (IMG_FILTER_SCATTER).</li>
+ <li>The bundled libgd behaves now like system libgd wrt. IMG_CROP_DEFAULT
never falling back to IMG_CROP_SIDES.</li>
+ <li>The default $mode parameter of imagecropauto() has been changed to
IMG_CROP_DEFAULT; passing -1 is now deprecated.</li>
+ <li>Added support for aspect ratio preserving scaling to a fixed height
for imagescale().</li>
+ <li>Added TGA read support.</li>
+ <li><?php bugfix(73291); ?> (imagecropauto() $threshold differs from
external libgd).</li>
+ <li><?php bugfix(76324); ?> (cannot detect recent versions of freetype
with pkg-config).</li>
+ <li><?php bugfix(78314); ?> (missing freetype support/functions with
external gd).</li>
+ </ul>
+
+<li>GMP:
+ <ul>
+ <li><?php bugfix(78574); ?> (broken shared build).</li>
+ </ul>
+
+<li>Hash:
+ <ul>
+ <li>Implemented RFC: <a
href="https://wiki.php.net/rfc/permanent_hash_ext">The hash extension is now an
integral part of PHP and cannot be disabled</a>.</li>
+ <li>Implemented FR <?php bugl(71890); ?> (crc32c checksum algorithm).</li>
+ </ul>
+
+<li>Iconv:
+ <ul>
+ <li><?php bugfix(78342); ?> (Bus error in configure test for iconv
//IGNORE).</li>
+ <li><?php bugfix(78642); ?> (Wrong libiconv version displayed).</li>
+
+<li>Libxml:
+ <ul>
+ <li><?php bugfix(78279); ?> (libxml_disable_entity_loader settings is
shared between requests (cgi-fcgi)).</li>
+ </ul>
+
+<li>InterBase:
+ <ul>
+ <li>Unbundled the InterBase extension and moved it to PECL.</li>
+ </ul>
+
+<li>Intl:
+ <ul>
+ <li>Raised requirements to ICU ≥ 50.1.</li>
+ <li>Changed ResourceBundle to implement Countable.</li>
+ <li>Changed default of $variant parameter of idn_to_ascii() and
idn_to_utf8().</li>
+ </ul>
+
+<li>LDAP:
+ <ul>
+ <li>Deprecated ldap_control_paged_result_response and
ldap_control_paged_result</li>
+ </ul>
+
+<li>LiteSpeed:
+ <ul>
+ <li>Updated to LiteSpeed SAPI V7.5 (Fixed clean shutdown).</li>
+ <li>Updated to LiteSpeed SAPI V7.4.3 (increased response header count
limit from 100 to 1000, added crash handler to cleanly shutdown PHP request,
added CloudLinux mod_lsapi mode).</li>
+ <li><?php bugfix(76058); ?> (After "POST data can't be buffered", using
php://input makes huge tmp files).</li>
+ </ul>
+
+<li>MBString:
+ <ul>
+ <li><?php bugfix(77907); ?> (mb-functions do not respect
default_encoding).</li>
+ <li><?php bugfix(78579); ?> (mb_decode_numericentity: args number
inconsistency).</li>
+ <li><?php bugfix(78609); ?> (mb_check_encoding() no longer supports
stringable objects).</li>
+ </ul>
+
+<li>MySQLi:
+ <ul>
+ <li><?php bugfix(67348); ?> (Reading $dbc->stat modifies
$dbc->affected_rows).</li>
+ <li><?php bugfix(76809); ?> (SSL settings aren't respected when persistent
connections are used).</li>
+ <li><?php bugfix(78179); ?> (MariaDB server version incorrectly
detected).</li>
+ <li><?php bugfix(78213); ?> (Empty row pocket).</li>
+ </ul>
+
+<li>MySQLnd:
+ <ul>
+ <li>Fixed connect_attr issues and added the _server_host connection
attribute.</li>
+ <li><?php bugfix(60594); ?> (mysqlnd exposes 160 lines of stats in
phpinfo).</li>
+ </ul>
+
+<li>ODBC:
+ <ul>
+ <li><?php bugfix(78473); ?> (odbc_close() closes arbitrary resources).</li>
+ </ul>
+
+<li>Opcache:
+ <ul>
+ <li>Implemented <a href="https://wiki.php.net/rfc/preload">preloading
RFC</a>.</li>
+ <li>Add opcache.preload_user INI directive.</li>
+ <li>Added new INI directive opcache.cache_id (Windows only).</li>
+ <li><?php bugfix(78106); ?> (Path resolution fails if opcache disabled
during request).</li>
+ <li><?php bugfix(78175); ?> (Preloading segfaults at preload time and at
runtime).</li>
+ <li><?php bugfix(78202); ?> (Opcache stats for cache hits are capped at
32bit NUM).</li>
+ <li><?php bugfix(78271); ?> (Invalid result of if-else).</li>
+ <li><?php bugfix(78341); ?> (Failure to detect smart branch in DFA
pass).</li>
+ <li><?php bugfix(78376); ?> (Incorrect preloading of constant static
properties).</li>
+ <li><?php bugfix(78429); ?> (opcache_compile_file(__FILE__);
segfaults).</li>
+ <li><?php bugfix(78512); ?> (Cannot make preload work).</li>
+ <li><?php bugfix(78514); ?> (Preloading segfaults with inherited typed
property).</li>
+ <li><?php bugfix(78654); ?> (Incorrectly computed opcache checksum on
files with non-ascii characters).</li>
+ </ul>
+
+<li>OpenSSL:
+ <ul>
+ <li>Added TLS 1.3 support to streams including new tlsv1.3 stream.</li>
+ <li>Added openssl_x509_verify function.</li>
+ <li>openssl_random_pseudo_bytes() now throws in error conditions.</li>
+ <li>Changed the default config path (Windows only).</li>
+ <li><?php bugfix(78231); ?> (Segmentation fault upon stream_socket_accept
of exported socket-to-stream).</li>
+ <li><?php bugfix(78391); ?> (Assertion failure in
openssl_random_pseudo_bytes).</li>
+ <li><?php bugfix(78775); ?> (TLS issues from HTTP request affecting other
encrypted connections).</li>
+ </ul>
+
+<li>Pcntl:
+ <ul>
+ <li><?php bugfix(77335); ?> (PHP is preventing SIGALRM from specifying
SA_RESTART).</li>
+ </ul>
+
+<li>PCRE:
+ <ul>
+ <li>Implemented FR <?php bugl(77094); ?> (Support flags in
preg_replace_callback).</li>
+ <li><?php bugfix(72685); ?> (Repeated UTF-8 validation of same string in
UTF-8 mode).</li>
+ <li><?php bugfix(73948); ?> (Preg_match_all should return NULLs on
trailing optional capture groups).</li>
+ <li><?php bugfix(78338); ?> (Array cross-border reading in PCRE).</li>
+ <li><?php bugfix(78349); ?> (Bundled pcre2 library missing LICENCE
file).</li>
+ </ul>
+
+<li>PDO:
+ <ul>
+ <li>Implemented FR <?php bugl(71885); ?> (Allow escaping question mark
placeholders). https://wiki.php.net/rfc/pdo_escape_placeholders</li>
+ <li><?php bugfix(77849); ?> (Disable cloning of PDO handle/connection
objects).</li>
+ <li>Implemented FR <?php bugl(78033); ?> (PDO - support username and
password specified in DSN).</li>
+ </ul>
+
+<li>PDO_Firebird:
+ <ul>
+ <li>Implemented FR <?php bugl(65690); ?> (PDO_Firebird should also support
dialect 1).</li>
+ <li>Implemented FR <?php bugl(77863); ?> (PDO firebird support type
Boolean in input parameters).</li>
+ </ul>
+
+<li>PDO_MySQL:
+ <ul>
+ <li><?php bugfix(41997); ?> (SP call yields additional empty result
set).</li>
+ <li><?php bugfix(78623); ?> (Regression caused by "SP call yields
additional empty result set").</li>
+ </ul>
+
+<li>PDO_OCI:
+ <ul>
+ <li>Support Oracle Database tracing attributes ACTION, MODULE,
CLIENT_INFO, and CLIENT_IDENTIFIER.</li>
+ <li>Implemented FR <?php bugl(76908); ?> (PDO_OCI getColumnMeta() not
implemented).</li>
+ </ul>
+
+<li>PDO_SQLite:
+ <ul>
+ <li>Implemented sqlite_stmt_readonly in PDO_SQLite.</li>
+ <li>Raised requirements to SQLite 3.5.0.</li>
+ <li><?php bugfix(78192); ?> (SegFault when reuse statement after schema
has changed).</li>
+ <li><?php bugfix(78348); ?> (Remove -lrt from pdo_sqlite.so).</li>
+ </ul>
+
+<li>Phar:
+ <ul>
+ <li><?php bugfix(77919); ?> (Potential UAF in Phar RSHUTDOWN).</li>
+ </ul>
+
+<li>phpdbg:
+ <ul>
+ <li><?php bugfix(76596); ?> (phpdbg support for
display_errors=stderr).</li>
+ <li><?php bugfix(76801); ?> (too many open files).</li>
+ <li><?php bugfix(77800); ?> (phpdbg segfaults on listing some conditional
breakpoints).</li>
+ <li><?php bugfix(77805); ?> (phpdbg build fails when readline is
shared).</li>
+ </ul>
+
+<li>Recode:
+ <ul>
+ <li>Unbundled the recode extension.</li>
+ </ul>
+
+<li>Reflection:
+ <ul>
+ <li><?php bugfix(76737); ?> (Unserialized reflection objects are broken,
they shouldn't be serializable).</li>
+ <li><?php bugfix(78263); ?> (\ReflectionReference::fromArrayElement()
returns null while item is a reference).</li>
+ <li><?php bugfix(78410); ?> (Cannot "manually" unserialize class that is
final and extends an internal one).</li>
+ <li><?php bugfix(78697); ?> (ReflectionClass::implementsInterface -
inaccurate error message with traits).</li>
+ <li><?php bugfix(78774); ?> (ReflectionNamedType on Typed Properties
Crash).</li>
+ </ul>
+
+<li>Session:
+ <ul>
+ <li><?php bugfix(78624); ?> (session_gc return value for user defined
session handlers).</li>
+ </ul>
+
+<li>SimpleXML:
+ <ul>
+ <li>Implemented FR <?php bugl(65215); ?> (SimpleXMLElement could register
as implementing Countable).</li>
+ <li><?php bugfix(75245); ?> (Don't set content of elements with only
whitespaces).</li>
+ </ul>
+
+<li>Sockets:
+ <ul>
+ <li><?php bugfix(67619); ?> (Validate length on socket_write).</li>
+ <li><?php bugfix(78665); ?> (Multicasting may leak memory).</li>
+ </ul>
+
+<li>sodium:
+ <ul>
+ <li><?php bugfix(77646); ?> (sign_detached() strings not terminated).</li>
+ <li><?php bugfix(78510); ?> (Partially uninitialized buffer returned by
sodium_crypto_generichash_init()).</li>
+ <li><?php bugfix(78516); ?> (password_hash(): Memory cost is not in
allowed range).</li>
+ </ul>
+
+<li>SPL:
+ <ul>
+ <li><?php bugfix(77518); ?> (SeekableIterator::seek() should accept 'int'
typehint as documented).</li>
+ <li><?php bugfix(78409); ?> (Segfault when creating instance of
ArrayIterator without constructor).</li>
+ <li><?php bugfix(78436); ?> (Missing addref in SplPriorityQueue EXTR_BOTH
mode).</li>
+ <li><?php bugfix(78456); ?> (Segfault when serializing
SplDoublyLinkedList).</li>
+ </ul>
+
+<li>SQLite3:
+ <ul>
+ <li>Unbundled libsqlite.</li>
+ <li>Raised requirements to SQLite 3.7.4.</li>
+ <li>Forbid (un)serialization of SQLite3, SQLite3Stmt and
SQLite3Result.</li>
+ <li>Added support for the SQLite @name notation.</li>
+ <li>Added SQLite3Stmt::getSQL() to retrieve the SQL of the statement.</li>
+ <li>Implement FR ##70950 (Make SQLite3 Online Backup API available).</li>
+ </ul>
+
+<li>Standard:
+ <ul>
+ <li>Implemented RFC <a
href="https://wiki.php.net/rfc/password_registry">password hashing
registry</a>.</li>
+ <li>Implemented RFC where password_hash() has <a
href="https://wiki.php.net/rfc/sodium.argon.hash">argon2i(d)
implementations</a> from ext/sodium when PHP is built without libargon.</li>
+ <li>Implemented FR <?php bugl(38301); ?> (field enclosure behavior in
fputcsv).</li>
+ <li>Implemented FR <?php bugl(51496); ?> (fgetcsv should take empty string
as an escape).</li>
+ <li><?php bugfix(73535); ?> (php_sockop_write() returns 0 on error, can be
used to trigger Denial of Service).</li>
+ <li><?php bugfix(74764); ?> (Bindto IPv6 works with file_get_contents but
fails with stream_socket_client).</li>
+ <li><?php bugfix(76859); ?> (stream_get_line skips data if used with
data-generating filter).</li>
+ <li>Implemented FR <?php bugl(77377); ?> (No way to handle CTRL+C in
Windows).</li>
+ <li><?php bugfix(77930); ?> (stream_copy_to_stream should use mmap more
often).</li>
+ <li>Implemented FR <?php bugl(78177); ?> (Make proc_open accept command
array).</li>
+ <li><?php bugfix(78208); ?> (password_needs_rehash() with an unknown algo
should always return true).</li>
+ <li><?php bugfix(78241); ?> (touch() does not handle dates after 2038 in
PHP 64-bit).</li>
+ <li><?php bugfix(78282); ?> (atime and mtime mismatch).</li>
+ <li><?php bugfix(78326); ?> (improper memory deallocation on
stream_get_contents() with fixed length buffer).</li>
+ <li><?php bugfix(78346); ?> (strip_tags no longer handling nested php
tags).</li>
+ <li><?php bugfix(78506); ?> (Error in a php_user_filter::filter() is not
reported).</li>
+ <li><?php bugfix(78549); ?> (Stack overflow due to nested serialized
input).</li>
+ <li><?php bugfix(78759); ?> (array_search in $GLOBALS).</li>
+ </ul>
+
+<li>Testing:
+ <ul>
+ <li><?php bugfix(78684); ?> (PCRE bug72463_2 test is sending emails on
Linux).</li>
+ </ul>
+
+<li>Tidy:
+ <ul>
+ <li>Added TIDY_TAG_* constants for HTML5 elements.</li>
+ <li><?php bugfix(76736); ?> (wrong reflection for tidy_get_head,
tidy_get_html, tidy_get_root, and tidy_getopt)</li>
+ </ul>
+
+<li>WDDX:
+ <ul>
+ <li>Deprecated and unbundled the WDDX extension.</li>
+ </ul>
+
+<li>Zip:
+ <ul>
+ <li><?php bugfix(78641); ?> (addGlob can modify given remove_path
value).</li>
+ </ul>
+</ul>
+
+<!-- }}} --></section>
+
<a name="PHP_7_3"></a>
<section class="version" id="7.3.12"><!-- {{{ 7.3.12 -->
diff --git a/archive/archive.xml b/archive/archive.xml
index 549680e88..3db6ad7a6 100644
--- a/archive/archive.xml
+++ b/archive/archive.xml
@@ -9,6 +9,7 @@
<uri>http://php.net/contact</uri>
<email>[email protected]</email>
</author>
+ <xi:include href="entries/2019-11-28-1.xml"/>
<xi:include href="entries/2019-11-27-1.xml"/>
<xi:include href="entries/2019-11-21-2.xml"/>
<xi:include href="entries/2019-11-21-1.xml"/>
diff --git a/archive/entries/2019-11-28-1.xml b/archive/entries/2019-11-28-1.xml
new file mode 100644
index 000000000..650c3ea80
--- /dev/null
+++ b/archive/entries/2019-11-28-1.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8"?>
+<entry xmlns="http://www.w3.org/2005/Atom">
+ <title>PHP 7.4.0 Released!</title>
+ <id>https://www.php.net/archive/2019.php#2019-11-28-1</id>
+ <published>2019-11-28T09:26:13+00:00</published>
+ <updated>2019-11-28T09:26:13+00:00</updated>
+ <link href="https://www.php.net/index.php#id2019-11-28-1" rel="alternate"
type="text/html"/>
+ <link href="https://www.php.net/archive/2019.php#2019-11-28-1" rel="via"
type="text/html"/>
+ <category term="frontpage" label="PHP.net frontpage news"/>
+ <category term="releases" label="New PHP release"/>
+ <content type="xhtml">
+ <div xmlns="http://www.w3.org/1999/xhtml">
+ <p>The PHP development team announces the immediate availability of PHP
7.4.0.
+ This release marks the fourth feature update to the PHP 7 series.</p>
+
+ <p>PHP 7.4.0 comes with numerous improvements and new features such
as:</p>
+
+ <ul>
+
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.typed-properties">Typed
Properties</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.arrow-functions">Arrow
Functions</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.type-variance">Limited
Return Type Covariance and Argument Type Contravariance</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.unpack-inside-array">Unpacking
Inside Arrays</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.numeric-literal-separator">Numeric
Literal Separator</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.weakreference">Weak
References</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.tostring-exceptions">Allow
Exceptions from __toString()</a></li>
+ <li><a
href="https://www.php.net/manual/opcache.configuration.php#ini.opcache.preload">Opcache
Preloading</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.deprecated.php">Several
Deprecations</a></li>
+ <li><a
href="https://www.php.net/manual/migration74.removed-extensions.php">Extensions
Removed from the Core</a></li>
+ </ul>
+
+ <p>For source downloads of PHP 7.4.0 please visit our <a
href="http://www.php.net/downloads">downloads</a> page
+ Windows binaries can be found on the <a
href="http://windows.php.net/download">PHP for Windows</a> site.
+ The list of changes is recorded in the <a
href="http://www.php.net/ChangeLog-7.php#7.4.0">ChangeLog</a>.</p>
+
+ <p>The <a href="http://php.net/manual/en/migration74.php">migration
guide</a> is available in the PHP Manual.
+ Please consult it for the detailed list of new features and backward
incompatible changes.</p>
+
+ <p>Many thanks to all the contributors and supporters!</p>
+ </div>
+ </content>
+</entry>
diff --git a/include/releases.inc b/include/releases.inc
index cb11c61c8..87b1785d5 100644
--- a/include/releases.inc
+++ b/include/releases.inc
@@ -2,6 +2,44 @@
$OLDRELEASES = array (
7 =>
array (
+/*
+ '7.4.0' =>
+ array (
+ 'announcement' =>
+ array (
+ 'English' => '/releases/7_4_0.php',
+ ),
+ 'tags' =>
+ array (
+ ),
+ 'date' => '28 Nov 2019',
+ 'source' =>
+ array (
+ 0 =>
+ array (
+ 'filename' => 'php-7.4.0.tar.bz2',
+ 'name' => 'PHP 7.4.0 (tar.bz2)',
+ 'sha256' =>
'004a1a8176176ee1b5c112e73d705977507803f425f9e48cb4a84f42b22abf22',
+ 'date' => '28 Nov 2019',
+ ),
+ 1 =>
+ array (
+ 'filename' => 'php-7.4.0.tar.gz',
+ 'name' => 'PHP 7.4.0 (tar.gz)',
+ 'sha256' =>
'bf206be96a39e643180013df39ddcd0493966692a2422c4b7d3355b6a15a01c0',
+ 'date' => '28 Nov 2019',
+ ),
+ 2 =>
+ array (
+ 'filename' => 'php-7.4.0.tar.xz',
+ 'name' => 'PHP 7.4.0 (tar.xz)',
+ 'sha256' =>
'9bb751b20e5d6cc1ea9b1ebf23ef2d5f07f99b2d9cc417bf1d70c04f8b20ec42',
+ 'date' => '28 Nov 2019',
+ ),
+ ),
+ 'museum' => false,
+ ),
+*/
'7.2.24' =>
array (
'announcement' =>
diff --git a/include/version.inc b/include/version.inc
index a4a8bf60e..0e5155a69 100644
--- a/include/version.inc
+++ b/include/version.inc
@@ -16,6 +16,16 @@
* );
*/
$RELEASES = (function() {
+ /* PHP 7.4 Release */
+ $PHP_7_4_VERSION = "7.4.0";
+ $PHP_7_4_DATE = "28 Nov 2019";
+ $PHP_7_4_TAGS = []; // Set to ['security'] for security
releases.
+ $PHP_7_4_SHA256 = array(
+ "tar.bz2" =>
"004a1a8176176ee1b5c112e73d705977507803f425f9e48cb4a84f42b22abf22",
+ "tar.gz" =>
"bf206be96a39e643180013df39ddcd0493966692a2422c4b7d3355b6a15a01c0",
+ "tar.xz" =>
"9bb751b20e5d6cc1ea9b1ebf23ef2d5f07f99b2d9cc417bf1d70c04f8b20ec42",
+ );
+
/* PHP 7.3 Release */
$PHP_7_3_VERSION = "7.3.12";
$PHP_7_3_DATE = "21 Nov 2019";
@@ -48,6 +58,31 @@ $RELEASES = (function() {
return array(
7 => array(
+ $PHP_7_4_VERSION => array(
+ "announcement" => true,
+ "tags" => $PHP_7_4_TAGS,
+ "date" => $PHP_7_4_DATE,
+ "source" => array(
+ array(
+ "filename" => "php-$PHP_7_4_VERSION.tar.bz2",
+ "name" => "PHP $PHP_7_4_VERSION (tar.bz2)",
+ "sha256" => $PHP_7_4_SHA256["tar.bz2"],
+ "date" => $PHP_7_4_DATE,
+ ),
+ array(
+ "filename" => "php-$PHP_7_4_VERSION.tar.gz",
+ "name" => "PHP $PHP_7_4_VERSION (tar.gz)",
+ "sha256" => $PHP_7_4_SHA256["tar.gz"],
+ "date" => $PHP_7_4_DATE,
+ ),
+ array(
+ "filename" => "php-$PHP_7_4_VERSION.tar.xz",
+ "name" => "PHP $PHP_7_4_VERSION (tar.xz)",
+ "sha256" => $PHP_7_4_SHA256["tar.xz"],
+ "date" => $PHP_7_4_DATE,
+ ),
+ ),
+ ),
$PHP_7_3_VERSION => array(
"announcement" => true,
"tags" => $PHP_7_3_TAGS,
diff --git a/releases/7_4_0.php b/releases/7_4_0.php
new file mode 100644
index 000000000..990c2cc6c
--- /dev/null
+++ b/releases/7_4_0.php
@@ -0,0 +1,36 @@
+<?php
+// $Id$
+$_SERVER['BASE_PAGE'] = 'releases/7_4_0.php';
+include_once __DIR__ . '/../include/prepend.inc';
+site_header("PHP 7.4.0 Release Announcement");
+?>
+
+<p>The PHP development team announces the immediate availability of PHP 7.4.0.
+This release marks the fourth feature update to the PHP 7 series.</p>
+
+<p>PHP 7.4.0 comes with numerous improvements and new features such as:</p>
+
+<ul>
+
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.typed-properties">Typed
Properties</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.arrow-functions">Arrow
Functions</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.type-variance">Limited
Return Type Covariance and Argument Type Contravariance</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.unpack-inside-array">Unpacking
Inside Arrays</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.numeric-literal-separator">Numeric
Literal Separator</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.weakreference">Weak
References</a></li>
+<li><a
href="https://www.php.net/manual/migration74.new-features.php#migration74.new-features.core.tostring-exceptions">Allow
Exceptions from __toString()</a></li>
+<li><a
href="https://www.php.net/manual/opcache.configuration.php#ini.opcache.preload">Opcache
Preloading</a></li>
+<li><a href="https://www.php.net/manual/migration74.deprecated.php">Several
Deprecations</a></li>
+<li><a
href="https://www.php.net/manual/migration74.removed-extensions.php">Extensions
Removed from the Core</a></li>
+</ul>
+
+<p>For source downloads of PHP 7.4.0 please visit our <a
href="http://www.php.net/downloads">downloads</a> page
+Windows binaries can be found on the <a
href="http://windows.php.net/download">PHP for Windows</a> site.
+The list of changes is recorded in the <a
href="http://www.php.net/ChangeLog-7.php#7.4.0">ChangeLog</a>.</p>
+
+<p>The <a href="http://php.net/manual/en/migration74.php">migration guide</a>
is available in the PHP Manual.
+Please consult it for the detailed list of new features and backward
incompatible changes.</p>
+
+<p>Many thanks to all the contributors and supporters!</p>
+
+<?php site_footer(); ?>
--
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php