diff --git a/Phar/Phar.php b/Phar/Phar.php index 5f373bd50..675adce0e 100644 --- a/Phar/Phar.php +++ b/Phar/Phar.php @@ -555,7 +555,8 @@ public function offsetUnset($localName): void {} * @return bool */ #[TentativeType] - public function setAlias(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $alias): bool {} + #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')] + public function setAlias(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $alias) {} /** * (Unknown)
@@ -570,10 +571,11 @@ public function setAlias(#[LanguageLevelTypeAware(['8.0' => 'string'], default: * @return bool TRUE on success or FALSE on failure. */ #[TentativeType] + #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')] public function setDefaultStub( #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $index = null, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $webIndex = null - ): bool {} + ) {} /** * (PHP >= 5.3.0, PECL phar >= 1.0.0)
diff --git a/PhpStormStubsMap.php b/PhpStormStubsMap.php index 14cd53864..9bd6023f3 100644 --- a/PhpStormStubsMap.php +++ b/PhpStormStubsMap.php @@ -7104,6 +7104,7 @@ final class PhpStormStubsMap 'CURLOPT_SUPPRESS_CONNECT_HEADERS' => 'curl/curl_d.php', 'CURLOPT_TCP_FASTOPEN' => 'curl/curl_d.php', 'CURLOPT_TCP_KEEPALIVE' => 'curl/curl_d.php', + 'CURLOPT_TCP_KEEPCNT' => 'curl/curl_d.php', 'CURLOPT_TCP_KEEPIDLE' => 'curl/curl_d.php', 'CURLOPT_TCP_KEEPINTVL' => 'curl/curl_d.php', 'CURLOPT_TCP_NODELAY' => 'curl/curl_d.php', @@ -10428,6 +10429,7 @@ final class PhpStormStubsMap 'MYSQLI_TYPE_TINY' => 'mysqli/mysqli.php', 'MYSQLI_TYPE_TINY_BLOB' => 'mysqli/mysqli.php', 'MYSQLI_TYPE_VAR_STRING' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_VECTOR' => 'mysqli/mysqli.php', 'MYSQLI_TYPE_YEAR' => 'mysqli/mysqli.php', 'MYSQLI_UNIQUE_KEY_FLAG' => 'mysqli/mysqli.php', 'MYSQLI_UNSIGNED_FLAG' => 'mysqli/mysqli.php', @@ -12155,6 +12157,7 @@ final class PhpStormStubsMap 'SORT_STRING' => 'standard/standard_defines.php', 'SO_ATTACH_REUSEPORT_CBPF' => 'sockets/sockets.php', 'SO_BINDTODEVICE' => 'sockets/sockets.php', + 'SO_BINDTOIFINDEX' => 'sockets/sockets.php', 'SO_BPF_EXTENSIONS' => 'sockets/sockets.php', 'SO_BROADCAST' => 'sockets/sockets.php', 'SO_DEBUG' => 'sockets/sockets.php', @@ -13360,9 +13363,12 @@ final class PhpStormStubsMap 'T_POW_EQUAL' => 'tokenizer/tokenizer.php', 'T_PRINT' => 'tokenizer/tokenizer.php', 'T_PRIVATE' => 'tokenizer/tokenizer.php', + 'T_PRIVATE_SET' => 'tokenizer/tokenizer.php', 'T_PROPERTY_C' => 'tokenizer/tokenizer.php', 'T_PROTECTED' => 'tokenizer/tokenizer.php', + 'T_PROTECTED_SET' => 'tokenizer/tokenizer.php', 'T_PUBLIC' => 'tokenizer/tokenizer.php', + 'T_PUBLIC_SET' => 'tokenizer/tokenizer.php', 'T_READONLY' => 'tokenizer/tokenizer.php', 'T_REQUIRE' => 'tokenizer/tokenizer.php', 'T_REQUIRE_ONCE' => 'tokenizer/tokenizer.php', diff --git a/Reflection/ReflectionProperty.php b/Reflection/ReflectionProperty.php index c9c8ffe6c..4a0dbb48e 100644 --- a/Reflection/ReflectionProperty.php +++ b/Reflection/ReflectionProperty.php @@ -67,6 +67,16 @@ class ReflectionProperty implements Reflector */ public const IS_READONLY = 128; + /** + * @since 8.4 + */ + public const IS_PROTECTED_SET = 2048; + + /** + * @since 8.4 + */ + public const IS_PRIVATE_SET = 4096; + /** * Construct a ReflectionProperty object * @@ -385,4 +395,14 @@ public function getHooks(): array {} * @since 8.4 */ public function getHook(PropertyHookType $type): ?ReflectionMethod {} + + /** + * @since 8.4 + */ + public function isPrivateSet(): bool {} + + /** + * @since 8.4 + */ + public function isProtectedSet(): bool {} } diff --git a/curl/curl_d.php b/curl/curl_d.php index 9185d583f..fd3bf97ea 100644 --- a/curl/curl_d.php +++ b/curl/curl_d.php @@ -4358,3 +4358,8 @@ * @since 8.4 */ define('CURL_PREREQFUNC_ABORT', 1); + +/** + * @since 8.4 + */ +define('CURLOPT_TCP_KEEPCNT', 326); \ No newline at end of file diff --git a/mysqli/mysqli.php b/mysqli/mysqli.php index 16c60f2a2..b7559473e 100644 --- a/mysqli/mysqli.php +++ b/mysqli/mysqli.php @@ -3607,3 +3607,8 @@ function mysqli_set_opt( * @since 8.1 */ define('MYSQLI_IS_MARIADB', 0); + +/** + * @since 8.4 + */ +define('MYSQLI_TYPE_VECTOR', 242); \ No newline at end of file diff --git a/sockets/sockets.php b/sockets/sockets.php index 724c24680..15b660aae 100644 --- a/sockets/sockets.php +++ b/sockets/sockets.php @@ -2385,6 +2385,11 @@ function socket_atmark(Socket $socket): bool {} * @since 8.4 */ define('SOCK_NONBLOCK', 2048); + +/** + * @since 8.4 + */ +define('SO_BINDTOIFINDEX', 62); /** * @since 8.0 */ diff --git a/tests/DockerImages/8.4/Dockerfile b/tests/DockerImages/8.4/Dockerfile index 730f71446..9f31c0840 100644 --- a/tests/DockerImages/8.4/Dockerfile +++ b/tests/DockerImages/8.4/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.4.0beta3-alpine +FROM php:8.4.0beta4-alpine RUN set -eux; \ apk add --repository http://dl-cdn.alpinelinux.org/alpine/edge/community --no-cache --virtual .build-deps \ diff --git a/tests/DockerImages/testRunner/Dockerfile b/tests/DockerImages/testRunner/Dockerfile index 20083590f..00247cb22 100644 --- a/tests/DockerImages/testRunner/Dockerfile +++ b/tests/DockerImages/testRunner/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.4.0beta3-alpine +FROM php:8.4.0beta4-alpine RUN echo 'memory_limit = 2048M' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini COPY --from=composer /usr/bin/composer /usr/bin/composer diff --git a/tokenizer/tokenizer.php b/tokenizer/tokenizer.php index c5a820964..6f15addaf 100644 --- a/tokenizer/tokenizer.php +++ b/tokenizer/tokenizer.php @@ -236,3 +236,18 @@ function token_name(int $id): string {} * @removed 7.0 */ define('T_CHARACTER', 315); + +/** + * @since 8.4 + */ +define('T_PRIVATE_SET', 327); + +/** + * @since 8.4 + */ +define('T_PROTECTED_SET', 328); + +/** + * @since 8.4 + */ +define('T_PUBLIC_SET', 329);