From ad9ea5abded29402292b52000f22be122ee32059 Mon Sep 17 00:00:00 2001 From: =?utf8?q?M=C3=A1t=C3=A9=20Kocsis?= Date: Wed, 23 Oct 2019 14:46:59 +0200 Subject: [PATCH] Add stubs for various standard functions Closes GH-4851. --- ext/standard/basic_functions.c | 372 ------------------------- ext/standard/basic_functions.stub.php | 221 +++++++++++++++ ext/standard/basic_functions_arginfo.h | 307 ++++++++++++++++++++ sapi/cli/tests/004.phpt | 5 +- 4 files changed, 531 insertions(+), 374 deletions(-) diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index 8cc57e261e..fc7f4f115f 100755 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -717,378 +717,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_getimagesize, 0, 0, 1) ZEND_ARG_INFO(1, info) /* ARRAY_INFO(1, info, 1) */ ZEND_END_ARG_INFO() /* }}} */ -/* {{{ info.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_phpinfo, 0, 0, 0) - ZEND_ARG_INFO(0, what) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phpversion, 0, 0, 0) - ZEND_ARG_INFO(0, extension) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_phpcredits, 0, 0, 0) - ZEND_ARG_INFO(0, flag) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_php_sapi_name, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_php_uname, 0, 0, 0) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_php_ini_scanned_files, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_php_ini_loaded_file, 0) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ iptc.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcembed, 0, 0, 2) - ZEND_ARG_INFO(0, iptcdata) - ZEND_ARG_INFO(0, jpeg_file_name) - ZEND_ARG_INFO(0, spool) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_iptcparse, 0) - ZEND_ARG_INFO(0, iptcdata) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ levenshtein.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_levenshtein, 0, 0, 2) - ZEND_ARG_INFO(0, str1) - ZEND_ARG_INFO(0, str2) - ZEND_ARG_INFO(0, cost_ins) - ZEND_ARG_INFO(0, cost_rep) - ZEND_ARG_INFO(0, cost_del) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ link.c */ -#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) -ZEND_BEGIN_ARG_INFO(arginfo_readlink, 0) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_linkinfo, 0) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_symlink, 0) - ZEND_ARG_INFO(0, target) - ZEND_ARG_INFO(0, link) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_link, 0) - ZEND_ARG_INFO(0, target) - ZEND_ARG_INFO(0, link) -ZEND_END_ARG_INFO() -#endif -/* }}} */ -/* {{{ mail.c */ -ZEND_BEGIN_ARG_INFO(arginfo_ezmlm_hash, 0) - ZEND_ARG_INFO(0, addr) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_mail, 0, 0, 3) - ZEND_ARG_INFO(0, to) - ZEND_ARG_INFO(0, subject) - ZEND_ARG_INFO(0, message) - ZEND_ARG_INFO(0, additional_headers) - ZEND_ARG_INFO(0, additional_parameters) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ math.c */ -ZEND_BEGIN_ARG_INFO(arginfo_abs, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ceil, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_floor, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_round, 0, 0, 1) - ZEND_ARG_INFO(0, number) - ZEND_ARG_INFO(0, precision) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_sin, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_cos, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_tan, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_asin, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_acos, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atan, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atan2, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, y) - ZEND_ARG_INFO(0, x) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_sinh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_cosh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_tanh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_asinh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_acosh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_atanh, IS_DOUBLE, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_pi, IS_DOUBLE, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_finite, _IS_BOOL, 0) - ZEND_ARG_INFO(0, val) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_infinite, _IS_BOOL, 0) - ZEND_ARG_INFO(0, val) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO(arginfo_is_nan, _IS_BOOL, 0) - ZEND_ARG_INFO(0, val) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_pow, 0) - ZEND_ARG_INFO(0, base) - ZEND_ARG_INFO(0, exponent) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_exp, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_expm1, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_log1p, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1) - ZEND_ARG_INFO(0, number) - ZEND_ARG_INFO(0, base) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_log10, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqrt, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_hypot, 0) - ZEND_ARG_INFO(0, num1) - ZEND_ARG_INFO(0, num2) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_deg2rad, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_rad2deg, 0) - ZEND_ARG_INFO(0, number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_bindec, 0) - ZEND_ARG_INFO(0, binary_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_hexdec, 0) - ZEND_ARG_INFO(0, hexadecimal_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_octdec, 0) - ZEND_ARG_INFO(0, octal_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_decbin, 0) - ZEND_ARG_INFO(0, decimal_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_decoct, 0) - ZEND_ARG_INFO(0, decimal_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_dechex, 0) - ZEND_ARG_INFO(0, decimal_number) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_base_convert, 0) - ZEND_ARG_INFO(0, number) - ZEND_ARG_INFO(0, frombase) - ZEND_ARG_INFO(0, tobase) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_number_format, 0, 0, 1) - ZEND_ARG_INFO(0, number) - ZEND_ARG_INFO(0, num_decimal_places) - ZEND_ARG_INFO(0, dec_separator) - ZEND_ARG_INFO(0, thousands_separator) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_fmod, 0) - ZEND_ARG_INFO(0, x) - ZEND_ARG_INFO(0, y) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_fdiv, 0) - ZEND_ARG_INFO(0, dividend) - ZEND_ARG_INFO(0, divisor) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_intdiv, 0) - ZEND_ARG_INFO(0, dividend) - ZEND_ARG_INFO(0, divisor) -ZEND_END_ARG_INFO() -/* }}} */ - -/* {{{ microtime.c */ -#ifdef HAVE_GETTIMEOFDAY -ZEND_BEGIN_ARG_INFO_EX(arginfo_microtime, 0, 0, 0) - ZEND_ARG_INFO(0, get_as_float) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_gettimeofday, 0, 0, 0) - ZEND_ARG_INFO(0, get_as_float) -ZEND_END_ARG_INFO() -#endif - -#ifdef HAVE_GETRUSAGE -ZEND_BEGIN_ARG_INFO_EX(arginfo_getrusage, 0, 0, 0) - ZEND_ARG_INFO(0, who) -ZEND_END_ARG_INFO() -#endif -/* }}} */ -/* {{{ pack.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_pack, 0, 0, 1) - ZEND_ARG_INFO(0, format) - ZEND_ARG_VARIADIC_INFO(0, args) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_unpack, 0, 0, 2) - ZEND_ARG_INFO(0, format) - ZEND_ARG_INFO(0, input) - ZEND_ARG_INFO(0, offset) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ password.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_password_hash, 0, 0, 2) - ZEND_ARG_INFO(0, password) - ZEND_ARG_INFO(0, algo) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_password_get_info, 0, 0, 1) - ZEND_ARG_INFO(0, hash) -ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_password_needs_rehash, 0, 0, 2) - ZEND_ARG_INFO(0, hash) - ZEND_ARG_INFO(0, algo) - ZEND_ARG_INFO(0, options) -ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_password_verify, 0, 0, 2) - ZEND_ARG_INFO(0, password) - ZEND_ARG_INFO(0, hash) -ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_password_algos, 0) -ZEND_END_ARG_INFO(); -/* }}} */ -/* {{{ proc_open.c */ -#ifdef PHP_CAN_SUPPORT_PROC_OPEN -ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_terminate, 0, 0, 1) - ZEND_ARG_INFO(0, process) - ZEND_ARG_INFO(0, signal) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_proc_close, 0) - ZEND_ARG_INFO(0, process) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_proc_get_status, 0) - ZEND_ARG_INFO(0, process) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_open, 0, 0, 3) - ZEND_ARG_INFO(0, command) - ZEND_ARG_INFO(0, descriptorspec) /* ARRAY_INFO(0, descriptorspec, 1) */ - ZEND_ARG_INFO(1, pipes) /* ARRAY_INFO(1, pipes, 1) */ - ZEND_ARG_INFO(0, cwd) - ZEND_ARG_INFO(0, env) /* ARRAY_INFO(0, env, 1) */ - ZEND_ARG_INFO(0, other_options) /* ARRAY_INFO(0, other_options, 1) */ -ZEND_END_ARG_INFO() -#endif -/* }}} */ -/* {{{ quot_print.c */ -ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_decode, 0) - ZEND_ARG_INFO(0, str) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ quot_print.c */ -ZEND_BEGIN_ARG_INFO(arginfo_quoted_printable_encode, 0) - ZEND_ARG_INFO(0, str) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ mt_rand.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_srand, 0, 0, 0) - ZEND_ARG_INFO(0, seed) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0) - ZEND_ARG_INFO(0, min) - ZEND_ARG_INFO(0, max) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_mt_getrandmax, 0) -ZEND_END_ARG_INFO() -/* }}} */ -/* {{{ random.c */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_random_bytes, 0, 0, 1) - ZEND_ARG_INFO(0, length) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_random_int, 0, 0, 2) - ZEND_ARG_INFO(0, min) - ZEND_ARG_INFO(0, max) -ZEND_END_ARG_INFO() -/* }}} */ /* {{{ soundex.c */ ZEND_BEGIN_ARG_INFO(arginfo_soundex, 0) ZEND_ARG_INFO(0, str) diff --git a/ext/standard/basic_functions.stub.php b/ext/standard/basic_functions.stub.php index ed2397b7c1..8322a63fc0 100755 --- a/ext/standard/basic_functions.stub.php +++ b/ext/standard/basic_functions.stub.php @@ -742,3 +742,224 @@ function diskfreespace(string $directory) {} function realpath_cache_get(): array {} function realpath_cache_size(): int {} + +/* info.c */ + +function phpinfo(int $what = INFO_ALL): bool {} + +/** @return string|false */ +function phpversion(string $extension = UNKNOWN) {} + +function phpcredits(int $flag = CREDITS_ALL): bool {} + +/** @return string|false */ +function php_sapi_name() {} + +function php_uname(string $mode = "a"): string {} + +/** @return string|false */ +function php_ini_scanned_files() {} + +/** @return string|false */ +function php_ini_loaded_file() {} + +/* iptc.c */ + +/** @return string|bool */ +function iptcembed(string $iptcdata, string $jpeg_file_name, int $spool = 0) {} + +/** @return array|false */ +function iptcparse(string $iptcblock) {} + +/* levenshtein.c */ + +function levenshtein(string $str1, string $str2, $cost_ins = UNKNOWN, int $cost_rep = UNKNOWN, int $cost_del = UNKNOWN): int {} + +/* link.c */ + +#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) +/** @return string|false */ +function readlink(string $path) {} + +/** @return int|false */ +function linkinfo(string $path) {} + +function symlink(string $target, string $link): bool {} + +function link(string $target, string $link): bool {} +#endif + +/* mail.c */ + +function ezmlm_hash(string $str): int {} + +/** @param string|array $additional_headers */ +function mail(string $to, string $subject, string $message, $additional_headers = UNKNOWN, string $additional_parameters = ""): bool {} + +/* math.c */ + +/** + * @param int|float $number + * @return int|float + */ +function abs($number) {} + +function ceil(float $number): float {} + +function floor(float $number): float {} + +function round($number, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float {} + +function sin(float $number): float {} + +function cos(float $number): float {} + +function tan(float $number): float {} + +function asin(float $number): float {} + +function acos(float $number): float {} + +function atan(float $number): float {} + +function atanh(float $number): float {} + +function atan2(float $y, float $x): float {} + +function sinh(float $number): float {} + +function cosh(float $number): float {} + +function tanh(float $number): float {} + +function asinh(float $number): float {} + +function acosh(float $number): float {} + +function expm1(float $number): float {} + +function log1p(float $number): float {} + +function pi(): float {} + +function is_finite(float $number): bool {} + +function is_nan(float $number): bool {} + +function intdiv(int $dividend, int $divisor): int {} + +function is_infinite(float $number): bool {} + +/** @return mixed */ +function pow($base, $exp) {} + +function exp(float $number): float {} + +/** @return float|false */ +function log(float $number, float $base = M_E) {} + +function log10(float $number): float {} + +function sqrt(float $number): float {} + +function hypot(float $x, float $y): float {} + +function deg2rad(float $number): float {} + +function rad2deg(float $number): float {} + +/** @return int|float */ +function bindec(string $binary_string) {} + +/** @return int|float */ +function hexdec(string $hex_string) {} + +/** @return int|float */ +function octdec(string $octal_string) {} + +function decbin($number): string {} + +function decoct($number): string {} + +function dechex($number): string {} + +function base_convert($number, int $frombase, int $tobase): string {} + +function number_format(float $number, int $decimals = 0, ?string $decimal_point = "." , ?string $thousands_separator = ","): string {} + +function fmod(float $x, float $y): float {} + +function fdiv(float $dividend, float $divisor): float {} + +/* microtime.c */ + +#ifdef HAVE_GETTIMEOFDAY +/** @return string|float */ +function microtime(bool $get_as_float = false) {} + +/** @return array|float */ +function gettimeofday(bool $return_float = false) {} +#endif + +#ifdef HAVE_GETRUSAGE +/** @return array|false */ +function getrusage(int $who = 0) {} +#endif + +/* pack.c */ + +/** @return string|false */ +function pack(string $format, ...$args) {} + +/** @return array|false */ +function unpack(string $format, string $data, int $offset = 0) {} + +/* password.c */ + +function password_get_info(string $hash): ?array {} + +/** @return string|false */ +function password_hash(string $password, $algo, array $options = []) {} + +function password_needs_rehash(string $hash, $algo, array $options = []): bool {} + +function password_verify(string $password, string $hash): bool {} + +function password_algos(): array {} + +/* proc_open.c */ + +#ifdef PHP_CAN_SUPPORT_PROC_OPEN +/** @return resource|false */ +function proc_open($cmd, array $descriptorspec, &$pipes, ?string $cwd = null, ?array $env = null, ?array $other_options = null) {} + +/** @param resource $process */ +function proc_close($process): int {} + +/** @param resource $process */ +function proc_terminate($process, int $signal = SIGTERM): bool {} + +/** @param resource $process */ +function proc_get_status($process): array {} +#endif + +/* quot_print.c */ + +function quoted_printable_decode(string $str): string {} + +function quoted_printable_encode(string $str): string {} + +/* mt_rand.c */ + +function mt_srand(int $seed = 0, int $mode = MT_RAND_MT19937): void {} + +/** @return int|false */ +function mt_rand(int $min = 0, int $max = PHP_INT_MAX) {} + +function mt_getrandmax(): int {} + +/* random.c */ + +function random_bytes(int $length): string {} + +function random_int(int $min, int $max): int {} diff --git a/ext/standard/basic_functions_arginfo.h b/ext/standard/basic_functions_arginfo.h index 1af45c540c..6f16c42aea 100755 --- a/ext/standard/basic_functions_arginfo.h +++ b/ext/standard/basic_functions_arginfo.h @@ -949,3 +949,310 @@ ZEND_END_ARG_INFO() #define arginfo_realpath_cache_get arginfo_ob_list_handlers #define arginfo_realpath_cache_size arginfo_ob_get_level + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phpinfo, 0, 0, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, what, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_phpversion, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, extension, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_phpcredits, 0, 0, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, flag, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_php_sapi_name arginfo_ob_get_flush + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_php_uname, 0, 0, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_php_ini_scanned_files arginfo_ob_get_flush + +#define arginfo_php_ini_loaded_file arginfo_ob_get_flush + +ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcembed, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, iptcdata, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, jpeg_file_name, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, spool, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_iptcparse, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, iptcblock, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_levenshtein, 0, 2, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, str1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, str2, IS_STRING, 0) + ZEND_ARG_INFO(0, cost_ins) + ZEND_ARG_TYPE_INFO(0, cost_rep, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, cost_del, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) +ZEND_BEGIN_ARG_INFO_EX(arginfo_readlink, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, path, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) +#define arginfo_linkinfo arginfo_readlink +#endif + +#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_symlink, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, target, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, link, IS_STRING, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_SYMLINK) || defined(PHP_WIN32) +#define arginfo_link arginfo_symlink +#endif + +#define arginfo_ezmlm_hash arginfo_crc32 + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mail, 0, 3, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, to, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, subject, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, message, IS_STRING, 0) + ZEND_ARG_INFO(0, additional_headers) + ZEND_ARG_TYPE_INFO(0, additional_parameters, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_abs, 0, 0, 1) + ZEND_ARG_INFO(0, number) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_ceil, 0, 1, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#define arginfo_floor arginfo_ceil + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_round, 0, 1, IS_DOUBLE, 0) + ZEND_ARG_INFO(0, number) + ZEND_ARG_TYPE_INFO(0, precision, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_sin arginfo_ceil + +#define arginfo_cos arginfo_ceil + +#define arginfo_tan arginfo_ceil + +#define arginfo_asin arginfo_ceil + +#define arginfo_acos arginfo_ceil + +#define arginfo_atan arginfo_ceil + +#define arginfo_atanh arginfo_ceil + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_atan2, 0, 2, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, y, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, x, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#define arginfo_sinh arginfo_ceil + +#define arginfo_cosh arginfo_ceil + +#define arginfo_tanh arginfo_ceil + +#define arginfo_asinh arginfo_ceil + +#define arginfo_acosh arginfo_ceil + +#define arginfo_expm1 arginfo_ceil + +#define arginfo_log1p arginfo_ceil + +#define arginfo_pi arginfo_lcg_value + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_finite, 0, 1, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#define arginfo_is_nan arginfo_is_finite + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intdiv, 0, 2, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, dividend, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, divisor, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_is_infinite arginfo_is_finite + +ZEND_BEGIN_ARG_INFO_EX(arginfo_pow, 0, 0, 2) + ZEND_ARG_INFO(0, base) + ZEND_ARG_INFO(0, exp) +ZEND_END_ARG_INFO() + +#define arginfo_exp arginfo_ceil + +ZEND_BEGIN_ARG_INFO_EX(arginfo_log, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, base, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#define arginfo_log10 arginfo_ceil + +#define arginfo_sqrt arginfo_ceil + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_hypot, 0, 2, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, x, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, y, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#define arginfo_deg2rad arginfo_ceil + +#define arginfo_rad2deg arginfo_ceil + +ZEND_BEGIN_ARG_INFO_EX(arginfo_bindec, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, binary_string, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_hexdec, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, hex_string, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_octdec, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, octal_string, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_decbin, 0, 1, IS_STRING, 0) + ZEND_ARG_INFO(0, number) +ZEND_END_ARG_INFO() + +#define arginfo_decoct arginfo_decbin + +#define arginfo_dechex arginfo_decbin + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_base_convert, 0, 3, IS_STRING, 0) + ZEND_ARG_INFO(0, number) + ZEND_ARG_TYPE_INFO(0, frombase, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, tobase, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_number_format, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, number, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, decimals, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, decimal_point, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, thousands_separator, IS_STRING, 1) +ZEND_END_ARG_INFO() + +#define arginfo_fmod arginfo_hypot + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_fdiv, 0, 2, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, dividend, IS_DOUBLE, 0) + ZEND_ARG_TYPE_INFO(0, divisor, IS_DOUBLE, 0) +ZEND_END_ARG_INFO() + +#if defined(HAVE_GETTIMEOFDAY) +ZEND_BEGIN_ARG_INFO_EX(arginfo_microtime, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, get_as_float, _IS_BOOL, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_GETTIMEOFDAY) +ZEND_BEGIN_ARG_INFO_EX(arginfo_gettimeofday, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, return_float, _IS_BOOL, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(HAVE_GETRUSAGE) +ZEND_BEGIN_ARG_INFO_EX(arginfo_getrusage, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, who, IS_LONG, 0) +ZEND_END_ARG_INFO() +#endif + +ZEND_BEGIN_ARG_INFO_EX(arginfo_pack, 0, 0, 1) + ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0) + ZEND_ARG_VARIADIC_INFO(0, args) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_unpack, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, data, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, offset, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_get_info, 0, 1, IS_ARRAY, 1) + ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_password_hash, 0, 0, 2) + ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0) + ZEND_ARG_INFO(0, algo) + ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_needs_rehash, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0) + ZEND_ARG_INFO(0, algo) + ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_password_verify, 0, 2, _IS_BOOL, 0) + ZEND_ARG_TYPE_INFO(0, password, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, hash, IS_STRING, 0) +ZEND_END_ARG_INFO() + +#define arginfo_password_algos arginfo_ob_list_handlers + +#if defined(PHP_CAN_SUPPORT_PROC_OPEN) +ZEND_BEGIN_ARG_INFO_EX(arginfo_proc_open, 0, 0, 3) + ZEND_ARG_INFO(0, cmd) + ZEND_ARG_TYPE_INFO(0, descriptorspec, IS_ARRAY, 0) + ZEND_ARG_INFO(1, pipes) + ZEND_ARG_TYPE_INFO(0, cwd, IS_STRING, 1) + ZEND_ARG_TYPE_INFO(0, env, IS_ARRAY, 1) + ZEND_ARG_TYPE_INFO(0, other_options, IS_ARRAY, 1) +ZEND_END_ARG_INFO() +#endif + +#if defined(PHP_CAN_SUPPORT_PROC_OPEN) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_close, 0, 1, IS_LONG, 0) + ZEND_ARG_INFO(0, process) +ZEND_END_ARG_INFO() +#endif + +#if defined(PHP_CAN_SUPPORT_PROC_OPEN) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_terminate, 0, 1, _IS_BOOL, 0) + ZEND_ARG_INFO(0, process) + ZEND_ARG_TYPE_INFO(0, signal, IS_LONG, 0) +ZEND_END_ARG_INFO() +#endif + +#if defined(PHP_CAN_SUPPORT_PROC_OPEN) +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_proc_get_status, 0, 1, IS_ARRAY, 0) + ZEND_ARG_INFO(0, process) +ZEND_END_ARG_INFO() +#endif + +#define arginfo_quoted_printable_decode arginfo_base64_encode + +#define arginfo_quoted_printable_encode arginfo_base64_encode + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mt_srand, 0, 0, IS_VOID, 0) + ZEND_ARG_TYPE_INFO(0, seed, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_INFO_EX(arginfo_mt_rand, 0, 0, 0) + ZEND_ARG_TYPE_INFO(0, min, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, max, IS_LONG, 0) +ZEND_END_ARG_INFO() + +#define arginfo_mt_getrandmax arginfo_ob_get_level + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_random_bytes, 0, 1, IS_STRING, 0) + ZEND_ARG_TYPE_INFO(0, length, IS_LONG, 0) +ZEND_END_ARG_INFO() + +ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_random_int, 0, 2, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, min, IS_LONG, 0) + ZEND_ARG_TYPE_INFO(0, max, IS_LONG, 0) +ZEND_END_ARG_INFO() diff --git a/sapi/cli/tests/004.phpt b/sapi/cli/tests/004.phpt index 78158ba70a..f00f7b4fd9 100644 --- a/sapi/cli/tests/004.phpt +++ b/sapi/cli/tests/004.phpt @@ -20,11 +20,12 @@ string(45) "Exception: Function unknown() does not exist " string(42) "Exception: Function echo() does not exist " -string(119) "Function [ function phpinfo ] { +string(143) "Function [ function phpinfo ] { - Parameters [1] { - Parameter #0 [ $what ] + Parameter #0 [ int $what ] } + - Return [ bool ] } " -- 2.40.0