Skip to content

Commit 9907946

Browse files
committed
Add stubs for standard library
1 parent 1172fc7 commit 9907946

File tree

3 files changed

+349
-205
lines changed

3 files changed

+349
-205
lines changed

ext/standard/basic_functions.c

Lines changed: 0 additions & 205 deletions
Original file line numberDiff line numberDiff line change
@@ -122,211 +122,6 @@ static void user_tick_function_dtor(user_tick_function_entry *tick_function_entr
122122

123123
/* {{{ arginfo */
124124

125-
/* {{{ streamsfuncs.c */
126-
#if HAVE_SOCKETPAIR
127-
ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_pair, 0)
128-
ZEND_ARG_INFO(0, domain)
129-
ZEND_ARG_INFO(0, type)
130-
ZEND_ARG_INFO(0, protocol)
131-
ZEND_END_ARG_INFO()
132-
#endif
133-
134-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_client, 0, 0, 1)
135-
ZEND_ARG_INFO(0, remoteaddress)
136-
ZEND_ARG_INFO(1, errcode)
137-
ZEND_ARG_INFO(1, errstring)
138-
ZEND_ARG_INFO(0, timeout)
139-
ZEND_ARG_INFO(0, flags)
140-
ZEND_ARG_INFO(0, context)
141-
ZEND_END_ARG_INFO()
142-
143-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_server, 0, 0, 1)
144-
ZEND_ARG_INFO(0, localaddress)
145-
ZEND_ARG_INFO(1, errcode)
146-
ZEND_ARG_INFO(1, errstring)
147-
ZEND_ARG_INFO(0, flags)
148-
ZEND_ARG_INFO(0, context)
149-
ZEND_END_ARG_INFO()
150-
151-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_accept, 0, 0, 1)
152-
ZEND_ARG_INFO(0, serverstream)
153-
ZEND_ARG_INFO(0, timeout)
154-
ZEND_ARG_INFO(1, peername)
155-
ZEND_END_ARG_INFO()
156-
157-
ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_get_name, 0)
158-
ZEND_ARG_INFO(0, stream)
159-
ZEND_ARG_INFO(0, want_peer)
160-
ZEND_END_ARG_INFO()
161-
162-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_sendto, 0, 0, 2)
163-
ZEND_ARG_INFO(0, stream)
164-
ZEND_ARG_INFO(0, data)
165-
ZEND_ARG_INFO(0, flags)
166-
ZEND_ARG_INFO(0, target_addr)
167-
ZEND_END_ARG_INFO()
168-
169-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_recvfrom, 0, 0, 2)
170-
ZEND_ARG_INFO(0, stream)
171-
ZEND_ARG_INFO(0, amount)
172-
ZEND_ARG_INFO(0, flags)
173-
ZEND_ARG_INFO(1, remote_addr)
174-
ZEND_END_ARG_INFO()
175-
176-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_get_contents, 0, 0, 1)
177-
ZEND_ARG_INFO(0, source)
178-
ZEND_ARG_INFO(0, maxlen)
179-
ZEND_ARG_INFO(0, offset)
180-
ZEND_END_ARG_INFO()
181-
182-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_copy_to_stream, 0, 0, 2)
183-
ZEND_ARG_INFO(0, source)
184-
ZEND_ARG_INFO(0, dest)
185-
ZEND_ARG_INFO(0, maxlen)
186-
ZEND_ARG_INFO(0, pos)
187-
ZEND_END_ARG_INFO()
188-
189-
ZEND_BEGIN_ARG_INFO(arginfo_stream_get_meta_data, 0)
190-
ZEND_ARG_INFO(0, fp)
191-
ZEND_END_ARG_INFO()
192-
193-
ZEND_BEGIN_ARG_INFO(arginfo_stream_get_transports, 0)
194-
ZEND_END_ARG_INFO()
195-
196-
ZEND_BEGIN_ARG_INFO(arginfo_stream_get_wrappers, 0)
197-
ZEND_END_ARG_INFO()
198-
199-
ZEND_BEGIN_ARG_INFO(arginfo_stream_resolve_include_path, 0)
200-
ZEND_ARG_INFO(0, filename)
201-
ZEND_END_ARG_INFO()
202-
203-
ZEND_BEGIN_ARG_INFO(arginfo_stream_is_local, 0)
204-
ZEND_ARG_INFO(0, stream)
205-
ZEND_END_ARG_INFO()
206-
207-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_supports_lock, 0, 0, 1)
208-
ZEND_ARG_INFO(0, stream)
209-
ZEND_END_ARG_INFO()
210-
211-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_isatty, 0, 0, 1)
212-
ZEND_ARG_INFO(0, stream)
213-
ZEND_END_ARG_INFO()
214-
215-
#ifdef PHP_WIN32
216-
ZEND_BEGIN_ARG_INFO_EX(arginfo_sapi_windows_vt100_support, 0, 0, 1)
217-
ZEND_ARG_INFO(0, stream)
218-
ZEND_ARG_INFO(0, enable)
219-
ZEND_END_ARG_INFO()
220-
#endif
221-
222-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_select, 0, 0, 4)
223-
ZEND_ARG_INFO(1, read_streams) /* ARRAY_INFO(1, read_streams, 1) */
224-
ZEND_ARG_INFO(1, write_streams) /* ARRAY_INFO(1, write_streams, 1) */
225-
ZEND_ARG_INFO(1, except_streams) /* ARRAY_INFO(1, except_streams, 1) */
226-
ZEND_ARG_INFO(0, tv_sec)
227-
ZEND_ARG_INFO(0, tv_usec)
228-
ZEND_END_ARG_INFO()
229-
230-
ZEND_BEGIN_ARG_INFO(arginfo_stream_context_get_options, 0)
231-
ZEND_ARG_INFO(0, stream_or_context)
232-
ZEND_END_ARG_INFO()
233-
234-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_set_option, 0, 0, 2)
235-
ZEND_ARG_INFO(0, stream_or_context)
236-
ZEND_ARG_INFO(0, wrappername)
237-
ZEND_ARG_INFO(0, optionname)
238-
ZEND_ARG_INFO(0, value)
239-
ZEND_END_ARG_INFO()
240-
241-
ZEND_BEGIN_ARG_INFO(arginfo_stream_context_set_params, 0)
242-
ZEND_ARG_INFO(0, stream_or_context)
243-
ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
244-
ZEND_END_ARG_INFO()
245-
246-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_params, 0, ZEND_RETURN_VALUE, 1)
247-
ZEND_ARG_INFO(0, stream_or_context)
248-
ZEND_END_ARG_INFO()
249-
250-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_get_default, 0, 0, 0)
251-
ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
252-
ZEND_END_ARG_INFO()
253-
254-
ZEND_BEGIN_ARG_INFO(arginfo_stream_context_set_default, 0)
255-
ZEND_ARG_INFO(0, options)
256-
ZEND_END_ARG_INFO()
257-
258-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_context_create, 0, 0, 0)
259-
ZEND_ARG_INFO(0, options) /* ARRAY_INFO(0, options, 1) */
260-
ZEND_ARG_INFO(0, params) /* ARRAY_INFO(0, params, 1) */
261-
ZEND_END_ARG_INFO()
262-
263-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_filter_prepend, 0, 0, 2)
264-
ZEND_ARG_INFO(0, stream)
265-
ZEND_ARG_INFO(0, filtername)
266-
ZEND_ARG_INFO(0, read_write)
267-
ZEND_ARG_INFO(0, filterparams)
268-
ZEND_END_ARG_INFO()
269-
270-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_filter_append, 0, 0, 2)
271-
ZEND_ARG_INFO(0, stream)
272-
ZEND_ARG_INFO(0, filtername)
273-
ZEND_ARG_INFO(0, read_write)
274-
ZEND_ARG_INFO(0, filterparams)
275-
ZEND_END_ARG_INFO()
276-
277-
ZEND_BEGIN_ARG_INFO(arginfo_stream_filter_remove, 0)
278-
ZEND_ARG_INFO(0, stream_filter)
279-
ZEND_END_ARG_INFO()
280-
281-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_get_line, 0, 0, 2)
282-
ZEND_ARG_INFO(0, stream)
283-
ZEND_ARG_INFO(0, maxlen)
284-
ZEND_ARG_INFO(0, ending)
285-
ZEND_END_ARG_INFO()
286-
287-
ZEND_BEGIN_ARG_INFO(arginfo_stream_set_blocking, 0)
288-
ZEND_ARG_INFO(0, socket)
289-
ZEND_ARG_INFO(0, mode)
290-
ZEND_END_ARG_INFO()
291-
292-
#if HAVE_SYS_TIME_H || defined(PHP_WIN32)
293-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_set_timeout, 0, 0, 2)
294-
ZEND_ARG_INFO(0, stream)
295-
ZEND_ARG_INFO(0, seconds)
296-
ZEND_ARG_INFO(0, microseconds)
297-
ZEND_END_ARG_INFO()
298-
#endif
299-
300-
ZEND_BEGIN_ARG_INFO(arginfo_stream_set_read_buffer, 0)
301-
ZEND_ARG_INFO(0, fp)
302-
ZEND_ARG_INFO(0, buffer)
303-
ZEND_END_ARG_INFO()
304-
305-
ZEND_BEGIN_ARG_INFO(arginfo_stream_set_write_buffer, 0)
306-
ZEND_ARG_INFO(0, fp)
307-
ZEND_ARG_INFO(0, buffer)
308-
ZEND_END_ARG_INFO()
309-
310-
ZEND_BEGIN_ARG_INFO(arginfo_stream_set_chunk_size, 0)
311-
ZEND_ARG_INFO(0, fp)
312-
ZEND_ARG_INFO(0, chunk_size)
313-
ZEND_END_ARG_INFO()
314-
315-
ZEND_BEGIN_ARG_INFO_EX(arginfo_stream_socket_enable_crypto, 0, 0, 2)
316-
ZEND_ARG_INFO(0, stream)
317-
ZEND_ARG_INFO(0, enable)
318-
ZEND_ARG_INFO(0, cryptokind)
319-
ZEND_ARG_INFO(0, sessionstream)
320-
ZEND_END_ARG_INFO()
321-
322-
#ifdef HAVE_SHUTDOWN
323-
ZEND_BEGIN_ARG_INFO(arginfo_stream_socket_shutdown, 0)
324-
ZEND_ARG_INFO(0, stream)
325-
ZEND_ARG_INFO(0, how)
326-
ZEND_END_ARG_INFO()
327-
#endif
328-
/* }}} */
329-
330125
static const zend_function_entry basic_functions[] = { /* {{{ */
331126
PHP_FE(constant, arginfo_constant)
332127
PHP_FE(bin2hex, arginfo_bin2hex)

ext/standard/basic_functions.stub.php

Lines changed: 151 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1175,6 +1175,147 @@ function random_int(int $min, int $max): int {}
11751175

11761176
function soundex(string $string): string|false {}
11771177

1178+
/* streamsfuncs.c */
1179+
1180+
function stream_select(?array &$read, ?array &$write, ?array &$except, ?int $tv_sec, int $tv_usec = 0): int|false {}
1181+
1182+
/** @return resource */
1183+
function stream_context_create(?array $options = null, ?array $params = null) {}
1184+
1185+
/** @param resource $context */
1186+
function stream_context_set_params($context, array $params): bool {}
1187+
1188+
/** @param resource $context */
1189+
function stream_context_get_params($context): array {}
1190+
1191+
/**
1192+
* @param resource $context
1193+
* @param array|string $param2
1194+
* @param mixed $value
1195+
*/
1196+
function stream_context_set_option($context, $param2, string $option_name = UNDEFINED, $value = UNDEFINED): bool {}
1197+
1198+
/** @param resource $stream_or_context */
1199+
function stream_context_get_options($stream_or_context): array {}
1200+
1201+
/** @return resource */
1202+
function stream_context_get_default(array $options = UNKNOWN) {}
1203+
1204+
/** @return resource */
1205+
function stream_context_set_default(array $options) {}
1206+
1207+
/**
1208+
* @param resource $stream
1209+
* @param mixed $params
1210+
* @return resource
1211+
*/
1212+
function stream_filter_prepend($stream, string $filtername, int $read_write = 0, $params = UNKNOWN) {}
1213+
1214+
/**
1215+
* @param resource $stream
1216+
* @param mixed $params
1217+
* @return resource
1218+
*/
1219+
function stream_filter_append($stream, string $filtername, int $read_write = 0, $params = UNKNOWN) {}
1220+
1221+
/** @param resource $stream_filter */
1222+
function stream_filter_remove($stream_filter): bool {}
1223+
1224+
/**
1225+
* @param resource $context
1226+
* @return resource|false
1227+
*/
1228+
function stream_socket_client(string $remote_socket, &$errno = null, &$errstr = null, float $timeout = UNKNOWN, int $flags = UNKNOWN, $context = null) {}
1229+
1230+
/**
1231+
* @param resource $context
1232+
* @return resource|false
1233+
*/
1234+
function stream_socket_server(string $local_socket, &$errno = null, &$errstr = null, int $flags = UNKNOWN, $context = null) {}
1235+
1236+
/**
1237+
* @param resource $server_socket
1238+
* @param float $timeout
1239+
* @return resource|false
1240+
*/
1241+
function stream_socket_accept($server_socket, float $timeout = UNKNOWN, &$peername = null) {}
1242+
1243+
/** @param resource $handle */
1244+
function stream_socket_get_name($handle, bool $want_peer): string|false {}
1245+
1246+
/** @param resource $socket */
1247+
function stream_socket_recvfrom($socket, int $length, int $flags = 0, &$address = null): string|false {}
1248+
1249+
/** @param resource $socket */
1250+
function stream_socket_sendto($socket, string $data, int $flags = 0, $address = null): int|false {}
1251+
1252+
/**
1253+
* @param resource $stream
1254+
* @param resource $session_stream
1255+
*/
1256+
function stream_socket_enable_crypto($stream, bool $enable, ?int $crypto_type = null, $session_stream = null): int|bool {}
1257+
1258+
#ifdef HAVE_SHUTDOWN
1259+
/** @param resource $stream */
1260+
function stream_socket_shutdown($stream, int $how): bool {}
1261+
#endif
1262+
1263+
#if HAVE_SOCKETPAIR
1264+
function stream_socket_pair(int $domain, int $type, int $protocol): array|false {}
1265+
#endif
1266+
1267+
/**
1268+
* @param resource $source
1269+
* @param resource $dest
1270+
*/
1271+
function stream_copy_to_stream($source, $dest, int $maxlength = UNKNOWN, int $position = 0): int|false {}
1272+
1273+
/** @param resource $handle */
1274+
function stream_get_contents($handle, int $maxlength = UNKNOWN, int $position = 0): string|false {}
1275+
1276+
/** @param resource $stream */
1277+
function stream_supports_lock($stream): bool {}
1278+
1279+
/** @param resource $stream */
1280+
function stream_set_write_buffer($stream, int $buffer): int {}
1281+
1282+
/** @param resource $stream */
1283+
function stream_set_read_buffer($stream, int $buffer): int {}
1284+
1285+
/** @param resource $stream */
1286+
function stream_set_blocking($stream, bool $mode): bool {}
1287+
1288+
/** @param resource $stream */
1289+
function stream_get_meta_data($stream): array {}
1290+
1291+
/** @param resource $handle */
1292+
function stream_get_line($handle, int $max_length, string $ending = ""): string|false {}
1293+
1294+
function stream_resolve_include_path(string $filename): string|false {}
1295+
1296+
function stream_get_wrappers(): array|false {}
1297+
1298+
function stream_get_transports(): array|false {}
1299+
1300+
/** @param mixed $stream */
1301+
function stream_is_local($stream): bool {}
1302+
1303+
/** @param resource $stream */
1304+
function stream_isatty($stream): bool {}
1305+
1306+
#ifdef PHP_WIN32
1307+
/** @param resource $stream */
1308+
function sapi_windows_vt100_support($stream, bool $enable): bool {}
1309+
#endif
1310+
1311+
/** @param resource $stream */
1312+
function stream_set_chunk_size($stream, int $size): int {}
1313+
1314+
#if HAVE_SYS_TIME_H || defined(PHP_WIN32)
1315+
/** @param resource $socket */
1316+
function stream_set_timeout($socket, int $seconds, int $microseconds = 0): bool {}
1317+
#endif
1318+
11781319
/* type.c */
11791320

11801321
/** @param mixed $var */
@@ -1257,6 +1398,16 @@ function get_headers(string $url, int $format = 0, $context = null): array|false
12571398

12581399
/* user_filters.c */
12591400

1401+
class php_user_filter {
1402+
public function filter($in, $out, &$consumed, $closing) {}
1403+
1404+
/** @return void */
1405+
public function onCreate() {}
1406+
1407+
/** @return void */
1408+
public function onClose() {}
1409+
}
1410+
12601411
/** @param resource $brigade */
12611412
function stream_bucket_make_writeable($brigade): ?object {}
12621413

0 commit comments

Comments
 (0)