-
Notifications
You must be signed in to change notification settings - Fork 733
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! |
Pages which need to be added/modified for complete documentation of PHP 8.4:
Based of the migration guide (not yet live): 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
Migration Guide
TODO
comments in the 8.4 migration guideCore
#[\Deprecated]
attribute (Document#[\Deprecated]
#3894)request_parse_body()
Parsing RFC1867 (multipart) requests in non-POST HTTP requestsnew
without parenthesis (Add documentation for new MyClass()->method() without parentheses #3978)_
as class nametrigger_error()
withE_USER_ERROR
E_STRICT
constantexit()
behavioural changesE_STRICT
error leveltrigger_error()
anduser_error()
have a return type oftrue
instead ofbool
nowoutput_add_rewrite_var()
now usesurl_rewriter.hosts
INISAPI
/dev/poll
events.mechanism
setting for Solaris/Illumos had been retired.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_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)imagejpeg()
,imagepng()
,imageavif()
,imagewebp()
now throw aValueError
if$quality
is invalidimageavif()
now throw aValueError
if$speed
is invalidimagescale()
now throw aValueError
if$mode
is invalidimagescale()
now throw aValueError
if$width
or$height
over/underflowsimagefilter()
now throw aValueError
with theIMG_FILTER_SCATTER
filter if$sub
or$plus
over/underflowsbind_textdomain_codeset()
,textdomain()
,d*gettext()
now throw aValueError
if$domain
is the empty stringresourcebundle_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 invalidmb_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_fetch_row()
returnsfalse
when$row =< 0
, this now warnspcntl_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_import_dom()
throwsTypeError
instead ofValueError
if called with non XML object (Update simplexml_import_dom for PHP 8.4 #3906)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()
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::open()
throwsValueError
if$encoding
is invalidXMLReader::XML()
throwsValueError
if$encoding
is invalidValueError
ValueError
XSLTProcessor::importStyleSheet()
throwsTypeError
instead ofValueError
if called with non XML objectXSLTProcessor::setParameter()
parameters that contain null bytes now throws aValueError
Resource to Object conversions
Dba\Connection
([PHP 8.4] DBA resource to Object conversions #3914)Odbc\Connection
Odbc\Result
Soap\Url
Soap\Sdl
Removed extensions
Extensions
Note
TODO Partially done
cURL:
CURLOPT_BINARYTRANSFER
constantCURLOPT_DNS_USE_GLOBAL_CACHE
constant has no effectDate:
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.DBA:
null
orfalse
todba_key_split()
is now deprecated. It would always returnfalse
in those cases.DOM:
false
or aPHP_ERR
DOMException
if a new node could not be allocated. They now consistently throw an INVALID_STATE_ERRDOMImplementation::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.GMP:
GMP
is now finalGMP
tobool
, before was aE_RECOVERABLE_ERROR
Hash:
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.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.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.Opcache:
opcache.interned_strings_buffer
setting on 64bit architectures is now32767
. Previously it was4095
.PCNTL:
pcntl_sigprocmask()
,pcntl_sigwaitinfo()
, andpcntl_sigtimedwait()
now always returnfalse
on failure, in some cases they would previously return-1
.PCRE:
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
parameterRandom:
lcg_value()
is deprecated in favour of\Random\Randomizer::getFloat()
Reflection:
ReflectionMethod::__construct()
with one argument is deprecated useReflectionMethod::createFromMethodName
insteadSession:
session_set_save_handler()
with more than 2 arguments is deprecated, use 2 argument signaturesession.sid_length
INI settingsession.sid_bits_per_character
INI settingsession.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
constantSPL:
SplFixedArray::__wakeup()
SplFileObject::setCsvControl()
,SplFileObject::fputcsv()
, andSplFileObject::fgetcsv()
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
)fputcsv()
,fgetcsv()
, andstr_getcsv()
unserialize()
strings withS
tagTidy:
XML:
xml_set_*()
functions now check for proper callables, but see related deprecationsxml_set_object()
xml_set_*()
functionsNew Functions
request_parse_body
bcceil
bcdivmod
bcfloor
bcround
DateTime::createFromTimestamp
DateTime::getMicrosecond
DateTime::setMicrosecond
DateTimeImmutable::createFromTimestamp
DateTimeImmutable::getMicrosecond
DateTimeImmutable::setMicrosecond
DOMNode::compareDocumentPosition
DOMXPath::registerPhpFunctionNS
DOMXPath::quote
(Document DOMXPath::quote() #3909)HashContext::__debugInfo
IntlDateFormatter::getIanaID
intltz_get_iana_id
IntlDateFormatter::parseToCalendar
SpoofChecker::setAllowedChars
grapheme_str_split
#3974mb_trim
mb_ltrim
mb_rtrim
mb_ucfirst
mb_lcfirst
opcache_jit_blacklist
pcntl_getcpu
pcntl_getcpuaffinity
pcntl_getqos_class
pcntl_setns
pcntl_waitid
Pdo\Pgsql::setNoticeCallback
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
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
ReflectionClass::skipLazyInitialization
ReflectionClass::setRawValueWithoutLazyInitialization
sodium_crypto_aead_aegis128l_<replaceable>*</replaceable>
([PHP 8.4] Add new Sodium functions and constants #3878)sodium_crypto_aead_aegis256_<replaceable>*</replaceable>
([PHP 8.4] Add new Sodium functions and constants #3878)SplObjectStorage::seek
SoapServer::__getLastResponse
(Document SoapServer::__getLastResponse #3877)http_get_last_response_headers
http_clear_last_response_headers
fpow
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)tidyNode::getNextSibling
(Document tidyNode::getNextSibling() and tidyNode::getPreviousSibling() #3874)tidyNode::getPreviousSibling
(Document tidyNode::getNextSibling() and tidyNode::getPreviousSibling() #3874)XMLReader::fromStream
XMLReader::fromUri
XMLReader::fromString
XMLWriter::toStream
XMLWriter::toUri
XMLWriter::toMemory
XSLTProcessor::registerPhpFunctionNS
New Classes
Deprecated
(Document#[\Deprecated]
#3894)RequestParseBodyException
BcMath\Number
Dba\Connection
Dom\HTMLDocument
Dom\XMLDocument
Odbc\Connection
Odbc\Result
Pdo\DbLib
Pdo\Firebird
Pdo\Mysql
Pdo\Odbc
Pdo\Pgsql
Pdo\Sqlite
ReflectionConstant
Soap\Url
Soap\Sdl
RoundingMode
StreamBucket
New Constants
PHP_OUTPUT_HANDLER_PROCESSED
PHP_SBINDIR
CURL_HTTP_VERSION_3
CURL_HTTP_VERSION_3ONLY
CURL_TCP_KEEPCNT
CURLOPT_PREREQFUNCTION
CURL_PREREQFUNC_OK
CURL_PREREQFUNC_ABORT
CURLOPT_SERVER_RESPONSE_TIMEOUT
CURLOPT_DEBUGFUNCTION
CURLINFO_TEXT
CURLINFO_HEADER_IN
CURLINFO_DATA_IN
CURLINFO_DATA_OUT
CURLINFO_SSL_DATA_OUT
CURLINFO_SSL_DATA_IN
CURLINFO_POSTTRANSFER_TIME_T
PATTERN
PROPERTY_IDS_UNARY_OPERATOR
PROPERTY_ID_COMPAT_MATH_START
PROPERTY_ID_COMPAT_MATH_CONTINUE
LDAP_OPT_X_TLS_PROTOCOL_MAX
LDAP_OPT_X_TLS_PROTOCOL_TLS1_3
LIBXML_RECOVER
LIBXML_NO_XXE
MYSQLI_TYPE_VECTOR
X509_PURPOSE_OCSP_HELPER
X509_PURPOSE_TIMESTAMP_SIGN
Pcntl::Background
(macOS only)Pcntl::Default
(macOS only)Pctnl::UserInteractive
(macOS only)Pcntl::UserInitiated
(macOS only)Pcntl::Utility
(macOS only)SIGCKPT
(DragonFlyBSD only)SIGCKPTEXIT
(DragonFlyBSD only)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_TUPLES_CHUNK
POSIX_SC_CHILD_MAX
POSIX_SC_CLK_TCK
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_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_OPTION_PARSE_HUGE
(Document XML_OPTION_PARSE_HUGE #3899)Other Changes
Note
TODO
Changed Functions
Standard
The text was updated successfully, but these errors were encountered: