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.0RC2 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.0beta3
./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.0beta3-cli-alpine
docker pull php:8.4.0beta3-cli
docker pull php:8.4.0beta3-fpm-alpine
docker pull php:8.4.0beta3-apache
docker pull php:8.4.0beta3-fpm
ChangeLog
Core
- Exiting a namespace now clears seen symbols.
- The exit (and die) language constructs now behave more like a function. They can be passed liked callables, are affected by the strict_types declare statement, and now perform the usual type coercions instead of casting any non-integer value to a string. As such, passing invalid types to exit/die may now result in a TypeError being thrown.
CURL
- Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before dropping the connection.
Hash
- Fix GH-15384 (Build fails on Alpine / Musl for amd64).
Sockets
- Added SO_BINDTOIFINDEX to bind a socket to an interface index.
Standard
php_uname()
now throws ValueErrors on invalid inputs.
Commit List
Calvin Buckley
- Update versions for PHP 8.4.0beta3 in 639628cecb
Christoph M. Becker
- Fix test expectation in 1b52ecd78a
- Drop FASTCALL on variadic functions (GH-15389) in 65c6d72319
- Remove detection of unsupported Windows versions (GH-15399) in 390088bf55
- GetSystemTimePreciseAsFileTime() is now always available (GH-15400) in 25afbdb09e
- Voidify
getfilesystemtime()
(GH-15413) in ec2655f88b
David Carlier
- Checks getrandom availability on solaris in 5c9c275743
- Checks getrandom availability on solaris in f1e5c63837
Gina Peter Banyard
- Replace uses of
php_dirname()
withzend_dirname()
in GH-15393 - [RFC] Convert exit (and die) from language constructs to functions in GH-13483
- ext/standard/info.c: Throw ValueErrors on invalid inputs to
php_uname()
in GH-15385 - ext/standard/php_string.h: Remove declarations that do not have an implementation in GH-15402
ext/dba
: Remove arg num check prior to ZPP checks in GH-15401
Gina Peter Bnayard
- ext/standard/info.c: Minor refactoring to
php_get_windows_name()
in ac7ed28573 - ext/standard/info.c: Minor refactoring to
php_get_uname()
in d63caf006b - ext/standard/info.c: Remove unreachable conditional branch in 0b8fbacd58
Ilija Tovilo
- Disable LSAN for crashing SOAP tests (GH-14562) in 65a101f3a7
Kamil Tekiela
- Mention in UPGRADING the MYSQLIREFRESH* constants in 8448db84a8
Peter Kokot
- Autotools: Use AS_* macros in embed SAPI in GH-15387
- Add configure phase dependencies to mysqlnd extension in GH-15380
- Autotools: Substitute
PHP_EMBED_TYPE
conditionally in GH-15396 - Autotools: Fix typo in FPM TCP_CONNECTION_INFO check in GH-15411
- Autotools: Sync CS in sapi/litespeed in GH-15409
- Autotools: Sync CS in sapi/cli in GH-15410
Remi Collet
- Completely remove session.sid_length and session.sid_bits_per_character from INI files in GH-15382
- Fix test expectation for "Built by..." in GH-15383
Tim Düsterhus
- hash: Consistently check for
PHP_HASH_INTRIN_SHA_*
to guard compilation of SHA256_Transform_shani in GH-15404