Skip to content

Commit 0e1c7a0

Browse files
authored
feat: Update the reflector for PHP 8.4 symbols (#1105)
1 parent 8a1ee33 commit 0e1c7a0

File tree

2 files changed

+167
-0
lines changed

2 files changed

+167
-0
lines changed

src/Symbol/Reflector.php

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,18 @@
2626
final readonly class Reflector
2727
{
2828
private const MISSING_CLASSES = [
29+
'Deprecated',
30+
2931
// https://youtrack.jetbrains.com/issue/WI-29503
3032
'MongoInsertBatch',
3133
'MongoDeleteBatch',
34+
35+
// PHP 8.4
36+
// TODO: to report
37+
'Pdo\DbLib',
38+
'Pdo\Firebird',
39+
'Pdo\Odbc',
40+
'Pdo\Pgsql',
3241
];
3342

3443
private const MISSING_FUNCTIONS = [
@@ -188,6 +197,13 @@
188197
'uv_ares_init_options',
189198
'uv_handle_type',
190199
'uv_read2_start',
200+
201+
// PHP 8.4
202+
// TODO: To report
203+
'pcntl_getqos_class',
204+
'pcntl_setns',
205+
'sodium_crypto_aead_aegis128l_',
206+
'sodium_crypto_aead_aegis256l_',
191207
];
192208

193209
/**
@@ -215,6 +231,29 @@
215231
'ps_LINEJOIN_MITER',
216232
'ps_LINEJOIN_ROUND',
217233
'ps_LINEJOIN_BEVEL',
234+
235+
// PHP 8.4
236+
// TODO: to report
237+
'CURL_TCP_KEEPCNT',
238+
'IP_PORTRANGE_DEFAULT',
239+
'IP_PORTRANGE_HIGH',
240+
'IP_PORTRANGE_LOW',
241+
'PATTERN',
242+
'P_UID',
243+
'P_GID',
244+
'P_SID',
245+
'P_JAILID',
246+
'PROPERTY_ID_COMPAT_MATH_CONTINUE',
247+
'PROPERTY_ID_COMPAT_MATH_START',
248+
'PROPERTY_IDS_UNARY_OPERATOR',
249+
'SIGCKPT',
250+
'SIGCKPTEXIT',
251+
'SOCK_CONN_DGRAM',
252+
'SO_EXCLBIND',
253+
'SO_EXCLUSIVEADDRUSE',
254+
'SO_NOSIGPIPE',
255+
'SO_LINGER_SEC',
256+
'IP_PORTRANGE',
218257
];
219258

220259
public static function createWithPhpStormStubs(): self

tests/Symbol/Reflector/PhpStormStubsReflectorTest.php

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,20 @@ public static function provideClasses(): iterable
9898
'MongoInsertBatch',
9999
'MongoDeleteBatch',
100100
);
101+
102+
yield from self::createDataSetForInternalSymbols(
103+
'PHP 8.4 new class-like (added or modified)',
104+
'RoundingMode',
105+
'DOMNode',
106+
'DOMElement',
107+
'ResourceBundle',
108+
'Pdo\DbLib',
109+
'Pdo\Firebird',
110+
'Pdo\Mysql',
111+
'Pdo\Odbc',
112+
'Pdo\Pgsql',
113+
'Pdo\Sqlite',
114+
);
101115
}
102116

103117
public static function provideFunctions(): iterable
@@ -507,6 +521,46 @@ public static function provideFunctions(): iterable
507521
'uv_signal_start',
508522
'uv_signal_stop',
509523
);
524+
525+
yield from self::createDataSetForInternalSymbols(
526+
'PHP 8.4 functions (added or modified)',
527+
'request_parse_body',
528+
'bcceil',
529+
'bcdivmod',
530+
'bcfloor',
531+
'bcround',
532+
'intltz_get_iana_id',
533+
'grapheme_str_split',
534+
'mb_trim',
535+
'mb_ltrim',
536+
'mb_rtrim',
537+
'mb_ucfirst',
538+
'mb_lcfirst',
539+
'opcache_jit_blacklist',
540+
'pcntl_getcpu',
541+
'pcntl_getcpuaffinity',
542+
'pcntl_getqos_class',
543+
'pcntl_setns',
544+
'pcntl_waitid',
545+
'pg_change_password',
546+
'pg_jit',
547+
'pg_put_copy_data',
548+
'pg_put_copy_end',
549+
'pg_result_memory_size',
550+
'pg_set_chunked_rows_size',
551+
'pg_socket_poll',
552+
'sodium_crypto_aead_aegis128l_',
553+
'sodium_crypto_aead_aegis256l_',
554+
'http_get_last_response_headers',
555+
'http_clear_last_response_headers',
556+
'fpow',
557+
'array_all',
558+
'array_any',
559+
'array_find',
560+
'array_find_key',
561+
'exit',
562+
'die',
563+
);
510564
}
511565

512566
public static function provideConstants(): iterable
@@ -615,6 +669,80 @@ public static function provideConstants(): iterable
615669
'ps_LINEJOIN_ROUND',
616670
'ps_LINEJOIN_BEVEL',
617671
);
672+
673+
yield from self::createDataSetForInternalSymbols(
674+
'PHP 8.4 constants (added or modified)',
675+
'PHP_OUTPUT_HANDLER_PROCESSED',
676+
'PHP_SBINDIR',
677+
'CURL_HTTP_VERSION_3',
678+
'CURL_HTTP_VERSION_3ONLY',
679+
'CURL_TCP_KEEPCNT',
680+
'CURLOPT_PREREQFUNCTION',
681+
'CURL_PREREQFUNC_OK',
682+
'CURL_PREREQFUNC_ABORT',
683+
'CURLOPT_SERVER_RESPONSE_TIMEOUT',
684+
'CURLOPT_DEBUGFUNCTION',
685+
'CURLINFO_TEXT',
686+
'CURLINFO_HEADER_IN',
687+
'CURLINFO_DATA_IN',
688+
'CURLINFO_DATA_OUT',
689+
'CURLINFO_SSL_DATA_OUT',
690+
'CURLINFO_SSL_DATA_IN',
691+
'CURLINFO_POSTTRANSFER_TIME_T',
692+
'PATTERN',
693+
'PROPERTY_IDS_UNARY_OPERATOR',
694+
'PROPERTY_ID_COMPAT_MATH_START',
695+
'PROPERTY_ID_COMPAT_MATH_CONTINUE',
696+
'LDAP_OPT_X_TLS_PROTOCOL_MAX',
697+
'LDAP_OPT_X_TLS_PROTOCOL_TLS1_3',
698+
'LIBXML_RECOVER',
699+
'LIBXML_NO_XXE',
700+
'MYSQLI_TYPE_VECTOR',
701+
'X509_PURPOSE_OCSP_HELPER',
702+
'X509_PURPOSE_TIMESTAMP_SIGN',
703+
'SIGCKPT',
704+
'SIGCKPTEXIT',
705+
'WEXITED',
706+
'WSTOPPED',
707+
'WNOWAIT',
708+
'P_ALL',
709+
'P_PID',
710+
'P_PGID',
711+
'P_PIDFD',
712+
'P_UID',
713+
'P_GID',
714+
'P_SID',
715+
'P_JAILID',
716+
'PGSQL_TUPLES_CHUNK',
717+
'POSIX_SC_CHILD_MAX',
718+
'POSIX_SC_CLK_TCK',
719+
'SO_EXCLUSIVEADDRUSE',
720+
'SOCK_CONN_DGRAM',
721+
'SOCK_DCCP',
722+
'TCP_SYNCNT',
723+
'SO_EXCLBIND',
724+
'SO_NOSIGPIPE',
725+
'SO_LINGER_SEC',
726+
'IP_PORTRANGE',
727+
'IP_PORTRANGE_DEFAULT',
728+
'IP_PORTRANGE_HIGH',
729+
'IP_PORTRANGE_LOW',
730+
'SOCK_NONBLOCK',
731+
'SOCK_CLOEXEC',
732+
'SO_BINDTOIFINDEX',
733+
'SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES',
734+
'SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES',
735+
'SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES',
736+
'SODIUM_CRYPTO_AEAD_AEGIS128L_ABYTES',
737+
'SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES',
738+
'SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES',
739+
'SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES',
740+
'SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES',
741+
'T_PUBLIC_SET',
742+
'T_PROTECTED_SET',
743+
'T_PRIVATE_SET',
744+
'XML_OPTION_PARSE_HUGE',
745+
);
618746
}
619747

620748
/**

0 commit comments

Comments
 (0)