-
Notifications
You must be signed in to change notification settings - Fork 738
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PHP 8.4 documentation tracker #3872
Comments
The TODO lists:
However, this function was never documented and never showed up in the PHP docs, so I guess there's nothing to do here? |
Indeed, how convenient. :D |
Hi, good morning. May I suggest updating tokens.xml and constants.xml to add T_PUBLIC_SET, T_PROTECTED_SET and T_PRIVATE_SET? |
@iluuu1994 Already in progress: #3898, #3828. More to come. |
Great to hear, thank you Larry! |
@Ayesh could you look into the cURL docs? @devnexen could you document the POSIX/Socket/PCNTL/Intl constants? @bukka can you document the FPM and OpenSSL changes? @haszi can you document the Output Buffering changes? @KentarouTakeda (or possibly @devnexen) can you document the PGSQL/PDO_PGSQL changes? @mbeccati can you document the PDO custom parsers? @SakiTakamachi can you document the BCMath changes? @kamil-tekiela can you document the new MySQLi constant, and possibly the MySQLnd changes? |
Sure Gina, will get to it sometime this weekend :) |
@derickr can you document the new DateTime methods? |
Hey Gina!
Not sure exactly what to document about custom parsers atm, but I'll
check the current docs and I'll think about something.
Perhaps a compatibility list extracted from the RFC page.
Cheers
…On 13/11/2024 00:44, Gina Peter Banyard wrote:
@Ayesh <https://github.com/Ayesh> could you look into the cURL docs?
@devnexen <https://github.com/devnexen> could you document the POSIX/
Socket/PCNTL/Intl constants?
@bukka <https://github.com/bukka> can you document the FPM and OpenSSL
changes?
@haszi <https://github.com/haszi> can you document the Output Buffering
changes?
@KentarouTakeda <https://github.com/KentarouTakeda> (or possibly
@devnexen <https://github.com/devnexen>) can you document the PGSQL/
PDO_PGSQL changes?
@mbeccati <https://github.com/mbeccati> can you document the PDO custom
parsers?
@SakiTakamachi <https://github.com/SakiTakamachi> can you document the
BCMath changes?
@kamil-tekiela <https://github.com/kamil-tekiela> can you document the
new MySQLi constant, and possibly the MySQLnd changes?
—
Reply to this email directly, view it on GitHub <https://github.com/php/
doc-en/issues/3872#issuecomment-2471868286>, or unsubscribe <https://
github.com/notifications/unsubscribe-auth/
AACE6FBXP73NPKOZYGLWTF32AKHHHAVCNFSM6AAAAABP7JZBGGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINZRHA3DQMRYGY>.
You are receiving this because you were mentioned.Message ID: <php/doc-
***@***.***>
--
Matteo Beccati
Development & Consulting - https://www.beccati.com/
|
Hi @Girgias, thanks for the ping :) |
I updated the issue text to tick all Curl-related changes. I think that was all of them for Curl. |
@Ayesh you accidentally wiped my linking, please refresh before making changes |
@nielsdos I'm so sorry, I will make sure to refresh from now on :( |
@Ayesh |
Added a link to the WIP hooks doc PR. |
@Crell I don't know what you did but take a look at your edit history diff, looks like a lot of boxes were unticked and a lot of things were changed. |
FFS... I reloaded the page before hitting edit to avoid that! I don't seem to have access to the history diff. (I'm just a member here, not admin.) |
Looks like you had an old version cached, and GH doesn't have a "restore old edit" button ffs. See also https://superuser.com/questions/1381271/restore-previous-version-of-my-comment-on-github but I'm on my phone rn... |
I had it saved in my IDE as I got bitten by this already multiple times. So should be fixed now. |
I am currently creating documentation for the class and new functions regarding bcmath. |
Pages which need to be added/modified for complete documentation of PHP 8.4:
Based of the migration guide: https://www.php.net/manual/en/migration84.php (#3822):
Related to php/doc-base#165
Note
This issue is still a Work In Progress
Missing items:
Important
Priority should be given to documenting Core language and ext/standard behavioural changes
Core
New features:
#[\Deprecated]
attribute (Document#[\Deprecated]
#3894)request_parse_body()
Parsing RFC1867 (multipart) requests in non-POST HTTP requests (Create stub for request_parse_body() #4108)new
without parenthesis (Add documentation for new MyClass()->method() without parentheses #3978)Deprecated ✅
_
as class name (PHP 8.4: Single underscore as class name is deprecated #4099)trigger_error()
withE_USER_ERROR
(Use modern markup for E_* constants #4056, PHP 8.4: trigger_error() updates #4063)E_STRICT
constant (Use modern markup for E_* constants #4056)BC Break:
exit()
behavioural changes (PHP 8.4: exit() is now a function #4070)Removal ofThis is an internal engine changeE_STRICT
error levelNew Functions:
request_parse_body
New Classes:
Deprecated
(Document#[\Deprecated]
#3894)RequestParseBodyException
New Constants: ✅
PHP_OUTPUT_HANDLER_PROCESSED
(Update output control constants #3039, Fix GH-3384 #3587)PHP_SBINDIR
(Add PHP_SBINDIR (PHP-8.4) #3423)Changed Functions: ✅
trigger_error()
anduser_error()
have a return type oftrue
instead ofbool
now (PHP 8.4: trigger_error() updates #4063)Other Changes:
output_add_rewrite_var()
now usesurl_rewriter.hosts
INISAPI
apache2handler:
FPM:
/dev/poll
events.mechanism
setting for Solaris/Illumos had been retired.CLI:
This process was previously skipped if the path looked like it was referring to a file,
i.e. if the last path component contained a period.
In that case, a 404 error was returned.
The behavior has been changed to look for an index file in all cases.
Class constants are now typed
New warnings and exceptions
cURL: ✅
curl_multi_select()
now throws aValueError
if$timeout
is less than 0 or greater thanPHP_INT_MAX
([PHP 8.4] Add errors for curl_multi_select #3965)GD: ✅
imagejpeg()
,imagepng()
,imageavif()
,imagewebp()
now throw aValueError
if$quality
is invalid ([PHP 8.4] Add errors for GD functions #3962)imageavif()
now throw aValueError
if$speed
is invalid ([PHP 8.4] Add errors for GD functions #3962)imagescale()
now throw aValueError
if$mode
is invalid ([PHP 8.4] Add errors for GD functions #3962)imagescale()
now throw aValueError
if$width
or$height
over/underflows ([PHP 8.4] Add errors for GD functions #3962)imagefilter()
now throw aValueError
with theIMG_FILTER_SCATTER
filter if$sub
or$plus
over/underflows ([PHP 8.4] Add errors for GD functions #3962)GetText: ✅
bind_textdomain_codeset()
,textdomain()
,d*gettext()
now throw aValueError
if$domain
is the empty string ([PHP 8.4] Add errors for GetText functions #3964)Intl:
resourcebundle_get()
,ResourceBundle::get()
, and offset access forResourceBundle
TypeError
for invalid offset typesValueError
for an empty stringValueError
if the integer index does not fit in a signed 32 bit integerIntlDateFormatter::__construct()
now throws aValueError
if$locale
is invalidNumberFormatter::__construct()
now throws aValueError
if$locale
is invalidMBstring:
mb_encode_numericentity()
,mb_decode_numericentity()
now check that$map
only has integersmb_http_input()
throwsValueError
if$type
is invalidmb_http_output()
throwsValueError
if$encoding
has null bytesODBC:
odbc_fetch_row()
returnsfalse
when$row =< 0
, this now warnsPCNTL:
pcntl_sigprocmask()
,pcntl_sigwaitinfo()
, andpcntl_sigtimedwait
ValueError
if$signals
array is emptyTypeError
if$signals
array value is not intValueError
if$signals
array value is not valid signalpcntl_sigprocmask()
ValueError
if$mode
is not one ofSIG_BLOCK
,SIG_UNBLOCK
orSIG_SETMASK
pcntl_sigtimedwait()
ValueError
if$seconds
is less than 0ValueError
if$nanoseconds
is less than 0ValueError
if$seconds
and$nanoseconds
are both 0SimpleXML: ✅
simplexml_import_dom()
throwsTypeError
instead ofValueError
if called with non XML object (Update simplexml_import_dom for PHP 8.4 #3906)Standard:
round()
now throws aValueError
for invalid$mode
, before interpreted asPHP_ROUND_HALF_UP
php_uname()
now throws aValueError
for invalid$mode
#3968ValueError
andValueError
are thrown if the"allowed_classes"
option ofunserialize()
is not an array of class namesstr_getcsv()
(PHP 8.4: CSV related changes and deprecations #4093)ValueError
if$separator
is not one byte longValueError
if$enclosure
is not one byte longValueError
if$escape
is not one byte long or the empty stringXMLReader: ✅ (#4123)
XMLReader::open()
throwsValueError
if$encoding
is invalid / has nullsXMLReader::XML()
throwsValueError
if$encoding
is invalid / has nullsXMLWriter: ✅ (#4123)
ValueError
XSL:
XSLTProcessor::importStyleSheet()
throwsTypeError
instead ofValueError
if called with non XML object. (PHP 8.4: Document errors for XSLTProcessor::importStylesheet() #4136)XSLTProcessor::setParameter()
parameters that contain null bytes now throws aValueError
(PHP 8.4: Document XSLTProcessor::setParameter() errors #4135)Resource to Object conversions
DBA: ✅
Dba\Connection
([PHP 8.4] DBA resource to Object conversions #3914)ODBC:
Odbc\Connection
Odbc\Result
Soap:
Soap\Url
Soap\Sdl
Removed extensions ✅ (#4103)
Extensions
cURL: ✅
CURLOPT_BINARYTRANSFER
constant (Update CURLOPT constant descriptions #3818)CURLOPT_DNS_USE_GLOBAL_CACHE
constant has no effect ([PHP 8.4] Curl new options and constants #4069)curl_version()
returns an additionalfeature_list
value, which is an associative array of all known cURL features ([PHP 8.4] Curl new options and constants #4069)CURL_HTTP_VERSION_3
andCURL_HTTP_VERSION_3ONLY
constants (available since libcurl 7.66 and 7.88) as available options for CURLOPT_HTTP_VERSION ([PHP 8.4] Curl new options and constants #4069)CURLOPT_PREREQFUNCTION
as a cURL option that accepts a callable to be called after the connection is made, but before the request is sent. This callable must return either CURL_PREREQFUNC_OK or CURL_PREREQFUNC_ABORT to allow or abort the request ([PHP 8.4] Curl new options and constants #4069)CURLOPT_SERVER_RESPONSE_TIMEOUT
, which was formerly known as CURLOPT_FTP_RESPONSE_TIMEOUT. Both constants hold the same value ([PHP 8.4] Curl new options and constants #4069)CURLOPT_DEBUGFUNCTION
as a cURL option that accepts a callable that gets called during the request lifetime with the CurlHandle object, an integer containing the debug message type, and a string containing the debug message ([PHP 8.4] Curl new options and constants #4069)curl_getinfo()
now returns an additionalposttransfer_time_us
key, containing the number of microseconds from the start until the last byte is sent. When a redirect is followed, the time from each request is added together. This value can also be retrieved by passingCURLINFO_POSTTRANSFER_TIME_T
to thecurl_getinfo()
option parameter. This requires libcurl 8.10.0 or later ([PHP 8.4] Curl new options and constants #4069)Date:
DatePeriod::__construct(string $isostr, int $options = 0)
signature is now deprecated. UseDatePeriod::createFromISO8601String()
instead.SUNFUNCS_RET_TIMESTAMP
,SUNFUNCS_RET_STRING
, andSUNFUNCS_RET_DOUBLE
constants are now deprecated. (SUNFUNCS_* constants are deprecated as of PHP 8.4.0 #4006)DBA: ✅
null
orfalse
todba_key_split()
is now deprecated. It would always returnfalse
in those cases. (dba_key_split() deprecation #4007)Dba\Connection
([PHP 8.4] DBA resource to Object conversions #3914)DOM:
false
or aPHP_ERR
DOMException
if a new node could not be allocated. They now consistently throw anINVALID_STATE_ERR
DOMException
. (Skipped as this is rare and can be documented as part ofPHP_ERR
deprecation.)DOMImplementation::createDocument()
now has a tentative return type ofDOMDocument
(Document DOMImplementation::createDocument() change for PHP 8.4 #3901)DOMXPath
objects (Document clone behaviour of DOMXPath #3925)DOMImplementation::getFeature()
has been removedDOM_PHP_ERR
constant is now deprecated.DOMDocument::$actualEncoding
property is now formally deprecated.DOMDocument::$config
property is now formally deprecated.DOMEntity::$actualEncoding
property is now formally deprecated.DOMEntity::$encoding
property is now formally deprecated.DOMEntity::$version
property is now formally deprecated.DOMNode::compareDocumentPosition()
with its associated constants: (Document compareDocumentPosition & related constants #4081)DOMNode::DOCUMENT_POSITION_DISCONNECTED
DOMNode::DOCUMENT_POSITION_PRECEDING
DOMNode::DOCUMENT_POSITION_FOLLOWING
DOMNode::DOCUMENT_POSITION_CONTAINS
DOMNode::DOCUMENT_POSITION_CONTAINED_BY
DOMNode::DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC
DOMXPath::registerPhpFunctionNS()
(add XSLTProcessor::registerPHPFunctionNS and DOMXPath::registerPhpFunctionNS #4129)DOMXPath::quote()
(Document DOMXPath::quote() #3909)DOMDocument::registerNodeClass()
now has a tentative return type oftrue
instead ofbool
(Document tentative return type change for DOMDocument::registerNodeClass() #4082)GMP:
GMP
is now final (gmp: GMP is marked final #3990)GMP
tobool
, before was aE_RECOVERABLE_ERROR
Hash: (#4137)
hash_update()
now has a tentative return type oftrue
instead ofbool
Intl:
intlcal_set()
orIntlCalendar::set()
with more than 2 arguments is deprecated, useIntlCalendar::setDate()
orIntlCalendar::setDateTime()
instead.intlgregcal_create_instance()
orIntlGregorianCalendar::__construct()
with more than 2 arguments is deprecated, useIntlGregorianCalendar::createFromDate()
orIntlGregorianCalendar::createFromDateTime()
instead.NumberFormatter::ROUND_HALFODD
to complement the existingNumberFormatter::ROUND_HALFEVEN
functionality.NumberFormatter::ROUND_TOWARD_ZERO
andNumberFormatter::ROUND_AWAY_FROM_ZERO
as aliases forNumberFormatter::ROUND_DOWN
andNumberFormatter::ROUND_UP
to be consistent with the newRoundingMode
modes.ResourceBundle::get()
now has a tentative return type ofResourceBundle|array|string|int|null
idn_to_ascii()
andidn_to_utf8()
functions now always throwValueErrors
if the domain name is empty or too long.idn_to_ascii()
andidn_to_utf8()
functions now always throwValueErrors
if the variant parameter is notINTL_IDNA_VARIANT_UTS46
.LDAP:
ldap_connect()
with more than 2 arguments is deprecated, useldap_connect_wallet()
instead.ldap_exop()
with more than 4 arguments is deprecated, useldap_exop_sync()
instead.libxml: ✅ (#4051)
libxml_set_streams_context()
now immediately throws a TypeError when a non-stream-context resource is passed to the function, instead of throwing later when the stream context is used.MBString:
mb_substr()
now interprets character indices in the same manner as most other mbstring functions. This means that character indices returned bymb_strpos()
can be passed tomb_substr()
.mb_substr()
now refer to the indices of the Unicode codepoints which are produced when the string is converted to Unicode. This is significant because around 40 SJIS-Mac characters convert to a sequence of multiple Unicode codepoints.MySQLi: ✅
MYSQLI_SET_CHARSET_DIR
constant has been removed ([PHP 8.4] Add removal note to mysqli constants #3960)MYSQLI_STMT_ATTR_PREFETCH_ROWS
constant has been removed ([PHP 8.4] Add removal note to mysqli constants #3960)MYSQLI_CURSOR_TYPE_FOR_UPDATE
constant has been removed ([PHP 8.4] Add removal note to mysqli constants #3960)MYSQLI_CURSOR_TYPE_SCROLLABLE
constant has been removed ([PHP 8.4] Add removal note to mysqli constants #3960)MYSQLI_TYPE_INTERVAL
constant has been removed ([PHP 8.4] Add removal note to mysqli constants #3960)mysqli_ping()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)mysqli::ping()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)mysqli_kill()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)mysqli::kill()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)mysqli_refresh()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)mysqli::refresh()
([PHP 8.4] Add deprecation warning to mysqli functions #3958)MYSQLI_REFRESH_*
constants ([PHP 8.4] Add deprecation warning to mysqli constants #3959)$mode
parameter explicitly tomysqli_store_result()
(699e596)MYSQLI_STORE_RESULT_COPY_DATA
constant ([PHP 8.4] Add deprecation warning to mysqli constants #3959)MySQLnd:
2006
to4031
for MySQL server versions 8.0.24 and above.ODBC
odbc_fetch_object()
,odbc_fetch_array()
, andodbc_fetch_into()
now have a default value ofnull
, consistent withodbc_fetch_row()
. Previously, the default values were-1
,-1
, and0
, respectively.Opcache:
opcache.interned_strings_buffer
setting on 64bit architectures is now32767
. Previously it was4095
. (Update documentation of opcache.interned_strings_buffer #4061)OpenSSL:
extra_attributes
inopenssl_csr_new()
sets the CSR attributes instead of subject DN, which incorrectly done previously.dn
inopenssl_csr_new()
allows setting an array of values for a single entry.serial_hex
added toopenssl_csr_sign()
to allow setting serial numbers in the hexadecimal format.openssl_x509_parse()
fails if seconds are omitted for OpenSSL version below 3.2 (-1 is returned for such fields). OpenSSL version above 3.3 did not load such certificates already.PCNTL:
pcntl_sigprocmask()
,pcntl_sigwaitinfo()
, andpcntl_sigtimedwait()
now always returnfalse
on failure, in some cases they would previously return-1
.Pcntl\QosClass
([PHP 8.4] Pcntl::QosClass #4095, PCNTL: Include new enum into docs #4104)pcntl_getcpu
pcntl_getcpuaffinity
pcntl_getqos_class
pcntl_setns
pcntl_waitid
PCRE:
as well as the (?r) mode modifier. When enabled along with the case-insensitive modifier (i),
the expression locks out mixing of ASCII and non-ASCII characters.
([PHP 8.4] PCRE - PCRE2-v10.44 updates #4078)
PDO:
PDO::connect()
PDO::ATTR_STRINGIFY_FETCHES
attribute withPDO::getAttribute()
.It is now possible to fetch the value of thePDO::PGSQL_ATTR_RESULT_MEMORY_SIZE
attribute withPDO::getAttribute()
.PDO_DBLIB:
DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER
andDBLIB_ATTR_DATETIME_CONVERT
attributes are now booleans, previously they were int.PDO_FIREBIRD:
ATTR_AUTOCOMMIT
attribute is now boolean, previously was int.PDO_MYSQL:
ATTR_AUTOCOMMIT
,ATTR_EMULATE_PREPARES
, andMYSQL_ATTR_DIRECT_QUERY
attributes are now booleans, previously they were int.PDO_PGSQL:
??
) inside dollar-quoted strings is deprecated.PGSQL:
pg_fetch_result
,pg_field_prtlen
, andpg_field_is_null()
is now deprecated, use an explicit value ofnull
for$row
parameterpg_select()
is now optional and accepts an empty array.PDO_SQLITE:
Phar: ✅ (#4050)
Phar::setAlias()
,Phar::setDefaultStub()
methods now have a tentative return type oftrue
instead ofbool
.POSIX:
posix_isatty()
now sets the error number when the file descriptor/stream argument is invalid.Random: ✅
lcg_value()
is deprecated in favour of\Random\Randomizer::getFloat()
(random:lcg_value()
is deprecated #3992)Readline:
.php_history
path through thePHP_HISTFILE
environment variable.Reflection:
ReflectionMethod::__construct()
with one argument is deprecated useReflectionMethod::createFromMethodName
instead (PHP 8.4: Document reflection changes #4037)ReflectionClassConstant::__toString()
andReflectionProperty::__toString()
now returns the attached doc comments (PHP-8.4: Reflection behavioural changes #4055, 6d25b8e)ReflectionAttribute
now contains a name property to improve the debugging experience (PHP 8.4: Document reflection changes #4037)ReflectionConstant
ReflectionClassConstant::isDeprecated
(DocumentReflectionClassConstant::isDeprecated()
#3895)ReflectionGenerator::isClosed
(DocumentReflectionGenerator::isClosed()
#3896)ReflectionProperty::isDynamic
ReflectionClass::newLazyGhost()
ReflectionClass::newLazyProxy()
ReflectionClass::resetAsLazyGhost()
ReflectionClass::resetAsLazyProxy()
ReflectionClass::isUninitializedLazyObject()
ReflectionClass::initializeLazyObject()
ReflectionClass::markLazyObjectAsInitialized()
ReflectionClass::getLazyInitializer()
ReflectionProperty::skipLazyInitialization()
ReflectionProperty::setRawValueWithoutLazyInitialization()
ReflectionGenerator::getFunction()
may now be called after the generator finished executing. (PHP-8.4: Reflection behavioural changes #4055, 812143d)Session:
session_set_save_handler()
with more than 2 arguments is deprecated, use 2 argument signaturesession.sid_length
INI setting (session:session.sid_length
andsession.sid_bits_per_character
are deprecated #3993)session.sid_bits_per_character
INI setting (session:session.sid_length
andsession.sid_bits_per_character
are deprecated #3993)session.use_only_cookies
INI settingsession.use_trans_sid
INI settingsession.trans_sid_tags
INI settingsession.trans_sid_hosts
INI settingsession.referer_check
INI settingSID
constantSimpleXML:
SimpleXMLElement
now doesn't implicitly rewind itself.SOAP:
SoapClient::$typemap
is now an array instead of a resource, checks usingis_resource()
should be converted to check fornull
rtld-now
int
toSoapServer::addFunction()
SOAP_FUNCTIONS_ALL
constantDateTimeInterface
that are passed toxsd:datetime
or similar elements are now serialized as such instead of being serialized as an empty string.Soap\Url
Soap\Sdl
SoapServer::__getLastResponse()
(Document SoapServer::__getLastResponse #3877)Sockets: ✅
backlog
parameter ofsocket_create_listen()
now has a default value ofSOMAXCONN
. Previously, it was128
. (db22a7c, Add changelog for sockets PHP 8.4 change #4109)Sodium:
sodium_crypto_aead_aes256gcm_*()
functions are now available on aarch64 CPUs with the ARM cryptographic extensions.SPL:
SplFixedArray::__wakeup()
(Document some SPL changes in PHP-8.4 #4047)SplFileObject::setCsvControl()
,SplFileObject::fputcsv()
, andSplFileObject::fgetcsv()
(PHP 8.4: CSV related changes and deprecations #4093)SplObjectStorage::seek()
(PHP 8.4: Document SplObjectStorage::seek() #4048)SplPriorityQueue::insert()
,SplPriorityQueue::recoverFromCorruption()
,SplHeap::insert()
,SplHeap::recoverFromCorruption()
methods now have a tentative return type oftrue
instead ofbool
. (Document some SPL changes in PHP-8.4 #4047)SplObjectStorage
now implementsSeekableIterator
. (Document some SPL changes in PHP-8.4 #4047)SplFixedArray
now throw exceptions of typeOutOfBoundsException
instead ofRuntimeException
.Standard:
strcspn()
now correctly returns the length of the string if$characters
is the empty string, instead of the length until the first null byte (Add PHP 8.4 changelog entry for strcspn() #3888)http_build_query()
now correctly handles backed enumsstream_bucket_make_writeable()
andstream_bucket_new()
now return an instance ofStreamBucket
instead ofstdClass
stream_context_set_option()
with two arguments, usestream_context_set_options()
instead (notice the trailings
) (PHP 8.4: stream_context_set_option() 2 param deprecation #4106)fputcsv()
,fgetcsv()
, andstr_getcsv()
(PHP 8.4: CSV related changes and deprecations #4093)unserialize()
strings withS
tagRoundingMode
(PHP 8.4: Document RoundingMode #4080)StreamBucket
http_get_last_response_headers()
(PHP-8.4: Document http_(get|clear)_last_response_headers() functions #4034)http_clear_last_response_headers()
(PHP-8.4: Document http_(get|clear)_last_response_headers() functions #4034)fpow()
(PHP-8.4: Document fpow() #4035)array_all()
(Add documentation forarray_find
RFC #3465)array_any()
(Add documentation forarray_find
RFC #3465)array_find()
(Add documentation forarray_find
RFC #3465)array_find_key()
(Add documentation forarray_find
RFC #3465)'cost'
value for thePASSWORD_BCRYPT
hashing algorithm forpassword_hash()
has been increased from 10 to 12.debug_zval_dump()
now indicates whether an array is packed.long2ip()
now has a return type ofstring
instead ofstring|false
. ([PHP 8.4] Function return type changes #4083)highlight_string()
now has a return type ofstring|true
instead ofstring|bool
. ([PHP 8.4] Function return type changes #4083)print_r()
now has a return type ofstring|true
instead ofstring|bool
. ([PHP 8.4] Function return type changes #4083)mode
parameter of theround()
function has been widened toRoundingMode|int
, accepting instances of a newRoundingMode
enum. (PHP 8.4: Document type widening of mode param of round() #4107)round()
behavioural changesTidy: ✅
tidyNode::getNextSibling()
(Document tidyNode::getNextSibling() and tidyNode::getPreviousSibling() #3874)tidyNode::getPreviousSibling()
(Document tidyNode::getNextSibling() and tidyNode::getPreviousSibling() #3874)XML: ✅ (#4067)
xml_set_*()
functions now check for proper callables, but see related deprecationsxml_set_object()
xml_set_*()
functionsXSL:
XSLTProcessor::registerPhpFunctions()
(PHP 8.4: Document registerPhpFunctions() changes #4114)XSLTProcessor::registerPHPFunctionNS()
function (add XSLTProcessor::registerPHPFunctionNS and DOMXPath::registerPhpFunctionNS #4129)XSLTProcessor::$maxTemplateDepth
andXSLTProcessor::$maxTemplateVars
to control the recursion depth of XSL template evaluation. (Document XSLTProcessor properties #4041)XSLTProcessor::$cloneDocument
andXSLTProcessor::$doXInclude
are now declared. (Document XSLTProcessor properties #4041)ZIP:
Zlib: ✅
New Functions
BCMath
bcceil
bcdivmod
bcfloor
bcround
Date
DateTime::createFromTimestamp
DateTime::getMicrosecond
DateTime::setMicrosecond
DateTimeImmutable::createFromTimestamp
DateTimeImmutable::getMicrosecond
DateTimeImmutable::setMicrosecond
Hash
HashContext::__debugInfo
Intl
IntlDateFormatter::getIanaID
intltz_get_iana_id
IntlDateFormatter::parseToCalendar
SpoofChecker::setAllowedChars
grapheme_str_split
#3974 ([PHP 8.4] Add manual for grapheme_str_split function #3956)MBString ✅
mb_trim
([PHP 8.4] Add mb_* functions #3922)mb_ltrim
([PHP 8.4] Add mb_* functions #3922)mb_rtrim
([PHP 8.4] Add mb_* functions #3922)mb_ucfirst
([PHP 8.4] Add mb_* functions #3922)mb_lcfirst
([PHP 8.4] Add mb_* functions #3922)Opcache
opcache_jit_blacklist
PDO_PGSQL
Pdo\Pgsql::setNoticeCallback
PGSQL
pg_change_password
pg_jit
pg_put_copy_data
pg_put_copy_end
pg_result_memory_size
([PHP 8.4] Add manual forpg_result_memory_size()
#3972)pg_set_chunked_rows_size
pg_socket_poll
XMLReader (#4138)
XMLReader::fromStream
XMLReader::fromUri
XMLReader::fromString
XMLWriter (#4138)
XMLWriter::toStream
XMLWriter::toUri
XMLWriter::toMemory
New Classes
BCMath
BcMath\Number
DOM
Dom\HTMLDocument
Dom\XMLDocument
ODBC
Odbc\Connection
Odbc\Result
PDO_DBLIB
Pdo\DbLib
PDO_FIREBIRD
Pdo\Firebird
PDO_MYSQL
Pdo\Mysql
PDO_ODBC
Pdo\Odbc
PDO_PGSQL
Pdo\Pgsql
PDO_SQLITE
Pdo\Sqlite
New Constants
cURL ✅
CURL_HTTP_VERSION_3
([PHP 8.4] Curl new options and constants #4069)CURL_HTTP_VERSION_3ONLY
([PHP 8.4] Curl new options and constants #4069)CURLOPT_TCP_KEEPCNT
([PHP 8.4] Curl new options and constants #4069)CURLOPT_PREREQFUNCTION
([PHP 8.4] Curl new options and constants #4069)CURL_PREREQFUNC_OK
([PHP 8.4] Curl new options and constants #4069)CURL_PREREQFUNC_ABORT
([PHP 8.4] Curl new options and constants #4069)CURLOPT_SERVER_RESPONSE_TIMEOUT
([PHP 8.4] Curl new options and constants #4069)CURLOPT_DEBUGFUNCTION
([PHP 8.4] Curl new options and constants #4069)CURLINFO_TEXT
([PHP 8.4] Curl new options and constants #4069)CURLINFO_HEADER_IN
([PHP 8.4] Curl new options and constants #4069)CURLINFO_DATA_IN
([PHP 8.4] Curl new options and constants #4069)CURLINFO_DATA_OUT
([PHP 8.4] Curl new options and constants #4069)CURLINFO_SSL_DATA_OUT
([PHP 8.4] Curl new options and constants #4069)CURLINFO_SSL_DATA_IN
([PHP 8.4] Curl new options and constants #4069)CURLINFO_POSTTRANSFER_TIME_T
([PHP 8.4] Curl new options and constants #4069)Intl
PATTERN
PROPERTY_IDS_UNARY_OPERATOR
PROPERTY_ID_COMPAT_MATH_START
PROPERTY_ID_COMPAT_MATH_CONTINUE
LDAP
LDAP_OPT_X_TLS_PROTOCOL_MAX
LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
libxml ✅
LIBXML_RECOVER
(Add libxml constants for PHP 8.4 #3900)LIBXML_NO_XXE
(Add libxml constants for PHP 8.4 #3900)MySQLi ✅
MYSQLI_TYPE_VECTOR
(PHP 8.4: MYSQLI_TYPE_VECTOR #4065)OpenSSL
X509_PURPOSE_OCSP_HELPER
X509_PURPOSE_TIMESTAMP_SIGN
PCNTL ✅
SIGCKPT
(DragonFlyBSD only) (Pcntl php84 #4073)SIGCKPTEXIT
(DragonFlyBSD only) (Pcntl php84 #4073)WEXITED
WSTOPPED
WNOWAIT
P_ALL
P_PID
P_PGID
P_PIDFD
(Linux only)P_UID
(NetBSD/FreeBSD only)P_GID
(NetBSD/FreeBSD only)P_SID
(NetBSD/FreeBSD only)P_JAILID
(FreeBSD only)PGSQL
PGSQL_TUPLES_CHUNK
POSIX ✅
POSIX_SC_CHILD_MAX
([PHP 8.4] - Update posix constants. #4072)POSIX_SC_CLK_TCK
([PHP 8.4] - Update posix constants. #4072)Sockets
SO_EXCLUSIVEADDRUSE
(Windows only)SOCK_CONN_DGRAM
(NetBSD only)SOCK_DCCP
(NetBSD only)TCP_SYNCNT
(Linux only)SO_EXCLBIND
(Solaris/Illumos only)SO_NOSIGPIPE
(macOS and FreeBSD)SO_LINGER_SEC
(macOS only)IP_PORTRANGE
(FreeBSD/NetBSD/OpenBSD only)IP_PORTRANGE_DEFAULT
(FreeBSD/NetBSD/OpenBSD only)IP_PORTRANGE_HIGH
(FreeBSD/NetBSD/OpenBSD only)IP_PORTRANGE_LOW
(FreeBSD/NetBSD/OpenBSD only)SOCK_NONBLOCK
SOCK_CLOEXEC
SO_BINDTOIFINDEX
Sodium ✅
SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES
([PHP 8.4] Add new Sodium functions and constants #3878)SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES
([PHP 8.4] Add new Sodium functions and constants #3878)XML ✅
XML_OPTION_PARSE_HUGE
(Document XML_OPTION_PARSE_HUGE #3899)The text was updated successfully, but these errors were encountered: