[phpstorm-stubs] update stubs to migration version for php 7.4

This commit is contained in:
Ivan Fedorov 2022-11-10 00:11:15 +01:00 committed by Ivan Fedorov
parent dc330fd7cb
commit 71276b938f
29 changed files with 776 additions and 20 deletions

View File

@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
strategy:
fail-fast: false
name: Run tests against php 7.3
name: Run tests against php 7.4
steps:
- name: Checkout
uses: actions/checkout@v2
@ -15,22 +15,22 @@ jobs:
- name: Build Docker Container
run: docker-compose -f docker-compose.yml build >/dev/null
env:
PHP_VERSION: '7.3'
PHP_VERSION: '7.4'
- name: Composer Install
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.3 test_runner composer update
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.4 test_runner composer update
env:
PHP_VERSION: '7.3'
PHP_VERSION: '7.4'
- name: Dump Reflection To File
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.3 php_under_test /usr/local/bin/php tests/Tools/dump-reflection-to-file.php ReflectionData.json
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.4 php_under_test /usr/local/bin/php tests/Tools/dump-reflection-to-file.php ReflectionData.json
env:
PHP_VERSION: '7.3'
PHP_VERSION: '7.4'
- name: Run Tests
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.3 test_runner vendor/bin/phpunit --testsuite PHP_7.3
run: docker-compose -f docker-compose.yml run -e PHP_VERSION=7.4 test_runner vendor/bin/phpunit --testsuite PHP_7.4
env:
PHP_VERSION: '7.3'
PHP_VERSION: '7.4'
additional:
runs-on: ubuntu-latest
name: Run cs-fixer and stubs structure tests

View File

@ -647,3 +647,40 @@ final class Closure
*/
public function call(object $newThis, mixed ...$args): mixed {}
}
/**
* Weak references allow the programmer to retain a reference to an
* object which does not prevent the object from being destroyed.
* They are useful for implementing cache like structures.
* @template T of object
* @link https://www.php.net/manual/en/class.weakreference.php
* @since 7.4
*/
final class WeakReference
{
/**
* This method exists only to disallow instantiation of the WeakReference
* class. Weak references are to be instantiated with the factory method
* <b>WeakReference::create()</b>.
*/
public function __construct() {}
/**
* Create a new weak reference.
* @link https://www.php.net/manual/en/weakreference.create.php
* @template TIn of object
* @param TIn $object Any object.
* @return WeakReference<TIn> The freshly instantiated object.
* @since 7.4
*/
public static function create(object $object): WeakReference {}
/**
* Gets a weakly referenced object. If the object has already been
* destroyed, NULL is returned.
* @link https://www.php.net/manual/en/weakreference.get.php
* @return T|null
* @since 7.4
*/
public function get(): ?object {}
}

View File

@ -184,6 +184,16 @@ define('PHP_WINDOWS_NT_SERVER', 3);
define('PHP_WINDOWS_NT_WORKSTATION', 1);
/**
* @since 7.4
*/
define('PHP_WINDOWS_EVENT_CTRL_C', 0);
/**
* @since 7.4
*/
define('PHP_WINDOWS_EVENT_CTRL_BREAK', 1);
define('PHP_VERSION', "5.3.6-13ubuntu3.2");
define('PHP_MAJOR_VERSION', 5);
@ -210,6 +220,11 @@ define('PHP_OS_FAMILY', "Linux");
define('PHP_SAPI', "cli");
/**
* @since 7.4
*/
define('PHP_CLI_PROCESS_TITLE', 1);
define('DEFAULT_INCLUDE_PATH', ".:/usr/share/php:/usr/share/pear");
define('PEAR_INSTALL_DIR', "/usr/share/php");

View File

@ -853,6 +853,16 @@ class PDO
public const SQLSRV_CURSOR_STATIC = 3;
public const SQLSRV_CURSOR_BUFFERED = 42;
/**
* @since 7.4
*/
public const SQLITE_ATTR_READONLY_STATEMENT = 1001;
/**
* @since 7.4
*/
public const SQLITE_ATTR_EXTENDED_RESULT_CODES = 1002;
/**
* Provides a way to specify the action on the database session.
* @since 7.2.16

View File

@ -150,6 +150,7 @@ const CLASSES = array (
'ReflectionObject' => 'Reflection/ReflectionObject.php',
'ReflectionParameter' => 'Reflection/ReflectionParameter.php',
'ReflectionProperty' => 'Reflection/ReflectionProperty.php',
'ReflectionReference' => 'Reflection/ReflectionReference.php',
'ReflectionType' => 'Reflection/ReflectionType.php',
'ReflectionZendExtension' => 'Reflection/ReflectionZendExtension.php',
'Reflector' => 'Reflection/Reflector.php',
@ -199,6 +200,7 @@ const CLASSES = array (
'UnderflowException' => 'SPL/SPL.php',
'UnexpectedValueException' => 'SPL/SPL.php',
'ValueError' => 'Core/Core_c.php',
'WeakReference' => 'Core/Core_c.php',
'XMLReader' => 'xmlreader/xmlreader.php',
'XMLWriter' => 'xmlwriter/xmlwriter.php',
'XSLTProcessor' => 'xsl/xsl.php',
@ -749,6 +751,7 @@ const FUNCTIONS = array (
'get_loaded_extensions' => 'Core/Core.php',
'get_magic_quotes_gpc' => 'standard/standard_3.php',
'get_magic_quotes_runtime' => 'standard/standard_3.php',
'get_mangled_object_vars' => 'standard/standard_9.php',
'get_meta_tags' => 'standard/standard_6.php',
'get_object_vars' => 'Core/Core.php',
'get_parent_class' => 'Core/Core.php',
@ -1455,6 +1458,7 @@ const FUNCTIONS = array (
'mb_scrub' => 'mbstring/mbstring.php',
'mb_send_mail' => 'mbstring/mbstring.php',
'mb_split' => 'mbstring/mbstring.php',
'mb_str_split' => 'mbstring/mbstring.php',
'mb_strcut' => 'mbstring/mbstring.php',
'mb_strimwidth' => 'mbstring/mbstring.php',
'mb_stripos' => 'mbstring/mbstring.php',
@ -2023,6 +2027,7 @@ const FUNCTIONS = array (
'openssl_x509_free' => 'openssl/openssl.php',
'openssl_x509_parse' => 'openssl/openssl.php',
'openssl_x509_read' => 'openssl/openssl.php',
'openssl_x509_verify' => 'openssl/openssl.php',
'ord' => 'standard/standard_2.php',
'output_add_rewrite_var' => 'standard/standard_9.php',
'output_reset_rewrite_vars' => 'standard/standard_9.php',
@ -2032,6 +2037,7 @@ const FUNCTIONS = array (
'parse_str' => 'standard/standard_2.php',
'parse_url' => 'standard/standard_2.php',
'passthru' => 'standard/standard_2.php',
'password_algos' => 'standard/password.php',
'password_get_info' => 'standard/password.php',
'password_hash' => 'standard/password.php',
'password_needs_rehash' => 'standard/password.php',
@ -2053,6 +2059,7 @@ const FUNCTIONS = array (
'pcntl_sigtimedwait' => 'pcntl/pcntl.php',
'pcntl_sigwaitinfo' => 'pcntl/pcntl.php',
'pcntl_strerror' => 'pcntl/pcntl.php',
'pcntl_unshare' => 'pcntl/pcntl.php',
'pcntl_wait' => 'pcntl/pcntl.php',
'pcntl_waitpid' => 'pcntl/pcntl.php',
'pcntl_wexitstatus' => 'pcntl/pcntl.php',
@ -2327,6 +2334,8 @@ const FUNCTIONS = array (
'sapi_windows_cp_get' => 'standard/basic.php',
'sapi_windows_cp_is_utf8' => 'standard/basic.php',
'sapi_windows_cp_set' => 'standard/basic.php',
'sapi_windows_generate_ctrl_event' => 'standard/basic.php',
'sapi_windows_set_ctrl_handler' => 'standard/basic.php',
'sapi_windows_vt100_support' => 'standard/basic.php',
'scandir' => 'standard/standard_7.php',
'sem_acquire' => 'sysvsem/sysvsem.php',
@ -2947,6 +2956,13 @@ const CONSTANTS = array (
'CLD_KILLED' => 'pcntl/pcntl.php',
'CLD_STOPPED' => 'pcntl/pcntl.php',
'CLD_TRAPPED' => 'pcntl/pcntl.php',
'CLONE_NEWCGROUP' => 'pcntl/pcntl.php',
'CLONE_NEWIPC' => 'pcntl/pcntl.php',
'CLONE_NEWNET' => 'pcntl/pcntl.php',
'CLONE_NEWNS' => 'pcntl/pcntl.php',
'CLONE_NEWPID' => 'pcntl/pcntl.php',
'CLONE_NEWUSER' => 'pcntl/pcntl.php',
'CLONE_NEWUTS' => 'pcntl/pcntl.php',
'CL_EXPUNGE' => 'imap/imap.php',
'CODESET' => 'standard/standard_defines.php',
'CONNECTION_ABORTED' => 'standard/standard_defines.php',
@ -3949,6 +3965,7 @@ const CONSTANTS = array (
'IMG_FILTER_MEAN_REMOVAL' => 'gd/gd.php',
'IMG_FILTER_NEGATE' => 'gd/gd.php',
'IMG_FILTER_PIXELATE' => 'gd/gd.php',
'IMG_FILTER_SCATTER' => 'gd/gd.php',
'IMG_FILTER_SELECTIVE_BLUR' => 'gd/gd.php',
'IMG_FILTER_SMOOTH' => 'gd/gd.php',
'IMG_FLIP_BOTH' => 'gd/gd.php',
@ -4233,6 +4250,7 @@ const CONSTANTS = array (
'MB_CASE_TITLE_SIMPLE' => 'mbstring/mbstring.php',
'MB_CASE_UPPER' => 'mbstring/mbstring.php',
'MB_CASE_UPPER_SIMPLE' => 'mbstring/mbstring.php',
'MB_ONIGURUMA_VERSION' => 'mbstring/mbstring.php',
'MB_OVERLOAD_MAIL' => 'mbstring/mbstring.php',
'MB_OVERLOAD_REGEX' => 'mbstring/mbstring.php',
'MB_OVERLOAD_STRING' => 'mbstring/mbstring.php',
@ -4294,6 +4312,7 @@ const CONSTANTS = array (
'MHASH_ADLER32' => 'hash/hash.php',
'MHASH_CRC32' => 'hash/hash.php',
'MHASH_CRC32B' => 'hash/hash.php',
'MHASH_CRC32C' => 'hash/hash.php',
'MHASH_FNV132' => 'hash/hash.php',
'MHASH_FNV164' => 'hash/hash.php',
'MHASH_FNV1A32' => 'hash/hash.php',
@ -4590,6 +4609,7 @@ const CONSTANTS = array (
'PASSWORD_ARGON2_DEFAULT_MEMORY_COST' => 'standard/password.php',
'PASSWORD_ARGON2_DEFAULT_THREADS' => 'standard/password.php',
'PASSWORD_ARGON2_DEFAULT_TIME_COST' => 'standard/password.php',
'PASSWORD_ARGON2_PROVIDER' => 'standard/password.php',
'PASSWORD_BCRYPT' => 'standard/password.php',
'PASSWORD_BCRYPT_DEFAULT_COST' => 'standard/password.php',
'PASSWORD_DEFAULT' => 'standard/password.php',
@ -4616,10 +4636,12 @@ const CONSTANTS = array (
'PCNTL_ENOENT' => 'pcntl/pcntl.php',
'PCNTL_ENOEXEC' => 'pcntl/pcntl.php',
'PCNTL_ENOMEM' => 'pcntl/pcntl.php',
'PCNTL_ENOSPC' => 'pcntl/pcntl.php',
'PCNTL_ENOTDIR' => 'pcntl/pcntl.php',
'PCNTL_EPERM' => 'pcntl/pcntl.php',
'PCNTL_ESRCH' => 'pcntl/pcntl.php',
'PCNTL_ETXTBSY' => 'pcntl/pcntl.php',
'PCNTL_EUSERS' => 'pcntl/pcntl.php',
'PCRE_JIT_SUPPORT' => 'pcre/pcre.php',
'PCRE_VERSION' => 'pcre/pcre.php',
'PCRE_VERSION_MAJOR' => 'pcre/pcre.php',
@ -4698,6 +4720,7 @@ const CONSTANTS = array (
'PHP_BINARY' => 'Core/Core_d.php',
'PHP_BINARY_READ' => 'sockets/sockets.php',
'PHP_BINDIR' => 'Core/Core_d.php',
'PHP_CLI_PROCESS_TITLE' => 'Core/Core_d.php',
'PHP_CONFIG_FILE_PATH' => 'Core/Core_d.php',
'PHP_CONFIG_FILE_SCAN_DIR' => 'Core/Core_d.php',
'PHP_DATADIR' => 'Core/Core_d.php',
@ -4759,6 +4782,8 @@ const CONSTANTS = array (
'PHP_URL_USER' => 'standard/standard_defines.php',
'PHP_VERSION' => 'Core/Core_d.php',
'PHP_VERSION_ID' => 'Core/Core_d.php',
'PHP_WINDOWS_EVENT_CTRL_BREAK' => 'Core/Core_d.php',
'PHP_WINDOWS_EVENT_CTRL_C' => 'Core/Core_d.php',
'PHP_WINDOWS_NT_DOMAIN_CONTROLLER' => 'Core/Core_d.php',
'PHP_WINDOWS_NT_SERVER' => 'Core/Core_d.php',
'PHP_WINDOWS_NT_WORKSTATION' => 'Core/Core_d.php',
@ -5345,10 +5370,13 @@ const CONSTANTS = array (
'STREAM_CRYPTO_METHOD_TLSv1_1_SERVER' => 'standard/standard_defines.php',
'STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT' => 'standard/standard_defines.php',
'STREAM_CRYPTO_METHOD_TLSv1_2_SERVER' => 'standard/standard_defines.php',
'STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT' => 'standard/standard_defines.php',
'STREAM_CRYPTO_METHOD_TLSv1_3_SERVER' => 'standard/standard_defines.php',
'STREAM_CRYPTO_PROTO_SSLv3' => 'standard/standard_defines.php',
'STREAM_CRYPTO_PROTO_TLSv1_0' => 'standard/standard_defines.php',
'STREAM_CRYPTO_PROTO_TLSv1_1' => 'standard/standard_defines.php',
'STREAM_CRYPTO_PROTO_TLSv1_2' => 'standard/standard_defines.php',
'STREAM_CRYPTO_PROTO_TLSv1_3' => 'standard/standard_defines.php',
'STREAM_ENFORCE_SAFE_MODE' => 'standard/standard_defines.php',
'STREAM_FILTER_ALL' => 'standard/standard_defines.php',
'STREAM_FILTER_READ' => 'standard/standard_defines.php',
@ -5449,9 +5477,13 @@ const CONSTANTS = array (
'TIDY_TAG_ALIGN' => 'tidy/tidy.php',
'TIDY_TAG_APPLET' => 'tidy/tidy.php',
'TIDY_TAG_AREA' => 'tidy/tidy.php',
'TIDY_TAG_ARTICLE' => 'tidy/tidy.php',
'TIDY_TAG_ASIDE' => 'tidy/tidy.php',
'TIDY_TAG_AUDIO' => 'tidy/tidy.php',
'TIDY_TAG_B' => 'tidy/tidy.php',
'TIDY_TAG_BASE' => 'tidy/tidy.php',
'TIDY_TAG_BASEFONT' => 'tidy/tidy.php',
'TIDY_TAG_BDI' => 'tidy/tidy.php',
'TIDY_TAG_BDO' => 'tidy/tidy.php',
'TIDY_TAG_BGSOUND' => 'tidy/tidy.php',
'TIDY_TAG_BIG' => 'tidy/tidy.php',
@ -5460,16 +5492,21 @@ const CONSTANTS = array (
'TIDY_TAG_BODY' => 'tidy/tidy.php',
'TIDY_TAG_BR' => 'tidy/tidy.php',
'TIDY_TAG_BUTTON' => 'tidy/tidy.php',
'TIDY_TAG_CANVAS' => 'tidy/tidy.php',
'TIDY_TAG_CAPTION' => 'tidy/tidy.php',
'TIDY_TAG_CENTER' => 'tidy/tidy.php',
'TIDY_TAG_CITE' => 'tidy/tidy.php',
'TIDY_TAG_CODE' => 'tidy/tidy.php',
'TIDY_TAG_COL' => 'tidy/tidy.php',
'TIDY_TAG_COLGROUP' => 'tidy/tidy.php',
'TIDY_TAG_COMMAND' => 'tidy/tidy.php',
'TIDY_TAG_COMMENT' => 'tidy/tidy.php',
'TIDY_TAG_DATALIST' => 'tidy/tidy.php',
'TIDY_TAG_DD' => 'tidy/tidy.php',
'TIDY_TAG_DEL' => 'tidy/tidy.php',
'TIDY_TAG_DETAILS' => 'tidy/tidy.php',
'TIDY_TAG_DFN' => 'tidy/tidy.php',
'TIDY_TAG_DIALOG' => 'tidy/tidy.php',
'TIDY_TAG_DIR' => 'tidy/tidy.php',
'TIDY_TAG_DIV' => 'tidy/tidy.php',
'TIDY_TAG_DL' => 'tidy/tidy.php',
@ -5477,7 +5514,10 @@ const CONSTANTS = array (
'TIDY_TAG_EM' => 'tidy/tidy.php',
'TIDY_TAG_EMBED' => 'tidy/tidy.php',
'TIDY_TAG_FIELDSET' => 'tidy/tidy.php',
'TIDY_TAG_FIGCAPTION' => 'tidy/tidy.php',
'TIDY_TAG_FIGURE' => 'tidy/tidy.php',
'TIDY_TAG_FONT' => 'tidy/tidy.php',
'TIDY_TAG_FOOTER' => 'tidy/tidy.php',
'TIDY_TAG_FORM' => 'tidy/tidy.php',
'TIDY_TAG_FRAME' => 'tidy/tidy.php',
'TIDY_TAG_FRAMESET' => 'tidy/tidy.php',
@ -5488,6 +5528,8 @@ const CONSTANTS = array (
'TIDY_TAG_H5' => 'tidy/tidy.php',
'TIDY_TAG_H6' => 'tidy/tidy.php',
'TIDY_TAG_HEAD' => 'tidy/tidy.php',
'TIDY_TAG_HEADER' => 'tidy/tidy.php',
'TIDY_TAG_HGROUP' => 'tidy/tidy.php',
'TIDY_TAG_HR' => 'tidy/tidy.php',
'TIDY_TAG_HTML' => 'tidy/tidy.php',
'TIDY_TAG_I' => 'tidy/tidy.php',
@ -5505,11 +5547,16 @@ const CONSTANTS = array (
'TIDY_TAG_LI' => 'tidy/tidy.php',
'TIDY_TAG_LINK' => 'tidy/tidy.php',
'TIDY_TAG_LISTING' => 'tidy/tidy.php',
'TIDY_TAG_MAIN' => 'tidy/tidy.php',
'TIDY_TAG_MAP' => 'tidy/tidy.php',
'TIDY_TAG_MARK' => 'tidy/tidy.php',
'TIDY_TAG_MARQUEE' => 'tidy/tidy.php',
'TIDY_TAG_MENU' => 'tidy/tidy.php',
'TIDY_TAG_MENUITEM' => 'tidy/tidy.php',
'TIDY_TAG_META' => 'tidy/tidy.php',
'TIDY_TAG_METER' => 'tidy/tidy.php',
'TIDY_TAG_MULTICOL' => 'tidy/tidy.php',
'TIDY_TAG_NAV' => 'tidy/tidy.php',
'TIDY_TAG_NOBR' => 'tidy/tidy.php',
'TIDY_TAG_NOEMBED' => 'tidy/tidy.php',
'TIDY_TAG_NOFRAMES' => 'tidy/tidy.php',
@ -5520,10 +5567,12 @@ const CONSTANTS = array (
'TIDY_TAG_OL' => 'tidy/tidy.php',
'TIDY_TAG_OPTGROUP' => 'tidy/tidy.php',
'TIDY_TAG_OPTION' => 'tidy/tidy.php',
'TIDY_TAG_OUTPUT' => 'tidy/tidy.php',
'TIDY_TAG_P' => 'tidy/tidy.php',
'TIDY_TAG_PARAM' => 'tidy/tidy.php',
'TIDY_TAG_PLAINTEXT' => 'tidy/tidy.php',
'TIDY_TAG_PRE' => 'tidy/tidy.php',
'TIDY_TAG_PROGRESS' => 'tidy/tidy.php',
'TIDY_TAG_Q' => 'tidy/tidy.php',
'TIDY_TAG_RB' => 'tidy/tidy.php',
'TIDY_TAG_RBC' => 'tidy/tidy.php',
@ -5534,31 +5583,38 @@ const CONSTANTS = array (
'TIDY_TAG_S' => 'tidy/tidy.php',
'TIDY_TAG_SAMP' => 'tidy/tidy.php',
'TIDY_TAG_SCRIPT' => 'tidy/tidy.php',
'TIDY_TAG_SECTION' => 'tidy/tidy.php',
'TIDY_TAG_SELECT' => 'tidy/tidy.php',
'TIDY_TAG_SERVER' => 'tidy/tidy.php',
'TIDY_TAG_SERVLET' => 'tidy/tidy.php',
'TIDY_TAG_SMALL' => 'tidy/tidy.php',
'TIDY_TAG_SOURCE' => 'tidy/tidy.php',
'TIDY_TAG_SPACER' => 'tidy/tidy.php',
'TIDY_TAG_SPAN' => 'tidy/tidy.php',
'TIDY_TAG_STRIKE' => 'tidy/tidy.php',
'TIDY_TAG_STRONG' => 'tidy/tidy.php',
'TIDY_TAG_STYLE' => 'tidy/tidy.php',
'TIDY_TAG_SUB' => 'tidy/tidy.php',
'TIDY_TAG_SUMMARY' => 'tidy/tidy.php',
'TIDY_TAG_SUP' => 'tidy/tidy.php',
'TIDY_TAG_TABLE' => 'tidy/tidy.php',
'TIDY_TAG_TBODY' => 'tidy/tidy.php',
'TIDY_TAG_TD' => 'tidy/tidy.php',
'TIDY_TAG_TEMPLATE' => 'tidy/tidy.php',
'TIDY_TAG_TEXTAREA' => 'tidy/tidy.php',
'TIDY_TAG_TFOOT' => 'tidy/tidy.php',
'TIDY_TAG_TH' => 'tidy/tidy.php',
'TIDY_TAG_THEAD' => 'tidy/tidy.php',
'TIDY_TAG_TIME' => 'tidy/tidy.php',
'TIDY_TAG_TITLE' => 'tidy/tidy.php',
'TIDY_TAG_TR' => 'tidy/tidy.php',
'TIDY_TAG_TRACK' => 'tidy/tidy.php',
'TIDY_TAG_TT' => 'tidy/tidy.php',
'TIDY_TAG_U' => 'tidy/tidy.php',
'TIDY_TAG_UL' => 'tidy/tidy.php',
'TIDY_TAG_UNKNOWN' => 'tidy/tidy.php',
'TIDY_TAG_VAR' => 'tidy/tidy.php',
'TIDY_TAG_VIDEO' => 'tidy/tidy.php',
'TIDY_TAG_WBR' => 'tidy/tidy.php',
'TIDY_TAG_XMP' => 'tidy/tidy.php',
'TOKEN_PARSE' => 'tokenizer/tokenizer.php',
@ -5592,6 +5648,7 @@ const CONSTANTS = array (
'T_CLONE' => 'tokenizer/tokenizer.php',
'T_CLOSE_TAG' => 'tokenizer/tokenizer.php',
'T_COALESCE' => 'tokenizer/tokenizer.php',
'T_COALESCE_EQUAL' => 'tokenizer/tokenizer.php',
'T_COMMENT' => 'tokenizer/tokenizer.php',
'T_CONCAT_EQUAL' => 'tokenizer/tokenizer.php',
'T_CONST' => 'tokenizer/tokenizer.php',
@ -5631,6 +5688,7 @@ const CONSTANTS = array (
'T_FINALLY' => 'tokenizer/tokenizer.php',
'T_FMT' => 'standard/standard_defines.php',
'T_FMT_AMPM' => 'standard/standard_defines.php',
'T_FN' => 'tokenizer/tokenizer.php',
'T_FOR' => 'tokenizer/tokenizer.php',
'T_FOREACH' => 'tokenizer/tokenizer.php',
'T_FUNCTION' => 'tokenizer/tokenizer.php',

View File

@ -189,7 +189,7 @@ class ReflectionMethod extends ReflectionFunctionAbstract
*/
#[Pure]
#[TentativeType]
public function getClosure($object): Closure {}
public function getClosure($object = null): Closure {}
/**
* Gets the method modifiers

View File

@ -215,6 +215,41 @@ class ReflectionProperty implements Reflector
#[TentativeType]
public function setAccessible($accessible): void {}
/**
* Gets property type
*
* @link https://php.net/manual/en/reflectionproperty.gettype.php
* @return ReflectionNamedType|ReflectionUnionType|null Returns a {@see ReflectionType} if the
* property has a type, and {@see null} otherwise.
* @since 7.4
*/
#[Pure]
#[TentativeType]
public function getType(): ReflectionNamedType|null {}
/**
* Checks if property has type
*
* @link https://php.net/manual/en/reflectionproperty.hastype.php
* @return bool Returns {@see true} if a type is specified, {@see false} otherwise.
* @since 7.4
*/
#[TentativeType]
public function hasType(): bool {}
/**
* Checks if property is initialized
*
* @link https://php.net/manual/en/reflectionproperty.isinitialized.php
* @param object|null $object If the property is non-static an object must be provided to fetch the property from.
* @return bool Returns {@see false} for typed properties prior to initialization, and for properties that have
* been explicitly {@see unset()}. For all other properties {@see true} will be returned.
* @since 7.4
*/
#[Pure]
#[TentativeType]
public function isInitialized(?object $object = null): bool {}
/**
* Clone
*

View File

@ -0,0 +1,45 @@
<?php
use JetBrains\PhpStorm\Pure;
/**
* The ReflectionReference class provides information about a reference.
*
* Note: Unlike the description in the documentation, the class itself is not final.
*
* @link https://www.php.net/manual/en/class.reflectionreference.php
* @since 7.4
*/
class ReflectionReference
{
/**
* ReflectionReference cannot be created explicitly.
*/
private function __construct() {}
/**
* Returns ReflectionReference if array element is a reference, {@see null} otherwise
*
* @link https://php.net/manual/en/reflectionreference.fromarrayelement.php
* @param array $array The array which contains the potential reference.
* @param int|string $key The key; either an integer or a string.
* @return self|null
*/
public static function fromArrayElement(array $array, $key): ?ReflectionReference {}
/**
* Returns unique identifier for the reference. The return value format is unspecified
*
* @link https://php.net/manual/en/reflectionreference.getid.php
* @return int|string Returns an integer or string of unspecified format.
*/
#[Pure]
public function getId(): string {}
/**
* ReflectionReference cannot be cloned
*
* @return void
*/
private function __clone(): void {}
}

View File

@ -1720,6 +1720,27 @@ class ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Count
#[TentativeType]
public function serialize(): string {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __serialize(): array {}
/**
* @param array $data
* @since 7.4
*/
#[TentativeType]
public function __unserialize(array $data): void {}
/**
* Create a new iterator from an ArrayObject instance
* @link https://php.net/manual/en/arrayobject.getiterator.php
@ -2001,6 +2022,27 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Serializable, Coun
*/
#[TentativeType]
public function seek($offset): void {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __serialize(): array {}
/**
* @param array $data
* @since 7.4
*/
#[TentativeType]
public function __unserialize(array $data): void {}
}
/**

View File

@ -357,6 +357,13 @@ class SplFileInfo
final public function _bad_state_ex(): void {}
public function __wakeup() {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
}
/**
@ -890,7 +897,7 @@ class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIt
* @return int|false the number of bytes written, or 0 (false since 7.4) on error.
*/
#[TentativeType]
public function fwrite($data, $length = null): int {}
public function fwrite($data, $length = null): int|false {}
/**
* Gets information about the file
@ -1272,6 +1279,27 @@ class SplDoublyLinkedList implements Iterator, Countable, ArrayAccess, Serializa
*/
#[TentativeType]
public function serialize(): string {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __serialize(): array {}
/**
* @param array $data
* @since 7.4
*/
#[TentativeType]
public function __unserialize(array $data): void {}
}
/**
@ -1439,6 +1467,13 @@ abstract class SplHeap implements Iterator, Countable
#[TentativeType]
public function isCorrupted(): bool {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
/**
* Compare elements in order to place them correctly in the heap while sifting up.
* @link https://php.net/manual/en/splheap.compare.php
@ -1736,6 +1771,13 @@ class SplPriorityQueue implements Iterator, Countable
*/
#[TentativeType]
public function getExtractFlags(): int {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
}
/**
@ -2132,6 +2174,27 @@ class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess
*/
#[TentativeType]
public function getHash($object): string {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __serialize(): array {}
/**
* @param array $data
* @since 7.4
*/
#[TentativeType]
public function __unserialize(array $data): void {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
}
/**
@ -2261,4 +2324,11 @@ class MultipleIterator implements Iterator
*/
#[TentativeType]
public function next(): void {}
/**
* @return array
* @since 7.4
*/
#[TentativeType]
public function __debugInfo(): array {}
}

View File

@ -480,7 +480,7 @@ class DOMImplementation
* implementation. If there is an error with the namespace,
* as determined by $namespace and $qualifiedName.
*/
public function createDocument($namespace, $qualifiedName, DOMDocumentType $doctype) {}
public function createDocument($namespace, $qualifiedName, DOMDocumentType $doctype = null) {}
}
class DOMNameSpaceNode
@ -757,7 +757,7 @@ class DOMDocument extends DOMNode
* </p>
* @return DOMProcessingInstruction|false The new DOMProcessingInstruction or false if an error occurred.
*/
public function createProcessingInstruction($target, $data) {}
public function createProcessingInstruction($target, $data = null) {}
/**
* Create new attribute
@ -811,7 +811,7 @@ class DOMDocument extends DOMNode
* </p>
* @return DOMNode|false The copied node or false, if it cannot be copied.
*/
public function importNode(DOMNode $node, $deep) {}
public function importNode(DOMNode $node, $deep = false) {}
/**
* Create new element node with an associated namespace

View File

@ -248,6 +248,13 @@ define('IMG_FILTER_SMOOTH', 10);
*/
define('IMG_FILTER_PIXELATE', 11);
/**
* Special GD filter used by the {@see imagefilter()} function.
* @link https://php.net/manual/en/image.constants.php#constant.img-filter-scatter
* @since 7.4
*/
define('IMG_FILTER_SCATTER', 12);
/**
* The GD version PHP was compiled against.
* @since 5.2.4

View File

@ -13,6 +13,11 @@ define('HASH_HMAC', 1);
define('MHASH_CRC32', 0);
/**
* @since 7.4
*/
define('MHASH_CRC32C', 34);
define('MHASH_MD5', 1);
define('MHASH_SHA1', 2);

View File

@ -50,6 +50,11 @@ define('MB_CASE_TITLE_SIMPLE', 6);
*/
define('MB_CASE_FOLD_SIMPLE', 7);
/**
* @since 7.4
*/
define('MB_ONIGURUMA_VERSION', "6.9.8");
/**
* Perform case folding on a string
* @link https://php.net/manual/en/function.mb-convert-case.php
@ -1387,3 +1392,21 @@ function mb_scrub(string $string, ?string $encoding): string|false {}
#[Deprecated(replacement: "mb_ereg_search_setpos(%parametersList%)", since: "7.3")]
#[Pure]
function mbereg_search_setpos($position) {}
/**
* Function performs string splitting to an array of defined size chunks.
* @param string $string <p>
* The string to split into characters or chunks.
* </p>
* @param int $length [optional] <p>
* If specified, each element of the returned array will be composed of multiple characters instead of a single character.
* </p>
* @param string|null $encoding [optional] <p>
* Character encoding name to use.
* If it is omitted, internal character encoding is used.
* </p>
* @return string[]|false
* @since 7.4
*/
#[Pure]
function mb_str_split(string $string, int $length = 1, ?string $encoding): array|false {}

View File

@ -1045,7 +1045,7 @@ function mysqli_get_client_info(): ?string {}
* @link https://php.net/manual/en/mysqli.get-client-version.php
* @return int
*/
function mysqli_get_client_version($link): int {}
function mysqli_get_client_version(): int {}
/**
* Returns a string representing the type of connection used

View File

@ -534,6 +534,16 @@ function openssl_x509_export($certificate, &$output, bool $no_text = true): bool
*/
function openssl_x509_export_to_file($certificate, string $output_filename, bool $no_text = true): bool {}
/**
* Verifies digital signature of x509 certificate against a public key
* @link https://www.php.net/manual/en/function.openssl-x509-verify.php
* @param OpenSSLCertificate|string|resource $certificate
* @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key
* @return int Returns 1 if the signature is correct, 0 if it is incorrect, and -1 on error.
* @since 7.4
*/
function openssl_x509_verify($certificate, $public_key): int {}
/**
* Exports a PKCS#12 Compatible Certificate Store File to variable.
* @link https://php.net/manual/en/function.openssl-pkcs12-export.php

View File

@ -369,6 +369,51 @@ define('PCNTL_ENOTDIR', 20);
define('PCNTL_ETXTBSY', 26);
/**
* @since 7.4
*/
define('PCNTL_ENOSPC', 28);
/**
* @since 7.4
*/
define('PCNTL_EUSERS', 87);
/**
* @since 7.4
*/
define('CLONE_NEWNS', 131072);
/**
* @since 7.4
*/
define('CLONE_NEWIPC', 134217728);
/**
* @since 7.4
*/
define('CLONE_NEWUTS', 67108864);
/**
* @since 7.4
*/
define('CLONE_NEWNET', 1073741824);
/**
* @since 7.4
*/
define('CLONE_NEWPID', 536870912);
/**
* @since 7.4
*/
define('CLONE_NEWUSER', 268435456);
/**
* @since 7.4
*/
define('CLONE_NEWCGROUP', 33554432);
/**
* Forks the currently running process
* @link https://php.net/manual/en/function.pcntl-fork.php
@ -836,3 +881,10 @@ function pcntl_async_signals(?bool $enable): bool {}
* @since 7.1
*/
function pcntl_signal_get_handler(int $signal) {}
/**
* @param int $flags
* @return bool
* @since 7.4
*/
function pcntl_unshare(int $flags): bool {}

View File

@ -499,7 +499,7 @@ function preg_replace(array|string $pattern, array|string $replacement, array|st
* If matches are found, the new subject will be returned, otherwise
* <i>subject</i> will be returned unchanged.
*/
function preg_replace_callback(array|string $pattern, callable $callback, array|string $subject, int $limit = -1, &$count): array|string|null {}
function preg_replace_callback(array|string $pattern, callable $callback, array|string $subject, int $limit = -1, &$count, int $flags = 0): array|string|null {}
/**
* Perform a regular expression search and replace using callbacks
@ -512,7 +512,7 @@ function preg_replace_callback(array|string $pattern, callable $callback, array|
* @return string|string[]|null <p>preg_replace_callback_array() returns an array if the subject parameter is an array, or a string otherwise. On errors the return value is NULL</p>
* <p>If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.</p>
*/
function preg_replace_callback_array(array $pattern, array|string $subject, int $limit = -1, &$count): array|string|null {}
function preg_replace_callback_array(array $pattern, array|string $subject, int $limit = -1, &$count, int $flags = 0): array|string|null {}
/**
* Perform a regular expression search and replace

View File

@ -1,7 +1,7 @@
<phpunit bootstrap="vendor/autoload.php"
failOnWarning="true">
<testsuites>
<testsuite name="PHP_7.3">
<testsuite name="PHP_7.4">
<file>tests/BaseClassesTest.php</file>
<file>tests/BaseConstantsTest.php</file>
<file>tests/BaseFunctionsTest.php</file>

View File

@ -411,6 +411,30 @@ class SQLite3
*/
#[TentativeType]
public function enableExceptions($enable = false): bool {}
/**
* @return int
* @since 7.4
*/
#[TentativeType]
public function lastExtendedErrorCode(): int {}
/**
* @param bool $enable
* @since 7.4
*/
#[TentativeType]
public function enableExtendedResultCodes(bool $enable): bool {}
/**
* @param SQLite3 $destination
* @param string $sourceDatabase
* @param string $destinationDatabase
* @return bool
* @since 7.4
*/
#[TentativeType]
public function backup(SQLite3 $destination, string $sourceDatabase = 'main', string $destinationDatabase = 'main'): bool {}
}
/**
@ -517,6 +541,16 @@ class SQLite3Stmt
#[TentativeType]
public function readOnly(): bool {}
/**
* Retrieves the SQL of the prepared statement. If expanded is FALSE, the unmodified SQL is retrieved.
* If expanded is TRUE, all query parameters are replaced with their bound values, or with an SQL NULL, if not already bound.
* @param bool $expand Whether to retrieve the expanded SQL. Passing TRUE is only supported as of libsqlite 3.14.
* @return string|false Returns the SQL of the prepared statement, or FALSE on failure.
* @since 7.4
*/
#[TentativeType]
public function getSQL(bool $expand = false): string|false {}
}
/**

View File

@ -247,3 +247,38 @@ function sapi_windows_cp_is_utf8(): bool {}
* @since 7.2
*/
function sapi_windows_vt100_support($stream, ?bool $enable = null): bool {}
/**
* Set or remove a CTRL event handler, which allows Windows CLI processes to intercept or ignore CTRL+C and CTRL+BREAK events.
* Note that in multithreaded environments, this is only possible when called from the main thread.
*
* @link https://www.php.net/manual/en/function.sapi-windows-set-ctrl-handler.php
* @param callable|null $handler <p>
* A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs.
* </p>
* <p>
* The function is supposed to have the following signature:
* <code>
* handler(int $event): void
* </code>
* <code>event</code> The CTRL event which has been received; either <b>PHP_WINDOWS_EVENT_CTRL_C</b> or <b>PHP_WINDOWS_EVENT_CTRL_BREAK</b>.
* </p>
* <p>
* Setting a <b>null</b> handler causes the process to ignore CTRL+C events, but not CTRL+BREAK events.
* </p>
* @param bool $add If <b>true</b>, the handler is set. If <b>false</b>, the handler is removed.
* @return bool <b>TRUE</b> on success or <b>FALSE</b> on failure.
* @since 7.4
*/
function sapi_windows_set_ctrl_handler(?callable $handler, bool $add = true): bool {}
/**
* Send a CTRL event to another process.
*
* @link https://www.php.net/manual/en/function.sapi-windows-generate-ctrl-event.php
* @param int $event The CTRL even to send; <b>either PHP_WINDOWS_EVENT_CTRL_C</b> or <b>PHP_WINDOWS_EVENT_CTRL_BREAK</b>.
* @param int $pid [optional] The ID of the process to which to send the event to. If 0 is given, the event is sent to all processes of the process group.
* @return bool <b>TRUE</b> on success or <b>FALSE</b> on failure.
* @since 7.4
*/
function sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool {}

View File

@ -96,6 +96,11 @@ define('PASSWORD_ARGON2_DEFAULT_TIME_COST', 4);
*/
define('PASSWORD_ARGON2_DEFAULT_THREADS', 1);
/**
* @since 7.4
*/
define('PASSWORD_ARGON2_PROVIDER', "standard");
/**
* Returns information about the given hash
* @link https://secure.php.net/manual/en/function.password-get-info.php
@ -158,3 +163,10 @@ function password_needs_rehash(string $hash, string|int|null $algo, array $optio
* @since 5.5
*/
function password_verify(string $password, string $hash): bool {}
/**
* Return a complete list of all registered password hashing algorithms.
* @return string[]
* @since 7.4
*/
function password_algos(): array {}

View File

@ -933,7 +933,7 @@ function ltrim(string $string, string $characters = " \t\n\r\u0000\u000b"): stri
* @return string the stripped string.
*/
#[Pure]
function strip_tags(string $string, string|null $allowed_tags = null): string {}
function strip_tags(string $string, array|string|null $allowed_tags = null): string {}
/**
* Calculate the similarity between two strings

View File

@ -1051,4 +1051,4 @@ function array_slice(array $array, int $offset, ?int $length, bool $preserve_key
* @meta
*/
#[Pure]
function array_merge($array, array ...$arrays): array {}
function array_merge(array ...$arrays): array {}

View File

@ -17,7 +17,7 @@ define('ARRAY_FILTER_USE_KEY', 2);
* @return array An array of values resulted from merging the arguments together.
*/
#[Pure]
function array_merge_recursive(array $arr1, array ...$arrays): array {}
function array_merge_recursive(array ...$arrays): array {}
/**
* array_replace() replaces the values of the first array with the same values from all the following arrays.
@ -1148,6 +1148,16 @@ function realpath_cache_get(): array {}
#[Pure(true)]
function realpath_cache_size(): int {}
/**
* It returns the same result as (array) $object, with the
* exception that it ignores overloaded array casts, such as used by
* ArrayObject.
* @param object $object
* @return array returns the mangled object properties
* @since 7.4
*/
function get_mangled_object_vars(object $object): array {}
/**
* AssertionError is thrown when an assertion made via {@see assert()} fails.
* @link https://php.net/manual/en/class.assertionerror.php

View File

@ -1408,6 +1408,16 @@ define('STREAM_CRYPTO_METHOD_TLSv1_2_CLIENT', 33);
define('STREAM_CRYPTO_METHOD_TLSv1_2_SERVER', 32);
/**
* @since 7.4
*/
define('STREAM_CRYPTO_METHOD_TLSv1_3_CLIENT', 65);
/**
* @since 7.4
*/
define('STREAM_CRYPTO_METHOD_TLSv1_3_SERVER', 64);
define('STREAM_CRYPTO_PROTO_SSLv3', 4);
define('STREAM_CRYPTO_PROTO_TLSv1_0', 8);
@ -1416,6 +1426,11 @@ define('STREAM_CRYPTO_PROTO_TLSv1_1', 16);
define('STREAM_CRYPTO_PROTO_TLSv1_2', 32);
/**
* @since 7.4
*/
define('STREAM_CRYPTO_PROTO_TLSv1_3', 64);
/**
* @since 7.1
*/

View File

@ -242,6 +242,146 @@ define('TIDY_TAG_WBR', 117);
define('TIDY_TAG_XMP', 118);
/**
* @since 7.4
*/
define('TIDY_TAG_ARTICLE', 123);
/**
* @since 7.4
*/
define('TIDY_TAG_ASIDE', 124);
/**
* @since 7.4
*/
define('TIDY_TAG_AUDIO', 125);
/**
* @since 7.4
*/
define('TIDY_TAG_BDI', 126);
/**
* @since 7.4
*/
define('TIDY_TAG_CANVAS', 127);
/**
* @since 7.4
*/
define('TIDY_TAG_COMMAND', 128);
/**
* @since 7.4
*/
define('TIDY_TAG_DATALIST', 129);
/**
* @since 7.4
*/
define('TIDY_TAG_DETAILS', 130);
/**
* @since 7.4
*/
define('TIDY_TAG_DIALOG', 131);
/**
* @since 7.4
*/
define('TIDY_TAG_FIGCAPTION', 132);
/**
* @since 7.4
*/
define('TIDY_TAG_FIGURE', 133);
/**
* @since 7.4
*/
define('TIDY_TAG_FOOTER', 134);
/**
* @since 7.4
*/
define('TIDY_TAG_HEADER', 135);
/**
* @since 7.4
*/
define('TIDY_TAG_HGROUP', 136);
/**
* @since 7.4
*/
define('TIDY_TAG_MAIN', 137);
/**
* @since 7.4
*/
define('TIDY_TAG_MARK', 138);
/**
* @since 7.4
*/
define('TIDY_TAG_MENUITEM', 139);
/**
* @since 7.4
*/
define('TIDY_TAG_METER', 140);
/**
* @since 7.4
*/
define('TIDY_TAG_NAV', 141);
/**
* @since 7.4
*/
define('TIDY_TAG_OUTPUT', 142);
/**
* @since 7.4
*/
define('TIDY_TAG_PROGRESS', 143);
/**
* @since 7.4
*/
define('TIDY_TAG_SECTION', 144);
/**
* @since 7.4
*/
define('TIDY_TAG_SOURCE', 145);
/**
* @since 7.4
*/
define('TIDY_TAG_SUMMARY', 146);
/**
* @since 7.4
*/
define('TIDY_TAG_TEMPLATE', 147);
/**
* @since 7.4
*/
define('TIDY_TAG_TIME', 148);
/**
* @since 7.4
*/
define('TIDY_TAG_TRACK', 149);
/**
* @since 7.4
*/
define('TIDY_TAG_VIDEO', 150);
/**
* root node
* @link https://php.net/manual/en/tidy.constants.php

View File

@ -52,6 +52,11 @@ define('T_MINUS_EQUAL', 353);
define('T_PLUS_EQUAL', 352);
/**
* @since 7.4
*/
define('T_COALESCE_EQUAL', 363);
define('T_COALESCE', 400);
define('T_BOOLEAN_OR', 364);
@ -274,6 +279,11 @@ define('T_ELLIPSIS', 399);
define('T_DOUBLE_COLON', 397);
/**
* @since 7.4
*/
define('T_FN', 311);
/**
* @removed 7.0
*/

View File

@ -158,6 +158,13 @@ function zip_entry_compressionmethod($zip_entry): string|false {}
*/
class ZipArchive implements Countable
{
/**
* Zip library version
* @link https://php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const LIBZIP_VERSION = '1.7.3';
/**
* Create the archive if it does not exist.
* @link https://php.net/manual/en/zip.constants.php
@ -463,6 +470,13 @@ class ZipArchive implements Countable
*/
public const EM_AES_256 = 259;
/**
* Open archive in read only mode
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const RDONLY = 16;
/**
* Guess string encoding (is default)
* @link https://secure.php.net/manual/en/zip.constants.php
@ -498,6 +512,83 @@ class ZipArchive implements Countable
*/
public const FL_ENC_CP437 = 4096;
/**
* LZMA2 algorithm
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const CM_LZMA2 = 33;
/**
* XZ algorithm
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const CM_XZ = 95;
/**
* Encryption method not support
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_ENCRNOTSUPP = 24;
/**
* Read-only archive
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_RDONLY = 25;
/**
* No password provided
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_NOPASSWD = 26;
/**
* Wrong password provided
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_WRONGPASSWD = 27;
/**
* Operation not supported
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_OPNOTSUPP = 28;
/**
* Resource still in use
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_INUSE = 29;
/**
* Tell error
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_TELL = 30;
/**
* Compressed data invalid
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_COMPRESSED_DATA = 31;
/**
* Operation cancelled
* @link https://secure.php.net/manual/en/zip.constants.php
* @since 7.4.3
*/
public const ER_CANCELLED = 32;
/**
* @link https://www.php.net/manual/en/zip.constants.php#ziparchive.constants.opsys.default
* @since 5.6