com web/php: Go with 7.4.0! 🎉: ChangeLog-7.p hp archive/archive.xml archive/entries/2019-1 1-28-1.xml include/releases.inc include/version .inc
releases/7_4_0.php

From: Date: Thu, 28 Nov 2019 09:27:30 +0000
Subject: com web/php: Go with 7.4.0! 🎉: ChangeLog-7.p hp archive/archive.xml archive/entries/2019-1 1-28-1.xml include/releases.inc include/version .inc
releases/7_4_0.php
Groups: php.webmaster 
Request: Send a blank email to php-webmaster+get-28433@lists.php.net to get a copy of this message
Commit: e47db37b177aeeea19d641a127c2f0c377acb41a Author: Derick Rethans <github@derickrethans.nl> 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&lt;?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-&gt;stat modifies $dbc-&gt;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>php-webmaster@lists.php.net</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(); ?>
« previous php.webmaster (#28433) next »