Release Information
- Release Type
- Bug Fix Release
- Release Status
- QA Release
- Branch Status
- Upcoming Release
PHP 8.4 is a development version, and is not recommended for production use. PHP 8.4 is scheduled to reach General Availability on 2024-11-21.
PHP 8.4.1 is the latest QA release in PHP 8.4.
Downloads
Source Code
git clone https://github.com/php/php-src.git --depth 1 --branch php-8.4.0beta1
./buildconf
), configuring the build ./configure
, and running make
.Detailed articles on how to compile PHP are available for Ubuntu/Debian based systems and Fedora/RHEL based systems.
Windows binaries
Docker/Podman Containers
docker pull php:8.4.0beta1-cli-alpine
docker pull php:8.4.0beta1-cli
docker pull php:8.4.0beta1-fpm-alpine
docker pull php:8.4.0beta1-apache
docker pull php:8.4.0beta1-fpm
Commit List
Arnaud Le Blanc
- Fix crash during GC of suspended generator delegate in GH-15275
- Change YIELD/YIELD_FROM to do not increment opline in GH-15328
- Ensure proper alignment of zend_accel_shared_globals.interned_strings in GH-15359
Ayesh Karunaratne
ext/curl
: Add HTTP/3 constants in GH-15350
Calvin Buckley
- Show build provider and unify version information printing in GH-14657
- Update versions for PHP 8.4.0beta1 in 0156795cbe
Christoph M. Becker
- Fix GH-15181: Disabled output handler is flushed again in 887e6b9c45
- Fix
odbc_data_source_001.phpt
in 6713d51631 - Output diagnostics when SQLFetch with SQL_ERROR in 9c4aa2b4fc
- Use new MSVC preprocessor for VS 17 builds in d5c4522547
- Update Windows CI to build with vs17 in af8ef4c5b0
zend_enum
: Rename try parameter to avoid conflict with C++ in 423fc811bd- Fix nightly Windows builds regarding CRT and runners (GH-15273) in 2832b4254c
- Fix comments in win32/sendmail.c (GH-15326) in d98c4b6ebe
- Fix violation of the one definition rule in
ext/com_dotnet
(GH-15327) in ee02e4be6a - Fix some -Wimplicit-function-declaration errors on Windows (GH-15325) in 9c537de8a5
- Declare gdImageGetInterpolationMethod() for bundled GD (GH-15329) in 9b41c8b1b5
- Support somewhat recent clang versions on Windows (GH-15324) in 8740fdf1f6
- Skip fb4_datatypes*.phpt for Firebird server < 4.0.0 (GH-15354) in 266192372c
David CARLIER
ext/readline
: readline_info fix usage when the buffer is not initialised in GH-15139ext/standard
: disable one ipv2long test. in GH-15200
David Carlier
- sapi/phpdbg: windows update exception type falling into segfault in 3c36c7308d
- CI disable leak sanitizer on two libedit tests temporarily in cad0ce5382
- Fix GH-15210: phpdbg_print_changed_zvals working on a real copy instead in 9aeb6761b5
ext/standard
: enabling feature detection auxiliary vector on OpenBSD in d5c7f3b0e6ext/sockets
: controlling ephemeral port ranges on *BSD in 1d198c660cext/sockets
: adding SOCK_CLOEXEC/SOCK_NONBLOCK options in d052d612d9
disservin
- Update ci actions/checkout to v4 in GH-15283
Gina Peter Banyard
- Zend: Add test disabling
assert()
function in bc8909aac3 ext/dba
: Deprecate passing null|false todba_key_split()
in GH-15297ext/spl
: Follow-up on GH-9704 in GH-15295ext/xml
: Deprecatexml_set_object()
and passing non-callable strings as handlers in GH-15293ext/core
: Deprecate passing E_USER_ERROR totrigger_error()
in GH-15308ext/soap
: Deprecate passing an int toSoapServer::addFunction()
in GH-15310- main/streams: Voidify
statbuf_from_array()
in GH-15319 ext/standard
: Minor refactoring to URL scanner code in GH-15321ext/mysqli
: Mark function pointer as returningzend_result
in GH-15342ext/mysqli
: Mark return type aszend_return
in GH-15345ext/mysqli
: Deprecate passing the parameter tomysqli_store_result()
in GH-15311- ext/(standard|spl): Deprecate passing a non-empty string as the $enclosure parameter in GH-15362
- Deprecate using "_" as a class name in GH-15360
ext/standard
: Throw ValueErrors instr_getcsv()
for invalid inputs in GH-15365
Gina Peter Bnayard
ext/xml
: Add an explicit test case about unsetting a handler with empty string in caae950ff7ext/mysqli
:mysqli_report()
only ever returns true in efd33f57c7ext/mysqli
: Use an assertion for condition that is checked by ZPP in 0c827f6b25ext/mysqli
: Remove PHP 6 remnants in c2bdb31b6aext/mysqli
: Improve variable name and type in 5d1db3dd56ext/gmp
: Add test about manually (un)serializing in d74b513f68ext/gmp
: Usezend_string
to GMP object function directly in f8626638c4ext/gmp
: Refactorgmp_import_export_validate()
in 6114379ad2- ext/standard/filters.c: Remove some register keywords in 54cc76fdb4
- ext/standard/filters.c: Voidify
php_conv_base64_decode_ctor()
in 2baadf3807 - ext/standard/filters.c: Use
zend_result
return type instead of int in 9cfe9e10ba - ext/standard/filters.c: Use bool type where possible for persistent field/param in 91aca96a8e
- ext/standard/head.c: Remove some useless casts in 2297e50772
- ext/standard/head.c: Change return type of
php_header()
to bool in 67a15cf457 - ext/standard/info.c: Removed
php_info_html_esc()
in 739805d099 - ext/standard/info.c: Use size_t type where appropriate in 5078eb080e
- ext/standard/info.c: Make some functions static in e0f6e3de34
- Add more tests covering deprecation of _ as CE name in 5622def429
Ilija Tovilo
- Allow optimizer to depend on preloaded symbols in GH-15021
- Add
ReflectionProperty::getSettableType()
test for get-only backed property in 85fa983fe6 - Remove IS_STATIC_VAR_UNINITIALIZED in GH-15227
- Fix zend_function.prop_info pointer for trait hooks in GH-15245
- Fix inheritance of hooks onto plain properties in 5d9c155dd3
- Fix missing variance check for abstract set with asymmetric type in GH-15157
- [JIT] Avoid generating fast property assign path for readonly properties in GH-15260
- Disallow indirect modification on readonly properties within __clone() in GH-15012
- Fix git check in verify generated files (GH-15363) in 9be52dcd62
Jorg Adam Sowa
- Deprecate date_sunrise and date_sunset constants in GH-12978
- ValueError on null byte in
session_name()
in GH-15286 ext/session
: session.save_handler - add tests fortwo uncovered cases in GH-15337
Kamil Tekiela
- Deprecate mysqli_refresh in GH-11929
- Deprecate mysqli_ping in GH-11945
- Deprecate mysqli_kill in GH-11926
- Update arginfo for mysqli and spl_fixedarray in GH-15356
- Deprecate MYSQLIREFRESH* constants in GH-15358
Máté Kocsis
- Deprecate Soft-deprecated DOMDocument and DOMEntity properties in GH-15369
Niels Dossche
- Fix UAF when removing doctype and using foreach iteration in b282dd749f
- Minor cleanup in dom_character_data_append_data in GH-15173
- Fix GH-15192: Segmentation fault in dom extension (html5_serializer) in 76ad89ccff
- Add a test for setting the innerHTML on a prefixed XML element in GH-15204
- Fix GH-15179: Segmentation fault (null pointer dereference) in ext/standard/url_scanner_ex.re in 67ce8759e8
- Deprecate DOM_PHP_ERR in GH-15234
- Remove
DOMImplementation::getFeature()
in GH-15233 - Fix SoapFault property destruction in 11fbe8801b
- Use unsigned int instead of int for refcount for libxml objects in GH-15247
- Fix crash when converting array data for array in shm in xxh3 in ca84662c87
- Deprecate passing incorrect data types for options to
ext/hash
functions in GH-15236 - Revert "Fix bug #69280: SoapClient classmap doesn't support fully qualified class name (#14398)" in 28290655e8
- Access long value directly for call to
count()
in simplexml in GH-15278 - Fix GH-15268: heap buffer overflow in phpdbg (
zend_hash_num_elements()
Zend/zend_hash.h) in a6c547d1dd - Fix GH-15292: Dynamic AVX detection is broken for MSVC in 00001c4a0c
- Fix uninitialized value watchpoint_hit in 2e26559fcd
- Add necessary SKIPIFs to new phpdbg tests in 4d71580e00
- Simplify document standalone setter in GH-15320
- Fix incorrect type check in removeAttributeNode in db5ea45f0f
- Fix GH-15331: dom: Element::$substitutedNodeValue test failed in 8d7365b6f0
- Get rid of le_istream in b7be849fad
- Get rid of le_dispatch in 3f54be8053
- Update TODOs in com_dotnet in e1c8329b8c
Peter Kokot
- Autotools: Normalize
PHP_OUTPUT
arguments in GH-15177 - Autotools: Update php.m4 CPP macros help texts in GH-15188
- Autotools: Fix ffi checks in GH-15197
- Sync CPP macros in
ext/iconv
in GH-15191 - Autotools: Update configure.ac CPP macros help texts in GH-15189
- Sync HAVE_<extension> help texts in GH-15167
- Sync file permissions in 48916cec33
- Fix GH-13199: Redundant prompt in phpdbg with libedit/readline in dc670cb7f6
- Autotools: Remove obsolete config.status invocations in GH-15185
- Autotools: Update config.guess to 2024-07-27 and config.sub to 2024-05-27 in GH-15190
- Sync AC_DEFINE help texts in GH-15207
- Replace
PHP_OUTPUT
with AC_CONFIG_FILES in GH-15186 - Autotools: Improve ftp and mysqlnd SSL configure options in GH-15164
- Autotools: Replace AC_MSG_ERROR with AC_MSG_FAILURE in GH-15209
- Refactor HAVE_SQLDATASOURCES check in GH-15222
- Sync preprocessor macros help texts in GH-15218
- Autotools: Improve
--with-mm
configure option check in GH-15212 - Autotools: Refactor debug checks in GH-15215
- Add and update
ext/dba
preprocessor macros help texts in GH-15221 - Autotools: Check for cross_compiling=yes in GH-15238
- Fix HAVE_LIBGD usage in GH-15226
- Add and update
ext/odbc
preprocessor macros help texts in GH-15223 - Fix bug #51558: shared readline build fails (#15242) in 0b25e26b4e
- Autotools: Refactor thread safety checks in GH-15214
- Autotools: Add
ext/readline
preprocessor macros help texts in GH-15241 - Autotools: Add pkg-config for GMP library in GH-15166
- Autotools: Add phpized configure log and help separators in GH-15251
- Update preprocessor macros help texts for enchant and snmp extensions in GH-15255
- Autotools: Quote AC_PATH_PROG arguments in
ext/pdo_firebird
in a49e0a42a1 - Update
ext/zip
preprocessor macros help texts in GH-15271 - Update
ext/sodium
preprocessor macro help texts in GH-15270 - Update
ext/tidy
preprocessor macros help texts in GH-15269 - Update pgsql extensions preprocessor macros help texts in GH-15290
- Update and sync PHP build preprocessor macros help texts in GH-15298
- Autotools: Remove DEBUG_CFLAGS in GH-15300
- Autotools: Sync CS in Zend.m4 in GH-15304
- Autotools: Sync CS in hash extension in GH-15302
- Autotools: Normalize phpdbg list of source files in GH-15306
- Autotools: Quote AC_CHECK_PROG* macro arguments in 36f6a20a6b
- Autotools: Quote
PHP_CXX_COMPILE_STDCXX
macro arguments in 42c9963133 - Autotools: Remove too basic optimization flag cleanup in d7a8a04eb9
- Update sqlite3 and pdo_sqlite preprocessor macros help texts in GH-15291
- Update gd extension preprocessor macros help texts in GH-15296
- Update mysql preprocessor macros help texts in GH-15288
- Autotools: Add pkg-config support for NET-SNMP library in GH-15261
- Autotools: Fix SNMP checks in GH-15263
- Autotools: Refactor mysqli extension checks in GH-15323
- Autotools: Quote
PHP_CHECK_SIZEOF
macro arguments in 2b30b22d7d - Autotools: Refactor pdo_mysql checks in GH-15334
- Autotools: Sync CS across the configure.ac in GH-15332
- Autotools: Refactor mysql_config checks in pdo_mysql in GH-15336
- Autotools: Sync CS in opcache extension in GH-15340
- Autotools: Sync CS in
ext/pcntl
in GH-15341 - Autotools: Remove dependency related errors in GH-15344
- Autotools: Sync CS in extensions in GH-15343
- Autotools: Remove PDO dependency related errors in GH-15347
- Add pcre as a configure step dependency to fileinfo in GH-15349
- Remove redundant middle newlines in "Autotools" related files in 9fcc1bca8a
- Autotools: Use AS_CASE in
ext/pdo_odbc
in GH-15355 - Autotools: Refactor iconv implementation checks in GH-15357
- Autotools: Sync CS in gd extension in GH-15364
- Autotools: Wrap long texts with m4_text_wrap in GH-15368
- Autotools: Sync CS in
ext/pdo_firebird
in GH-15372 - Autotools: Check cli SAPI configure checks conditionally in GH-15370
- Autotools: Fix phpdbg build in GH-15373
- Autotools: Fix pdo_firebird shared build in GH-15371
Quentin Dreyer
- Fix GH-15155: Keep stream context in filtered streams in 7b32a145d9
Remi Collet
- use libedit instead of readline for CI in 521178709e
Saki Takamachi
- RFC: Change GMP bool cast behavior in GH-15151
Simonov Denis
- pdo_firebird: Formatting time zone types in 225034dbbc
Tim Düsterhus
- Improve link styling in PHPInfo in GH-15077
- unserialize: Deprecate the 'S' tag in GH-12309
- random: Deprecate
lcg_value()
in GH-15211 - session: Deprecate
session.sid_length
andsession.sid_bits_per_character
in GH-15213 - random: Remove
engine_combinedlcg.c
in GH-15216 - standard: Stop using
php_combined_lcg()
inuniqid()
in GH-15217 - random: Optimize
Randomizer::getBytes()
in GH-15228 - hash: Add SHA-NI implementation of SHA-256 in GH-15152
Tyson Andre
- Deprecate SplFixedArray::__wakeup() in GH-9704