Adds IntlRelativeDateTimeFormatter for localized strings like "3 days ago" and "next Sunday".
Voting closes
Follow the proposals shaping the next version of PHP.
Voting now
Ends the PHP project's official endorsement of PEAR as a component framework and distribution system.
Voting closes
View RFC →Adds IntlRelativeDateTimeFormatter for localized strings like "3 days ago" and "next Sunday".
Voting closes
Adds Filter\Filter and Filter\Flag backed enums for typed filter IDs and flags while keeping existing integer constants and arguments working.
Last activity
Adds an ext/csv extension with Csv\ functions that read and write RFC 4180 CSV, replacing the SplFileObject CSV methods PHP 8.6 deprecated.
Last activity
Adds an Io\Terminal API to read the terminal size, switch to raw mode, read single keys, and take hidden input without shelling out to stty.
Last activity
Makes bindec(), octdec(), hexdec() and base_convert() throw an Exception on invalid characters instead of ignoring them.
Last activity
Adds Time\Instant for a single point in time and a Time\Clock interface you can swap out in tests.
Last activity
Adds an immutable Uri\QueryParams class to parse, change and build query strings outside of $_GET, including RFC 3986 query strings.
Last activity
Adds --enable-cli-fpm so one PHP binary can run CLI and FPM, cutting package size and speeding cold starts after CLI work.
Last activity
Adds PASSWORD_BCRYPT_SHA256, an opt-in bcrypt algorithm that HMAC-SHA256 pre-hashes passwords to avoid bcrypt's 72-byte and NUL-byte limits.
Last activity
Deprecates passwords over 72 bytes in password_hash() with bcrypt in PHP 8.7 and throws a ValueError in 8.8, instead of silently cutting them short.
Last activity
Adds =$name as shorthand for 'name' => $name when building or destructuring arrays, so the key comes from the variable's name.
Last activity
Lets an event loop or Fiber scheduler take over PHP's blocking I/O, so plain fread(), sleep() and curl_exec() calls can run concurrently in Fibers.
Last activity
Adds timer, signal, process and wake-up handles, weak handles and socket support to PHP 8.6's Io\Poll API, so event loops need less custom code.
Last activity
Adds str_mask() for masking phone numbers, card numbers and other sensitive strings.
Last activity
Adds a #[NoSerialize] attribute that leaves a property out of serialize(), or forbids serializing a whole class.
Last activity
Adds a PREG_THROW_ON_ERROR flag so preg_* functions throw on bad patterns or bad UTF-8 instead of returning false.
Last activity
Adds array_str_contains(), which returns the array elements whose value contains a substring, keys intact, without an array_filter() closure.
Last activity
Allows specific literal values such as 1 or "draft" as types, like the existing true and false types.
Last activity
Makes closures declared in constant expressions serializable by referencing the code that declares them.
Last activity
Adds an engine-level scheduler on top of Fibers so async libraries can share one concurrency model.
Last activity