commit f047b5e2f98d829ecc31771359ad39fedaa58b4c
Author: Ваше Имя
+ * The string being measured for length. + *
+ * @return int<0,max> The length of the string on success, + * and 0 if the string is empty. + */ +#[Pure] +function strlen(string $string): int {} + +/** + * Binary safe string comparison + * @link https://php.net/manual/en/function.strcmp.php + * @param string $string1+ * The first string. + *
+ * @param string $string2+ * The second string. + *
+ * @return int less 0 if str1 is less than + * str2; > 0 if str1 + * is greater than str2, and 0 if they are + * equal. + */ +#[Pure] +function strcmp(string $string1, string $string2): int {} + +/** + * Binary safe string comparison of the first n characters + * @link https://php.net/manual/en/function.strncmp.php + * @param string $string1+ * The first string. + *
+ * @param string $string2+ * The second string. + *
+ * @param int $length+ * Number of characters to use in the comparison. + *
+ * @return int less 0 if str1 is less than + * str2; > 0 if str1 + * is greater than str2, and 0 if they are + * equal. + */ +#[Pure] +function strncmp(string $string1, string $string2, int $length): int {} + +/** + * Binary safe case-insensitive string comparison + * @link https://php.net/manual/en/function.strcasecmp.php + * @param string $string1+ * The first string + *
+ * @param string $string2+ * The second string + *
+ * @return int less than 0 if str1 is less than + * str2; > 0 if str1 + * is greater than str2, and 0 if they are + * equal. + */ +#[Pure] +function strcasecmp(string $string1, string $string2): int {} + +/** + * Binary safe case-insensitive string comparison of the first n characters + * @link https://php.net/manual/en/function.strncasecmp.php + * @param string $string1+ * The first string. + *
+ * @param string $string2+ * The second string. + *
+ * @param int $length+ * The length of strings to be used in the comparison. + *
+ * @return int less than 0 if str1 is less than + * str2; > 0 if str1 is + * greater than str2, and 0 if they are equal. + */ +#[Pure] +function strncasecmp(string $string1, string $string2, int $length): int {} + +/** + * The function returns {@see true} if the passed $haystack starts from the + * $needle string or {@see false} otherwise. + * + * @param string $haystack + * @param string $needle + * @return bool + * @since 8.0 + */ +#[Pure] +function str_starts_with(string $haystack, string $needle): bool {} + +/** + * The function returns {@see true} if the passed $haystack ends with the + * $needle string or {@see false} otherwise. + * + * @param string $haystack + * @param string $needle + * @return bool + * @since 8.0 + */ +#[Pure] +function str_ends_with(string $haystack, string $needle): bool {} + +/** + * Checks if $needle is found in $haystack and returns a boolean value + * (true/false) whether or not the $needle was found. + * + * @param string $haystack + * @param string $needle + * @return bool + * @since 8.0 + */ +#[Pure] +function str_contains(string $haystack, string $needle): bool {} + +/** + * @since 8.3 + */ +function str_decrement(string $string): string {} + +/** + * @since 8.3 + */ +function str_increment(string $string): string {} + +/** + * Return the current key and value pair from an array and advance the array cursor + * @link https://php.net/manual/en/function.each.php + * @param array|ArrayObject &$array+ * The input array. + *
+ * @return array the current key and value pair from the array + * array. This pair is returned in a four-element + * array, with the keys 0, 1, + * key, and value. Elements + * 0 and key contain the key name of + * the array element, and 1 and value + * contain the data. + * + *+ * If the internal pointer for the array points past the end of the + * array contents, each returns + * false. + * @removed 8.0 + */ +#[Deprecated(reason: "Use a foreach loop instead", since: "7.2")] +function each(&$array): array {} + +/** + * Sets which PHP errors are reported + * @link https://php.net/manual/en/function.error-reporting.php + * @param int|null $error_level [optional]
+ * The new error_reporting + * level. It takes on either a bitmask, or named constants. Using named + * constants is strongly encouraged to ensure compatibility for future + * versions. As error levels are added, the range of integers increases, + * so older integer-based error levels will not always behave as expected. + *
+ *+ * The available error level constants and the actual + * meanings of these error levels are described in the + * predefined constants. + *
| value | + *constant | + *
| 1 | + *+ * E_ERROR + * | + *
| 2 | + *+ * E_WARNING + * | + *
| 4 | + *+ * E_PARSE + * | + *
| 8 | + *+ * E_NOTICE + * | + *
| 16 | + *+ * E_CORE_ERROR + * | + *
| 32 | + *+ * E_CORE_WARNING + * | + *
| 64 | + *+ * E_COMPILE_ERROR + * | + *
| 128 | + *+ * E_COMPILE_WARNING + * | + *
| 256 | + *+ * E_USER_ERROR + * | + *
| 512 | + *+ * E_USER_WARNING + * | + *
| 1024 | + *+ * E_USER_NOTICE + * | + *
| 32767 | + *+ * E_ALL + * | + *
| 2048 | + *+ * E_STRICT + * | + *
| 4096 | + *+ * E_RECOVERABLE_ERROR + * | + *
| 8192 | + *+ * E_DEPRECATED + * | + *
| 16384 | + *+ * E_USER_DEPRECATED + * | + *
+ * The name of the constant. + *
+ * @param null|array|bool|int|float|string $value+ * The value of the constant. + * In PHP 5, value must be a scalar value (integer, float, string, boolean, or null). + * In PHP 7, array values are also accepted. + * It is possible to define resource constants, + * however it is not recommended and may cause unpredictable behavior. + *
+ * @param bool $case_insensitive [optional]+ * If set to true, the constant will be defined case-insensitive. + * The default behavior is case-sensitive; i.e. + * CONSTANT and Constant represent + * different values. + * Defining case-insensitive constants is deprecated as of PHP 7.3.0. + *
+ *+ * Case-insensitive constants are stored as lower-case. + *
+ * @return bool true on success or false on failure. + */ +function define( + string $constant_name, + #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: 'null|array|bool|int|float|string')] $value, + #[Deprecated(since: "7.3")] bool $case_insensitive = false +): bool {} + +/** + * Checks whether a given named constant exists + * @link https://php.net/manual/en/function.defined.php + * @param string $constant_name+ * The constant name. + *
+ * @return bool true if the named constant given by name + * has been defined, false otherwise. + */ +#[Pure(true)] +function defined(string $constant_name): bool {} + +/** + * Returns the name of the class of an object + * @link https://php.net/manual/en/function.get-class.php + * @param object $object [optional]+ * The tested object. This parameter may be omitted when inside a class. + *
+ * @return stringThe name of the class of which object is an + * instance. + * If object is omitted when inside a class, the + * name of that class is returned.
+ */ +#[Pure] +function get_class(object $object): string {} + +/** + * the "Late Static Binding" class name + * @link https://php.net/manual/en/function.get-called-class.php + * @return string + */ +#[Pure] +function get_called_class(): string {} + +/** + * Retrieves the parent class name for object or class + * @link https://php.net/manual/en/function.get-parent-class.php + * @param object|string $object_or_class [optional]+ * The tested object or class name + *
+ * @return string|falseThe name of the parent class of the class of which + * object is an instance or the name. + *
+ *+ * If the object does not have a parent false will be returned. + *
+ *+ * If called without parameter outside object, this function returns false.
+ */ +#[Pure] +function get_parent_class(object|string $object_or_class): string|false {} + +/** + * Checks if the class method exists + * @link https://php.net/manual/en/function.method-exists.php + * @param object|string $object_or_class+ * An object instance or a class name + *
+ * @param string $method+ * The method name + *
+ * @return bool true if the method given by method_name + * has been defined for the given object, false + * otherwise. + */ +#[Pure] +function method_exists($object_or_class, string $method): bool {} + +/** + * Checks if the object or class has a property + * @link https://php.net/manual/en/function.property-exists.php + * @param object|string $object_or_class+ * The class name or an object of the class to test for + *
+ * @param string $property+ * The name of the property + *
+ * @return bool true if the property exists, false if it doesn't exist or + * null in case of an error. + */ +#[Pure] +function property_exists($object_or_class, string $property): bool {} + +/** + * Checks if the trait exists + * @param string $trait Name of the trait to check + * @param bool $autoload [optional] Whether to autoload if not already loaded. + * @return bool Returns TRUE if trait exists, FALSE if not, NULL in case of an error. + * @link https://secure.php.net/manual/en/function.trait-exists.php + * @since 5.4 + */ +function trait_exists(string $trait, bool $autoload = true): bool {} + +/** + * Checks if the class has been defined + * @link https://php.net/manual/en/function.class-exists.php + * @param string $class+ * The class name. The name is matched in a case-insensitive manner. + *
+ * @param bool $autoload [optional]+ * Whether or not to call autoload by default. + *
+ * @return bool true if class_name is a defined class, + * false otherwise. + */ +function class_exists(string $class, bool $autoload = true): bool {} + +/** + * Checks if the interface has been defined + * @link https://php.net/manual/en/function.interface-exists.php + * @param string $interface+ * The interface name + *
+ * @param bool $autoload [optional]+ * Whether to call autoload or not by default. + *
+ * @return bool true if the interface given by + * interface_name has been defined, false otherwise. + * @since 5.0.2 + */ +function interface_exists(string $interface, bool $autoload = true): bool {} + +/** + * Return true if the given function has been defined + * @link https://php.net/manual/en/function.function-exists.php + * @param string $function+ * The function name, as a string. + *
+ * @return bool true if function_name exists and is a + * function, false otherwise. + * + *+ * This function will return false for constructs, such as + * include_once and echo. + */ +#[Pure(true)] +function function_exists(string $function): bool {} + +/** + * Checks if the enum has been defined + * @link https://php.net/manual/en/function.enum-exists.php + * @param string $enum
+ * The enum name. The name is matched in a case-insensitive manner. + *
+ * @param bool $autoload [optional]+ * Whether or not to call autoload by default. + *
+ * @return bool true if enum is a defined enum, + * false otherwise. + * @since 8.1 + */ +function enum_exists(string $enum, bool $autoload = true): bool {} + +/** + * Creates an alias for a class + * @link https://php.net/manual/en/function.class-alias.php + * @param string $class The original class. + * @param string $alias The alias name for the class. + * @param bool $autoload [optional] Whether to autoload if the original class is not found. + * @return bool true on success or false on failure. + */ +function class_alias(string $class, string $alias, bool $autoload = true): bool {} + +/** + * Returns an array with the names of included or required files + * @link https://php.net/manual/en/function.get-included-files.php + * @return string[] an array of the names of all files. + *+ * The script originally called is considered an "included file," so it will + * be listed together with the files referenced by + * include and family. + *
+ *+ * Files that are included or required multiple times only show up once in + * the returned array. + *
+ */ +#[Pure(true)] +function get_included_files(): array {} + +/** + * Alias of get_included_files + * @link https://php.net/manual/en/function.get-required-files.php + * @return string[] + */ +#[Pure(true)] +function get_required_files(): array {} + +/** + * checks if the object has this class as one of its parents or implements it + * @link https://php.net/manual/en/function.is-subclass-of.php + * @param object|string $object_or_class+ * A class name or an object instance + *
+ * @param string $class+ * The class name + *
+ * @param bool $allow_string [optional]+ * If this parameter set to false, string class name as object is not allowed. + * This also prevents from calling autoloader if the class doesn't exist. + *
+ * @return bool This function returns true if the object object, + * belongs to a class which is a subclass of + * class_name, false otherwise. + */ +#[Pure] +function is_subclass_of(mixed $object_or_class, string $class, bool $allow_string = true): bool {} + +/** + * Checks if the object is of this class or has this class as one of its parents + * @link https://php.net/manual/en/function.is-a.php + * @param object|string $object_or_class+ * The tested object + *
+ * @param string $class+ * The class name + *
+ * @param bool $allow_string [optional]+ * If this parameter set to FALSE, string class name as object + * is not allowed. This also prevents from calling autoloader if the class doesn't exist. + *
+ * @return bool TRUE if the object is of this class or has this class as one of + * its parents, FALSE otherwise. + */ +#[Pure] +function is_a(mixed $object_or_class, string $class, bool $allow_string = false): bool {} + +/** + * Get the default properties of the class + * @link https://php.net/manual/en/function.get-class-vars.php + * @param string $class+ * The class name + *
+ * @return array an associative array of declared properties visible from the + * current scope, with their default value. + * The resulting array elements are in the form of + * varname => value. + */ +#[Pure] +function get_class_vars(string $class): array {} + +/** + * Gets the properties of the given object + * @link https://php.net/manual/en/function.get-object-vars.php + * @param object $object+ * An object instance. + *
+ * @return array an associative array of defined object accessible non-static properties + * for the specified object in scope. If a property have + * not been assigned a value, it will be returned with a null value. + */ +#[Pure] +function get_object_vars(object $object): array {} + +/** + * Gets the class methods' names + * @link https://php.net/manual/en/function.get-class-methods.php + * @param object|string $object_or_class+ * The class name or an object instance + *
+ * @return string[] an array of method names defined for the class specified by + * class_name. In case of an error, it returns null. + */ +#[Pure] +function get_class_methods(object|string $object_or_class): array {} + +/** + * Generates a user-level error/warning/notice message + * @link https://php.net/manual/en/function.trigger-error.php + * @param string $message+ * The designated error message for this error. It's limited to 1024 + * characters in length. Any additional characters beyond 1024 will be + * truncated. + *
+ * @param int $error_level [optional]+ * The designated error type for this error. It only works with the E_USER + * family of constants, and will default to E_USER_NOTICE. + *
+ * @return bool This function returns false if wrong error_type is + * specified, true otherwise. + */ +function trigger_error(string $message, int $error_level = E_USER_NOTICE): bool {} + +/** + * Alias of trigger_error + * @link https://php.net/manual/en/function.user-error.php + * @param string $message + * @param int $error_level [optional] + * @return bool This function returns false if wrong error_type is + * specified, true otherwise. + */ +function user_error(string $message, int $error_level = E_USER_NOTICE): bool {} + +/** + * Sets a user-defined error handler function + * @link https://php.net/manual/en/function.set-error-handler.php + * @param callable|null $callback+ * The user function needs to accept two parameters: the error code, and a + * string describing the error. Then there are three optional parameters + * that may be supplied: the filename in which the error occurred, the + * line number in which the error occurred, and the context in which the + * error occurred (an array that points to the active symbol table at the + * point the error occurred). The function can be shown as: + *
+ *+ * handler + * interrno + * stringerrstr + * stringerrfile + * interrline + * arrayerrcontext + * errno + * The first parameter, errno, contains the + * level of the error raised, as an integer.
+ * @param int $error_levels [optional]+ * Can be used to mask the triggering of the + * error_handler function just like the error_reporting ini setting + * controls which errors are shown. Without this mask set the + * error_handler will be called for every error + * regardless to the setting of the error_reporting setting. + *
+ * @return callable|null a string containing the previously defined error handler (if any). If + * the built-in error handler is used null is returned. null is also returned + * in case of an error such as an invalid callback. If the previous error handler + * was a class method, this function will return an indexed array with the class + * and the method name. + */ +function set_error_handler(?callable $callback, int $error_levels = E_ALL|E_STRICT) {} + +/** + * Restores the previous error handler function + * @link https://php.net/manual/en/function.restore-error-handler.php + * @return bool This function always returns true. + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function restore_error_handler(): bool {} + +/** + * Sets a user-defined exception handler function + * @link https://php.net/manual/en/function.set-exception-handler.php + * @param callable|null $callback+ * Name of the function to be called when an uncaught exception occurs. + * This function must be defined before calling + * set_exception_handler. This handler function + * needs to accept one parameter, which will be the exception object that + * was thrown. + * NULL may be passed instead, to reset this handler to its default state. + *
+ * @return callable|null the name of the previously defined exception handler, or null on error. If + * no previous handler was defined, null is also returned. + */ +function set_exception_handler(?callable $callback) {} + +/** + * Restores the previously defined exception handler function + * @link https://php.net/manual/en/function.restore-exception-handler.php + * @return bool This function always returns true. + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function restore_exception_handler(): bool {} + +/** + * Returns an array with the name of the defined classes + * @link https://php.net/manual/en/function.get-declared-classes.php + * @return string[] an array of the names of the declared classes in the current script. + *+ * Note that depending on what extensions you have compiled or + * loaded into PHP, additional classes could be present. This means that + * you will not be able to define your own classes using these + * names. There is a list of predefined classes in the Predefined Classes section of + * the appendices. + *
+ */ +#[Pure(true)] +function get_declared_classes(): array {} + +/** + * Returns an array of all declared interfaces + * @link https://php.net/manual/en/function.get-declared-interfaces.php + * @return string[] an array of the names of the declared interfaces in the current + * script. + */ +#[Pure(true)] +function get_declared_interfaces(): array {} + +/** + * Returns an array of all declared traits + * @return array with names of all declared traits in values. Returns NULL in case of a failure. + * @link https://secure.php.net/manual/en/function.get-declared-traits.php + * @see class_uses() + * @since 5.4 + */ +#[Pure(true)] +function get_declared_traits(): array {} + +/** + * Returns an array of all defined functions + * @link https://php.net/manual/en/function.get-defined-functions.php + * @param bool $exclude_disabled [optional] Whether disabled functions should be excluded from the return value. + * @return array an multidimensional array containing a list of all defined + * functions, both built-in (internal) and user-defined. The internal + * functions will be accessible via $arr["internal"], and + * the user defined ones using $arr["user"] (see example + * below). + */ +#[Pure(true)] +function get_defined_functions(#[PhpStormStubsElementAvailable(from: '7.1')] bool $exclude_disabled = true): array {} + +/** + * Returns an array of all defined variables + * @link https://php.net/manual/en/function.get-defined-vars.php + * @return array A multidimensional array with all the variables. + */ +#[Pure(true)] +function get_defined_vars(): array {} + +/** + * Create an anonymous (lambda-style) function + * @link https://php.net/manual/en/function.create-function.php + * @param string $args+ * The function arguments. + *
+ * @param string $code+ * The function code. + *
+ * @return string|false a unique function name as a string, or false on error. + * @removed 8.0 + */ +#[Deprecated(reason: "Use anonymous functions instead", since: "7.2")] +function create_function(string $args, string $code): false|string {} + +/** + * Returns the resource type + * @link https://php.net/manual/en/function.get-resource-type.php + * @param resource $resource+ * The evaluated resource handle. + *
+ * @return string If the given handle is a resource, this function + * will return a string representing its type. If the type is not identified + * by this function, the return value will be the string + * Unknown. + */ +function get_resource_type($resource): string {} + +/** + * Returns an array with the names of all modules compiled and loaded + * @link https://php.net/manual/en/function.get-loaded-extensions.php + * @param bool $zend_extensions [optional]+ * Only return Zend extensions, if not then regular extensions, like + * mysqli are listed. Defaults to false (return regular extensions). + *
+ * @return string[] an indexed array of all the modules names. + */ +#[Pure] +function get_loaded_extensions(bool $zend_extensions = false): array {} + +/** + * Find out whether an extension is loaded + * @link https://php.net/manual/en/function.extension-loaded.php + * @param string $extension+ * The extension name. + *
+ *+ * You can see the names of various extensions by using + * phpinfo or if you're using the + * CGI or CLI version of + * PHP you can use the -m switch to + * list all available extensions: + *
+ * $ php -m + * [PHP Modules] + * xml + * tokenizer + * standard + * sockets + * session + * posix + * pcre + * overload + * mysql + * mbstring + * ctype + * [Zend Modules] + *+ * + * @return bool true if the extension identified by name + * is loaded, false otherwise. + */ +#[Pure] +function extension_loaded(string $extension): bool {} + +/** + * Returns an array with the names of the functions of a module + * @link https://php.net/manual/en/function.get-extension-funcs.php + * @param string $extension
+ * The module name. + *
+ *+ * This parameter must be in lowercase. + *
+ * @return string[]|false an array with all the functions, or false if + * module_name is not a valid extension. + */ +#[Pure] +function get_extension_funcs(string $extension): array|false {} + +/** + * Returns an associative array with the names of all the constants and their values + * @link https://php.net/manual/en/function.get-defined-constants.php + * @param bool $categorize [optional]
+ * Causing this function to return a multi-dimensional
+ * array with categories in the keys of the first dimension and constants
+ * and their values in the second dimension.
+ *
+ * define("MY_CONSTANT", 1);
+ * print_r(get_defined_constants(true));
+ *
+ * The above example will output something similar to:
+ *
+ * Array + * ( + * [Core] => Array + * ( + * [E_ERROR] => 1 + * [E_WARNING] => 2 + * [E_PARSE] => 4 + * [E_NOTICE] => 8 + * [E_CORE_ERROR] => 16 + * [E_CORE_WARNING] => 32 + * [E_COMPILE_ERROR] => 64 + * [E_COMPILE_WARNING] => 128 + * [E_USER_ERROR] => 256 + * [E_USER_WARNING] => 512 + * [E_USER_NOTICE] => 1024 + * [E_STRICT] => 2048 + * [E_RECOVERABLE_ERROR] => 4096 + * [E_DEPRECATED] => 8192 + * [E_USER_DEPRECATED] => 16384 + * [E_ALL] => 32767 + * [TRUE] => 1 + * ) + * [pcre] => Array + * ( + * [PREG_PATTERN_ORDER] => 1 + * [PREG_SET_ORDER] => 2 + * [PREG_OFFSET_CAPTURE] => 256 + * [PREG_SPLIT_NO_EMPTY] => 1 + * [PREG_SPLIT_DELIM_CAPTURE] => 2 + * [PREG_SPLIT_OFFSET_CAPTURE] => 4 + * [PREG_GREP_INVERT] => 1 + * ) + * [user] => Array + * ( + * [MY_CONSTANT] => 1 + * ) + * ) + *+ * + * @return array + */ +#[Pure(true)] +function get_defined_constants(bool $categorize = false): array {} + +/** + * Generates a backtrace + * @link https://php.net/manual/en/function.debug-backtrace.php + * @param int $options [optional]
+ * As of 5.3.6, this parameter is a bitmask for the following options:
+ * debug_backtrace options + *| DEBUG_BACKTRACE_PROVIDE_OBJECT | + *+ * Whether or not to populate the "object" index. + * | + *
| DEBUG_BACKTRACE_IGNORE_ARGS | + *+ * Whether or not to omit the "args" index, and thus all the function/method arguments, + * to save memory. + * | + *
+ * Before 5.3.6, the only values recognized are true or false, which are the same as + * setting or not setting the DEBUG_BACKTRACE_PROVIDE_OBJECT option respectively. + *
+ * @param int $limit [optional]+ * As of 5.4.0, this parameter can be used to limit the number of stack frames returned. + * By default (limit=0) it returns all stack frames. + *
+ * @return arrayan array of associative arrays. The possible returned elements + * are as follows: + *
+ *+ * Possible returned elements from debug_backtrace + *
+ *| Name | + *Type | + *Description | + *
| function | + *string | + *+ * The current function name. See also + * __FUNCTION__. + * | + *
| line | + *integer | + *+ * The current line number. See also + * __LINE__. + * | + *
| file | + *string | + *+ * The current file name. See also + * __FILE__. + * | + *
| class | + *string | + *+ * The current class name. See also + * __CLASS__ + * | + *
| object | + *object | + *+ * The current object. + * | + *
| type | + *string | + *+ * The current call type. If a method call, "->" is returned. If a static + * method call, "::" is returned. If a function call, nothing is returned. + * | + *
| args | + *array | + *+ * If inside a function, this lists the functions arguments. If + * inside an included file, this lists the included file name(s). + * | + *
+ * As of 5.3.6, this parameter is a bitmask for the following options: + * debug_print_backtrace options + *
| DEBUG_BACKTRACE_IGNORE_ARGS | + *+ * Whether or not to omit the "args" index, and thus all the function/method arguments, + * to save memory. + * | + *
+ * As of 5.4.0, this parameter can be used to limit the number of stack frames printed. + * By default (limit = 0) it prints all stack frames. + *
+ * @return void + */ +function debug_print_backtrace( + int $options = 0, + #[PhpStormStubsElementAvailable(from: '7.0')] int $limit = 0 +): void {} + +/** + * Forces collection of any existing garbage cycles + * @link https://php.net/manual/en/function.gc-collect-cycles.php + * @return int number of collected cycles. + */ +function gc_collect_cycles(): int {} + +/** + * Returns status of the circular reference collector + * @link https://php.net/manual/en/function.gc-enabled.php + * @return bool true if the garbage collector is enabled, false otherwise. + */ +#[Pure(true)] +function gc_enabled(): bool {} + +/** + * Activates the circular reference collector + * @link https://php.net/manual/en/function.gc-enable.php + * @return void + */ +function gc_enable(): void {} + +/** + * Deactivates the circular reference collector + * @link https://php.net/manual/en/function.gc-disable.php + * @return void + */ +function gc_disable(): void {} + +/** + * Gets information about the garbage collector + * @link https://php.net/manual/en/function.gc-status.php + * @return int[] associative array with the following elements: + *+ * + * If defined, this will cause get_resources() to only return resources of the given type. A list of resource types is available. + * + * If the string Unknown is provided as the type, then only resources that are of an unknown type will be returned. + * + * If omitted, all resources will be returned. + *
+ * @return resource[] Returns an array of currently active resources, indexed by resource number. + * @since 7.0 + */ +#[Pure(true)] +function get_resources(?string $type): array {} diff --git a/phpstorm-stubs/Core/Core_c.php b/phpstorm-stubs/Core/Core_c.php new file mode 100644 index 0000000..fd69f1f --- /dev/null +++ b/phpstorm-stubs/Core/Core_c.php @@ -0,0 +1,1153 @@ + + */ +interface Traversable extends iterable {} + +/** + * Interface to create an external Iterator. + * @link https://php.net/manual/en/class.iteratoraggregate.php + * @template TKey + * @template-covariant TValue + * @template-implements Traversable+ * An offset to check for. + *
+ * @return bool true on success or false on failure. + * + *+ * The return value will be casted to boolean if non-boolean was returned. + */ + #[TentativeType] + public function offsetExists(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $offset): bool; + + /** + * Offset to retrieve + * @link https://php.net/manual/en/arrayaccess.offsetget.php + * @param mixed $offset
+ * The offset to retrieve. + *
+ * @return TValue Can return all value types. + */ + #[TentativeType] + public function offsetGet(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $offset): mixed; + + /** + * Offset to set + * @link https://php.net/manual/en/arrayaccess.offsetset.php + * @param TKey $offset+ * The offset to assign the value to. + *
+ * @param TValue $value+ * The value to set. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value + ): void; + + /** + * Offset to unset + * @link https://php.net/manual/en/arrayaccess.offsetunset.php + * @param TKey $offset+ * The offset to unset. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $offset): void; +} + +/** + * Interface for customized serializing.+ * Returns the exception code as integer in + * {@see Exception} but possibly as other type in + * {@see Exception} descendants (for example as + * string in {@see PDOException}). + *
+ * @since 7.0 + */ + public function getCode(); + + /** + * Gets the file in which the exception occurred + * @link https://php.net/manual/en/throwable.getfile.php + * @return string Returns the name of the file from which the object was thrown. + * @since 7.0 + */ + public function getFile(): string; + + /** + * Gets the line on which the object was instantiated + * @link https://php.net/manual/en/throwable.getline.php + * @return int Returns the line number where the thrown object was instantiated. + * @since 7.0 + */ + public function getLine(): int; + + /** + * Gets the stack trace + * @link https://php.net/manual/en/throwable.gettrace.php + * @return array+ * Returns the stack trace as an array in the same format as + * {@see debug_backtrace()}. + *
+ * @since 7.0 + */ + public function getTrace(): array; + + /** + * Gets the stack trace as a string + * @link https://php.net/manual/en/throwable.gettraceasstring.php + * @return string Returns the stack trace as a string. + * @since 7.0 + */ + public function getTraceAsString(): string; + + /** + * Returns the previous Throwable + * @link https://php.net/manual/en/throwable.getprevious.php + * @return null|Throwable Returns the previous {@see Throwable} if available, or NULL otherwise. + * @since 7.0 + */ + #[LanguageLevelTypeAware(['8.0' => 'Throwable|null'], default: '')] + public function getPrevious(); + + /** + * Gets a string representation of the thrown object + * @link https://php.net/manual/en/throwable.tostring.php + * @return stringReturns the string representation of the thrown object.
+ * @since 7.0 + */ + public function __toString(); +} + +/** + * Exception is the base class for + * all Exceptions. + * @link https://php.net/manual/en/class.exception.php + */ +class Exception implements Throwable +{ + /** The error message */ + protected $message; + + /** The error code */ + protected $code; + + /** The filename where the error happened */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + protected $file; + + /** The line where the error happened */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + protected $line; + + /** + * Clone the exception + * Tries to clone the Exception, which results in Fatal error. + * @link https://php.net/manual/en/exception.clone.php + * @return void + */ + #[PhpStormStubsElementAvailable(from: "5.4", to: "8.0")] + final private function __clone(): void {} + + /** + * Clone the exception + * Tries to clone the Exception, which results in Fatal error. + * @link https://php.net/manual/en/exception.clone.php + * @return void + */ + #[PhpStormStubsElementAvailable("8.1")] + private function __clone(): void {} + + /** + * Construct the exception. Note: The message is NOT binary safe. + * @link https://php.net/manual/en/exception.construct.php + * @param string $message [optional] The Exception message to throw. + * @param int $code [optional] The Exception code. + * @param null|Throwable $previous [optional] The previous throwable used for the exception chaining. + */ + #[Pure] + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $message = "", + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $code = 0, + #[LanguageLevelTypeAware(['8.0' => 'Throwable|null'], default: 'Throwable')] $previous = null + ) {} + + /** + * Gets the Exception message + * @link https://php.net/manual/en/exception.getmessage.php + * @return string the Exception message as a string. + */ + #[Pure] + final public function getMessage(): string {} + + /** + * Gets the Exception code + * @link https://php.net/manual/en/exception.getcode.php + * @return mixed|int the exception code as integer in + * Exception but possibly as other type in + * Exception descendants (for example as + * string in PDOException). + */ + #[Pure] + final public function getCode() {} + + /** + * Gets the file in which the exception occurred + * @link https://php.net/manual/en/exception.getfile.php + * @return string the filename in which the exception was created. + */ + #[Pure] + final public function getFile(): string {} + + /** + * Gets the line in which the exception occurred + * @link https://php.net/manual/en/exception.getline.php + * @return int the line number where the exception was created. + */ + #[Pure] + final public function getLine(): int {} + + /** + * Gets the stack trace + * @link https://php.net/manual/en/exception.gettrace.php + * @return array the Exception stack trace as an array. + */ + #[Pure] + final public function getTrace(): array {} + + /** + * Returns previous Exception + * @link https://php.net/manual/en/exception.getprevious.php + * @return null|Throwable Returns the previous {@see Throwable} if available, or NULL otherwise. + * or null otherwise. + */ + #[Pure] + final public function getPrevious(): ?Throwable {} + + /** + * Gets the stack trace as a string + * @link https://php.net/manual/en/exception.gettraceasstring.php + * @return string the Exception stack trace as a string. + */ + #[Pure] + final public function getTraceAsString(): string {} + + /** + * String representation of the exception + * @link https://php.net/manual/en/exception.tostring.php + * @return string the string representation of the exception. + */ + #[TentativeType] + public function __toString(): string {} + + #[TentativeType] + public function __wakeup(): void {} +} + +/** + * Error is the base class for all internal PHP error exceptions. + * @link https://php.net/manual/en/class.error.php + * @since 7.0 + */ +class Error implements Throwable +{ + /** The error message */ + protected $message; + + /** The error code */ + protected $code; + + /** The filename where the error happened */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + protected $file; + + /** The line where the error happened */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + protected $line; + + /** + * Construct the error object. + * @link https://php.net/manual/en/error.construct.php + * @param string $message [optional] The Error message to throw. + * @param int $code [optional] The Error code. + * @param null|Throwable $previous [optional] The previous throwable used for the exception chaining. + */ + #[Pure] + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $message = "", + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $code = 0, + #[LanguageLevelTypeAware(['8.0' => 'Throwable|null'], default: 'Throwable')] $previous = null + ) {} + + /*** + * Gets the message + * @link https://php.net/manual/en/throwable.getmessage.php + * @return string + * @since 7.0 + */ + final public function getMessage(): string {} + + /** + * Gets the exception code + * @link https://php.net/manual/en/throwable.getcode.php + * @return int+ * Returns the exception code as integer in + * {@see Exception} but possibly as other type in + * {@see Exception} descendants (for example as + * string in {@see PDOException}). + *
+ * @since 7.0 + */ + final public function getCode() {} + + /** + * Gets the file in which the exception occurred + * @link https://php.net/manual/en/throwable.getfile.php + * @return string Returns the name of the file from which the object was thrown. + * @since 7.0 + */ + final public function getFile(): string {} + + /** + * Gets the line on which the object was instantiated + * @link https://php.net/manual/en/throwable.getline.php + * @return int Returns the line number where the thrown object was instantiated. + * @since 7.0 + */ + final public function getLine(): int {} + + /** + * Gets the stack trace + * @link https://php.net/manual/en/throwable.gettrace.php + * @return array+ * Returns the stack trace as an array in the same format as + * {@see debug_backtrace()}. + *
+ * @since 7.0 + */ + final public function getTrace(): array {} + + /** + * Gets the stack trace as a string + * @link https://php.net/manual/en/throwable.gettraceasstring.php + * @return string Returns the stack trace as a string. + * @since 7.0 + */ + final public function getTraceAsString(): string {} + + /** + * Returns the previous Throwable + * @link https://php.net/manual/en/throwable.getprevious.php + * @return null|Throwable Returns the previous {@see Throwable} if available, or NULL otherwise. + * @since 7.0 + */ + final public function getPrevious(): ?Throwable {} + + /** + * Gets a string representation of the thrown object + * @link https://php.net/manual/en/throwable.tostring.php + * @return stringReturns the string representation of the thrown object.
+ * @since 7.0 + */ + public function __toString(): string {} + + /** + * Clone the error + * Error can not be clone, so this method results in fatal error. + * @return void + * @link https://php.net/manual/en/error.clone.php + */ + #[PhpStormStubsElementAvailable(from: "7.0", to: "8.0")] + final private function __clone(): void {} + + /** + * Clone the error + * Error can not be clone, so this method results in fatal error. + * @return void + * @link https://php.net/manual/en/error.clone.php + */ + #[PhpStormStubsElementAvailable('8.1')] + private function __clone(): void {} + + #[TentativeType] + public function __wakeup(): void {} +} + +class ValueError extends Error {} + +/** + * There are three scenarios where a TypeError may be thrown. + * The first is where the argument type being passed to a function does not match its corresponding declared + * parameter type. The second is where a value being returned from a function does not match the declared function return type. The third is where an + * invalid number of arguments are passed to a built-in PHP function (strict mode only). + * @link https://php.net/manual/en/class.typeerror.php + * @since 7.0 + */ +class TypeError extends Error {} + +/** + * ParseError is thrown when an error occurs while parsing PHP code, such as when {@see eval()} is called. + * @link https://php.net/manual/en/class.parseerror.php + * @since 7.0 + */ +class ParseError extends CompileError {} + +/** + * ArgumentCountError is thrown when too few arguments are passed to a user + * defined routine. + * + * @since 7.1 + * @see https://php.net/migration71.incompatible#migration71.incompatible.too-few-arguments-exception + */ +class ArgumentCountError extends TypeError {} + +/** + * ArithmeticError is thrown when an error occurs while performing mathematical operations. + * In PHP 7.0, these errors include attempting to perform a bitshift by a negative amount, + * and any call to {@see intdiv()} that would result in a value outside the possible bounds of an integer. + * @link https://php.net/manual/en/class.arithmeticerror.php + * @since 7.0 + */ +class ArithmeticError extends Error {} + +/** + * Class CompileError + * @link https://secure.php.net/manual/en/class.compileerror.php + * @since 7.3 + */ +class CompileError extends Error {} + +/** + * DivisionByZeroError is thrown when an attempt is made to divide a number by zero. + * @link https://php.net/manual/en/class.divisionbyzeroerror.php + * @since 7.0 + */ +class DivisionByZeroError extends ArithmeticError {} + +/** + * @since 8.0 + */ +class UnhandledMatchError extends Error {} + +/** + * An Error Exception. + * @link https://php.net/manual/en/class.errorexception.php + */ +class ErrorException extends Exception +{ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + protected $severity; + + /** + * Constructs the exception + * @link https://php.net/manual/en/errorexception.construct.php + * @param string $message [optional] The Exception message to throw. + * @param int $code [optional] The Exception code. + * @param int $severity [optional] The severity level of the exception. + * @param string $filename [optional] The filename where the exception is thrown. + * @param int $line [optional] The line number where the exception is thrown. + * @param Exception $previous [optional] The previous exception used for the exception chaining. + */ + #[Pure] + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $message = "", + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $code = 0, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $severity = 1, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $filename = null, + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $line = null, + #[LanguageLevelTypeAware(['8.0' => 'Throwable|null'], default: 'Throwable')] $previous = null + ) {} + + /** + * Gets the exception severity + * @link https://php.net/manual/en/errorexception.getseverity.php + * @return int the severity level of the exception. + */ + final public function getSeverity(): int {} +} + +/** + * Class used to represent anonymous functions. + *Anonymous functions, implemented in PHP 5.3, yield objects of this type. + * This fact used to be considered an implementation detail, but it can now be relied upon. + * Starting with PHP 5.4, this class has methods that allow further control of the anonymous function after it has been created. + *
Besides the methods listed here, this class also has an __invoke method. + * This is for consistency with other classes that implement calling magic, as this method is not used for calling the function. + * @link https://secure.php.net/manual/en/class.closure.php + */ +final class Closure +{ + /** + * This method exists only to disallow instantiation of the Closure class. + * Objects of this class are created in the fashion described on the anonymous functions page. + * @link https://secure.php.net/manual/en/closure.construct.php + */ + private function __construct() {} + + /** + * This is for consistency with other classes that implement calling magic, + * as this method is not used for calling the function. + * @param mixed ...$_ [optional] + * @return mixed + * @link https://secure.php.net/manual/en/class.closure.php + */ + public function __invoke(...$_) {} + + /** + * Duplicates the closure with a new bound object and class scope + * @link https://secure.php.net/manual/en/closure.bindto.php + * @param object|null $newThis The object to which the given anonymous function should be bound, or NULL for the closure to be unbound. + * @param object|class-string|null $newScope The class scope to which associate the closure is to be associated, or 'static' to keep the current one. + * If an object is given, the type of the object will be used instead. + * This determines the visibility of protected and private methods of the bound object. + * @return Closure|null Returns the newly created Closure object or null on failure + */ + #[Pure] + public function bindTo(?object $newThis, object|string|null $newScope = 'static'): ?Closure {} + + /** + * This method is a static version of Closure::bindTo(). + * See the documentation of that method for more information. + * @link https://secure.php.net/manual/en/closure.bind.php + * @param Closure $closure The anonymous functions to bind. + * @param object|null $newThis The object to which the given anonymous function should be bound, or NULL for the closure to be unbound. + * @param object|class-string|null $newScope The class scope to which associate the closure is to be associated, or 'static' to keep the current one. + * If an object is given, the type of the object will be used instead. + * This determines the visibility of protected and private methods of the bound object. + * @return Closure|null Returns the newly created Closure object or null on failure + */ + #[Pure] + public static function bind(Closure $closure, ?object $newThis, object|string|null $newScope = 'static'): ?Closure {} + + /** + * Temporarily binds the closure to newthis, and calls it with any given parameters. + * @link https://php.net/manual/en/closure.call.php + * @param object $newThis The object to bind the closure to for the duration of the call. + * @param mixed $args [optional] Zero or more parameters, which will be given as parameters to the closure. + * @return mixed + * @since 7.0 + */ + public function call(object $newThis, mixed ...$args): mixed {} + + /** + * @param callable $callback + * @return Closure + * @since 7.1 + */ + public static function fromCallable(callable $callback): Closure {} +} + +/** + * Classes implementing Countable can be used with the + * count function. + * @link https://php.net/manual/en/class.countable.php + */ +interface Countable +{ + /** + * Count elements of an object + * @link https://php.net/manual/en/countable.count.php + * @return int<0,max> The custom count as an integer. + *
+ * The return value is cast to an integer. + *
+ */ + #[TentativeType] + public function count(): int; +} + +/** + * 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 + * WeakReference::create(). + */ + 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 WeakReferenceEnum
+ * case, if any. If there is no matching case defined, it will throw a
+ * ValueError.
+ * @param int|string $value
+ * @throws ValueError
+ * @throws TypeError
+ * @return static
+ * @link https://www.php.net/manual/en/backedenum.from.php
+ */
+ #[Pure]
+ public static function from(int|string $value): static;
+
+ /**
+ * Translates a string or int into the corresponding Enum
+ * case, if any. If there is no matching case defined, it will return null.
+ * @param int|string $value
+ * @return static|null A case instance of this enumeration, or null if not
+ * found.
+ * @link https://www.php.net/manual/en/backedenum.tryfrom.php
+ */
+ #[Pure]
+ public static function tryFrom(int|string $value): ?static;
+}
+
+/**
+ * @since 8.1
+ * @internal
+ *
+ * Internal interface to ensure precise type inference
+ */
+interface IntBackedEnum extends BackedEnum
+{
+ public readonly int $value;
+
+ /**
+ * @param int $value
+ * @return static
+ */
+ #[Pure]
+ public static function from(int $value): static;
+
+ /**
+ * @param int $value
+ * @return static|null
+ */
+ #[Pure]
+ public static function tryFrom(int $value): ?static;
+}
+
+/**
+ * @since 8.1
+ * @internal
+ *
+ * Internal interface to ensure precise type inference
+ */
+interface StringBackedEnum extends BackedEnum
+{
+ public readonly string $value;
+
+ #[Pure]
+ public static function from(string $value): static;
+
+ #[Pure]
+ public static function tryFrom(string $value): ?static;
+}
+
+/**
+ * @since 8.1
+ *
+ * @template TStart
+ * @template TResume
+ * @template TReturn
+ * @template TSuspend
+ */
+final class Fiber
+{
+ /**
+ * @param callable $callback Function to invoke when starting the fiber.
+ */
+ public function __construct(callable $callback) {}
+
+ /**
+ * Starts execution of the fiber. Returns when the fiber suspends or terminates.
+ *
+ * @param TStart ...$args Arguments passed to fiber function.
+ *
+ * @return TSuspend|null Value from the first suspension point or NULL if the fiber returns.
+ *
+ * @throws FiberError If the fiber has already been started.
+ * @throws Throwable If the fiber callable throws an uncaught exception.
+ */
+ public function start(mixed ...$args): mixed {}
+
+ /**
+ * Resumes the fiber, returning the given value from {@see Fiber::suspend()}.
+ * Returns when the fiber suspends or terminates.
+ *
+ * @param TResume $value
+ *
+ * @return TSuspend|null Value from the next suspension point or NULL if the fiber returns.
+ *
+ * @throws FiberError If the fiber has not started, is running, or has terminated.
+ * @throws Throwable If the fiber callable throws an uncaught exception.
+ */
+ public function resume(mixed $value = null): mixed {}
+
+ /**
+ * Throws the given exception into the fiber from {@see Fiber::suspend()}.
+ * Returns when the fiber suspends or terminates.
+ *
+ * @param Throwable $exception
+ *
+ * @return TSuspend|null Value from the next suspension point or NULL if the fiber returns.
+ *
+ * @throws FiberError If the fiber has not started, is running, or has terminated.
+ * @throws Throwable If the fiber callable throws an uncaught exception.
+ */
+ public function throw(Throwable $exception): mixed {}
+
+ /**
+ * @return bool True if the fiber has been started.
+ */
+ public function isStarted(): bool {}
+
+ /**
+ * @return bool True if the fiber is suspended.
+ */
+ public function isSuspended(): bool {}
+
+ /**
+ * @return bool True if the fiber is currently running.
+ */
+ public function isRunning(): bool {}
+
+ /**
+ * @return bool True if the fiber has completed execution (returned or threw).
+ */
+ public function isTerminated(): bool {}
+
+ /**
+ * @return TReturn Return value of the fiber callback. NULL is returned if the fiber does not have a return statement.
+ *
+ * @throws FiberError If the fiber has not terminated or the fiber threw an exception.
+ */
+ public function getReturn(): mixed {}
+
+ /**
+ * @return Fiber|null Returns the currently executing fiber instance or NULL if in {main}.
+ */
+ public static function getCurrent(): ?Fiber {}
+
+ /**
+ * Suspend execution of the fiber. The fiber may be resumed with {@see Fiber::resume()} or {@see Fiber::throw()}.
+ *
+ * Cannot be called from {main}.
+ *
+ * @param TSuspend $value Value to return from {@see Fiber::resume()} or {@see Fiber::throw()}.
+ *
+ * @return TResume Value provided to {@see Fiber::resume()}.
+ *
+ * @throws FiberError Thrown if not within a fiber (i.e., if called from {main}).
+ * @throws Throwable Exception provided to {@see Fiber::throw()}.
+ */
+ public static function suspend(mixed $value = null): mixed {}
+}
+
+/**
+ * @since 8.1
+ */
+final class FiberError extends Error
+{
+ public function __construct() {}
+}
+
+/**
+ * @since 8.1
+ */
+#[Attribute(Attribute::TARGET_METHOD)]
+final class ReturnTypeWillChange
+{
+ public function __construct() {}
+}
+
+/**
+ * @since 8.2
+ */
+#[Attribute(Attribute::TARGET_CLASS)]
+final class AllowDynamicProperties
+{
+ public function __construct() {}
+}
+
+/**
+ * @since 8.2
+ */
+#[Attribute(Attribute::TARGET_PARAMETER)]
+final class SensitiveParameter
+{
+ public function __construct() {}
+}
+
+/**
+ * @since 8.2
+ */
+final class SensitiveParameterValue
+{
+ private readonly mixed $value;
+
+ public function __construct(mixed $value) {}
+
+ public function getValue(): mixed {}
+
+ public function __debugInfo(): array {}
+}
+
+/**
+ * @since 8.3
+ */
+#[Attribute(Attribute::TARGET_METHOD)]
+final class Override
+{
+ public function __construct() {}
+}
diff --git a/phpstorm-stubs/Core/Core_d.php b/phpstorm-stubs/Core/Core_d.php
new file mode 100755
index 0000000..48819fb
--- /dev/null
+++ b/phpstorm-stubs/Core/Core_d.php
@@ -0,0 +1,277 @@
+set_error_handler), the application aborts as it
+ * was an E_ERROR.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_RECOVERABLE_ERROR', 4096);
+
+/**
+ * Run-time warnings (non-fatal errors). Execution of the script is not
+ * halted.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_WARNING', 2);
+
+/**
+ * Compile-time parse errors. Parse errors should only be generated by
+ * the parser.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_PARSE', 4);
+
+/**
+ * Run-time notices. Indicate that the script encountered something that
+ * could indicate an error, but could also happen in the normal course of
+ * running a script.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_NOTICE', 8);
+
+/**
+ * Enable to have PHP suggest changes
+ * to your code which will ensure the best interoperability
+ * and forward compatibility of your code.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_STRICT', 2048);
+
+/**
+ * Run-time notices. Enable this to receive warnings about code
+ * that will not work in future versions.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_DEPRECATED', 8192);
+
+/**
+ * Fatal errors that occur during PHP's initial startup. This is like an
+ * E_ERROR, except it is generated by the core of PHP.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_CORE_ERROR', 16);
+
+/**
+ * Warnings (non-fatal errors) that occur during PHP's initial startup.
+ * This is like an E_WARNING, except it is generated
+ * by the core of PHP.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_CORE_WARNING', 32);
+
+/**
+ * Fatal compile-time errors. This is like an E_ERROR,
+ * except it is generated by the Zend Scripting Engine.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_COMPILE_ERROR', 64);
+
+/**
+ * Compile-time warnings (non-fatal errors). This is like an
+ * E_WARNING, except it is generated by the Zend
+ * Scripting Engine.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_COMPILE_WARNING', 128);
+
+/**
+ * User-generated error message. This is like an
+ * E_ERROR, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_USER_ERROR', 256);
+
+/**
+ * User-generated warning message. This is like an
+ * E_WARNING, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_USER_WARNING', 512);
+
+/**
+ * User-generated notice message. This is like an
+ * E_NOTICE, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_USER_NOTICE', 1024);
+
+/**
+ * User-generated warning message. This is like an
+ * E_DEPRECATED, except it is generated in PHP code by
+ * using the PHP function trigger_error.
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_USER_DEPRECATED', 16384);
+
+/**
+ * All errors and warnings, as supported, except of level
+ * E_STRICT prior to PHP 5.4.0.
+ * Value of E_ALL is 32767 since PHP 5.4.x,
+ * 30719 in PHP 5.3.x, 6143 in PHP 5.2.x, 2047 previously
+ * @link https://php.net/manual/en/errorfunc.constants.php
+ */
+define('E_ALL', 32767);
+define('DEBUG_BACKTRACE_PROVIDE_OBJECT', 1);
+define('DEBUG_BACKTRACE_IGNORE_ARGS', 2);
+define('S_MEMORY', 1);
+define('S_VARS', 4);
+define('S_FILES', 8);
+define('S_INCLUDE', 16);
+define('S_SQL', 32);
+define('S_EXECUTOR', 64);
+define('S_MAIL', 128);
+define('S_SESSION', 256);
+define('S_MISC', 2);
+define('S_INTERNAL', 536870912);
+define('S_ALL', 511);
+
+define('true', (bool)1, true);
+define('false', (bool)0, true);
+define('null', null, true);
+define('ZEND_THREAD_SAFE', false);
+define('ZEND_DEBUG_BUILD', false);
+define('PHP_WINDOWS_VERSION_BUILD', 0);
+define('PHP_WINDOWS_VERSION_MAJOR', 0);
+define('PHP_WINDOWS_VERSION_MINOR', 0);
+define('PHP_WINDOWS_VERSION_PLATFORM', 0);
+define('PHP_WINDOWS_VERSION_PRODUCTTYPE', 0);
+define('PHP_WINDOWS_VERSION_SP_MAJOR', 0);
+define('PHP_WINDOWS_VERSION_SP_MINOR', 0);
+define('PHP_WINDOWS_VERSION_SUITEMASK', 0);
+define('PHP_WINDOWS_NT_DOMAIN_CONTROLLER', 2);
+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);
+define('PHP_MINOR_VERSION', 3);
+define('PHP_RELEASE_VERSION', 6);
+define('PHP_EXTRA_VERSION', "-13ubuntu3.2");
+define('PHP_VERSION_ID', 50306);
+define('PHP_ZTS', 0);
+define('PHP_DEBUG', 0);
+define('PHP_OS', "Linux");
+/**
+ * The operating system family PHP was built for. Either of 'Windows', 'BSD', 'Darwin', 'Solaris', 'Linux' or 'Unknown'. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+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");
+define('PEAR_EXTENSION_DIR', "/usr/lib/php5/20090626");
+define('PHP_EXTENSION_DIR', "/usr/lib/php5/20090626");
+/**
+ * Specifies where the binaries were installed into.
+ * @link https://php.net/manual/en/reserved.constants.php
+ */
+define('PHP_BINARY', '/usr/local/php/bin/php');
+define('PHP_PREFIX', "/usr");
+define('PHP_BINDIR', "/usr/bin");
+define('PHP_LIBDIR', "/usr/lib/php5");
+define('PHP_DATADIR', "/usr/share");
+define('PHP_SYSCONFDIR', "/etc");
+define('PHP_LOCALSTATEDIR', "/var");
+define('PHP_CONFIG_FILE_PATH', "/etc/php5/cli");
+define('PHP_CONFIG_FILE_SCAN_DIR', "/etc/php5/cli/conf.d");
+define('PHP_SHLIB_SUFFIX', "so");
+define('PHP_EOL', "\n");
+define('SUHOSIN_PATCH', 1);
+define('SUHOSIN_PATCH_VERSION', "0.9.10");
+define('PHP_MAXPATHLEN', 4096);
+define('PHP_INT_MAX', 9223372036854775807);
+define('PHP_INT_MIN', -9223372036854775808);
+define('PHP_INT_SIZE', 8);
+/**
+ * Number of decimal digits that can be rounded into a float and back without precision loss. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_DIG', 15);
+/**
+ * Smallest representable positive number x, so that x + 1.0 != 1.0. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_EPSILON', 2.2204460492503e-16);
+
+/**
+ * Largest representable floating point number. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_MAX', 1.7976931348623e+308);
+/**
+ * Smallest representable floating point number. Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PHP_FLOAT_MIN', 2.2250738585072e-308);
+define('ZEND_MULTIBYTE', 0);
+define('PHP_OUTPUT_HANDLER_START', 1);
+define('PHP_OUTPUT_HANDLER_CONT', 2);
+define('PHP_OUTPUT_HANDLER_END', 4);
+define('UPLOAD_ERR_OK', 0);
+define('UPLOAD_ERR_INI_SIZE', 1);
+define('UPLOAD_ERR_FORM_SIZE', 2);
+define('UPLOAD_ERR_PARTIAL', 3);
+define('UPLOAD_ERR_NO_FILE', 4);
+define('UPLOAD_ERR_NO_TMP_DIR', 6);
+define('UPLOAD_ERR_CANT_WRITE', 7);
+define('UPLOAD_ERR_EXTENSION', 8);
+define('STDIN', fopen('php://stdin', 'r'));
+define('STDOUT', fopen('php://stdout', 'w'));
+define('STDERR', fopen('php://stderr', 'w'));
+
+define('PHP_FD_SETSIZE', 1024);
+
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_WRITE', 0);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FLUSH', 4);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_CLEAN', 2);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FINAL', 8);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_CLEANABLE', 16);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_FLUSHABLE', 32);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_REMOVABLE', 64);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_STDFLAGS', 112);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_STARTED', 4096);
+/** @link https://php.net/manual/en/outcontrol.constants.php */
+define('PHP_OUTPUT_HANDLER_DISABLED', 8192);
+
+/**
+ * Specifies where the manpages were installed into.
+ * @since 5.3.7
+ * @link https://php.net/manual/en/reserved.constants.php
+ */
+define('PHP_MANDIR', '/usr/local/php/php/man');
diff --git a/phpstorm-stubs/Ev/Ev.php b/phpstorm-stubs/Ev/Ev.php
new file mode 100644
index 0000000..071023e
--- /dev/null
+++ b/phpstorm-stubs/Ev/Ev.php
@@ -0,0 +1,1586 @@
+ 'int'], default: '')] $revents) {}
+
+ /**
+ * Returns the loop responsible for the watcher.
+ *
+ * @return EvLoop Event loop object responsible for the watcher.
+ */
+ public function getLoop() {}
+
+ /**
+ * Invokes the watcher callback with the given received events bit mask.
+ *
+ * @param int $revents Bit mask of watcher received events.
+ */
+ public function invoke(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $revents) {}
+
+ /**
+ * Configures whether to keep the loop from returning.
+ *
+ * Configures whether to keep the loop from returning. With keepalive value set to FALSE the watcher won't keep
+ * Ev::run() / EvLoop::run() from returning even though the watcher is active.
+ *
+ * Watchers have keepalive value TRUE by default.
+ *
+ * Clearing keepalive status is useful when returning from Ev::run() / EvLoop::run() just because of the watcher
+ * is undesirable. It could be a long running UDP socket watcher or so.
+ *
+ * @param bool $value With keepalive value set to FALSE the watcher won't keep Ev::run() / EvLoop::run() from
+ * returning even though the watcher is active.
+ */
+ public function keepalive(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $value = true) {}
+
+ /**
+ * Sets new callback for the watcher.
+ *
+ * @param callable $callback void callback ([ object $watcher = NULL [, int $revents = NULL ]] )
+ */
+ public function setCallback(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback) {}
+
+ /**
+ * Starts the watcher.
+ *
+ * Marks the watcher as active. Note that only active watchers will receive events.
+ */
+ public function start() {}
+
+ /**
+ * Stops the watcher.
+ *
+ * Marks the watcher as inactive. Note that only active watchers will receive events.
+ */
+ public function stop() {}
+}
+
+/**
+ * Class EvCheck
+ *
+ * EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks,
+ * EvCheck afterwards.
+ *
+ * It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either
+ * EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that
+ * one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking ->
+ * EvCheck , so having a watcher of each kind they will always be called in pairs bracketing the blocking call.
+ *
+ * The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be
+ * used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library
+ * and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.
+ *
+ * It is recommended to give EvCheck watchers highest( Ev::MAXPRI ) priority, to ensure that they are being run before
+ * any other watchers after the poll (this doesn’t matter for EvPrepare watchers).
+ *
+ * Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed
+ * before other EvCheck watchers did their job.
+ */
+final class EvCheck extends EvWatcher
+{
+ /**
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvCheck
+ */
+ final public static function createStopped(mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvChild
+ *
+ * EvChild watchers trigger when the process receives a SIGCHLD in response to some child status changes (most typically
+ * when a child dies or exits). It is permissible to install an EvChild watcher after the child has been forked (which
+ * implies it might have already exited), as long as the event loop isn't entered(or is continued from a watcher), i.e.
+ * forking and then immediately registering a watcher for the child is fine, but forking and registering a watcher a few
+ * event loop iterations later or in the next callback invocation is not.
+ *
+ * It is allowed to register EvChild watchers in the default loop only.
+ */
+final class EvChild extends EvWatcher
+{
+ /**
+ * @var int The process ID this watcher watches out for, or 0, meaning any process ID.
+ */
+ #[Immutable]
+ public $pid;
+
+ /**
+ * @var int The process ID that detected a status change.
+ */
+ #[Immutable]
+ public $rpid;
+
+ /**
+ * @var int The process exit status caused by rpid.
+ */
+ #[Immutable]
+ public $rstatus;
+
+ /**
+ * Constructs the EvChild watcher object.
+ *
+ * Call the callback when a status change for process ID pid (or any PID if pid is 0) has been received (a status
+ * change happens when the process terminates or is killed, or, when trace is TRUE, additionally when it is stopped
+ * or continued). In other words, when the process receives a SIGCHLD, Ev will fetch the outstanding exit/wait
+ * status for all changed/zombie children and call the callback.
+ *
+ * It is valid to install a child watcher after an EvChild has exited but before the event loop has started its next
+ * iteration. For example, first one calls fork , then the new child process might exit, and only then an EvChild
+ * watcher is installed in the parent for the new PID .
+ *
+ * You can access both exit/tracing status and pid by using the rstatus and rpid properties of the watcher object.
+ *
+ * The number of PID watchers per PID is unlimited. All of them will be called.
+ *
+ * The EvChild::createStopped() method doesn't start(activate) the newly created watcher.
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pid,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $trace,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Create instance of a stopped EvCheck watcher.
+ *
+ * The same as EvChild::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvChild
+ */
+ final public static function createStopped(int $pid, bool $trace, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Configures the watcher
+ *
+ * @param int $pid Wait for status changes of process PID(or any process if PID is specified as 0 ).
+ * @param bool $trace If FALSE, only activate the watcher when the process terminates. Otherwise(TRUE) additionally
+ * activate the watcher when the process is stopped or continued.
+ */
+ public function set(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pid,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $trace
+ ) {}
+}
+
+/**
+ * Class EvEmbed
+ *
+ * Used to embed one event loop into another.
+ */
+final class EvEmbed extends EvWatcher
+{
+ /**
+ * @var EvLoop The embedded loop
+ */
+ #[Immutable]
+ public $embed;
+
+ /**
+ * Constructs the EvEmbed object.
+ *
+ * This is a rather advanced watcher type that lets to embed one event loop into another(currently only IO events
+ * are supported in the embedded loop, other types of watchers might be handled in a delayed or incorrect fashion
+ * and must not be used).
+ *
+ * See the libev documentation for details.
+ *
+ * This watcher is most useful on BSD systems without working kqueue to still be able to handle a large number of
+ * sockets.
+ *
+ * @param EvLoop $other The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ EvLoop $other,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param EvLoop $other The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ */
+ public function set(EvLoop $other) {}
+
+ /**
+ * Make a single, non-blocking sweep over the embedded loop.
+ */
+ public function sweep() {}
+
+ /**
+ * Create stopped EvEmbed watcher object
+ *
+ * The same as EvEmbed::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param EvLoop $other The loop to embed, this loop must be embeddable(see Ev::embeddableBackends()).
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvEmbed
+ */
+ final public static function createStopped(EvLoop $other, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvIo
+ *
+ * EvIo watchers check whether a file descriptor(or socket, or a stream castable to numeric file descriptor) is readable
+ * or writable in each iteration of the event loop, or, more precisely, when reading would not block the process and
+ * writing would at least be able to write some data. This behaviour is called level-triggering because events are kept
+ * receiving as long as the condition persists. To stop receiving events just stop the watcher.
+ *
+ * The number of read and/or write event watchers per fd is unlimited. Setting all file descriptors to non-blocking mode
+ * is also usually a good idea (but not required).
+ *
+ * Another thing to watch out for is that it is quite easy to receive false readiness notifications, i.e. the callback
+ * might be called with Ev::READ but a subsequent read() will actually block because there is no data. It is very easy
+ * to get into this situation. Thus it is best to always use non-blocking I/O: An extra read() returning EAGAIN (or
+ * similar) is far preferable to a program hanging until some data arrives.
+ *
+ * If for some reason it is impossible to run the fd in non-blocking mode, then separately re-test whether a file
+ * descriptor is really ready. Some people additionally use SIGALRM and an interval timer, just to be sure they won't
+ * block infinitely.
+ *
+ * Always consider using non-blocking mode.
+ */
+final class EvIo extends EvWatcher
+{
+ /**
+ * @var resource A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ */
+ #[Immutable]
+ public $fd;
+
+ /**
+ * @var int Ev::READ and/or Ev::WRITE. See the bit masks.
+ */
+ #[Immutable]
+ #[ExpectedValues(flags: [Ev::READ, Ev::WRITE])]
+ public $events;
+
+ /**
+ * Constructs EvIo watcher object.
+ *
+ * Constructs EvIo watcher object and starts the watcher automatically.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $fd,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $events,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ */
+ public function set(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $fd,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $events
+ ) {}
+
+ /**
+ * Create stopped EvIo watcher object.
+ *
+ * The same as EvIo::__construct() , but doesn't start the watcher automatically.
+ *
+ * @param resource $fd A stream opened with fopen() or similar functions, numeric file descriptor, or socket.
+ * @param int $events Ev::READ and/or Ev::WRITE. See the bit masks.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvIo
+ */
+ final public static function createStopped(mixed $fd, int $events, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvPeriodic
+ *
+ * Periodic watchers are also timers of a kind, but they are very versatile.
+ *
+ * Unlike EvTimer, EvPeriodic watchers are not based on real time (or relative time, the physical time that passes) but
+ * on wall clock time (absolute time, calendar or clock). The difference is that wall clock time can run faster or
+ * slower than real time, and time jumps are not uncommon (e.g. when adjusting it).
+ *
+ * EvPeriodic watcher can be configured to trigger after some specific point in time. For example, if an EvPeriodic
+ * watcher is configured to trigger "in 10 seconds" (e.g. EvLoop::now() + 10.0 , i.e. an absolute time, not a delay),
+ * and the system clock is reset to January of the previous year , then it will take a year or more to trigger the event
+ * (unlike an EvTimer , which would still trigger roughly 10 seconds after starting it as it uses a relative timeout).
+ *
+ * As with timers, the callback is guaranteed to be invoked only when the point in time where it is supposed to trigger
+ * has passed. If multiple timers become ready during the same loop iteration then the ones with earlier time-out values
+ * are invoked before ones with later time-out values (but this is no longer true when a callback calls EvLoop::run()
+ * recursively).
+ */
+final class EvPeriodic extends EvWatcher
+{
+ /**
+ * @var float When repeating, this contains the offset value, otherwise this is the absolute point in time (the
+ * offset value passed to EvPeriodic::set(), although libev might modify this value for better numerical
+ * stability).
+ */
+ public $offset;
+
+ /**
+ * @var float The current interval value. Can be modified any time, but changes only take effect when the periodic
+ * timer fires or EvPeriodic::again() is being called.
+ */
+ public $interval;
+
+ /**
+ * Constructs EvPeriodic watcher object.
+ *
+ * Constructs EvPeriodic watcher object and starts it automatically. EvPeriodic::createStopped() method creates
+ * stopped periodic watcher.
+ *
+ * @param float $offset When repeating, this contains the offset value, otherwise this is the absolute point in
+ * time (the offset value passed to EvPeriodic::set(), although libev might modify this value for better
+ * numerical stability).
+ * @param float $interval The current interval value. Can be modified any time, but changes only take effect when
+ * the periodic timer fires or EvPeriodic::again() is being called.
+ * @param null|callable $reschedule_cb If set, tt must return the next time to trigger, based on the passed time value
+ * (that is, the lowest time value larger than or equal to the second argument). It will usually be called just
+ * before the callback will be triggered, but might be called at other times, too.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $offset,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $interval,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $reschedule_cb,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Simply stops and restarts the periodic watcher again.
+ *
+ * Simply stops and restarts the periodic watcher again. This is only useful when attributes are changed.
+ *
+ * @return void
+ */
+ public function again() {}
+
+ /**
+ * Returns the absolute time that this watcher is supposed to trigger next.
+ *
+ * When the watcher is active, returns the absolute time that this watcher is supposed to trigger next. This is not
+ * the same as the offset argument to EvPeriodic::set() or EvPeriodic::__construct(), but indeed works even in
+ * interval mode.
+ *
+ * @return float Rhe absolute time this watcher is supposed to trigger next in seconds.
+ */
+ public function at() {}
+
+ /**
+ * Create a stopped EvPeriodic watcher
+ *
+ * Create EvPeriodic object. Unlike EvPeriodic::__construct() this method doesn't start the watcher automatically.
+ *
+ * @param float $offset When repeating, this contains the offset value, otherwise this is the absolute point in
+ * time (the offset value passed to EvPeriodic::set(), although libev might modify this value for better
+ * numerical stability).
+ * @param float $interval The current interval value. Can be modified any time, but changes only take effect when
+ * the periodic timer fires or EvPeriodic::again() is being called.
+ * @param null|callable $reschedule_cb If set, tt must return the next time to trigger, based on the passed time value
+ * (that is, the lowest time value larger than or equal to the second argument). It will usually be called just
+ * before the callback will be triggered, but might be called at other times, too.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvPeriodic
+ */
+ final public static function createStopped(float $offset, float $interval, mixed $reschedule_cb, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Configures the watcher
+ * @param float $offset The same meaning as for {@see EvPeriodic::__construct}
+ * @param float $interval The same meaning as for {@see EvPeriodic::__construct}
+ * @param null|callable $reschedule_cb The same meaning as for {@see EvPeriodic::__construct}
+ * @return void
+ */
+ public function set(
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $offset,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $interval,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $reschedule_cb = null
+ ) {}
+}
+
+/**
+ * Class EvPrepare
+ *
+ * EvPrepare and EvCheck watchers are usually used in pairs. EvPrepare watchers get invoked before the process blocks,
+ * EvCheck afterwards.
+ *
+ * It is not allowed to call EvLoop::run() or similar methods or functions that enter the current event loop from either
+ * EvPrepare or EvCheck watchers. Other loops than the current one are fine, however. The rationale behind this is that
+ * one don't need to check for recursion in those watchers, i.e. the sequence will always be: EvPrepare -> blocking ->
+ * EvCheck, so having a watcher of each kind they will always be called in pairs bracketing the blocking call.
+ *
+ * The main purpose is to integrate other event mechanisms into libev and their use is somewhat advanced. They could be
+ * used, for example, to track variable changes, implement custom watchers, integrate net-snmp or a coroutine library
+ * and lots more. They are also occasionally useful to cache some data and want to flush it before blocking.
+ *
+ * It is recommended to give EvCheck watchers highest (Ev::MAXPRI) priority, to ensure that they are being run before
+ * any other watchers after the poll (this doesn’t matter for EvPrepare watchers).
+ *
+ * Also, EvCheck watchers should not activate/feed events. While libev fully supports this, they might get executed
+ * before other EvCheck watchers did their job.
+ */
+final class EvPrepare extends EvWatcher
+{
+ /**
+ * Constructs EvPrepare watcher object.
+ *
+ * Constructs EvPrepare watcher object and starts the watcher automatically. If you need a stopped watcher, consider
+ * using EvPrepare::createStopped().
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Creates a stopped instance of EvPrepare watcher.
+ *
+ * Creates a stopped instance of EvPrepare watcher. Unlike EvPrepare::__construct(), this method doesn't start the
+ * watcher automatically.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvPrepare
+ */
+ final public static function createStopped(mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvSignal
+ *
+ * EvSignal watchers will trigger an event when the process receives a specific signal one or more times. Even though
+ * signals are very asynchronous, libev will try its best to deliver signals synchronously, i.e. as part of the normal
+ * event processing, like any other event.
+ *
+ * There is no limit for the number of watchers for the same signal, but only within the same loop, i.e. one can watch
+ * for SIGINT in the default loop and for SIGIO in another loop, but it is not allowed to watch for SIGINT in both the
+ * default loop and another loop at the same time. At the moment, SIGCHLD is permanently tied to the default loop.
+ *
+ * If possible and supported, libev will install its handlers with SA_RESTART (or equivalent) behaviour enabled, so
+ * system calls should not be unduly interrupted. In case of a problem with system calls getting interrupted by signals,
+ * all the signals can be blocked in an EvCheck watcher and unblocked in a EvPrepare watcher.
+ */
+final class EvSignal extends EvWatcher
+{
+ /**
+ * @var int Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ */
+ #[Immutable]
+ public $signum;
+
+ /**
+ * Constructs EvSignal watcher object
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $signum,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ */
+ public function set(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $signum) {}
+
+ /**
+ * Creates a stopped instance of EvSignal watcher.
+ *
+ * Creates a stopped instance of EvSignal watcher. Unlike EvPrepare::__construct(), this method doesn't start the
+ * watcher automatically.
+ *
+ * @param int $signum Signal number. See the constants exported by pcntl extension. See also signal(7) man page.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvSignal
+ */
+ final public static function createStopped(int $signum, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvStat
+ *
+ * EvStat monitors a file system path for attribute changes. It calls stat() on that path in regular intervals (or when
+ * the OS signals it changed) and sees if it changed compared to the last time, invoking the callback if it did.
+ *
+ * The path does not need to exist: changing from "path exists" to "path does not exist" is a status change like any
+ * other. The condition "path does not exist" is signified by the 'nlink' item being 0 (returned by EvStat::attr()
+ * method).
+ *
+ * The path must not end in a slash or contain special components such as '.' or '..'. The path should be absolute: if
+ * it is relative and the working directory changes, then the behaviour is undefined.
+ *
+ * Since there is no portable change notification interface available, the portable implementation simply calls stat()
+ * regularly on the path to see if it changed somehow. For this case a recommended polling interval can be specified. If
+ * one specifies a polling interval of 0.0 (highly recommended) then a suitable, unspecified default value will be used
+ * (which could be expected to be around 5 seconds, although this might change dynamically). libev will also impose a
+ * minimum interval which is currently around 0.1 , but that’s usually overkill.
+ *
+ * This watcher type is not meant for massive numbers of EvStat watchers, as even with OS-supported change
+ * notifications, this can be resource-intensive.
+ */
+final class EvStat extends EvWatcher
+{
+ /**
+ * @var float Hint on how quickly a change is expected to be detected and should normally be
+ * specified as 0.0 to let libev choose a suitable value.
+ */
+ #[Immutable]
+ public $interval;
+
+ /**
+ * @var string The path to wait for status changes on.
+ */
+ #[Immutable]
+ public $path;
+
+ /**
+ * Constructs EvStat watcher object.
+ *
+ * Constructs EvStat watcher object and starts the watcher automatically.
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $path,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $interval,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * @return array The values most recently detect by Ev (without actual stat'ing). See stat(2) man page for details.
+ */
+ public function attr() {}
+
+ /**
+ * @return array Just like EvStat::attr() , but returns the previous set of values.
+ */
+ public function prev() {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ */
+ public function set(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $path,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $interval
+ ) {}
+
+ /**
+ * Initiates the stat call.
+ *
+ * Initiates the stat call(updates internal cache). It stats (using lstat) the path specified in the watcher and
+ * sets the internal cache to the values found.
+ *
+ * @return bool TRUE if path exists. Otherwise FALSE.
+ */
+ public function stat() {}
+
+ /**
+ * Create a stopped EvStat watcher object.
+ *
+ * Creates EvStat watcher object, but doesn't start it automatically (unlike EvStat::__construct()).
+ *
+ * @param string $path The path to wait for status changes on.
+ * @param float $interval Hint on how quickly a change is expected to be detected and should normally be specified
+ * as 0.0 to let libev choose a suitable value.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvStat
+ */
+ final public static function createStopped(string $path, float $interval, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvTimer
+ *
+ * EvTimer watchers are simple relative timers that generate an event after a given time, and optionally repeating in
+ * regular intervals after that.
+ *
+ * The timers are based on real time, that is, if one registers an event that times out after an hour and resets the
+ * system clock to January last year, it will still time out after( roughly) one hour. "Roughly" because detecting time
+ * jumps is hard, and some inaccuracies are unavoidable.
+ *
+ * The callback is guaranteed to be invoked only after its timeout has passed (not at, so on systems with very
+ * low-resolution clocks this might introduce a small delay). If multiple timers become ready during the same loop
+ * iteration then the ones with earlier time-out values are invoked before ones of the same priority with later time-out
+ * values (but this is no longer true when a callback calls EvLoop::run() recursively).
+ *
+ * The timer itself will do a best-effort at avoiding drift, that is, if a timer is configured to trigger every 10
+ * seconds, then it will normally trigger at exactly 10 second intervals. If, however, the script cannot keep up with
+ * the timer (because it takes longer than those 10 seconds to do) the timer will not fire more than once per event loop
+ * iteration.
+ */
+final class EvTimer extends EvWatcher
+{
+ /**
+ * @var float If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it is
+ * positive, then the timer will automatically be configured to trigger again every repeat seconds later, until
+ * stopped manually.
+ */
+ public $repeat;
+
+ /**
+ * @var float The remaining time until a timer fires. If the timer is active, then this time is relative to the
+ * current event loop time, otherwise it's the timeout value currently configured.
+ *
+ * That is, after instantiating an EvTimer with an after value of 5.0 and repeat value of 7.0, remaining
+ * returns 5.0. When the timer is started and one second passes, remaining will return 4.0 . When the timer
+ * expires and is restarted, it will return roughly 7.0 (likely slightly less as callback invocation takes some
+ * time too), and so on.
+ */
+ public $remaining;
+
+ /**
+ * Constructs an EvTimer watcher object.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $after,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $repeat,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $priority = 0
+ ) {}
+
+ /**
+ * Restarts the timer watcher.
+ *
+ * This will act as if the timer timed out and restart it again if it is repeating. The exact semantics are:
+ *
+ * - if the timer is pending, its pending status is cleared.
+ * - if the timer is started but non-repeating, stop it (as if it timed out).
+ * - if the timer is repeating, either start it if necessary (with the repeat value), or reset the running timer to
+ * the repeat value.
+ */
+ public function again() {}
+
+ /**
+ * Configures the watcher.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ */
+ public function set(
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $after,
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $repeat
+ ) {}
+
+ /**
+ * Creates a stopped EvTimer watcher object.
+ *
+ * @param float $after Configures the timer to trigger after $after seconds.
+ * @param float $repeat If repeat is 0.0, then it will automatically be stopped once the timeout is reached. If it
+ * is positive, then the timer will automatically be configured to trigger again every repeat seconds later,
+ * until stopped manually.
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvTimer
+ */
+ final public static function createStopped(float $after, float $repeat, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvIdle
+ *
+ * EvIdle watchers trigger events when no other events of the same or higher priority are pending (EvPrepare, EvCheck
+ * and other EvIdle watchers do not count as receiving events).
+ *
+ * Thus, as long as the process is busy handling sockets or timeouts (or even signals) of the same or higher priority it
+ * will not be triggered. But when the process is idle (or only lower-priority watchers are pending), the EvIdle
+ * watchers are being called once per event loop iteration - until stopped, that is, or the process receives more events
+ * and becomes busy again with higher priority stuff.
+ *
+ * Apart from keeping the process non-blocking (which is a useful on its own sometimes), EvIdle watchers are a good
+ * place to do "pseudo-background processing", or delay processing stuff to after the event loop has handled all
+ * outstanding events.
+ *
+ * The most noticeable effect is that as long as any idle watchers are active, the process will not block when waiting
+ * for new events.
+ */
+final class EvIdle extends EvWatcher
+{
+ /**
+ * Constructs an EvIdle instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Creates a stopped EvIdle instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvIdle
+ */
+ final public static function createStopped(mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvFork
+ *
+ * Fork watchers are called when a fork() was detected (usually because whoever signalled libev about it by calling
+ * EvLoop::fork()). The invocation is done before the event loop blocks next and before EvCheck watchers are being
+ * called, and only in the child after the fork. Note that if someone calls EvLoop::fork() in the wrong process, the
+ * fork handlers will be invoked, too.
+ */
+final class EvFork extends EvWatcher
+{
+ /**
+ * Constructs an EvFork instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ public function __construct(EvLoop $loop, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Creates a stopped EvFork instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ *
+ * @return EvFork
+ */
+ final public static function createStopped(EvLoop $loop, mixed $callback, mixed $data = null, int $priority = 0) {}
+}
+
+/**
+ * Class EvLoop
+ *
+ * Represents an event loop that is always distinct from the default loop. Unlike the default loop, it cannot handle
+ * EvChild watchers.
+ *
+ * Having threads we have to create a loop per thread, and use the the default loop in the parent thread.
+ *
+ * The default event loop is initialized automatically by Ev. It is accessible via methods of the Ev class, or via
+ * EvLoop::defaultLoop() method.
+ */
+final class EvLoop
+{
+ /**
+ * @var int The Ev::BACKEND_* flag indicating the event backend in use.
+ */
+ #[Immutable]
+ #[ExpectedValues(flags: [Ev::BACKEND_ALL, Ev::BACKEND_DEVPOLL, Ev::BACKEND_EPOLL, Ev::BACKEND_KQUEUE, Ev::BACKEND_MASK, Ev::BACKEND_POLL, Ev::BACKEND_PORT, Ev::BACKEND_SELECT])]
+ public $backend;
+
+ /**
+ * @var bool TRUE if it is the default event loop.
+ */
+ #[Immutable]
+ public $is_default_loop;
+
+ /**
+ * @var mixed Custom data attached to the loop.
+ */
+ public $data;
+
+ /**
+ * @var int The current iteration count of the loop. See Ev::iteration().
+ */
+ public $iteration;
+
+ /**
+ * @var int The number of pending watchers. 0 indicates that there are no watchers pending.
+ */
+ public $pending;
+
+ /**
+ * @var float Higher io_interval allows libev to spend more time collecting EvIo events, so more events can be
+ * handled per iteration, at the cost of increasing latency. Timeouts (both EvPeriodic and EvTimer) will not be
+ * affected. Setting this to a non-zero value will introduce an additional sleep() call into most loop
+ * iterations. The sleep time ensures that libev will not poll for EvIo events more often than once per this
+ * interval, on average. Many programs can usually benefit by setting the io_interval to a value near 0.1,
+ * which is often enough for interactive servers (not for games). It usually doesn't make much sense to set it
+ * to a lower value than 0.01, as this approaches the timing granularity of most systems.
+ */
+ public $io_interval;
+
+ /**
+ * @var float Higher timeout_interval allows libev to spend more time collecting timeouts, at the expense of
+ * increased latency/jitter/inexactness (the watcher callback will be called later). EvIo watchers will not be
+ * affected. Setting this to a non-null value will not introduce any overhead in libev.
+ */
+ public $timeout_interval;
+
+ /**
+ * @var int The recursion depth.
+ */
+ public $depth;
+
+ /**
+ * @param int $flags
+ * @param mixed $data
+ * @param float $io_interval
+ * @param float $timeout_interval
+ */
+ public function __construct(int $flags = Ev::FLAG_AUTO, mixed $data = null, float $io_interval = 0.0, float $timeout_interval = 0.0) {}
+
+ /**
+ * Returns an integer describing the backend used by libev.
+ *
+ * @return int An integer describing the backend used by libev. See Ev::backend().
+ */
+ public function backend() {}
+
+ /**
+ * Creates EvCheck object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvCheck
+ */
+ final public function check(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvChild object associated with the current event loop instance;
+ * @link https://www.php.net/manual/en/evloop.child.php
+ * @param int $pid
+ * @param bool $trace
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvChild
+ */
+ final public function child(int $pid, bool $trace, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Creates EvEmbed object associated with the current event loop instance.
+ *
+ * @param EvLoop $other
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvEmbed
+ */
+ final public function embed(EvLoop $other, callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvFork object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvFork
+ */
+ final public function fork(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Creates EvIdle object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param null $data
+ * @param int $priority
+ * @return EvIdle
+ */
+ final public function idle(mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Invoke all pending watchers while resetting their pending state.
+ */
+ public function invokePending() {}
+
+ /**
+ * Creates EvIo object associated with the current event loop instance.
+ *
+ * @param resource $fd
+ * @param int $events
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvIo
+ */
+ final public function io(mixed $fd, int $events, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Must be called after a fork.
+ *
+ * Must be called after a fork in the child, before entering or continuing the event loop. An alternative is to use
+ * Ev::FLAG_FORKCHECK which calls this function automatically, at some performance loss (refer to the libev
+ * documentation).
+ */
+ public function loopFork() {}
+
+ /**
+ * Returns the current "event loop time".
+ *
+ * Returns the current "event loop time", which is the time the event loop received events and started processing
+ * them. This timestamp does not change as long as callbacks are being processed, and this is also the base time
+ * used for relative timers. You can treat it as the timestamp of the event occurring (or more correctly, libev
+ * finding out about it).
+ *
+ * @return float Time of the event loop in (fractional) seconds.
+ */
+ public function now() {}
+
+ /**
+ * Establishes the current time by querying the kernel, updating the time returned by Ev::now in the progress.
+ *
+ * Establishes the current time by querying the kernel, updating the time returned by Ev::now() in the progress.
+ * This is a costly operation and is usually done automatically within Ev::run().
+ *
+ * This method is rarely useful, but when some event callback runs for a very long time without entering the event
+ * loop, updating libev's consideration of the current time is a good idea.
+ */
+ public function nowUpdate() {}
+
+ /**
+ * Creates EvPeriodic object associated with the current event loop instance.
+ *
+ * @param float $offset
+ * @param float $interval
+ * @param callable $reschedule_cb
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ final public function periodic(float $offset, float $interval, mixed $reschedule_cb, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Creates EvPrepare object associated with the current event loop instance.
+ *
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ */
+ final public function prepare(callable $callback, $data = null, $priority = 0) {}
+
+ /**
+ * Resume previously suspended default event loop.
+ *
+ * EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.
+ */
+ public function resume() {}
+
+ /**
+ * Begin checking for events and calling callbacks for the loop.
+ *
+ * Begin checking for events and calling callbacks for the current event loop. Returns when a callback calls
+ * Ev::stop() method, or the flags are nonzero (in which case the return value is true) or when there are no active
+ * watchers which reference the loop (EvWatcher::keepalive() is TRUE), in which case the return value will be FALSE.
+ * The return value can generally be interpreted as if TRUE, there is more work left to do.
+ *
+ * @param int $flags One of the Ev::RUN_* flags.
+ */
+ public function run(int $flags = Ev::FLAG_AUTO) {}
+
+ /**
+ * Creates EvSignal object associated with the current event loop instance.
+ *
+ * @param int $signum
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvSignal
+ */
+ final public function signal(int $signum, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Creates EvStats object associated with the current event loop instance.
+ *
+ * @param string $path
+ * @param float $interval
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvStat
+ */
+ final public function stat(string $path, float $interval, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Stops the event loop.
+ *
+ * @param int $how One of the Ev::BREAK_* flags.
+ */
+ public function stop(int $how = Ev::BREAK_ALL) {}
+
+ /**
+ * Suspend the loop.
+ *
+ * EvLoop::suspend() and EvLoop::resume() methods suspend and resume a loop correspondingly.
+ */
+ public function suspend() {}
+
+ /**
+ * Creates EvTimer object associated with the current event loop instance.
+ *
+ * @param float $after
+ * @param float $repeat
+ * @param callable $callback
+ * @param mixed $data
+ * @param int $priority
+ * @return EvTimer
+ */
+ final public function timer(float $after, float $repeat, mixed $callback, mixed $data = null, int $priority = 0) {}
+
+ /**
+ * Performs internal consistency checks (for debugging).
+ *
+ * Performs internal consistency checks (for debugging libev) and abort the program if any data structures were
+ * found to be corrupted.
+ */
+ public function verify() {}
+
+ /**
+ * Returns or creates the default event loop.
+ *
+ * If the default event loop is not created, EvLoop::defaultLoop() creates it with the specified parameters.
+ * Otherwise, it just returns the object representing previously created instance ignoring all the parameters.
+ *
+ * @param int $flags
+ * @param mixed $data
+ * @param float $io_interval
+ * @param float $timeout_interval
+ */
+ public static function defaultLoop(
+ int $flags = Ev::FLAG_AUTO,
+ mixed $data = null,
+ float $io_interval = 0.0,
+ float $timeout_interval = 0.0
+ ) {}
+}
diff --git a/phpstorm-stubs/FFI/.phpstorm.meta.php b/phpstorm-stubs/FFI/.phpstorm.meta.php
new file mode 100644
index 0000000..7ae8773
--- /dev/null
+++ b/phpstorm-stubs/FFI/.phpstorm.meta.php
@@ -0,0 +1,113 @@
+Instead of embedding of a long C definition into PHP string,
+ * and creating FFI through FFI::cdef(), it's possible to separate
+ * it into a C header file. Note, that C preprocessor directives
+ * (e.g. #define or #ifdef) are not supported. And only a couple of
+ * special macros may be used especially for FFI.
+ *
+ *
+ * #define FFI_LIB "libc.so.6"
+ *
+ * int printf(const char *format, ...);
+ *
+ *
+ * Here, FFI_LIB specifies, that the given library should be loaded.
+ *
+ *
+ * $ffi = FFI::load(__DIR__ . "/printf.h");
+ * $ffi->printf("Hello world!\n");
+ *
+ *
+ * @param string $filename
+ * @return FFI|null
+ */
+ public static function load(string $filename): ?FFI {}
+
+ /**
+ * FFI definition parsing and shared library loading may take
+ * significant time. It's not useful to do it on each HTTP request in
+ * WEB environment. However, it's possible to pre-load FFI definitions
+ * and libraries at php startup, and instantiate FFI objects when
+ * necessary. Header files may be extended with FFI_SCOPE define
+ * (default pre-loading scope is "C"). This name is going to be
+ * used as FFI::scope() argument. It's possible to pre-load few
+ * files into a single scope.
+ *
+ *
+ * #define FFI_LIB "libc.so.6"
+ * #define FFI_SCOPE "libc"
+ *
+ * int printf(const char *format, ...);
+ *
+ *
+ * These files are loaded through the same FFI::load() load function,
+ * executed from file loaded by opcache.preload php.ini directive.
+ *
+ *
+ * ffi.preload=/etc/php/ffi/printf.h
+ *
+ *
+ * Finally, FFI::scope() instantiate an FFI object, that implements
+ * all C definition from the given scope.
+ *
+ *
+ * $ffi = FFI::scope("libc");
+ * $ffi->printf("Hello world!\n");
+ *
+ *
+ * @param string $name
+ * @return FFI
+ */
+ public static function scope(string $name): FFI {}
+
+ /**
+ * Method that creates an arbitrary C structure.
+ *
+ * @param string|CType $type
+ * @param bool $owned
+ * @param bool $persistent
+ * @return CData|null
+ * @throws ParserException
+ */
+ public static function new($type, bool $owned = true, bool $persistent = false): ?CData {}
+
+ /**
+ * Manually removes previously created "not-owned" data structure.
+ *
+ * @param CData $ptr
+ * @return void
+ */
+ public static function free(CData $ptr): void {}
+
+ /**
+ * Casts given $pointer to another C type, specified by C declaration
+ * string or FFI\CType object.
+ *
+ * This function may be called statically and use only predefined
+ * types, or as a method of previously created FFI object. In last
+ * case the first argument may reuse all type and tag names
+ * defined in FFI::cdef().
+ *
+ * @param CType|string $type
+ * @param CData|int|float|bool|null $ptr
+ * @return CData|null
+ */
+ public static function cast($type, $ptr): ?CData {}
+
+ /**
+ * This function creates and returns a FFI\CType object, representng
+ * type of the given C type declaration string.
+ *
+ * FFI::type() may be called statically and use only predefined types,
+ * or as a method of previously created FFI object. In last case the
+ * first argument may reuse all type and tag names defined in
+ * FFI::cdef().
+ *
+ * @param string $type
+ * @return CType|null
+ */
+ public static function type(string $type): ?CType {}
+
+ /**
+ * This function returns the FFI\CType object, representing the type of
+ * the given FFI\CData object.
+ *
+ * @param CData $ptr
+ * @return CType
+ */
+ public static function typeof(CData $ptr): CType {}
+
+ /**
+ * Constructs a new C array type with elements of $type and
+ * dimensions specified by $dimensions.
+ *
+ * @param CType $type
+ * @param int[] $dimensions
+ * @return CType
+ */
+ public static function arrayType(CType $type, array $dimensions): CType {}
+
+ /**
+ * Returns C pointer to the given C data structure. The pointer is
+ * not "owned" and won't be free. Anyway, this is a potentially
+ * unsafe operation, because the life-time of the returned pointer
+ * may be longer than life-time of the source object, and this may
+ * cause dangling pointer dereference (like in regular C).
+ *
+ * @param CData $ptr
+ * @return CData
+ */
+ public static function addr(CData $ptr): CData {}
+
+ /**
+ * Returns size of C data type of the given FFI\CData or FFI\CType.
+ *
+ * @param CData|CType $ptr
+ * @return int
+ */
+ public static function sizeof($ptr): int {}
+
+ /**
+ * Returns size of C data type of the given FFI\CData or FFI\CType.
+ *
+ * @param CData|CType $ptr
+ * @return int
+ */
+ public static function alignof($ptr): int {}
+
+ /**
+ * Copies $size bytes from memory area $source to memory area $target.
+ * $source may be any native data structure (FFI\CData) or PHP string.
+ *
+ * @param CData $to
+ * @param CData|string $from
+ * @param int $size
+ */
+ public static function memcpy(CData $to, $from, int $size): void {}
+
+ /**
+ * Compares $size bytes from memory area $ptr1 and $ptr2.
+ *
+ * @param CData|string $ptr1
+ * @param CData|string $ptr2
+ * @param int $size
+ * @return int
+ */
+ public static function memcmp($ptr1, $ptr2, int $size): int {}
+
+ /**
+ * Fills the $size bytes of the memory area pointed to by $target with
+ * the constant byte $byte.
+ *
+ * @param CData $ptr
+ * @param int $value
+ * @param int $size
+ */
+ public static function memset(CData $ptr, int $value, int $size): void {}
+
+ /**
+ * Creates a PHP string from $size bytes of memory area pointed by
+ * $source. If size is omitted, $source must be zero terminated
+ * array of C chars.
+ *
+ * @param CData $ptr
+ * @param int|null $size
+ * @return string
+ */
+ public static function string(CData $ptr, ?int $size = null): string {}
+
+ /**
+ * Checks whether the FFI\CData is a null pointer.
+ *
+ * @param CData $ptr
+ * @return bool
+ */
+ public static function isNull(CData $ptr): bool {}
+ }
+}
+
+namespace FFI {
+ /**
+ * General FFI exception.
+ *
+ * @since 7.4
+ */
+ class Exception extends \Error {}
+
+ /**
+ * An exception that occurs when parsing invalid header files.
+ *
+ * @since 7.4
+ */
+ class ParserException extends Exception {}
+
+ /**
+ * Proxy object that provides access to compiled structures.
+ *
+ * In the case that CData is a wrapper over a scalar, it contains an
+ * additional "cdata" property.
+ *
+ * @property int|float|bool|null|string|CData $cdata
+ *
+ * In the case that the CData is a wrapper over an arbitrary C structure,
+ * then it allows reading and writing to the fields defined by
+ * this structure.
+ *
+ * @method mixed __get(string $name)
+ * @method mixed __set(string $name, mixed $value)
+ *
+ * In the case that CData is a wrapper over an array, it is an
+ * implementation of the {@see \Traversable}, {@see \Countable},
+ * and {@see \ArrayAccess}
+ *
+ * @mixin \Traversable
+ * @mixin \Countable
+ * @mixin \ArrayAccess
+ *
+ * In the case when CData is a wrapper over a function pointer, it can
+ * be called.
+ *
+ * @method mixed __invoke(mixed ...$args)
+ *
+ * @since 7.4
+ */
+ class CData
+ {
+ /**
+ * Note that this method does not physically exist and is only required
+ * for correct type inference.
+ *
+ * @param int $offset
+ * @return bool
+ */
+ private function offsetExists(int $offset) {}
+
+ /**
+ * Note that this method does not physically exist and is only required
+ * for correct type inference.
+ *
+ * @param int $offset
+ * @return CData|int|float|bool|null|string
+ */
+ private function offsetGet(int $offset) {}
+
+ /**
+ * Note that this method does not physically exist and is only required
+ * for correct type inference.
+ *
+ * @param int $offset
+ * @param CData|int|float|bool|null|string $value
+ */
+ private function offsetSet(int $offset, $value) {}
+
+ /**
+ * Note that this method does not physically exist and is only required
+ * for correct type inference.
+ *
+ * @param int $offset
+ */
+ private function offsetUnset(int $offset) {}
+
+ /**
+ * Note that this method does not physically exist and is only required
+ * for correct type inference.
+ *
+ * @return int
+ */
+ private function count(): int {}
+ }
+
+ /**
+ * Class containing C type information.
+ *
+ * @since 7.4
+ */
+ class CType
+ {
+ /**
+ * @since 8.1
+ */
+ public const TYPE_VOID = 0;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_FLOAT = 1;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_DOUBLE = 2;
+
+ /**
+ * Please note that this constant may NOT EXIST if there is
+ * no long double support on the current platform.
+ *
+ * @since 8.1
+ */
+ public const TYPE_LONGDOUBLE = 3;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_UINT8 = 4;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_SINT8 = 5;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_UINT16 = 6;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_SINT16 = 7;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_UINT32 = 8;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_SINT32 = 9;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_UINT64 = 10;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_SINT64 = 11;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_ENUM = 12;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_BOOL = 13;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_CHAR = 14;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_POINTER = 15;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_FUNC = 16;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_ARRAY = 17;
+
+ /**
+ * @since 8.1
+ */
+ public const TYPE_STRUCT = 18;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_CONST = 1;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_INCOMPLETE_TAG = 2;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_VARIADIC = 4;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_INCOMPLETE_ARRAY = 8;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_VLA = 16;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_UNION = 32;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_PACKED = 64;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_MS_STRUCT = 128;
+
+ /**
+ * @since 8.1
+ */
+ public const ATTR_GCC_STRUCT = 256;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_DEFAULT = 0;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_CDECL = 1;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_FASTCALL = 2;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_THISCALL = 3;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_STDCALL = 4;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_PASCAL = 5;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_REGISTER = 6;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_MS = 7;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_SYSV = 8;
+
+ /**
+ * @since 8.1
+ */
+ public const ABI_VECTORCALL = 9;
+
+ /**
+ * Returns the name of the type.
+ *
+ * @since 8.0
+ * @return string
+ */
+ public function getName(): string {}
+
+ /**
+ * Returns the identifier of the root type.
+ *
+ * Value may be one of:
+ * - {@see CType::TYPE_VOID}
+ * - {@see CType::TYPE_FLOAT}
+ * - {@see CType::TYPE_DOUBLE}
+ * - {@see CType::TYPE_LONGDOUBLE}
+ * - {@see CType::TYPE_UINT8}
+ * - {@see CType::TYPE_SINT8}
+ * - {@see CType::TYPE_UINT16}
+ * - {@see CType::TYPE_SINT16}
+ * - {@see CType::TYPE_UINT32}
+ * - {@see CType::TYPE_SINT32}
+ * - {@see CType::TYPE_UINT64}
+ * - {@see CType::TYPE_SINT64}
+ * - {@see CType::TYPE_ENUM}
+ * - {@see CType::TYPE_BOOL}
+ * - {@see CType::TYPE_CHAR}
+ * - {@see CType::TYPE_POINTER}
+ * - {@see CType::TYPE_FUNC}
+ * - {@see CType::TYPE_ARRAY}
+ * - {@see CType::TYPE_STRUCT}
+ *
+ * @since 8.1
+ * @return int
+ */
+ public function getKind(): int {}
+
+ /**
+ * Returns the size of the type in bytes.
+ *
+ * @since 8.1
+ * @return int
+ */
+ public function getSize(): int {}
+
+ /**
+ * Returns the alignment of the type in bytes.
+ *
+ * @since 8.1
+ * @return int
+ */
+ public function getAlignment(): int {}
+
+ /**
+ * Returns the bit-mask of type attributes.
+ *
+ * @since 8.1
+ * @return int
+ */
+ public function getAttributes(): int {}
+
+ /**
+ * Returns the identifier of the enum value type.
+ *
+ * Value may be one of:
+ * - {@see CType::TYPE_UINT32}
+ * - {@see CType::TYPE_UINT64}
+ *
+ * @since 8.1
+ * @return int
+ * @throws Exception In the case that the type is not an enumeration.
+ */
+ public function getEnumKind(): int {}
+
+ /**
+ * Returns the type of array elements.
+ *
+ * @since 8.1
+ * @return CType
+ * @throws Exception In the case that the type is not an array.
+ */
+ public function getArrayElementType(): CType {}
+
+ /**
+ * Returns the size of an array.
+ *
+ * @since 8.1
+ * @return int
+ * @throws Exception In the case that the type is not an array.
+ */
+ public function getArrayLength(): int {}
+
+ /**
+ * Returns the original type of the pointer.
+ *
+ * @since 8.1
+ * @return CType
+ * @throws Exception In the case that the type is not a pointer.
+ */
+ public function getPointerType(): CType {}
+
+ /**
+ * Returns the field string names of a structure or union.
+ *
+ * @since 8.1
+ * @return arrayLuaSandbox::getProfilerFunctionReport()
+ * to return timings in samples.
+ */
+ public const SAMPLES = 0;
+
+ /**
+ * Used with LuaSandbox::getProfilerFunctionReport()
+ * to return timings in seconds.
+ */
+ public const SECONDS = 1;
+
+ /**
+ * Used with LuaSandbox::getProfilerFunctionReport()
+ * to return timings in percentages of the total.
+ */
+ public const PERCENT = 2;
+
+ /**
+ * Call a function in a Lua global variable.
+ *
+ * If the name contains "." characters, the function is located via recursive table accesses, + * as if the name were a Lua expression.
+ * + *If the variable does not exist, or is not a function, + * false will be returned and a warning issued.
+ * + *For more information about calling Lua functions and the return values,
+ * see LuaSandboxFunction::call().
Lua variable name.
+ * @param mixed[] $argumentsArguments to the function.
+ * @return array|boolReturns an array of values returned by the Lua function, + * which may be empty, or false in case of failure.
+ * @see LuaSandboxFunction::call() + * @since luasandbox >= 1.0.0 + */ + public function callFunction($name, array $arguments) {} + + /** + * Disable the profiler. + * + * @link https://www.php.net/manual/en/luasandbox.disableProfiler.php + * @since luasandbox >= 1.1.0 + * @see LuaSandbox::enableProfiler() + * @see LuaSandbox::getProfilerFunctionReport() + */ + public function disableProfiler() {} + + /** + * Enable the profiler. + * + *The profiler periodically samples the Lua environment + * to record the running function. Testing indicates that + * at least on Linux, setting a period less than 1ms will + * lead to a high overrun count but no performance problems.
+ * + * @link https://www.php.net/manual/en/luasandbox.enableprofiler.php + * @param float $period [optional]Sampling period in seconds.
+ * @return boolReturns a boolean indicating whether the profiler is enabled.
+ * @since luasandbox >= 1.1.0 + * @see LuaSandbox::disableProfiler() + * @see LuaSandbox::getProfilerFunctionReport() + */ + public function enableProfiler($period = 0.02) {} + + /** + * Fetch the current CPU time usage of the Lua environment. + * + *This includes time spent in PHP callbacks.
+ * + *Note: On Windows, this function always returns zero. + * On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, + * such as FreeBSD and Mac OS X, this function will return the + * elapsed wall-clock time, not CPU time.
+ * + * @link https://www.php.net/manual/en/luasandbox.getcpuusage.php + * @return floatReturns the current CPU time usage in seconds.
+ * @since luasandbox >= 1.0.0 + * @see LuaSandbox::getMemoryUsage() + * @see LuaSandbox::getPeakMemoryUsage() + * @see LuaSandbox::setCPULimit() + */ + public function getCPUUsage() {} + + /** + * Fetch the current memory usage of the Lua environment. + * + * @link https://www.php.net/manual/en/luasandbox.getmemoryusage.php + * @return int + * @since luasandbox >= 1.0.0 + * @see LuaSandbox::getMemoryUsage() + * @see LuaSandbox::getCPUUsage() + * @see LuaSandbox::setMemoryLimit() + */ + public function getMemoryUsage() {} + + /** + * Fetch the peak memory usage of the Lua environment. + * + * @link https://www.php.net/manual/en/luasandbox.getpeakmemoryusage.php + * @return intReturns the current memory usage in bytes.
+ * @since luasandbox >= 1.0.0 + * @see LuaSandbox::getMemoryUsage() + * @see LuaSandbox::getCPUUsage() + * @see LuaSandbox::setMemoryLimit() + */ + public function getPeakMemoryUsage() {} + + /** + * Fetch profiler data. + * + *For a profiling instance previously started by LuaSandbox::enableProfiler(),
+ * get a report of the cost of each function.
The measurement unit used for the cost is determined by the $units parameter:
+ *LuaSandbox::SAMPLES Measure in number of samples.LuaSandbox::SECONDS Measure in seconds of CPU time.LuaSandbox::PERCENT Measure percentage of CPU time.Note: On Windows, this function always returns an empty array. + * On operating systems that do not support CLOCK_THREAD_CPUTIME_ID, + * such as FreeBSD and Mac OS X, this function will report the + * elapsed wall-clock time, not CPU time.
+ * + * @link https://www.php.net/manual/en/luasandbox.getprofilerfunctionreport.php + * @param int $units Measurement unit constant. + * @return arrayReturns profiler measurements, sorted in descending order, as an associative array. + * Keys are the Lua function names (with source file and line defined in angle brackets), values are the + * measurements as integer or float.
+ * @since luasandbox >= 1.1.0 + * @see LuaSandbox::SAMPLES + * @see LuaSandbox::SECONDS + * @see LuaSandbox::PERCENT + */ + public function getProfilerFunctionReport($units = LuaSandbox::SECONDS) {} + + /** + * Return the versions of LuaSandbox and Lua. + * + * @link https://www.php.net/manual/en/luasandbox.getversioninfo.php + * @return arrayReturns an array with two keys:
+ *Loads data generated by LuaSandboxFunction::dump().
Data from LuaSandboxFunction::dump().
Name for the loaded function.
+ * @return LuaSandboxFunction + * @since luasandbox >= 1.0.0 + * @see LuaSandbox::loadString() + */ + public function loadBinary($code, $chunkName = '') {} + + /** + * Load Lua code into the Lua environment. + * + *This is the equivalent of standard Lua's loadstring() function.
Lua code.
+ * @param string $chunkName [optional]Name for the loaded chunk, for use in error traces.
+ * @return LuaSandboxFunctionReturns a LuaSandboxFunction which, when executed,
+ * will execute the passed $code.
This only has effect when called from within a callback from Lua. + * When execution returns to Lua, the timer will be automatically unpaused. + * If a new call into Lua is made, the timer will be unpaused + * for the duration of that call.
+ * + *If a PHP callback calls into Lua again with timer not paused, + * and then that Lua function calls into PHP again, + * the second PHP call will not be able to pause the timer. + * The logic is that even though the second PHP call would + * avoid counting the CPU usage against the limit, + * the first call still counts it.
+ * + * @link https://www.php.net/manual/en/luasandbox.pauseusagetimer.php + * @return boolReturns a boolean indicating whether the timer is now paused.
+ * @since luasandbox >= 1.4.0 + * @see LuaSandbox::setCPULimit() + * @see LuaSandbox::unpauseUsageTimer() + */ + public function pauseUsageTimer() {} + + /** + * Register a set of PHP functions as a Lua library. + * + *Registers a set of PHP functions as a Lua library, + * so that Lua can call the relevant PHP code.
+ * + *For more information about calling Lua functions and the return values,
+ * see LuaSandboxFunction::call().
The name of the library. + * In the Lua state, the global variable of this name will be set to the table of functions. + * If the table already exists, the new functions will be added to it.
+ * @param array $functionsReturns an array, where each key is a function name, + * and each value is a corresponding PHP callable.
+ * @since luasandbox >= 1.0.0 + * @see LuaSandbox::loadString() + * @see LuaSandbox::wrapPhpFunction() + */ + public function registerLibrary($libname, $functions) {} + + /** + * Set the CPU time limit for the Lua environment. + * + *If the total user and system time used by the environment after the call
+ * to this method exceeds this limit, a LuaSandboxTimeoutError exception is thrown.
Time used in PHP callbacks is included in the limit.
+ * + *Setting the time limit from a callback while Lua is running causes the timer to be reset, + * or started if it was not already running.
+ * + *Note: On Windows, the CPU limit will be ignored. On operating systems + * that do not support CLOCK_THREAD_CPUTIME_ID, such as FreeBSD and + * Mac OS X, wall-clock time rather than CPU time will be limited.
+ * + * @link https://www.php.net/manual/en/luasandbox.setcpulimit.php + * @param bool|float $limitLimit as a float in seconds, or false for no limit.
+ * @since luasandbox >= 1.0.0 + * @see LuaSandbox::getCPUUsage() + * @see LuaSandbox::setMemoryLimit() + */ + public function setCPULimit($limit) {} + + /** + * Set the memory limit for the Lua environment. + * + * @link https://www.php.net/manual/en/luasandbox.setmemorylimit.php + * @param int $limitMemory limit in bytes.
+ * @throws LuaSandboxMemoryErrorException is thrown if this limit is exceeded.
+ * @since luasandbox >= 1.0.0 + * @see LuaSandbox::getMemoryUsage() + * @see LuaSandbox::getPeakMemoryUsage() + * @see LuaSandbox::setCPULimit() + */ + public function setMemoryLimit($limit) {} + + /** + * Unpause the timer paused byLuaSandbox::pauseUsageTimer().
+ *
+ * @link https://www.php.net/manual/en/luasandbox.unpauseusagetimer.php
+ * @since luasandbox >= 1.0.0
+ * @see LuaSandbox::setCPULimit()
+ * @see LuaSandbox::unpauseUsageTimer()
+ */
+ public function unpauseUsageTimer() {}
+
+ /**
+ * Wrap a PHP callable in a LuaSandboxFunction.
+ *
+ * Wraps a PHP callable in a LuaSandboxFunction,
+ * so it can be passed into Lua as an anonymous function.
The function must return either an array of values (which may be empty), + * or NULL which is equivalent to returning the empty array.
+ * + *Exceptions will be raised as errors in Lua, however only LuaSandboxRuntimeError
+ * exceptions may be caught inside Lua with pcall() or xpcall().
For more information about calling Lua functions and the return values,
+ * see LuaSandboxFunction::call().
Callable to wrap.
+ * @return LuaSandboxFunction + * @since luasandbox >= 1.2.0 + * @see LuaSandbox::loadString() + * @see LuaSandbox::registerLibrary() + */ + public function wrapPhpFunction($function) {} +} + +/** + * Represents a Lua function, allowing it to be called from PHP. + * + *A LuaSandboxFunction may be obtained as a return value from Lua,
+ * as a parameter passed to a callback from Lua,
+ * or by using LuaSandbox::wrapPhpFunction(), LuaSandbox::loadString(),
+ * or LuaSandbox::loadBinary().
Errors considered to be the fault of the PHP code will result in the + * function returning false and E_WARNING being raised, for example, + * a resource type being used as an argument. Lua errors will result + * in a LuaSandboxRuntimeError exception being thrown.
+ * + *PHP and Lua types are converted as follows:
+ *$a[0] and $a["0"] as being equivalent).Lua functions inherently return a list of results. So on success, + * this method returns an array containing all of the values returned by Lua, + * with integer keys starting from zero. + * Lua may return no results, in which case an empty array is returned.
+ * + * @link https://www.php.net/manual/en/luasandboxfunction.call.php + * @param string[] $argumentsArguments passed to the function.
+ * @return array|boolReturns an array of values returned by the function, + * which may be empty, or false on error.
+ * @since luasandbox >= 1.0.0 + */ + public function call($arguments) {} + + /** + * Dump the function as a binary blob. + * + * @link https://www.php.net/manual/en/luasandboxfunction.dump.php + * @return stringReturns a string that may be passed to LuaSandbox::loadBinary().
These may be caught inside Lua using pcall() or xpcall().
These may not be caught inside Lua using pcall() or xpcall().
+ * using PDO::ATTR_DRIVER_NAME
+ *
+ * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
+ * echo "Running on mysql; doing something mysql specific here\n";
+ * }
+ *
+ *
+ * Forcing queries to be buffered in mysql
+ *
+ * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
+ * $stmt = $db->prepare('select * from foo',
+ * array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
+ * } else {
+ * die("my application only works with mysql; I should use \$stmt->fetchAll() instead");
+ * }
+ *
+ *
+ * Enable LOAD LOCAL INFILE. + *
+ *+ * Note, this constant can only be used in the driver_options + * array when constructing a new database handle. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-local-infile + */ + public const MYSQL_ATTR_LOCAL_INFILE = 1001; + + /** + *+ * Command to execute when connecting to the MySQL server. Will + * automatically be re-executed when reconnecting. + *
+ *+ * Note, this constant can only be used in the driver_options + * array when constructing a new database handle. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-init-command + */ + public const MYSQL_ATTR_INIT_COMMAND = 1002; + + /** + *+ * Maximum buffer size. Defaults to 1 MiB. This constant is not supported when + * compiled against mysqlnd. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-max-buffer-size + */ + public const MYSQL_ATTR_MAX_BUFFER_SIZE = 1005; + + /** + *+ * Read options from the named option file instead of from + * my.cnf. This option is not available if + * mysqlnd is used, because mysqlnd does not read the mysql + * configuration files. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-read-default-file + */ + public const MYSQL_ATTR_READ_DEFAULT_FILE = 1003; + + /** + *+ * Read options from the named group from my.cnf or the + * file specified with MYSQL_READ_DEFAULT_FILE. This option + * is not available if mysqlnd is used, because mysqlnd does not read the mysql + * configuration files. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-read-default-group + */ + public const MYSQL_ATTR_READ_DEFAULT_GROUP = 1004; + + /** + *+ * Enable network communication compression. This is not supported when + * compiled against mysqlnd. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-compress + */ + public const MYSQL_ATTR_COMPRESS = 1003; + + /** + *+ * Perform direct queries, don't use prepared statements. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-direct-query + */ + public const MYSQL_ATTR_DIRECT_QUERY = 1004; + + /** + *+ * Return the number of found (matched) rows, not the + * number of changed rows. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-found-rows + */ + public const MYSQL_ATTR_FOUND_ROWS = 1005; + + /** + *+ * Permit spaces after function names. Makes all functions + * names reserved words. + *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ignore-space + */ + public const MYSQL_ATTR_IGNORE_SPACE = 1006; + public const MYSQL_ATTR_SERVER_PUBLIC_KEY = 1012; + + /** + *+ * The file path to the SSL key. + *
+ * @since 5.3.7 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-key + */ + public const MYSQL_ATTR_SSL_KEY = 1007; + + /** + *+ * The file path to the SSL certificate. + *
+ * @since 5.3.7 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-cert + */ + public const MYSQL_ATTR_SSL_CERT = 1008; + + /** + *+ * The file path to the SSL certificate authority. + *
+ * @since 5.3.7 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-ca + */ + public const MYSQL_ATTR_SSL_CA = 1009; + + /** + *+ * The file path to the directory that contains the trusted SSL + * CA certificates, which are stored in PEM format. + *
+ * @since 5.3.7 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-ssl-capath + */ + public const MYSQL_ATTR_SSL_CAPATH = 1010; + + /** + *+ * A list of one or more permissible ciphers to use for SSL encryption, + * in a format understood by OpenSSL. + * For example: DHE-RSA-AES256-SHA:AES128-SHA + *
+ * @since 5.3.7 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-cipher + */ + public const MYSQL_ATTR_SSL_CIPHER = 1011; + + /** + *+ * Disables multi query execution in both {@see PDO::prepare()} and {@see PDO::query()} when set to FALSE. + *
+ *+ * Note, this constant can only be used in the driver_options array when constructing a new database handle. + *
+ * @since 5.5.21 + * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-multi-statements + */ + public const MYSQL_ATTR_MULTI_STATEMENTS = 1013; + + /** + *+ * Disables SSL peer verification when set to FALSE. + *
+ * @since 7.0.18 + * @since 7.1.4 + * @link https://bugs.php.net/bug.php?id=71003 + */ + public const MYSQL_ATTR_SSL_VERIFY_SERVER_CERT = 1014; + + /** + * @since 8.1 + */ + public const MYSQL_ATTR_LOCAL_INFILE_DIRECTORY = 1015; + + #[Deprecated("Use PDO::ATTR_EMULATE_PREPARES instead")] + public const PGSQL_ASSOC = 1; + + /** + * @removed 7.1 + */ + public const PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT = 1000; + + /** + * @since 5.6 + */ + public const PGSQL_ATTR_DISABLE_PREPARES = 1000; + public const PGSQL_BAD_RESPONSE = 5; + public const PGSQL_BOTH = 3; + public const PGSQL_TRANSACTION_IDLE = 0; + public const PGSQL_TRANSACTION_ACTIVE = 1; + public const PGSQL_TRANSACTION_INTRANS = 2; + public const PGSQL_TRANSACTION_INERROR = 3; + public const PGSQL_TRANSACTION_UNKNOWN = 4; + public const PGSQL_CONNECT_ASYNC = 4; + public const PGSQL_CONNECT_FORCE_NEW = 2; + public const PGSQL_CONNECTION_AUTH_OK = 5; + public const PGSQL_CONNECTION_AWAITING_RESPONSE = 4; + public const PGSQL_CONNECTION_BAD = 1; + public const PGSQL_CONNECTION_OK = 0; + public const PGSQL_CONNECTION_MADE = 3; + public const PGSQL_CONNECTION_SETENV = 6; + public const PGSQL_CONNECTION_SSL_STARTUP = 7; + public const PGSQL_CONNECTION_STARTED = 2; + public const PGSQL_COMMAND_OK = 1; + public const PGSQL_CONV_FORCE_NULL = 4; + public const PGSQL_CONV_IGNORE_DEFAULT = 2; + public const PGSQL_CONV_IGNORE_NOT_NULL = 8; + public const PGSQL_COPY_IN = 4; + public const PGSQL_COPY_OUT = 3; + public const PGSQL_DIAG_CONTEXT = 87; + public const PGSQL_DIAG_INTERNAL_POSITION = 112; + public const PGSQL_DIAG_INTERNAL_QUERY = 113; + public const PGSQL_DIAG_MESSAGE_DETAIL = 68; + public const PGSQL_DIAG_MESSAGE_HINT = 72; + public const PGSQL_DIAG_MESSAGE_PRIMARY = 77; + public const PGSQL_DIAG_SEVERITY = 83; + public const PGSQL_DIAG_SOURCE_FILE = 70; + public const PGSQL_DIAG_SOURCE_FUNCTION = 82; + public const PGSQL_DIAG_SOURCE_LINE = 76; + public const PGSQL_DIAG_SQLSTATE = 67; + public const PGSQL_DIAG_STATEMENT_POSITION = 80; + public const PGSQL_DML_ASYNC = 1024; + public const PGSQL_DML_EXEC = 512; + public const PGSQL_DML_NO_CONV = 256; + public const PGSQL_DML_STRING = 2048; + public const PGSQL_DML_ESCAPE = 4096; + public const PGSQL_EMPTY_QUERY = 0; + public const PGSQL_ERRORS_DEFAULT = 1; + public const PGSQL_ERRORS_TERSE = 0; + public const PGSQL_ERRORS_VERBOSE = 2; + public const PGSQL_FATAL_ERROR = 7; + public const PGSQL_NONFATAL_ERROR = 6; + public const PGSQL_NOTICE_ALL = 2; + public const PGSQL_NOTICE_CLEAR = 3; + public const PGSQL_NOTICE_LAST = 1; + public const PGSQL_NUM = 2; + public const PGSQL_POLLING_ACTIVE = 4; + public const PGSQL_POLLING_FAILED = 0; + public const PGSQL_POLLING_OK = 3; + public const PGSQL_POLLING_READING = 1; + public const PGSQL_POLLING_WRITING = 2; + public const PGSQL_SEEK_CUR = 1; + public const PGSQL_SEEK_END = 2; + public const PGSQL_SEEK_SET = 0; + public const PGSQL_STATUS_LONG = 1; + public const PGSQL_STATUS_STRING = 2; + public const PGSQL_TUPLES_OK = 2; + public const SQLSRV_TXN_READ_UNCOMMITTED = "READ_UNCOMMITTED"; + public const SQLSRV_TXN_READ_COMMITTED = "READ_COMMITTED"; + public const SQLSRV_TXN_REPEATABLE_READ = "REPEATABLE_READ"; + public const SQLSRV_TXN_SNAPSHOT = "SNAPSHOT"; + public const SQLSRV_TXN_SERIALIZABLE = "SERIALIZABLE"; + public const SQLSRV_ENCODING_BINARY = 2; + public const SQLSRV_ENCODING_SYSTEM = 3; + public const SQLSRV_ENCODING_UTF8 = 65001; + public const SQLSRV_ENCODING_DEFAULT = 1; + public const SQLSRV_ATTR_ENCODING = 1000; + public const SQLSRV_ATTR_QUERY_TIMEOUT = 1001; + public const SQLSRV_ATTR_DIRECT_QUERY = 1002; + public const SQLSRV_ATTR_CURSOR_SCROLL_TYPE = 1003; + public const SQLSRV_ATTR_CLIENT_BUFFER_MAX_KB_SIZE = 1004; + public const SQLSRV_ATTR_FETCHES_NUMERIC_TYPE = 1005; + public const SQLSRV_ATTR_FETCHES_DATETIME_TYPE = 1006; + public const SQLSRV_ATTR_FORMAT_DECIMALS = 1007; + public const SQLSRV_ATTR_DECIMAL_PLACES = 1008; + public const SQLSRV_ATTR_DATA_CLASSIFICATION = 1009; + public const SQLSRV_PARAM_OUT_DEFAULT_SIZE = -1; + public const SQLSRV_CURSOR_KEYSET = 1; + public const SQLSRV_CURSOR_DYNAMIC = 2; + 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 + * @since 7.3.3 + */ + public const OCI_ATTR_ACTION = 1000; + + /** + * Provides a way to specify the client info on the database session. + * @since 7.2.16 + * @since 7.3.3 + */ + public const OCI_ATTR_CLIENT_INFO = 1001; + + /** + * Provides a way to specify the client identifier on the database session. + * @since 7.2.16 + * @since 7.3.3 + */ + public const OCI_ATTR_CLIENT_IDENTIFIER = 1002; + + /** + * Provides a way to specify the module on the database session. + * @since 7.2.16 + * @since 7.3.3 + */ + public const OCI_ATTR_MODULE = 1003; + + /** + * The number of milliseconds to wait for individual round trips to the database to complete before timing out. + * @since 8.0 + */ + public const OCI_ATTR_CALL_TIMEOUT = 1004; + + /** + * Sets the date format. + */ + public const FB_ATTR_DATE_FORMAT = 1000; + + /** + * Sets the time format. + */ + public const FB_ATTR_TIME_FORMAT = 1001; + + /** + * Sets the timestamp format. + */ + public const FB_ATTR_TIMESTAMP_FORMAT = 1002; + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * This must be a valid SQL statement for the target database server. + *
+ * @param array $options [optional]+ * This array holds one or more key=>value pairs to set + * attribute values for the PDOStatement object that this method + * returns. You would most commonly use this to set the + * PDO::ATTR_CURSOR value to + * PDO::CURSOR_SCROLL to request a scrollable cursor. + * Some drivers have driver specific options that may be set at + * prepare-time. + *
+ * @return PDOStatement|false If the database server successfully prepares the statement, + * PDO::prepare returns a + * PDOStatement object. + * If the database server cannot successfully prepare the statement, + * PDO::prepare returns FALSE or emits + * PDOException (depending on error handling). + * + *
+ * Emulated prepared statements does not communicate with the database server
+ * so PDO::prepare does not check the statement.
+ */
+ #[TentativeType]
+ public function prepare(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query,
+ #[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $options = []
+ ): PDOStatement|false {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Initiates a transaction
+ *
+ * Turns off autocommit mode. While autocommit mode is turned off, + * changes made to the database via the PDO object instance are not committed + * until you end the transaction by calling {@link PDO::commit()}. + * Calling {@link PDO::rollBack()} will roll back all changes to the database and + * return the connection to autocommit mode. + *
+ *+ * Some databases, including MySQL, automatically issue an implicit COMMIT + * when a database definition language (DDL) statement + * such as DROP TABLE or CREATE TABLE is issued within a transaction. + * The implicit COMMIT will prevent you from rolling back any other changes + * within the transaction boundary. + *
+ * @link https://php.net/manual/en/pdo.begintransaction.php + * @return bool TRUE on success or FALSE on failure. + * @throws PDOException If there is already a transaction started or + * the driver does not support transactions+ * The SQL statement to prepare and execute. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @return int|false PDO::exec returns the number of rows that were modified + * or deleted by the SQL statement you issued. If no rows were affected, + * PDO::exec returns 0. + * + * This function may + * return Boolean FALSE, but may also return a non-Boolean value which + * evaluates to FALSE. Please read the section on Booleans for more + * information. Use the === + * operator for testing the return value of this + * function. + *
+ * The following example incorrectly relies on the return value of
+ * PDO::exec, wherein a statement that affected 0 rows
+ * results in a call to die:
+ *
+ * $db->exec() or die(print_r($db->errorInfo(), true));
+ *
+ */
+ #[TentativeType]
+ public function exec(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $statement): int|false {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Executes an SQL statement, returning a result set as a PDOStatement object
+ * @link https://php.net/manual/en/pdo.query.php
+ * @param string $query
+ * The SQL statement to prepare and execute. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param int $fetchMode+ * The fetch mode must be one of the PDO::FETCH_* constants. + *
+ * @param mixed $arg3+ * The second and following parameters are the same as the parameters for PDOStatement::setFetchMode. + *
+ * @param array $ctorargs [optional]+ * Arguments of custom class constructor when the mode + * parameter is set to PDO::FETCH_CLASS. + *
+ * @return PDOStatement|false PDO::query returns a PDOStatement object, or FALSE + * on failure. + * @see PDOStatement::setFetchMode For a full description of the second and following parameters. + */ + #[PhpStormStubsElementAvailable(to: '7.4')] + public function query($query, $fetchMode = PDO::ATTR_DEFAULT_FETCH_MODE, $arg3 = null, $ctorargs = []) {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.2.0)+ * The SQL statement to prepare and execute. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param int|null $fetchMode+ * The fetch mode must be one of the PDO::FETCH_* constants. + *
+ * @param mixed ...$fetch_mode_args+ * Arguments of custom class constructor when the mode + * parameter is set to PDO::FETCH_CLASS. + *
+ * @return PDOStatement|false PDO::query returns a PDOStatement object, or FALSE + * on failure. + * @see PDOStatement::setFetchMode For a full description of the second and following parameters. + */ + #[PhpStormStubsElementAvailable('8.0')] + public function query( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query, + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $fetchMode = null, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] ...$fetch_mode_args + ) {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * Name of the sequence object from which the ID should be returned. + *
+ * @return string|false If a sequence name was not specified for the name + * parameter, PDO::lastInsertId returns a + * string representing the row ID of the last row that was inserted into + * the database. + * + *+ * If a sequence name was specified for the name + * parameter, PDO::lastInsertId returns a + * string representing the last value retrieved from the specified sequence + * object. + *
+ *
+ * If the PDO driver does not support this capability,
+ * PDO::lastInsertId triggers an
+ * IM001 SQLSTATE.
+ * @throws PDOException On error if PDO::ERRMODE_EXCEPTION option is true.
+ */
+ #[TentativeType]
+ public function lastInsertId(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null): string|false {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch the SQLSTATE associated with the last operation on the database handle
+ * @link https://php.net/manual/en/pdo.errorcode.php
+ * @return mixed an SQLSTATE, a five characters alphanumeric identifier defined in
+ * the ANSI SQL-92 standard. Briefly, an SQLSTATE consists of a
+ * two characters class value followed by a three characters subclass value. A
+ * class value of 01 indicates a warning and is accompanied by a return code
+ * of SQL_SUCCESS_WITH_INFO. Class values other than '01', except for the
+ * class 'IM', indicate an error. The class 'IM' is specific to warnings
+ * and errors that derive from the implementation of PDO (or perhaps ODBC,
+ * if you're using the ODBC driver) itself. The subclass value '000' in any
+ * class indicates that there is no subclass for that SQLSTATE.
+ *
+ * PDO::errorCode only retrieves error codes for operations + * performed directly on the database handle. If you create a PDOStatement + * object through PDO::prepare or + * PDO::query and invoke an error on the statement + * handle, PDO::errorCode will not reflect that error. + * You must call PDOStatement::errorCode to return the error + * code for an operation performed on a particular statement handle. + *
+ *
+ * Returns NULL if no operation has been run on the database handle.
+ */
+ #[TentativeType]
+ public function errorCode(): ?string {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch extended error information associated with the last operation on the database handle
+ * @link https://php.net/manual/en/pdo.errorinfo.php
+ * @return array PDO::errorInfo returns an array of error information
+ * about the last operation performed by this database handle. The array
+ * consists of the following fields:
+ *
+ * If the SQLSTATE error code is not set or there is no driver-specific + * error, the elements following element 0 will be set to NULL. + *
+ *
+ * PDO::errorInfo only retrieves error information for
+ * operations performed directly on the database handle. If you create a
+ * PDOStatement object through PDO::prepare or
+ * PDO::query and invoke an error on the statement
+ * handle, PDO::errorInfo will not reflect the error
+ * from the statement handle. You must call
+ * PDOStatement::errorInfo to return the error
+ * information for an operation performed on a particular statement handle.
+ */
+ #[ArrayShape([0 => "string", 1 => "int", 2 => "string"])]
+ #[TentativeType]
+ public function errorInfo(): array {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Retrieve a database connection attribute
+ * @link https://php.net/manual/en/pdo.getattribute.php
+ * @param int $attribute
+ * One of the PDO::ATTR_* constants. The constants that + * apply to database connections are as follows: + * PDO::ATTR_AUTOCOMMIT + * PDO::ATTR_CASE + * PDO::ATTR_CLIENT_VERSION + * PDO::ATTR_CONNECTION_STATUS + * PDO::ATTR_DRIVER_NAME + * PDO::ATTR_ERRMODE + * PDO::ATTR_ORACLE_NULLS + * PDO::ATTR_PERSISTENT + * PDO::ATTR_PREFETCH + * PDO::ATTR_SERVER_INFO + * PDO::ATTR_SERVER_VERSION + * PDO::ATTR_TIMEOUT + *
+ * @return mixed A successful call returns the value of the requested PDO attribute. + * An unsuccessful call returns null. + */ + #[TentativeType] + public function getAttribute(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attribute): mixed {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.1)+ * The string to be quoted. + *
+ * @param int $type [optional]+ * Provides a data type hint for drivers that have alternate quoting styles. + *
+ * @return string|false a quoted string that is theoretically safe to pass into an + * SQL statement. Returns FALSE if the driver does not support quoting in + * this way. + */ + #[TentativeType] + public function quote( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = PDO::PARAM_STR + ): string|false {} + + final public function __wakeup() {} + + final public function __sleep() {} + + /** + * (PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)+ * The name of the function used in SQL statements. + *
+ * @param callable $step_func+ * Callback function called for each row of the result set. Your PHP function should accumulate the result and store it in the aggregation context. + *
+ * @param callable $finalize_func+ * Callback function to aggregate the "stepped" data from each row. Once all the rows have been processed, this function will be called and it should then take the data from the aggregation context and return the result. This callback function should return a type understood by SQLite (i.e. scalar type). + *
+ * @param int $num_args [optional]+ * Hint to the SQLite parser if the callback function accepts a predetermined number of arguments. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function sqliteCreateAggregate($function_name, $step_func, $finalize_func, $num_args = -1) {} + + /** + * (PHP 5 >= 5.3.11, PHP 7)+ * Name of the SQL collating function to be created or redefined. + *
+ * @param callable $callback+ * The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the collation. It should accept two strings and return as strcmp() does, i.e. it should return -1, 1, or 0 if the first string sorts before, sorts after, or is equal to the second. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function sqliteCreateCollation($name, $callback) {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)+ * The name of the function used in SQL statements. + *
+ * @param callable $callback+ * Callback function to handle the defined SQL function. + *
+ * @param int $num_args [optional]+ * The number of arguments that the SQL function takes. If this parameter is -1, + * then the SQL function may take any number of arguments. + *
+ * @param int $flags [optional]+ * A bitwise conjunction of flags. Currently, only PDO::SQLITE_DETERMINISTIC is supported, + * which specifies that the function always returns the same result given the same inputs within + * a single SQL statement. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function sqliteCreateFunction($function_name, $callback, $num_args = -1, $flags = 0) {} + + /** + * (PHP 5 >= 5.3.3, PHP 7, PHP 8)+ * String containing table name + *
+ * @param array $rows+ * Array of strings with fields separated by separator + *
+ * @param string $separator+ * Separator used in rows array + *
+ * @param string $nullAs+ * How to interpret null values + *
+ * @param ?string $fields+ * List of fields to insert + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function pgsqlCopyFromArray(string $tableName, array $rows, string $separator = "\t", string $nullAs = "\\\\N", ?string $fields = null): bool {} + + /** + * (PHP 5 >= 5.3.3, PHP 7, PHP 8)+ * String containing table name + *
+ * @param string $filename+ * Filename containing data to import + *
+ * @param string $separator+ * Separator used in file specified by filename + *
+ * @param string $nullAs+ * How to interpret null values + *
+ * @param ?string $fields+ * List of fields to insert + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function pgsqlCopyFromFile(string $tableName, string $filename, string $separator = "\t", string $nullAs = "\\\\N", ?string $fields = null): bool {} + + /** + * (PHP 5 >= 5.3.3, PHP 7, PHP 8)+ * String containing table name + *
+ * @param string $separator+ * Separator used in rows + *
+ * @param string $nullAs+ * How to interpret null values + *
+ * @param ?string $fields+ * List of fields to insert + *
+ * @return array|false returns an array of rows, or FALSE on failure. + */ + public function pgsqlCopyToArray(string $tableName, string $separator = "\t", string $nullAs = "\\\\N", ?string $fields = null): array|false {} + + /** + * (PHP 5 >= 5.3.3, PHP 7, PHP 8)+ * String containing table name + *
+ * @param string $filename+ * Filename to export data + *
+ * @param string $separator+ * Separator used in file specified by filename + *
+ * @param string $nullAs+ * How to interpret null values + *
+ * @param ?string $fields+ * List of fields to insert + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function pgsqlCopyToFile(string $tableName, string $filename, string $separator = "\t", string $nullAs = "\\\\N", ?string $fields = null): bool {} + + /** + * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)+ * A large object identifier. + *
+ * @param string $mode+ * If mode is r, open the stream for reading. If mode is w, open the stream for writing. + *
+ * @return resource|false returns a stream resource on success or FALSE on failure. + */ + public function pgsqlLOBOpen(string $oid, string $mode = "rb") {} + + /** + * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)+ * A large object identifier. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function pgsqlLOBUnlink(string $oid): bool {} + + /** + * (PHP 5 >= 5.6.0, PHP 7, PHP 8)+ * The format the result set should be returned as, represented as a PDO::FETCH_* constant. + *
+ * @param int $timeoutMilliseconds+ * The length of time to wait for a response, in milliseconds. + *
+ * @return array|false if one or more notifications is pending, returns a single row, + * with fields message and pid, otherwise FALSE. + */ + public function pgsqlGetNotify(int $fetchMode = PDO::FETCH_DEFAULT, int $timeoutMilliseconds = 0): array|false {} + + /** + * (PHP 5 >= 5.6.0, PHP 7, PHP 8)+ * An array of values with as many elements as there are bound + * parameters in the SQL statement being executed. + * All values are treated as PDO::PARAM_STR. + *
+ *+ * You cannot bind multiple values to a single parameter; for example, + * you cannot bind two values to a single named parameter in an IN() + * clause. + *
+ *+ * You cannot bind more values than specified; if more keys exist in + * input_parameters than in the SQL specified + * in the PDO::prepare, then the statement will + * fail and an error is emitted. + *
+ * @return bool TRUE on success or FALSE on failure. + * @throws PDOException On error if PDO::ERRMODE_EXCEPTION option is true. + */ + #[TentativeType] + public function execute(#[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] $params = null): bool {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * Controls how the next row will be returned to the caller. This value + * must be one of the PDO::FETCH_* constants, + * defaulting to value of PDO::ATTR_DEFAULT_FETCH_MODE + * (which defaults to PDO::FETCH_BOTH). + *
+ *+ * PDO::FETCH_ASSOC: returns an array indexed by column + * name as returned in your result set + *
+ * @param int $cursorOrientation [optional]+ * For a PDOStatement object representing a scrollable cursor, this + * value determines which row will be returned to the caller. This value + * must be one of the PDO::FETCH_ORI_* constants, + * defaulting to PDO::FETCH_ORI_NEXT. To request a + * scrollable cursor for your PDOStatement object, you must set the + * PDO::ATTR_CURSOR attribute to + * PDO::CURSOR_SCROLL when you prepare the SQL + * statement with PDO::prepare. + *
+ * @param int $cursorOffset [optional] + * @return mixed The return value of this function on success depends on the fetch type. In + * all cases, FALSE is returned on failure. + */ + #[TentativeType] + public function fetch( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = PDO::FETCH_DEFAULT, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $cursorOrientation = PDO::FETCH_ORI_NEXT, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $cursorOffset = 0 + ): mixed {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * Parameter identifier. For a prepared statement using named + * placeholders, this will be a parameter name of the form + * :name. For a prepared statement using + * question mark placeholders, this will be the 1-indexed position of + * the parameter. + *
+ * @param mixed &$var+ * Name of the PHP variable to bind to the SQL statement parameter. + *
+ * @param int $type [optional]+ * Explicit data type for the parameter using the PDO::PARAM_* + * constants. + * To return an INOUT parameter from a stored procedure, + * use the bitwise OR operator to set the PDO::PARAM_INPUT_OUTPUT bits + * for the data_type parameter. + *
+ * @param int $maxLength [optional]+ * Length of the data type. To indicate that a parameter is an OUT + * parameter from a stored procedure, you must explicitly set the + * length. + *
+ * @param mixed $driverOptions [optional]+ *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function bindParam( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $param, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] &$var, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = PDO::PARAM_STR, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxLength = 0, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $driverOptions = null + ): bool {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * Number of the column (1-indexed) or name of the column in the result set. + * If using the column name, be aware that the name should match the + * case of the column, as returned by the driver. + *
+ * @param mixed &$var+ * Name of the PHP variable to which the column will be bound. + *
+ * @param int $type [optional]+ * Data type of the parameter, specified by the PDO::PARAM_* constants. + *
+ * @param int $maxLength [optional]+ * A hint for pre-allocation. + *
+ * @param mixed $driverOptions [optional]+ * Optional parameter(s) for the driver. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function bindColumn( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $column, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] &$var, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = PDO::PARAM_STR, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxLength = 0, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $driverOptions = null + ): bool {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)+ * Parameter identifier. For a prepared statement using named + * placeholders, this will be a parameter name of the form + * :name. For a prepared statement using + * question mark placeholders, this will be the 1-indexed position of + * the parameter. + *
+ * @param mixed $value+ * The value to bind to the parameter. + *
+ * @param int $type [optional]+ * Explicit data type for the parameter using the PDO::PARAM_* + * constants. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function bindValue( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $param, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = PDO::PARAM_STR + ): bool {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)+ * 0-indexed number of the column you wish to retrieve from the row. If + * no value is supplied, PDOStatement::fetchColumn + * fetches the first column. + *
+ * @return mixed Returns a single column from the next row of a result + * set or FALSE if there are no more rows. + * + *
+ * There is no way to return another column from the same row if you
+ * use PDOStatement::fetchColumn to retrieve data.
+ */
+ #[TentativeType]
+ public function fetchColumn(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $column = 0): mixed {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Returns an array containing all of the result set rows
+ * @link https://php.net/manual/en/pdostatement.fetchall.php
+ * @param int $mode [optional]
+ * Controls the contents of the returned array as documented in + * PDOStatement::fetch. + * Defaults to value of PDO::ATTR_DEFAULT_FETCH_MODE + * (which defaults to PDO::FETCH_BOTH) + *
+ *+ * To return an array consisting of all values of a single column from + * the result set, specify PDO::FETCH_COLUMN. You + * can specify which column you want with the + * column-index parameter. + *
+ *+ * To fetch only the unique values of a single column from the result set, + * bitwise-OR PDO::FETCH_COLUMN with + * PDO::FETCH_UNIQUE. + *
+ *+ * To return an associative array grouped by the values of a specified + * column, bitwise-OR PDO::FETCH_COLUMN with + * PDO::FETCH_GROUP. + *
+ * @param mixed ...$args+ * Arguments of custom class constructor when the fetch_style + * parameter is PDO::FETCH_CLASS. + *
+ * @return array|false PDOStatement::fetchAll returns an array containing + * all of the remaining rows in the result set. The array represents each + * row as either an array of column values or an object with properties + * corresponding to each column name. + * An empty array is returned if there are zero results to fetch, or false on failure. + * + *
+ * Using this method to fetch large result sets will result in a heavy
+ * demand on system and possibly network resources. Rather than retrieving
+ * all of the data and manipulating it in PHP, consider using the database
+ * server to manipulate the result sets. For example, use the WHERE and
+ * ORDER BY clauses in SQL to restrict results before retrieving and
+ * processing them with PHP.
+ */
+ #[TentativeType]
+ public function fetchAll(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = PDO::FETCH_DEFAULT,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $fetch_argument = null,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] ...$args
+ ): array {}
+
+ /**
+ * @template T
+ *
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.4)
+ * Name of the created class.
+ *
+ * Elements of this array are passed to the constructor.
+ *
+ * The 0-indexed column in the result set.
+ *
+ * Fetches the next row and returns it as an object.
+ * @link https://php.net/manual/en/pdostatement.fetchobject.php
+ * @param class-string
+ * Fetch the SQLSTATE associated with the last operation on the statement handle
+ * @link https://php.net/manual/en/pdostatement.errorcode.php
+ * @return string Identical to PDO::errorCode, except that
+ * PDOStatement::errorCode only retrieves error codes
+ * for operations performed with PDOStatement objects.
+ */
+ #[TentativeType]
+ public function errorCode(): ?string {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Fetch extended error information associated with the last operation on the statement handle
+ * @link https://php.net/manual/en/pdostatement.errorinfo.php
+ * @return array PDOStatement::errorInfo returns an array of
+ * error information about the last operation performed by this
+ * statement handle. The array consists of the following fields:
+ *
+ *
+ * Element
+ * Information
+ *
+ *
+ * 0
+ * SQLSTATE error code (a five characters alphanumeric identifier defined
+ * in the ANSI SQL standard).
+ *
+ *
+ * 1
+ * Driver specific error code.
+ *
+ *
+ */
+ #[ArrayShape([0 => "string", 1 => "int", 2 => "string"])]
+ #[TentativeType]
+ public function errorInfo(): array {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)2
+ * Driver specific error message.
+ *
+ * Set a statement attribute
+ * @link https://php.net/manual/en/pdostatement.setattribute.php
+ * @param int $attribute
+ * @param mixed $value
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function setAttribute(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attribute,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Retrieve a statement attribute
+ * @link https://php.net/manual/en/pdostatement.getattribute.php
+ * @param int $name
+ * @return mixed the attribute value.
+ */
+ #[TentativeType]
+ public function getAttribute(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $name): mixed {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Returns the number of columns in the result set
+ * @link https://php.net/manual/en/pdostatement.columncount.php
+ * @return int the number of columns in the result set represented by the
+ * PDOStatement object. If there is no result set,
+ * PDOStatement::columnCount returns 0.
+ */
+ #[TentativeType]
+ public function columnCount(): int {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Returns metadata for a column in a result set
+ * @link https://php.net/manual/en/pdostatement.getcolumnmeta.php
+ * @param int $column
| Name | + *Value | + *
| native_type | + *The PHP native type used to represent the column value. | + *
| driver:decl_type | + *The SQL type used to represent the column value in the database. + * If the column in the result set is the result of a function, this value + * is not returned by PDOStatement::getColumnMeta. + * | + *
| flags | + *Any flags set for this column. | + *
| name | + *The name of this column as returned by the database. | + *
| table | + *The name of this column's table as returned by the database. | + *
| len | + *The length of this column. Normally -1 for + * types other than floating point decimals. | + *
| precision | + *The numeric precision of this column. Normally + * 0 for types other than floating point + * decimals. | + *
| pdo_type | + *The type of this column as represented by the + * PDO::PARAM_* constants. | + *
+ * Returns FALSE if the requested column does not exist in the result set,
+ * or if no result set exists.
+ */
+ #[TentativeType]
+ #[ArrayShape([
+ "name" => "string",
+ "len" => "int",
+ "precision" => "int",
+ "oci:decl_type" => "int|string",
+ "native_type" => "string",
+ "scale" => "int",
+ "flags" => "array",
+ "pdo_type" => "int"
+ ])]
+ public function getColumnMeta(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $column): array|false {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Set the default fetch mode for this statement
+ * @link https://php.net/manual/en/pdostatement.setfetchmode.php
+ * @param int $mode
+ * The fetch mode must be one of the PDO::FETCH_* constants. + *
+ * @param null|string|object $className [optional]+ * Class name or object + *
+ * @param array $params [optional]Constructor arguments.
+ * @return bool TRUE on success or FALSE on failure. + */ + #[PhpStormStubsElementAvailable(to: '7.4')] + public function setFetchMode($mode, $className = null, $params = []) {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)+ * The fetch mode must be one of the PDO::FETCH_* constants. + *
+ * @param string|object|null $className [optional]+ * Class name or object + *
+ * @param mixed ...$paramsConstructor arguments.
+ * @return bool TRUE on success or FALSE on failure. + */ + #[PhpStormStubsElementAvailable('8.0')] + public function setFetchMode($mode, $className = null, ...$params) {} + + /** + * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)+ * Path to an existing Phar archive or to-be-created archive. The file name's + * extension must contain .phar. + *
+ * @param int $flags [optional]+ * Flags to pass to parent class RecursiveDirectoryIterator. + *
+ * @param string $alias [optional]+ * Alias with which this Phar archive should be referred to in calls to stream + * functionality. + *
+ * @throws BadMethodCallException If called twice. + * @throws UnexpectedValueException If the phar archive can't be opened. + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FilesystemIterator::SKIP_DOTS|FilesystemIterator::UNIX_PATHS, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $alias = null, + #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $fileformat = null + ) {} + + public function __destruct() {} + + /** + * (Unknown)+ * The name of the empty directory to create in the phar archive + *
+ * @return void no return value, exception is thrown on failure. + */ + #[TentativeType] + public function addEmptyDir( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $directory = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $directory + ): void {} + + /** + * (Unknown)+ * Full or relative path to a file on disk to be added + * to the phar archive. + *
+ * @param string $localName [optional]+ * Path that the file will be stored in the archive. + *
+ * @return void no return value, exception is thrown on failure. + */ + #[TentativeType] + public function addFile( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $localName = null + ): void {} + + /** + * (Unknown)+ * Path that the file will be stored in the archive. + *
+ * @param string $contents+ * The file contents to store + *
+ * @return void no return value, exception is thrown on failure. + */ + #[TentativeType] + public function addFromString( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $contents = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $contents + ): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The full or relative path to the directory that contains all files + * to add to the archive. + *
+ * @param $pattern $regex [optional]+ * An optional pcre regular expression that is used to filter the + * list of files. Only file paths matching the regular expression + * will be included in the archive. + *
+ * @return array Phar::buildFromDirectory returns an associative array + * mapping internal path of file to the full path of the file on the + * filesystem. + */ + #[TentativeType] + public function buildFromDirectory( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $directory, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern = '' + ): array {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * Any iterator that either associatively maps phar file to location or + * returns SplFileInfo objects + *
+ * @param string $baseDirectory [optional]+ * For iterators that return SplFileInfo objects, the portion of each + * file's full path to remove when adding to the phar archive + *
+ * @return array Phar::buildFromIterator returns an associative array + * mapping internal path of file to the full path of the file on the + * filesystem. + */ + #[TentativeType] + public function buildFromIterator( + Traversable $iterator, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $baseDirectory = null + ): array {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * Compression must be one of Phar::GZ, + * Phar::BZ2 to add compression, or Phar::NONE + * to remove compression. + *
+ * @return void No value is returned. + */ + #[TentativeType] + public function compressFiles(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $compression): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * Compression must be one of Phar::GZ, + * Phar::BZ2 to add compression, or Phar::NONE + * to remove compression. + *
+ * @param string $extension [optional]+ * By default, the extension is .phar.gz + * or .phar.bz2 for compressing phar archives, and + * .phar.tar.gz or .phar.tar.bz2 for + * compressing tar archives. For decompressing, the default file extensions + * are .phar and .phar.tar. + *
+ * @return static|null a Phar object. + */ + #[TentativeType] + public function compress( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $compression, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extension = null + ): ?Phar {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * For decompressing, the default file extensions + * are .phar and .phar.tar. + * Use this parameter to specify another file extension. Be aware + * that all executable phar archives must contain .phar + * in their filename. + *
+ * @return static|null A Phar object is returned. + */ + #[TentativeType] + public function decompress(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extension = null): ?Phar {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * This should be one of Phar::PHAR, Phar::TAR, + * or Phar::ZIP. If set to NULL, the existing file format + * will be preserved. + *
+ * @param int $compression [optional]+ * This should be one of Phar::NONE for no whole-archive + * compression, Phar::GZ for zlib-based compression, and + * Phar::BZ2 for bzip-based compression. + *
+ * @param string $extension [optional]+ * This parameter is used to override the default file extension for a + * converted archive. Note that all zip- and tar-based phar archives must contain + * .phar in their file extension in order to be processed as a + * phar archive. + *
+ *+ * If converting to a phar-based archive, the default extensions are + * .phar, .phar.gz, or .phar.bz2 + * depending on the specified compression. For tar-based phar archives, the + * default extensions are .phar.tar, .phar.tar.gz, + * and .phar.tar.bz2. For zip-based phar archives, the + * default extension is .phar.zip. + *
+ * @return Phar|null The method returns a Phar object on success and throws an + * exception on failure. + */ + #[TentativeType] + public function convertToExecutable( + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $format = null, + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $compression = null, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extension = null + ): ?Phar {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * This should be one of Phar::TAR + * or Phar::ZIP. If set to NULL, the existing file format + * will be preserved. + *
+ * @param int $compression [optional]+ * This should be one of Phar::NONE for no whole-archive + * compression, Phar::GZ for zlib-based compression, and + * Phar::BZ2 for bzip-based compression. + *
+ * @param string $extension [optional]+ * This parameter is used to override the default file extension for a + * converted archive. Note that .phar cannot be used + * anywhere in the filename for a non-executable tar or zip archive. + *
+ *+ * If converting to a tar-based phar archive, the + * default extensions are .tar, .tar.gz, + * and .tar.bz2 depending on specified compression. + * For zip-based archives, the + * default extension is .zip. + *
+ * @return PharData|null The method returns a PharData object on success and throws an + * exception on failure. + */ + #[TentativeType] + public function convertToData( + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $format = null, + #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $compression = null, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extension = null + ): ?PharData {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * Path within an archive to the file to delete. + *
+ * @return bool returns TRUE on success, but it is better to check for thrown exception, + * and assume success if none is thrown. + */ + public function delete(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName) {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.2.0)+ * Path within an archive to the file to delete. + *
+ * @param string|array|null $files [optional]+ * The name of a file or directory to extract, or an array of files/directories to extract + *
+ * @param bool $overwrite [optional]+ * Set to TRUE to enable overwriting existing files + *
+ * @return bool returns TRUE on success, but it is better to check for thrown exception, + * and assume success if none is thrown. + */ + #[TentativeType] + public function extractTo( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $directory, + #[LanguageLevelTypeAware(['8.0' => 'array|string|null'], default: '')] $files = null, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $overwrite = false + ): bool {} + + /** + * @return string|null + * @see setAlias + */ + #[TentativeType] + public function getAlias(): ?string {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * Either Phar::PHAR, Phar::TAR, or + * Phar::ZIP to test for the format of the archive. + *
+ * @return bool TRUE if the phar archive matches the file format requested by the parameter + */ + #[TentativeType] + public function isFileFormat(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $format): bool {} + + /** + * (Unknown)+ * The filename (relative path) to look for in a Phar. + *
+ * @return bool TRUE if the file exists within the phar, or FALSE if not. + */ + #[TentativeType] + public function offsetExists($localName): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The filename (relative path) to look for in a Phar. + *
+ * @return PharFileInfo A PharFileInfo object is returned that can be used to + * iterate over a file's contents or to retrieve information about the current file. + */ + #[TentativeType] + public function offsetGet($localName): SplFileInfo {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The filename (relative path) to modify in a Phar. + *
+ * @param string $value+ * Content of the file. + *
+ * @return void No return values. + */ + #[TentativeType] + public function offsetSet($localName, $value): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The filename (relative path) to modify in a Phar. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function offsetUnset($localName): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.2.1)+ * A shorthand string that this archive can be referred to in phar + * stream wrapper access. + *
+ * @return bool + */ + #[TentativeType] + public function setAlias(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $alias): bool {} + + /** + * (Unknown)+ * Relative path within the phar archive to run if accessed on the command-line + *
+ * @param string $webIndex [optional]+ * Relative path within the phar archive to run if accessed through a web browser + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + 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)+ * Any PHP variable containing information to store that describes the phar archive + *
+ * @return void No value is returned. + */ + #[TentativeType] + public function setMetadata(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $metadata): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.1.0)+ * One of Phar::MD5, + * Phar::SHA1, Phar::SHA256, + * Phar::SHA512, or Phar::OPENSSL + *
+ * @param string $privateKey [optional]
+ * The contents of an OpenSSL private key, as extracted from a certificate or
+ * OpenSSL key file:
+ *
+ * $private = openssl_get_privatekey(file_get_contents('private.pem'));
+ * $pkey = '';
+ * openssl_pkey_export($private, $pkey);
+ * $p->setSignatureAlgorithm(Phar::OPENSSL, $pkey);
+ *
+ * See phar introduction for instructions on
+ * naming and placement of the public key file.
+ *
+ * A string or an open stream handle to use as the executable stub for this + * phar archive. + *
+ * @param int $length [optional]+ *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function setStub( + $stub, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length + ) {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * Either Phar::GZ or Phar::BZ2 can be + * used to test whether compression is possible with a specific compression + * algorithm (zlib or bzip2). + *
+ * @return bool TRUE if compression/decompression is available, FALSE if not. + */ + final public static function canCompress(int $compression = 0): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The name or full path to a phar archive not yet created + *
+ * @param bool $executable [optional]+ * This parameter determines whether the filename should be treated as + * a phar executable archive, or a data non-executable archive + *
+ * @return bool TRUE if the filename is valid, FALSE if not. + */ + final public static function isValidPharFilename(string $filename, bool $executable = true): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * the full or relative path to the phar archive to open + *
+ * @param string|null $alias [optional]+ * The alias that may be used to refer to the phar archive. Note + * that many phar archives specify an explicit alias inside the + * phar archive, and a PharException will be thrown if + * a new alias is specified in this case. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + final public static function loadPhar(string $filename, ?string $alias = null): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The alias that can be used in phar:// URLs to + * refer to this archive, rather than its full path. + *
+ * @param int $offset [optional]+ * Unused variable, here for compatibility with PEAR's PHP_Archive. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + final public static function mapPhar(?string $alias = null, int $offset = 0): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * If FALSE, the full path on disk to the phar + * archive is returned. If TRUE, a full phar URL is returned. + *
+ * @return string the filename if valid, empty string otherwise. + */ + final public static function running( + #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $returnPhar, + #[PhpStormStubsElementAvailable(from: '7.0')] bool $returnPhar = true + ): string {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The internal path within the phar archive to use as the mounted path location. + * This must be a relative path within the phar archive, and must not already exist. + *
+ * @param string $externalPath+ * A path or URL to an external file or directory to mount within the phar archive + *
+ * @return void No return. PharException is thrown on failure. + */ + final public static function mount(string $pharPath, string $externalPath): void {} + + /** + * (Unknown)+ * an array containing as string indices any of + * REQUEST_URI, PHP_SELF, + * SCRIPT_NAME and SCRIPT_FILENAME. + * Other values trigger an exception, and Phar::mungServer + * is case-sensitive. + *
+ * @return void No return. + */ + final public static function mungServer(array $variables): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The path on disk to the phar archive. + *
+ * @throws PharException + * @return bool TRUE on success or FALSE on failure. + */ + final public static function unlinkArchive(string $filename): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The alias that can be used in phar:// URLs to + * refer to this archive, rather than its full path. + *
+ * @param string|null $index [optional]+ * The location within the phar of the directory index. + *
+ * @param null|string $fileNotFoundScript [optional]+ * The location of the script to run when a file is not found. This + * script should output the proper HTTP 404 headers. + *
+ * @param null|array $mimeTypes [optional]
+ * An array mapping additional file extensions to MIME type.
+ * If the default mapping is sufficient, pass an empty array.
+ * By default, these extensions are mapped to these MIME types:
+ *
+ * $mimes = array(
+ * 'phps' => Phar::PHPS, // pass to highlight_file()
+ * 'c' => 'text/plain',
+ * 'cc' => 'text/plain',
+ * 'cpp' => 'text/plain',
+ * 'c++' => 'text/plain',
+ * 'dtd' => 'text/plain',
+ * 'h' => 'text/plain',
+ * 'log' => 'text/plain',
+ * 'rng' => 'text/plain',
+ * 'txt' => 'text/plain',
+ * 'xsd' => 'text/plain',
+ * 'php' => Phar::PHP, // parse as PHP
+ * 'inc' => Phar::PHP, // parse as PHP
+ * 'avi' => 'video/avi',
+ * 'bmp' => 'image/bmp',
+ * 'css' => 'text/css',
+ * 'gif' => 'image/gif',
+ * 'htm' => 'text/html',
+ * 'html' => 'text/html',
+ * 'htmls' => 'text/html',
+ * 'ico' => 'image/x-ico',
+ * 'jpe' => 'image/jpeg',
+ * 'jpg' => 'image/jpeg',
+ * 'jpeg' => 'image/jpeg',
+ * 'js' => 'application/x-javascript',
+ * 'midi' => 'audio/midi',
+ * 'mid' => 'audio/midi',
+ * 'mod' => 'audio/mod',
+ * 'mov' => 'movie/quicktime',
+ * 'mp3' => 'audio/mp3',
+ * 'mpg' => 'video/mpeg',
+ * 'mpeg' => 'video/mpeg',
+ * 'pdf' => 'application/pdf',
+ * 'png' => 'image/png',
+ * 'swf' => 'application/shockwave-flash',
+ * 'tif' => 'image/tiff',
+ * 'tiff' => 'image/tiff',
+ * 'wav' => 'audio/wav',
+ * 'xbm' => 'image/xbm',
+ * 'xml' => 'text/xml',
+ * );
+ *
+ *
+ * The rewrites function is passed a string as its only parameter and must return a string or FALSE. + *
+ *+ * If you are using fast-cgi or cgi then the parameter passed to the function is the value of the + * $_SERVER['PATH_INFO'] variable. Otherwise, the parameter passed to the function is the value + * of the $_SERVER['REQUEST_URI'] variable. + *
+ *+ * If a string is returned it is used as the internal file path. If FALSE is returned then webPhar() will + * send a HTTP 403 Denied Code. + *
+ * @return void No value is returned. + */ + final public static function webPhar( + ?string $alias = null, + ?string $index = null, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $fileNotFoundScript = null, + array $mimeTypes = [], + ?callable $rewrite = null + ): void {} + + /** + * Returns whether current entry is a directory and not '.' or '..' + * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php + * @param bool $allow_links [optional]+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..' + */ + public function hasChildren($allow_links = false) {} + + /** + * Returns an iterator for the current entry if it is a directory + * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php + * @return mixed The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator + * constants. + */ + public function getChildren() {} + + /** + * Rewinds back to the beginning + * @link https://php.net/manual/en/filesystemiterator.rewind.php + * @return void No value is returned. + */ + public function rewind() {} + + /** + * Move to the next file + * @link https://php.net/manual/en/filesystemiterator.next.php + * @return void No value is returned. + */ + public function next() {} + + /** + * Retrieve the key for the current file + * @link https://php.net/manual/en/filesystemiterator.key.php + * @return string the pathname or filename depending on the set flags. + * See the FilesystemIterator constants. + */ + public function key() {} + + /** + * The current file + * @link https://php.net/manual/en/filesystemiterator.current.php + * @return mixed The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator constants. + */ + public function current() {} + + /** + * Check whether current DirectoryIterator position is a valid file + * @link https://php.net/manual/en/directoryiterator.valid.php + * @return bool TRUE if the position is valid, otherwise FALSE + */ + public function valid() {} + + /** + * Seek to a DirectoryIterator item + * @link https://php.net/manual/en/directoryiterator.seek.php + * @param int $position+ * The zero-based numeric position to seek to. + *
+ * @return void No value is returned. + */ + public function seek($position) {} + + public function _bad_state_ex() {} +} + +/** + * The PharData class provides a high-level interface to accessing and creating + * non-executable tar and zip archives. Because these archives do not contain + * a stub and cannot be executed by the phar extension, it is possible to create + * and manipulate regular zip and tar files using the PharData class even if + * phar.readonly php.ini setting is 1. + * @link https://php.net/manual/en/class.phardata.php + */ +class PharData extends Phar +{ + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * Path to an existing tar/zip archive or to-be-created archive + *
+ * @param int $flags [optional]+ * Flags to pass to Phar parent class + * RecursiveDirectoryIterator. + *
+ * @param string $alias [optional]+ * Alias with which this Phar archive should be referred to in calls to stream + * functionality. + *
+ * @param int $format [optional]+ * One of the + * file format constants + * available within the Phar class. + *
+ */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FilesystemIterator::SKIP_DOTS|FilesystemIterator::UNIX_PATHS, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $alias = null, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $format = 0 + ) {} + + /** + * @param string $localName + * @return bool + */ + #[TentativeType] + public function offsetExists($localName): bool {} + + /** + * @param string $localName + * @return SplFileInfo + */ + #[TentativeType] + public function offsetGet($localName): SplFileInfo {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The filename (relative path) to modify in a tar or zip archive. + *
+ * @param string $value+ * Content of the file. + *
+ * @return void No return values. + */ + #[TentativeType] + public function offsetSet($localName, $value): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * The filename (relative path) to modify in the tar/zip archive. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset($localName): void {} + + /** + * Returns whether current entry is a directory and not '.' or '..' + * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php + * @param bool $allow_links [optional]+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..' + */ + public function hasChildren($allow_links = false) {} + + /** + * Returns an iterator for the current entry if it is a directory + * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php + * @return mixed The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator + * constants. + */ + public function getChildren() {} + + /** + * Rewinds back to the beginning + * @link https://php.net/manual/en/filesystemiterator.rewind.php + * @return void No value is returned. + */ + public function rewind() {} + + /** + * Move to the next file + * @link https://php.net/manual/en/filesystemiterator.next.php + * @return void No value is returned. + */ + public function next() {} + + /** + * Retrieve the key for the current file + * @link https://php.net/manual/en/filesystemiterator.key.php + * @return string the pathname or filename depending on the set flags. + * See the FilesystemIterator constants. + */ + public function key() {} + + /** + * The current file + * @link https://php.net/manual/en/filesystemiterator.current.php + * @return mixed The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator constants. + */ + public function current() {} + + /** + * Check whether current DirectoryIterator position is a valid file + * @link https://php.net/manual/en/directoryiterator.valid.php + * @return bool TRUE if the position is valid, otherwise FALSE + */ + public function valid() {} + + /** + * Seek to a DirectoryIterator item + * @link https://php.net/manual/en/directoryiterator.seek.php + * @param int $position+ * The zero-based numeric position to seek to. + *
+ * @return void No value is returned. + */ + public function seek($position) {} +} + +/** + * The PharFileInfo class provides a high-level interface to the contents + * and attributes of a single file within a phar archive. + * @link https://php.net/manual/en/class.pharfileinfo.php + */ +class PharFileInfo extends SplFileInfo +{ + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * The full url to retrieve a file. If you wish to retrieve the information + * for the file my/file.php from the phar boo.phar, + * the entry should be phar://boo.phar/my/file.php. + *
+ */ + public function __construct(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename) {} + + public function __destruct() {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * permissions (see chmod) + *
+ * @return void No value is returned. + */ + #[TentativeType] + public function chmod(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $perms): void {} + + /** + * (PHP >= 5.3.0, PECL phar >= 2.0.0)+ * One of Phar::GZ or Phar::BZ2, + * defaults to any compression. + *
+ * @return bool TRUE if the file is compressed within the Phar archive, FALSE if not. + */ + #[TentativeType] + public function isCompressed(#[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $compression = null): bool {} + + /** + * (PHP >= 5.3.0, PECL phar >= 1.0.0)+ * Any PHP variable containing information to store alongside a file + *
+ * @return void No value is returned. + */ + #[TentativeType] + public function setMetadata(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $metadata): void {} +} +// End of Phar v.2.0.1 diff --git a/phpstorm-stubs/PhpStormStubsMap.php b/phpstorm-stubs/PhpStormStubsMap.php new file mode 100644 index 0000000..9f3b595 --- /dev/null +++ b/phpstorm-stubs/PhpStormStubsMap.php @@ -0,0 +1,14318 @@ + 'amqp/amqp.php', + 'AMQPChannel' => 'amqp/amqp.php', + 'AMQPChannelException' => 'amqp/amqp.php', + 'AMQPConnection' => 'amqp/amqp.php', + 'AMQPConnectionException' => 'amqp/amqp.php', + 'AMQPDecimal' => 'amqp/amqp.php', + 'AMQPEnvelope' => 'amqp/amqp.php', + 'AMQPEnvelopeException' => 'amqp/amqp.php', + 'AMQPException' => 'amqp/amqp.php', + 'AMQPExchange' => 'amqp/amqp.php', + 'AMQPExchangeException' => 'amqp/amqp.php', + 'AMQPExchangeValue' => 'amqp/amqp.php', + 'AMQPQueue' => 'amqp/amqp.php', + 'AMQPQueueException' => 'amqp/amqp.php', + 'AMQPTimestamp' => 'amqp/amqp.php', + 'APCIterator' => 'apcu/apcu.php', + 'APCUIterator' => 'apcu/apcu.php', + 'AddressInfo' => 'sockets/sockets.php', + 'Aerospike' => 'aerospike/aerospike.php', + 'Aerospike\\Bytes' => 'aerospike/Bytes.php', + 'AllowDynamicProperties' => 'Core/Core_c.php', + 'AppendIterator' => 'SPL/SPL.php', + 'ArgumentCountError' => 'Core/Core_c.php', + 'ArithmeticError' => 'Core/Core_c.php', + 'ArrayAccess' => 'Core/Core_c.php', + 'ArrayIterator' => 'SPL/SPL.php', + 'ArrayObject' => 'SPL/SPL.php', + 'AssertionError' => 'standard/standard_9.php', + 'Attribute' => 'Core/Core_c.php', + 'BackedEnum' => 'Core/Core_c.php', + 'BadFunctionCallException' => 'SPL/SPL.php', + 'BadMethodCallException' => 'SPL/SPL.php', + 'BlackfireProbe' => 'blackfire/blackfire.php', + 'COM' => 'com_dotnet/com_dotnet.php', + 'CURLFile' => 'curl/curl.php', + 'CURLStringFile' => 'curl/CURLStringFile.php', + 'CachingIterator' => 'SPL/SPL.php', + 'CallbackFilterIterator' => 'SPL/SPL.php', + 'Cassandra' => 'cassandra/cassandra.php', + 'Cassandra\\Aggregate' => 'cassandra/cassandra.php', + 'Cassandra\\BatchStatement' => 'cassandra/cassandra.php', + 'Cassandra\\Bigint' => 'cassandra/cassandra.php', + 'Cassandra\\Blob' => 'cassandra/cassandra.php', + 'Cassandra\\Cluster' => 'cassandra/cassandra.php', + 'Cassandra\\Cluster\\Builder' => 'cassandra/cassandra.php', + 'Cassandra\\Collection' => 'cassandra/cassandra.php', + 'Cassandra\\Column' => 'cassandra/cassandra.php', + 'Cassandra\\Custom' => 'cassandra/cassandra.php', + 'Cassandra\\Date' => 'cassandra/cassandra.php', + 'Cassandra\\Decimal' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultAggregate' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultCluster' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultColumn' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultFunction' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultIndex' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultKeyspace' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultMaterializedView' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultSchema' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultSession' => 'cassandra/cassandra.php', + 'Cassandra\\DefaultTable' => 'cassandra/cassandra.php', + 'Cassandra\\Duration' => 'cassandra/cassandra.php', + 'Cassandra\\Exception' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\AlreadyExistsException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\AuthenticationException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ConfigurationException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\DivideByZeroException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\DomainException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ExecutionException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\InvalidArgumentException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\InvalidQueryException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\InvalidSyntaxException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\IsBootstrappingException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\LogicException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\OverloadedException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ProtocolException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\RangeException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ReadTimeoutException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\RuntimeException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ServerException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\TimeoutException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\TruncateException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\UnauthorizedException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\UnavailableException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\UnpreparedException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\ValidationException' => 'cassandra/cassandra.php', + 'Cassandra\\Exception\\WriteTimeoutException' => 'cassandra/cassandra.php', + 'Cassandra\\ExecutionOptions' => 'cassandra/cassandra.php', + 'Cassandra\\Float_' => 'cassandra/cassandra.php', + 'Cassandra\\Function_' => 'cassandra/cassandra.php', + 'Cassandra\\Future' => 'cassandra/cassandra.php', + 'Cassandra\\FutureClose' => 'cassandra/cassandra.php', + 'Cassandra\\FuturePreparedStatement' => 'cassandra/cassandra.php', + 'Cassandra\\FutureRows' => 'cassandra/cassandra.php', + 'Cassandra\\FutureSession' => 'cassandra/cassandra.php', + 'Cassandra\\FutureValue' => 'cassandra/cassandra.php', + 'Cassandra\\Index' => 'cassandra/cassandra.php', + 'Cassandra\\Inet' => 'cassandra/cassandra.php', + 'Cassandra\\Keyspace' => 'cassandra/cassandra.php', + 'Cassandra\\Map' => 'cassandra/cassandra.php', + 'Cassandra\\MaterializedView' => 'cassandra/cassandra.php', + 'Cassandra\\Numeric' => 'cassandra/cassandra.php', + 'Cassandra\\PreparedStatement' => 'cassandra/cassandra.php', + 'Cassandra\\RetryPolicy' => 'cassandra/cassandra.php', + 'Cassandra\\RetryPolicy\\DefaultPolicy' => 'cassandra/cassandra.php', + 'Cassandra\\RetryPolicy\\DowngradingConsistency' => 'cassandra/cassandra.php', + 'Cassandra\\RetryPolicy\\Fallthrough' => 'cassandra/cassandra.php', + 'Cassandra\\RetryPolicy\\Logging' => 'cassandra/cassandra.php', + 'Cassandra\\Rows' => 'cassandra/cassandra.php', + 'Cassandra\\SSLOptions' => 'cassandra/cassandra.php', + 'Cassandra\\SSLOptions\\Builder' => 'cassandra/cassandra.php', + 'Cassandra\\Schema' => 'cassandra/cassandra.php', + 'Cassandra\\Session' => 'cassandra/cassandra.php', + 'Cassandra\\Set' => 'cassandra/cassandra.php', + 'Cassandra\\SimpleStatement' => 'cassandra/cassandra.php', + 'Cassandra\\Smallint' => 'cassandra/cassandra.php', + 'Cassandra\\Statement' => 'cassandra/cassandra.php', + 'Cassandra\\Table' => 'cassandra/cassandra.php', + 'Cassandra\\Time' => 'cassandra/cassandra.php', + 'Cassandra\\Timestamp' => 'cassandra/cassandra.php', + 'Cassandra\\TimestampGenerator' => 'cassandra/cassandra.php', + 'Cassandra\\TimestampGenerator\\Monotonic' => 'cassandra/cassandra.php', + 'Cassandra\\TimestampGenerator\\ServerSide' => 'cassandra/cassandra.php', + 'Cassandra\\Timeuuid' => 'cassandra/cassandra.php', + 'Cassandra\\Tinyint' => 'cassandra/cassandra.php', + 'Cassandra\\Tuple' => 'cassandra/cassandra.php', + 'Cassandra\\Type' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Collection' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Custom' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Map' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Scalar' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Set' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\Tuple' => 'cassandra/cassandra.php', + 'Cassandra\\Type\\UserType' => 'cassandra/cassandra.php', + 'Cassandra\\UserTypeValue' => 'cassandra/cassandra.php', + 'Cassandra\\Uuid' => 'cassandra/cassandra.php', + 'Cassandra\\UuidInterface' => 'cassandra/cassandra.php', + 'Cassandra\\Value' => 'cassandra/cassandra.php', + 'Cassandra\\Varint' => 'cassandra/cassandra.php', + 'ClosedGeneratorException' => 'standard/_types.php', + 'Closure' => 'Core/Core_c.php', + 'Collator' => 'intl/intl.php', + 'Collectable' => 'pthreads/pthreads.php', + 'CompileError' => 'Core/Core_c.php', + 'Couchbase\\AnalyticsEncryptionLevel' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsException' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsIndexManager' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsLink' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsLinkType' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsOptions' => 'couchbase/couchbase.php', + 'Couchbase\\AnalyticsResult' => 'couchbase/couchbase.php', + 'Couchbase\\AppendOptions' => 'couchbase/couchbase.php', + 'Couchbase\\AuthenticationException' => 'couchbase/couchbase.php', + 'Couchbase\\AzureBlobExternalAnalyticsLink' => 'couchbase/couchbase.php', + 'Couchbase\\BadInputException' => 'couchbase/couchbase.php', + 'Couchbase\\BaseException' => 'couchbase/couchbase.php', + 'Couchbase\\BinaryCollection' => 'couchbase/couchbase.php', + 'Couchbase\\BindingsException' => 'couchbase/couchbase.php', + 'Couchbase\\BooleanFieldSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\BooleanSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\Bucket' => 'couchbase/couchbase.php', + 'Couchbase\\BucketManager' => 'couchbase/couchbase.php', + 'Couchbase\\BucketMissingException' => 'couchbase/couchbase.php', + 'Couchbase\\BucketSettings' => 'couchbase/couchbase.php', + 'Couchbase\\CasMismatchException' => 'couchbase/couchbase.php', + 'Couchbase\\Cluster' => 'couchbase/couchbase.php', + 'Couchbase\\ClusterOptions' => 'couchbase/couchbase.php', + 'Couchbase\\Collection' => 'couchbase/couchbase.php', + 'Couchbase\\CollectionManager' => 'couchbase/couchbase.php', + 'Couchbase\\CollectionMissingException' => 'couchbase/couchbase.php', + 'Couchbase\\CollectionSpec' => 'couchbase/couchbase.php', + 'Couchbase\\ConjunctionSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\ConnectAnalyticsLinkOptions' => 'couchbase/couchbase.php', + 'Couchbase\\Coordinate' => 'couchbase/couchbase.php', + 'Couchbase\\CouchbaseRemoteAnalyticsLink' => 'couchbase/couchbase.php', + 'Couchbase\\CounterResult' => 'couchbase/couchbase.php', + 'Couchbase\\CreateAnalyticsDatasetOptions' => 'couchbase/couchbase.php', + 'Couchbase\\CreateAnalyticsDataverseOptions' => 'couchbase/couchbase.php', + 'Couchbase\\CreateAnalyticsIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\CreateAnalyticsLinkOptions' => 'couchbase/couchbase.php', + 'Couchbase\\CreateQueryIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\CreateQueryPrimaryIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DateRangeFacetResult' => 'couchbase/couchbase.php', + 'Couchbase\\DateRangeSearchFacet' => 'couchbase/couchbase.php', + 'Couchbase\\DateRangeSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\DecrementOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DesignDocument' => 'couchbase/couchbase.php', + 'Couchbase\\DisconnectAnalyticsLinkOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DisjunctionSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\DmlFailureException' => 'couchbase/couchbase.php', + 'Couchbase\\DocIdSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\DocumentNotFoundException' => 'couchbase/couchbase.php', + 'Couchbase\\DropAnalyticsDatasetOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropAnalyticsDataverseOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropAnalyticsIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropAnalyticsLinkOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropQueryIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropQueryPrimaryIndexOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DropUserOptions' => 'couchbase/couchbase.php', + 'Couchbase\\DurabilityException' => 'couchbase/couchbase.php', + 'Couchbase\\DurabilityLevel' => 'couchbase/couchbase.php', + 'Couchbase\\EncryptionSettings' => 'couchbase/couchbase.php', + 'Couchbase\\EvictionPolicy' => 'couchbase/couchbase.php', + 'Couchbase\\ExistsOptions' => 'couchbase/couchbase.php', + 'Couchbase\\ExistsResult' => 'couchbase/couchbase.php', + 'Couchbase\\GeoBoundingBoxSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\GeoDistanceSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\GeoPolygonQuery' => 'couchbase/couchbase.php', + 'Couchbase\\GetAllReplicasOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetAllUsersOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetAnalyticsLinksOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetAndLockOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetAndTouchOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetAnyReplicaOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetOptions' => 'couchbase/couchbase.php', + 'Couchbase\\GetReplicaResult' => 'couchbase/couchbase.php', + 'Couchbase\\GetResult' => 'couchbase/couchbase.php', + 'Couchbase\\GetUserOptions' => 'couchbase/couchbase.php', + 'Couchbase\\Group' => 'couchbase/couchbase.php', + 'Couchbase\\HttpException' => 'couchbase/couchbase.php', + 'Couchbase\\IncrementOptions' => 'couchbase/couchbase.php', + 'Couchbase\\IndexFailureException' => 'couchbase/couchbase.php', + 'Couchbase\\IndexNotFoundException' => 'couchbase/couchbase.php', + 'Couchbase\\InsertOptions' => 'couchbase/couchbase.php', + 'Couchbase\\InvalidConfigurationException' => 'couchbase/couchbase.php', + 'Couchbase\\InvalidRangeException' => 'couchbase/couchbase.php', + 'Couchbase\\InvalidStateException' => 'couchbase/couchbase.php', + 'Couchbase\\KeyDeletedException' => 'couchbase/couchbase.php', + 'Couchbase\\KeyExistsException' => 'couchbase/couchbase.php', + 'Couchbase\\KeyLockedException' => 'couchbase/couchbase.php', + 'Couchbase\\KeyValueException' => 'couchbase/couchbase.php', + 'Couchbase\\KeyspaceNotFoundException' => 'couchbase/couchbase.php', + 'Couchbase\\LoggingMeter' => 'couchbase/couchbase.php', + 'Couchbase\\LookupCountSpec' => 'couchbase/couchbase.php', + 'Couchbase\\LookupExistsSpec' => 'couchbase/couchbase.php', + 'Couchbase\\LookupGetFullSpec' => 'couchbase/couchbase.php', + 'Couchbase\\LookupGetSpec' => 'couchbase/couchbase.php', + 'Couchbase\\LookupInOptions' => 'couchbase/couchbase.php', + 'Couchbase\\LookupInResult' => 'couchbase/couchbase.php', + 'Couchbase\\LookupInSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MatchAllSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\MatchNoneSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\MatchPhraseSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\MatchSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\Meter' => 'couchbase/couchbase.php', + 'Couchbase\\MutateArrayAddUniqueSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateArrayAppendSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateArrayInsertSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateArrayPrependSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateCounterSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateInOptions' => 'couchbase/couchbase.php', + 'Couchbase\\MutateInResult' => 'couchbase/couchbase.php', + 'Couchbase\\MutateInSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateInsertSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateRemoveSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateReplaceSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutateUpsertSpec' => 'couchbase/couchbase.php', + 'Couchbase\\MutationResult' => 'couchbase/couchbase.php', + 'Couchbase\\MutationState' => 'couchbase/couchbase.php', + 'Couchbase\\MutationToken' => 'couchbase/couchbase.php', + 'Couchbase\\NetworkException' => 'couchbase/couchbase.php', + 'Couchbase\\NoopMeter' => 'couchbase/couchbase.php', + 'Couchbase\\NoopTracer' => 'couchbase/couchbase.php', + 'Couchbase\\NumericRangeFacetResult' => 'couchbase/couchbase.php', + 'Couchbase\\NumericRangeSearchFacet' => 'couchbase/couchbase.php', + 'Couchbase\\NumericRangeSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\Origin' => 'couchbase/couchbase.php', + 'Couchbase\\ParsingFailureException' => 'couchbase/couchbase.php', + 'Couchbase\\PartialViewException' => 'couchbase/couchbase.php', + 'Couchbase\\PathExistsException' => 'couchbase/couchbase.php', + 'Couchbase\\PathNotFoundException' => 'couchbase/couchbase.php', + 'Couchbase\\PhraseSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\PlanningFailureException' => 'couchbase/couchbase.php', + 'Couchbase\\PrefixSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\PreparedStatementException' => 'couchbase/couchbase.php', + 'Couchbase\\PrependOptions' => 'couchbase/couchbase.php', + 'Couchbase\\QueryErrorException' => 'couchbase/couchbase.php', + 'Couchbase\\QueryException' => 'couchbase/couchbase.php', + 'Couchbase\\QueryIndex' => 'couchbase/couchbase.php', + 'Couchbase\\QueryIndexManager' => 'couchbase/couchbase.php', + 'Couchbase\\QueryMetaData' => 'couchbase/couchbase.php', + 'Couchbase\\QueryOptions' => 'couchbase/couchbase.php', + 'Couchbase\\QueryProfile' => 'couchbase/couchbase.php', + 'Couchbase\\QueryResult' => 'couchbase/couchbase.php', + 'Couchbase\\QueryScanConsistency' => 'couchbase/couchbase.php', + 'Couchbase\\QueryServiceException' => 'couchbase/couchbase.php', + 'Couchbase\\QueryStringSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\QuotaLimitedException' => 'couchbase/couchbase.php', + 'Couchbase\\RateLimitedException' => 'couchbase/couchbase.php', + 'Couchbase\\RegexpSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\RemoveOptions' => 'couchbase/couchbase.php', + 'Couchbase\\ReplaceAnalyticsLinkOptions' => 'couchbase/couchbase.php', + 'Couchbase\\ReplaceOptions' => 'couchbase/couchbase.php', + 'Couchbase\\RequestCanceledException' => 'couchbase/couchbase.php', + 'Couchbase\\RequestSpan' => 'couchbase/couchbase.php', + 'Couchbase\\RequestTracer' => 'couchbase/couchbase.php', + 'Couchbase\\Result' => 'couchbase/couchbase.php', + 'Couchbase\\Role' => 'couchbase/couchbase.php', + 'Couchbase\\RoleAndDescription' => 'couchbase/couchbase.php', + 'Couchbase\\RoleAndOrigin' => 'couchbase/couchbase.php', + 'Couchbase\\S3ExternalAnalyticsLink' => 'couchbase/couchbase.php', + 'Couchbase\\Scope' => 'couchbase/couchbase.php', + 'Couchbase\\ScopeMissingException' => 'couchbase/couchbase.php', + 'Couchbase\\ScopeSpec' => 'couchbase/couchbase.php', + 'Couchbase\\SearchException' => 'couchbase/couchbase.php', + 'Couchbase\\SearchFacet' => 'couchbase/couchbase.php', + 'Couchbase\\SearchFacetResult' => 'couchbase/couchbase.php', + 'Couchbase\\SearchHighlightMode' => 'couchbase/couchbase.php', + 'Couchbase\\SearchIndex' => 'couchbase/couchbase.php', + 'Couchbase\\SearchIndexManager' => 'couchbase/couchbase.php', + 'Couchbase\\SearchMetaData' => 'couchbase/couchbase.php', + 'Couchbase\\SearchOptions' => 'couchbase/couchbase.php', + 'Couchbase\\SearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\SearchResult' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSort' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortField' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortGeoDistance' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortId' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortMissing' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortMode' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortScore' => 'couchbase/couchbase.php', + 'Couchbase\\SearchSortType' => 'couchbase/couchbase.php', + 'Couchbase\\ServiceMissingException' => 'couchbase/couchbase.php', + 'Couchbase\\StorageBackend' => 'couchbase/couchbase.php', + 'Couchbase\\StoreSemantics' => 'couchbase/couchbase.php', + 'Couchbase\\SubdocumentException' => 'couchbase/couchbase.php', + 'Couchbase\\TempFailException' => 'couchbase/couchbase.php', + 'Couchbase\\TermFacetResult' => 'couchbase/couchbase.php', + 'Couchbase\\TermRangeSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\TermSearchFacet' => 'couchbase/couchbase.php', + 'Couchbase\\TermSearchQuery' => 'couchbase/couchbase.php', + 'Couchbase\\ThresholdLoggingTracer' => 'couchbase/couchbase.php', + 'Couchbase\\TimeoutException' => 'couchbase/couchbase.php', + 'Couchbase\\TouchOptions' => 'couchbase/couchbase.php', + 'Couchbase\\UnlockOptions' => 'couchbase/couchbase.php', + 'Couchbase\\UpsertOptions' => 'couchbase/couchbase.php', + 'Couchbase\\UpsertUserOptions' => 'couchbase/couchbase.php', + 'Couchbase\\User' => 'couchbase/couchbase.php', + 'Couchbase\\UserAndMetadata' => 'couchbase/couchbase.php', + 'Couchbase\\UserManager' => 'couchbase/couchbase.php', + 'Couchbase\\ValueRecorder' => 'couchbase/couchbase.php', + 'Couchbase\\ValueTooBigException' => 'couchbase/couchbase.php', + 'Couchbase\\View' => 'couchbase/couchbase.php', + 'Couchbase\\ViewConsistency' => 'couchbase/couchbase.php', + 'Couchbase\\ViewException' => 'couchbase/couchbase.php', + 'Couchbase\\ViewIndexManager' => 'couchbase/couchbase.php', + 'Couchbase\\ViewMetaData' => 'couchbase/couchbase.php', + 'Couchbase\\ViewOptions' => 'couchbase/couchbase.php', + 'Couchbase\\ViewOrdering' => 'couchbase/couchbase.php', + 'Couchbase\\ViewResult' => 'couchbase/couchbase.php', + 'Couchbase\\ViewRow' => 'couchbase/couchbase.php', + 'Couchbase\\WatchQueryIndexesOptions' => 'couchbase/couchbase.php', + 'Couchbase\\WildcardSearchQuery' => 'couchbase/couchbase.php', + 'Countable' => 'Core/Core_c.php', + 'Crypto\\Base64' => 'crypto/crypto.php', + 'Crypto\\Base64Exception' => 'crypto/crypto.php', + 'Crypto\\CMAC' => 'crypto/crypto.php', + 'Crypto\\Cipher' => 'crypto/crypto.php', + 'Crypto\\CipherException' => 'crypto/crypto.php', + 'Crypto\\HMAC' => 'crypto/crypto.php', + 'Crypto\\Hash' => 'crypto/crypto.php', + 'Crypto\\HashException' => 'crypto/crypto.php', + 'Crypto\\KDF' => 'crypto/crypto.php', + 'Crypto\\KDFException' => 'crypto/crypto.php', + 'Crypto\\MAC' => 'crypto/crypto.php', + 'Crypto\\MACException' => 'crypto/crypto.php', + 'Crypto\\PBKDF2' => 'crypto/crypto.php', + 'Crypto\\PBKDF2Exception' => 'crypto/crypto.php', + 'Crypto\\Rand' => 'crypto/crypto.php', + 'Crypto\\RandException' => 'crypto/crypto.php', + 'CurlHandle' => 'curl/curl.php', + 'CurlMultiHandle' => 'curl/curl.php', + 'CurlShareHandle' => 'curl/curl.php', + 'DOMAttr' => 'dom/dom_c.php', + 'DOMCdataSection' => 'dom/dom_c.php', + 'DOMCharacterData' => 'dom/dom_c.php', + 'DOMChildNode' => 'dom/dom_c.php', + 'DOMComment' => 'dom/dom_c.php', + 'DOMConfiguration' => 'dom/dom_c.php', + 'DOMDocument' => 'dom/dom_c.php', + 'DOMDocumentFragment' => 'dom/dom_c.php', + 'DOMDocumentType' => 'dom/dom_c.php', + 'DOMDomError' => 'dom/dom_c.php', + 'DOMElement' => 'dom/dom_c.php', + 'DOMEntity' => 'dom/dom_c.php', + 'DOMEntityReference' => 'dom/dom_c.php', + 'DOMErrorHandler' => 'dom/dom_c.php', + 'DOMException' => 'dom/dom_c.php', + 'DOMImplementation' => 'dom/dom_c.php', + 'DOMImplementationList' => 'dom/dom_c.php', + 'DOMImplementationSource' => 'dom/dom_c.php', + 'DOMLocator' => 'dom/dom_c.php', + 'DOMNameList' => 'dom/dom_c.php', + 'DOMNameSpaceNode' => 'dom/dom_c.php', + 'DOMNamedNodeMap' => 'dom/dom_c.php', + 'DOMNode' => 'dom/dom_c.php', + 'DOMNodeList' => 'dom/dom_c.php', + 'DOMNotation' => 'dom/dom_c.php', + 'DOMParentNode' => 'dom/dom_c.php', + 'DOMProcessingInstruction' => 'dom/dom_c.php', + 'DOMStringExtend' => 'dom/dom_c.php', + 'DOMStringList' => 'dom/dom_c.php', + 'DOMText' => 'dom/dom_c.php', + 'DOMTypeinfo' => 'dom/dom_c.php', + 'DOMUserDataHandler' => 'dom/dom_c.php', + 'DOMXPath' => 'dom/dom_c.php', + 'DOTNET' => 'com_dotnet/com_dotnet.php', + 'DateError' => 'date/date_c.php', + 'DateException' => 'date/date_c.php', + 'DateInterval' => 'date/date_c.php', + 'DateInvalidOperationException' => 'date/date_c.php', + 'DateInvalidTimeZoneException' => 'date/date_c.php', + 'DateMalformedIntervalStringException' => 'date/date_c.php', + 'DateMalformedPeriodStringException' => 'date/date_c.php', + 'DateMalformedStringException' => 'date/date_c.php', + 'DateObjectError' => 'date/date_c.php', + 'DatePeriod' => 'date/date_c.php', + 'DateRangeError' => 'date/date_c.php', + 'DateTime' => 'date/date_c.php', + 'DateTimeImmutable' => 'date/date_c.php', + 'DateTimeInterface' => 'date/date_c.php', + 'DateTimeZone' => 'date/date_c.php', + 'Decimal\\Decimal' => 'decimal/decimal.php', + 'DeflateContext' => 'zlib/zlib.php', + 'Directory' => 'standard/standard_0.php', + 'DirectoryIterator' => 'SPL/SPL_c1.php', + 'DivisionByZeroError' => 'Core/Core_c.php', + 'DomainException' => 'SPL/SPL.php', + 'Ds\\Collection' => 'ds/ds.php', + 'Ds\\Deque' => 'ds/ds.php', + 'Ds\\Hashable' => 'ds/ds.php', + 'Ds\\Map' => 'ds/ds.php', + 'Ds\\Pair' => 'ds/ds.php', + 'Ds\\PriorityQueue' => 'ds/ds.php', + 'Ds\\Queue' => 'ds/ds.php', + 'Ds\\Sequence' => 'ds/ds.php', + 'Ds\\Set' => 'ds/ds.php', + 'Ds\\Stack' => 'ds/ds.php', + 'Ds\\Vector' => 'ds/ds.php', + 'Elastic\\Apm\\CustomErrorData' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\DistributedTracingData' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\ElasticApm' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\ExecutionSegmentContextInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\ExecutionSegmentInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\SpanContextDbInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\SpanContextDestinationInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\SpanContextHttpInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\SpanContextInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\SpanInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\TransactionBuilderInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\TransactionContextInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\TransactionContextRequestInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\TransactionContextRequestUrlInterface' => 'elastic_apm/elastic_apm.php', + 'Elastic\\Apm\\TransactionInterface' => 'elastic_apm/elastic_apm.php', + 'EmptyIterator' => 'SPL/SPL.php', + 'EnchantBroker' => 'enchant/enchant.php', + 'EnchantDictionary' => 'enchant/enchant.php', + 'Error' => 'Core/Core_c.php', + 'ErrorException' => 'Core/Core_c.php', + 'Ev' => 'Ev/Ev.php', + 'EvCheck' => 'Ev/Ev.php', + 'EvChild' => 'Ev/Ev.php', + 'EvEmbed' => 'Ev/Ev.php', + 'EvFork' => 'Ev/Ev.php', + 'EvIdle' => 'Ev/Ev.php', + 'EvIo' => 'Ev/Ev.php', + 'EvLoop' => 'Ev/Ev.php', + 'EvPeriodic' => 'Ev/Ev.php', + 'EvPrepare' => 'Ev/Ev.php', + 'EvSignal' => 'Ev/Ev.php', + 'EvStat' => 'Ev/Ev.php', + 'EvTimer' => 'Ev/Ev.php', + 'EvWatcher' => 'Ev/Ev.php', + 'Event' => 'event/event.php', + 'EventBase' => 'event/event.php', + 'EventBuffer' => 'event/event.php', + 'EventBufferEvent' => 'event/event.php', + 'EventConfig' => 'event/event.php', + 'EventDnsBase' => 'event/event.php', + 'EventHttp' => 'event/event.php', + 'EventHttpConnection' => 'event/event.php', + 'EventHttpRequest' => 'event/event.php', + 'EventListener' => 'event/event.php', + 'EventSslContext' => 'event/event.php', + 'EventUtil' => 'event/event.php', + 'Exception' => 'Core/Core_c.php', + 'FANNConnection' => 'fann/fann.php', + 'FFI' => 'FFI/FFI.php', + 'FFI\\CData' => 'FFI/FFI.php', + 'FFI\\CType' => 'FFI/FFI.php', + 'FFI\\Exception' => 'FFI/FFI.php', + 'FFI\\ParserException' => 'FFI/FFI.php', + 'FTP\\Connection' => 'ftp/Connection.php', + 'Fiber' => 'Core/Core_c.php', + 'FiberError' => 'Core/Core_c.php', + 'FilesystemIterator' => 'SPL/SPL_c1.php', + 'FilterIterator' => 'SPL/SPL.php', + 'GEOSGeometry' => 'geos/geos.php', + 'GEOSWKBReader' => 'geos/geos.php', + 'GEOSWKBWriter' => 'geos/geos.php', + 'GEOSWKTReader' => 'geos/geos.php', + 'GEOSWKTWriter' => 'geos/geos.php', + 'GMP' => 'gmp/gmp.php', + 'GdFont' => 'gd/GdFont.php', + 'GdImage' => 'gd/gd.php', + 'GearmanClient' => 'gearman/gearman.php', + 'GearmanException' => 'gearman/gearman.php', + 'GearmanJob' => 'gearman/gearman.php', + 'GearmanTask' => 'gearman/gearman.php', + 'GearmanWorker' => 'gearman/gearman.php', + 'Generator' => 'standard/_types.php', + 'GlobIterator' => 'SPL/SPL_c1.php', + 'Gmagick' => 'gmagick/gmagick.php', + 'GmagickDraw' => 'gmagick/gmagick.php', + 'GmagickException' => 'gmagick/gmagick.php', + 'GmagickPixel' => 'gmagick/gmagick.php', + 'GmagickPixelException' => 'gmagick/gmagick.php', + 'Grpc\\Call' => 'grpc/grpc.php', + 'Grpc\\CallCredentials' => 'grpc/grpc.php', + 'Grpc\\Channel' => 'grpc/grpc.php', + 'Grpc\\ChannelCredentials' => 'grpc/grpc.php', + 'Grpc\\Server' => 'grpc/grpc.php', + 'Grpc\\ServerCredentials' => 'grpc/grpc.php', + 'Grpc\\Timeval' => 'grpc/grpc.php', + 'HashContext' => 'hash/hash.php', + 'HttpDeflateStream' => 'http/http.php', + 'HttpEncodingException' => 'http/http.php', + 'HttpException' => 'http/http.php', + 'HttpHeaderException' => 'http/http.php', + 'HttpInflateStream' => 'http/http.php', + 'HttpInvalidParamException' => 'http/http.php', + 'HttpMalformedHeadersException' => 'http/http.php', + 'HttpMessage' => 'http/http.php', + 'HttpMessageTypeException' => 'http/http.php', + 'HttpQueryString' => 'http/http.php', + 'HttpQueryStringException' => 'http/http.php', + 'HttpRequest' => 'http/http.php', + 'HttpRequestDataShare' => 'http/http.php', + 'HttpRequestException' => 'http/http.php', + 'HttpRequestMethodException' => 'http/http.php', + 'HttpRequestPool' => 'http/http.php', + 'HttpRequestPoolException' => 'http/http.php', + 'HttpResponse' => 'http/http.php', + 'HttpResponseException' => 'http/http.php', + 'HttpRuntimeException' => 'http/http.php', + 'HttpSocketException' => 'http/http.php', + 'HttpUrlException' => 'http/http.php', + 'HttpUtil' => 'http/http.php', + 'IMAP\\Connection' => 'imap/Connection.php', + 'Imagick' => 'imagick/imagick.php', + 'ImagickDraw' => 'imagick/imagick.php', + 'ImagickDrawException' => 'imagick/imagick.php', + 'ImagickException' => 'imagick/imagick.php', + 'ImagickKernel' => 'imagick/imagick.php', + 'ImagickKernelException' => 'imagick/imagick.php', + 'ImagickPixel' => 'imagick/imagick.php', + 'ImagickPixelException' => 'imagick/imagick.php', + 'ImagickPixelIterator' => 'imagick/imagick.php', + 'ImagickPixelIteratorException' => 'imagick/imagick.php', + 'InfiniteIterator' => 'SPL/SPL.php', + 'InflateContext' => 'zlib/zlib.php', + 'InternalIterator' => 'Core/Core_c.php', + 'IntlBreakIterator' => 'intl/intl.php', + 'IntlCalendar' => 'intl/intl.php', + 'IntlChar' => 'intl/IntlChar.php', + 'IntlCodePointBreakIterator' => 'intl/intl.php', + 'IntlDateFormatter' => 'intl/intl.php', + 'IntlDatePatternGenerator' => 'intl/IntlDatePatternGenerator.php', + 'IntlException' => 'intl/intl.php', + 'IntlGregorianCalendar' => 'intl/intl.php', + 'IntlIterator' => 'intl/intl.php', + 'IntlPartsIterator' => 'intl/intl.php', + 'IntlRuleBasedBreakIterator' => 'intl/intl.php', + 'IntlTimeZone' => 'intl/intl.php', + 'InvalidArgumentException' => 'SPL/SPL.php', + 'Iterator' => 'Core/Core_c.php', + 'IteratorAggregate' => 'Core/Core_c.php', + 'IteratorIterator' => 'SPL/SPL.php', + 'JavaException' => 'zend/zend.php', + 'JsonException' => 'json/json.php', + 'JsonIncrementalParser' => 'json/json.php', + 'JsonSerializable' => 'json/json.php', + 'Judy' => 'judy/judy.php', + 'LDAP\\Connection' => 'ldap/Connection.php', + 'LDAP\\Result' => 'ldap/Result.php', + 'LDAP\\ResultEntry' => 'ldap/ResultEntry.php', + 'LengthException' => 'SPL/SPL.php', + 'LevelDB' => 'leveldb/LevelDB.php', + 'LevelDBException' => 'leveldb/LevelDB.php', + 'LevelDBIterator' => 'leveldb/LevelDB.php', + 'LevelDBSnapshot' => 'leveldb/LevelDB.php', + 'LevelDBWriteBatch' => 'leveldb/LevelDB.php', + 'LibXMLError' => 'libxml/libxml.php', + 'LimitIterator' => 'SPL/SPL.php', + 'Locale' => 'intl/intl.php', + 'LogicException' => 'SPL/SPL.php', + 'Lua' => 'lua/lua.php', + 'LuaSandbox' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxErrorError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxFatalError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxFunction' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxMemoryError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxRuntimeError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxSyntaxError' => 'LuaSandbox/LuaSandbox.php', + 'LuaSandboxTimeoutError' => 'LuaSandbox/LuaSandbox.php', + 'Memcache' => 'memcache/memcache.php', + 'MemcachePool' => 'memcache/memcache.php', + 'Memcached' => 'memcached/memcached.php', + 'MemcachedException' => 'memcached/memcached.php', + 'MessageFormatter' => 'intl/intl.php', + 'MessagePack' => 'msgpack/msgpack.php', + 'MessagePackUnpacker' => 'msgpack/msgpack.php', + 'Mongo' => 'mongo/mongo.php', + 'MongoBinData' => 'mongo/mongo.php', + 'MongoClient' => 'mongo/mongo.php', + 'MongoCode' => 'mongo/mongo.php', + 'MongoCollection' => 'mongo/mongo.php', + 'MongoCommandCursor' => 'mongo/mongo.php', + 'MongoConnectionException' => 'mongo/mongo.php', + 'MongoCursor' => 'mongo/mongo.php', + 'MongoCursorException' => 'mongo/mongo.php', + 'MongoCursorInterface' => 'mongo/mongo.php', + 'MongoCursorTimeoutException' => 'mongo/mongo.php', + 'MongoDB' => 'mongo/mongo.php', + 'MongoDBRef' => 'mongo/mongo.php', + 'MongoDB\\BSON\\Binary' => 'mongodb/BSON/Binary.php', + 'MongoDB\\BSON\\BinaryInterface' => 'mongodb/BSON/BinaryInterface.php', + 'MongoDB\\BSON\\DBPointer' => 'mongodb/BSON/DBPointer.php', + 'MongoDB\\BSON\\Decimal128' => 'mongodb/BSON/Decimal128.php', + 'MongoDB\\BSON\\Decimal128Interface' => 'mongodb/BSON/Decimal128Interface.php', + 'MongoDB\\BSON\\Document' => 'mongodb/BSON/Document.php', + 'MongoDB\\BSON\\Int64' => 'mongodb/BSON/Int64.php', + 'MongoDB\\BSON\\Iterator' => 'mongodb/BSON/Iterator.php', + 'MongoDB\\BSON\\Javascript' => 'mongodb/BSON/Javascript.php', + 'MongoDB\\BSON\\JavascriptInterface' => 'mongodb/BSON/JavascriptInterface.php', + 'MongoDB\\BSON\\MaxKey' => 'mongodb/BSON/MaxKey.php', + 'MongoDB\\BSON\\MaxKeyInterface' => 'mongodb/BSON/MaxKeyInterface.php', + 'MongoDB\\BSON\\MinKey' => 'mongodb/BSON/MinKey.php', + 'MongoDB\\BSON\\MinKeyInterface' => 'mongodb/BSON/MinKeyInterface.php', + 'MongoDB\\BSON\\ObjectId' => 'mongodb/BSON/ObjectId.php', + 'MongoDB\\BSON\\ObjectIdInterface' => 'mongodb/BSON/ObjectIdInterface.php', + 'MongoDB\\BSON\\PackedArray' => 'mongodb/BSON/PackedArray.php', + 'MongoDB\\BSON\\Persistable' => 'mongodb/BSON/Persistable.php', + 'MongoDB\\BSON\\Regex' => 'mongodb/BSON/Regex.php', + 'MongoDB\\BSON\\RegexInterface' => 'mongodb/BSON/RegexInterface.php', + 'MongoDB\\BSON\\Serializable' => 'mongodb/BSON/Serializable.php', + 'MongoDB\\BSON\\Symbol' => 'mongodb/BSON/Symbol.php', + 'MongoDB\\BSON\\Timestamp' => 'mongodb/BSON/Timestamp.php', + 'MongoDB\\BSON\\TimestampInterface' => 'mongodb/BSON/TimestampInterface.php', + 'MongoDB\\BSON\\Type' => 'mongodb/BSON/Type.php', + 'MongoDB\\BSON\\UTCDateTime' => 'mongodb/BSON/UTCDateTime.php', + 'MongoDB\\BSON\\UTCDateTimeInterface' => 'mongodb/BSON/UTCDateTimeInterface.php', + 'MongoDB\\BSON\\Undefined' => 'mongodb/BSON/Undefined.php', + 'MongoDB\\BSON\\Unserializable' => 'mongodb/BSON/Unserializable.php', + 'MongoDB\\Driver\\BulkWrite' => 'mongodb/BulkWrite.php', + 'MongoDB\\Driver\\ClientEncryption' => 'mongodb/ClientEncryption.php', + 'MongoDB\\Driver\\Command' => 'mongodb/Command.php', + 'MongoDB\\Driver\\Cursor' => 'mongodb/Cursor.php', + 'MongoDB\\Driver\\CursorId' => 'mongodb/CursorId.php', + 'MongoDB\\Driver\\CursorInterface' => 'mongodb/CursorInterface.php', + 'MongoDB\\Driver\\Exception\\AuthenticationException' => 'mongodb/Exception/AuthenticationException.php', + 'MongoDB\\Driver\\Exception\\BulkWriteException' => 'mongodb/Exception/BulkWriteException.php', + 'MongoDB\\Driver\\Exception\\CommandException' => 'mongodb/Exception/CommandException.php', + 'MongoDB\\Driver\\Exception\\ConnectionException' => 'mongodb/Exception/ConnectionException.php', + 'MongoDB\\Driver\\Exception\\ConnectionTimeoutException' => 'mongodb/Exception/ConnectionTimeoutException.php', + 'MongoDB\\Driver\\Exception\\EncryptionException' => 'mongodb/Exception/EncryptionException.php', + 'MongoDB\\Driver\\Exception\\Exception' => 'mongodb/Exception/Exception.php', + 'MongoDB\\Driver\\Exception\\ExecutionTimeoutException' => 'mongodb/Exception/ExecutionTimeoutException.php', + 'MongoDB\\Driver\\Exception\\InvalidArgumentException' => 'mongodb/Exception/InvalidArgumentException.php', + 'MongoDB\\Driver\\Exception\\LogicException' => 'mongodb/Exception/LogicException.php', + 'MongoDB\\Driver\\Exception\\RuntimeException' => 'mongodb/Exception/RuntimeException.php', + 'MongoDB\\Driver\\Exception\\SSLConnectionException' => 'mongodb/Exception/SSLConnectionException.php', + 'MongoDB\\Driver\\Exception\\ServerException' => 'mongodb/Exception/ServerException.php', + 'MongoDB\\Driver\\Exception\\UnexpectedValueException' => 'mongodb/Exception/UnexpectedValueException.php', + 'MongoDB\\Driver\\Exception\\WriteConcernException' => 'mongodb/Exception/WriteConcernException.php', + 'MongoDB\\Driver\\Exception\\WriteException' => 'mongodb/Exception/WriteException.php', + 'MongoDB\\Driver\\Manager' => 'mongodb/Manager.php', + 'MongoDB\\Driver\\Monitoring\\CommandFailedEvent' => 'mongodb/Monitoring/CommandFailedEvent.php', + 'MongoDB\\Driver\\Monitoring\\CommandStartedEvent' => 'mongodb/Monitoring/CommandStartedEvent.php', + 'MongoDB\\Driver\\Monitoring\\CommandSubscriber' => 'mongodb/Monitoring/CommandSubscriber.php', + 'MongoDB\\Driver\\Monitoring\\CommandSucceededEvent' => 'mongodb/Monitoring/CommandSucceededEvent.php', + 'MongoDB\\Driver\\Monitoring\\LogSubscriber' => 'mongodb/Monitoring/LogSubscriber.php', + 'MongoDB\\Driver\\Monitoring\\SDAMSubscriber' => 'mongodb/Monitoring/SDAMSubscriber.php', + 'MongoDB\\Driver\\Monitoring\\ServerChangedEvent' => 'mongodb/Monitoring/ServerChangedEvent.php', + 'MongoDB\\Driver\\Monitoring\\ServerClosedEvent' => 'mongodb/Monitoring/ServerClosedEvent.php', + 'MongoDB\\Driver\\Monitoring\\ServerHeartbeatFailedEvent' => 'mongodb/Monitoring/ServerHeartbeatFailedEvent.php', + 'MongoDB\\Driver\\Monitoring\\ServerHeartbeatStartedEvent' => 'mongodb/Monitoring/ServerHeartbeatStartedEvent.php', + 'MongoDB\\Driver\\Monitoring\\ServerHeartbeatSucceededEvent' => 'mongodb/Monitoring/ServerHeartbeatSucceededEvent.php', + 'MongoDB\\Driver\\Monitoring\\ServerOpeningEvent' => 'mongodb/Monitoring/ServerOpeningEvent.php', + 'MongoDB\\Driver\\Monitoring\\Subscriber' => 'mongodb/Monitoring/Subscriber.php', + 'MongoDB\\Driver\\Monitoring\\TopologyChangedEvent' => 'mongodb/Monitoring/TopologyChangedEvent.php', + 'MongoDB\\Driver\\Monitoring\\TopologyClosedEvent' => 'mongodb/Monitoring/TopologyClosedEvent.php', + 'MongoDB\\Driver\\Monitoring\\TopologyOpeningEvent' => 'mongodb/Monitoring/TopologyOpeningEvent.php', + 'MongoDB\\Driver\\Query' => 'mongodb/Query.php', + 'MongoDB\\Driver\\ReadConcern' => 'mongodb/ReadConcern.php', + 'MongoDB\\Driver\\ReadPreference' => 'mongodb/ReadPreference.php', + 'MongoDB\\Driver\\Server' => 'mongodb/Server.php', + 'MongoDB\\Driver\\ServerApi' => 'mongodb/ServerApi.php', + 'MongoDB\\Driver\\ServerDescription' => 'mongodb/ServerDescription.php', + 'MongoDB\\Driver\\Session' => 'mongodb/Session.php', + 'MongoDB\\Driver\\TopologyDescription' => 'mongodb/TopologyDescription.php', + 'MongoDB\\Driver\\WriteConcern' => 'mongodb/WriteConcern.php', + 'MongoDB\\Driver\\WriteConcernError' => 'mongodb/WriteConcernError.php', + 'MongoDB\\Driver\\WriteError' => 'mongodb/WriteError.php', + 'MongoDB\\Driver\\WriteResult' => 'mongodb/WriteResult.php', + 'MongoDate' => 'mongo/mongo.php', + 'MongoDuplicateKeyException' => 'mongo/mongo.php', + 'MongoException' => 'mongo/mongo.php', + 'MongoExecutionTimeoutException' => 'mongo/mongo.php', + 'MongoGridFS' => 'mongo/mongo.php', + 'MongoGridFSCursor' => 'mongo/mongo.php', + 'MongoGridFSException' => 'mongo/mongo.php', + 'MongoGridFSFile' => 'mongo/mongo.php', + 'MongoId' => 'mongo/mongo.php', + 'MongoInt32' => 'mongo/mongo.php', + 'MongoInt64' => 'mongo/mongo.php', + 'MongoLog' => 'mongo/mongo.php', + 'MongoMaxKey' => 'mongo/mongo.php', + 'MongoMinKey' => 'mongo/mongo.php', + 'MongoPool' => 'mongo/mongo.php', + 'MongoProtocolException' => 'mongo/mongo.php', + 'MongoRegex' => 'mongo/mongo.php', + 'MongoResultException' => 'mongo/mongo.php', + 'MongoTimestamp' => 'mongo/mongo.php', + 'MongoUpdateBatch' => 'mongo/mongo.php', + 'MongoWriteBatch' => 'mongo/mongo.php', + 'MongoWriteConcernException' => 'mongo/mongo.php', + 'Mosquitto\\Client' => 'mosquitto-php/mosquitto-php.php', + 'Mosquitto\\Exception' => 'mosquitto-php/mosquitto-php.php', + 'Mosquitto\\Message' => 'mosquitto-php/mosquitto-php.php', + 'MultipleIterator' => 'SPL/SPL_c1.php', + 'NoRewindIterator' => 'SPL/SPL.php', + 'Normalizer' => 'intl/intl.php', + 'NumberFormatter' => 'intl/intl.php', + 'OAuth' => 'oauth/oauth.php', + 'OAuthException' => 'oauth/oauth.php', + 'OAuthProvider' => 'oauth/oauth.php', + 'OCICollection' => 'oci8/oci8v3.php', + 'OCILob' => 'oci8/oci8v3.php', + 'OCI_Collection' => 'oci8/oci8.php', + 'OCI_Lob' => 'oci8/oci8.php', + 'OpenSSLAsymmetricKey' => 'openssl/openssl.php', + 'OpenSSLCertificate' => 'openssl/openssl.php', + 'OpenSSLCertificateSigningRequest' => 'openssl/openssl.php', + 'OutOfBoundsException' => 'SPL/SPL.php', + 'OutOfRangeException' => 'SPL/SPL.php', + 'OuterIterator' => 'SPL/SPL.php', + 'OverflowException' => 'SPL/SPL.php', + 'Override' => 'Core/Core_c.php', + 'OwsrequestObj' => 'mapscript/mapscript.php', + 'PDFlib' => 'pdflib/PDFlib.php', + 'PDO' => 'PDO/PDO.php', + 'PDOException' => 'PDO/PDO.php', + 'PDORow' => 'PDO/PDO.php', + 'PDOStatement' => 'PDO/PDO.php', + 'PSpell\\Config' => 'pspell/pspell_c.php', + 'PSpell\\Dictionary' => 'pspell/pspell_c.php', + 'ParentIterator' => 'SPL/SPL.php', + 'Parle\\ErrorInfo' => 'Parle/ErrorInfo.php', + 'Parle\\Lexer' => 'Parle/Lexer.php', + 'Parle\\LexerException' => 'Parle/LexerException.php', + 'Parle\\Parser' => 'Parle/Parser.php', + 'Parle\\ParserException' => 'Parle/ParserException.php', + 'Parle\\RLexer' => 'Parle/RLexer.php', + 'Parle\\RParser' => 'Parle/RParser.php', + 'Parle\\Stack' => 'Parle/Stack.php', + 'Parle\\Token' => 'Parle/Token.php', + 'ParseError' => 'Core/Core_c.php', + 'PgSql\\Connection' => 'pgsql/pgsql_c.php', + 'PgSql\\Lob' => 'pgsql/pgsql_c.php', + 'PgSql\\Result' => 'pgsql/pgsql_c.php', + 'Phar' => 'Phar/Phar.php', + 'PharData' => 'Phar/Phar.php', + 'PharException' => 'Phar/Phar.php', + 'PharFileInfo' => 'Phar/Phar.php', + 'PhpToken' => 'tokenizer/PhpToken.php', + 'Pool' => 'pthreads/pthreads.php', + 'RRDCreator' => 'rrd/rrd.php', + 'RRDGraph' => 'rrd/rrd.php', + 'RRDUpdater' => 'rrd/rrd.php', + 'Random\\BrokenRandomEngineError' => 'random/random.php', + 'Random\\CryptoSafeEngine' => 'random/random.php', + 'Random\\Engine' => 'random/random.php', + 'Random\\Engine\\Mt19937' => 'random/random.php', + 'Random\\Engine\\PcgOneseq128XslRr64' => 'random/random.php', + 'Random\\Engine\\Secure' => 'random/random.php', + 'Random\\Engine\\Xoshiro256StarStar' => 'random/random.php', + 'Random\\IntervalBoundary' => 'random/random.php', + 'Random\\RandomError' => 'random/random.php', + 'Random\\RandomException' => 'random/random.php', + 'Random\\Randomizer' => 'random/random.php', + 'RangeException' => 'SPL/SPL.php', + 'RarArchive' => 'rar/rar.php', + 'RarEntry' => 'rar/rar.php', + 'RarException' => 'rar/rar.php', + 'RdKafka' => 'rdkafka/RdKafka.php', + 'RdKafka\\Conf' => 'rdkafka/RdKafka/Conf.php', + 'RdKafka\\Consumer' => 'rdkafka/RdKafka/Consumer.php', + 'RdKafka\\ConsumerTopic' => 'rdkafka/RdKafka/ConsumerTopic.php', + 'RdKafka\\Exception' => 'rdkafka/RdKafka/Exception.php', + 'RdKafka\\KafkaConsumer' => 'rdkafka/RdKafka/KafkaConsumer.php', + 'RdKafka\\KafkaConsumerTopic' => 'rdkafka/RdKafka/KafkaConsumerTopic.php', + 'RdKafka\\KafkaErrorException' => 'rdkafka/RdKafka/KafkaErrorException.php', + 'RdKafka\\Message' => 'rdkafka/RdKafka/Message.php', + 'RdKafka\\Metadata' => 'rdkafka/RdKafka/Metadata.php', + 'RdKafka\\Metadata\\Broker' => 'rdkafka/RdKafka/Metadata/Broker.php', + 'RdKafka\\Metadata\\Collection' => 'rdkafka/RdKafka/Metadata/Collection.php', + 'RdKafka\\Metadata\\Partition' => 'rdkafka/RdKafka/Metadata/Partition.php', + 'RdKafka\\Metadata\\Topic' => 'rdkafka/RdKafka/Metadata/Topic.php', + 'RdKafka\\Producer' => 'rdkafka/RdKafka/Producer.php', + 'RdKafka\\ProducerTopic' => 'rdkafka/RdKafka/ProducerTopic.php', + 'RdKafka\\Queue' => 'rdkafka/RdKafka/Queue.php', + 'RdKafka\\Topic' => 'rdkafka/RdKafka/Topic.php', + 'RdKafka\\TopicConf' => 'rdkafka/RdKafka/TopicConf.php', + 'RdKafka\\TopicPartition' => 'rdkafka/RdKafka/TopicPartition.php', + 'RecursiveArrayIterator' => 'SPL/SPL.php', + 'RecursiveCachingIterator' => 'SPL/SPL.php', + 'RecursiveCallbackFilterIterator' => 'SPL/SPL.php', + 'RecursiveDirectoryIterator' => 'SPL/SPL_c1.php', + 'RecursiveFilterIterator' => 'SPL/SPL.php', + 'RecursiveIterator' => 'SPL/SPL.php', + 'RecursiveIteratorIterator' => 'SPL/SPL.php', + 'RecursiveRegexIterator' => 'SPL/SPL.php', + 'RecursiveTreeIterator' => 'SPL/SPL.php', + 'Redis' => 'redis/Redis.php', + 'RedisArray' => 'redis/RedisArray.php', + 'RedisCluster' => 'redis/RedisCluster.php', + 'RedisClusterException' => 'redis/RedisCluster.php', + 'RedisException' => 'redis/Redis.php', + 'RedisSentinel' => 'redis/RedisSentinel.php', + 'Reflection' => 'Reflection/Reflection.php', + 'ReflectionAttribute' => 'Reflection/ReflectionAttribute.php', + 'ReflectionClass' => 'Reflection/ReflectionClass.php', + 'ReflectionClassConstant' => 'Reflection/ReflectionClassConstant.php', + 'ReflectionEnum' => 'Reflection/ReflectionEnum.php', + 'ReflectionEnumBackedCase' => 'Reflection/ReflectionEnumBackedCase.php', + 'ReflectionEnumUnitCase' => 'Reflection/ReflectionEnumUnitCase.php', + 'ReflectionException' => 'Reflection/ReflectionException.php', + 'ReflectionExtension' => 'Reflection/ReflectionExtension.php', + 'ReflectionFiber' => 'Reflection/ReflectionFiber.php', + 'ReflectionFunction' => 'Reflection/ReflectionFunction.php', + 'ReflectionFunctionAbstract' => 'Reflection/ReflectionFunctionAbstract.php', + 'ReflectionGenerator' => 'Reflection/ReflectionGenerator.php', + 'ReflectionIntersectionType' => 'Reflection/ReflectionIntersectionType.php', + 'ReflectionMethod' => 'Reflection/ReflectionMethod.php', + 'ReflectionNamedType' => 'Reflection/ReflectionNamedType.php', + 'ReflectionObject' => 'Reflection/ReflectionObject.php', + 'ReflectionParameter' => 'Reflection/ReflectionParameter.php', + 'ReflectionProperty' => 'Reflection/ReflectionProperty.php', + 'ReflectionReference' => 'Reflection/ReflectionReference.php', + 'ReflectionType' => 'Reflection/ReflectionType.php', + 'ReflectionUnionType' => 'Reflection/ReflectionUnionType.php', + 'ReflectionZendExtension' => 'Reflection/ReflectionZendExtension.php', + 'Reflector' => 'Reflection/Reflector.php', + 'RegexIterator' => 'SPL/SPL.php', + 'Relay\\Cluster' => 'relay/Cluster.php', + 'Relay\\Event' => 'relay/Event.php', + 'Relay\\Exception' => 'relay/Exception.php', + 'Relay\\KeyType' => 'relay/KeyType.php', + 'Relay\\Relay' => 'relay/Relay.php', + 'Relay\\Sentinel' => 'relay/Sentinel.php', + 'Relay\\Table' => 'relay/Table.php', + 'ResourceBundle' => 'intl/intl.php', + 'ReturnTypeWillChange' => 'Core/Core_c.php', + 'RuntimeException' => 'SPL/SPL.php', + 'SNMP' => 'snmp/snmp.php', + 'SNMPException' => 'snmp/snmp.php', + 'SQLite3' => 'sqlite3/sqlite3.php', + 'SQLite3Exception' => 'sqlite3/sqlite3.php', + 'SQLite3Result' => 'sqlite3/sqlite3.php', + 'SQLite3Stmt' => 'sqlite3/sqlite3.php', + 'SQLiteDatabase' => 'SQLite/SQLite.php', + 'SQLiteException' => 'SQLite/SQLite.php', + 'SQLiteResult' => 'SQLite/SQLite.php', + 'SQLiteUnbuffered' => 'SQLite/SQLite.php', + 'SVM' => 'svm/SVM.php', + 'SVMModel' => 'svm/SVMModel.php', + 'SWFAction' => 'ming/ming.php', + 'SWFBitmap' => 'ming/ming.php', + 'SWFButton' => 'ming/ming.php', + 'SWFDisplayItem' => 'ming/ming.php', + 'SWFFill' => 'ming/ming.php', + 'SWFFont' => 'ming/ming.php', + 'SWFFontChar' => 'ming/ming.php', + 'SWFGradient' => 'ming/ming.php', + 'SWFMorph' => 'ming/ming.php', + 'SWFMovie' => 'ming/ming.php', + 'SWFShape' => 'ming/ming.php', + 'SWFSound' => 'ming/ming.php', + 'SWFSoundInstance' => 'ming/ming.php', + 'SWFSprite' => 'ming/ming.php', + 'SWFText' => 'ming/ming.php', + 'SWFTextField' => 'ming/ming.php', + 'SWFVideoStream' => 'ming/ming.php', + 'Saxon\\SaxonProcessor' => 'SaxonC/SaxonC.php', + 'Saxon\\SchemaValidator' => 'SaxonC/SaxonC.php', + 'Saxon\\XPathProcessor' => 'SaxonC/SaxonC.php', + 'Saxon\\XQueryProcessor' => 'SaxonC/SaxonC.php', + 'Saxon\\XdmAtomicValue' => 'SaxonC/SaxonC.php', + 'Saxon\\XdmItem' => 'SaxonC/SaxonC.php', + 'Saxon\\XdmNode' => 'SaxonC/SaxonC.php', + 'Saxon\\XdmValue' => 'SaxonC/SaxonC.php', + 'Saxon\\Xslt30Processor' => 'SaxonC/SaxonC.php', + 'Saxon\\XsltProcessor' => 'SaxonC/SaxonC.php', + 'SeekableIterator' => 'SPL/SPL.php', + 'SensitiveParameter' => 'Core/Core_c.php', + 'SensitiveParameterValue' => 'Core/Core_c.php', + 'Serializable' => 'Core/Core_c.php', + 'SessionHandler' => 'session/SessionHandler.php', + 'SessionHandlerInterface' => 'session/SessionHandler.php', + 'SessionIdInterface' => 'session/SessionHandler.php', + 'SessionUpdateTimestampHandlerInterface' => 'session/SessionHandler.php', + 'Shmop' => 'shmop/shmop.php', + 'SimdJsonException' => 'simdjson/simdjson.php', + 'SimdJsonValueError' => 'simdjson/simdjson.php', + 'SimpleKafkaClient' => 'simple_kafka_client/SimpleKafkaClient.php', + 'SimpleKafkaClient\\Configuration' => 'simple_kafka_client/SimpleKafkaClient/Configuration.php', + 'SimpleKafkaClient\\Consumer' => 'simple_kafka_client/SimpleKafkaClient/Consumer.php', + 'SimpleKafkaClient\\ConsumerTopic' => 'simple_kafka_client/SimpleKafkaClient/Topic.php', + 'SimpleKafkaClient\\Exception' => 'simple_kafka_client/SimpleKafkaClient/Exception.php', + 'SimpleKafkaClient\\KafkaErrorException' => 'simple_kafka_client/SimpleKafkaClient/KafkaErrorException.php', + 'SimpleKafkaClient\\Message' => 'simple_kafka_client/SimpleKafkaClient/Message.php', + 'SimpleKafkaClient\\Metadata' => 'simple_kafka_client/SimpleKafkaClient/Metadata.php', + 'SimpleKafkaClient\\Metadata\\Broker' => 'simple_kafka_client/SimpleKafkaClient/Metadata/Broker.php', + 'SimpleKafkaClient\\Metadata\\Collection' => 'simple_kafka_client/SimpleKafkaClient/Metadata/Collection.php', + 'SimpleKafkaClient\\Metadata\\Partition' => 'simple_kafka_client/SimpleKafkaClient/Metadata/Partition.php', + 'SimpleKafkaClient\\Metadata\\Topic' => 'simple_kafka_client/SimpleKafkaClient/Metadata/Topic.php', + 'SimpleKafkaClient\\Producer' => 'simple_kafka_client/SimpleKafkaClient/Producer.php', + 'SimpleKafkaClient\\ProducerTopic' => 'simple_kafka_client/SimpleKafkaClient/Topic.php', + 'SimpleKafkaClient\\Topic' => 'simple_kafka_client/SimpleKafkaClient/Topic.php', + 'SimpleKafkaClient\\TopicPartition' => 'simple_kafka_client/SimpleKafkaClient/TopicPartition.php', + 'SimpleXMLElement' => 'SimpleXML/SimpleXML.php', + 'SimpleXMLIterator' => 'SimpleXML/SimpleXML.php', + 'SoapClient' => 'soap/soap.php', + 'SoapFault' => 'soap/soap.php', + 'SoapHeader' => 'soap/soap.php', + 'SoapParam' => 'soap/soap.php', + 'SoapServer' => 'soap/soap.php', + 'SoapVar' => 'soap/soap.php', + 'Socket' => 'sockets/sockets.php', + 'SodiumException' => 'sodium/sodium.php', + 'SolrClient' => 'solr/SolrClient.php', + 'SolrClientException' => 'solr/Exceptions/SolrClientException.php', + 'SolrCollapseFunction' => 'solr/Queries/SolrCollapseFunction.php', + 'SolrDisMaxQuery' => 'solr/Queries/SolrDisMaxQuery.php', + 'SolrDocument' => 'solr/Documents/SolrDocument.php', + 'SolrDocumentField' => 'solr/Documents/SolrDocumentField.php', + 'SolrException' => 'solr/Exceptions/SolrException.php', + 'SolrGenericResponse' => 'solr/Responses/SolrGenericResponse.php', + 'SolrIllegalArgumentException' => 'solr/Exceptions/SolrIllegalArgumentException.php', + 'SolrIllegalOperationException' => 'solr/Exceptions/SolrIllegalOperationException.php', + 'SolrInputDocument' => 'solr/Documents/SolrInputDocument.php', + 'SolrMissingMandatoryParameterException' => 'solr/Exceptions/SolrMissingMandatoryParameterException.php', + 'SolrModifiableParams' => 'solr/Queries/SolrModifiableParams.php', + 'SolrObject' => 'solr/Utils/SolrObject.php', + 'SolrParams' => 'solr/Queries/SolrParams.php', + 'SolrPingResponse' => 'solr/Responses/SolrPingResponse.php', + 'SolrQuery' => 'solr/Queries/SolrQuery.php', + 'SolrQueryResponse' => 'solr/Responses/SolrQueryResponse.php', + 'SolrResponse' => 'solr/Responses/SolrResponse.php', + 'SolrServerException' => 'solr/Exceptions/SolrServerException.php', + 'SolrUpdateResponse' => 'solr/Responses/SolrUpdateResponse.php', + 'SolrUtils' => 'solr/Utils/SolrUtils.php', + 'SplBool' => 'SplType/SplType.php', + 'SplDoublyLinkedList' => 'SPL/SPL_c1.php', + 'SplEnum' => 'SplType/SplType.php', + 'SplFileInfo' => 'SPL/SPL_c1.php', + 'SplFileObject' => 'SPL/SPL_c1.php', + 'SplFixedArray' => 'SPL/SPL_c1.php', + 'SplFloat' => 'SplType/SplType.php', + 'SplHeap' => 'SPL/SPL_c1.php', + 'SplInt' => 'SplType/SplType.php', + 'SplMaxHeap' => 'SPL/SPL_c1.php', + 'SplMinHeap' => 'SPL/SPL_c1.php', + 'SplObjectStorage' => 'SPL/SPL_c1.php', + 'SplObserver' => 'SPL/SPL_c1.php', + 'SplPriorityQueue' => 'SPL/SPL_c1.php', + 'SplQueue' => 'SPL/SPL_c1.php', + 'SplStack' => 'SPL/SPL_c1.php', + 'SplString' => 'SplType/SplType.php', + 'SplSubject' => 'SPL/SPL_c1.php', + 'SplTempFileObject' => 'SPL/SPL_c1.php', + 'SplType' => 'SplType/SplType.php', + 'Spoofchecker' => 'intl/intl.php', + 'Stomp' => 'stomp/stomp.php', + 'StompException' => 'stomp/stomp.php', + 'StompFrame' => 'stomp/stomp.php', + 'Stringable' => 'Core/Core_c.php', + 'Svn' => 'svn/svn.php', + 'SvnNode' => 'svn/svn.php', + 'SvnWc' => 'svn/svn.php', + 'SvnWcSchedule' => 'svn/svn.php', + 'Swoole\\Atomic' => 'swoole/Swoole/Atomic.php', + 'Swoole\\Atomic\\Long' => 'swoole/Swoole/Atomic/Long.php', + 'Swoole\\Client' => 'swoole/Swoole/Client.php', + 'Swoole\\Client\\Exception' => 'swoole/Swoole/Client/Exception.php', + 'Swoole\\Connection\\Iterator' => 'swoole/Swoole/Connection/Iterator.php', + 'Swoole\\Coroutine' => 'swoole/Swoole/Coroutine.php', + 'Swoole\\Coroutine\\Channel' => 'swoole/Swoole/Coroutine/Channel.php', + 'Swoole\\Coroutine\\Client' => 'swoole/Swoole/Coroutine/Client.php', + 'Swoole\\Coroutine\\Context' => 'swoole/Swoole/Coroutine/Context.php', + 'Swoole\\Coroutine\\Curl\\Exception' => 'swoole/Swoole/Coroutine/Curl/Exception.php', + 'Swoole\\Coroutine\\Http2\\Client' => 'swoole/Swoole/Coroutine/Http2/Client.php', + 'Swoole\\Coroutine\\Http2\\Client\\Exception' => 'swoole/Swoole/Coroutine/Http2/Client/Exception.php', + 'Swoole\\Coroutine\\Http\\Client' => 'swoole/Swoole/Coroutine/Http/Client.php', + 'Swoole\\Coroutine\\Http\\Client\\Exception' => 'swoole/Swoole/Coroutine/Http/Client/Exception.php', + 'Swoole\\Coroutine\\Http\\Server' => 'swoole/Swoole/Coroutine/Http/Server.php', + 'Swoole\\Coroutine\\Iterator' => 'swoole/Swoole/Coroutine/Iterator.php', + 'Swoole\\Coroutine\\MySQL' => 'swoole/Swoole/Coroutine/MySQL.php', + 'Swoole\\Coroutine\\MySQL\\Exception' => 'swoole/Swoole/Coroutine/MySQL/Exception.php', + 'Swoole\\Coroutine\\MySQL\\Statement' => 'swoole/Swoole/Coroutine/MySQL/Statement.php', + 'Swoole\\Coroutine\\Redis' => 'swoole/Swoole/Coroutine/Redis.php', + 'Swoole\\Coroutine\\Scheduler' => 'swoole/Swoole/Coroutine/Scheduler.php', + 'Swoole\\Coroutine\\Socket' => 'swoole/Swoole/Coroutine/Socket.php', + 'Swoole\\Coroutine\\Socket\\Exception' => 'swoole/Swoole/Coroutine/Socket/Exception.php', + 'Swoole\\Coroutine\\System' => 'swoole/Swoole/Coroutine/System.php', + 'Swoole\\Error' => 'swoole/Swoole/Error.php', + 'Swoole\\Event' => 'swoole/Swoole/Event.php', + 'Swoole\\Exception' => 'swoole/Swoole/Exception.php', + 'Swoole\\ExitException' => 'swoole/Swoole/ExitException.php', + 'Swoole\\Http2\\Request' => 'swoole/Swoole/Http2/Request.php', + 'Swoole\\Http2\\Response' => 'swoole/Swoole/Http2/Response.php', + 'Swoole\\Http\\Request' => 'swoole/Swoole/Http/Request.php', + 'Swoole\\Http\\Response' => 'swoole/Swoole/Http/Response.php', + 'Swoole\\Http\\Server' => 'swoole/Swoole/Http/Server.php', + 'Swoole\\Lock' => 'swoole/Swoole/Lock.php', + 'Swoole\\Process' => 'swoole/Swoole/Process.php', + 'Swoole\\Process\\Pool' => 'swoole/Swoole/Process/Pool.php', + 'Swoole\\Redis\\Server' => 'swoole/Swoole/Redis/Server.php', + 'Swoole\\Runtime' => 'swoole/Swoole/Runtime.php', + 'Swoole\\Server' => 'swoole/Swoole/Server.php', + 'Swoole\\Server\\Event' => 'swoole/Swoole/Server/Event.php', + 'Swoole\\Server\\Packet' => 'swoole/Swoole/Server/Packet.php', + 'Swoole\\Server\\PipeMessage' => 'swoole/Swoole/Server/PipeMessage.php', + 'Swoole\\Server\\Port' => 'swoole/Swoole/Server/Port.php', + 'Swoole\\Server\\StatusInfo' => 'swoole/Swoole/Server/StatusInfo.php', + 'Swoole\\Server\\Task' => 'swoole/Swoole/Server/Task.php', + 'Swoole\\Server\\TaskResult' => 'swoole/Swoole/Server/TaskResult.php', + 'Swoole\\Table' => 'swoole/Swoole/Table.php', + 'Swoole\\Timer' => 'swoole/Swoole/Timer.php', + 'Swoole\\Timer\\Iterator' => 'swoole/Swoole/Timer/Iterator.php', + 'Swoole\\WebSocket\\CloseFrame' => 'swoole/Swoole/WebSocket/CloseFrame.php', + 'Swoole\\WebSocket\\Frame' => 'swoole/Swoole/WebSocket/Frame.php', + 'Swoole\\WebSocket\\Server' => 'swoole/Swoole/WebSocket/Server.php', + 'SyncEvent' => 'sync/sync.php', + 'SyncMutex' => 'sync/sync.php', + 'SyncReaderWriter' => 'sync/sync.php', + 'SyncSemaphore' => 'sync/sync.php', + 'SyncSharedMemory' => 'sync/sync.php', + 'SysvMessageQueue' => 'sysvmsg/sysvmsg.php', + 'SysvSemaphore' => 'sysvsem/sysvsem.php', + 'SysvSharedMemory' => 'sysvshm/sysvshm.php', + 'Thread' => 'pthreads/pthreads.php', + 'Threaded' => 'pthreads/pthreads.php', + 'Throwable' => 'Core/Core_c.php', + 'Transliterator' => 'intl/intl.php', + 'Traversable' => 'Core/Core_c.php', + 'TypeError' => 'Core/Core_c.php', + 'UConverter' => 'intl/intl.php', + 'UV' => 'uv/UV.php', + 'UnderflowException' => 'SPL/SPL.php', + 'UnexpectedValueException' => 'SPL/SPL.php', + 'UnhandledMatchError' => 'Core/Core_c.php', + 'UnitEnum' => 'Core/Core_c.php', + 'V8Js' => 'v8js/v8js.php', + 'V8JsMemoryLimitException' => 'v8js/v8js.php', + 'V8JsScriptException' => 'v8js/v8js.php', + 'V8JsTimeLimitException' => 'v8js/v8js.php', + 'VARIANT' => 'com_dotnet/com_dotnet.php', + 'ValueError' => 'Core/Core_c.php', + 'Volatile' => 'pthreads/pthreads.php', + 'Vtiful\\Kernel\\Excel' => 'xlswriter/xlswriter.php', + 'Vtiful\\Kernel\\Format' => 'xlswriter/xlswriter.php', + 'WeakMap' => 'Core/Core_c.php', + 'WeakReference' => 'Core/Core_c.php', + 'Worker' => 'pthreads/pthreads.php', + 'XMLParser' => 'xml/xml.php', + 'XMLReader' => 'xmlreader/xmlreader.php', + 'XMLWriter' => 'xmlwriter/xmlwriter.php', + 'XSLTProcessor' => 'xsl/xsl.php', + 'XXTEA' => 'xxtea/xxtea.php', + 'Yaf\\Action_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Application' => 'yaf/yaf_namespace.php', + 'Yaf\\Bootstrap_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Config\\Ini' => 'yaf/yaf_namespace.php', + 'Yaf\\Config\\Simple' => 'yaf/yaf_namespace.php', + 'Yaf\\Config_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Controller_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Dispatcher' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\DispatchFailed' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\LoadFailed' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\LoadFailed\\Action' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\LoadFailed\\Controller' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\LoadFailed\\Module' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\LoadFailed\\View' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\RouterFailed' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\StartupError' => 'yaf/yaf_namespace.php', + 'Yaf\\Exception\\TypeError' => 'yaf/yaf_namespace.php', + 'Yaf\\Loader' => 'yaf/yaf_namespace.php', + 'Yaf\\Plugin_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Registry' => 'yaf/yaf_namespace.php', + 'Yaf\\Request\\Http' => 'yaf/yaf_namespace.php', + 'Yaf\\Request\\Simple' => 'yaf/yaf_namespace.php', + 'Yaf\\Request_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Response\\Cli' => 'yaf/yaf_namespace.php', + 'Yaf\\Response\\Http' => 'yaf/yaf_namespace.php', + 'Yaf\\Response_Abstract' => 'yaf/yaf_namespace.php', + 'Yaf\\Route\\Map' => 'yaf/yaf_namespace.php', + 'Yaf\\Route\\Regex' => 'yaf/yaf_namespace.php', + 'Yaf\\Route\\Rewrite' => 'yaf/yaf_namespace.php', + 'Yaf\\Route\\Simple' => 'yaf/yaf_namespace.php', + 'Yaf\\Route\\Supervar' => 'yaf/yaf_namespace.php', + 'Yaf\\Route_Interface' => 'yaf/yaf_namespace.php', + 'Yaf\\Route_Static' => 'yaf/yaf_namespace.php', + 'Yaf\\Router' => 'yaf/yaf_namespace.php', + 'Yaf\\Session' => 'yaf/yaf_namespace.php', + 'Yaf\\View\\Simple' => 'yaf/yaf_namespace.php', + 'Yaf\\View_Interface' => 'yaf/yaf_namespace.php', + 'Yaf_Action_Abstract' => 'yaf/yaf.php', + 'Yaf_Application' => 'yaf/yaf.php', + 'Yaf_Bootstrap_Abstract' => 'yaf/yaf.php', + 'Yaf_Config_Abstract' => 'yaf/yaf.php', + 'Yaf_Config_Ini' => 'yaf/yaf.php', + 'Yaf_Config_Simple' => 'yaf/yaf.php', + 'Yaf_Controller_Abstract' => 'yaf/yaf.php', + 'Yaf_Dispatcher' => 'yaf/yaf.php', + 'Yaf_Exception' => 'yaf/yaf.php', + 'Yaf_Exception_DispatchFailed' => 'yaf/yaf.php', + 'Yaf_Exception_LoadFailed' => 'yaf/yaf.php', + 'Yaf_Exception_LoadFailed_Action' => 'yaf/yaf.php', + 'Yaf_Exception_LoadFailed_Controller' => 'yaf/yaf.php', + 'Yaf_Exception_LoadFailed_Module' => 'yaf/yaf.php', + 'Yaf_Exception_LoadFailed_View' => 'yaf/yaf.php', + 'Yaf_Exception_RouterFailed' => 'yaf/yaf.php', + 'Yaf_Exception_StartupError' => 'yaf/yaf.php', + 'Yaf_Exception_TypeError' => 'yaf/yaf.php', + 'Yaf_Loader' => 'yaf/yaf.php', + 'Yaf_Plugin_Abstract' => 'yaf/yaf.php', + 'Yaf_Registry' => 'yaf/yaf.php', + 'Yaf_Request_Abstract' => 'yaf/yaf.php', + 'Yaf_Request_Http' => 'yaf/yaf.php', + 'Yaf_Request_Simple' => 'yaf/yaf.php', + 'Yaf_Response_Abstract' => 'yaf/yaf.php', + 'Yaf_Response_Cli' => 'yaf/yaf.php', + 'Yaf_Response_Http' => 'yaf/yaf.php', + 'Yaf_Route_Interface' => 'yaf/yaf.php', + 'Yaf_Route_Map' => 'yaf/yaf.php', + 'Yaf_Route_Regex' => 'yaf/yaf.php', + 'Yaf_Route_Rewrite' => 'yaf/yaf.php', + 'Yaf_Route_Simple' => 'yaf/yaf.php', + 'Yaf_Route_Static' => 'yaf/yaf.php', + 'Yaf_Route_Supervar' => 'yaf/yaf.php', + 'Yaf_Router' => 'yaf/yaf.php', + 'Yaf_Session' => 'yaf/yaf.php', + 'Yaf_View_Interface' => 'yaf/yaf.php', + 'Yaf_View_Simple' => 'yaf/yaf.php', + 'Yar_Client' => 'yar/yar.php', + 'Yar_Client_Exception' => 'yar/yar.php', + 'Yar_Client_Packager_Exception' => 'yar/yar.php', + 'Yar_Client_Protocol_Exception' => 'yar/yar.php', + 'Yar_Client_Transport_Exception' => 'yar/yar.php', + 'Yar_Concurrent_Client' => 'yar/yar.php', + 'Yar_Server' => 'yar/yar.php', + 'Yar_Server_Exception' => 'yar/yar.php', + 'Yar_Server_Output_Exception' => 'yar/yar.php', + 'Yar_Server_Packager_Exception' => 'yar/yar.php', + 'Yar_Server_Protocol_Exception' => 'yar/yar.php', + 'Yar_Server_Request_Exception' => 'yar/yar.php', + 'ZMQ' => 'zmq/zmq.php', + 'ZMQContext' => 'zmq/zmq.php', + 'ZMQContextException' => 'zmq/zmq.php', + 'ZMQDevice' => 'zmq/zmq.php', + 'ZMQDeviceException' => 'zmq/zmq.php', + 'ZMQException' => 'zmq/zmq.php', + 'ZMQPoll' => 'zmq/zmq.php', + 'ZMQPollException' => 'zmq/zmq.php', + 'ZMQSocket' => 'zmq/zmq.php', + 'ZMQSocketException' => 'zmq/zmq.php', + 'ZendAPI_Job' => 'zend/zend.php', + 'ZendAPI_Queue' => 'zend/zend.php', + 'ZipArchive' => 'zip/zip.php', + 'Zookeeper' => 'zookeeper/zookeeper.php', + 'ZookeeperAuthenticationException' => 'zookeeper/zookeeper.php', + 'ZookeeperConnectionException' => 'zookeeper/zookeeper.php', + 'ZookeeperException' => 'zookeeper/zookeeper.php', + 'ZookeeperMarshallingException' => 'zookeeper/zookeeper.php', + 'ZookeeperNoNodeException' => 'zookeeper/zookeeper.php', + 'ZookeeperOperationTimeoutException' => 'zookeeper/zookeeper.php', + 'ZookeeperSessionException' => 'zookeeper/zookeeper.php', + '__PHP_Incomplete_Class' => 'standard/standard_0.php', + '___PHPSTORM_HELPERS\\PS_UNRESERVE_PREFIX_static' => 'standard/_types.php', + '___PHPSTORM_HELPERS\\PS_UNRESERVE_PREFIX_this' => 'standard/_types.php', + '___PHPSTORM_HELPERS\\object' => 'standard/_types.php', + 'ast\\Metadata' => 'ast/ast.php', + 'ast\\Node' => 'ast/ast.php', + 'classObj' => 'mapscript/mapscript.php', + 'clusterObj' => 'mapscript/mapscript.php', + 'colorObj' => 'mapscript/mapscript.php', + 'com_exception' => 'com_dotnet/com_dotnet.php', + 'errorObj' => 'mapscript/mapscript.php', + 'ffmpeg_animated_gif' => 'ffmpeg/ffmpeg.php', + 'ffmpeg_frame' => 'ffmpeg/ffmpeg.php', + 'ffmpeg_movie' => 'ffmpeg/ffmpeg.php', + 'finfo' => 'fileinfo/fileinfo.php', + 'gnupg' => 'gnupg/gnupg.php', + 'gnupg_keylistiterator' => 'gnupg/gnupg.php', + 'gridObj' => 'mapscript/mapscript.php', + 'hashTableObj' => 'mapscript/mapscript.php', + 'http\\Client' => 'http/http3.php', + 'http\\Client\\Curl\\User' => 'http/http3.php', + 'http\\Client\\Request' => 'http/http3.php', + 'http\\Client\\Response' => 'http/http3.php', + 'http\\Cookie' => 'http/http3.php', + 'http\\Encoding\\Stream' => 'http/http3.php', + 'http\\Encoding\\Stream\\Debrotli' => 'http/http3.php', + 'http\\Encoding\\Stream\\Dechunk' => 'http/http3.php', + 'http\\Encoding\\Stream\\Deflate' => 'http/http3.php', + 'http\\Encoding\\Stream\\Enbrotli' => 'http/http3.php', + 'http\\Encoding\\Stream\\Inflate' => 'http/http3.php', + 'http\\Env' => 'http/http3.php', + 'http\\Env\\Request' => 'http/http3.php', + 'http\\Env\\Response' => 'http/http3.php', + 'http\\Env\\Url' => 'http/http3.php', + 'http\\Exception' => 'http/http3.php', + 'http\\Exception\\BadConversionException' => 'http/http3.php', + 'http\\Exception\\BadHeaderException' => 'http/http3.php', + 'http\\Exception\\BadMessageException' => 'http/http3.php', + 'http\\Exception\\BadMethodCallException' => 'http/http3.php', + 'http\\Exception\\BadQueryStringException' => 'http/http3.php', + 'http\\Exception\\BadUrlException' => 'http/http3.php', + 'http\\Exception\\InvalidArgumentException' => 'http/http3.php', + 'http\\Exception\\RuntimeException' => 'http/http3.php', + 'http\\Exception\\UnexpectedValueException' => 'http/http3.php', + 'http\\Header' => 'http/http3.php', + 'http\\Header\\Parser' => 'http/http3.php', + 'http\\Message' => 'http/http3.php', + 'http\\Message\\Body' => 'http/http3.php', + 'http\\Message\\Parser' => 'http/http3.php', + 'http\\Params' => 'http/http3.php', + 'http\\QueryString' => 'http/http3.php', + 'http\\Url' => 'http/http3.php', + 'imageObj' => 'mapscript/mapscript.php', + 'iterable' => 'Core/Core_c.php', + 'java' => 'zend/zend.php', + 'labelObj' => 'mapscript/mapscript.php', + 'labelcacheMemberObj' => 'mapscript/mapscript.php', + 'labelcacheObj' => 'mapscript/mapscript.php', + 'layerObj' => 'mapscript/mapscript.php', + 'legendObj' => 'mapscript/mapscript.php', + 'lineObj' => 'mapscript/mapscript.php', + 'mapObj' => 'mapscript/mapscript.php', + 'mysql_xdevapi\\BaseResult' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Collection' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CollectionAdd' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CollectionFind' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CollectionModify' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CollectionRemove' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\ColumnResult' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CrudOperationBindable' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CrudOperationLimitable' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CrudOperationSkippable' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\CrudOperationSortable' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\DatabaseObject' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\DocResult' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Exception' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Executable' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\ExecutionStatus' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Expression' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Result' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\RowResult' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Schema' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\SchemaObject' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Session' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\SqlStatement' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\SqlStatementResult' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Statement' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Table' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\TableDelete' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\TableInsert' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\TableSelect' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\TableUpdate' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\Warning' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\XSession' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysqli' => 'mysqli/mysqli.php', + 'mysqli_driver' => 'mysqli/mysqli.php', + 'mysqli_result' => 'mysqli/mysqli.php', + 'mysqli_sql_exception' => 'mysqli/mysqli.php', + 'mysqli_stmt' => 'mysqli/mysqli.php', + 'mysqli_warning' => 'mysqli/mysqli.php', + 'newrelic\\DistributedTracePayload' => 'newrelic/newrelic.php', + 'outputformatObj' => 'mapscript/mapscript.php', + 'parallel\\Channel' => 'parallel/parallel/Channel.php', + 'parallel\\Channel\\Error' => 'parallel/parallel/Channel/Error.php', + 'parallel\\Channel\\Error\\Closed' => 'parallel/parallel/Channel/Error/Closed.php', + 'parallel\\Channel\\Error\\Existence' => 'parallel/parallel/Channel/Error/Existence.php', + 'parallel\\Channel\\Error\\IllegalValue' => 'parallel/parallel/Channel/Error/IllegalValue.php', + 'parallel\\Error' => 'parallel/parallel/Error.php', + 'parallel\\Events' => 'parallel/parallel/Events.php', + 'parallel\\Events\\Error' => 'parallel/parallel/Events/Error.php', + 'parallel\\Events\\Error\\Existence' => 'parallel/parallel/Events/Error/Existence.php', + 'parallel\\Events\\Error\\Timeout' => 'parallel/parallel/Events/Error/Timeout.php', + 'parallel\\Events\\Event' => 'parallel/parallel/Events/Event.php', + 'parallel\\Events\\Event\\Error' => 'parallel/parallel/Events/Event/Error.php', + 'parallel\\Events\\Event\\Type' => 'parallel/parallel/Events/Event/Type.php', + 'parallel\\Events\\Input' => 'parallel/parallel/Events/Input.php', + 'parallel\\Events\\Input\\Error' => 'parallel/parallel/Events/Input/Error.php', + 'parallel\\Events\\Input\\Error\\Existence' => 'parallel/parallel/Events/Input/Error/Existence.php', + 'parallel\\Events\\Input\\Error\\IllegalValue' => 'parallel/parallel/Events/Input/Error/IllegalValue.php', + 'parallel\\Future' => 'parallel/parallel/Future.php', + 'parallel\\Future\\Error' => 'parallel/parallel/Future/Error.php', + 'parallel\\Future\\Error\\Cancelled' => 'parallel/parallel/Future/Error/Cancelled.php', + 'parallel\\Future\\Error\\Foreign' => 'parallel/parallel/Future/Error/Foreign.php', + 'parallel\\Future\\Error\\Killed' => 'parallel/parallel/Future/Error/Killed.php', + 'parallel\\Runtime' => 'parallel/parallel/Runtime.php', + 'parallel\\Runtime\\Error' => 'parallel/parallel/Runtime/Error.php', + 'parallel\\Runtime\\Error\\Bootstrap' => 'parallel/parallel/Runtime/Error/Bootstrap.php', + 'parallel\\Runtime\\Error\\Closed' => 'parallel/parallel/Runtime/Error/Closed.php', + 'parallel\\Runtime\\Error\\IllegalFunction' => 'parallel/parallel/Runtime/Error/IllegalFunction.php', + 'parallel\\Runtime\\Error\\IllegalInstruction' => 'parallel/parallel/Runtime/Error/IllegalInstruction.php', + 'parallel\\Runtime\\Error\\IllegalParameter' => 'parallel/parallel/Runtime/Error/IllegalParameter.php', + 'parallel\\Runtime\\Error\\IllegalReturn' => 'parallel/parallel/Runtime/Error/IllegalReturn.php', + 'parallel\\Runtime\\Error\\IllegalVariable' => 'parallel/parallel/Runtime/Error/IllegalVariable.php', + 'parallel\\Runtime\\Error\\Killed' => 'parallel/parallel/Runtime/Error/Killed.php', + 'parallel\\Runtime\\Object\\Unavailable' => 'parallel/parallel/Runtime/Object/Unavailable.php', + 'parallel\\Runtime\\Type\\Unavailable' => 'parallel/parallel/Runtime/Type/Unavailable.php', + 'parallel\\Sync' => 'parallel/parallel/Sync.php', + 'parallel\\Sync\\Error' => 'parallel/parallel/Sync/Error.php', + 'parallel\\Sync\\Error\\IllegalValue' => 'parallel/parallel/Sync/Error/IllegalValue.php', + 'php_user_filter' => 'standard/standard_0.php', + 'pointObj' => 'mapscript/mapscript.php', + 'pq\\COPY' => 'pq/pq.php', + 'pq\\Cancel' => 'pq/pq.php', + 'pq\\Connection' => 'pq/pq.php', + 'pq\\Converter' => 'pq/pq.php', + 'pq\\Cursor' => 'pq/pq.php', + 'pq\\DateTime' => 'pq/pq.php', + 'pq\\Exception' => 'pq/pq.php', + 'pq\\Exception\\BadMethodCallException' => 'pq/pq.php', + 'pq\\Exception\\DomainException' => 'pq/pq.php', + 'pq\\Exception\\InvalidArgumentException' => 'pq/pq.php', + 'pq\\Exception\\RuntimeException' => 'pq/pq.php', + 'pq\\LOB' => 'pq/pq.php', + 'pq\\Result' => 'pq/pq.php', + 'pq\\Statement' => 'pq/pq.php', + 'pq\\Transaction' => 'pq/pq.php', + 'pq\\Types' => 'pq/pq.php', + 'projectionObj' => 'mapscript/mapscript.php', + 'querymapObj' => 'mapscript/mapscript.php', + 'rectObj' => 'mapscript/mapscript.php', + 'referenceMapObj' => 'mapscript/mapscript.php', + 'resultObj' => 'mapscript/mapscript.php', + 'scalebarObj' => 'mapscript/mapscript.php', + 'shapeObj' => 'mapscript/mapscript.php', + 'shapefileObj' => 'mapscript/mapscript.php', + 'stdClass' => 'Core/Core_c.php', + 'styleObj' => 'mapscript/mapscript.php', + 'symbolObj' => 'mapscript/mapscript.php', + 'tidy' => 'tidy/tidy.php', + 'tidyNode' => 'tidy/tidy.php', + 'webObj' => 'mapscript/mapscript.php', +); + +const FUNCTIONS = array ( + 'GEOSLineMerge' => 'geos/geos.php', + 'GEOSPolygonize' => 'geos/geos.php', + 'GEOSRelateMatch' => 'geos/geos.php', + 'GEOSSharedPaths' => 'geos/geos.php', + 'GEOSVersion' => 'geos/geos.php', + 'MongoDB\\BSON\\fromJSON' => 'mongodb/BSON/functions.php', + 'MongoDB\\BSON\\fromPHP' => 'mongodb/BSON/functions.php', + 'MongoDB\\BSON\\toCanonicalExtendedJSON' => 'mongodb/BSON/functions.php', + 'MongoDB\\BSON\\toJSON' => 'mongodb/BSON/functions.php', + 'MongoDB\\BSON\\toPHP' => 'mongodb/BSON/functions.php', + 'MongoDB\\BSON\\toRelaxedExtendedJSON' => 'mongodb/BSON/functions.php', + 'MongoDB\\Driver\\Monitoring\\addSubscriber' => 'mongodb/Monitoring/functions.php', + 'MongoDB\\Driver\\Monitoring\\removeSubscriber' => 'mongodb/Monitoring/functions.php', + 'OpenTelemetry\\Instrumentation\\hook' => 'opentelemetry/opentelemetry.php', + 'PDF_activate_item' => 'pdflib/PDFlib.php', + 'PDF_add_launchlink' => 'pdflib/PDFlib.php', + 'PDF_add_locallink' => 'pdflib/PDFlib.php', + 'PDF_add_nameddest' => 'pdflib/PDFlib.php', + 'PDF_add_note' => 'pdflib/PDFlib.php', + 'PDF_add_pdflink' => 'pdflib/PDFlib.php', + 'PDF_add_table_cell' => 'pdflib/PDFlib.php', + 'PDF_add_textflow' => 'pdflib/PDFlib.php', + 'PDF_add_thumbnail' => 'pdflib/PDFlib.php', + 'PDF_add_weblink' => 'pdflib/PDFlib.php', + 'PDF_arc' => 'pdflib/PDFlib.php', + 'PDF_arcn' => 'pdflib/PDFlib.php', + 'PDF_attach_file' => 'pdflib/PDFlib.php', + 'PDF_begin_document' => 'pdflib/PDFlib.php', + 'PDF_begin_font' => 'pdflib/PDFlib.php', + 'PDF_begin_glyph' => 'pdflib/PDFlib.php', + 'PDF_begin_item' => 'pdflib/PDFlib.php', + 'PDF_begin_layer' => 'pdflib/PDFlib.php', + 'PDF_begin_page' => 'pdflib/PDFlib.php', + 'PDF_begin_page_ext' => 'pdflib/PDFlib.php', + 'PDF_begin_pattern' => 'pdflib/PDFlib.php', + 'PDF_begin_template' => 'pdflib/PDFlib.php', + 'PDF_begin_template_ext' => 'pdflib/PDFlib.php', + 'PDF_circle' => 'pdflib/PDFlib.php', + 'PDF_clip' => 'pdflib/PDFlib.php', + 'PDF_close' => 'pdflib/PDFlib.php', + 'PDF_close_image' => 'pdflib/PDFlib.php', + 'PDF_close_pdi' => 'pdflib/PDFlib.php', + 'PDF_close_pdi_page' => 'pdflib/PDFlib.php', + 'PDF_closepath' => 'pdflib/PDFlib.php', + 'PDF_closepath_fill_stroke' => 'pdflib/PDFlib.php', + 'PDF_closepath_stroke' => 'pdflib/PDFlib.php', + 'PDF_concat' => 'pdflib/PDFlib.php', + 'PDF_continue_text' => 'pdflib/PDFlib.php', + 'PDF_create_3dview' => 'pdflib/PDFlib.php', + 'PDF_create_action' => 'pdflib/PDFlib.php', + 'PDF_create_annotation' => 'pdflib/PDFlib.php', + 'PDF_create_bookmark' => 'pdflib/PDFlib.php', + 'PDF_create_field' => 'pdflib/PDFlib.php', + 'PDF_create_fieldgroup' => 'pdflib/PDFlib.php', + 'PDF_create_gstate' => 'pdflib/PDFlib.php', + 'PDF_create_pvf' => 'pdflib/PDFlib.php', + 'PDF_create_textflow' => 'pdflib/PDFlib.php', + 'PDF_curveto' => 'pdflib/PDFlib.php', + 'PDF_define_layer' => 'pdflib/PDFlib.php', + 'PDF_delete' => 'pdflib/PDFlib.php', + 'PDF_delete_pvf' => 'pdflib/PDFlib.php', + 'PDF_delete_table' => 'pdflib/PDFlib.php', + 'PDF_delete_textflow' => 'pdflib/PDFlib.php', + 'PDF_encoding_set_char' => 'pdflib/PDFlib.php', + 'PDF_end_document' => 'pdflib/PDFlib.php', + 'PDF_end_font' => 'pdflib/PDFlib.php', + 'PDF_end_glyph' => 'pdflib/PDFlib.php', + 'PDF_end_item' => 'pdflib/PDFlib.php', + 'PDF_end_layer' => 'pdflib/PDFlib.php', + 'PDF_end_page' => 'pdflib/PDFlib.php', + 'PDF_end_page_ext' => 'pdflib/PDFlib.php', + 'PDF_end_pattern' => 'pdflib/PDFlib.php', + 'PDF_end_template' => 'pdflib/PDFlib.php', + 'PDF_endpath' => 'pdflib/PDFlib.php', + 'PDF_fill' => 'pdflib/PDFlib.php', + 'PDF_fill_imageblock' => 'pdflib/PDFlib.php', + 'PDF_fill_pdfblock' => 'pdflib/PDFlib.php', + 'PDF_fill_stroke' => 'pdflib/PDFlib.php', + 'PDF_fill_textblock' => 'pdflib/PDFlib.php', + 'PDF_findfont' => 'pdflib/PDFlib.php', + 'PDF_fit_image' => 'pdflib/PDFlib.php', + 'PDF_fit_pdi_page' => 'pdflib/PDFlib.php', + 'PDF_fit_table' => 'pdflib/PDFlib.php', + 'PDF_fit_textflow' => 'pdflib/PDFlib.php', + 'PDF_fit_textline' => 'pdflib/PDFlib.php', + 'PDF_get_apiname' => 'pdflib/PDFlib.php', + 'PDF_get_buffer' => 'pdflib/PDFlib.php', + 'PDF_get_errmsg' => 'pdflib/PDFlib.php', + 'PDF_get_errnum' => 'pdflib/PDFlib.php', + 'PDF_get_majorversion' => 'pdflib/PDFlib.php', + 'PDF_get_minorversion' => 'pdflib/PDFlib.php', + 'PDF_get_parameter' => 'pdflib/PDFlib.php', + 'PDF_get_pdi_parameter' => 'pdflib/PDFlib.php', + 'PDF_get_pdi_value' => 'pdflib/PDFlib.php', + 'PDF_get_value' => 'pdflib/PDFlib.php', + 'PDF_info_font' => 'pdflib/PDFlib.php', + 'PDF_info_matchbox' => 'pdflib/PDFlib.php', + 'PDF_info_table' => 'pdflib/PDFlib.php', + 'PDF_info_textflow' => 'pdflib/PDFlib.php', + 'PDF_info_textline' => 'pdflib/PDFlib.php', + 'PDF_initgraphics' => 'pdflib/PDFlib.php', + 'PDF_lineto' => 'pdflib/PDFlib.php', + 'PDF_load_3ddata' => 'pdflib/PDFlib.php', + 'PDF_load_font' => 'pdflib/PDFlib.php', + 'PDF_load_iccprofile' => 'pdflib/PDFlib.php', + 'PDF_load_image' => 'pdflib/PDFlib.php', + 'PDF_makespotcolor' => 'pdflib/PDFlib.php', + 'PDF_moveto' => 'pdflib/PDFlib.php', + 'PDF_new' => 'pdflib/PDFlib.php', + 'PDF_open_ccitt' => 'pdflib/PDFlib.php', + 'PDF_open_file' => 'pdflib/PDFlib.php', + 'PDF_open_image' => 'pdflib/PDFlib.php', + 'PDF_open_image_file' => 'pdflib/PDFlib.php', + 'PDF_open_memory_image' => 'pdflib/PDFlib.php', + 'PDF_open_pdi' => 'pdflib/PDFlib.php', + 'PDF_open_pdi_document' => 'pdflib/PDFlib.php', + 'PDF_open_pdi_page' => 'pdflib/PDFlib.php', + 'PDF_pcos_get_number' => 'pdflib/PDFlib.php', + 'PDF_pcos_get_stream' => 'pdflib/PDFlib.php', + 'PDF_pcos_get_string' => 'pdflib/PDFlib.php', + 'PDF_place_image' => 'pdflib/PDFlib.php', + 'PDF_place_pdi_page' => 'pdflib/PDFlib.php', + 'PDF_process_pdi' => 'pdflib/PDFlib.php', + 'PDF_rect' => 'pdflib/PDFlib.php', + 'PDF_restore' => 'pdflib/PDFlib.php', + 'PDF_resume_page' => 'pdflib/PDFlib.php', + 'PDF_rotate' => 'pdflib/PDFlib.php', + 'PDF_save' => 'pdflib/PDFlib.php', + 'PDF_scale' => 'pdflib/PDFlib.php', + 'PDF_set_border_color' => 'pdflib/PDFlib.php', + 'PDF_set_border_dash' => 'pdflib/PDFlib.php', + 'PDF_set_border_style' => 'pdflib/PDFlib.php', + 'PDF_set_gstate' => 'pdflib/PDFlib.php', + 'PDF_set_info' => 'pdflib/PDFlib.php', + 'PDF_set_layer_dependency' => 'pdflib/PDFlib.php', + 'PDF_set_parameter' => 'pdflib/PDFlib.php', + 'PDF_set_text_pos' => 'pdflib/PDFlib.php', + 'PDF_set_value' => 'pdflib/PDFlib.php', + 'PDF_setcolor' => 'pdflib/PDFlib.php', + 'PDF_setdash' => 'pdflib/PDFlib.php', + 'PDF_setdashpattern' => 'pdflib/PDFlib.php', + 'PDF_setflat' => 'pdflib/PDFlib.php', + 'PDF_setfont' => 'pdflib/PDFlib.php', + 'PDF_setgray' => 'pdflib/PDFlib.php', + 'PDF_setgray_fill' => 'pdflib/PDFlib.php', + 'PDF_setgray_stroke' => 'pdflib/PDFlib.php', + 'PDF_setlinecap' => 'pdflib/PDFlib.php', + 'PDF_setlinejoin' => 'pdflib/PDFlib.php', + 'PDF_setlinewidth' => 'pdflib/PDFlib.php', + 'PDF_setmatrix' => 'pdflib/PDFlib.php', + 'PDF_setmiterlimit' => 'pdflib/PDFlib.php', + 'PDF_setrgbcolor' => 'pdflib/PDFlib.php', + 'PDF_setrgbcolor_fill' => 'pdflib/PDFlib.php', + 'PDF_setrgbcolor_stroke' => 'pdflib/PDFlib.php', + 'PDF_shading' => 'pdflib/PDFlib.php', + 'PDF_shading_pattern' => 'pdflib/PDFlib.php', + 'PDF_shfill' => 'pdflib/PDFlib.php', + 'PDF_show' => 'pdflib/PDFlib.php', + 'PDF_show_boxed' => 'pdflib/PDFlib.php', + 'PDF_show_xy' => 'pdflib/PDFlib.php', + 'PDF_skew' => 'pdflib/PDFlib.php', + 'PDF_stringwidth' => 'pdflib/PDFlib.php', + 'PDF_stroke' => 'pdflib/PDFlib.php', + 'PDF_suspend_page' => 'pdflib/PDFlib.php', + 'PDF_translate' => 'pdflib/PDFlib.php', + 'PDF_utf16_to_utf8' => 'pdflib/PDFlib.php', + 'PDF_utf32_to_utf16' => 'pdflib/PDFlib.php', + 'PDF_utf8_to_utf16' => 'pdflib/PDFlib.php', + 'PS_UNRESERVE_PREFIX___halt_compiler' => 'standard/_standard_manual.php', + 'PS_UNRESERVE_PREFIX_array' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_die' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_empty' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_eval' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_exit' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_isset' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_list' => 'standard/_types.php', + 'PS_UNRESERVE_PREFIX_unset' => 'standard/_types.php', + 'SQLSRV_PHPTYPE_STREAM' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PHPTYPE_STRING' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_BINARY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_CHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DECIMAL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NCHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NUMERIC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NVARCHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_VARBINARY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_VARCHAR' => 'sqlsrv/sqlsrv.php', + 'Sodium\\add' => 'libsodium/libsodium.php', + 'Sodium\\bin2hex' => 'libsodium/libsodium.php', + 'Sodium\\compare' => 'libsodium/libsodium.php', + 'Sodium\\crypto_aead_aes256gcm_decrypt' => 'libsodium/libsodium.php', + 'Sodium\\crypto_aead_aes256gcm_encrypt' => 'libsodium/libsodium.php', + 'Sodium\\crypto_aead_aes256gcm_is_available' => 'libsodium/libsodium.php', + 'Sodium\\crypto_aead_chacha20poly1305_decrypt' => 'libsodium/libsodium.php', + 'Sodium\\crypto_aead_chacha20poly1305_encrypt' => 'libsodium/libsodium.php', + 'Sodium\\crypto_auth' => 'libsodium/libsodium.php', + 'Sodium\\crypto_auth_verify' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_keypair' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_keypair_from_secretkey_and_publickey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_open' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_publickey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_publickey_from_secretkey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_seal' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_seal_open' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_secretkey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_box_seed_keypair' => 'libsodium/libsodium.php', + 'Sodium\\crypto_generichash' => 'libsodium/libsodium.php', + 'Sodium\\crypto_generichash_final' => 'libsodium/libsodium.php', + 'Sodium\\crypto_generichash_init' => 'libsodium/libsodium.php', + 'Sodium\\crypto_generichash_update' => 'libsodium/libsodium.php', + 'Sodium\\crypto_kx' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash_scryptsalsa208sha256' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash_scryptsalsa208sha256_str' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash_scryptsalsa208sha256_str_verify' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash_str' => 'libsodium/libsodium.php', + 'Sodium\\crypto_pwhash_str_verify' => 'libsodium/libsodium.php', + 'Sodium\\crypto_scalarmult' => 'libsodium/libsodium.php', + 'Sodium\\crypto_scalarmult_base' => 'libsodium/libsodium.php', + 'Sodium\\crypto_secretbox' => 'libsodium/libsodium.php', + 'Sodium\\crypto_secretbox_open' => 'libsodium/libsodium.php', + 'Sodium\\crypto_shorthash' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_detached' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_ed25519_pk_to_curve25519' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_ed25519_sk_to_curve25519' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_keypair' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_keypair_from_secretkey_and_publickey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_open' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_publickey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_publickey_from_secretkey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_secretkey' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_seed_keypair' => 'libsodium/libsodium.php', + 'Sodium\\crypto_sign_verify_detached' => 'libsodium/libsodium.php', + 'Sodium\\crypto_stream' => 'libsodium/libsodium.php', + 'Sodium\\crypto_stream_xor' => 'libsodium/libsodium.php', + 'Sodium\\hex2bin' => 'libsodium/libsodium.php', + 'Sodium\\increment' => 'libsodium/libsodium.php', + 'Sodium\\library_version_major' => 'libsodium/libsodium.php', + 'Sodium\\library_version_minor' => 'libsodium/libsodium.php', + 'Sodium\\memcmp' => 'libsodium/libsodium.php', + 'Sodium\\memzero' => 'libsodium/libsodium.php', + 'Sodium\\randombytes_buf' => 'libsodium/libsodium.php', + 'Sodium\\randombytes_random16' => 'libsodium/libsodium.php', + 'Sodium\\randombytes_uniform' => 'libsodium/libsodium.php', + 'Sodium\\version_string' => 'libsodium/libsodium.php', + 'Zstd\\compress' => 'zstd/zstd.php', + 'Zstd\\compress_dict' => 'zstd/zstd.php', + 'Zstd\\uncompress' => 'zstd/zstd.php', + 'Zstd\\uncompress_dict' => 'zstd/zstd.php', + '_' => 'gettext/gettext.php', + 'abs' => 'standard/standard_3.php', + 'accelerator_set_status' => 'zend/zend.php', + 'acos' => 'standard/standard_3.php', + 'acosh' => 'standard/standard_3.php', + 'addcslashes' => 'standard/standard_1.php', + 'addslashes' => 'standard/standard_1.php', + 'apache_child_terminate' => 'apache/apache.php', + 'apache_get_modules' => 'apache/apache.php', + 'apache_get_version' => 'apache/apache.php', + 'apache_getenv' => 'apache/apache.php', + 'apache_lookup_uri' => 'apache/apache.php', + 'apache_note' => 'apache/apache.php', + 'apache_request_headers' => 'standard/standard_4.php', + 'apache_reset_timeout' => 'apache/apache.php', + 'apache_response_headers' => 'apache/apache.php', + 'apache_setenv' => 'apache/apache.php', + 'apc_add' => 'apcu/apcu.php', + 'apc_bin_dump' => 'apcu/apcu.php', + 'apc_bin_dumpfile' => 'apcu/apcu.php', + 'apc_bin_load' => 'apcu/apcu.php', + 'apc_bin_loadfile' => 'apcu/apcu.php', + 'apc_cache_info' => 'apcu/apcu.php', + 'apc_cas' => 'apcu/apcu.php', + 'apc_clear_cache' => 'apcu/apcu.php', + 'apc_compile_file' => 'apcu/apcu.php', + 'apc_dec' => 'apcu/apcu.php', + 'apc_define_constants' => 'apcu/apcu.php', + 'apc_delete' => 'apcu/apcu.php', + 'apc_delete_file' => 'apcu/apcu.php', + 'apc_exists' => 'apcu/apcu.php', + 'apc_fetch' => 'apcu/apcu.php', + 'apc_inc' => 'apcu/apcu.php', + 'apc_load_constants' => 'apcu/apcu.php', + 'apc_sma_info' => 'apcu/apcu.php', + 'apc_store' => 'apcu/apcu.php', + 'apcu_add' => 'apcu/apcu.php', + 'apcu_cache_info' => 'apcu/apcu.php', + 'apcu_cas' => 'apcu/apcu.php', + 'apcu_clear_cache' => 'apcu/apcu.php', + 'apcu_dec' => 'apcu/apcu.php', + 'apcu_delete' => 'apcu/apcu.php', + 'apcu_enabled' => 'apcu/apcu.php', + 'apcu_entry' => 'apcu/apcu.php', + 'apcu_exists' => 'apcu/apcu.php', + 'apcu_fetch' => 'apcu/apcu.php', + 'apcu_inc' => 'apcu/apcu.php', + 'apcu_key_info' => 'apcu/apcu.php', + 'apcu_sma_info' => 'apcu/apcu.php', + 'apcu_store' => 'apcu/apcu.php', + 'ares_gethostbyname' => 'uv/uv_functions.php', + 'array_change_key_case' => 'standard/standard_9.php', + 'array_chunk' => 'standard/standard_9.php', + 'array_column' => 'standard/standard_9.php', + 'array_combine' => 'standard/standard_9.php', + 'array_count_values' => 'standard/standard_9.php', + 'array_diff' => 'standard/standard_9.php', + 'array_diff_assoc' => 'standard/standard_9.php', + 'array_diff_key' => 'standard/standard_9.php', + 'array_diff_uassoc' => 'standard/standard_9.php', + 'array_diff_ukey' => 'standard/standard_9.php', + 'array_fill' => 'standard/standard_8.php', + 'array_fill_keys' => 'standard/standard_8.php', + 'array_filter' => 'standard/standard_9.php', + 'array_flip' => 'standard/standard_9.php', + 'array_intersect' => 'standard/standard_9.php', + 'array_intersect_assoc' => 'standard/standard_9.php', + 'array_intersect_key' => 'standard/standard_9.php', + 'array_intersect_uassoc' => 'standard/standard_9.php', + 'array_intersect_ukey' => 'standard/standard_9.php', + 'array_is_list' => 'standard/standard_9.php', + 'array_key_exists' => 'standard/standard_9.php', + 'array_key_first' => 'standard/standard_9.php', + 'array_key_last' => 'standard/standard_9.php', + 'array_keys' => 'standard/standard_9.php', + 'array_map' => 'standard/standard_9.php', + 'array_merge' => 'standard/standard_8.php', + 'array_merge_recursive' => 'standard/standard_9.php', + 'array_multisort' => 'standard/standard_8.php', + 'array_pad' => 'standard/standard_9.php', + 'array_pop' => 'standard/standard_8.php', + 'array_product' => 'standard/standard_9.php', + 'array_push' => 'standard/standard_8.php', + 'array_rand' => 'standard/standard_9.php', + 'array_reduce' => 'standard/standard_9.php', + 'array_replace' => 'standard/standard_9.php', + 'array_replace_recursive' => 'standard/standard_9.php', + 'array_reverse' => 'standard/standard_9.php', + 'array_search' => 'standard/standard_8.php', + 'array_shift' => 'standard/standard_8.php', + 'array_slice' => 'standard/standard_8.php', + 'array_splice' => 'standard/standard_8.php', + 'array_sum' => 'standard/standard_9.php', + 'array_udiff' => 'standard/standard_9.php', + 'array_udiff_assoc' => 'standard/standard_9.php', + 'array_udiff_uassoc' => 'standard/standard_9.php', + 'array_uintersect' => 'standard/standard_9.php', + 'array_uintersect_assoc' => 'standard/standard_9.php', + 'array_uintersect_uassoc' => 'standard/standard_9.php', + 'array_unique' => 'standard/standard_9.php', + 'array_unshift' => 'standard/standard_8.php', + 'array_values' => 'standard/standard_9.php', + 'array_walk' => 'standard/standard_8.php', + 'array_walk_recursive' => 'standard/standard_8.php', + 'arsort' => 'standard/standard_8.php', + 'asin' => 'standard/standard_3.php', + 'asinh' => 'standard/standard_3.php', + 'asort' => 'standard/standard_8.php', + 'assert' => 'standard/standard_9.php', + 'assert_options' => 'standard/standard_9.php', + 'ast\\get_kind_name' => 'ast/ast.php', + 'ast\\get_metadata' => 'ast/ast.php', + 'ast\\get_supported_versions' => 'ast/ast.php', + 'ast\\kind_uses_flags' => 'ast/ast.php', + 'ast\\parse_code' => 'ast/ast.php', + 'ast\\parse_file' => 'ast/ast.php', + 'atan' => 'standard/standard_3.php', + 'atan2' => 'standard/standard_3.php', + 'atanh' => 'standard/standard_3.php', + 'base64_decode' => 'standard/standard_3.php', + 'base64_encode' => 'standard/standard_3.php', + 'base_convert' => 'standard/standard_3.php', + 'basename' => 'standard/standard_1.php', + 'bcadd' => 'bcmath/bcmath.php', + 'bccomp' => 'bcmath/bcmath.php', + 'bcdiv' => 'bcmath/bcmath.php', + 'bcmod' => 'bcmath/bcmath.php', + 'bcmul' => 'bcmath/bcmath.php', + 'bcpow' => 'bcmath/bcmath.php', + 'bcpowmod' => 'bcmath/bcmath.php', + 'bcscale' => 'bcmath/bcmath.php', + 'bcsqrt' => 'bcmath/bcmath.php', + 'bcsub' => 'bcmath/bcmath.php', + 'bin2hex' => 'standard/standard_0.php', + 'bind_textdomain_codeset' => 'gettext/gettext.php', + 'bindec' => 'standard/standard_3.php', + 'bindtextdomain' => 'gettext/gettext.php', + 'boolval' => 'standard/standard_5.php', + 'bzclose' => 'bz2/bz2.php', + 'bzcompress' => 'bz2/bz2.php', + 'bzdecompress' => 'bz2/bz2.php', + 'bzerrno' => 'bz2/bz2.php', + 'bzerror' => 'bz2/bz2.php', + 'bzerrstr' => 'bz2/bz2.php', + 'bzflush' => 'bz2/bz2.php', + 'bzopen' => 'bz2/bz2.php', + 'bzread' => 'bz2/bz2.php', + 'bzwrite' => 'bz2/bz2.php', + 'cal_days_in_month' => 'calendar/calendar.php', + 'cal_from_jd' => 'calendar/calendar.php', + 'cal_info' => 'calendar/calendar.php', + 'cal_to_jd' => 'calendar/calendar.php', + 'call_user_func' => 'standard/standard_4.php', + 'call_user_func_array' => 'standard/standard_4.php', + 'call_user_method' => 'standard/standard_4.php', + 'call_user_method_array' => 'standard/standard_4.php', + 'ceil' => 'standard/standard_3.php', + 'chdir' => 'standard/standard_7.php', + 'checkdate' => 'date/date.php', + 'checkdnsrr' => 'standard/standard_4.php', + 'chgrp' => 'standard/standard_7.php', + 'chmod' => 'standard/standard_7.php', + 'chop' => 'standard/standard_2.php', + 'chown' => 'standard/standard_7.php', + 'chr' => 'standard/standard_2.php', + 'chroot' => 'standard/standard_7.php', + 'chunk_split' => 'standard/standard_1.php', + 'class_alias' => 'Core/Core.php', + 'class_exists' => 'Core/Core.php', + 'class_implements' => 'SPL/SPL_f.php', + 'class_parents' => 'SPL/SPL_f.php', + 'class_uses' => 'SPL/SPL_f.php', + 'clearstatcache' => 'standard/standard_7.php', + 'cli_get_process_title' => 'standard/basic.php', + 'cli_set_process_title' => 'standard/basic.php', + 'closedir' => 'standard/standard_7.php', + 'closelog' => 'standard/standard_8.php', + 'collator_asort' => 'intl/intl.php', + 'collator_compare' => 'intl/intl.php', + 'collator_create' => 'intl/intl.php', + 'collator_get_attribute' => 'intl/intl.php', + 'collator_get_error_code' => 'intl/intl.php', + 'collator_get_error_message' => 'intl/intl.php', + 'collator_get_locale' => 'intl/intl.php', + 'collator_get_sort_key' => 'intl/intl.php', + 'collator_get_strength' => 'intl/intl.php', + 'collator_set_attribute' => 'intl/intl.php', + 'collator_set_strength' => 'intl/intl.php', + 'collator_sort' => 'intl/intl.php', + 'collator_sort_with_sort_keys' => 'intl/intl.php', + 'com_create_guid' => 'com_dotnet/com_dotnet.php', + 'com_event_sink' => 'com_dotnet/com_dotnet.php', + 'com_get_active_object' => 'com_dotnet/com_dotnet.php', + 'com_load_typelib' => 'com_dotnet/com_dotnet.php', + 'com_message_pump' => 'com_dotnet/com_dotnet.php', + 'com_print_typeinfo' => 'com_dotnet/com_dotnet.php', + 'compact' => 'standard/standard_8.php', + 'config_get_hash' => 'xdebug/xdebug.php', + 'confirm_pdo_ibm_compiled' => 'pdo_ibm/pdo_ibm.php', + 'connection_aborted' => 'standard/standard_4.php', + 'connection_status' => 'standard/standard_4.php', + 'constant' => 'standard/standard_0.php', + 'convert_cyr_string' => 'standard/standard_3.php', + 'convert_uudecode' => 'standard/standard_3.php', + 'convert_uuencode' => 'standard/standard_3.php', + 'copy' => 'standard/standard_5.php', + 'cos' => 'standard/standard_3.php', + 'cosh' => 'standard/standard_3.php', + 'count' => 'standard/standard_8.php', + 'count_chars' => 'standard/standard_1.php', + 'crc32' => 'standard/standard_0.php', + 'create_function' => 'Core/Core.php', + 'crypt' => 'standard/standard_7.php', + 'ctype_alnum' => 'ctype/ctype.php', + 'ctype_alpha' => 'ctype/ctype.php', + 'ctype_cntrl' => 'ctype/ctype.php', + 'ctype_digit' => 'ctype/ctype.php', + 'ctype_graph' => 'ctype/ctype.php', + 'ctype_lower' => 'ctype/ctype.php', + 'ctype_print' => 'ctype/ctype.php', + 'ctype_punct' => 'ctype/ctype.php', + 'ctype_space' => 'ctype/ctype.php', + 'ctype_upper' => 'ctype/ctype.php', + 'ctype_xdigit' => 'ctype/ctype.php', + 'cubrid_affected_rows' => 'cubrid/cubrid.php', + 'cubrid_bind' => 'cubrid/cubrid.php', + 'cubrid_client_encoding' => 'cubrid/cubrid.php', + 'cubrid_close' => 'cubrid/cubrid.php', + 'cubrid_close_prepare' => 'cubrid/cubrid.php', + 'cubrid_close_request' => 'cubrid/cubrid.php', + 'cubrid_col_get' => 'cubrid/cubrid.php', + 'cubrid_col_size' => 'cubrid/cubrid.php', + 'cubrid_column_names' => 'cubrid/cubrid.php', + 'cubrid_column_types' => 'cubrid/cubrid.php', + 'cubrid_commit' => 'cubrid/cubrid.php', + 'cubrid_connect' => 'cubrid/cubrid.php', + 'cubrid_connect_with_url' => 'cubrid/cubrid.php', + 'cubrid_current_oid' => 'cubrid/cubrid.php', + 'cubrid_data_seek' => 'cubrid/cubrid.php', + 'cubrid_db_name' => 'cubrid/cubrid.php', + 'cubrid_db_parameter' => 'cubrid/cubrid.php', + 'cubrid_disconnect' => 'cubrid/cubrid.php', + 'cubrid_drop' => 'cubrid/cubrid.php', + 'cubrid_errno' => 'cubrid/cubrid.php', + 'cubrid_error' => 'cubrid/cubrid.php', + 'cubrid_error_code' => 'cubrid/cubrid.php', + 'cubrid_error_code_facility' => 'cubrid/cubrid.php', + 'cubrid_error_msg' => 'cubrid/cubrid.php', + 'cubrid_execute' => 'cubrid/cubrid.php', + 'cubrid_fetch' => 'cubrid/cubrid.php', + 'cubrid_fetch_array' => 'cubrid/cubrid.php', + 'cubrid_fetch_assoc' => 'cubrid/cubrid.php', + 'cubrid_fetch_field' => 'cubrid/cubrid.php', + 'cubrid_fetch_lengths' => 'cubrid/cubrid.php', + 'cubrid_fetch_object' => 'cubrid/cubrid.php', + 'cubrid_fetch_row' => 'cubrid/cubrid.php', + 'cubrid_field_flags' => 'cubrid/cubrid.php', + 'cubrid_field_len' => 'cubrid/cubrid.php', + 'cubrid_field_name' => 'cubrid/cubrid.php', + 'cubrid_field_seek' => 'cubrid/cubrid.php', + 'cubrid_field_table' => 'cubrid/cubrid.php', + 'cubrid_field_type' => 'cubrid/cubrid.php', + 'cubrid_free_result' => 'cubrid/cubrid.php', + 'cubrid_get' => 'cubrid/cubrid.php', + 'cubrid_get_autocommit' => 'cubrid/cubrid.php', + 'cubrid_get_charset' => 'cubrid/cubrid.php', + 'cubrid_get_class_name' => 'cubrid/cubrid.php', + 'cubrid_get_client_info' => 'cubrid/cubrid.php', + 'cubrid_get_db_parameter' => 'cubrid/cubrid.php', + 'cubrid_get_query_timeout' => 'cubrid/cubrid.php', + 'cubrid_get_server_info' => 'cubrid/cubrid.php', + 'cubrid_insert_id' => 'cubrid/cubrid.php', + 'cubrid_is_instance' => 'cubrid/cubrid.php', + 'cubrid_list_dbs' => 'cubrid/cubrid.php', + 'cubrid_lob2_bind' => 'cubrid/cubrid.php', + 'cubrid_lob2_close' => 'cubrid/cubrid.php', + 'cubrid_lob2_export' => 'cubrid/cubrid.php', + 'cubrid_lob2_import' => 'cubrid/cubrid.php', + 'cubrid_lob2_new' => 'cubrid/cubrid.php', + 'cubrid_lob2_read' => 'cubrid/cubrid.php', + 'cubrid_lob2_seek' => 'cubrid/cubrid.php', + 'cubrid_lob2_seek64' => 'cubrid/cubrid.php', + 'cubrid_lob2_size' => 'cubrid/cubrid.php', + 'cubrid_lob2_size64' => 'cubrid/cubrid.php', + 'cubrid_lob2_tell' => 'cubrid/cubrid.php', + 'cubrid_lob2_tell64' => 'cubrid/cubrid.php', + 'cubrid_lob2_write' => 'cubrid/cubrid.php', + 'cubrid_lob_close' => 'cubrid/cubrid.php', + 'cubrid_lob_export' => 'cubrid/cubrid.php', + 'cubrid_lob_get' => 'cubrid/cubrid.php', + 'cubrid_lob_send' => 'cubrid/cubrid.php', + 'cubrid_lob_size' => 'cubrid/cubrid.php', + 'cubrid_lock_read' => 'cubrid/cubrid.php', + 'cubrid_lock_write' => 'cubrid/cubrid.php', + 'cubrid_move_cursor' => 'cubrid/cubrid.php', + 'cubrid_next_result' => 'cubrid/cubrid.php', + 'cubrid_num_cols' => 'cubrid/cubrid.php', + 'cubrid_num_fields' => 'cubrid/cubrid.php', + 'cubrid_num_rows' => 'cubrid/cubrid.php', + 'cubrid_pconnect' => 'cubrid/cubrid.php', + 'cubrid_pconnect_with_url' => 'cubrid/cubrid.php', + 'cubrid_ping' => 'cubrid/cubrid.php', + 'cubrid_prepare' => 'cubrid/cubrid.php', + 'cubrid_put' => 'cubrid/cubrid.php', + 'cubrid_query' => 'cubrid/cubrid.php', + 'cubrid_real_escape_string' => 'cubrid/cubrid.php', + 'cubrid_result' => 'cubrid/cubrid.php', + 'cubrid_rollback' => 'cubrid/cubrid.php', + 'cubrid_schema' => 'cubrid/cubrid.php', + 'cubrid_seq_add' => 'cubrid/cubrid.php', + 'cubrid_seq_drop' => 'cubrid/cubrid.php', + 'cubrid_seq_insert' => 'cubrid/cubrid.php', + 'cubrid_seq_put' => 'cubrid/cubrid.php', + 'cubrid_set_add' => 'cubrid/cubrid.php', + 'cubrid_set_autocommit' => 'cubrid/cubrid.php', + 'cubrid_set_db_parameter' => 'cubrid/cubrid.php', + 'cubrid_set_drop' => 'cubrid/cubrid.php', + 'cubrid_set_query_timeout' => 'cubrid/cubrid.php', + 'cubrid_unbuffered_query' => 'cubrid/cubrid.php', + 'cubrid_version' => 'cubrid/cubrid.php', + 'curl_close' => 'curl/curl.php', + 'curl_copy_handle' => 'curl/curl.php', + 'curl_errno' => 'curl/curl.php', + 'curl_error' => 'curl/curl.php', + 'curl_escape' => 'curl/curl.php', + 'curl_exec' => 'curl/curl.php', + 'curl_file_create' => 'curl/curl.php', + 'curl_getinfo' => 'curl/curl.php', + 'curl_init' => 'curl/curl.php', + 'curl_multi_add_handle' => 'curl/curl.php', + 'curl_multi_close' => 'curl/curl.php', + 'curl_multi_errno' => 'curl/curl.php', + 'curl_multi_exec' => 'curl/curl.php', + 'curl_multi_getcontent' => 'curl/curl.php', + 'curl_multi_info_read' => 'curl/curl.php', + 'curl_multi_init' => 'curl/curl.php', + 'curl_multi_remove_handle' => 'curl/curl.php', + 'curl_multi_select' => 'curl/curl.php', + 'curl_multi_setopt' => 'curl/curl.php', + 'curl_multi_strerror' => 'curl/curl.php', + 'curl_pause' => 'curl/curl.php', + 'curl_reset' => 'curl/curl.php', + 'curl_setopt' => 'curl/curl.php', + 'curl_setopt_array' => 'curl/curl.php', + 'curl_share_close' => 'curl/curl.php', + 'curl_share_errno' => 'curl/curl.php', + 'curl_share_init' => 'curl/curl.php', + 'curl_share_setopt' => 'curl/curl.php', + 'curl_share_strerror' => 'curl/curl.php', + 'curl_strerror' => 'curl/curl.php', + 'curl_unescape' => 'curl/curl.php', + 'curl_upkeep' => 'curl/curl.php', + 'curl_version' => 'curl/curl.php', + 'current' => 'standard/standard_8.php', + 'date' => 'date/date.php', + 'date_add' => 'date/date.php', + 'date_create' => 'date/date.php', + 'date_create_from_format' => 'date/date.php', + 'date_create_immutable' => 'date/date.php', + 'date_create_immutable_from_format' => 'date/date.php', + 'date_date_set' => 'date/date.php', + 'date_default_timezone_get' => 'date/date.php', + 'date_default_timezone_set' => 'date/date.php', + 'date_diff' => 'date/date.php', + 'date_format' => 'date/date.php', + 'date_get_last_errors' => 'date/date.php', + 'date_interval_create_from_date_string' => 'date/date.php', + 'date_interval_format' => 'date/date.php', + 'date_isodate_set' => 'date/date.php', + 'date_modify' => 'date/date.php', + 'date_offset_get' => 'date/date.php', + 'date_parse' => 'date/date.php', + 'date_parse_from_format' => 'date/date.php', + 'date_sub' => 'date/date.php', + 'date_sun_info' => 'date/date.php', + 'date_sunrise' => 'date/date.php', + 'date_sunset' => 'date/date.php', + 'date_time_set' => 'date/date.php', + 'date_timestamp_get' => 'date/date.php', + 'date_timestamp_set' => 'date/date.php', + 'date_timezone_get' => 'date/date.php', + 'date_timezone_set' => 'date/date.php', + 'datefmt_create' => 'intl/intl.php', + 'datefmt_format' => 'intl/intl.php', + 'datefmt_format_object' => 'intl/intl.php', + 'datefmt_get_calendar' => 'intl/intl.php', + 'datefmt_get_calendar_object' => 'intl/intl.php', + 'datefmt_get_datetype' => 'intl/intl.php', + 'datefmt_get_error_code' => 'intl/intl.php', + 'datefmt_get_error_message' => 'intl/intl.php', + 'datefmt_get_locale' => 'intl/intl.php', + 'datefmt_get_pattern' => 'intl/intl.php', + 'datefmt_get_timetype' => 'intl/intl.php', + 'datefmt_get_timezone' => 'intl/intl.php', + 'datefmt_get_timezone_id' => 'intl/intl.php', + 'datefmt_is_lenient' => 'intl/intl.php', + 'datefmt_localtime' => 'intl/intl.php', + 'datefmt_parse' => 'intl/intl.php', + 'datefmt_set_calendar' => 'intl/intl.php', + 'datefmt_set_lenient' => 'intl/intl.php', + 'datefmt_set_pattern' => 'intl/intl.php', + 'datefmt_set_timezone' => 'intl/intl.php', + 'datefmt_set_timezone_id' => 'intl/intl.php', + 'db2_autocommit' => 'ibm_db2/ibm_db2.php', + 'db2_bind_param' => 'ibm_db2/ibm_db2.php', + 'db2_client_info' => 'ibm_db2/ibm_db2.php', + 'db2_close' => 'ibm_db2/ibm_db2.php', + 'db2_column_privileges' => 'ibm_db2/ibm_db2.php', + 'db2_columnprivileges' => 'ibm_db2/ibm_db2.php', + 'db2_columns' => 'ibm_db2/ibm_db2.php', + 'db2_commit' => 'ibm_db2/ibm_db2.php', + 'db2_conn_error' => 'ibm_db2/ibm_db2.php', + 'db2_conn_errormsg' => 'ibm_db2/ibm_db2.php', + 'db2_connect' => 'ibm_db2/ibm_db2.php', + 'db2_cursor_type' => 'ibm_db2/ibm_db2.php', + 'db2_escape_string' => 'ibm_db2/ibm_db2.php', + 'db2_exec' => 'ibm_db2/ibm_db2.php', + 'db2_execute' => 'ibm_db2/ibm_db2.php', + 'db2_fetch_array' => 'ibm_db2/ibm_db2.php', + 'db2_fetch_assoc' => 'ibm_db2/ibm_db2.php', + 'db2_fetch_both' => 'ibm_db2/ibm_db2.php', + 'db2_fetch_object' => 'ibm_db2/ibm_db2.php', + 'db2_fetch_row' => 'ibm_db2/ibm_db2.php', + 'db2_field_display_size' => 'ibm_db2/ibm_db2.php', + 'db2_field_name' => 'ibm_db2/ibm_db2.php', + 'db2_field_num' => 'ibm_db2/ibm_db2.php', + 'db2_field_precision' => 'ibm_db2/ibm_db2.php', + 'db2_field_scale' => 'ibm_db2/ibm_db2.php', + 'db2_field_type' => 'ibm_db2/ibm_db2.php', + 'db2_field_width' => 'ibm_db2/ibm_db2.php', + 'db2_foreign_keys' => 'ibm_db2/ibm_db2.php', + 'db2_foreignkeys' => 'ibm_db2/ibm_db2.php', + 'db2_free_result' => 'ibm_db2/ibm_db2.php', + 'db2_free_stmt' => 'ibm_db2/ibm_db2.php', + 'db2_get_option' => 'ibm_db2/ibm_db2.php', + 'db2_last_insert_id' => 'ibm_db2/ibm_db2.php', + 'db2_lob_read' => 'ibm_db2/ibm_db2.php', + 'db2_next_result' => 'ibm_db2/ibm_db2.php', + 'db2_num_fields' => 'ibm_db2/ibm_db2.php', + 'db2_num_rows' => 'ibm_db2/ibm_db2.php', + 'db2_pclose' => 'ibm_db2/ibm_db2.php', + 'db2_pconnect' => 'ibm_db2/ibm_db2.php', + 'db2_prepare' => 'ibm_db2/ibm_db2.php', + 'db2_primary_keys' => 'ibm_db2/ibm_db2.php', + 'db2_primarykeys' => 'ibm_db2/ibm_db2.php', + 'db2_procedure_columns' => 'ibm_db2/ibm_db2.php', + 'db2_procedurecolumns' => 'ibm_db2/ibm_db2.php', + 'db2_procedures' => 'ibm_db2/ibm_db2.php', + 'db2_result' => 'ibm_db2/ibm_db2.php', + 'db2_rollback' => 'ibm_db2/ibm_db2.php', + 'db2_server_info' => 'ibm_db2/ibm_db2.php', + 'db2_set_option' => 'ibm_db2/ibm_db2.php', + 'db2_setoption' => 'ibm_db2/ibm_db2.php', + 'db2_special_columns' => 'ibm_db2/ibm_db2.php', + 'db2_specialcolumns' => 'ibm_db2/ibm_db2.php', + 'db2_statistics' => 'ibm_db2/ibm_db2.php', + 'db2_stmt_error' => 'ibm_db2/ibm_db2.php', + 'db2_stmt_errormsg' => 'ibm_db2/ibm_db2.php', + 'db2_table_privileges' => 'ibm_db2/ibm_db2.php', + 'db2_tableprivileges' => 'ibm_db2/ibm_db2.php', + 'db2_tables' => 'ibm_db2/ibm_db2.php', + 'dba_close' => 'dba/dba.php', + 'dba_delete' => 'dba/dba.php', + 'dba_exists' => 'dba/dba.php', + 'dba_fetch' => 'dba/dba.php', + 'dba_firstkey' => 'dba/dba.php', + 'dba_handlers' => 'dba/dba.php', + 'dba_insert' => 'dba/dba.php', + 'dba_key_split' => 'dba/dba.php', + 'dba_list' => 'dba/dba.php', + 'dba_nextkey' => 'dba/dba.php', + 'dba_open' => 'dba/dba.php', + 'dba_optimize' => 'dba/dba.php', + 'dba_popen' => 'dba/dba.php', + 'dba_replace' => 'dba/dba.php', + 'dba_sync' => 'dba/dba.php', + 'dcgettext' => 'gettext/gettext.php', + 'dcngettext' => 'gettext/gettext.php', + 'debug_backtrace' => 'Core/Core.php', + 'debug_print_backtrace' => 'Core/Core.php', + 'debug_zval_dump' => 'standard/standard_4.php', + 'debugger_connect' => 'ZendDebugger/ZendDebugger.php', + 'debugger_connector_pid' => 'ZendDebugger/ZendDebugger.php', + 'debugger_get_server_start_time' => 'ZendDebugger/ZendDebugger.php', + 'debugger_print' => 'ZendDebugger/ZendDebugger.php', + 'debugger_start_debug' => 'ZendDebugger/ZendDebugger.php', + 'decbin' => 'standard/standard_3.php', + 'dechex' => 'standard/standard_3.php', + 'decoct' => 'standard/standard_3.php', + 'defer' => 'swoole/functions.php', + 'define' => 'Core/Core.php', + 'define_syslog_variables' => 'standard/standard_8.php', + 'defined' => 'Core/Core.php', + 'deflate_add' => 'zlib/zlib.php', + 'deflate_init' => 'zlib/zlib.php', + 'deg2rad' => 'standard/standard_3.php', + 'dgettext' => 'gettext/gettext.php', + 'dio_close' => 'dio/dio.php', + 'dio_fcntl' => 'dio/dio.php', + 'dio_open' => 'dio/dio.php', + 'dio_raw' => 'dio/dio.php', + 'dio_read' => 'dio/dio.php', + 'dio_seek' => 'dio/dio.php', + 'dio_serial' => 'dio/dio.php', + 'dio_stat' => 'dio/dio.php', + 'dio_tcsetattr' => 'dio/dio.php', + 'dio_truncate' => 'dio/dio.php', + 'dio_write' => 'dio/dio.php', + 'dir' => 'standard/standard_7.php', + 'dirname' => 'standard/standard_1.php', + 'disk_free_space' => 'standard/standard_7.php', + 'disk_total_space' => 'standard/standard_7.php', + 'diskfreespace' => 'standard/standard_7.php', + 'dl' => 'standard/basic.php', + 'dngettext' => 'gettext/gettext.php', + 'dns_check_record' => 'standard/standard_4.php', + 'dns_get_mx' => 'standard/standard_4.php', + 'dns_get_record' => 'standard/standard_4.php', + 'dom_import_simplexml' => 'dom/dom.php', + 'doubleval' => 'standard/standard_5.php', + 'each' => 'Core/Core.php', + 'easter_date' => 'calendar/calendar.php', + 'easter_days' => 'calendar/calendar.php', + 'eio_busy' => 'eio/eio.php', + 'eio_cancel' => 'eio/eio.php', + 'eio_chmod' => 'eio/eio.php', + 'eio_chown' => 'eio/eio.php', + 'eio_close' => 'eio/eio.php', + 'eio_custom' => 'eio/eio.php', + 'eio_dup2' => 'eio/eio.php', + 'eio_event_loop' => 'eio/eio.php', + 'eio_fallocate' => 'eio/eio.php', + 'eio_fchmod' => 'eio/eio.php', + 'eio_fchown' => 'eio/eio.php', + 'eio_fdatasync' => 'eio/eio.php', + 'eio_fstat' => 'eio/eio.php', + 'eio_fstatvfs' => 'eio/eio.php', + 'eio_fsync' => 'eio/eio.php', + 'eio_ftruncate' => 'eio/eio.php', + 'eio_futime' => 'eio/eio.php', + 'eio_get_event_stream' => 'eio/eio.php', + 'eio_get_last_error' => 'eio/eio.php', + 'eio_grp' => 'eio/eio.php', + 'eio_grp_add' => 'eio/eio.php', + 'eio_grp_cancel' => 'eio/eio.php', + 'eio_grp_limit' => 'eio/eio.php', + 'eio_link' => 'eio/eio.php', + 'eio_lstat' => 'eio/eio.php', + 'eio_mkdir' => 'eio/eio.php', + 'eio_mknod' => 'eio/eio.php', + 'eio_nop' => 'eio/eio.php', + 'eio_npending' => 'eio/eio.php', + 'eio_nready' => 'eio/eio.php', + 'eio_nreqs' => 'eio/eio.php', + 'eio_nthreads' => 'eio/eio.php', + 'eio_open' => 'eio/eio.php', + 'eio_poll' => 'eio/eio.php', + 'eio_read' => 'eio/eio.php', + 'eio_readahead' => 'eio/eio.php', + 'eio_readdir' => 'eio/eio.php', + 'eio_readlink' => 'eio/eio.php', + 'eio_realpath' => 'eio/eio.php', + 'eio_rename' => 'eio/eio.php', + 'eio_rmdir' => 'eio/eio.php', + 'eio_seek' => 'eio/eio.php', + 'eio_sendfile' => 'eio/eio.php', + 'eio_set_max_idle' => 'eio/eio.php', + 'eio_set_max_parallel' => 'eio/eio.php', + 'eio_set_max_poll_reqs' => 'eio/eio.php', + 'eio_set_max_poll_time' => 'eio/eio.php', + 'eio_set_min_parallel' => 'eio/eio.php', + 'eio_stat' => 'eio/eio.php', + 'eio_statvfs' => 'eio/eio.php', + 'eio_symlink' => 'eio/eio.php', + 'eio_sync' => 'eio/eio.php', + 'eio_sync_file_range' => 'eio/eio.php', + 'eio_syncfs' => 'eio/eio.php', + 'eio_truncate' => 'eio/eio.php', + 'eio_unlink' => 'eio/eio.php', + 'eio_utime' => 'eio/eio.php', + 'eio_write' => 'eio/eio.php', + 'enchant_broker_describe' => 'enchant/enchant.php', + 'enchant_broker_dict_exists' => 'enchant/enchant.php', + 'enchant_broker_free' => 'enchant/enchant.php', + 'enchant_broker_free_dict' => 'enchant/enchant.php', + 'enchant_broker_get_dict_path' => 'enchant/enchant.php', + 'enchant_broker_get_error' => 'enchant/enchant.php', + 'enchant_broker_init' => 'enchant/enchant.php', + 'enchant_broker_list_dicts' => 'enchant/enchant.php', + 'enchant_broker_request_dict' => 'enchant/enchant.php', + 'enchant_broker_request_pwl_dict' => 'enchant/enchant.php', + 'enchant_broker_set_dict_path' => 'enchant/enchant.php', + 'enchant_broker_set_ordering' => 'enchant/enchant.php', + 'enchant_dict_add' => 'enchant/enchant.php', + 'enchant_dict_add_to_personal' => 'enchant/enchant.php', + 'enchant_dict_add_to_session' => 'enchant/enchant.php', + 'enchant_dict_check' => 'enchant/enchant.php', + 'enchant_dict_describe' => 'enchant/enchant.php', + 'enchant_dict_get_error' => 'enchant/enchant.php', + 'enchant_dict_is_added' => 'enchant/enchant.php', + 'enchant_dict_is_in_session' => 'enchant/enchant.php', + 'enchant_dict_quick_check' => 'enchant/enchant.php', + 'enchant_dict_store_replacement' => 'enchant/enchant.php', + 'enchant_dict_suggest' => 'enchant/enchant.php', + 'end' => 'standard/standard_8.php', + 'enum_exists' => 'Core/Core.php', + 'ereg' => 'regex/ereg.php', + 'ereg_replace' => 'regex/ereg.php', + 'eregi' => 'regex/ereg.php', + 'eregi_replace' => 'regex/ereg.php', + 'error_clear_last' => 'standard/basic.php', + 'error_get_last' => 'standard/standard_4.php', + 'error_log' => 'standard/standard_3.php', + 'error_reporting' => 'Core/Core.php', + 'escapeshellarg' => 'standard/standard_2.php', + 'escapeshellcmd' => 'standard/standard_2.php', + 'event_add' => 'libevent/libevent.php', + 'event_base_free' => 'libevent/libevent.php', + 'event_base_loop' => 'libevent/libevent.php', + 'event_base_loopbreak' => 'libevent/libevent.php', + 'event_base_loopexit' => 'libevent/libevent.php', + 'event_base_new' => 'libevent/libevent.php', + 'event_base_priority_init' => 'libevent/libevent.php', + 'event_base_set' => 'libevent/libevent.php', + 'event_buffer_base_set' => 'libevent/libevent.php', + 'event_buffer_disable' => 'libevent/libevent.php', + 'event_buffer_enable' => 'libevent/libevent.php', + 'event_buffer_fd_set' => 'libevent/libevent.php', + 'event_buffer_free' => 'libevent/libevent.php', + 'event_buffer_new' => 'libevent/libevent.php', + 'event_buffer_priority_set' => 'libevent/libevent.php', + 'event_buffer_read' => 'libevent/libevent.php', + 'event_buffer_set_callback' => 'libevent/libevent.php', + 'event_buffer_timeout_set' => 'libevent/libevent.php', + 'event_buffer_watermark_set' => 'libevent/libevent.php', + 'event_buffer_write' => 'libevent/libevent.php', + 'event_del' => 'libevent/libevent.php', + 'event_free' => 'libevent/libevent.php', + 'event_new' => 'libevent/libevent.php', + 'event_set' => 'libevent/libevent.php', + 'event_timer_add' => 'libevent/libevent.php', + 'event_timer_del' => 'libevent/libevent.php', + 'event_timer_new' => 'libevent/libevent.php', + 'event_timer_pending' => 'libevent/libevent.php', + 'event_timer_set' => 'libevent/libevent.php', + 'exec' => 'standard/standard_2.php', + 'exif_imagetype' => 'exif/exif.php', + 'exif_read_data' => 'exif/exif.php', + 'exif_tagname' => 'exif/exif.php', + 'exif_thumbnail' => 'exif/exif.php', + 'exp' => 'standard/standard_3.php', + 'expect_expectl' => 'expect/expect.php', + 'expect_popen' => 'expect/expect.php', + 'explode' => 'standard/standard_1.php', + 'expm1' => 'standard/standard_3.php', + 'extension_loaded' => 'Core/Core.php', + 'extract' => 'standard/standard_8.php', + 'ezmlm_hash' => 'standard/standard_7.php', + 'fann_cascadetrain_on_data' => 'fann/fann.php', + 'fann_cascadetrain_on_file' => 'fann/fann.php', + 'fann_clear_scaling_params' => 'fann/fann.php', + 'fann_copy' => 'fann/fann.php', + 'fann_create_from_file' => 'fann/fann.php', + 'fann_create_shortcut' => 'fann/fann.php', + 'fann_create_shortcut_array' => 'fann/fann.php', + 'fann_create_sparse' => 'fann/fann.php', + 'fann_create_sparse_array' => 'fann/fann.php', + 'fann_create_standard' => 'fann/fann.php', + 'fann_create_standard_array' => 'fann/fann.php', + 'fann_create_train' => 'fann/fann.php', + 'fann_create_train_from_callback' => 'fann/fann.php', + 'fann_descale_input' => 'fann/fann.php', + 'fann_descale_output' => 'fann/fann.php', + 'fann_descale_train' => 'fann/fann.php', + 'fann_destroy' => 'fann/fann.php', + 'fann_destroy_train' => 'fann/fann.php', + 'fann_duplicate_train_data' => 'fann/fann.php', + 'fann_get_MSE' => 'fann/fann.php', + 'fann_get_activation_function' => 'fann/fann.php', + 'fann_get_activation_steepness' => 'fann/fann.php', + 'fann_get_bias_array' => 'fann/fann.php', + 'fann_get_bit_fail' => 'fann/fann.php', + 'fann_get_bit_fail_limit' => 'fann/fann.php', + 'fann_get_cascade_activation_functions' => 'fann/fann.php', + 'fann_get_cascade_activation_functions_count' => 'fann/fann.php', + 'fann_get_cascade_activation_steepnesses' => 'fann/fann.php', + 'fann_get_cascade_activation_steepnesses_count' => 'fann/fann.php', + 'fann_get_cascade_candidate_change_fraction' => 'fann/fann.php', + 'fann_get_cascade_candidate_limit' => 'fann/fann.php', + 'fann_get_cascade_candidate_stagnation_epochs' => 'fann/fann.php', + 'fann_get_cascade_max_cand_epochs' => 'fann/fann.php', + 'fann_get_cascade_max_out_epochs' => 'fann/fann.php', + 'fann_get_cascade_min_cand_epochs' => 'fann/fann.php', + 'fann_get_cascade_min_out_epochs' => 'fann/fann.php', + 'fann_get_cascade_num_candidate_groups' => 'fann/fann.php', + 'fann_get_cascade_num_candidates' => 'fann/fann.php', + 'fann_get_cascade_output_change_fraction' => 'fann/fann.php', + 'fann_get_cascade_output_stagnation_epochs' => 'fann/fann.php', + 'fann_get_cascade_weight_multiplier' => 'fann/fann.php', + 'fann_get_connection_array' => 'fann/fann.php', + 'fann_get_connection_rate' => 'fann/fann.php', + 'fann_get_errno' => 'fann/fann.php', + 'fann_get_errstr' => 'fann/fann.php', + 'fann_get_layer_array' => 'fann/fann.php', + 'fann_get_learning_momentum' => 'fann/fann.php', + 'fann_get_learning_rate' => 'fann/fann.php', + 'fann_get_network_type' => 'fann/fann.php', + 'fann_get_num_input' => 'fann/fann.php', + 'fann_get_num_layers' => 'fann/fann.php', + 'fann_get_num_output' => 'fann/fann.php', + 'fann_get_quickprop_decay' => 'fann/fann.php', + 'fann_get_quickprop_mu' => 'fann/fann.php', + 'fann_get_rprop_decrease_factor' => 'fann/fann.php', + 'fann_get_rprop_delta_max' => 'fann/fann.php', + 'fann_get_rprop_delta_min' => 'fann/fann.php', + 'fann_get_rprop_delta_zero' => 'fann/fann.php', + 'fann_get_rprop_increase_factor' => 'fann/fann.php', + 'fann_get_sarprop_step_error_shift' => 'fann/fann.php', + 'fann_get_sarprop_step_error_threshold_factor' => 'fann/fann.php', + 'fann_get_sarprop_temperature' => 'fann/fann.php', + 'fann_get_sarprop_weight_decay_shift' => 'fann/fann.php', + 'fann_get_total_connections' => 'fann/fann.php', + 'fann_get_total_neurons' => 'fann/fann.php', + 'fann_get_train_error_function' => 'fann/fann.php', + 'fann_get_train_stop_function' => 'fann/fann.php', + 'fann_get_training_algorithm' => 'fann/fann.php', + 'fann_init_weights' => 'fann/fann.php', + 'fann_length_train_data' => 'fann/fann.php', + 'fann_merge_train_data' => 'fann/fann.php', + 'fann_num_input_train_data' => 'fann/fann.php', + 'fann_num_output_train_data' => 'fann/fann.php', + 'fann_print_error' => 'fann/fann.php', + 'fann_randomize_weights' => 'fann/fann.php', + 'fann_read_train_from_file' => 'fann/fann.php', + 'fann_reset_MSE' => 'fann/fann.php', + 'fann_reset_errno' => 'fann/fann.php', + 'fann_reset_errstr' => 'fann/fann.php', + 'fann_run' => 'fann/fann.php', + 'fann_save' => 'fann/fann.php', + 'fann_save_train' => 'fann/fann.php', + 'fann_scale_input' => 'fann/fann.php', + 'fann_scale_input_train_data' => 'fann/fann.php', + 'fann_scale_output' => 'fann/fann.php', + 'fann_scale_output_train_data' => 'fann/fann.php', + 'fann_scale_train' => 'fann/fann.php', + 'fann_scale_train_data' => 'fann/fann.php', + 'fann_set_activation_function' => 'fann/fann.php', + 'fann_set_activation_function_hidden' => 'fann/fann.php', + 'fann_set_activation_function_layer' => 'fann/fann.php', + 'fann_set_activation_function_output' => 'fann/fann.php', + 'fann_set_activation_steepness' => 'fann/fann.php', + 'fann_set_activation_steepness_hidden' => 'fann/fann.php', + 'fann_set_activation_steepness_layer' => 'fann/fann.php', + 'fann_set_activation_steepness_output' => 'fann/fann.php', + 'fann_set_bit_fail_limit' => 'fann/fann.php', + 'fann_set_callback' => 'fann/fann.php', + 'fann_set_cascade_activation_functions' => 'fann/fann.php', + 'fann_set_cascade_activation_steepnesses' => 'fann/fann.php', + 'fann_set_cascade_candidate_change_fraction' => 'fann/fann.php', + 'fann_set_cascade_candidate_limit' => 'fann/fann.php', + 'fann_set_cascade_candidate_stagnation_epochs' => 'fann/fann.php', + 'fann_set_cascade_max_cand_epochs' => 'fann/fann.php', + 'fann_set_cascade_max_out_epochs' => 'fann/fann.php', + 'fann_set_cascade_min_cand_epochs' => 'fann/fann.php', + 'fann_set_cascade_min_out_epochs' => 'fann/fann.php', + 'fann_set_cascade_num_candidate_groups' => 'fann/fann.php', + 'fann_set_cascade_output_change_fraction' => 'fann/fann.php', + 'fann_set_cascade_output_stagnation_epochs' => 'fann/fann.php', + 'fann_set_cascade_weight_multiplier' => 'fann/fann.php', + 'fann_set_error_log' => 'fann/fann.php', + 'fann_set_input_scaling_params' => 'fann/fann.php', + 'fann_set_learning_momentum' => 'fann/fann.php', + 'fann_set_learning_rate' => 'fann/fann.php', + 'fann_set_output_scaling_params' => 'fann/fann.php', + 'fann_set_quickprop_decay' => 'fann/fann.php', + 'fann_set_quickprop_mu' => 'fann/fann.php', + 'fann_set_rprop_decrease_factor' => 'fann/fann.php', + 'fann_set_rprop_delta_max' => 'fann/fann.php', + 'fann_set_rprop_delta_min' => 'fann/fann.php', + 'fann_set_rprop_delta_zero' => 'fann/fann.php', + 'fann_set_rprop_increase_factor' => 'fann/fann.php', + 'fann_set_sarprop_step_error_shift' => 'fann/fann.php', + 'fann_set_sarprop_step_error_threshold_factor' => 'fann/fann.php', + 'fann_set_sarprop_temperature' => 'fann/fann.php', + 'fann_set_sarprop_weight_decay_shift' => 'fann/fann.php', + 'fann_set_scaling_params' => 'fann/fann.php', + 'fann_set_train_error_function' => 'fann/fann.php', + 'fann_set_train_stop_function' => 'fann/fann.php', + 'fann_set_training_algorithm' => 'fann/fann.php', + 'fann_set_weight' => 'fann/fann.php', + 'fann_set_weight_array' => 'fann/fann.php', + 'fann_shuffle_train_data' => 'fann/fann.php', + 'fann_subset_train_data' => 'fann/fann.php', + 'fann_test' => 'fann/fann.php', + 'fann_test_data' => 'fann/fann.php', + 'fann_train' => 'fann/fann.php', + 'fann_train_epoch' => 'fann/fann.php', + 'fann_train_on_data' => 'fann/fann.php', + 'fann_train_on_file' => 'fann/fann.php', + 'fastcgi_finish_request' => 'fpm/fpm.php', + 'fbird_add_user' => 'interbase/interbase.php', + 'fbird_affected_rows' => 'interbase/interbase.php', + 'fbird_backup' => 'interbase/interbase.php', + 'fbird_blob_add' => 'interbase/interbase.php', + 'fbird_blob_cancel' => 'interbase/interbase.php', + 'fbird_blob_close' => 'interbase/interbase.php', + 'fbird_blob_create' => 'interbase/interbase.php', + 'fbird_blob_echo' => 'interbase/interbase.php', + 'fbird_blob_get' => 'interbase/interbase.php', + 'fbird_blob_import' => 'interbase/interbase.php', + 'fbird_blob_info' => 'interbase/interbase.php', + 'fbird_blob_open' => 'interbase/interbase.php', + 'fbird_close' => 'interbase/interbase.php', + 'fbird_commit' => 'interbase/interbase.php', + 'fbird_commit_ret' => 'interbase/interbase.php', + 'fbird_connect' => 'interbase/interbase.php', + 'fbird_db_info' => 'interbase/interbase.php', + 'fbird_delete_user' => 'interbase/interbase.php', + 'fbird_drop_db' => 'interbase/interbase.php', + 'fbird_errcode' => 'interbase/interbase.php', + 'fbird_errmsg' => 'interbase/interbase.php', + 'fbird_execute' => 'interbase/interbase.php', + 'fbird_fetch_assoc' => 'interbase/interbase.php', + 'fbird_fetch_object' => 'interbase/interbase.php', + 'fbird_fetch_row' => 'interbase/interbase.php', + 'fbird_field_info' => 'interbase/interbase.php', + 'fbird_free_event_handler' => 'interbase/interbase.php', + 'fbird_free_query' => 'interbase/interbase.php', + 'fbird_free_result' => 'interbase/interbase.php', + 'fbird_gen_id' => 'interbase/interbase.php', + 'fbird_maintain_db' => 'interbase/interbase.php', + 'fbird_modify_user' => 'interbase/interbase.php', + 'fbird_name_result' => 'interbase/interbase.php', + 'fbird_num_fields' => 'interbase/interbase.php', + 'fbird_num_params' => 'interbase/interbase.php', + 'fbird_param_info' => 'interbase/interbase.php', + 'fbird_pconnect' => 'interbase/interbase.php', + 'fbird_prepare' => 'interbase/interbase.php', + 'fbird_query' => 'interbase/interbase.php', + 'fbird_restore' => 'interbase/interbase.php', + 'fbird_rollback' => 'interbase/interbase.php', + 'fbird_rollback_ret' => 'interbase/interbase.php', + 'fbird_server_info' => 'interbase/interbase.php', + 'fbird_service_attach' => 'interbase/interbase.php', + 'fbird_service_detach' => 'interbase/interbase.php', + 'fbird_set_event_handler' => 'interbase/interbase.php', + 'fbird_trans' => 'interbase/interbase.php', + 'fbird_wait_event' => 'interbase/interbase.php', + 'fclose' => 'standard/standard_5.php', + 'fdatasync' => 'standard/standard_5.php', + 'fdiv' => 'standard/standard_3.php', + 'feof' => 'standard/standard_5.php', + 'fflush' => 'standard/standard_5.php', + 'fgetc' => 'standard/standard_5.php', + 'fgetcsv' => 'standard/standard_6.php', + 'fgets' => 'standard/standard_5.php', + 'fgetss' => 'standard/standard_5.php', + 'file' => 'standard/standard_5.php', + 'file_exists' => 'standard/standard_7.php', + 'file_get_contents' => 'standard/standard_5.php', + 'file_put_contents' => 'standard/standard_5.php', + 'fileatime' => 'standard/standard_7.php', + 'filectime' => 'standard/standard_7.php', + 'filegroup' => 'standard/standard_7.php', + 'fileinode' => 'standard/standard_7.php', + 'filemtime' => 'standard/standard_7.php', + 'fileowner' => 'standard/standard_7.php', + 'fileperms' => 'standard/standard_7.php', + 'filesize' => 'standard/standard_7.php', + 'filetype' => 'standard/standard_7.php', + 'filter_has_var' => 'filter/filter.php', + 'filter_id' => 'filter/filter.php', + 'filter_input' => 'filter/filter.php', + 'filter_input_array' => 'filter/filter.php', + 'filter_list' => 'filter/filter.php', + 'filter_var' => 'filter/filter.php', + 'filter_var_array' => 'filter/filter.php', + 'finfo_buffer' => 'fileinfo/fileinfo.php', + 'finfo_close' => 'fileinfo/fileinfo.php', + 'finfo_file' => 'fileinfo/fileinfo.php', + 'finfo_open' => 'fileinfo/fileinfo.php', + 'finfo_set_flags' => 'fileinfo/fileinfo.php', + 'floatval' => 'standard/standard_5.php', + 'flock' => 'standard/standard_6.php', + 'floor' => 'standard/standard_3.php', + 'flush' => 'standard/standard_0.php', + 'fmod' => 'standard/standard_3.php', + 'fnmatch' => 'standard/standard_6.php', + 'fopen' => 'standard/standard_5.php', + 'forward_static_call' => 'standard/standard_4.php', + 'forward_static_call_array' => 'standard/standard_4.php', + 'fpassthru' => 'standard/standard_5.php', + 'fpm_get_status' => 'fpm/fpm.php', + 'fprintf' => 'standard/standard_2.php', + 'fputcsv' => 'standard/standard_6.php', + 'fputs' => 'standard/standard_5.php', + 'fread' => 'standard/standard_5.php', + 'frenchtojd' => 'calendar/calendar.php', + 'fscanf' => 'standard/standard_2.php', + 'fseek' => 'standard/standard_5.php', + 'fsockopen' => 'standard/standard_7.php', + 'fstat' => 'standard/standard_5.php', + 'fsync' => 'standard/standard_5.php', + 'ftell' => 'standard/standard_5.php', + 'ftok' => 'standard/standard_9.php', + 'ftp_alloc' => 'ftp/ftp.php', + 'ftp_append' => 'ftp/ftp.php', + 'ftp_cdup' => 'ftp/ftp.php', + 'ftp_chdir' => 'ftp/ftp.php', + 'ftp_chmod' => 'ftp/ftp.php', + 'ftp_close' => 'ftp/ftp.php', + 'ftp_connect' => 'ftp/ftp.php', + 'ftp_delete' => 'ftp/ftp.php', + 'ftp_exec' => 'ftp/ftp.php', + 'ftp_fget' => 'ftp/ftp.php', + 'ftp_fput' => 'ftp/ftp.php', + 'ftp_get' => 'ftp/ftp.php', + 'ftp_get_option' => 'ftp/ftp.php', + 'ftp_login' => 'ftp/ftp.php', + 'ftp_mdtm' => 'ftp/ftp.php', + 'ftp_mkdir' => 'ftp/ftp.php', + 'ftp_mlsd' => 'ftp/ftp.php', + 'ftp_nb_continue' => 'ftp/ftp.php', + 'ftp_nb_fget' => 'ftp/ftp.php', + 'ftp_nb_fput' => 'ftp/ftp.php', + 'ftp_nb_get' => 'ftp/ftp.php', + 'ftp_nb_put' => 'ftp/ftp.php', + 'ftp_nlist' => 'ftp/ftp.php', + 'ftp_pasv' => 'ftp/ftp.php', + 'ftp_put' => 'ftp/ftp.php', + 'ftp_pwd' => 'ftp/ftp.php', + 'ftp_quit' => 'ftp/ftp.php', + 'ftp_raw' => 'ftp/ftp.php', + 'ftp_rawlist' => 'ftp/ftp.php', + 'ftp_rename' => 'ftp/ftp.php', + 'ftp_rmdir' => 'ftp/ftp.php', + 'ftp_set_option' => 'ftp/ftp.php', + 'ftp_site' => 'ftp/ftp.php', + 'ftp_size' => 'ftp/ftp.php', + 'ftp_ssl_connect' => 'ftp/ftp.php', + 'ftp_systype' => 'ftp/ftp.php', + 'ftruncate' => 'standard/standard_5.php', + 'func_get_arg' => 'Core/Core.php', + 'func_get_args' => 'Core/Core.php', + 'func_num_args' => 'Core/Core.php', + 'function_exists' => 'Core/Core.php', + 'fwrite' => 'standard/standard_5.php', + 'gc_collect_cycles' => 'Core/Core.php', + 'gc_disable' => 'Core/Core.php', + 'gc_enable' => 'Core/Core.php', + 'gc_enabled' => 'Core/Core.php', + 'gc_mem_caches' => 'Core/Core.php', + 'gc_status' => 'Core/Core.php', + 'gd_info' => 'gd/gd.php', + 'gearman_bugreport' => 'gearman/gearman.php', + 'gearman_client_add_options' => 'gearman/gearman.php', + 'gearman_client_add_server' => 'gearman/gearman.php', + 'gearman_client_add_servers' => 'gearman/gearman.php', + 'gearman_client_add_task' => 'gearman/gearman.php', + 'gearman_client_add_task_background' => 'gearman/gearman.php', + 'gearman_client_add_task_high' => 'gearman/gearman.php', + 'gearman_client_add_task_high_background' => 'gearman/gearman.php', + 'gearman_client_add_task_low' => 'gearman/gearman.php', + 'gearman_client_add_task_low_background' => 'gearman/gearman.php', + 'gearman_client_add_task_status' => 'gearman/gearman.php', + 'gearman_client_clear_fn' => 'gearman/gearman.php', + 'gearman_client_clone' => 'gearman/gearman.php', + 'gearman_client_context' => 'gearman/gearman.php', + 'gearman_client_create' => 'gearman/gearman.php', + 'gearman_client_do' => 'gearman/gearman.php', + 'gearman_client_do_background' => 'gearman/gearman.php', + 'gearman_client_do_high' => 'gearman/gearman.php', + 'gearman_client_do_high_background' => 'gearman/gearman.php', + 'gearman_client_do_job_handle' => 'gearman/gearman.php', + 'gearman_client_do_low' => 'gearman/gearman.php', + 'gearman_client_do_low_background' => 'gearman/gearman.php', + 'gearman_client_do_normal' => 'gearman/gearman.php', + 'gearman_client_do_status' => 'gearman/gearman.php', + 'gearman_client_echo' => 'gearman/gearman.php', + 'gearman_client_errno' => 'gearman/gearman.php', + 'gearman_client_error' => 'gearman/gearman.php', + 'gearman_client_job_status' => 'gearman/gearman.php', + 'gearman_client_options' => 'gearman/gearman.php', + 'gearman_client_remove_options' => 'gearman/gearman.php', + 'gearman_client_return_code' => 'gearman/gearman.php', + 'gearman_client_run_tasks' => 'gearman/gearman.php', + 'gearman_client_set_complete_fn' => 'gearman/gearman.php', + 'gearman_client_set_context' => 'gearman/gearman.php', + 'gearman_client_set_created_fn' => 'gearman/gearman.php', + 'gearman_client_set_data_fn' => 'gearman/gearman.php', + 'gearman_client_set_exception_fn' => 'gearman/gearman.php', + 'gearman_client_set_fail_fn' => 'gearman/gearman.php', + 'gearman_client_set_options' => 'gearman/gearman.php', + 'gearman_client_set_status_fn' => 'gearman/gearman.php', + 'gearman_client_set_timeout' => 'gearman/gearman.php', + 'gearman_client_set_warning_fn' => 'gearman/gearman.php', + 'gearman_client_set_workload_fn' => 'gearman/gearman.php', + 'gearman_client_timeout' => 'gearman/gearman.php', + 'gearman_client_wait' => 'gearman/gearman.php', + 'gearman_job_function_name' => 'gearman/gearman.php', + 'gearman_job_handle' => 'gearman/gearman.php', + 'gearman_job_return_code' => 'gearman/gearman.php', + 'gearman_job_send_complete' => 'gearman/gearman.php', + 'gearman_job_send_data' => 'gearman/gearman.php', + 'gearman_job_send_exception' => 'gearman/gearman.php', + 'gearman_job_send_fail' => 'gearman/gearman.php', + 'gearman_job_send_status' => 'gearman/gearman.php', + 'gearman_job_send_warning' => 'gearman/gearman.php', + 'gearman_job_unique' => 'gearman/gearman.php', + 'gearman_job_workload' => 'gearman/gearman.php', + 'gearman_job_workload_size' => 'gearman/gearman.php', + 'gearman_task_data' => 'gearman/gearman.php', + 'gearman_task_data_size' => 'gearman/gearman.php', + 'gearman_task_denominator' => 'gearman/gearman.php', + 'gearman_task_function_name' => 'gearman/gearman.php', + 'gearman_task_is_known' => 'gearman/gearman.php', + 'gearman_task_is_running' => 'gearman/gearman.php', + 'gearman_task_job_handle' => 'gearman/gearman.php', + 'gearman_task_numerator' => 'gearman/gearman.php', + 'gearman_task_recv_data' => 'gearman/gearman.php', + 'gearman_task_return_code' => 'gearman/gearman.php', + 'gearman_task_send_workload' => 'gearman/gearman.php', + 'gearman_task_unique' => 'gearman/gearman.php', + 'gearman_verbose_name' => 'gearman/gearman.php', + 'gearman_version' => 'gearman/gearman.php', + 'gearman_worker_add_function' => 'gearman/gearman.php', + 'gearman_worker_add_options' => 'gearman/gearman.php', + 'gearman_worker_add_server' => 'gearman/gearman.php', + 'gearman_worker_add_servers' => 'gearman/gearman.php', + 'gearman_worker_clone' => 'gearman/gearman.php', + 'gearman_worker_create' => 'gearman/gearman.php', + 'gearman_worker_echo' => 'gearman/gearman.php', + 'gearman_worker_errno' => 'gearman/gearman.php', + 'gearman_worker_error' => 'gearman/gearman.php', + 'gearman_worker_grab_job' => 'gearman/gearman.php', + 'gearman_worker_options' => 'gearman/gearman.php', + 'gearman_worker_register' => 'gearman/gearman.php', + 'gearman_worker_remove_options' => 'gearman/gearman.php', + 'gearman_worker_return_code' => 'gearman/gearman.php', + 'gearman_worker_set_options' => 'gearman/gearman.php', + 'gearman_worker_set_timeout' => 'gearman/gearman.php', + 'gearman_worker_timeout' => 'gearman/gearman.php', + 'gearman_worker_unregister' => 'gearman/gearman.php', + 'gearman_worker_unregister_all' => 'gearman/gearman.php', + 'gearman_worker_wait' => 'gearman/gearman.php', + 'gearman_worker_work' => 'gearman/gearman.php', + 'geoip_asnum_by_name' => 'geoip/geoip.php', + 'geoip_continent_code_by_name' => 'geoip/geoip.php', + 'geoip_country_code3_by_name' => 'geoip/geoip.php', + 'geoip_country_code_by_name' => 'geoip/geoip.php', + 'geoip_country_name_by_name' => 'geoip/geoip.php', + 'geoip_database_info' => 'geoip/geoip.php', + 'geoip_db_avail' => 'geoip/geoip.php', + 'geoip_db_filename' => 'geoip/geoip.php', + 'geoip_db_get_all_info' => 'geoip/geoip.php', + 'geoip_id_by_name' => 'geoip/geoip.php', + 'geoip_isp_by_name' => 'geoip/geoip.php', + 'geoip_netspeedcell_by_name' => 'geoip/geoip.php', + 'geoip_org_by_name' => 'geoip/geoip.php', + 'geoip_record_by_name' => 'geoip/geoip.php', + 'geoip_region_by_name' => 'geoip/geoip.php', + 'geoip_region_name_by_code' => 'geoip/geoip.php', + 'geoip_setup_custom_directory' => 'geoip/geoip.php', + 'geoip_time_zone_by_country_and_region' => 'geoip/geoip.php', + 'get_browser' => 'standard/standard_7.php', + 'get_call_stack' => 'ZendDebugger/ZendDebugger.php', + 'get_called_class' => 'Core/Core.php', + 'get_cfg_var' => 'standard/standard_3.php', + 'get_class' => 'Core/Core.php', + 'get_class_methods' => 'Core/Core.php', + 'get_class_vars' => 'Core/Core.php', + 'get_current_user' => 'standard/standard_3.php', + 'get_debug_type' => 'standard/standard_9.php', + 'get_declared_classes' => 'Core/Core.php', + 'get_declared_interfaces' => 'Core/Core.php', + 'get_declared_traits' => 'Core/Core.php', + 'get_defined_constants' => 'Core/Core.php', + 'get_defined_functions' => 'Core/Core.php', + 'get_defined_vars' => 'Core/Core.php', + 'get_extension_funcs' => 'Core/Core.php', + 'get_headers' => 'standard/standard_6.php', + 'get_html_translation_table' => 'standard/standard_0.php', + 'get_include_path' => 'standard/standard_4.php', + 'get_included_files' => 'Core/Core.php', + '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', + 'get_required_files' => 'Core/Core.php', + 'get_resource_id' => 'standard/standard_9.php', + 'get_resource_type' => 'Core/Core.php', + 'get_resources' => 'Core/Core.php', + 'getallheaders' => 'standard/standard_4.php', + 'getcwd' => 'standard/standard_7.php', + 'getdate' => 'date/date.php', + 'getdir' => 'standard/standard_7.php', + 'getenv' => 'standard/standard_3.php', + 'gethostbyaddr' => 'standard/standard_4.php', + 'gethostbyname' => 'standard/standard_4.php', + 'gethostbynamel' => 'standard/standard_4.php', + 'gethostname' => 'standard/standard_4.php', + 'getimagesize' => 'standard/standard_0.php', + 'getimagesizefromstring' => 'standard/standard_8.php', + 'getlastmod' => 'standard/standard_3.php', + 'getmxrr' => 'standard/standard_4.php', + 'getmygid' => 'standard/standard_2.php', + 'getmyinode' => 'standard/standard_2.php', + 'getmypid' => 'standard/standard_2.php', + 'getmyuid' => 'standard/standard_2.php', + 'getopt' => 'standard/standard_3.php', + 'getprotobyname' => 'standard/standard_2.php', + 'getprotobynumber' => 'standard/standard_2.php', + 'getrandmax' => 'random/random.php', + 'getrusage' => 'standard/standard_3.php', + 'getservbyname' => 'standard/standard_2.php', + 'getservbyport' => 'standard/standard_2.php', + 'gettext' => 'gettext/gettext.php', + 'gettimeofday' => 'standard/standard_3.php', + 'gettype' => 'standard/standard_5.php', + 'glob' => 'standard/standard_7.php', + 'gmdate' => 'date/date.php', + 'gmmktime' => 'date/date.php', + 'gmp_abs' => 'gmp/gmp.php', + 'gmp_add' => 'gmp/gmp.php', + 'gmp_and' => 'gmp/gmp.php', + 'gmp_binomial' => 'gmp/gmp.php', + 'gmp_clrbit' => 'gmp/gmp.php', + 'gmp_cmp' => 'gmp/gmp.php', + 'gmp_com' => 'gmp/gmp.php', + 'gmp_div' => 'gmp/gmp.php', + 'gmp_div_q' => 'gmp/gmp.php', + 'gmp_div_qr' => 'gmp/gmp.php', + 'gmp_div_r' => 'gmp/gmp.php', + 'gmp_divexact' => 'gmp/gmp.php', + 'gmp_export' => 'gmp/gmp.php', + 'gmp_fact' => 'gmp/gmp.php', + 'gmp_gcd' => 'gmp/gmp.php', + 'gmp_gcdext' => 'gmp/gmp.php', + 'gmp_hamdist' => 'gmp/gmp.php', + 'gmp_import' => 'gmp/gmp.php', + 'gmp_init' => 'gmp/gmp.php', + 'gmp_intval' => 'gmp/gmp.php', + 'gmp_invert' => 'gmp/gmp.php', + 'gmp_jacobi' => 'gmp/gmp.php', + 'gmp_kronecker' => 'gmp/gmp.php', + 'gmp_lcm' => 'gmp/gmp.php', + 'gmp_legendre' => 'gmp/gmp.php', + 'gmp_mod' => 'gmp/gmp.php', + 'gmp_mul' => 'gmp/gmp.php', + 'gmp_neg' => 'gmp/gmp.php', + 'gmp_nextprime' => 'gmp/gmp.php', + 'gmp_or' => 'gmp/gmp.php', + 'gmp_perfect_power' => 'gmp/gmp.php', + 'gmp_perfect_square' => 'gmp/gmp.php', + 'gmp_popcount' => 'gmp/gmp.php', + 'gmp_pow' => 'gmp/gmp.php', + 'gmp_powm' => 'gmp/gmp.php', + 'gmp_prob_prime' => 'gmp/gmp.php', + 'gmp_random' => 'gmp/gmp.php', + 'gmp_random_bits' => 'gmp/gmp.php', + 'gmp_random_range' => 'gmp/gmp.php', + 'gmp_random_seed' => 'gmp/gmp.php', + 'gmp_root' => 'gmp/gmp.php', + 'gmp_rootrem' => 'gmp/gmp.php', + 'gmp_scan0' => 'gmp/gmp.php', + 'gmp_scan1' => 'gmp/gmp.php', + 'gmp_setbit' => 'gmp/gmp.php', + 'gmp_sign' => 'gmp/gmp.php', + 'gmp_sqrt' => 'gmp/gmp.php', + 'gmp_sqrtrem' => 'gmp/gmp.php', + 'gmp_strval' => 'gmp/gmp.php', + 'gmp_sub' => 'gmp/gmp.php', + 'gmp_testbit' => 'gmp/gmp.php', + 'gmp_xor' => 'gmp/gmp.php', + 'gmstrftime' => 'date/date.php', + 'gnupg_adddecryptkey' => 'gnupg/gnupg.php', + 'gnupg_addencryptkey' => 'gnupg/gnupg.php', + 'gnupg_addsignkey' => 'gnupg/gnupg.php', + 'gnupg_cleardecryptkeys' => 'gnupg/gnupg.php', + 'gnupg_clearencryptkeys' => 'gnupg/gnupg.php', + 'gnupg_clearsignkeys' => 'gnupg/gnupg.php', + 'gnupg_decrypt' => 'gnupg/gnupg.php', + 'gnupg_decryptverify' => 'gnupg/gnupg.php', + 'gnupg_deletekey' => 'gnupg/gnupg.php', + 'gnupg_encrypt' => 'gnupg/gnupg.php', + 'gnupg_encryptsign' => 'gnupg/gnupg.php', + 'gnupg_export' => 'gnupg/gnupg.php', + 'gnupg_getengineinfo' => 'gnupg/gnupg.php', + 'gnupg_geterror' => 'gnupg/gnupg.php', + 'gnupg_geterrorinfo' => 'gnupg/gnupg.php', + 'gnupg_getprotocol' => 'gnupg/gnupg.php', + 'gnupg_gettrustlist' => 'gnupg/gnupg.php', + 'gnupg_import' => 'gnupg/gnupg.php', + 'gnupg_init' => 'gnupg/gnupg.php', + 'gnupg_keyinfo' => 'gnupg/gnupg.php', + 'gnupg_listsignatures' => 'gnupg/gnupg.php', + 'gnupg_setarmor' => 'gnupg/gnupg.php', + 'gnupg_seterrormode' => 'gnupg/gnupg.php', + 'gnupg_setsignmode' => 'gnupg/gnupg.php', + 'gnupg_sign' => 'gnupg/gnupg.php', + 'gnupg_verify' => 'gnupg/gnupg.php', + 'go' => 'swoole/functions.php', + 'grapheme_extract' => 'intl/intl.php', + 'grapheme_stripos' => 'intl/intl.php', + 'grapheme_stristr' => 'intl/intl.php', + 'grapheme_strlen' => 'intl/intl.php', + 'grapheme_strpos' => 'intl/intl.php', + 'grapheme_strripos' => 'intl/intl.php', + 'grapheme_strrpos' => 'intl/intl.php', + 'grapheme_strstr' => 'intl/intl.php', + 'grapheme_substr' => 'intl/intl.php', + 'gregoriantojd' => 'calendar/calendar.php', + 'gzclose' => 'zlib/zlib.php', + 'gzcompress' => 'zlib/zlib.php', + 'gzdecode' => 'zlib/zlib.php', + 'gzdeflate' => 'zlib/zlib.php', + 'gzencode' => 'zlib/zlib.php', + 'gzeof' => 'zlib/zlib.php', + 'gzfile' => 'zlib/zlib.php', + 'gzgetc' => 'zlib/zlib.php', + 'gzgets' => 'zlib/zlib.php', + 'gzgetss' => 'zlib/zlib.php', + 'gzinflate' => 'zlib/zlib.php', + 'gzopen' => 'zlib/zlib.php', + 'gzpassthru' => 'zlib/zlib.php', + 'gzputs' => 'zlib/zlib.php', + 'gzread' => 'zlib/zlib.php', + 'gzrewind' => 'zlib/zlib.php', + 'gzseek' => 'zlib/zlib.php', + 'gztell' => 'zlib/zlib.php', + 'gzuncompress' => 'zlib/zlib.php', + 'gzwrite' => 'zlib/zlib.php', + 'hash' => 'hash/hash.php', + 'hash_algos' => 'hash/hash.php', + 'hash_copy' => 'hash/hash.php', + 'hash_equals' => 'hash/hash.php', + 'hash_file' => 'hash/hash.php', + 'hash_final' => 'hash/hash.php', + 'hash_hkdf' => 'hash/hash.php', + 'hash_hmac' => 'hash/hash.php', + 'hash_hmac_algos' => 'hash/hash.php', + 'hash_hmac_file' => 'hash/hash.php', + 'hash_init' => 'hash/hash.php', + 'hash_pbkdf2' => 'hash/hash.php', + 'hash_update' => 'hash/hash.php', + 'hash_update_file' => 'hash/hash.php', + 'hash_update_stream' => 'hash/hash.php', + 'header' => 'standard/standard_4.php', + 'header_register_callback' => 'standard/standard_8.php', + 'header_remove' => 'standard/standard_4.php', + 'headers_list' => 'standard/standard_4.php', + 'headers_sent' => 'standard/standard_4.php', + 'hebrev' => 'standard/standard_1.php', + 'hebrevc' => 'standard/standard_1.php', + 'hex2bin' => 'standard/_standard_manual.php', + 'hexdec' => 'standard/standard_3.php', + 'highlight_file' => 'standard/standard_4.php', + 'highlight_string' => 'standard/standard_4.php', + 'hrtime' => 'standard/standard_4.php', + 'html_entity_decode' => 'standard/standard_0.php', + 'htmlentities' => 'standard/standard_0.php', + 'htmlspecialchars' => 'standard/standard_0.php', + 'htmlspecialchars_decode' => 'standard/standard_0.php', + 'http_build_cookie' => 'http/http.php', + 'http_build_query' => 'standard/standard_2.php', + 'http_build_str' => 'http/http.php', + 'http_build_url' => 'http/http.php', + 'http_cache_etag' => 'http/http.php', + 'http_cache_last_modified' => 'http/http.php', + 'http_chunked_decode' => 'http/http.php', + 'http_date' => 'http/http.php', + 'http_deflate' => 'http/http.php', + 'http_get' => 'http/http.php', + 'http_get_request_body' => 'http/http.php', + 'http_get_request_body_stream' => 'http/http.php', + 'http_get_request_headers' => 'http/http.php', + 'http_head' => 'http/http.php', + 'http_inflate' => 'http/http.php', + 'http_match_etag' => 'http/http.php', + 'http_match_modified' => 'http/http.php', + 'http_match_request_header' => 'http/http.php', + 'http_negotiate_charset' => 'http/http.php', + 'http_negotiate_content_type' => 'http/http.php', + 'http_negotiate_language' => 'http/http.php', + 'http_parse_cookie' => 'http/http.php', + 'http_parse_headers' => 'http/http.php', + 'http_parse_message' => 'http/http.php', + 'http_parse_params' => 'http/http.php', + 'http_persistent_handles_clean' => 'http/http.php', + 'http_persistent_handles_count' => 'http/http.php', + 'http_persistent_handles_ident' => 'http/http.php', + 'http_post_data' => 'http/http.php', + 'http_post_fields' => 'http/http.php', + 'http_put_data' => 'http/http.php', + 'http_put_file' => 'http/http.php', + 'http_put_stream' => 'http/http.php', + 'http_redirect' => 'http/http.php', + 'http_request' => 'http/http.php', + 'http_request_body_encode' => 'http/http.php', + 'http_request_method_exists' => 'http/http.php', + 'http_request_method_name' => 'http/http.php', + 'http_request_method_register' => 'http/http.php', + 'http_request_method_unregister' => 'http/http.php', + 'http_response_code' => 'standard/_standard_manual.php', + 'http_send_content_disposition' => 'http/http.php', + 'http_send_content_type' => 'http/http.php', + 'http_send_data' => 'http/http.php', + 'http_send_file' => 'http/http.php', + 'http_send_last_modified' => 'http/http.php', + 'http_send_status' => 'http/http.php', + 'http_send_stream' => 'http/http.php', + 'http_support' => 'http/http.php', + 'http_throttle' => 'http/http.php', + 'hypot' => 'standard/standard_3.php', + 'ibase_add_user' => 'interbase/interbase.php', + 'ibase_affected_rows' => 'interbase/interbase.php', + 'ibase_backup' => 'interbase/interbase.php', + 'ibase_blob_add' => 'interbase/interbase.php', + 'ibase_blob_cancel' => 'interbase/interbase.php', + 'ibase_blob_close' => 'interbase/interbase.php', + 'ibase_blob_create' => 'interbase/interbase.php', + 'ibase_blob_echo' => 'interbase/interbase.php', + 'ibase_blob_get' => 'interbase/interbase.php', + 'ibase_blob_import' => 'interbase/interbase.php', + 'ibase_blob_info' => 'interbase/interbase.php', + 'ibase_blob_open' => 'interbase/interbase.php', + 'ibase_close' => 'interbase/interbase.php', + 'ibase_commit' => 'interbase/interbase.php', + 'ibase_commit_ret' => 'interbase/interbase.php', + 'ibase_connect' => 'interbase/interbase.php', + 'ibase_db_info' => 'interbase/interbase.php', + 'ibase_delete_user' => 'interbase/interbase.php', + 'ibase_drop_db' => 'interbase/interbase.php', + 'ibase_errcode' => 'interbase/interbase.php', + 'ibase_errmsg' => 'interbase/interbase.php', + 'ibase_execute' => 'interbase/interbase.php', + 'ibase_fetch_assoc' => 'interbase/interbase.php', + 'ibase_fetch_object' => 'interbase/interbase.php', + 'ibase_fetch_row' => 'interbase/interbase.php', + 'ibase_field_info' => 'interbase/interbase.php', + 'ibase_free_event_handler' => 'interbase/interbase.php', + 'ibase_free_query' => 'interbase/interbase.php', + 'ibase_free_result' => 'interbase/interbase.php', + 'ibase_gen_id' => 'interbase/interbase.php', + 'ibase_maintain_db' => 'interbase/interbase.php', + 'ibase_modify_user' => 'interbase/interbase.php', + 'ibase_name_result' => 'interbase/interbase.php', + 'ibase_num_fields' => 'interbase/interbase.php', + 'ibase_num_params' => 'interbase/interbase.php', + 'ibase_param_info' => 'interbase/interbase.php', + 'ibase_pconnect' => 'interbase/interbase.php', + 'ibase_prepare' => 'interbase/interbase.php', + 'ibase_query' => 'interbase/interbase.php', + 'ibase_restore' => 'interbase/interbase.php', + 'ibase_rollback' => 'interbase/interbase.php', + 'ibase_rollback_ret' => 'interbase/interbase.php', + 'ibase_server_info' => 'interbase/interbase.php', + 'ibase_service_attach' => 'interbase/interbase.php', + 'ibase_service_detach' => 'interbase/interbase.php', + 'ibase_set_event_handler' => 'interbase/interbase.php', + 'ibase_trans' => 'interbase/interbase.php', + 'ibase_wait_event' => 'interbase/interbase.php', + 'iconv' => 'iconv/iconv.php', + 'iconv_get_encoding' => 'iconv/iconv.php', + 'iconv_mime_decode' => 'iconv/iconv.php', + 'iconv_mime_decode_headers' => 'iconv/iconv.php', + 'iconv_mime_encode' => 'iconv/iconv.php', + 'iconv_set_encoding' => 'iconv/iconv.php', + 'iconv_strlen' => 'iconv/iconv.php', + 'iconv_strpos' => 'iconv/iconv.php', + 'iconv_strrpos' => 'iconv/iconv.php', + 'iconv_substr' => 'iconv/iconv.php', + 'idate' => 'date/date.php', + 'idn_to_ascii' => 'intl/intl.php', + 'idn_to_utf8' => 'intl/intl.php', + 'igbinary_serialize' => 'igbinary/igbinary.php', + 'igbinary_unserialize' => 'igbinary/igbinary.php', + 'ignore_user_abort' => 'standard/standard_4.php', + 'image2wbmp' => 'gd/gd.php', + 'image_type_to_extension' => 'standard/standard_0.php', + 'image_type_to_mime_type' => 'standard/standard_0.php', + 'imageaffine' => 'gd/gd.php', + 'imageaffinematrixconcat' => 'gd/gd.php', + 'imageaffinematrixget' => 'gd/gd.php', + 'imagealphablending' => 'gd/gd.php', + 'imageantialias' => 'gd/gd.php', + 'imagearc' => 'gd/gd.php', + 'imageavif' => 'gd/gd.php', + 'imagebmp' => 'gd/gd.php', + 'imagechar' => 'gd/gd.php', + 'imagecharup' => 'gd/gd.php', + 'imagecolorallocate' => 'gd/gd.php', + 'imagecolorallocatealpha' => 'gd/gd.php', + 'imagecolorat' => 'gd/gd.php', + 'imagecolorclosest' => 'gd/gd.php', + 'imagecolorclosestalpha' => 'gd/gd.php', + 'imagecolorclosesthwb' => 'gd/gd.php', + 'imagecolordeallocate' => 'gd/gd.php', + 'imagecolorexact' => 'gd/gd.php', + 'imagecolorexactalpha' => 'gd/gd.php', + 'imagecolormatch' => 'gd/gd.php', + 'imagecolorresolve' => 'gd/gd.php', + 'imagecolorresolvealpha' => 'gd/gd.php', + 'imagecolorset' => 'gd/gd.php', + 'imagecolorsforindex' => 'gd/gd.php', + 'imagecolorstotal' => 'gd/gd.php', + 'imagecolortransparent' => 'gd/gd.php', + 'imageconvolution' => 'gd/gd.php', + 'imagecopy' => 'gd/gd.php', + 'imagecopymerge' => 'gd/gd.php', + 'imagecopymergegray' => 'gd/gd.php', + 'imagecopyresampled' => 'gd/gd.php', + 'imagecopyresized' => 'gd/gd.php', + 'imagecreate' => 'gd/gd.php', + 'imagecreatefromavif' => 'gd/gd.php', + 'imagecreatefrombmp' => 'gd/gd.php', + 'imagecreatefromgd' => 'gd/gd.php', + 'imagecreatefromgd2' => 'gd/gd.php', + 'imagecreatefromgd2part' => 'gd/gd.php', + 'imagecreatefromgif' => 'gd/gd.php', + 'imagecreatefromjpeg' => 'gd/gd.php', + 'imagecreatefrompng' => 'gd/gd.php', + 'imagecreatefromstring' => 'gd/gd.php', + 'imagecreatefromtga' => 'gd/gd.php', + 'imagecreatefromwbmp' => 'gd/gd.php', + 'imagecreatefromwebp' => 'gd/gd.php', + 'imagecreatefromxbm' => 'gd/gd.php', + 'imagecreatefromxpm' => 'gd/gd.php', + 'imagecreatetruecolor' => 'gd/gd.php', + 'imagecrop' => 'gd/gd.php', + 'imagecropauto' => 'gd/gd.php', + 'imagedashedline' => 'gd/gd.php', + 'imagedestroy' => 'gd/gd.php', + 'imageellipse' => 'gd/gd.php', + 'imagefill' => 'gd/gd.php', + 'imagefilledarc' => 'gd/gd.php', + 'imagefilledellipse' => 'gd/gd.php', + 'imagefilledpolygon' => 'gd/gd.php', + 'imagefilledrectangle' => 'gd/gd.php', + 'imagefilltoborder' => 'gd/gd.php', + 'imagefilter' => 'gd/gd.php', + 'imageflip' => 'gd/gd.php', + 'imagefontheight' => 'gd/gd.php', + 'imagefontwidth' => 'gd/gd.php', + 'imageftbbox' => 'gd/gd.php', + 'imagefttext' => 'gd/gd.php', + 'imagegammacorrect' => 'gd/gd.php', + 'imagegd' => 'gd/gd.php', + 'imagegd2' => 'gd/gd.php', + 'imagegetclip' => 'gd/gd.php', + 'imagegetinterpolation' => 'gd/gd.php', + 'imagegif' => 'gd/gd.php', + 'imagegrabscreen' => 'gd/gd.php', + 'imagegrabwindow' => 'gd/gd.php', + 'imageinterlace' => 'gd/gd.php', + 'imageistruecolor' => 'gd/gd.php', + 'imagejpeg' => 'gd/gd.php', + 'imagelayereffect' => 'gd/gd.php', + 'imageline' => 'gd/gd.php', + 'imageloadfont' => 'gd/gd.php', + 'imageopenpolygon' => 'gd/gd.php', + 'imagepalettecopy' => 'gd/gd.php', + 'imagepalettetotruecolor' => 'gd/gd.php', + 'imagepng' => 'gd/gd.php', + 'imagepolygon' => 'gd/gd.php', + 'imagepsbbox' => 'gd/gd.php', + 'imagepsencodefont' => 'gd/gd.php', + 'imagepsextendfont' => 'gd/gd.php', + 'imagepsfreefont' => 'gd/gd.php', + 'imagepsloadfont' => 'gd/gd.php', + 'imagepsslantfont' => 'gd/gd.php', + 'imagepstext' => 'gd/gd.php', + 'imagerectangle' => 'gd/gd.php', + 'imageresolution' => 'gd/gd.php', + 'imagerotate' => 'gd/gd.php', + 'imagesavealpha' => 'gd/gd.php', + 'imagescale' => 'gd/gd.php', + 'imagesetbrush' => 'gd/gd.php', + 'imagesetclip' => 'gd/gd.php', + 'imagesetinterpolation' => 'gd/gd.php', + 'imagesetpixel' => 'gd/gd.php', + 'imagesetstyle' => 'gd/gd.php', + 'imagesetthickness' => 'gd/gd.php', + 'imagesettile' => 'gd/gd.php', + 'imagestring' => 'gd/gd.php', + 'imagestringup' => 'gd/gd.php', + 'imagesx' => 'gd/gd.php', + 'imagesy' => 'gd/gd.php', + 'imagetruecolortopalette' => 'gd/gd.php', + 'imagettfbbox' => 'gd/gd.php', + 'imagettftext' => 'gd/gd.php', + 'imagetypes' => 'gd/gd.php', + 'imagewbmp' => 'gd/gd.php', + 'imagewebp' => 'gd/gd.php', + 'imagexbm' => 'gd/gd.php', + 'imap_8bit' => 'imap/imap.php', + 'imap_alerts' => 'imap/imap.php', + 'imap_append' => 'imap/imap.php', + 'imap_base64' => 'imap/imap.php', + 'imap_binary' => 'imap/imap.php', + 'imap_body' => 'imap/imap.php', + 'imap_bodystruct' => 'imap/imap.php', + 'imap_check' => 'imap/imap.php', + 'imap_clearflag_full' => 'imap/imap.php', + 'imap_close' => 'imap/imap.php', + 'imap_create' => 'imap/imap.php', + 'imap_createmailbox' => 'imap/imap.php', + 'imap_delete' => 'imap/imap.php', + 'imap_deletemailbox' => 'imap/imap.php', + 'imap_errors' => 'imap/imap.php', + 'imap_expunge' => 'imap/imap.php', + 'imap_fetch_overview' => 'imap/imap.php', + 'imap_fetchbody' => 'imap/imap.php', + 'imap_fetchheader' => 'imap/imap.php', + 'imap_fetchmime' => 'imap/imap.php', + 'imap_fetchstructure' => 'imap/imap.php', + 'imap_fetchtext' => 'imap/imap.php', + 'imap_gc' => 'imap/imap.php', + 'imap_get_quota' => 'imap/imap.php', + 'imap_get_quotaroot' => 'imap/imap.php', + 'imap_getacl' => 'imap/imap.php', + 'imap_getannotation' => 'imap/imap.php', + 'imap_getmailboxes' => 'imap/imap.php', + 'imap_getsubscribed' => 'imap/imap.php', + 'imap_header' => 'imap/imap.php', + 'imap_headerinfo' => 'imap/imap.php', + 'imap_headers' => 'imap/imap.php', + 'imap_is_open' => 'imap/imap.php', + 'imap_last_error' => 'imap/imap.php', + 'imap_list' => 'imap/imap.php', + 'imap_listmailbox' => 'imap/imap.php', + 'imap_listscan' => 'imap/imap.php', + 'imap_listsubscribed' => 'imap/imap.php', + 'imap_lsub' => 'imap/imap.php', + 'imap_mail' => 'imap/imap.php', + 'imap_mail_compose' => 'imap/imap.php', + 'imap_mail_copy' => 'imap/imap.php', + 'imap_mail_move' => 'imap/imap.php', + 'imap_mailboxmsginfo' => 'imap/imap.php', + 'imap_mime_header_decode' => 'imap/imap.php', + 'imap_msgno' => 'imap/imap.php', + 'imap_mutf7_to_utf8' => 'imap/imap.php', + 'imap_myrights' => 'imap/imap.php', + 'imap_num_msg' => 'imap/imap.php', + 'imap_num_recent' => 'imap/imap.php', + 'imap_open' => 'imap/imap.php', + 'imap_ping' => 'imap/imap.php', + 'imap_qprint' => 'imap/imap.php', + 'imap_rename' => 'imap/imap.php', + 'imap_renamemailbox' => 'imap/imap.php', + 'imap_reopen' => 'imap/imap.php', + 'imap_rfc822_parse_adrlist' => 'imap/imap.php', + 'imap_rfc822_parse_headers' => 'imap/imap.php', + 'imap_rfc822_write_address' => 'imap/imap.php', + 'imap_savebody' => 'imap/imap.php', + 'imap_scan' => 'imap/imap.php', + 'imap_scanmailbox' => 'imap/imap.php', + 'imap_search' => 'imap/imap.php', + 'imap_set_quota' => 'imap/imap.php', + 'imap_setacl' => 'imap/imap.php', + 'imap_setannotation' => 'imap/imap.php', + 'imap_setflag_full' => 'imap/imap.php', + 'imap_sort' => 'imap/imap.php', + 'imap_status' => 'imap/imap.php', + 'imap_status_current' => 'imap/imap.php', + 'imap_subscribe' => 'imap/imap.php', + 'imap_thread' => 'imap/imap.php', + 'imap_timeout' => 'imap/imap.php', + 'imap_uid' => 'imap/imap.php', + 'imap_undelete' => 'imap/imap.php', + 'imap_unsubscribe' => 'imap/imap.php', + 'imap_utf7_decode' => 'imap/imap.php', + 'imap_utf7_encode' => 'imap/imap.php', + 'imap_utf8' => 'imap/imap.php', + 'imap_utf8_to_mutf7' => 'imap/imap.php', + 'implode' => 'standard/standard_1.php', + 'import_request_variables' => 'standard/standard_3.php', + 'in_array' => 'standard/standard_8.php', + 'inet_ntop' => 'standard/standard_3.php', + 'inet_pton' => 'standard/standard_3.php', + 'inflate_add' => 'zlib/zlib.php', + 'inflate_get_read_len' => 'zlib/zlib.php', + 'inflate_get_status' => 'zlib/zlib.php', + 'inflate_init' => 'zlib/zlib.php', + 'ini_alter' => 'standard/standard_4.php', + 'ini_get' => 'standard/standard_4.php', + 'ini_get_all' => 'standard/standard_4.php', + 'ini_parse_quantity' => 'standard/standard_4.php', + 'ini_restore' => 'standard/standard_4.php', + 'ini_set' => 'standard/standard_4.php', + 'inotify_add_watch' => 'inotify/inotify.php', + 'inotify_init' => 'inotify/inotify.php', + 'inotify_queue_len' => 'inotify/inotify.php', + 'inotify_read' => 'inotify/inotify.php', + 'inotify_rm_watch' => 'inotify/inotify.php', + 'intcal_get_maximum' => 'intl/intl.php', + 'intdiv' => 'standard/standard_3.php', + 'interface_exists' => 'Core/Core.php', + 'intl_error_name' => 'intl/intl.php', + 'intl_get' => 'intl/intl.php', + 'intl_get_error_code' => 'intl/intl.php', + 'intl_get_error_message' => 'intl/intl.php', + 'intl_is_failure' => 'intl/intl.php', + 'intlcal_add' => 'intl/intl.php', + 'intlcal_after' => 'intl/intl.php', + 'intlcal_before' => 'intl/intl.php', + 'intlcal_clear' => 'intl/intl.php', + 'intlcal_create_instance' => 'intl/intl.php', + 'intlcal_equals' => 'intl/intl.php', + 'intlcal_field_difference' => 'intl/intl.php', + 'intlcal_from_date_time' => 'intl/intl.php', + 'intlcal_get' => 'intl/intl.php', + 'intlcal_get_actual_maximum' => 'intl/intl.php', + 'intlcal_get_actual_minimum' => 'intl/intl.php', + 'intlcal_get_available_locales' => 'intl/intl.php', + 'intlcal_get_day_of_week_type' => 'intl/intl.php', + 'intlcal_get_error_code' => 'intl/intl.php', + 'intlcal_get_error_message' => 'intl/intl.php', + 'intlcal_get_first_day_of_week' => 'intl/intl.php', + 'intlcal_get_greatest_minimum' => 'intl/intl.php', + 'intlcal_get_keyword_values_for_locale' => 'intl/intl.php', + 'intlcal_get_least_maximum' => 'intl/intl.php', + 'intlcal_get_locale' => 'intl/intl.php', + 'intlcal_get_maximum' => 'intl/intl.php', + 'intlcal_get_minimal_days_in_first_week' => 'intl/intl.php', + 'intlcal_get_minimum' => 'intl/intl.php', + 'intlcal_get_now' => 'intl/intl.php', + 'intlcal_get_repeated_wall_time_option' => 'intl/intl.php', + 'intlcal_get_skipped_wall_time_option' => 'intl/intl.php', + 'intlcal_get_time' => 'intl/intl.php', + 'intlcal_get_time_zone' => 'intl/intl.php', + 'intlcal_get_type' => 'intl/intl.php', + 'intlcal_get_weekend_transition' => 'intl/intl.php', + 'intlcal_greates_minimum' => 'intl/intl.php', + 'intlcal_in_daylight_time' => 'intl/intl.php', + 'intlcal_is_equivalent_to' => 'intl/intl.php', + 'intlcal_is_lenient' => 'intl/intl.php', + 'intlcal_is_set' => 'intl/intl.php', + 'intlcal_is_weekend' => 'intl/intl.php', + 'intlcal_roll' => 'intl/intl.php', + 'intlcal_set' => 'intl/intl.php', + 'intlcal_set_first_day_of_week' => 'intl/intl.php', + 'intlcal_set_lenient' => 'intl/intl.php', + 'intlcal_set_minimal_days_in_first_week' => 'intl/intl.php', + 'intlcal_set_repeated_wall_time_option' => 'intl/intl.php', + 'intlcal_set_skipped_wall_time_option' => 'intl/intl.php', + 'intlcal_set_time' => 'intl/intl.php', + 'intlcal_set_time_zone' => 'intl/intl.php', + 'intlcal_to_date_time' => 'intl/intl.php', + 'intlgregcal_create_instance' => 'intl/intl.php', + 'intlgregcal_get_gregorian_change' => 'intl/intl.php', + 'intlgregcal_is_leap_year' => 'intl/intl.php', + 'intlgregcal_set_gregorian_change' => 'intl/intl.php', + 'intltz_count_equivalent_ids' => 'intl/intl.php', + 'intltz_create_default' => 'intl/intl.php', + 'intltz_create_enumeration' => 'intl/intl.php', + 'intltz_create_time_zone' => 'intl/intl.php', + 'intltz_create_time_zone_id_enumeration' => 'intl/intl.php', + 'intltz_from_date_time_zone' => 'intl/intl.php', + 'intltz_getGMT' => 'intl/intl.php', + 'intltz_get_canonical_id' => 'intl/intl.php', + 'intltz_get_display_name' => 'intl/intl.php', + 'intltz_get_dst_savings' => 'intl/intl.php', + 'intltz_get_equivalent_id' => 'intl/intl.php', + 'intltz_get_error_code' => 'intl/intl.php', + 'intltz_get_error_message' => 'intl/intl.php', + 'intltz_get_gmt' => 'intl/intl.php', + 'intltz_get_id' => 'intl/intl.php', + 'intltz_get_id_for_windows_id' => 'intl/intl.php', + 'intltz_get_offset' => 'intl/intl.php', + 'intltz_get_raw_offset' => 'intl/intl.php', + 'intltz_get_region' => 'intl/intl.php', + 'intltz_get_tz_data_version' => 'intl/intl.php', + 'intltz_get_unknown' => 'intl/intl.php', + 'intltz_get_windows_id' => 'intl/intl.php', + 'intltz_has_same_rules' => 'intl/intl.php', + 'intltz_to_date_time_zone' => 'intl/intl.php', + 'intltz_use_daylight_time' => 'intl/intl.php', + 'intlz_create_default' => 'intl/intl.php', + 'intval' => 'standard/standard_5.php', + 'ip2long' => 'standard/standard_3.php', + 'iptcembed' => 'standard/standard_0.php', + 'iptcparse' => 'standard/standard_0.php', + 'is_a' => 'Core/Core.php', + 'is_array' => 'standard/standard_5.php', + 'is_bool' => 'standard/standard_5.php', + 'is_callable' => 'standard/standard_5.php', + 'is_countable' => 'standard/standard_5.php', + 'is_dir' => 'standard/standard_7.php', + 'is_double' => 'standard/standard_5.php', + 'is_executable' => 'standard/standard_7.php', + 'is_file' => 'standard/standard_7.php', + 'is_finite' => 'standard/standard_3.php', + 'is_float' => 'standard/standard_5.php', + 'is_infinite' => 'standard/standard_3.php', + 'is_int' => 'standard/standard_5.php', + 'is_integer' => 'standard/standard_5.php', + 'is_iterable' => 'standard/basic.php', + 'is_link' => 'standard/standard_7.php', + 'is_long' => 'standard/standard_5.php', + 'is_nan' => 'standard/standard_3.php', + 'is_null' => 'standard/standard_5.php', + 'is_numeric' => 'standard/standard_5.php', + 'is_object' => 'standard/standard_5.php', + 'is_readable' => 'standard/standard_7.php', + 'is_real' => 'standard/standard_5.php', + 'is_resource' => 'standard/standard_5.php', + 'is_scalar' => 'standard/standard_5.php', + 'is_soap_fault' => 'soap/soap.php', + 'is_string' => 'standard/standard_5.php', + 'is_subclass_of' => 'Core/Core.php', + 'is_uploaded_file' => 'standard/standard_4.php', + 'is_writable' => 'standard/standard_7.php', + 'is_writeable' => 'standard/standard_7.php', + 'iterator_apply' => 'SPL/SPL_f.php', + 'iterator_count' => 'SPL/SPL_f.php', + 'iterator_to_array' => 'SPL/SPL_f.php', + 'java' => 'zend/zend_f.php', + 'java_last_exception_clear' => 'zend/zend_f.php', + 'java_last_exception_get' => 'zend/zend_f.php', + 'java_reload' => 'zend/zend_f.php', + 'java_require' => 'zend/zend_f.php', + 'java_set_encoding' => 'zend/zend_f.php', + 'java_set_ignore_case' => 'zend/zend_f.php', + 'java_throw_exceptions' => 'zend/zend_f.php', + 'jddayofweek' => 'calendar/calendar.php', + 'jdmonthname' => 'calendar/calendar.php', + 'jdtofrench' => 'calendar/calendar.php', + 'jdtogregorian' => 'calendar/calendar.php', + 'jdtojewish' => 'calendar/calendar.php', + 'jdtojulian' => 'calendar/calendar.php', + 'jdtounix' => 'calendar/calendar.php', + 'jewishtojd' => 'calendar/calendar.php', + 'jobqueue_license_info' => 'zend/zend_f.php', + 'join' => 'standard/standard_1.php', + 'jpeg2wbmp' => 'gd/gd.php', + 'json_decode' => 'json/json.php', + 'json_encode' => 'json/json.php', + 'json_last_error' => 'json/json.php', + 'json_last_error_msg' => 'json/json.php', + 'json_validate' => 'json/json.php', + 'juliantojd' => 'calendar/calendar.php', + 'kafka_err2name' => 'simple_kafka_client/functions.php', + 'kafka_err2str' => 'simple_kafka_client/functions.php', + 'kafka_get_err_descs' => 'simple_kafka_client/functions.php', + 'kafka_offset_tail' => 'simple_kafka_client/functions.php', + 'kafka_thread_cnt' => 'simple_kafka_client/functions.php', + 'key' => 'standard/standard_8.php', + 'key_exists' => 'standard/standard_9.php', + 'krsort' => 'standard/standard_8.php', + 'ksort' => 'standard/standard_8.php', + 'lcfirst' => 'standard/standard_1.php', + 'lcg_value' => 'random/random.php', + 'lchgrp' => 'standard/standard_7.php', + 'lchown' => 'standard/standard_7.php', + 'ldap_8859_to_t61' => 'ldap/ldap.php', + 'ldap_add' => 'ldap/ldap.php', + 'ldap_add_ext' => 'ldap/ldap.php', + 'ldap_bind' => 'ldap/ldap.php', + 'ldap_bind_ext' => 'ldap/ldap.php', + 'ldap_close' => 'ldap/ldap.php', + 'ldap_compare' => 'ldap/ldap.php', + 'ldap_connect' => 'ldap/ldap.php', + 'ldap_control_paged_result' => 'ldap/ldap.php', + 'ldap_control_paged_result_response' => 'ldap/ldap.php', + 'ldap_count_entries' => 'ldap/ldap.php', + 'ldap_count_references' => 'ldap/ldap.php', + 'ldap_delete' => 'ldap/ldap.php', + 'ldap_delete_ext' => 'ldap/ldap.php', + 'ldap_dn2ufn' => 'ldap/ldap.php', + 'ldap_err2str' => 'ldap/ldap.php', + 'ldap_errno' => 'ldap/ldap.php', + 'ldap_error' => 'ldap/ldap.php', + 'ldap_escape' => 'ldap/ldap.php', + 'ldap_exop' => 'ldap/ldap.php', + 'ldap_exop_passwd' => 'ldap/ldap.php', + 'ldap_exop_refresh' => 'ldap/ldap.php', + 'ldap_exop_sync' => 'ldap/ldap.php', + 'ldap_exop_whoami' => 'ldap/ldap.php', + 'ldap_explode_dn' => 'ldap/ldap.php', + 'ldap_first_attribute' => 'ldap/ldap.php', + 'ldap_first_entry' => 'ldap/ldap.php', + 'ldap_first_reference' => 'ldap/ldap.php', + 'ldap_free_result' => 'ldap/ldap.php', + 'ldap_get_attributes' => 'ldap/ldap.php', + 'ldap_get_dn' => 'ldap/ldap.php', + 'ldap_get_entries' => 'ldap/ldap.php', + 'ldap_get_option' => 'ldap/ldap.php', + 'ldap_get_values' => 'ldap/ldap.php', + 'ldap_get_values_len' => 'ldap/ldap.php', + 'ldap_list' => 'ldap/ldap.php', + 'ldap_mod_add' => 'ldap/ldap.php', + 'ldap_mod_add_ext' => 'ldap/ldap.php', + 'ldap_mod_del' => 'ldap/ldap.php', + 'ldap_mod_del_ext' => 'ldap/ldap.php', + 'ldap_mod_replace' => 'ldap/ldap.php', + 'ldap_mod_replace_ext' => 'ldap/ldap.php', + 'ldap_modify' => 'ldap/ldap.php', + 'ldap_modify_batch' => 'ldap/ldap.php', + 'ldap_next_attribute' => 'ldap/ldap.php', + 'ldap_next_entry' => 'ldap/ldap.php', + 'ldap_next_reference' => 'ldap/ldap.php', + 'ldap_parse_exop' => 'ldap/ldap.php', + 'ldap_parse_reference' => 'ldap/ldap.php', + 'ldap_parse_result' => 'ldap/ldap.php', + 'ldap_read' => 'ldap/ldap.php', + 'ldap_rename' => 'ldap/ldap.php', + 'ldap_rename_ext' => 'ldap/ldap.php', + 'ldap_sasl_bind' => 'ldap/ldap.php', + 'ldap_search' => 'ldap/ldap.php', + 'ldap_set_option' => 'ldap/ldap.php', + 'ldap_set_rebind_proc' => 'ldap/ldap.php', + 'ldap_sort' => 'ldap/ldap.php', + 'ldap_start_tls' => 'ldap/ldap.php', + 'ldap_t61_to_8859' => 'ldap/ldap.php', + 'ldap_unbind' => 'ldap/ldap.php', + 'levenshtein' => 'standard/standard_2.php', + 'libvirt_check_version' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_all_domain_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_capabilities' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_emulator' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_encrypted' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_hostname' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_hypervisor' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_information' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_machine_types' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_maxvcpus' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_nic_models' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_secure' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_soundhw_models' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_sysinfo' => 'libvirt-php/libvirt-php.php', + 'libvirt_connect_get_uri' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_attach_device' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_commit' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_job_abort' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_job_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_job_set_speed' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_resize' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_block_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_change_boot_devices' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_change_memory' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_change_vcpus' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_core_dump' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_create' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_create_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_define_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_destroy' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_detach_device' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_disk_add' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_disk_remove' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_block_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_connect' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_counts' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_disk_devices' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_id' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_interface_devices' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_job_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_metadata' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_network_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_next_dev_ids' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_screen_dimensions' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_screenshot' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_screenshot_api' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_uuid' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_has_current_snapshot' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_interface_addresses' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_interface_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_is_active' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_is_persistent' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_lookup_by_id' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_lookup_by_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_lookup_by_uuid' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_lookup_by_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_managedsave' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_memory_peek' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_memory_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_migrate' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_migrate_to_uri' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_migrate_to_uri2' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_new' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_new_get_vnc' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_nic_add' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_nic_remove' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_qemu_agent_command' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_reboot' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_reset' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_resume' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_send_key_api' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_send_keys' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_send_pointer_event' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_set_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_set_max_memory' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_set_memory' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_set_memory_flags' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_set_metadata' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_shutdown' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_create' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_current' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_delete' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_get_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_lookup_by_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_snapshot_revert' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_suspend' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_undefine' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_undefine_flags' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_update_device' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_xml_from_native' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_xml_to_native' => 'libvirt-php/libvirt-php.php', + 'libvirt_domain_xml_xpath' => 'libvirt-php/libvirt-php.php', + 'libvirt_get_iso_images' => 'libvirt-php/libvirt-php.php', + 'libvirt_get_last_error' => 'libvirt-php/libvirt-php.php', + 'libvirt_get_last_error_code' => 'libvirt-php/libvirt-php.php', + 'libvirt_get_last_error_domain' => 'libvirt-php/libvirt-php.php', + 'libvirt_has_feature' => 'libvirt-php/libvirt-php.php', + 'libvirt_image_create' => 'libvirt-php/libvirt-php.php', + 'libvirt_image_remove' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_active_domain_ids' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_active_domains' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_active_storagepools' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_all_networks' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_all_nwfilters' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_domain_resources' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_domain_snapshots' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_domains' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_inactive_domains' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_inactive_storagepools' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_networks' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_nodedevs' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_nwfilters' => 'libvirt-php/libvirt-php.php', + 'libvirt_list_storagepools' => 'libvirt-php/libvirt-php.php', + 'libvirt_logfile_set' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_define_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_active' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_bridge' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_information' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_uuid' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_set_active' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_set_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_network_undefine' => 'libvirt-php/libvirt-php.php', + 'libvirt_node_get_cpu_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_node_get_cpu_stats_for_each_cpu' => 'libvirt-php/libvirt-php.php', + 'libvirt_node_get_free_memory' => 'libvirt-php/libvirt-php.php', + 'libvirt_node_get_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_node_get_mem_stats' => 'libvirt-php/libvirt-php.php', + 'libvirt_nodedev_capabilities' => 'libvirt-php/libvirt-php.php', + 'libvirt_nodedev_get' => 'libvirt-php/libvirt-php.php', + 'libvirt_nodedev_get_information' => 'libvirt-php/libvirt-php.php', + 'libvirt_nodedev_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_define_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_get_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_get_uuid' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_get_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_lookup_by_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_lookup_by_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_nwfilter_undefine' => 'libvirt-php/libvirt-php.php', + 'libvirt_print_binding_resources' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_build' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_create' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_define_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_delete' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_destroy' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_volume_count' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_is_active' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_list_volumes' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_lookup_by_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_lookup_by_uuid_string' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_lookup_by_volume' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_refresh' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_set_autostart' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagepool_undefine' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_create_xml' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_create_xml_from' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_delete' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_download' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_get_info' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_get_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_get_path' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_get_xml_desc' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_lookup_by_name' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_lookup_by_path' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_resize' => 'libvirt-php/libvirt-php.php', + 'libvirt_storagevolume_upload' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_abort' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_close' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_create' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_finish' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_recv' => 'libvirt-php/libvirt-php.php', + 'libvirt_stream_send' => 'libvirt-php/libvirt-php.php', + 'libvirt_version' => 'libvirt-php/libvirt-php.php', + 'libxml_clear_errors' => 'libxml/libxml.php', + 'libxml_disable_entity_loader' => 'libxml/libxml.php', + 'libxml_get_errors' => 'libxml/libxml.php', + 'libxml_get_external_entity_loader' => 'libxml/libxml.php', + 'libxml_get_last_error' => 'libxml/libxml.php', + 'libxml_set_external_entity_loader' => 'libxml/libxml.php', + 'libxml_set_streams_context' => 'libxml/libxml.php', + 'libxml_use_internal_errors' => 'libxml/libxml.php', + 'link' => 'standard/standard_2.php', + 'linkinfo' => 'standard/standard_2.php', + 'locale_accept_from_http' => 'intl/intl.php', + 'locale_canonicalize' => 'intl/intl.php', + 'locale_compose' => 'intl/intl.php', + 'locale_filter_matches' => 'intl/intl.php', + 'locale_get_all_variants' => 'intl/intl.php', + 'locale_get_default' => 'intl/intl.php', + 'locale_get_display_language' => 'intl/intl.php', + 'locale_get_display_name' => 'intl/intl.php', + 'locale_get_display_region' => 'intl/intl.php', + 'locale_get_display_script' => 'intl/intl.php', + 'locale_get_display_variant' => 'intl/intl.php', + 'locale_get_keywords' => 'intl/intl.php', + 'locale_get_primary_language' => 'intl/intl.php', + 'locale_get_region' => 'intl/intl.php', + 'locale_get_script' => 'intl/intl.php', + 'locale_lookup' => 'intl/intl.php', + 'locale_parse' => 'intl/intl.php', + 'locale_set_default' => 'intl/intl.php', + 'localeconv' => 'standard/standard_1.php', + 'localtime' => 'date/date.php', + 'log' => 'standard/standard_3.php', + 'log10' => 'standard/standard_3.php', + 'log1p' => 'standard/standard_3.php', + 'long2ip' => 'standard/standard_3.php', + 'lstat' => 'standard/standard_7.php', + 'ltrim' => 'standard/standard_1.php', + 'lzf_compress' => 'lzf/lzf.php', + 'lzf_decompress' => 'lzf/lzf.php', + 'lzf_optimized_for' => 'lzf/lzf.php', + 'magic_quotes_runtime' => 'standard/standard_3.php', + 'mail' => 'standard/standard_7.php', + 'mailparse_determine_best_xfer_encoding' => 'mailparse/mailparse.php', + 'mailparse_msg_create' => 'mailparse/mailparse.php', + 'mailparse_msg_extract_part' => 'mailparse/mailparse.php', + 'mailparse_msg_extract_part_file' => 'mailparse/mailparse.php', + 'mailparse_msg_extract_whole_part_file' => 'mailparse/mailparse.php', + 'mailparse_msg_free' => 'mailparse/mailparse.php', + 'mailparse_msg_get_part' => 'mailparse/mailparse.php', + 'mailparse_msg_get_part_data' => 'mailparse/mailparse.php', + 'mailparse_msg_get_structure' => 'mailparse/mailparse.php', + 'mailparse_msg_parse' => 'mailparse/mailparse.php', + 'mailparse_msg_parse_file' => 'mailparse/mailparse.php', + 'mailparse_rfc822_parse_addresses' => 'mailparse/mailparse.php', + 'mailparse_stream_encode' => 'mailparse/mailparse.php', + 'mailparse_uudecode_all' => 'mailparse/mailparse.php', + 'max' => 'standard/standard_8.php', + 'mb_check_encoding' => 'mbstring/mbstring.php', + 'mb_chr' => 'mbstring/mbstring.php', + 'mb_convert_case' => 'mbstring/mbstring.php', + 'mb_convert_encoding' => 'mbstring/mbstring.php', + 'mb_convert_kana' => 'mbstring/mbstring.php', + 'mb_convert_variables' => 'mbstring/mbstring.php', + 'mb_decode_mimeheader' => 'mbstring/mbstring.php', + 'mb_decode_numericentity' => 'mbstring/mbstring.php', + 'mb_detect_encoding' => 'mbstring/mbstring.php', + 'mb_detect_order' => 'mbstring/mbstring.php', + 'mb_encode_mimeheader' => 'mbstring/mbstring.php', + 'mb_encode_numericentity' => 'mbstring/mbstring.php', + 'mb_encoding_aliases' => 'mbstring/mbstring.php', + 'mb_ereg' => 'mbstring/mbstring.php', + 'mb_ereg_match' => 'mbstring/mbstring.php', + 'mb_ereg_replace' => 'mbstring/mbstring.php', + 'mb_ereg_replace_callback' => 'mbstring/mbstring.php', + 'mb_ereg_search' => 'mbstring/mbstring.php', + 'mb_ereg_search_getpos' => 'mbstring/mbstring.php', + 'mb_ereg_search_getregs' => 'mbstring/mbstring.php', + 'mb_ereg_search_init' => 'mbstring/mbstring.php', + 'mb_ereg_search_pos' => 'mbstring/mbstring.php', + 'mb_ereg_search_regs' => 'mbstring/mbstring.php', + 'mb_ereg_search_setpos' => 'mbstring/mbstring.php', + 'mb_eregi' => 'mbstring/mbstring.php', + 'mb_eregi_replace' => 'mbstring/mbstring.php', + 'mb_get_info' => 'mbstring/mbstring.php', + 'mb_http_input' => 'mbstring/mbstring.php', + 'mb_http_output' => 'mbstring/mbstring.php', + 'mb_internal_encoding' => 'mbstring/mbstring.php', + 'mb_language' => 'mbstring/mbstring.php', + 'mb_list_encodings' => 'mbstring/mbstring.php', + 'mb_ord' => 'mbstring/mbstring.php', + 'mb_output_handler' => 'mbstring/mbstring.php', + 'mb_parse_str' => 'mbstring/mbstring.php', + 'mb_preferred_mime_name' => 'mbstring/mbstring.php', + 'mb_regex_encoding' => 'mbstring/mbstring.php', + 'mb_regex_set_options' => 'mbstring/mbstring.php', + 'mb_scrub' => 'mbstring/mbstring.php', + 'mb_send_mail' => 'mbstring/mbstring.php', + 'mb_split' => 'mbstring/mbstring.php', + 'mb_str_pad' => 'mbstring/mbstring.php', + 'mb_str_split' => 'mbstring/mbstring.php', + 'mb_strcut' => 'mbstring/mbstring.php', + 'mb_strimwidth' => 'mbstring/mbstring.php', + 'mb_stripos' => 'mbstring/mbstring.php', + 'mb_stristr' => 'mbstring/mbstring.php', + 'mb_strlen' => 'mbstring/mbstring.php', + 'mb_strpos' => 'mbstring/mbstring.php', + 'mb_strrchr' => 'mbstring/mbstring.php', + 'mb_strrichr' => 'mbstring/mbstring.php', + 'mb_strripos' => 'mbstring/mbstring.php', + 'mb_strrpos' => 'mbstring/mbstring.php', + 'mb_strstr' => 'mbstring/mbstring.php', + 'mb_strtolower' => 'mbstring/mbstring.php', + 'mb_strtoupper' => 'mbstring/mbstring.php', + 'mb_strwidth' => 'mbstring/mbstring.php', + 'mb_substitute_character' => 'mbstring/mbstring.php', + 'mb_substr' => 'mbstring/mbstring.php', + 'mb_substr_count' => 'mbstring/mbstring.php', + 'mbereg' => 'mbstring/mbstring.php', + 'mbereg_match' => 'mbstring/mbstring.php', + 'mbereg_replace' => 'mbstring/mbstring.php', + 'mbereg_search' => 'mbstring/mbstring.php', + 'mbereg_search_getpos' => 'mbstring/mbstring.php', + 'mbereg_search_getregs' => 'mbstring/mbstring.php', + 'mbereg_search_init' => 'mbstring/mbstring.php', + 'mbereg_search_pos' => 'mbstring/mbstring.php', + 'mbereg_search_regs' => 'mbstring/mbstring.php', + 'mbereg_search_setpos' => 'mbstring/mbstring.php', + 'mberegi' => 'mbstring/mbstring.php', + 'mberegi_replace' => 'mbstring/mbstring.php', + 'mbregex_encoding' => 'mbstring/mbstring.php', + 'mbsplit' => 'mbstring/mbstring.php', + 'mcrypt_cbc' => 'mcrypt/mcrypt.php', + 'mcrypt_cfb' => 'mcrypt/mcrypt.php', + 'mcrypt_create_iv' => 'mcrypt/mcrypt.php', + 'mcrypt_decrypt' => 'mcrypt/mcrypt.php', + 'mcrypt_ecb' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_algorithms_name' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_block_size' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_iv_size' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_key_size' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_modes_name' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_get_supported_key_sizes' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_is_block_algorithm' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_is_block_algorithm_mode' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_is_block_mode' => 'mcrypt/mcrypt.php', + 'mcrypt_enc_self_test' => 'mcrypt/mcrypt.php', + 'mcrypt_encrypt' => 'mcrypt/mcrypt.php', + 'mcrypt_generic' => 'mcrypt/mcrypt.php', + 'mcrypt_generic_deinit' => 'mcrypt/mcrypt.php', + 'mcrypt_generic_end' => 'mcrypt/mcrypt.php', + 'mcrypt_generic_init' => 'mcrypt/mcrypt.php', + 'mcrypt_get_block_size' => 'mcrypt/mcrypt.php', + 'mcrypt_get_cipher_name' => 'mcrypt/mcrypt.php', + 'mcrypt_get_iv_size' => 'mcrypt/mcrypt.php', + 'mcrypt_get_key_size' => 'mcrypt/mcrypt.php', + 'mcrypt_list_algorithms' => 'mcrypt/mcrypt.php', + 'mcrypt_list_modes' => 'mcrypt/mcrypt.php', + 'mcrypt_module_close' => 'mcrypt/mcrypt.php', + 'mcrypt_module_get_algo_block_size' => 'mcrypt/mcrypt.php', + 'mcrypt_module_get_algo_key_size' => 'mcrypt/mcrypt.php', + 'mcrypt_module_get_supported_key_sizes' => 'mcrypt/mcrypt.php', + 'mcrypt_module_is_block_algorithm' => 'mcrypt/mcrypt.php', + 'mcrypt_module_is_block_algorithm_mode' => 'mcrypt/mcrypt.php', + 'mcrypt_module_is_block_mode' => 'mcrypt/mcrypt.php', + 'mcrypt_module_open' => 'mcrypt/mcrypt.php', + 'mcrypt_module_self_test' => 'mcrypt/mcrypt.php', + 'mcrypt_ofb' => 'mcrypt/mcrypt.php', + 'md5' => 'standard/standard_0.php', + 'md5_file' => 'standard/standard_0.php', + 'mdecrypt_generic' => 'mcrypt/mcrypt.php', + 'memcache_add' => 'memcache/memcache.php', + 'memcache_add_server' => 'memcache/memcache.php', + 'memcache_append' => 'memcache/memcache.php', + 'memcache_cas' => 'memcache/memcache.php', + 'memcache_close' => 'memcache/memcache.php', + 'memcache_connect' => 'memcache/memcache.php', + 'memcache_debug' => 'memcache/memcache.php', + 'memcache_decrement' => 'memcache/memcache.php', + 'memcache_delete' => 'memcache/memcache.php', + 'memcache_flush' => 'memcache/memcache.php', + 'memcache_get' => 'memcache/memcache.php', + 'memcache_get_extended_stats' => 'memcache/memcache.php', + 'memcache_get_server_status' => 'memcache/memcache.php', + 'memcache_get_stats' => 'memcache/memcache.php', + 'memcache_get_version' => 'memcache/memcache.php', + 'memcache_increment' => 'memcache/memcache.php', + 'memcache_pconnect' => 'memcache/memcache.php', + 'memcache_prepend' => 'memcache/memcache.php', + 'memcache_replace' => 'memcache/memcache.php', + 'memcache_set' => 'memcache/memcache.php', + 'memcache_set_compress_threshold' => 'memcache/memcache.php', + 'memcache_set_failure_callback' => 'memcache/memcache.php', + 'memcache_set_server_params' => 'memcache/memcache.php', + 'meminfo_dump' => 'meminfo/meminfo.php', + 'memory_get_peak_usage' => 'standard/standard_4.php', + 'memory_get_usage' => 'standard/standard_4.php', + 'memory_reset_peak_usage' => 'standard/standard_4.php', + 'metaphone' => 'standard/standard_8.php', + 'method_exists' => 'Core/Core.php', + 'mhash' => 'hash/hash.php', + 'mhash_count' => 'hash/hash.php', + 'mhash_get_block_size' => 'hash/hash.php', + 'mhash_get_hash_name' => 'hash/hash.php', + 'mhash_keygen_s2k' => 'hash/hash.php', + 'microtime' => 'standard/standard_3.php', + 'mime_content_type' => 'fileinfo/fileinfo.php', + 'min' => 'standard/standard_8.php', + 'ming_keypress' => 'ming/ming.php', + 'ming_setcubicthreshold' => 'ming/ming.php', + 'ming_setscale' => 'ming/ming.php', + 'ming_setswfcompression' => 'ming/ming.php', + 'ming_useconstants' => 'ming/ming.php', + 'ming_useswfversion' => 'ming/ming.php', + 'mkdir' => 'standard/standard_5.php', + 'mktime' => 'date/date.php', + 'money_format' => 'standard/standard_1.php', + 'monitor_custom_event' => 'zend/zend.php', + 'monitor_httperror_event' => 'zend/zend.php', + 'monitor_license_info' => 'zend/zend.php', + 'monitor_pass_error' => 'zend/zend.php', + 'monitor_set_aggregation_hint' => 'zend/zend.php', + 'move_uploaded_file' => 'standard/standard_4.php', + 'mqseries_back' => 'mqseries/mqseries.php', + 'mqseries_begin' => 'mqseries/mqseries.php', + 'mqseries_close' => 'mqseries/mqseries.php', + 'mqseries_cmit' => 'mqseries/mqseries.php', + 'mqseries_conn' => 'mqseries/mqseries.php', + 'mqseries_connx' => 'mqseries/mqseries.php', + 'mqseries_disc' => 'mqseries/mqseries.php', + 'mqseries_get' => 'mqseries/mqseries.php', + 'mqseries_inq' => 'mqseries/mqseries.php', + 'mqseries_open' => 'mqseries/mqseries.php', + 'mqseries_put' => 'mqseries/mqseries.php', + 'mqseries_put1' => 'mqseries/mqseries.php', + 'mqseries_set' => 'mqseries/mqseries.php', + 'mqseries_strerror' => 'mqseries/mqseries.php', + 'ms_GetErrorObj' => 'mapscript/mapscript.php', + 'ms_GetVersion' => 'mapscript/mapscript.php', + 'ms_GetVersionInt' => 'mapscript/mapscript.php', + 'ms_ResetErrorList' => 'mapscript/mapscript.php', + 'ms_TokenizeMap' => 'mapscript/mapscript.php', + 'ms_iogetStdoutBufferBytes' => 'mapscript/mapscript.php', + 'ms_iogetstdoutbufferstring' => 'mapscript/mapscript.php', + 'ms_ioinstallstdinfrombuffer' => 'mapscript/mapscript.php', + 'ms_ioinstallstdouttobuffer' => 'mapscript/mapscript.php', + 'ms_ioresethandlers' => 'mapscript/mapscript.php', + 'ms_iostripstdoutbuffercontentheaders' => 'mapscript/mapscript.php', + 'ms_iostripstdoutbuffercontenttype' => 'mapscript/mapscript.php', + 'msg_get_queue' => 'sysvmsg/sysvmsg.php', + 'msg_queue_exists' => 'sysvmsg/sysvmsg.php', + 'msg_receive' => 'sysvmsg/sysvmsg.php', + 'msg_remove_queue' => 'sysvmsg/sysvmsg.php', + 'msg_send' => 'sysvmsg/sysvmsg.php', + 'msg_set_queue' => 'sysvmsg/sysvmsg.php', + 'msg_stat_queue' => 'sysvmsg/sysvmsg.php', + 'msgfmt_create' => 'intl/intl.php', + 'msgfmt_format' => 'intl/intl.php', + 'msgfmt_format_message' => 'intl/intl.php', + 'msgfmt_get_error_code' => 'intl/intl.php', + 'msgfmt_get_error_message' => 'intl/intl.php', + 'msgfmt_get_locale' => 'intl/intl.php', + 'msgfmt_get_pattern' => 'intl/intl.php', + 'msgfmt_parse' => 'intl/intl.php', + 'msgfmt_parse_message' => 'intl/intl.php', + 'msgfmt_set_pattern' => 'intl/intl.php', + 'msgpack_pack' => 'msgpack/msgpack.php', + 'msgpack_serialize' => 'msgpack/msgpack.php', + 'msgpack_unpack' => 'msgpack/msgpack.php', + 'msgpack_unserialize' => 'msgpack/msgpack.php', + 'mssql_bind' => 'mssql/mssql.php', + 'mssql_close' => 'mssql/mssql.php', + 'mssql_connect' => 'mssql/mssql.php', + 'mssql_data_seek' => 'mssql/mssql.php', + 'mssql_execute' => 'mssql/mssql.php', + 'mssql_fetch_array' => 'mssql/mssql.php', + 'mssql_fetch_assoc' => 'mssql/mssql.php', + 'mssql_fetch_batch' => 'mssql/mssql.php', + 'mssql_fetch_field' => 'mssql/mssql.php', + 'mssql_fetch_object' => 'mssql/mssql.php', + 'mssql_fetch_row' => 'mssql/mssql.php', + 'mssql_field_length' => 'mssql/mssql.php', + 'mssql_field_name' => 'mssql/mssql.php', + 'mssql_field_seek' => 'mssql/mssql.php', + 'mssql_field_type' => 'mssql/mssql.php', + 'mssql_free_result' => 'mssql/mssql.php', + 'mssql_free_statement' => 'mssql/mssql.php', + 'mssql_get_last_message' => 'mssql/mssql.php', + 'mssql_guid_string' => 'mssql/mssql.php', + 'mssql_init' => 'mssql/mssql.php', + 'mssql_min_error_severity' => 'mssql/mssql.php', + 'mssql_min_message_severity' => 'mssql/mssql.php', + 'mssql_next_result' => 'mssql/mssql.php', + 'mssql_num_fields' => 'mssql/mssql.php', + 'mssql_num_rows' => 'mssql/mssql.php', + 'mssql_pconnect' => 'mssql/mssql.php', + 'mssql_query' => 'mssql/mssql.php', + 'mssql_result' => 'mssql/mssql.php', + 'mssql_rows_affected' => 'mssql/mssql.php', + 'mssql_select_db' => 'mssql/mssql.php', + 'mt_getrandmax' => 'random/random.php', + 'mt_rand' => 'random/random.php', + 'mt_srand' => 'random/random.php', + 'mysql' => 'mysql/mysql.php', + 'mysql_affected_rows' => 'mysql/mysql.php', + 'mysql_client_encoding' => 'mysql/mysql.php', + 'mysql_close' => 'mysql/mysql.php', + 'mysql_connect' => 'mysql/mysql.php', + 'mysql_data_seek' => 'mysql/mysql.php', + 'mysql_db_name' => 'mysql/mysql.php', + 'mysql_db_query' => 'mysql/mysql.php', + 'mysql_dbname' => 'mysql/mysql.php', + 'mysql_errno' => 'mysql/mysql.php', + 'mysql_error' => 'mysql/mysql.php', + 'mysql_escape_string' => 'mysql/mysql.php', + 'mysql_fetch_array' => 'mysql/mysql.php', + 'mysql_fetch_assoc' => 'mysql/mysql.php', + 'mysql_fetch_field' => 'mysql/mysql.php', + 'mysql_fetch_lengths' => 'mysql/mysql.php', + 'mysql_fetch_object' => 'mysql/mysql.php', + 'mysql_fetch_row' => 'mysql/mysql.php', + 'mysql_field_flags' => 'mysql/mysql.php', + 'mysql_field_len' => 'mysql/mysql.php', + 'mysql_field_name' => 'mysql/mysql.php', + 'mysql_field_seek' => 'mysql/mysql.php', + 'mysql_field_table' => 'mysql/mysql.php', + 'mysql_field_type' => 'mysql/mysql.php', + 'mysql_fieldflags' => 'mysql/mysql.php', + 'mysql_fieldlen' => 'mysql/mysql.php', + 'mysql_fieldname' => 'mysql/mysql.php', + 'mysql_fieldtable' => 'mysql/mysql.php', + 'mysql_fieldtype' => 'mysql/mysql.php', + 'mysql_free_result' => 'mysql/mysql.php', + 'mysql_freeresult' => 'mysql/mysql.php', + 'mysql_get_client_info' => 'mysql/mysql.php', + 'mysql_get_host_info' => 'mysql/mysql.php', + 'mysql_get_proto_info' => 'mysql/mysql.php', + 'mysql_get_server_info' => 'mysql/mysql.php', + 'mysql_info' => 'mysql/mysql.php', + 'mysql_insert_id' => 'mysql/mysql.php', + 'mysql_list_dbs' => 'mysql/mysql.php', + 'mysql_list_fields' => 'mysql/mysql.php', + 'mysql_list_processes' => 'mysql/mysql.php', + 'mysql_list_tables' => 'mysql/mysql.php', + 'mysql_listdbs' => 'mysql/mysql.php', + 'mysql_listfields' => 'mysql/mysql.php', + 'mysql_listtables' => 'mysql/mysql.php', + 'mysql_num_fields' => 'mysql/mysql.php', + 'mysql_num_rows' => 'mysql/mysql.php', + 'mysql_numfields' => 'mysql/mysql.php', + 'mysql_numrows' => 'mysql/mysql.php', + 'mysql_pconnect' => 'mysql/mysql.php', + 'mysql_ping' => 'mysql/mysql.php', + 'mysql_query' => 'mysql/mysql.php', + 'mysql_real_escape_string' => 'mysql/mysql.php', + 'mysql_result' => 'mysql/mysql.php', + 'mysql_select_db' => 'mysql/mysql.php', + 'mysql_selectdb' => 'mysql/mysql.php', + 'mysql_set_charset' => 'mysql/mysql.php', + 'mysql_stat' => 'mysql/mysql.php', + 'mysql_table_name' => 'mysql/mysql.php', + 'mysql_tablename' => 'mysql/mysql.php', + 'mysql_thread_id' => 'mysql/mysql.php', + 'mysql_unbuffered_query' => 'mysql/mysql.php', + 'mysql_xdevapi\\expression' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysql_xdevapi\\getSession' => 'mysql_xdevapi/mysql_xdevapi.php', + 'mysqli_affected_rows' => 'mysqli/mysqli.php', + 'mysqli_autocommit' => 'mysqli/mysqli.php', + 'mysqli_begin_transaction' => 'mysqli/mysqli.php', + 'mysqli_bind_param' => 'mysqli/mysqli.php', + 'mysqli_bind_result' => 'mysqli/mysqli.php', + 'mysqli_change_user' => 'mysqli/mysqli.php', + 'mysqli_character_set_name' => 'mysqli/mysqli.php', + 'mysqli_client_encoding' => 'mysqli/mysqli.php', + 'mysqli_close' => 'mysqli/mysqli.php', + 'mysqli_commit' => 'mysqli/mysqli.php', + 'mysqli_connect' => 'mysqli/mysqli.php', + 'mysqli_connect_errno' => 'mysqli/mysqli.php', + 'mysqli_connect_error' => 'mysqli/mysqli.php', + 'mysqli_data_seek' => 'mysqli/mysqli.php', + 'mysqli_debug' => 'mysqli/mysqli.php', + 'mysqli_dump_debug_info' => 'mysqli/mysqli.php', + 'mysqli_errno' => 'mysqli/mysqli.php', + 'mysqli_error' => 'mysqli/mysqli.php', + 'mysqli_error_list' => 'mysqli/mysqli.php', + 'mysqli_escape_string' => 'mysqli/mysqli.php', + 'mysqli_execute' => 'mysqli/mysqli.php', + 'mysqli_execute_query' => 'mysqli/mysqli.php', + 'mysqli_fetch' => 'mysqli/mysqli.php', + 'mysqli_fetch_all' => 'mysqli/mysqli.php', + 'mysqli_fetch_array' => 'mysqli/mysqli.php', + 'mysqli_fetch_assoc' => 'mysqli/mysqli.php', + 'mysqli_fetch_column' => 'mysqli/mysqli.php', + 'mysqli_fetch_field' => 'mysqli/mysqli.php', + 'mysqli_fetch_field_direct' => 'mysqli/mysqli.php', + 'mysqli_fetch_fields' => 'mysqli/mysqli.php', + 'mysqli_fetch_lengths' => 'mysqli/mysqli.php', + 'mysqli_fetch_object' => 'mysqli/mysqli.php', + 'mysqli_fetch_row' => 'mysqli/mysqli.php', + 'mysqli_field_count' => 'mysqli/mysqli.php', + 'mysqli_field_seek' => 'mysqli/mysqli.php', + 'mysqli_field_tell' => 'mysqli/mysqli.php', + 'mysqli_free_result' => 'mysqli/mysqli.php', + 'mysqli_get_cache_stats' => 'mysqli/mysqli.php', + 'mysqli_get_charset' => 'mysqli/mysqli.php', + 'mysqli_get_client_info' => 'mysqli/mysqli.php', + 'mysqli_get_client_stats' => 'mysqli/mysqli.php', + 'mysqli_get_client_version' => 'mysqli/mysqli.php', + 'mysqli_get_connection_stats' => 'mysqli/mysqli.php', + 'mysqli_get_host_info' => 'mysqli/mysqli.php', + 'mysqli_get_links_stats' => 'mysqli/mysqli.php', + 'mysqli_get_metadata' => 'mysqli/mysqli.php', + 'mysqli_get_proto_info' => 'mysqli/mysqli.php', + 'mysqli_get_server_info' => 'mysqli/mysqli.php', + 'mysqli_get_server_version' => 'mysqli/mysqli.php', + 'mysqli_get_warnings' => 'mysqli/mysqli.php', + 'mysqli_info' => 'mysqli/mysqli.php', + 'mysqli_init' => 'mysqli/mysqli.php', + 'mysqli_insert_id' => 'mysqli/mysqli.php', + 'mysqli_kill' => 'mysqli/mysqli.php', + 'mysqli_more_results' => 'mysqli/mysqli.php', + 'mysqli_multi_query' => 'mysqli/mysqli.php', + 'mysqli_next_result' => 'mysqli/mysqli.php', + 'mysqli_num_fields' => 'mysqli/mysqli.php', + 'mysqli_num_rows' => 'mysqli/mysqli.php', + 'mysqli_options' => 'mysqli/mysqli.php', + 'mysqli_param_count' => 'mysqli/mysqli.php', + 'mysqli_ping' => 'mysqli/mysqli.php', + 'mysqli_poll' => 'mysqli/mysqli.php', + 'mysqli_prepare' => 'mysqli/mysqli.php', + 'mysqli_query' => 'mysqli/mysqli.php', + 'mysqli_real_connect' => 'mysqli/mysqli.php', + 'mysqli_real_escape_string' => 'mysqli/mysqli.php', + 'mysqli_real_query' => 'mysqli/mysqli.php', + 'mysqli_reap_async_query' => 'mysqli/mysqli.php', + 'mysqli_refresh' => 'mysqli/mysqli.php', + 'mysqli_release_savepoint' => 'mysqli/mysqli.php', + 'mysqli_report' => 'mysqli/mysqli.php', + 'mysqli_rollback' => 'mysqli/mysqli.php', + 'mysqli_savepoint' => 'mysqli/mysqli.php', + 'mysqli_select_db' => 'mysqli/mysqli.php', + 'mysqli_send_long_data' => 'mysqli/mysqli.php', + 'mysqli_set_charset' => 'mysqli/mysqli.php', + 'mysqli_set_local_infile_default' => 'mysqli/mysqli.php', + 'mysqli_set_local_infile_handler' => 'mysqli/mysqli.php', + 'mysqli_set_opt' => 'mysqli/mysqli.php', + 'mysqli_sqlstate' => 'mysqli/mysqli.php', + 'mysqli_ssl_set' => 'mysqli/mysqli.php', + 'mysqli_stat' => 'mysqli/mysqli.php', + 'mysqli_stmt_affected_rows' => 'mysqli/mysqli.php', + 'mysqli_stmt_attr_get' => 'mysqli/mysqli.php', + 'mysqli_stmt_attr_set' => 'mysqli/mysqli.php', + 'mysqli_stmt_bind_param' => 'mysqli/mysqli.php', + 'mysqli_stmt_bind_result' => 'mysqli/mysqli.php', + 'mysqli_stmt_close' => 'mysqli/mysqli.php', + 'mysqli_stmt_data_seek' => 'mysqli/mysqli.php', + 'mysqli_stmt_errno' => 'mysqli/mysqli.php', + 'mysqli_stmt_error' => 'mysqli/mysqli.php', + 'mysqli_stmt_error_list' => 'mysqli/mysqli.php', + 'mysqli_stmt_execute' => 'mysqli/mysqli.php', + 'mysqli_stmt_fetch' => 'mysqli/mysqli.php', + 'mysqli_stmt_field_count' => 'mysqli/mysqli.php', + 'mysqli_stmt_free_result' => 'mysqli/mysqli.php', + 'mysqli_stmt_get_result' => 'mysqli/mysqli.php', + 'mysqli_stmt_get_warnings' => 'mysqli/mysqli.php', + 'mysqli_stmt_init' => 'mysqli/mysqli.php', + 'mysqli_stmt_insert_id' => 'mysqli/mysqli.php', + 'mysqli_stmt_more_results' => 'mysqli/mysqli.php', + 'mysqli_stmt_next_result' => 'mysqli/mysqli.php', + 'mysqli_stmt_num_rows' => 'mysqli/mysqli.php', + 'mysqli_stmt_param_count' => 'mysqli/mysqli.php', + 'mysqli_stmt_prepare' => 'mysqli/mysqli.php', + 'mysqli_stmt_reset' => 'mysqli/mysqli.php', + 'mysqli_stmt_result_metadata' => 'mysqli/mysqli.php', + 'mysqli_stmt_send_long_data' => 'mysqli/mysqli.php', + 'mysqli_stmt_sqlstate' => 'mysqli/mysqli.php', + 'mysqli_stmt_store_result' => 'mysqli/mysqli.php', + 'mysqli_store_result' => 'mysqli/mysqli.php', + 'mysqli_thread_id' => 'mysqli/mysqli.php', + 'mysqli_thread_safe' => 'mysqli/mysqli.php', + 'mysqli_use_result' => 'mysqli/mysqli.php', + 'mysqli_warning_count' => 'mysqli/mysqli.php', + 'natcasesort' => 'standard/standard_8.php', + 'natsort' => 'standard/standard_8.php', + 'ncurses_addch' => 'ncurses/ncurses.php', + 'ncurses_addchnstr' => 'ncurses/ncurses.php', + 'ncurses_addchstr' => 'ncurses/ncurses.php', + 'ncurses_addnstr' => 'ncurses/ncurses.php', + 'ncurses_addstr' => 'ncurses/ncurses.php', + 'ncurses_assume_default_colors' => 'ncurses/ncurses.php', + 'ncurses_attroff' => 'ncurses/ncurses.php', + 'ncurses_attron' => 'ncurses/ncurses.php', + 'ncurses_attrset' => 'ncurses/ncurses.php', + 'ncurses_baudrate' => 'ncurses/ncurses.php', + 'ncurses_beep' => 'ncurses/ncurses.php', + 'ncurses_bkgd' => 'ncurses/ncurses.php', + 'ncurses_bkgdset' => 'ncurses/ncurses.php', + 'ncurses_border' => 'ncurses/ncurses.php', + 'ncurses_bottom_panel' => 'ncurses/ncurses.php', + 'ncurses_can_change_color' => 'ncurses/ncurses.php', + 'ncurses_cbreak' => 'ncurses/ncurses.php', + 'ncurses_clear' => 'ncurses/ncurses.php', + 'ncurses_clrtobot' => 'ncurses/ncurses.php', + 'ncurses_clrtoeol' => 'ncurses/ncurses.php', + 'ncurses_color_content' => 'ncurses/ncurses.php', + 'ncurses_color_set' => 'ncurses/ncurses.php', + 'ncurses_curs_set' => 'ncurses/ncurses.php', + 'ncurses_def_prog_mode' => 'ncurses/ncurses.php', + 'ncurses_def_shell_mode' => 'ncurses/ncurses.php', + 'ncurses_define_key' => 'ncurses/ncurses.php', + 'ncurses_del_panel' => 'ncurses/ncurses.php', + 'ncurses_delay_output' => 'ncurses/ncurses.php', + 'ncurses_delch' => 'ncurses/ncurses.php', + 'ncurses_deleteln' => 'ncurses/ncurses.php', + 'ncurses_delwin' => 'ncurses/ncurses.php', + 'ncurses_doupdate' => 'ncurses/ncurses.php', + 'ncurses_echo' => 'ncurses/ncurses.php', + 'ncurses_echochar' => 'ncurses/ncurses.php', + 'ncurses_end' => 'ncurses/ncurses.php', + 'ncurses_erase' => 'ncurses/ncurses.php', + 'ncurses_erasechar' => 'ncurses/ncurses.php', + 'ncurses_filter' => 'ncurses/ncurses.php', + 'ncurses_flash' => 'ncurses/ncurses.php', + 'ncurses_flushinp' => 'ncurses/ncurses.php', + 'ncurses_getch' => 'ncurses/ncurses.php', + 'ncurses_getmaxyx' => 'ncurses/ncurses.php', + 'ncurses_getmouse' => 'ncurses/ncurses.php', + 'ncurses_getyx' => 'ncurses/ncurses.php', + 'ncurses_halfdelay' => 'ncurses/ncurses.php', + 'ncurses_has_colors' => 'ncurses/ncurses.php', + 'ncurses_has_ic' => 'ncurses/ncurses.php', + 'ncurses_has_il' => 'ncurses/ncurses.php', + 'ncurses_has_key' => 'ncurses/ncurses.php', + 'ncurses_hide_panel' => 'ncurses/ncurses.php', + 'ncurses_hline' => 'ncurses/ncurses.php', + 'ncurses_inch' => 'ncurses/ncurses.php', + 'ncurses_init' => 'ncurses/ncurses.php', + 'ncurses_init_color' => 'ncurses/ncurses.php', + 'ncurses_init_pair' => 'ncurses/ncurses.php', + 'ncurses_insch' => 'ncurses/ncurses.php', + 'ncurses_insdelln' => 'ncurses/ncurses.php', + 'ncurses_insertln' => 'ncurses/ncurses.php', + 'ncurses_insstr' => 'ncurses/ncurses.php', + 'ncurses_instr' => 'ncurses/ncurses.php', + 'ncurses_isendwin' => 'ncurses/ncurses.php', + 'ncurses_keyok' => 'ncurses/ncurses.php', + 'ncurses_keypad' => 'ncurses/ncurses.php', + 'ncurses_killchar' => 'ncurses/ncurses.php', + 'ncurses_longname' => 'ncurses/ncurses.php', + 'ncurses_meta' => 'ncurses/ncurses.php', + 'ncurses_mouse_trafo' => 'ncurses/ncurses.php', + 'ncurses_mouseinterval' => 'ncurses/ncurses.php', + 'ncurses_mousemask' => 'ncurses/ncurses.php', + 'ncurses_move' => 'ncurses/ncurses.php', + 'ncurses_move_panel' => 'ncurses/ncurses.php', + 'ncurses_mvaddch' => 'ncurses/ncurses.php', + 'ncurses_mvaddchnstr' => 'ncurses/ncurses.php', + 'ncurses_mvaddchstr' => 'ncurses/ncurses.php', + 'ncurses_mvaddnstr' => 'ncurses/ncurses.php', + 'ncurses_mvaddstr' => 'ncurses/ncurses.php', + 'ncurses_mvcur' => 'ncurses/ncurses.php', + 'ncurses_mvdelch' => 'ncurses/ncurses.php', + 'ncurses_mvgetch' => 'ncurses/ncurses.php', + 'ncurses_mvhline' => 'ncurses/ncurses.php', + 'ncurses_mvinch' => 'ncurses/ncurses.php', + 'ncurses_mvwaddstr' => 'ncurses/ncurses.php', + 'ncurses_napms' => 'ncurses/ncurses.php', + 'ncurses_new_panel' => 'ncurses/ncurses.php', + 'ncurses_newpad' => 'ncurses/ncurses.php', + 'ncurses_newwin' => 'ncurses/ncurses.php', + 'ncurses_nl' => 'ncurses/ncurses.php', + 'ncurses_nocbreak' => 'ncurses/ncurses.php', + 'ncurses_noecho' => 'ncurses/ncurses.php', + 'ncurses_nonl' => 'ncurses/ncurses.php', + 'ncurses_noqiflush' => 'ncurses/ncurses.php', + 'ncurses_noraw' => 'ncurses/ncurses.php', + 'ncurses_pair_content' => 'ncurses/ncurses.php', + 'ncurses_panel_above' => 'ncurses/ncurses.php', + 'ncurses_panel_below' => 'ncurses/ncurses.php', + 'ncurses_panel_window' => 'ncurses/ncurses.php', + 'ncurses_pnoutrefresh' => 'ncurses/ncurses.php', + 'ncurses_prefresh' => 'ncurses/ncurses.php', + 'ncurses_putp' => 'ncurses/ncurses.php', + 'ncurses_qiflush' => 'ncurses/ncurses.php', + 'ncurses_raw' => 'ncurses/ncurses.php', + 'ncurses_refresh' => 'ncurses/ncurses.php', + 'ncurses_replace_panel' => 'ncurses/ncurses.php', + 'ncurses_reset_prog_mode' => 'ncurses/ncurses.php', + 'ncurses_reset_shell_mode' => 'ncurses/ncurses.php', + 'ncurses_resetty' => 'ncurses/ncurses.php', + 'ncurses_savetty' => 'ncurses/ncurses.php', + 'ncurses_scr_dump' => 'ncurses/ncurses.php', + 'ncurses_scr_init' => 'ncurses/ncurses.php', + 'ncurses_scr_restore' => 'ncurses/ncurses.php', + 'ncurses_scr_set' => 'ncurses/ncurses.php', + 'ncurses_scrl' => 'ncurses/ncurses.php', + 'ncurses_show_panel' => 'ncurses/ncurses.php', + 'ncurses_slk_attr' => 'ncurses/ncurses.php', + 'ncurses_slk_attroff' => 'ncurses/ncurses.php', + 'ncurses_slk_attron' => 'ncurses/ncurses.php', + 'ncurses_slk_attrset' => 'ncurses/ncurses.php', + 'ncurses_slk_clear' => 'ncurses/ncurses.php', + 'ncurses_slk_color' => 'ncurses/ncurses.php', + 'ncurses_slk_init' => 'ncurses/ncurses.php', + 'ncurses_slk_noutrefresh' => 'ncurses/ncurses.php', + 'ncurses_slk_refresh' => 'ncurses/ncurses.php', + 'ncurses_slk_restore' => 'ncurses/ncurses.php', + 'ncurses_slk_set' => 'ncurses/ncurses.php', + 'ncurses_slk_touch' => 'ncurses/ncurses.php', + 'ncurses_standend' => 'ncurses/ncurses.php', + 'ncurses_standout' => 'ncurses/ncurses.php', + 'ncurses_start_color' => 'ncurses/ncurses.php', + 'ncurses_termattrs' => 'ncurses/ncurses.php', + 'ncurses_termname' => 'ncurses/ncurses.php', + 'ncurses_timeout' => 'ncurses/ncurses.php', + 'ncurses_top_panel' => 'ncurses/ncurses.php', + 'ncurses_typeahead' => 'ncurses/ncurses.php', + 'ncurses_ungetch' => 'ncurses/ncurses.php', + 'ncurses_ungetmouse' => 'ncurses/ncurses.php', + 'ncurses_update_panels' => 'ncurses/ncurses.php', + 'ncurses_use_default_colors' => 'ncurses/ncurses.php', + 'ncurses_use_env' => 'ncurses/ncurses.php', + 'ncurses_use_extended_names' => 'ncurses/ncurses.php', + 'ncurses_vidattr' => 'ncurses/ncurses.php', + 'ncurses_vline' => 'ncurses/ncurses.php', + 'ncurses_waddch' => 'ncurses/ncurses.php', + 'ncurses_waddstr' => 'ncurses/ncurses.php', + 'ncurses_wattroff' => 'ncurses/ncurses.php', + 'ncurses_wattron' => 'ncurses/ncurses.php', + 'ncurses_wattrset' => 'ncurses/ncurses.php', + 'ncurses_wborder' => 'ncurses/ncurses.php', + 'ncurses_wclear' => 'ncurses/ncurses.php', + 'ncurses_wcolor_set' => 'ncurses/ncurses.php', + 'ncurses_werase' => 'ncurses/ncurses.php', + 'ncurses_wgetch' => 'ncurses/ncurses.php', + 'ncurses_whline' => 'ncurses/ncurses.php', + 'ncurses_wmouse_trafo' => 'ncurses/ncurses.php', + 'ncurses_wmove' => 'ncurses/ncurses.php', + 'ncurses_wnoutrefresh' => 'ncurses/ncurses.php', + 'ncurses_wrefresh' => 'ncurses/ncurses.php', + 'ncurses_wstandend' => 'ncurses/ncurses.php', + 'ncurses_wstandout' => 'ncurses/ncurses.php', + 'ncurses_wvline' => 'ncurses/ncurses.php', + 'net_get_interfaces' => 'standard/standard_4.php', + 'newrelic_accept_distributed_trace_headers' => 'newrelic/newrelic.php', + 'newrelic_accept_distributed_trace_payload' => 'newrelic/newrelic.php', + 'newrelic_accept_distributed_trace_payload_httpsafe' => 'newrelic/newrelic.php', + 'newrelic_add_custom_parameter' => 'newrelic/newrelic.php', + 'newrelic_add_custom_span_parameter' => 'newrelic/newrelic.php', + 'newrelic_add_custom_tracer' => 'newrelic/newrelic.php', + 'newrelic_background_job' => 'newrelic/newrelic.php', + 'newrelic_capture_params' => 'newrelic/newrelic.php', + 'newrelic_create_distributed_trace_payload' => 'newrelic/newrelic.php', + 'newrelic_custom_metric' => 'newrelic/newrelic.php', + 'newrelic_disable_autorum' => 'newrelic/newrelic.php', + 'newrelic_enable_params' => 'newrelic/newrelic.php', + 'newrelic_end_of_transaction' => 'newrelic/newrelic.php', + 'newrelic_end_transaction' => 'newrelic/newrelic.php', + 'newrelic_get_browser_timing_footer' => 'newrelic/newrelic.php', + 'newrelic_get_browser_timing_header' => 'newrelic/newrelic.php', + 'newrelic_get_linking_metadata' => 'newrelic/newrelic.php', + 'newrelic_get_trace_metadata' => 'newrelic/newrelic.php', + 'newrelic_ignore_apdex' => 'newrelic/newrelic.php', + 'newrelic_ignore_transaction' => 'newrelic/newrelic.php', + 'newrelic_insert_distributed_trace_headers' => 'newrelic/newrelic.php', + 'newrelic_is_sampled' => 'newrelic/newrelic.php', + 'newrelic_name_transaction' => 'newrelic/newrelic.php', + 'newrelic_notice_error' => 'newrelic/newrelic.php', + 'newrelic_record_custom_event' => 'newrelic/newrelic.php', + 'newrelic_record_datastore_segment' => 'newrelic/newrelic.php', + 'newrelic_set_appname' => 'newrelic/newrelic.php', + 'newrelic_set_user_attributes' => 'newrelic/newrelic.php', + 'newrelic_start_transaction' => 'newrelic/newrelic.php', + 'next' => 'standard/standard_8.php', + 'ngettext' => 'gettext/gettext.php', + 'nl2br' => 'standard/standard_1.php', + 'nl_langinfo' => 'standard/standard_2.php', + 'normalizer_get_raw_decomposition' => 'intl/intl.php', + 'normalizer_is_normalized' => 'intl/intl.php', + 'normalizer_normalize' => 'intl/intl.php', + 'number_format' => 'standard/standard_3.php', + 'numfmt_create' => 'intl/intl.php', + 'numfmt_format' => 'intl/intl.php', + 'numfmt_format_currency' => 'intl/intl.php', + 'numfmt_get_attribute' => 'intl/intl.php', + 'numfmt_get_error_code' => 'intl/intl.php', + 'numfmt_get_error_message' => 'intl/intl.php', + 'numfmt_get_locale' => 'intl/intl.php', + 'numfmt_get_pattern' => 'intl/intl.php', + 'numfmt_get_symbol' => 'intl/intl.php', + 'numfmt_get_text_attribute' => 'intl/intl.php', + 'numfmt_parse' => 'intl/intl.php', + 'numfmt_parse_currency' => 'intl/intl.php', + 'numfmt_set_attribute' => 'intl/intl.php', + 'numfmt_set_pattern' => 'intl/intl.php', + 'numfmt_set_symbol' => 'intl/intl.php', + 'numfmt_set_text_attribute' => 'intl/intl.php', + 'oauth_get_sbs' => 'oauth/oauth.php', + 'oauth_urlencode' => 'oauth/oauth.php', + 'ob_clean' => 'standard/standard_8.php', + 'ob_deflatehandler' => 'http/http.php', + 'ob_end_clean' => 'standard/standard_8.php', + 'ob_end_flush' => 'standard/standard_8.php', + 'ob_etaghandler' => 'http/http.php', + 'ob_flush' => 'standard/standard_8.php', + 'ob_get_clean' => 'standard/standard_8.php', + 'ob_get_contents' => 'standard/standard_8.php', + 'ob_get_flush' => 'standard/standard_8.php', + 'ob_get_length' => 'standard/standard_8.php', + 'ob_get_level' => 'standard/standard_8.php', + 'ob_get_status' => 'standard/standard_8.php', + 'ob_gzhandler' => 'zlib/zlib.php', + 'ob_iconv_handler' => 'iconv/iconv.php', + 'ob_implicit_flush' => 'standard/standard_8.php', + 'ob_inflatehandler' => 'http/http.php', + 'ob_list_handlers' => 'standard/standard_8.php', + 'ob_start' => 'standard/standard_8.php', + 'ob_tidyhandler' => 'tidy/tidy.php', + 'oci_bind_array_by_name' => 'oci8/oci8.php', + 'oci_bind_by_name' => 'oci8/oci8.php', + 'oci_cancel' => 'oci8/oci8.php', + 'oci_client_version' => 'oci8/oci8.php', + 'oci_close' => 'oci8/oci8.php', + 'oci_commit' => 'oci8/oci8.php', + 'oci_connect' => 'oci8/oci8.php', + 'oci_define_by_name' => 'oci8/oci8.php', + 'oci_error' => 'oci8/oci8.php', + 'oci_execute' => 'oci8/oci8.php', + 'oci_fetch' => 'oci8/oci8.php', + 'oci_fetch_all' => 'oci8/oci8.php', + 'oci_fetch_array' => 'oci8/oci8.php', + 'oci_fetch_assoc' => 'oci8/oci8.php', + 'oci_fetch_object' => 'oci8/oci8.php', + 'oci_fetch_row' => 'oci8/oci8.php', + 'oci_field_is_null' => 'oci8/oci8.php', + 'oci_field_name' => 'oci8/oci8.php', + 'oci_field_precision' => 'oci8/oci8.php', + 'oci_field_scale' => 'oci8/oci8.php', + 'oci_field_size' => 'oci8/oci8.php', + 'oci_field_type' => 'oci8/oci8.php', + 'oci_field_type_raw' => 'oci8/oci8.php', + 'oci_free_cursor' => 'oci8/oci8.php', + 'oci_free_descriptor' => 'oci8/oci8.php', + 'oci_free_statement' => 'oci8/oci8.php', + 'oci_get_implicit_resultset' => 'oci8/oci8.php', + 'oci_internal_debug' => 'oci8/oci8.php', + 'oci_lob_copy' => 'oci8/oci8.php', + 'oci_lob_is_equal' => 'oci8/oci8.php', + 'oci_new_collection' => 'oci8/oci8.php', + 'oci_new_connect' => 'oci8/oci8.php', + 'oci_new_cursor' => 'oci8/oci8.php', + 'oci_new_descriptor' => 'oci8/oci8.php', + 'oci_num_fields' => 'oci8/oci8.php', + 'oci_num_rows' => 'oci8/oci8.php', + 'oci_parse' => 'oci8/oci8.php', + 'oci_password_change' => 'oci8/oci8.php', + 'oci_pconnect' => 'oci8/oci8.php', + 'oci_register_taf_callback' => 'oci8/oci8.php', + 'oci_result' => 'oci8/oci8.php', + 'oci_rollback' => 'oci8/oci8.php', + 'oci_server_version' => 'oci8/oci8.php', + 'oci_set_action' => 'oci8/oci8.php', + 'oci_set_call_timeout' => 'oci8/oci8v3.php', + 'oci_set_client_identifier' => 'oci8/oci8.php', + 'oci_set_client_info' => 'oci8/oci8.php', + 'oci_set_db_operation' => 'oci8/oci8v3.php', + 'oci_set_edition' => 'oci8/oci8.php', + 'oci_set_module_name' => 'oci8/oci8.php', + 'oci_set_prefetch' => 'oci8/oci8.php', + 'oci_set_prefetch_lob' => 'oci8/oci8v3.php', + 'oci_statement_type' => 'oci8/oci8.php', + 'oci_unregister_taf_callback' => 'oci8/oci8.php', + 'ocibindbyname' => 'oci8/oci8.php', + 'ocicancel' => 'oci8/oci8.php', + 'ocicloselob' => 'oci8/oci8.php', + 'ocicollappend' => 'oci8/oci8.php', + 'ocicollassign' => 'oci8/oci8.php', + 'ocicollassignelem' => 'oci8/oci8.php', + 'ocicollgetelem' => 'oci8/oci8.php', + 'ocicollmax' => 'oci8/oci8.php', + 'ocicollsize' => 'oci8/oci8.php', + 'ocicolltrim' => 'oci8/oci8.php', + 'ocicolumnisnull' => 'oci8/oci8.php', + 'ocicolumnname' => 'oci8/oci8.php', + 'ocicolumnprecision' => 'oci8/oci8.php', + 'ocicolumnscale' => 'oci8/oci8.php', + 'ocicolumnsize' => 'oci8/oci8.php', + 'ocicolumntype' => 'oci8/oci8.php', + 'ocicolumntyperaw' => 'oci8/oci8.php', + 'ocicommit' => 'oci8/oci8.php', + 'ocidefinebyname' => 'oci8/oci8.php', + 'ocierror' => 'oci8/oci8.php', + 'ociexecute' => 'oci8/oci8.php', + 'ocifetch' => 'oci8/oci8.php', + 'ocifetchinto' => 'oci8/oci8.php', + 'ocifetchstatement' => 'oci8/oci8.php', + 'ocifreecollection' => 'oci8/oci8.php', + 'ocifreecursor' => 'oci8/oci8.php', + 'ocifreedesc' => 'oci8/oci8.php', + 'ocifreestatement' => 'oci8/oci8.php', + 'ociinternaldebug' => 'oci8/oci8.php', + 'ociloadlob' => 'oci8/oci8.php', + 'ocilogoff' => 'oci8/oci8.php', + 'ocilogon' => 'oci8/oci8.php', + 'ocinewcollection' => 'oci8/oci8.php', + 'ocinewcursor' => 'oci8/oci8.php', + 'ocinewdescriptor' => 'oci8/oci8.php', + 'ocinlogon' => 'oci8/oci8.php', + 'ocinumcols' => 'oci8/oci8.php', + 'ociparse' => 'oci8/oci8.php', + 'ocipasswordchange' => 'oci8/oci8.php', + 'ociplogon' => 'oci8/oci8.php', + 'ociresult' => 'oci8/oci8.php', + 'ocirollback' => 'oci8/oci8.php', + 'ocirowcount' => 'oci8/oci8.php', + 'ocisavelob' => 'oci8/oci8.php', + 'ocisavelobfile' => 'oci8/oci8.php', + 'ociserverversion' => 'oci8/oci8.php', + 'ocisetprefetch' => 'oci8/oci8.php', + 'ocistatementtype' => 'oci8/oci8.php', + 'ociwritelobtofile' => 'oci8/oci8.php', + 'ociwritetemporarylob' => 'oci8/oci8.php', + 'octdec' => 'standard/standard_3.php', + 'odbc_autocommit' => 'odbc/odbc.php', + 'odbc_binmode' => 'odbc/odbc.php', + 'odbc_close' => 'odbc/odbc.php', + 'odbc_close_all' => 'odbc/odbc.php', + 'odbc_columnprivileges' => 'odbc/odbc.php', + 'odbc_columns' => 'odbc/odbc.php', + 'odbc_commit' => 'odbc/odbc.php', + 'odbc_connect' => 'odbc/odbc.php', + 'odbc_cursor' => 'odbc/odbc.php', + 'odbc_data_source' => 'odbc/odbc.php', + 'odbc_do' => 'odbc/odbc.php', + 'odbc_error' => 'odbc/odbc.php', + 'odbc_errormsg' => 'odbc/odbc.php', + 'odbc_exec' => 'odbc/odbc.php', + 'odbc_execute' => 'odbc/odbc.php', + 'odbc_fetch_array' => 'odbc/odbc.php', + 'odbc_fetch_into' => 'odbc/odbc.php', + 'odbc_fetch_object' => 'odbc/odbc.php', + 'odbc_fetch_row' => 'odbc/odbc.php', + 'odbc_field_len' => 'odbc/odbc.php', + 'odbc_field_name' => 'odbc/odbc.php', + 'odbc_field_num' => 'odbc/odbc.php', + 'odbc_field_precision' => 'odbc/odbc.php', + 'odbc_field_scale' => 'odbc/odbc.php', + 'odbc_field_type' => 'odbc/odbc.php', + 'odbc_foreignkeys' => 'odbc/odbc.php', + 'odbc_free_result' => 'odbc/odbc.php', + 'odbc_gettypeinfo' => 'odbc/odbc.php', + 'odbc_longreadlen' => 'odbc/odbc.php', + 'odbc_next_result' => 'odbc/odbc.php', + 'odbc_num_fields' => 'odbc/odbc.php', + 'odbc_num_rows' => 'odbc/odbc.php', + 'odbc_pconnect' => 'odbc/odbc.php', + 'odbc_prepare' => 'odbc/odbc.php', + 'odbc_primarykeys' => 'odbc/odbc.php', + 'odbc_procedurecolumns' => 'odbc/odbc.php', + 'odbc_procedures' => 'odbc/odbc.php', + 'odbc_result' => 'odbc/odbc.php', + 'odbc_result_all' => 'odbc/odbc.php', + 'odbc_rollback' => 'odbc/odbc.php', + 'odbc_setoption' => 'odbc/odbc.php', + 'odbc_specialcolumns' => 'odbc/odbc.php', + 'odbc_statistics' => 'odbc/odbc.php', + 'odbc_tableprivileges' => 'odbc/odbc.php', + 'odbc_tables' => 'odbc/odbc.php', + 'opcache_compile_file' => 'Zend OPcache/OPcache.php', + 'opcache_get_configuration' => 'Zend OPcache/OPcache.php', + 'opcache_get_status' => 'Zend OPcache/OPcache.php', + 'opcache_invalidate' => 'Zend OPcache/OPcache.php', + 'opcache_is_script_cached' => 'Zend OPcache/OPcache.php', + 'opcache_reset' => 'Zend OPcache/OPcache.php', + 'opendir' => 'standard/standard_7.php', + 'openlog' => 'standard/standard_7.php', + 'openssl_cipher_iv_length' => 'openssl/openssl.php', + 'openssl_cipher_key_length' => 'openssl/openssl.php', + 'openssl_cms_decrypt' => 'openssl/openssl.php', + 'openssl_cms_encrypt' => 'openssl/openssl.php', + 'openssl_cms_read' => 'openssl/openssl.php', + 'openssl_cms_sign' => 'openssl/openssl.php', + 'openssl_cms_verify' => 'openssl/openssl.php', + 'openssl_csr_export' => 'openssl/openssl.php', + 'openssl_csr_export_to_file' => 'openssl/openssl.php', + 'openssl_csr_get_public_key' => 'openssl/openssl.php', + 'openssl_csr_get_subject' => 'openssl/openssl.php', + 'openssl_csr_new' => 'openssl/openssl.php', + 'openssl_csr_sign' => 'openssl/openssl.php', + 'openssl_decrypt' => 'openssl/openssl.php', + 'openssl_dh_compute_key' => 'openssl/openssl.php', + 'openssl_digest' => 'openssl/openssl.php', + 'openssl_encrypt' => 'openssl/openssl.php', + 'openssl_error_string' => 'openssl/openssl.php', + 'openssl_free_key' => 'openssl/openssl.php', + 'openssl_get_cert_locations' => 'openssl/openssl.php', + 'openssl_get_cipher_methods' => 'openssl/openssl.php', + 'openssl_get_curve_names' => 'openssl/openssl.php', + 'openssl_get_md_methods' => 'openssl/openssl.php', + 'openssl_get_privatekey' => 'openssl/openssl.php', + 'openssl_get_publickey' => 'openssl/openssl.php', + 'openssl_open' => 'openssl/openssl.php', + 'openssl_pbkdf2' => 'openssl/openssl.php', + 'openssl_pkcs12_export' => 'openssl/openssl.php', + 'openssl_pkcs12_export_to_file' => 'openssl/openssl.php', + 'openssl_pkcs12_read' => 'openssl/openssl.php', + 'openssl_pkcs7_decrypt' => 'openssl/openssl.php', + 'openssl_pkcs7_encrypt' => 'openssl/openssl.php', + 'openssl_pkcs7_read' => 'openssl/openssl.php', + 'openssl_pkcs7_sign' => 'openssl/openssl.php', + 'openssl_pkcs7_verify' => 'openssl/openssl.php', + 'openssl_pkey_derive' => 'openssl/openssl.php', + 'openssl_pkey_export' => 'openssl/openssl.php', + 'openssl_pkey_export_to_file' => 'openssl/openssl.php', + 'openssl_pkey_free' => 'openssl/openssl.php', + 'openssl_pkey_get_details' => 'openssl/openssl.php', + 'openssl_pkey_get_private' => 'openssl/openssl.php', + 'openssl_pkey_get_public' => 'openssl/openssl.php', + 'openssl_pkey_new' => 'openssl/openssl.php', + 'openssl_private_decrypt' => 'openssl/openssl.php', + 'openssl_private_encrypt' => 'openssl/openssl.php', + 'openssl_public_decrypt' => 'openssl/openssl.php', + 'openssl_public_encrypt' => 'openssl/openssl.php', + 'openssl_random_pseudo_bytes' => 'openssl/openssl.php', + 'openssl_seal' => 'openssl/openssl.php', + 'openssl_sign' => 'openssl/openssl.php', + 'openssl_spki_export' => 'openssl/openssl.php', + 'openssl_spki_export_challenge' => 'openssl/openssl.php', + 'openssl_spki_new' => 'openssl/openssl.php', + 'openssl_spki_verify' => 'openssl/openssl.php', + 'openssl_verify' => 'openssl/openssl.php', + 'openssl_x509_check_private_key' => 'openssl/openssl.php', + 'openssl_x509_checkpurpose' => 'openssl/openssl.php', + 'openssl_x509_export' => 'openssl/openssl.php', + 'openssl_x509_export_to_file' => 'openssl/openssl.php', + 'openssl_x509_fingerprint' => 'openssl/openssl.php', + '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_cache_disable' => 'zend/zend.php', + 'output_cache_disable_compression' => 'zend/zend.php', + 'output_cache_exists' => 'zend/zend.php', + 'output_cache_fetch' => 'zend/zend.php', + 'output_cache_get' => 'zend/zend.php', + 'output_cache_output' => 'zend/zend.php', + 'output_cache_put' => 'zend/zend.php', + 'output_cache_remove' => 'zend/zend.php', + 'output_cache_remove_key' => 'zend/zend.php', + 'output_cache_remove_url' => 'zend/zend.php', + 'output_cache_stop' => 'zend/zend.php', + 'output_reset_rewrite_vars' => 'standard/standard_9.php', + 'pack' => 'standard/standard_7.php', + 'pam_auth' => 'pam/pam.php', + 'pam_chpass' => 'pam/pam.php', + 'parallel\\bootstrap' => 'parallel/parallel.php', + 'parallel\\count' => 'parallel/parallel.php', + 'parallel\\run' => 'parallel/parallel.php', + 'parse_ini_file' => 'standard/standard_4.php', + 'parse_ini_string' => 'standard/standard_4.php', + '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', + 'password_verify' => 'standard/password.php', + 'pathinfo' => 'standard/standard_1.php', + 'pclose' => 'standard/standard_5.php', + 'pcntl_alarm' => 'pcntl/pcntl.php', + 'pcntl_async_signals' => 'pcntl/pcntl.php', + 'pcntl_errno' => 'pcntl/pcntl.php', + 'pcntl_exec' => 'pcntl/pcntl.php', + 'pcntl_fork' => 'pcntl/pcntl.php', + 'pcntl_get_last_error' => 'pcntl/pcntl.php', + 'pcntl_getpriority' => 'pcntl/pcntl.php', + 'pcntl_setpriority' => 'pcntl/pcntl.php', + 'pcntl_signal' => 'pcntl/pcntl.php', + 'pcntl_signal_dispatch' => 'pcntl/pcntl.php', + 'pcntl_signal_get_handler' => 'pcntl/pcntl.php', + 'pcntl_sigprocmask' => 'pcntl/pcntl.php', + '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', + 'pcntl_wifcontinued' => 'pcntl/pcntl.php', + 'pcntl_wifexited' => 'pcntl/pcntl.php', + 'pcntl_wifsignaled' => 'pcntl/pcntl.php', + 'pcntl_wifstopped' => 'pcntl/pcntl.php', + 'pcntl_wstopsig' => 'pcntl/pcntl.php', + 'pcntl_wtermsig' => 'pcntl/pcntl.php', + 'pcov\\clear' => 'pcov/pcov.php', + 'pcov\\collect' => 'pcov/pcov.php', + 'pcov\\memory' => 'pcov/pcov.php', + 'pcov\\start' => 'pcov/pcov.php', + 'pcov\\stop' => 'pcov/pcov.php', + 'pcov\\waiting' => 'pcov/pcov.php', + 'pdo_drivers' => 'PDO/PDO.php', + 'pfsockopen' => 'standard/standard_7.php', + 'pg_affected_rows' => 'pgsql/pgsql.php', + 'pg_cancel_query' => 'pgsql/pgsql.php', + 'pg_client_encoding' => 'pgsql/pgsql.php', + 'pg_clientencoding' => 'pgsql/pgsql.php', + 'pg_close' => 'pgsql/pgsql.php', + 'pg_cmdtuples' => 'pgsql/pgsql.php', + 'pg_connect' => 'pgsql/pgsql.php', + 'pg_connect_poll' => 'pgsql/pgsql.php', + 'pg_connection_busy' => 'pgsql/pgsql.php', + 'pg_connection_reset' => 'pgsql/pgsql.php', + 'pg_connection_status' => 'pgsql/pgsql.php', + 'pg_consume_input' => 'pgsql/pgsql.php', + 'pg_convert' => 'pgsql/pgsql.php', + 'pg_copy_from' => 'pgsql/pgsql.php', + 'pg_copy_to' => 'pgsql/pgsql.php', + 'pg_dbname' => 'pgsql/pgsql.php', + 'pg_delete' => 'pgsql/pgsql.php', + 'pg_end_copy' => 'pgsql/pgsql.php', + 'pg_enter_pipeline_mode' => 'pgsql/pgsql.php', + 'pg_errormessage' => 'pgsql/pgsql.php', + 'pg_escape_bytea' => 'pgsql/pgsql.php', + 'pg_escape_identifier' => 'pgsql/pgsql.php', + 'pg_escape_literal' => 'pgsql/pgsql.php', + 'pg_escape_string' => 'pgsql/pgsql.php', + 'pg_exec' => 'pgsql/pgsql.php', + 'pg_execute' => 'pgsql/pgsql.php', + 'pg_exit_pipeline_mode' => 'pgsql/pgsql.php', + 'pg_fetch_all' => 'pgsql/pgsql.php', + 'pg_fetch_all_columns' => 'pgsql/pgsql.php', + 'pg_fetch_array' => 'pgsql/pgsql.php', + 'pg_fetch_assoc' => 'pgsql/pgsql.php', + 'pg_fetch_object' => 'pgsql/pgsql.php', + 'pg_fetch_result' => 'pgsql/pgsql.php', + 'pg_fetch_row' => 'pgsql/pgsql.php', + 'pg_field_is_null' => 'pgsql/pgsql.php', + 'pg_field_name' => 'pgsql/pgsql.php', + 'pg_field_num' => 'pgsql/pgsql.php', + 'pg_field_prtlen' => 'pgsql/pgsql.php', + 'pg_field_size' => 'pgsql/pgsql.php', + 'pg_field_table' => 'pgsql/pgsql.php', + 'pg_field_type' => 'pgsql/pgsql.php', + 'pg_field_type_oid' => 'pgsql/pgsql.php', + 'pg_fieldisnull' => 'pgsql/pgsql.php', + 'pg_fieldname' => 'pgsql/pgsql.php', + 'pg_fieldnum' => 'pgsql/pgsql.php', + 'pg_fieldprtlen' => 'pgsql/pgsql.php', + 'pg_fieldsize' => 'pgsql/pgsql.php', + 'pg_fieldtype' => 'pgsql/pgsql.php', + 'pg_flush' => 'pgsql/pgsql.php', + 'pg_free_result' => 'pgsql/pgsql.php', + 'pg_freeresult' => 'pgsql/pgsql.php', + 'pg_get_notify' => 'pgsql/pgsql.php', + 'pg_get_pid' => 'pgsql/pgsql.php', + 'pg_get_result' => 'pgsql/pgsql.php', + 'pg_getlastoid' => 'pgsql/pgsql.php', + 'pg_host' => 'pgsql/pgsql.php', + 'pg_insert' => 'pgsql/pgsql.php', + 'pg_last_error' => 'pgsql/pgsql.php', + 'pg_last_notice' => 'pgsql/pgsql.php', + 'pg_last_oid' => 'pgsql/pgsql.php', + 'pg_lo_close' => 'pgsql/pgsql.php', + 'pg_lo_create' => 'pgsql/pgsql.php', + 'pg_lo_export' => 'pgsql/pgsql.php', + 'pg_lo_import' => 'pgsql/pgsql.php', + 'pg_lo_open' => 'pgsql/pgsql.php', + 'pg_lo_read' => 'pgsql/pgsql.php', + 'pg_lo_read_all' => 'pgsql/pgsql.php', + 'pg_lo_seek' => 'pgsql/pgsql.php', + 'pg_lo_tell' => 'pgsql/pgsql.php', + 'pg_lo_truncate' => 'pgsql/pgsql.php', + 'pg_lo_unlink' => 'pgsql/pgsql.php', + 'pg_lo_write' => 'pgsql/pgsql.php', + 'pg_loclose' => 'pgsql/pgsql.php', + 'pg_locreate' => 'pgsql/pgsql.php', + 'pg_loexport' => 'pgsql/pgsql.php', + 'pg_loimport' => 'pgsql/pgsql.php', + 'pg_loopen' => 'pgsql/pgsql.php', + 'pg_loread' => 'pgsql/pgsql.php', + 'pg_loreadall' => 'pgsql/pgsql.php', + 'pg_lounlink' => 'pgsql/pgsql.php', + 'pg_lowrite' => 'pgsql/pgsql.php', + 'pg_meta_data' => 'pgsql/pgsql.php', + 'pg_num_fields' => 'pgsql/pgsql.php', + 'pg_num_rows' => 'pgsql/pgsql.php', + 'pg_numfields' => 'pgsql/pgsql.php', + 'pg_numrows' => 'pgsql/pgsql.php', + 'pg_options' => 'pgsql/pgsql.php', + 'pg_parameter_status' => 'pgsql/pgsql.php', + 'pg_pconnect' => 'pgsql/pgsql.php', + 'pg_ping' => 'pgsql/pgsql.php', + 'pg_pipeline_status' => 'pgsql/pgsql.php', + 'pg_pipeline_sync' => 'pgsql/pgsql.php', + 'pg_port' => 'pgsql/pgsql.php', + 'pg_prepare' => 'pgsql/pgsql.php', + 'pg_put_line' => 'pgsql/pgsql.php', + 'pg_query' => 'pgsql/pgsql.php', + 'pg_query_params' => 'pgsql/pgsql.php', + 'pg_result' => 'pgsql/pgsql.php', + 'pg_result_error' => 'pgsql/pgsql.php', + 'pg_result_error_field' => 'pgsql/pgsql.php', + 'pg_result_seek' => 'pgsql/pgsql.php', + 'pg_result_status' => 'pgsql/pgsql.php', + 'pg_select' => 'pgsql/pgsql.php', + 'pg_send_execute' => 'pgsql/pgsql.php', + 'pg_send_prepare' => 'pgsql/pgsql.php', + 'pg_send_query' => 'pgsql/pgsql.php', + 'pg_send_query_params' => 'pgsql/pgsql.php', + 'pg_set_client_encoding' => 'pgsql/pgsql.php', + 'pg_set_error_context_visibility' => 'pgsql/pgsql.php', + 'pg_set_error_verbosity' => 'pgsql/pgsql.php', + 'pg_setclientencoding' => 'pgsql/pgsql.php', + 'pg_socket' => 'pgsql/pgsql.php', + 'pg_trace' => 'pgsql/pgsql.php', + 'pg_transaction_status' => 'pgsql/pgsql.php', + 'pg_tty' => 'pgsql/pgsql.php', + 'pg_unescape_bytea' => 'pgsql/pgsql.php', + 'pg_untrace' => 'pgsql/pgsql.php', + 'pg_update' => 'pgsql/pgsql.php', + 'pg_version' => 'pgsql/pgsql.php', + 'php_egg_logo_guid' => 'standard/standard_0.php', + 'php_ini_loaded_file' => 'standard/standard_0.php', + 'php_ini_scanned_files' => 'standard/standard_0.php', + 'php_logo_guid' => 'standard/standard_0.php', + 'php_real_logo_guid' => 'standard/standard_0.php', + 'php_sapi_name' => 'standard/standard_0.php', + 'php_strip_whitespace' => 'standard/standard_4.php', + 'php_uname' => 'standard/standard_0.php', + 'phpcredits' => 'standard/standard_0.php', + 'phpdbg_break_file' => 'phpdbg/phpdbg.php', + 'phpdbg_break_function' => 'phpdbg/phpdbg.php', + 'phpdbg_break_method' => 'phpdbg/phpdbg.php', + 'phpdbg_break_next' => 'phpdbg/phpdbg.php', + 'phpdbg_clear' => 'phpdbg/phpdbg.php', + 'phpdbg_color' => 'phpdbg/phpdbg.php', + 'phpdbg_end_oplog' => 'phpdbg/phpdbg.php', + 'phpdbg_exec' => 'phpdbg/phpdbg.php', + 'phpdbg_get_executable' => 'phpdbg/phpdbg.php', + 'phpdbg_prompt' => 'phpdbg/phpdbg.php', + 'phpdbg_start_oplog' => 'phpdbg/phpdbg.php', + 'phpinfo' => 'standard/standard_0.php', + 'phpversion' => 'standard/standard_0.php', + 'pi' => 'standard/standard_3.php', + 'png2wbmp' => 'gd/gd.php', + 'popen' => 'standard/standard_5.php', + 'pos' => 'standard/standard_9.php', + 'posix_access' => 'posix/posix.php', + 'posix_ctermid' => 'posix/posix.php', + 'posix_eaccess' => 'posix/posix.php', + 'posix_errno' => 'posix/posix.php', + 'posix_get_last_error' => 'posix/posix.php', + 'posix_getcwd' => 'posix/posix.php', + 'posix_getegid' => 'posix/posix.php', + 'posix_geteuid' => 'posix/posix.php', + 'posix_getgid' => 'posix/posix.php', + 'posix_getgrgid' => 'posix/posix.php', + 'posix_getgrnam' => 'posix/posix.php', + 'posix_getgroups' => 'posix/posix.php', + 'posix_getlogin' => 'posix/posix.php', + 'posix_getpgid' => 'posix/posix.php', + 'posix_getpgrp' => 'posix/posix.php', + 'posix_getpid' => 'posix/posix.php', + 'posix_getppid' => 'posix/posix.php', + 'posix_getpwnam' => 'posix/posix.php', + 'posix_getpwuid' => 'posix/posix.php', + 'posix_getrlimit' => 'posix/posix.php', + 'posix_getsid' => 'posix/posix.php', + 'posix_getuid' => 'posix/posix.php', + 'posix_initgroups' => 'posix/posix.php', + 'posix_isatty' => 'posix/posix.php', + 'posix_kill' => 'posix/posix.php', + 'posix_mkfifo' => 'posix/posix.php', + 'posix_mknod' => 'posix/posix.php', + 'posix_setegid' => 'posix/posix.php', + 'posix_seteuid' => 'posix/posix.php', + 'posix_setgid' => 'posix/posix.php', + 'posix_setpgid' => 'posix/posix.php', + 'posix_setrlimit' => 'posix/posix.php', + 'posix_setsid' => 'posix/posix.php', + 'posix_setuid' => 'posix/posix.php', + 'posix_strerror' => 'posix/posix.php', + 'posix_sysconf' => 'posix/posix.php', + 'posix_times' => 'posix/posix.php', + 'posix_ttyname' => 'posix/posix.php', + 'posix_uname' => 'posix/posix.php', + 'pow' => 'standard/standard_3.php', + 'preg_filter' => 'pcre/pcre.php', + 'preg_grep' => 'pcre/pcre.php', + 'preg_last_error' => 'pcre/pcre.php', + 'preg_last_error_msg' => 'pcre/pcre.php', + 'preg_match' => 'pcre/pcre.php', + 'preg_match_all' => 'pcre/pcre.php', + 'preg_quote' => 'pcre/pcre.php', + 'preg_replace' => 'pcre/pcre.php', + 'preg_replace_callback' => 'pcre/pcre.php', + 'preg_replace_callback_array' => 'pcre/pcre.php', + 'preg_split' => 'pcre/pcre.php', + 'prev' => 'standard/standard_8.php', + 'print_r' => 'standard/standard_4.php', + 'printf' => 'standard/standard_2.php', + 'proc_close' => 'standard/standard_2.php', + 'proc_get_status' => 'standard/standard_2.php', + 'proc_nice' => 'standard/standard_2.php', + 'proc_open' => 'standard/standard_2.php', + 'proc_terminate' => 'standard/standard_2.php', + 'property_exists' => 'Core/Core.php', + 'pspell_add_to_personal' => 'pspell/pspell.php', + 'pspell_add_to_session' => 'pspell/pspell.php', + 'pspell_check' => 'pspell/pspell.php', + 'pspell_clear_session' => 'pspell/pspell.php', + 'pspell_config_create' => 'pspell/pspell.php', + 'pspell_config_data_dir' => 'pspell/pspell.php', + 'pspell_config_dict_dir' => 'pspell/pspell.php', + 'pspell_config_ignore' => 'pspell/pspell.php', + 'pspell_config_mode' => 'pspell/pspell.php', + 'pspell_config_personal' => 'pspell/pspell.php', + 'pspell_config_repl' => 'pspell/pspell.php', + 'pspell_config_runtogether' => 'pspell/pspell.php', + 'pspell_config_save_repl' => 'pspell/pspell.php', + 'pspell_new' => 'pspell/pspell.php', + 'pspell_new_config' => 'pspell/pspell.php', + 'pspell_new_personal' => 'pspell/pspell.php', + 'pspell_save_wordlist' => 'pspell/pspell.php', + 'pspell_store_replacement' => 'pspell/pspell.php', + 'pspell_suggest' => 'pspell/pspell.php', + 'putenv' => 'standard/standard_3.php', + 'quoted_printable_decode' => 'standard/standard_3.php', + 'quoted_printable_encode' => 'standard/standard_3.php', + 'quotemeta' => 'standard/standard_1.php', + 'rad2deg' => 'standard/standard_3.php', + 'radius_acct_open' => 'radius/radius.php', + 'radius_add_server' => 'radius/radius.php', + 'radius_auth_open' => 'radius/radius.php', + 'radius_close' => 'radius/radius.php', + 'radius_config' => 'radius/radius.php', + 'radius_create_request' => 'radius/radius.php', + 'rand' => 'random/random.php', + 'random_bytes' => 'random/random.php', + 'random_int' => 'random/random.php', + 'range' => 'standard/standard_8.php', + 'rawurldecode' => 'standard/standard_2.php', + 'rawurlencode' => 'standard/standard_2.php', + 'rd_kafka_err2str' => 'rdkafka/functions.php', + 'rd_kafka_errno' => 'rdkafka/functions.php', + 'rd_kafka_errno2err' => 'rdkafka/functions.php', + 'rd_kafka_get_err_descs' => 'rdkafka/functions.php', + 'rd_kafka_offset_tail' => 'rdkafka/functions.php', + 'rd_kafka_thread_cnt' => 'rdkafka/functions.php', + 'read_exif_data' => 'exif/exif.php', + 'readdir' => 'standard/standard_7.php', + 'readfile' => 'standard/standard_5.php', + 'readgzfile' => 'zlib/zlib.php', + 'readline' => 'readline/readline.php', + 'readline_add_history' => 'readline/readline.php', + 'readline_callback_handler_install' => 'readline/readline.php', + 'readline_callback_handler_remove' => 'readline/readline.php', + 'readline_callback_read_char' => 'readline/readline.php', + 'readline_clear_history' => 'readline/readline.php', + 'readline_completion_function' => 'readline/readline.php', + 'readline_info' => 'readline/readline.php', + 'readline_list_history' => 'readline/readline.php', + 'readline_on_new_line' => 'readline/readline.php', + 'readline_read_history' => 'readline/readline.php', + 'readline_redisplay' => 'readline/readline.php', + 'readline_write_history' => 'readline/readline.php', + 'readlink' => 'standard/standard_2.php', + 'realpath' => 'standard/standard_6.php', + 'realpath_cache_get' => 'standard/standard_9.php', + 'realpath_cache_size' => 'standard/standard_9.php', + 'recode' => 'recode/recode.php', + 'recode_file' => 'recode/recode.php', + 'recode_string' => 'recode/recode.php', + 'register_event_handler' => 'zend/zend.php', + 'register_shutdown_function' => 'standard/standard_4.php', + 'register_tick_function' => 'standard/standard_4.php', + 'rename' => 'standard/standard_5.php', + 'reset' => 'standard/standard_8.php', + 'resourcebundle_count' => 'intl/intl.php', + 'resourcebundle_create' => 'intl/intl.php', + 'resourcebundle_get' => 'intl/intl.php', + 'resourcebundle_get_error_code' => 'intl/intl.php', + 'resourcebundle_get_error_message' => 'intl/intl.php', + 'resourcebundle_locales' => 'intl/intl.php', + 'restore_error_handler' => 'Core/Core.php', + 'restore_exception_handler' => 'Core/Core.php', + 'restore_include_path' => 'standard/standard_4.php', + 'rewind' => 'standard/standard_5.php', + 'rewinddir' => 'standard/standard_7.php', + 'rmdir' => 'standard/standard_5.php', + 'round' => 'standard/standard_3.php', + 'rpmaddtag' => 'rpminfo/rpminfo.php', + 'rpmdbinfo' => 'rpminfo/rpminfo.php', + 'rpmdbsearch' => 'rpminfo/rpminfo.php', + 'rpminfo' => 'rpminfo/rpminfo.php', + 'rpmvercmp' => 'rpminfo/rpminfo.php', + 'rrd_create' => 'rrd/rrd.php', + 'rrd_disconnect' => 'rrd/rrd.php', + 'rrd_error' => 'rrd/rrd.php', + 'rrd_fetch' => 'rrd/rrd.php', + 'rrd_first' => 'rrd/rrd.php', + 'rrd_graph' => 'rrd/rrd.php', + 'rrd_info' => 'rrd/rrd.php', + 'rrd_last' => 'rrd/rrd.php', + 'rrd_lastupdate' => 'rrd/rrd.php', + 'rrd_restore' => 'rrd/rrd.php', + 'rrd_tune' => 'rrd/rrd.php', + 'rrd_update' => 'rrd/rrd.php', + 'rrd_version' => 'rrd/rrd.php', + 'rrd_xport' => 'rrd/rrd.php', + 'rrdc_disconnect' => 'rrd/rrd.php', + 'rsort' => 'standard/standard_8.php', + 'rtrim' => 'standard/standard_1.php', + 'sapi_windows_cp_conv' => 'standard/basic.php', + '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', + 'sem_get' => 'sysvsem/sysvsem.php', + 'sem_release' => 'sysvsem/sysvsem.php', + 'sem_remove' => 'sysvsem/sysvsem.php', + 'serialize' => 'standard/standard_4.php', + 'session_abort' => 'session/session.php', + 'session_cache_expire' => 'session/session.php', + 'session_cache_limiter' => 'session/session.php', + 'session_commit' => 'session/session.php', + 'session_create_id' => 'session/session.php', + 'session_decode' => 'session/session.php', + 'session_destroy' => 'session/session.php', + 'session_encode' => 'session/session.php', + 'session_gc' => 'session/session.php', + 'session_get_cookie_params' => 'session/session.php', + 'session_id' => 'session/session.php', + 'session_is_registered' => 'session/session.php', + 'session_module_name' => 'session/session.php', + 'session_name' => 'session/session.php', + 'session_regenerate_id' => 'session/session.php', + 'session_register' => 'session/session.php', + 'session_register_shutdown' => 'session/session.php', + 'session_reset' => 'session/session.php', + 'session_save_path' => 'session/session.php', + 'session_set_cookie_params' => 'session/session.php', + 'session_set_save_handler' => 'session/session.php', + 'session_start' => 'session/session.php', + 'session_status' => 'session/session.php', + 'session_unregister' => 'session/session.php', + 'session_unset' => 'session/session.php', + 'session_write_close' => 'session/session.php', + 'set_error_handler' => 'Core/Core.php', + 'set_exception_handler' => 'Core/Core.php', + 'set_file_buffer' => 'standard/standard_6.php', + 'set_include_path' => 'standard/standard_4.php', + 'set_job_failed' => 'zend/zend_f.php', + 'set_magic_quotes_runtime' => 'standard/standard_3.php', + 'set_socket_blocking' => 'standard/standard_6.php', + 'set_time_limit' => 'standard/standard_3.php', + 'setcookie' => 'standard/standard_4.php', + 'setlocale' => 'standard/standard_1.php', + 'setrawcookie' => 'standard/standard_4.php', + 'settype' => 'standard/standard_5.php', + 'sha1' => 'standard/standard_0.php', + 'sha1_file' => 'standard/standard_0.php', + 'shell_exec' => 'standard/standard_2.php', + 'shm_attach' => 'sysvshm/sysvshm.php', + 'shm_detach' => 'sysvshm/sysvshm.php', + 'shm_get_var' => 'sysvshm/sysvshm.php', + 'shm_has_var' => 'sysvshm/sysvshm.php', + 'shm_put_var' => 'sysvshm/sysvshm.php', + 'shm_remove' => 'sysvshm/sysvshm.php', + 'shm_remove_var' => 'sysvshm/sysvshm.php', + 'shmop_close' => 'shmop/shmop.php', + 'shmop_delete' => 'shmop/shmop.php', + 'shmop_open' => 'shmop/shmop.php', + 'shmop_read' => 'shmop/shmop.php', + 'shmop_size' => 'shmop/shmop.php', + 'shmop_write' => 'shmop/shmop.php', + 'show_source' => 'standard/standard_4.php', + 'shuffle' => 'standard/standard_8.php', + 'simdjson_decode' => 'simdjson/simdjson.php', + 'simdjson_is_valid' => 'simdjson/simdjson.php', + 'simdjson_key_count' => 'simdjson/simdjson.php', + 'simdjson_key_exists' => 'simdjson/simdjson.php', + 'simdjson_key_value' => 'simdjson/simdjson.php', + 'similar_text' => 'standard/standard_1.php', + 'simplexml_import_dom' => 'SimpleXML/SimpleXML.php', + 'simplexml_load_file' => 'SimpleXML/SimpleXML.php', + 'simplexml_load_string' => 'SimpleXML/SimpleXML.php', + 'sin' => 'standard/standard_3.php', + 'sinh' => 'standard/standard_3.php', + 'sizeof' => 'standard/standard_9.php', + 'sleep' => 'standard/standard_0.php', + 'snappy_compress' => 'snappy/snappy/snappy.php', + 'snappy_uncompress' => 'snappy/snappy/snappy.php', + 'snmp2_get' => 'snmp/snmp.php', + 'snmp2_getnext' => 'snmp/snmp.php', + 'snmp2_real_walk' => 'snmp/snmp.php', + 'snmp2_set' => 'snmp/snmp.php', + 'snmp2_walk' => 'snmp/snmp.php', + 'snmp3_get' => 'snmp/snmp.php', + 'snmp3_getnext' => 'snmp/snmp.php', + 'snmp3_real_walk' => 'snmp/snmp.php', + 'snmp3_set' => 'snmp/snmp.php', + 'snmp3_walk' => 'snmp/snmp.php', + 'snmp_get_quick_print' => 'snmp/snmp.php', + 'snmp_get_valueretrieval' => 'snmp/snmp.php', + 'snmp_read_mib' => 'snmp/snmp.php', + 'snmp_set_enum_print' => 'snmp/snmp.php', + 'snmp_set_oid_numeric_print' => 'snmp/snmp.php', + 'snmp_set_oid_output_format' => 'snmp/snmp.php', + 'snmp_set_quick_print' => 'snmp/snmp.php', + 'snmp_set_valueretrieval' => 'snmp/snmp.php', + 'snmpget' => 'snmp/snmp.php', + 'snmpgetnext' => 'snmp/snmp.php', + 'snmprealwalk' => 'snmp/snmp.php', + 'snmpset' => 'snmp/snmp.php', + 'snmpwalk' => 'snmp/snmp.php', + 'snmpwalkoid' => 'snmp/snmp.php', + 'socket_accept' => 'sockets/sockets.php', + 'socket_addrinfo_bind' => 'sockets/sockets.php', + 'socket_addrinfo_connect' => 'sockets/sockets.php', + 'socket_addrinfo_explain' => 'sockets/sockets.php', + 'socket_addrinfo_lookup' => 'sockets/sockets.php', + 'socket_atmark' => 'sockets/sockets.php', + 'socket_bind' => 'sockets/sockets.php', + 'socket_clear_error' => 'sockets/sockets.php', + 'socket_close' => 'sockets/sockets.php', + 'socket_cmsg_space' => 'sockets/sockets.php', + 'socket_connect' => 'sockets/sockets.php', + 'socket_create' => 'sockets/sockets.php', + 'socket_create_listen' => 'sockets/sockets.php', + 'socket_create_pair' => 'sockets/sockets.php', + 'socket_export_stream' => 'sockets/sockets.php', + 'socket_get_option' => 'sockets/sockets.php', + 'socket_get_status' => 'standard/standard_6.php', + 'socket_getopt' => 'sockets/sockets.php', + 'socket_getpeername' => 'sockets/sockets.php', + 'socket_getsockname' => 'sockets/sockets.php', + 'socket_import_stream' => 'sockets/sockets.php', + 'socket_last_error' => 'sockets/sockets.php', + 'socket_listen' => 'sockets/sockets.php', + 'socket_read' => 'sockets/sockets.php', + 'socket_recv' => 'sockets/sockets.php', + 'socket_recvfrom' => 'sockets/sockets.php', + 'socket_recvmsg' => 'sockets/sockets.php', + 'socket_select' => 'sockets/sockets.php', + 'socket_send' => 'sockets/sockets.php', + 'socket_sendmsg' => 'sockets/sockets.php', + 'socket_sendto' => 'sockets/sockets.php', + 'socket_set_block' => 'sockets/sockets.php', + 'socket_set_blocking' => 'standard/standard_6.php', + 'socket_set_nonblock' => 'sockets/sockets.php', + 'socket_set_option' => 'sockets/sockets.php', + 'socket_set_timeout' => 'standard/standard_6.php', + 'socket_setopt' => 'sockets/sockets.php', + 'socket_shutdown' => 'sockets/sockets.php', + 'socket_strerror' => 'sockets/sockets.php', + 'socket_write' => 'sockets/sockets.php', + 'socket_wsaprotocol_info_export' => 'sockets/sockets.php', + 'socket_wsaprotocol_info_import' => 'sockets/sockets.php', + 'socket_wsaprotocol_info_release' => 'sockets/sockets.php', + 'sodium_add' => 'sodium/sodium.php', + 'sodium_base642bin' => 'sodium/sodium.php', + 'sodium_bin2base64' => 'sodium/sodium.php', + 'sodium_bin2hex' => 'sodium/sodium.php', + 'sodium_compare' => 'sodium/sodium.php', + 'sodium_crypto_aead_aes256gcm_decrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_aes256gcm_encrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_aes256gcm_is_available' => 'sodium/sodium.php', + 'sodium_crypto_aead_aes256gcm_keygen' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_decrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_encrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_ietf_decrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_ietf_encrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_ietf_keygen' => 'sodium/sodium.php', + 'sodium_crypto_aead_chacha20poly1305_keygen' => 'sodium/sodium.php', + 'sodium_crypto_aead_xchacha20poly1305_ietf_decrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_xchacha20poly1305_ietf_encrypt' => 'sodium/sodium.php', + 'sodium_crypto_aead_xchacha20poly1305_ietf_keygen' => 'sodium/sodium.php', + 'sodium_crypto_auth' => 'sodium/sodium.php', + 'sodium_crypto_auth_keygen' => 'sodium/sodium.php', + 'sodium_crypto_auth_verify' => 'sodium/sodium.php', + 'sodium_crypto_box' => 'sodium/sodium.php', + 'sodium_crypto_box_keypair' => 'sodium/sodium.php', + 'sodium_crypto_box_keypair_from_secretkey_and_publickey' => 'sodium/sodium.php', + 'sodium_crypto_box_open' => 'sodium/sodium.php', + 'sodium_crypto_box_publickey' => 'sodium/sodium.php', + 'sodium_crypto_box_publickey_from_secretkey' => 'sodium/sodium.php', + 'sodium_crypto_box_seal' => 'sodium/sodium.php', + 'sodium_crypto_box_seal_open' => 'sodium/sodium.php', + 'sodium_crypto_box_secretkey' => 'sodium/sodium.php', + 'sodium_crypto_box_seed_keypair' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_add' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_from_hash' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_is_valid_point' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_random' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_add' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_complement' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_invert' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_mul' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_negate' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_random' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_reduce' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_scalar_sub' => 'sodium/sodium.php', + 'sodium_crypto_core_ristretto255_sub' => 'sodium/sodium.php', + 'sodium_crypto_generichash' => 'sodium/sodium.php', + 'sodium_crypto_generichash_final' => 'sodium/sodium.php', + 'sodium_crypto_generichash_init' => 'sodium/sodium.php', + 'sodium_crypto_generichash_keygen' => 'sodium/sodium.php', + 'sodium_crypto_generichash_update' => 'sodium/sodium.php', + 'sodium_crypto_kdf_derive_from_key' => 'sodium/sodium.php', + 'sodium_crypto_kdf_keygen' => 'sodium/sodium.php', + 'sodium_crypto_kx' => 'sodium/sodium.php', + 'sodium_crypto_kx_client_session_keys' => 'sodium/sodium.php', + 'sodium_crypto_kx_keypair' => 'sodium/sodium.php', + 'sodium_crypto_kx_publickey' => 'sodium/sodium.php', + 'sodium_crypto_kx_secretkey' => 'sodium/sodium.php', + 'sodium_crypto_kx_seed_keypair' => 'sodium/sodium.php', + 'sodium_crypto_kx_server_session_keys' => 'sodium/sodium.php', + 'sodium_crypto_pwhash' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_scryptsalsa208sha256' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_scryptsalsa208sha256_str' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_scryptsalsa208sha256_str_verify' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_str' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_str_needs_rehash' => 'sodium/sodium.php', + 'sodium_crypto_pwhash_str_verify' => 'sodium/sodium.php', + 'sodium_crypto_scalarmult' => 'sodium/sodium.php', + 'sodium_crypto_scalarmult_base' => 'sodium/sodium.php', + 'sodium_crypto_scalarmult_ristretto255' => 'sodium/sodium.php', + 'sodium_crypto_scalarmult_ristretto255_base' => 'sodium/sodium.php', + 'sodium_crypto_secretbox' => 'sodium/sodium.php', + 'sodium_crypto_secretbox_keygen' => 'sodium/sodium.php', + 'sodium_crypto_secretbox_open' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_init_pull' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_init_push' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_keygen' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_pull' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_push' => 'sodium/sodium.php', + 'sodium_crypto_secretstream_xchacha20poly1305_rekey' => 'sodium/sodium.php', + 'sodium_crypto_shorthash' => 'sodium/sodium.php', + 'sodium_crypto_shorthash_keygen' => 'sodium/sodium.php', + 'sodium_crypto_sign' => 'sodium/sodium.php', + 'sodium_crypto_sign_detached' => 'sodium/sodium.php', + 'sodium_crypto_sign_ed25519_pk_to_curve25519' => 'sodium/sodium.php', + 'sodium_crypto_sign_ed25519_sk_to_curve25519' => 'sodium/sodium.php', + 'sodium_crypto_sign_keypair' => 'sodium/sodium.php', + 'sodium_crypto_sign_keypair_from_secretkey_and_publickey' => 'sodium/sodium.php', + 'sodium_crypto_sign_open' => 'sodium/sodium.php', + 'sodium_crypto_sign_publickey' => 'sodium/sodium.php', + 'sodium_crypto_sign_publickey_from_secretkey' => 'sodium/sodium.php', + 'sodium_crypto_sign_secretkey' => 'sodium/sodium.php', + 'sodium_crypto_sign_seed_keypair' => 'sodium/sodium.php', + 'sodium_crypto_sign_verify_detached' => 'sodium/sodium.php', + 'sodium_crypto_stream' => 'sodium/sodium.php', + 'sodium_crypto_stream_keygen' => 'sodium/sodium.php', + 'sodium_crypto_stream_xchacha20' => 'sodium/sodium.php', + 'sodium_crypto_stream_xchacha20_keygen' => 'sodium/sodium.php', + 'sodium_crypto_stream_xchacha20_xor' => 'sodium/sodium.php', + 'sodium_crypto_stream_xchacha20_xor_ic' => 'sodium/sodium.php', + 'sodium_crypto_stream_xor' => 'sodium/sodium.php', + 'sodium_hex2bin' => 'sodium/sodium.php', + 'sodium_increment' => 'sodium/sodium.php', + 'sodium_library_version_major' => 'sodium/sodium.php', + 'sodium_library_version_minor' => 'sodium/sodium.php', + 'sodium_memcmp' => 'sodium/sodium.php', + 'sodium_memzero' => 'sodium/sodium.php', + 'sodium_pad' => 'sodium/sodium.php', + 'sodium_randombytes_buf' => 'sodium/sodium.php', + 'sodium_randombytes_random16' => 'sodium/sodium.php', + 'sodium_randombytes_uniform' => 'sodium/sodium.php', + 'sodium_unpad' => 'sodium/sodium.php', + 'sodium_version_string' => 'sodium/sodium.php', + 'solr_get_version' => 'solr/functions.php', + 'sort' => 'standard/standard_8.php', + 'soundex' => 'standard/standard_2.php', + 'spl_autoload' => 'SPL/SPL_f.php', + 'spl_autoload_call' => 'SPL/SPL_f.php', + 'spl_autoload_extensions' => 'SPL/SPL_f.php', + 'spl_autoload_functions' => 'SPL/SPL_f.php', + 'spl_autoload_register' => 'SPL/SPL_f.php', + 'spl_autoload_unregister' => 'SPL/SPL_f.php', + 'spl_classes' => 'SPL/SPL_f.php', + 'spl_object_hash' => 'SPL/SPL_f.php', + 'spl_object_id' => 'SPL/SPL_f.php', + 'split' => 'regex/ereg.php', + 'spliti' => 'regex/ereg.php', + 'sprintf' => 'standard/standard_2.php', + 'sql_regcase' => 'regex/ereg.php', + 'sqlite_array_query' => 'SQLite/SQLite.php', + 'sqlite_busy_timeout' => 'SQLite/SQLite.php', + 'sqlite_changes' => 'SQLite/SQLite.php', + 'sqlite_close' => 'SQLite/SQLite.php', + 'sqlite_column' => 'SQLite/SQLite.php', + 'sqlite_create_aggregate' => 'SQLite/SQLite.php', + 'sqlite_create_function' => 'SQLite/SQLite.php', + 'sqlite_current' => 'SQLite/SQLite.php', + 'sqlite_error_string' => 'SQLite/SQLite.php', + 'sqlite_escape_string' => 'SQLite/SQLite.php', + 'sqlite_exec' => 'SQLite/SQLite.php', + 'sqlite_factory' => 'SQLite/SQLite.php', + 'sqlite_fetch_all' => 'SQLite/SQLite.php', + 'sqlite_fetch_array' => 'SQLite/SQLite.php', + 'sqlite_fetch_column_types' => 'SQLite/SQLite.php', + 'sqlite_fetch_object' => 'SQLite/SQLite.php', + 'sqlite_fetch_single' => 'SQLite/SQLite.php', + 'sqlite_fetch_string' => 'SQLite/SQLite.php', + 'sqlite_field_name' => 'SQLite/SQLite.php', + 'sqlite_has_more' => 'SQLite/SQLite.php', + 'sqlite_has_prev' => 'SQLite/SQLite.php', + 'sqlite_last_error' => 'SQLite/SQLite.php', + 'sqlite_last_insert_rowid' => 'SQLite/SQLite.php', + 'sqlite_libencoding' => 'SQLite/SQLite.php', + 'sqlite_libversion' => 'SQLite/SQLite.php', + 'sqlite_next' => 'SQLite/SQLite.php', + 'sqlite_num_fields' => 'SQLite/SQLite.php', + 'sqlite_num_rows' => 'SQLite/SQLite.php', + 'sqlite_open' => 'SQLite/SQLite.php', + 'sqlite_popen' => 'SQLite/SQLite.php', + 'sqlite_prev' => 'SQLite/SQLite.php', + 'sqlite_query' => 'SQLite/SQLite.php', + 'sqlite_rewind' => 'SQLite/SQLite.php', + 'sqlite_seek' => 'SQLite/SQLite.php', + 'sqlite_single_query' => 'SQLite/SQLite.php', + 'sqlite_udf_decode_binary' => 'SQLite/SQLite.php', + 'sqlite_udf_encode_binary' => 'SQLite/SQLite.php', + 'sqlite_unbuffered_query' => 'SQLite/SQLite.php', + 'sqlite_valid' => 'SQLite/SQLite.php', + 'sqlsrv_begin_transaction' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_cancel' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_client_info' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_close' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_commit' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_configure' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_connect' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_errors' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_execute' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_fetch' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_fetch_array' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_fetch_object' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_field_metadata' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_free_stmt' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_get_config' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_get_field' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_has_rows' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_next_result' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_num_fields' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_num_rows' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_prepare' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_query' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_rollback' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_rows_affected' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_send_stream_data' => 'sqlsrv/sqlsrv.php', + 'sqlsrv_server_info' => 'sqlsrv/sqlsrv.php', + 'sqrt' => 'standard/standard_3.php', + 'srand' => 'random/random.php', + 'sscanf' => 'standard/standard_2.php', + 'ssh2_auth_agent' => 'ssh2/ssh2.php', + 'ssh2_auth_hostbased_file' => 'ssh2/ssh2.php', + 'ssh2_auth_none' => 'ssh2/ssh2.php', + 'ssh2_auth_password' => 'ssh2/ssh2.php', + 'ssh2_auth_pubkey_file' => 'ssh2/ssh2.php', + 'ssh2_connect' => 'ssh2/ssh2.php', + 'ssh2_disconnect' => 'ssh2/ssh2.php', + 'ssh2_exec' => 'ssh2/ssh2.php', + 'ssh2_fetch_stream' => 'ssh2/ssh2.php', + 'ssh2_fingerprint' => 'ssh2/ssh2.php', + 'ssh2_forward_accept' => 'ssh2/ssh2.php', + 'ssh2_forward_listen' => 'ssh2/ssh2.php', + 'ssh2_methods_negotiated' => 'ssh2/ssh2.php', + 'ssh2_poll' => 'ssh2/ssh2.php', + 'ssh2_publickey_add' => 'ssh2/ssh2.php', + 'ssh2_publickey_init' => 'ssh2/ssh2.php', + 'ssh2_publickey_list' => 'ssh2/ssh2.php', + 'ssh2_publickey_remove' => 'ssh2/ssh2.php', + 'ssh2_scp_recv' => 'ssh2/ssh2.php', + 'ssh2_scp_send' => 'ssh2/ssh2.php', + 'ssh2_send_eof' => 'ssh2/ssh2.php', + 'ssh2_sftp' => 'ssh2/ssh2.php', + 'ssh2_sftp_chmod' => 'ssh2/ssh2.php', + 'ssh2_sftp_lstat' => 'ssh2/ssh2.php', + 'ssh2_sftp_mkdir' => 'ssh2/ssh2.php', + 'ssh2_sftp_readlink' => 'ssh2/ssh2.php', + 'ssh2_sftp_realpath' => 'ssh2/ssh2.php', + 'ssh2_sftp_rename' => 'ssh2/ssh2.php', + 'ssh2_sftp_rmdir' => 'ssh2/ssh2.php', + 'ssh2_sftp_stat' => 'ssh2/ssh2.php', + 'ssh2_sftp_symlink' => 'ssh2/ssh2.php', + 'ssh2_sftp_unlink' => 'ssh2/ssh2.php', + 'ssh2_shell' => 'ssh2/ssh2.php', + 'ssh2_tunnel' => 'ssh2/ssh2.php', + 'stat' => 'standard/standard_7.php', + 'stats_absolute_deviation' => 'stats/stats.php', + 'stats_cdf_beta' => 'stats/stats.php', + 'stats_cdf_binomial' => 'stats/stats.php', + 'stats_cdf_cauchy' => 'stats/stats.php', + 'stats_cdf_chisquare' => 'stats/stats.php', + 'stats_cdf_exponential' => 'stats/stats.php', + 'stats_cdf_f' => 'stats/stats.php', + 'stats_cdf_gamma' => 'stats/stats.php', + 'stats_cdf_laplace' => 'stats/stats.php', + 'stats_cdf_logistic' => 'stats/stats.php', + 'stats_cdf_negative_binomial' => 'stats/stats.php', + 'stats_cdf_noncentral_chisquare' => 'stats/stats.php', + 'stats_cdf_noncentral_f' => 'stats/stats.php', + 'stats_cdf_noncentral_t' => 'stats/stats.php', + 'stats_cdf_normal' => 'stats/stats.php', + 'stats_cdf_poisson' => 'stats/stats.php', + 'stats_cdf_t' => 'stats/stats.php', + 'stats_cdf_uniform' => 'stats/stats.php', + 'stats_cdf_weibull' => 'stats/stats.php', + 'stats_covariance' => 'stats/stats.php', + 'stats_dens_beta' => 'stats/stats.php', + 'stats_dens_cauchy' => 'stats/stats.php', + 'stats_dens_chisquare' => 'stats/stats.php', + 'stats_dens_exponential' => 'stats/stats.php', + 'stats_dens_f' => 'stats/stats.php', + 'stats_dens_gamma' => 'stats/stats.php', + 'stats_dens_laplace' => 'stats/stats.php', + 'stats_dens_logistic' => 'stats/stats.php', + 'stats_dens_normal' => 'stats/stats.php', + 'stats_dens_pmf_binomial' => 'stats/stats.php', + 'stats_dens_pmf_hypergeometric' => 'stats/stats.php', + 'stats_dens_pmf_negative_binomial' => 'stats/stats.php', + 'stats_dens_pmf_poisson' => 'stats/stats.php', + 'stats_dens_t' => 'stats/stats.php', + 'stats_dens_uniform' => 'stats/stats.php', + 'stats_dens_weibull' => 'stats/stats.php', + 'stats_harmonic_mean' => 'stats/stats.php', + 'stats_kurtosis' => 'stats/stats.php', + 'stats_rand_gen_beta' => 'stats/stats.php', + 'stats_rand_gen_chisquare' => 'stats/stats.php', + 'stats_rand_gen_exponential' => 'stats/stats.php', + 'stats_rand_gen_f' => 'stats/stats.php', + 'stats_rand_gen_funiform' => 'stats/stats.php', + 'stats_rand_gen_gamma' => 'stats/stats.php', + 'stats_rand_gen_ibinomial' => 'stats/stats.php', + 'stats_rand_gen_ibinomial_negative' => 'stats/stats.php', + 'stats_rand_gen_int' => 'stats/stats.php', + 'stats_rand_gen_ipoisson' => 'stats/stats.php', + 'stats_rand_gen_iuniform' => 'stats/stats.php', + 'stats_rand_gen_noncentral_f' => 'stats/stats.php', + 'stats_rand_gen_noncentral_t' => 'stats/stats.php', + 'stats_rand_gen_normal' => 'stats/stats.php', + 'stats_rand_gen_t' => 'stats/stats.php', + 'stats_rand_get_seeds' => 'stats/stats.php', + 'stats_rand_phrase_to_seeds' => 'stats/stats.php', + 'stats_rand_ranf' => 'stats/stats.php', + 'stats_rand_setall' => 'stats/stats.php', + 'stats_skew' => 'stats/stats.php', + 'stats_standard_deviation' => 'stats/stats.php', + 'stats_stat_binomial_coef' => 'stats/stats.php', + 'stats_stat_correlation' => 'stats/stats.php', + 'stats_stat_factorial' => 'stats/stats.php', + 'stats_stat_independent_t' => 'stats/stats.php', + 'stats_stat_innerproduct' => 'stats/stats.php', + 'stats_stat_paired_t' => 'stats/stats.php', + 'stats_stat_percentile' => 'stats/stats.php', + 'stats_stat_powersum' => 'stats/stats.php', + 'stats_variance' => 'stats/stats.php', + 'stomp_abort' => 'stomp/stomp.php', + 'stomp_ack' => 'stomp/stomp.php', + 'stomp_begin' => 'stomp/stomp.php', + 'stomp_close' => 'stomp/stomp.php', + 'stomp_commit' => 'stomp/stomp.php', + 'stomp_connect' => 'stomp/stomp.php', + 'stomp_error' => 'stomp/stomp.php', + 'stomp_get_session_id' => 'stomp/stomp.php', + 'stomp_get_timeout' => 'stomp/stomp.php', + 'stomp_has_frame' => 'stomp/stomp.php', + 'stomp_read_frame' => 'stomp/stomp.php', + 'stomp_send' => 'stomp/stomp.php', + 'stomp_set_timeout' => 'stomp/stomp.php', + 'stomp_subscribe' => 'stomp/stomp.php', + 'stomp_unsubscribe' => 'stomp/stomp.php', + 'stomp_version' => 'stomp/stomp.php', + 'str_contains' => 'Core/Core.php', + 'str_decrement' => 'Core/Core.php', + 'str_ends_with' => 'Core/Core.php', + 'str_getcsv' => 'standard/standard_2.php', + 'str_increment' => 'Core/Core.php', + 'str_ireplace' => 'standard/standard_1.php', + 'str_pad' => 'standard/standard_2.php', + 'str_repeat' => 'standard/standard_1.php', + 'str_replace' => 'standard/standard_1.php', + 'str_rot13' => 'standard/standard_9.php', + 'str_shuffle' => 'standard/standard_1.php', + 'str_split' => 'standard/standard_1.php', + 'str_starts_with' => 'Core/Core.php', + 'str_word_count' => 'standard/standard_1.php', + 'strcasecmp' => 'Core/Core.php', + 'strchr' => 'standard/standard_2.php', + 'strcmp' => 'Core/Core.php', + 'strcoll' => 'standard/standard_1.php', + 'strcspn' => 'standard/standard_0.php', + 'stream_bucket_append' => 'standard/standard_9.php', + 'stream_bucket_make_writeable' => 'standard/standard_9.php', + 'stream_bucket_new' => 'standard/standard_9.php', + 'stream_bucket_prepend' => 'standard/standard_9.php', + 'stream_context_create' => 'standard/standard_6.php', + 'stream_context_get_default' => 'standard/standard_6.php', + 'stream_context_get_options' => 'standard/standard_6.php', + 'stream_context_get_params' => 'standard/standard_6.php', + 'stream_context_set_default' => 'standard/standard_6.php', + 'stream_context_set_option' => 'standard/standard_6.php', + 'stream_context_set_options' => 'standard/standard_6.php', + 'stream_context_set_params' => 'standard/standard_6.php', + 'stream_copy_to_stream' => 'standard/standard_6.php', + 'stream_filter_append' => 'standard/standard_6.php', + 'stream_filter_prepend' => 'standard/standard_6.php', + 'stream_filter_register' => 'standard/standard_9.php', + 'stream_filter_remove' => 'standard/standard_6.php', + 'stream_get_contents' => 'standard/standard_6.php', + 'stream_get_filters' => 'standard/standard_9.php', + 'stream_get_line' => 'standard/standard_6.php', + 'stream_get_meta_data' => 'standard/standard_6.php', + 'stream_get_transports' => 'standard/standard_6.php', + 'stream_get_wrappers' => 'standard/standard_6.php', + 'stream_is_local' => 'standard/standard_6.php', + 'stream_isatty' => 'standard/standard_9.php', + 'stream_register_wrapper' => 'standard/standard_6.php', + 'stream_resolve_include_path' => 'standard/standard_6.php', + 'stream_select' => 'standard/standard_6.php', + 'stream_set_blocking' => 'standard/standard_6.php', + 'stream_set_chunk_size' => 'standard/standard_8.php', + 'stream_set_read_buffer' => 'standard/standard_6.php', + 'stream_set_timeout' => 'standard/standard_6.php', + 'stream_set_write_buffer' => 'standard/standard_6.php', + 'stream_socket_accept' => 'standard/standard_6.php', + 'stream_socket_client' => 'standard/standard_6.php', + 'stream_socket_enable_crypto' => 'standard/standard_6.php', + 'stream_socket_get_name' => 'standard/standard_6.php', + 'stream_socket_pair' => 'standard/standard_6.php', + 'stream_socket_recvfrom' => 'standard/standard_6.php', + 'stream_socket_sendto' => 'standard/standard_6.php', + 'stream_socket_server' => 'standard/standard_6.php', + 'stream_socket_shutdown' => 'standard/standard_6.php', + 'stream_supports_lock' => 'standard/standard_6.php', + 'stream_wrapper_register' => 'standard/standard_6.php', + 'stream_wrapper_restore' => 'standard/standard_6.php', + 'stream_wrapper_unregister' => 'standard/standard_6.php', + 'strftime' => 'date/date.php', + 'strip_tags' => 'standard/standard_1.php', + 'stripcslashes' => 'standard/standard_1.php', + 'stripos' => 'standard/standard_1.php', + 'stripslashes' => 'standard/standard_1.php', + 'stristr' => 'standard/standard_1.php', + 'strlen' => 'Core/Core.php', + 'strnatcasecmp' => 'standard/standard_0.php', + 'strnatcmp' => 'standard/standard_0.php', + 'strncasecmp' => 'Core/Core.php', + 'strncmp' => 'Core/Core.php', + 'strpbrk' => 'standard/standard_1.php', + 'strpos' => 'standard/standard_1.php', + 'strptime' => 'standard/standard_0.php', + 'strrchr' => 'standard/standard_1.php', + 'strrev' => 'standard/standard_1.php', + 'strripos' => 'standard/standard_1.php', + 'strrpos' => 'standard/standard_1.php', + 'strspn' => 'standard/standard_0.php', + 'strstr' => 'standard/standard_1.php', + 'strtok' => 'standard/standard_0.php', + 'strtolower' => 'standard/standard_1.php', + 'strtotime' => 'date/date.php', + 'strtoupper' => 'standard/standard_1.php', + 'strtr' => 'standard/standard_1.php', + 'strval' => 'standard/standard_5.php', + 'substr' => 'standard/standard_1.php', + 'substr_compare' => 'standard/standard_1.php', + 'substr_count' => 'standard/standard_0.php', + 'substr_replace' => 'standard/standard_1.php', + 'suhosin_encrypt_cookie' => 'suhosin/suhosin.php', + 'suhosin_get_raw_cookies' => 'suhosin/suhosin.php', + 'svn_add' => 'svn/svn.php', + 'svn_auth_get_parameter' => 'svn/svn.php', + 'svn_auth_set_parameter' => 'svn/svn.php', + 'svn_blame' => 'svn/svn.php', + 'svn_cat' => 'svn/svn.php', + 'svn_checkout' => 'svn/svn.php', + 'svn_cleanup' => 'svn/svn.php', + 'svn_client_version' => 'svn/svn.php', + 'svn_commit' => 'svn/svn.php', + 'svn_config_ensure' => 'svn/svn.php', + 'svn_copy' => 'svn/svn.php', + 'svn_delete' => 'svn/svn.php', + 'svn_diff' => 'svn/svn.php', + 'svn_export' => 'svn/svn.php', + 'svn_fs_abort_txn' => 'svn/svn.php', + 'svn_fs_apply_text' => 'svn/svn.php', + 'svn_fs_begin_txn2' => 'svn/svn.php', + 'svn_fs_change_node_prop' => 'svn/svn.php', + 'svn_fs_check_path' => 'svn/svn.php', + 'svn_fs_contents_changed' => 'svn/svn.php', + 'svn_fs_copy' => 'svn/svn.php', + 'svn_fs_delete' => 'svn/svn.php', + 'svn_fs_dir_entries' => 'svn/svn.php', + 'svn_fs_file_contents' => 'svn/svn.php', + 'svn_fs_file_length' => 'svn/svn.php', + 'svn_fs_is_dir' => 'svn/svn.php', + 'svn_fs_is_file' => 'svn/svn.php', + 'svn_fs_make_dir' => 'svn/svn.php', + 'svn_fs_make_file' => 'svn/svn.php', + 'svn_fs_node_created_rev' => 'svn/svn.php', + 'svn_fs_node_prop' => 'svn/svn.php', + 'svn_fs_props_changed' => 'svn/svn.php', + 'svn_fs_revision_prop' => 'svn/svn.php', + 'svn_fs_revision_root' => 'svn/svn.php', + 'svn_fs_txn_root' => 'svn/svn.php', + 'svn_fs_youngest_rev' => 'svn/svn.php', + 'svn_import' => 'svn/svn.php', + 'svn_info' => 'svn/svn.php', + 'svn_lock' => 'svn/svn.php', + 'svn_log' => 'svn/svn.php', + 'svn_ls' => 'svn/svn.php', + 'svn_mkdir' => 'svn/svn.php', + 'svn_move' => 'svn/svn.php', + 'svn_propget' => 'svn/svn.php', + 'svn_proplist' => 'svn/svn.php', + 'svn_repos_create' => 'svn/svn.php', + 'svn_repos_fs' => 'svn/svn.php', + 'svn_repos_fs_begin_txn_for_commit' => 'svn/svn.php', + 'svn_repos_fs_commit_txn' => 'svn/svn.php', + 'svn_repos_hotcopy' => 'svn/svn.php', + 'svn_repos_open' => 'svn/svn.php', + 'svn_repos_recover' => 'svn/svn.php', + 'svn_resolved' => 'svn/svn.php', + 'svn_revert' => 'svn/svn.php', + 'svn_status' => 'svn/svn.php', + 'svn_switch' => 'svn/svn.php', + 'svn_unlock' => 'svn/svn.php', + 'svn_update' => 'svn/svn.php', + 'swoole_async_dns_lookup_coro' => 'swoole/functions.php', + 'swoole_async_set' => 'swoole/functions.php', + 'swoole_clear_dns_cache' => 'swoole/functions.php', + 'swoole_clear_error' => 'swoole/functions.php', + 'swoole_client_select' => 'swoole/functions.php', + 'swoole_coroutine_create' => 'swoole/functions.php', + 'swoole_coroutine_defer' => 'swoole/functions.php', + 'swoole_coroutine_socketpair' => 'swoole/functions.php', + 'swoole_cpu_num' => 'swoole/functions.php', + 'swoole_errno' => 'swoole/functions.php', + 'swoole_error_log' => 'swoole/functions.php', + 'swoole_error_log_ex' => 'swoole/functions.php', + 'swoole_event_add' => 'swoole/functions.php', + 'swoole_event_cycle' => 'swoole/functions.php', + 'swoole_event_defer' => 'swoole/functions.php', + 'swoole_event_del' => 'swoole/functions.php', + 'swoole_event_dispatch' => 'swoole/functions.php', + 'swoole_event_exit' => 'swoole/functions.php', + 'swoole_event_isset' => 'swoole/functions.php', + 'swoole_event_set' => 'swoole/functions.php', + 'swoole_event_wait' => 'swoole/functions.php', + 'swoole_event_write' => 'swoole/functions.php', + 'swoole_get_local_ip' => 'swoole/functions.php', + 'swoole_get_local_mac' => 'swoole/functions.php', + 'swoole_get_mime_type' => 'swoole/functions.php', + 'swoole_get_object_by_handle' => 'swoole/functions.php', + 'swoole_get_objects' => 'swoole/functions.php', + 'swoole_get_vm_status' => 'swoole/functions.php', + 'swoole_hashcode' => 'swoole/functions.php', + 'swoole_ignore_error' => 'swoole/functions.php', + 'swoole_internal_call_user_shutdown_begin' => 'swoole/functions.php', + 'swoole_last_error' => 'swoole/functions.php', + 'swoole_mime_type_add' => 'swoole/functions.php', + 'swoole_mime_type_delete' => 'swoole/functions.php', + 'swoole_mime_type_exists' => 'swoole/functions.php', + 'swoole_mime_type_get' => 'swoole/functions.php', + 'swoole_mime_type_list' => 'swoole/functions.php', + 'swoole_mime_type_set' => 'swoole/functions.php', + 'swoole_select' => 'swoole/functions.php', + 'swoole_set_process_name' => 'swoole/functions.php', + 'swoole_strerror' => 'swoole/functions.php', + 'swoole_substr_json_decode' => 'swoole/functions.php', + 'swoole_substr_unserialize' => 'swoole/functions.php', + 'swoole_test_kernel_coroutine' => 'swoole/functions.php', + 'swoole_timer_after' => 'swoole/functions.php', + 'swoole_timer_clear' => 'swoole/functions.php', + 'swoole_timer_clear_all' => 'swoole/functions.php', + 'swoole_timer_exists' => 'swoole/functions.php', + 'swoole_timer_info' => 'swoole/functions.php', + 'swoole_timer_list' => 'swoole/functions.php', + 'swoole_timer_set' => 'swoole/functions.php', + 'swoole_timer_stats' => 'swoole/functions.php', + 'swoole_timer_tick' => 'swoole/functions.php', + 'swoole_version' => 'swoole/functions.php', + 'sybase_affected_rows' => 'sybase/sybase_ct.php', + 'sybase_close' => 'sybase/sybase_ct.php', + 'sybase_connect' => 'sybase/sybase_ct.php', + 'sybase_data_seek' => 'sybase/sybase_ct.php', + 'sybase_deadlock_retry_count' => 'sybase/sybase_ct.php', + 'sybase_fetch_array' => 'sybase/sybase_ct.php', + 'sybase_fetch_assoc' => 'sybase/sybase_ct.php', + 'sybase_fetch_field' => 'sybase/sybase_ct.php', + 'sybase_fetch_object' => 'sybase/sybase_ct.php', + 'sybase_fetch_row' => 'sybase/sybase_ct.php', + 'sybase_field_seek' => 'sybase/sybase_ct.php', + 'sybase_free_result' => 'sybase/sybase_ct.php', + 'sybase_get_last_message' => 'sybase/sybase_ct.php', + 'sybase_min_client_severity' => 'sybase/sybase_ct.php', + 'sybase_min_server_severity' => 'sybase/sybase_ct.php', + 'sybase_num_fields' => 'sybase/sybase_ct.php', + 'sybase_num_rows' => 'sybase/sybase_ct.php', + 'sybase_pconnect' => 'sybase/sybase_ct.php', + 'sybase_query' => 'sybase/sybase_ct.php', + 'sybase_result' => 'sybase/sybase_ct.php', + 'sybase_select_db' => 'sybase/sybase_ct.php', + 'sybase_set_message_handler' => 'sybase/sybase_ct.php', + 'sybase_unbuffered_query' => 'sybase/sybase_ct.php', + 'symlink' => 'standard/standard_2.php', + 'sys_get_temp_dir' => 'standard/standard_9.php', + 'sys_getloadavg' => 'standard/standard_3.php', + 'syslog' => 'standard/standard_8.php', + 'system' => 'standard/standard_2.php', + 'tan' => 'standard/standard_3.php', + 'tanh' => 'standard/standard_3.php', + 'tempnam' => 'standard/standard_5.php', + 'textdomain' => 'gettext/gettext.php', + 'tidy_access_count' => 'tidy/tidy.php', + 'tidy_clean_repair' => 'tidy/tidy.php', + 'tidy_config_count' => 'tidy/tidy.php', + 'tidy_diagnose' => 'tidy/tidy.php', + 'tidy_error_count' => 'tidy/tidy.php', + 'tidy_get_body' => 'tidy/tidy.php', + 'tidy_get_config' => 'tidy/tidy.php', + 'tidy_get_error_buffer' => 'tidy/tidy.php', + 'tidy_get_head' => 'tidy/tidy.php', + 'tidy_get_html' => 'tidy/tidy.php', + 'tidy_get_html_ver' => 'tidy/tidy.php', + 'tidy_get_opt_doc' => 'tidy/tidy.php', + 'tidy_get_output' => 'tidy/tidy.php', + 'tidy_get_release' => 'tidy/tidy.php', + 'tidy_get_root' => 'tidy/tidy.php', + 'tidy_get_status' => 'tidy/tidy.php', + 'tidy_getopt' => 'tidy/tidy.php', + 'tidy_is_xhtml' => 'tidy/tidy.php', + 'tidy_is_xml' => 'tidy/tidy.php', + 'tidy_parse_file' => 'tidy/tidy.php', + 'tidy_parse_string' => 'tidy/tidy.php', + 'tidy_repair_file' => 'tidy/tidy.php', + 'tidy_repair_string' => 'tidy/tidy.php', + 'tidy_warning_count' => 'tidy/tidy.php', + 'time' => 'date/date.php', + 'time_nanosleep' => 'standard/standard_0.php', + 'time_sleep_until' => 'standard/standard_0.php', + 'timezone_abbreviations_list' => 'date/date.php', + 'timezone_identifiers_list' => 'date/date.php', + 'timezone_location_get' => 'date/date.php', + 'timezone_name_from_abbr' => 'date/date.php', + 'timezone_name_get' => 'date/date.php', + 'timezone_offset_get' => 'date/date.php', + 'timezone_open' => 'date/date.php', + 'timezone_transitions_get' => 'date/date.php', + 'timezone_version_get' => 'date/date.php', + 'tmpfile' => 'standard/standard_5.php', + 'token_get_all' => 'tokenizer/tokenizer.php', + 'token_name' => 'tokenizer/tokenizer.php', + 'touch' => 'standard/standard_7.php', + 'trait_exists' => 'Core/Core.php', + 'transliterator_create' => 'intl/intl.php', + 'transliterator_create_from_rules' => 'intl/intl.php', + 'transliterator_create_inverse' => 'intl/intl.php', + 'transliterator_get_error_code' => 'intl/intl.php', + 'transliterator_get_error_message' => 'intl/intl.php', + 'transliterator_list_ids' => 'intl/intl.php', + 'transliterator_transliterate' => 'intl/intl.php', + 'trigger_error' => 'Core/Core.php', + 'trim' => 'standard/standard_1.php', + 'uasort' => 'standard/standard_8.php', + 'ucfirst' => 'standard/standard_1.php', + 'ucwords' => 'standard/standard_1.php', + 'uksort' => 'standard/standard_8.php', + 'umask' => 'standard/standard_5.php', + 'uniqid' => 'standard/standard_3.php', + 'unixtojd' => 'calendar/calendar.php', + 'unlink' => 'standard/standard_2.php', + 'unpack' => 'standard/standard_7.php', + 'unregister_event_handler' => 'zend/zend.php', + 'unregister_tick_function' => 'standard/standard_4.php', + 'unserialize' => 'standard/standard_4.php', + 'uopz_add_function' => 'uopz/uopz.php', + 'uopz_allow_exit' => 'uopz/uopz.php', + 'uopz_call_user_func' => 'uopz/uopz.php', + 'uopz_call_user_func_array' => 'uopz/uopz.php', + 'uopz_del_function' => 'uopz/uopz.php', + 'uopz_extend' => 'uopz/uopz.php', + 'uopz_flags' => 'uopz/uopz.php', + 'uopz_get_exit_status' => 'uopz/uopz.php', + 'uopz_get_hook' => 'uopz/uopz.php', + 'uopz_get_mock' => 'uopz/uopz.php', + 'uopz_get_property' => 'uopz/uopz.php', + 'uopz_get_return' => 'uopz/uopz.php', + 'uopz_get_static' => 'uopz/uopz.php', + 'uopz_implement' => 'uopz/uopz.php', + 'uopz_redefine' => 'uopz/uopz.php', + 'uopz_set_hook' => 'uopz/uopz.php', + 'uopz_set_mock' => 'uopz/uopz.php', + 'uopz_set_property' => 'uopz/uopz.php', + 'uopz_set_return' => 'uopz/uopz.php', + 'uopz_set_static' => 'uopz/uopz.php', + 'uopz_undefine' => 'uopz/uopz.php', + 'uopz_unset_hook' => 'uopz/uopz.php', + 'uopz_unset_mock' => 'uopz/uopz.php', + 'uopz_unset_return' => 'uopz/uopz.php', + 'uploadprogress_get_contents' => 'uploadprogress/uploadprogress.php', + 'uploadprogress_get_info' => 'uploadprogress/uploadprogress.php', + 'urldecode' => 'standard/standard_2.php', + 'urlencode' => 'standard/standard_2.php', + 'use_soap_error_handler' => 'soap/soap.php', + 'user_error' => 'Core/Core.php', + 'usleep' => 'standard/standard_0.php', + 'usort' => 'standard/standard_8.php', + 'utf8_decode' => 'standard/basic.php', + 'utf8_encode' => 'standard/basic.php', + 'uuid_compare' => 'uuid/uuid_c.php', + 'uuid_create' => 'uuid/uuid_c.php', + 'uuid_generate_md5' => 'uuid/uuid_c.php', + 'uuid_generate_sha1' => 'uuid/uuid_c.php', + 'uuid_is_null' => 'uuid/uuid_c.php', + 'uuid_is_valid' => 'uuid/uuid_c.php', + 'uuid_mac' => 'uuid/uuid_c.php', + 'uuid_parse' => 'uuid/uuid_c.php', + 'uuid_time' => 'uuid/uuid_c.php', + 'uuid_type' => 'uuid/uuid_c.php', + 'uuid_unparse' => 'uuid/uuid_c.php', + 'uuid_variant' => 'uuid/uuid_c.php', + 'uv_accept' => 'uv/uv_functions.php', + 'uv_ares_init_options' => 'uv/uv_functions.php', + 'uv_async_init' => 'uv/uv_functions.php', + 'uv_async_send' => 'uv/uv_functions.php', + 'uv_chdir' => 'uv/uv_functions.php', + 'uv_check_init' => 'uv/uv_functions.php', + 'uv_check_start' => 'uv/uv_functions.php', + 'uv_check_stop' => 'uv/uv_functions.php', + 'uv_close' => 'uv/uv_functions.php', + 'uv_cpu_info' => 'uv/uv_functions.php', + 'uv_default_loop' => 'uv/uv_functions.php', + 'uv_err_name' => 'uv/uv_functions.php', + 'uv_exepath' => 'uv/uv_functions.php', + 'uv_fs_chmod' => 'uv/uv_functions.php', + 'uv_fs_chown' => 'uv/uv_functions.php', + 'uv_fs_close' => 'uv/uv_functions.php', + 'uv_fs_event_init' => 'uv/uv_functions.php', + 'uv_fs_fchmod' => 'uv/uv_functions.php', + 'uv_fs_fchown' => 'uv/uv_functions.php', + 'uv_fs_fdatasync' => 'uv/uv_functions.php', + 'uv_fs_fstat' => 'uv/uv_functions.php', + 'uv_fs_fsync' => 'uv/uv_functions.php', + 'uv_fs_ftruncate' => 'uv/uv_functions.php', + 'uv_fs_futime' => 'uv/uv_functions.php', + 'uv_fs_link' => 'uv/uv_functions.php', + 'uv_fs_lstat' => 'uv/uv_functions.php', + 'uv_fs_mkdir' => 'uv/uv_functions.php', + 'uv_fs_open' => 'uv/uv_functions.php', + 'uv_fs_poll_init' => 'uv/uv_functions.php', + 'uv_fs_poll_start' => 'uv/uv_functions.php', + 'uv_fs_poll_stop' => 'uv/uv_functions.php', + 'uv_fs_read' => 'uv/uv_functions.php', + 'uv_fs_readdir' => 'uv/uv_functions.php', + 'uv_fs_readlink' => 'uv/uv_functions.php', + 'uv_fs_rename' => 'uv/uv_functions.php', + 'uv_fs_rmdir' => 'uv/uv_functions.php', + 'uv_fs_sendfile' => 'uv/uv_functions.php', + 'uv_fs_stat' => 'uv/uv_functions.php', + 'uv_fs_symlink' => 'uv/uv_functions.php', + 'uv_fs_unlink' => 'uv/uv_functions.php', + 'uv_fs_utime' => 'uv/uv_functions.php', + 'uv_fs_write' => 'uv/uv_functions.php', + 'uv_get_free_memory' => 'uv/uv_functions.php', + 'uv_get_total_memory' => 'uv/uv_functions.php', + 'uv_getaddrinfo' => 'uv/uv_functions.php', + 'uv_guess_handle' => 'uv/uv_functions.php', + 'uv_handle_type' => 'uv/uv_functions.php', + 'uv_hrtime' => 'uv/uv_functions.php', + 'uv_idle_init' => 'uv/uv_functions.php', + 'uv_idle_start' => 'uv/uv_functions.php', + 'uv_idle_stop' => 'uv/uv_functions.php', + 'uv_interface_addresses' => 'uv/uv_functions.php', + 'uv_ip4_addr' => 'uv/uv_functions.php', + 'uv_ip4_name' => 'uv/uv_functions.php', + 'uv_ip6_addr' => 'uv/uv_functions.php', + 'uv_ip6_name' => 'uv/uv_functions.php', + 'uv_is_active' => 'uv/uv_functions.php', + 'uv_is_readable' => 'uv/uv_functions.php', + 'uv_is_writable' => 'uv/uv_functions.php', + 'uv_kill' => 'uv/uv_functions.php', + 'uv_last_error' => 'uv/uv_functions.php', + 'uv_listen' => 'uv/uv_functions.php', + 'uv_loadavg' => 'uv/uv_functions.php', + 'uv_loop_delete' => 'uv/uv_functions.php', + 'uv_loop_new' => 'uv/uv_functions.php', + 'uv_mutex_init' => 'uv/uv_functions.php', + 'uv_mutex_lock' => 'uv/uv_functions.php', + 'uv_mutex_trylock' => 'uv/uv_functions.php', + 'uv_now' => 'uv/uv_functions.php', + 'uv_pipe_bind' => 'uv/uv_functions.php', + 'uv_pipe_connect' => 'uv/uv_functions.php', + 'uv_pipe_init' => 'uv/uv_functions.php', + 'uv_pipe_open' => 'uv/uv_functions.php', + 'uv_pipe_pending_instances' => 'uv/uv_functions.php', + 'uv_poll_init' => 'uv/uv_functions.php', + 'uv_poll_start' => 'uv/uv_functions.php', + 'uv_poll_stop' => 'uv/uv_functions.php', + 'uv_prepare_init' => 'uv/uv_functions.php', + 'uv_prepare_start' => 'uv/uv_functions.php', + 'uv_prepare_stop' => 'uv/uv_functions.php', + 'uv_process_kill' => 'uv/uv_functions.php', + 'uv_queue_work' => 'uv/uv_functions.php', + 'uv_read2_start' => 'uv/uv_functions.php', + 'uv_read_start' => 'uv/uv_functions.php', + 'uv_read_stop' => 'uv/uv_functions.php', + 'uv_ref' => 'uv/uv_functions.php', + 'uv_resident_set_memory' => 'uv/uv_functions.php', + 'uv_run' => 'uv/uv_functions.php', + 'uv_run_once' => 'uv/uv_functions.php', + 'uv_rwlock_init' => 'uv/uv_functions.php', + 'uv_rwlock_rdlock' => 'uv/uv_functions.php', + 'uv_rwlock_rdunlock' => 'uv/uv_functions.php', + 'uv_rwlock_tryrdlock' => 'uv/uv_functions.php', + 'uv_rwlock_trywrlock' => 'uv/uv_functions.php', + 'uv_rwlock_wrlock' => 'uv/uv_functions.php', + 'uv_rwlock_wrunlock' => 'uv/uv_functions.php', + 'uv_sem_init' => 'uv/uv_functions.php', + 'uv_sem_post' => 'uv/uv_functions.php', + 'uv_sem_trywait' => 'uv/uv_functions.php', + 'uv_sem_wait' => 'uv/uv_functions.php', + 'uv_shutdown' => 'uv/uv_functions.php', + 'uv_signal_stop' => 'uv/uv_functions.php', + 'uv_spawn' => 'uv/uv_functions.php', + 'uv_stdio_new' => 'uv/uv_functions.php', + 'uv_stop' => 'uv/uv_functions.php', + 'uv_strerror' => 'uv/uv_functions.php', + 'uv_tcp_bind' => 'uv/uv_functions.php', + 'uv_tcp_bind6' => 'uv/uv_functions.php', + 'uv_tcp_connect' => 'uv/uv_functions.php', + 'uv_tcp_connect6' => 'uv/uv_functions.php', + 'uv_tcp_getpeername' => 'uv/uv_functions.php', + 'uv_tcp_getsockname' => 'uv/uv_functions.php', + 'uv_tcp_init' => 'uv/uv_functions.php', + 'uv_tcp_nodelay' => 'uv/uv_functions.php', + 'uv_timer_again' => 'uv/uv_functions.php', + 'uv_timer_get_repeat' => 'uv/uv_functions.php', + 'uv_timer_init' => 'uv/uv_functions.php', + 'uv_timer_set_repeat' => 'uv/uv_functions.php', + 'uv_timer_start' => 'uv/uv_functions.php', + 'uv_timer_stop' => 'uv/uv_functions.php', + 'uv_tty_get_winsize' => 'uv/uv_functions.php', + 'uv_tty_init' => 'uv/uv_functions.php', + 'uv_tty_reset_mode' => 'uv/uv_functions.php', + 'uv_tty_set_mode' => 'uv/uv_functions.php', + 'uv_udp_bind' => 'uv/uv_functions.php', + 'uv_udp_bind6' => 'uv/uv_functions.php', + 'uv_udp_getsockname' => 'uv/uv_functions.php', + 'uv_udp_init' => 'uv/uv_functions.php', + 'uv_udp_recv_start' => 'uv/uv_functions.php', + 'uv_udp_recv_stop' => 'uv/uv_functions.php', + 'uv_udp_send' => 'uv/uv_functions.php', + 'uv_udp_send6' => 'uv/uv_functions.php', + 'uv_udp_set_broadcast' => 'uv/uv_functions.php', + 'uv_udp_set_membership' => 'uv/uv_functions.php', + 'uv_udp_set_multicast_loop' => 'uv/uv_functions.php', + 'uv_udp_set_multicast_ttl' => 'uv/uv_functions.php', + 'uv_unref' => 'uv/uv_functions.php', + 'uv_update_time' => 'uv/uv_functions.php', + 'uv_uptime' => 'uv/uv_functions.php', + 'uv_walk' => 'uv/uv_functions.php', + 'uv_write' => 'uv/uv_functions.php', + 'uv_write2' => 'uv/uv_functions.php', + 'var_dump' => 'standard/standard_4.php', + 'var_export' => 'standard/standard_4.php', + 'variant_abs' => 'com_dotnet/com_dotnet.php', + 'variant_add' => 'com_dotnet/com_dotnet.php', + 'variant_and' => 'com_dotnet/com_dotnet.php', + 'variant_cast' => 'com_dotnet/com_dotnet.php', + 'variant_cat' => 'com_dotnet/com_dotnet.php', + 'variant_cmp' => 'com_dotnet/com_dotnet.php', + 'variant_date_from_timestamp' => 'com_dotnet/com_dotnet.php', + 'variant_date_to_timestamp' => 'com_dotnet/com_dotnet.php', + 'variant_div' => 'com_dotnet/com_dotnet.php', + 'variant_eqv' => 'com_dotnet/com_dotnet.php', + 'variant_fix' => 'com_dotnet/com_dotnet.php', + 'variant_get_type' => 'com_dotnet/com_dotnet.php', + 'variant_idiv' => 'com_dotnet/com_dotnet.php', + 'variant_imp' => 'com_dotnet/com_dotnet.php', + 'variant_int' => 'com_dotnet/com_dotnet.php', + 'variant_mod' => 'com_dotnet/com_dotnet.php', + 'variant_mul' => 'com_dotnet/com_dotnet.php', + 'variant_neg' => 'com_dotnet/com_dotnet.php', + 'variant_not' => 'com_dotnet/com_dotnet.php', + 'variant_or' => 'com_dotnet/com_dotnet.php', + 'variant_pow' => 'com_dotnet/com_dotnet.php', + 'variant_round' => 'com_dotnet/com_dotnet.php', + 'variant_set' => 'com_dotnet/com_dotnet.php', + 'variant_set_type' => 'com_dotnet/com_dotnet.php', + 'variant_sub' => 'com_dotnet/com_dotnet.php', + 'variant_xor' => 'com_dotnet/com_dotnet.php', + 'version_compare' => 'standard/standard_9.php', + 'vfprintf' => 'standard/standard_2.php', + 'virtual' => 'apache/apache.php', + 'vprintf' => 'standard/standard_2.php', + 'vsprintf' => 'standard/standard_2.php', + 'wb_call_function' => 'winbinder/winbinder.php', + 'wb_create_font' => 'winbinder/winbinder.php', + 'wb_create_image' => 'winbinder/winbinder.php', + 'wb_create_mask' => 'winbinder/winbinder.php', + 'wb_create_timer' => 'winbinder/winbinder.php', + 'wb_create_window' => 'winbinder/winbinder.php', + 'wb_delete_items' => 'winbinder/winbinder.php', + 'wb_destroy_control' => 'winbinder/winbinder.php', + 'wb_destroy_font' => 'winbinder/winbinder.php', + 'wb_destroy_image' => 'winbinder/winbinder.php', + 'wb_destroy_timer' => 'winbinder/winbinder.php', + 'wb_destroy_window' => 'winbinder/winbinder.php', + 'wb_draw_ellipse' => 'winbinder/winbinder.php', + 'wb_draw_image' => 'winbinder/winbinder.php', + 'wb_draw_line' => 'winbinder/winbinder.php', + 'wb_draw_point' => 'winbinder/winbinder.php', + 'wb_draw_rect' => 'winbinder/winbinder.php', + 'wb_draw_text' => 'winbinder/winbinder.php', + 'wb_exec' => 'winbinder/winbinder.php', + 'wb_find_file' => 'winbinder/winbinder.php', + 'wb_get_address' => 'winbinder/winbinder.php', + 'wb_get_class' => 'winbinder/winbinder.php', + 'wb_get_control' => 'winbinder/winbinder.php', + 'wb_get_enabled' => 'winbinder/winbinder.php', + 'wb_get_enum_callback' => 'winbinder/winbinder.php', + 'wb_get_focus' => 'winbinder/winbinder.php', + 'wb_get_function_address' => 'winbinder/winbinder.php', + 'wb_get_hook_callback' => 'winbinder/winbinder.php', + 'wb_get_id' => 'winbinder/winbinder.php', + 'wb_get_image_data' => 'winbinder/winbinder.php', + 'wb_get_instance' => 'winbinder/winbinder.php', + 'wb_get_item_count' => 'winbinder/winbinder.php', + 'wb_get_item_list' => 'winbinder/winbinder.php', + 'wb_get_level' => 'winbinder/winbinder.php', + 'wb_get_midi_callback' => 'winbinder/winbinder.php', + 'wb_get_parent' => 'winbinder/winbinder.php', + 'wb_get_pixel' => 'winbinder/winbinder.php', + 'wb_get_position' => 'winbinder/winbinder.php', + 'wb_get_registry_key' => 'winbinder/winbinder.php', + 'wb_get_selected' => 'winbinder/winbinder.php', + 'wb_get_size' => 'winbinder/winbinder.php', + 'wb_get_state' => 'winbinder/winbinder.php', + 'wb_get_system_info' => 'winbinder/winbinder.php', + 'wb_get_value' => 'winbinder/winbinder.php', + 'wb_get_visible' => 'winbinder/winbinder.php', + 'wb_load_image' => 'winbinder/winbinder.php', + 'wb_load_library' => 'winbinder/winbinder.php', + 'wb_main_loop' => 'winbinder/winbinder.php', + 'wb_message_box' => 'winbinder/winbinder.php', + 'wb_peek' => 'winbinder/winbinder.php', + 'wb_play_sound' => 'winbinder/winbinder.php', + 'wb_poke' => 'winbinder/winbinder.php', + 'wb_refresh' => 'winbinder/winbinder.php', + 'wb_release_library' => 'winbinder/winbinder.php', + 'wb_save_image' => 'winbinder/winbinder.php', + 'wb_send_message' => 'winbinder/winbinder.php', + 'wb_set_area' => 'winbinder/winbinder.php', + 'wb_set_cursor' => 'winbinder/winbinder.php', + 'wb_set_enabled' => 'winbinder/winbinder.php', + 'wb_set_focus' => 'winbinder/winbinder.php', + 'wb_set_font' => 'winbinder/winbinder.php', + 'wb_set_handler' => 'winbinder/winbinder.php', + 'wb_set_image' => 'winbinder/winbinder.php', + 'wb_set_item_image' => 'winbinder/winbinder.php', + 'wb_set_location' => 'winbinder/winbinder.php', + 'wb_set_position' => 'winbinder/winbinder.php', + 'wb_set_range' => 'winbinder/winbinder.php', + 'wb_set_registry_key' => 'winbinder/winbinder.php', + 'wb_set_size' => 'winbinder/winbinder.php', + 'wb_set_state' => 'winbinder/winbinder.php', + 'wb_set_style' => 'winbinder/winbinder.php', + 'wb_set_visible' => 'winbinder/winbinder.php', + 'wb_sort' => 'winbinder/winbinder.php', + 'wb_stop_sound' => 'winbinder/winbinder.php', + 'wb_sys_dlg_color' => 'winbinder/winbinder.php', + 'wb_sys_dlg_path' => 'winbinder/winbinder.php', + 'wb_wait' => 'winbinder/winbinder.php', + 'wbtemp_clear_listview_columns' => 'winbinder/winbinder.php', + 'wbtemp_create_control' => 'winbinder/winbinder.php', + 'wbtemp_create_item' => 'winbinder/winbinder.php', + 'wbtemp_create_listview_column' => 'winbinder/winbinder.php', + 'wbtemp_create_listview_item' => 'winbinder/winbinder.php', + 'wbtemp_create_menu' => 'winbinder/winbinder.php', + 'wbtemp_create_statusbar_items' => 'winbinder/winbinder.php', + 'wbtemp_create_toolbar' => 'winbinder/winbinder.php', + 'wbtemp_create_treeview_item' => 'winbinder/winbinder.php', + 'wbtemp_get_listview_columns' => 'winbinder/winbinder.php', + 'wbtemp_get_listview_item_checked' => 'winbinder/winbinder.php', + 'wbtemp_get_listview_text' => 'winbinder/winbinder.php', + 'wbtemp_get_menu_item_checked' => 'winbinder/winbinder.php', + 'wbtemp_get_text' => 'winbinder/winbinder.php', + 'wbtemp_get_treeview_item_text' => 'winbinder/winbinder.php', + 'wbtemp_select_all_listview_items' => 'winbinder/winbinder.php', + 'wbtemp_select_listview_item' => 'winbinder/winbinder.php', + 'wbtemp_select_tab' => 'winbinder/winbinder.php', + 'wbtemp_set_accel_table' => 'winbinder/winbinder.php', + 'wbtemp_set_listview_item_checked' => 'winbinder/winbinder.php', + 'wbtemp_set_listview_item_text' => 'winbinder/winbinder.php', + 'wbtemp_set_menu_item_checked' => 'winbinder/winbinder.php', + 'wbtemp_set_menu_item_image' => 'winbinder/winbinder.php', + 'wbtemp_set_menu_item_selected' => 'winbinder/winbinder.php', + 'wbtemp_set_text' => 'winbinder/winbinder.php', + 'wbtemp_set_treeview_item_selected' => 'winbinder/winbinder.php', + 'wbtemp_set_treeview_item_text' => 'winbinder/winbinder.php', + 'wbtemp_set_treeview_item_value' => 'winbinder/winbinder.php', + 'wbtemp_set_value' => 'winbinder/winbinder.php', + 'wbtemp_sys_dlg_open' => 'winbinder/winbinder.php', + 'wbtemp_sys_dlg_save' => 'winbinder/winbinder.php', + 'wddx_add_vars' => 'wddx/wddx.php', + 'wddx_deserialize' => 'wddx/wddx.php', + 'wddx_packet_end' => 'wddx/wddx.php', + 'wddx_packet_start' => 'wddx/wddx.php', + 'wddx_serialize_value' => 'wddx/wddx.php', + 'wddx_serialize_vars' => 'wddx/wddx.php', + 'win32_continue_service' => 'win32service/win32service.php', + 'win32_create_service' => 'win32service/win32service.php', + 'win32_delete_service' => 'win32service/win32service.php', + 'win32_get_last_control_message' => 'win32service/win32service.php', + 'win32_pause_service' => 'win32service/win32service.php', + 'win32_query_service_status' => 'win32service/win32service.php', + 'win32_set_service_status' => 'win32service/win32service.php', + 'win32_start_service' => 'win32service/win32service.php', + 'win32_start_service_ctrl_dispatcher' => 'win32service/win32service.php', + 'win32_stop_service' => 'win32service/win32service.php', + 'wincache_fcache_fileinfo' => 'wincache/wincache.php', + 'wincache_fcache_meminfo' => 'wincache/wincache.php', + 'wincache_lock' => 'wincache/wincache.php', + 'wincache_ocache_fileinfo' => 'wincache/wincache.php', + 'wincache_ocache_meminfo' => 'wincache/wincache.php', + 'wincache_refresh_if_changed' => 'wincache/wincache.php', + 'wincache_rplist_fileinfo' => 'wincache/wincache.php', + 'wincache_rplist_meminfo' => 'wincache/wincache.php', + 'wincache_scache_info' => 'wincache/wincache.php', + 'wincache_scache_meminfo' => 'wincache/wincache.php', + 'wincache_ucache_add' => 'wincache/wincache.php', + 'wincache_ucache_cas' => 'wincache/wincache.php', + 'wincache_ucache_clear' => 'wincache/wincache.php', + 'wincache_ucache_dec' => 'wincache/wincache.php', + 'wincache_ucache_delete' => 'wincache/wincache.php', + 'wincache_ucache_exists' => 'wincache/wincache.php', + 'wincache_ucache_get' => 'wincache/wincache.php', + 'wincache_ucache_inc' => 'wincache/wincache.php', + 'wincache_ucache_info' => 'wincache/wincache.php', + 'wincache_ucache_meminfo' => 'wincache/wincache.php', + 'wincache_ucache_set' => 'wincache/wincache.php', + 'wincache_unlock' => 'wincache/wincache.php', + 'wordwrap' => 'standard/standard_0.php', + 'xcache_asm' => 'xcache/xcache.php', + 'xcache_clear_cache' => 'xcache/xcache.php', + 'xcache_coredump' => 'xcache/xcache.php', + 'xcache_count' => 'xcache/xcache.php', + 'xcache_coverager_decode' => 'xcache/xcache.php', + 'xcache_coverager_get' => 'xcache/xcache.php', + 'xcache_coverager_start' => 'xcache/xcache.php', + 'xcache_coverager_stop' => 'xcache/xcache.php', + 'xcache_dasm_file' => 'xcache/xcache.php', + 'xcache_dasm_string' => 'xcache/xcache.php', + 'xcache_dec' => 'xcache/xcache.php', + 'xcache_decode' => 'xcache/xcache.php', + 'xcache_encode' => 'xcache/xcache.php', + 'xcache_get' => 'xcache/xcache.php', + 'xcache_get_data_type' => 'xcache/xcache.php', + 'xcache_get_op_spec' => 'xcache/xcache.php', + 'xcache_get_op_type' => 'xcache/xcache.php', + 'xcache_get_opcode' => 'xcache/xcache.php', + 'xcache_get_opcode_spec' => 'xcache/xcache.php', + 'xcache_inc' => 'xcache/xcache.php', + 'xcache_info' => 'xcache/xcache.php', + 'xcache_is_autoglobal' => 'xcache/xcache.php', + 'xcache_isset' => 'xcache/xcache.php', + 'xcache_list' => 'xcache/xcache.php', + 'xcache_set' => 'xcache/xcache.php', + 'xcache_unset' => 'xcache/xcache.php', + 'xcache_unset_by_prefix' => 'xcache/xcache.php', + 'xdebug_break' => 'xdebug/xdebug.php', + 'xdebug_call_class' => 'xdebug/xdebug.php', + 'xdebug_call_file' => 'xdebug/xdebug.php', + 'xdebug_call_function' => 'xdebug/xdebug.php', + 'xdebug_call_line' => 'xdebug/xdebug.php', + 'xdebug_clear_aggr_profiling_data' => 'xdebug/xdebug.php', + 'xdebug_code_coverage_started' => 'xdebug/xdebug.php', + 'xdebug_connect_to_client' => 'xdebug/xdebug.php', + 'xdebug_debug_zval' => 'xdebug/xdebug.php', + 'xdebug_debug_zval_stdout' => 'xdebug/xdebug.php', + 'xdebug_disable' => 'xdebug/xdebug.php', + 'xdebug_dump_aggr_profiling_data' => 'xdebug/xdebug.php', + 'xdebug_dump_superglobals' => 'xdebug/xdebug.php', + 'xdebug_enable' => 'xdebug/xdebug.php', + 'xdebug_get_code_coverage' => 'xdebug/xdebug.php', + 'xdebug_get_collected_errors' => 'xdebug/xdebug.php', + 'xdebug_get_declared_vars' => 'xdebug/xdebug.php', + 'xdebug_get_formatted_function_stack' => 'xdebug/xdebug.php', + 'xdebug_get_function_count' => 'xdebug/xdebug.php', + 'xdebug_get_function_stack' => 'xdebug/xdebug.php', + 'xdebug_get_gc_run_count' => 'xdebug/xdebug.php', + 'xdebug_get_gc_total_collected_roots' => 'xdebug/xdebug.php', + 'xdebug_get_gcstats_filename' => 'xdebug/xdebug.php', + 'xdebug_get_headers' => 'xdebug/xdebug.php', + 'xdebug_get_monitored_functions' => 'xdebug/xdebug.php', + 'xdebug_get_profiler_filename' => 'xdebug/xdebug.php', + 'xdebug_get_stack_depth' => 'xdebug/xdebug.php', + 'xdebug_get_tracefile_name' => 'xdebug/xdebug.php', + 'xdebug_info' => 'xdebug/xdebug.php', + 'xdebug_is_debugger_active' => 'xdebug/xdebug.php', + 'xdebug_is_enabled' => 'xdebug/xdebug.php', + 'xdebug_memory_usage' => 'xdebug/xdebug.php', + 'xdebug_notify' => 'xdebug/xdebug.php', + 'xdebug_peak_memory_usage' => 'xdebug/xdebug.php', + 'xdebug_print_function_stack' => 'xdebug/xdebug.php', + 'xdebug_set_filter' => 'xdebug/xdebug.php', + 'xdebug_start_code_coverage' => 'xdebug/xdebug.php', + 'xdebug_start_error_collection' => 'xdebug/xdebug.php', + 'xdebug_start_function_monitor' => 'xdebug/xdebug.php', + 'xdebug_start_gcstats' => 'xdebug/xdebug.php', + 'xdebug_start_trace' => 'xdebug/xdebug.php', + 'xdebug_stop_code_coverage' => 'xdebug/xdebug.php', + 'xdebug_stop_error_collection' => 'xdebug/xdebug.php', + 'xdebug_stop_function_monitor' => 'xdebug/xdebug.php', + 'xdebug_stop_gcstats' => 'xdebug/xdebug.php', + 'xdebug_stop_trace' => 'xdebug/xdebug.php', + 'xdebug_time_index' => 'xdebug/xdebug.php', + 'xdebug_var_dump' => 'xdebug/xdebug.php', + 'xdiff_file_bdiff' => 'xdiff/xdiff.php', + 'xdiff_file_bdiff_size' => 'xdiff/xdiff.php', + 'xdiff_file_bpatch' => 'xdiff/xdiff.php', + 'xdiff_file_diff' => 'xdiff/xdiff.php', + 'xdiff_file_diff_binary' => 'xdiff/xdiff.php', + 'xdiff_file_merge3' => 'xdiff/xdiff.php', + 'xdiff_file_patch' => 'xdiff/xdiff.php', + 'xdiff_file_patch_binary' => 'xdiff/xdiff.php', + 'xdiff_file_rabdiff' => 'xdiff/xdiff.php', + 'xdiff_string_bdiff' => 'xdiff/xdiff.php', + 'xdiff_string_bdiff_size' => 'xdiff/xdiff.php', + 'xdiff_string_bpatch' => 'xdiff/xdiff.php', + 'xdiff_string_diff' => 'xdiff/xdiff.php', + 'xdiff_string_diff_binary' => 'xdiff/xdiff.php', + 'xdiff_string_merge3' => 'xdiff/xdiff.php', + 'xdiff_string_patch' => 'xdiff/xdiff.php', + 'xdiff_string_patch_binary' => 'xdiff/xdiff.php', + 'xdiff_string_rabdiff' => 'xdiff/xdiff.php', + 'xhprof_disable' => 'xhprof/xhprof.php', + 'xhprof_enable' => 'xhprof/xhprof.php', + 'xhprof_sample_disable' => 'xhprof/xhprof.php', + 'xhprof_sample_enable' => 'xhprof/xhprof.php', + 'xml_error_string' => 'xml/xml.php', + 'xml_get_current_byte_index' => 'xml/xml.php', + 'xml_get_current_column_number' => 'xml/xml.php', + 'xml_get_current_line_number' => 'xml/xml.php', + 'xml_get_error_code' => 'xml/xml.php', + 'xml_parse' => 'xml/xml.php', + 'xml_parse_into_struct' => 'xml/xml.php', + 'xml_parser_create' => 'xml/xml.php', + 'xml_parser_create_ns' => 'xml/xml.php', + 'xml_parser_free' => 'xml/xml.php', + 'xml_parser_get_option' => 'xml/xml.php', + 'xml_parser_set_option' => 'xml/xml.php', + 'xml_set_character_data_handler' => 'xml/xml.php', + 'xml_set_default_handler' => 'xml/xml.php', + 'xml_set_element_handler' => 'xml/xml.php', + 'xml_set_end_namespace_decl_handler' => 'xml/xml.php', + 'xml_set_external_entity_ref_handler' => 'xml/xml.php', + 'xml_set_notation_decl_handler' => 'xml/xml.php', + 'xml_set_object' => 'xml/xml.php', + 'xml_set_processing_instruction_handler' => 'xml/xml.php', + 'xml_set_start_namespace_decl_handler' => 'xml/xml.php', + 'xml_set_unparsed_entity_decl_handler' => 'xml/xml.php', + 'xmlrpc_decode' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_decode_request' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_encode' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_encode_request' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_get_type' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_is_fault' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_parse_method_descriptions' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_add_introspection_data' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_call_method' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_create' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_destroy' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_register_introspection_callback' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_server_register_method' => 'xmlrpc/xmlrpc.php', + 'xmlrpc_set_type' => 'xmlrpc/xmlrpc.php', + 'xmlwriter_end_attribute' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_cdata' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_comment' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_document' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_dtd' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_dtd_attlist' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_dtd_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_dtd_entity' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_end_pi' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_flush' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_full_end_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_open_memory' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_open_uri' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_output_memory' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_set_indent' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_set_indent_string' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_attribute' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_attribute_ns' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_cdata' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_comment' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_document' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_dtd' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_dtd_attlist' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_dtd_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_dtd_entity' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_element_ns' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_start_pi' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_text' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_attribute' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_attribute_ns' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_cdata' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_comment' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_dtd' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_dtd_attlist' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_dtd_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_dtd_entity' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_element' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_element_ns' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_pi' => 'xmlwriter/xmlwriter.php', + 'xmlwriter_write_raw' => 'xmlwriter/xmlwriter.php', + 'xxtea_decrypt' => 'xxtea/xxtea.php', + 'xxtea_encrypt' => 'xxtea/xxtea.php', + 'yaml_emit' => 'yaml/yaml.php', + 'yaml_emit_file' => 'yaml/yaml.php', + 'yaml_parse' => 'yaml/yaml.php', + 'yaml_parse_file' => 'yaml/yaml.php', + 'yaml_parse_url' => 'yaml/yaml.php', + 'zem_get_extension_info_by_id' => 'ZendUtils/ZendUtils.php', + 'zem_get_extension_info_by_name' => 'ZendUtils/ZendUtils.php', + 'zem_get_extensions_info' => 'ZendUtils/ZendUtils.php', + 'zem_get_license_info' => 'ZendUtils/ZendUtils.php', + 'zend_current_obfuscation_level' => 'zend/zend_f.php', + 'zend_disk_cache_clear' => 'ZendCache/ZendCache.php', + 'zend_disk_cache_delete' => 'ZendCache/ZendCache.php', + 'zend_disk_cache_fetch' => 'ZendCache/ZendCache.php', + 'zend_disk_cache_info' => 'ZendCache/ZendCache.php', + 'zend_disk_cache_store' => 'ZendCache/ZendCache.php', + 'zend_get_id' => 'zend/zend_f.php', + 'zend_is_configuration_changed' => 'ZendUtils/ZendUtils.php', + 'zend_loader_current_file' => 'zend/zend_f.php', + 'zend_loader_enabled' => 'zend/zend_f.php', + 'zend_loader_file_encoded' => 'zend/zend_f.php', + 'zend_loader_file_licensed' => 'zend/zend_f.php', + 'zend_loader_install_license' => 'zend/zend_f.php', + 'zend_logo_guid' => 'standard/standard_0.php', + 'zend_obfuscate_class_name' => 'zend/zend_f.php', + 'zend_obfuscate_function_name' => 'zend/zend_f.php', + 'zend_optimizer_version' => 'zend/zend_f.php', + 'zend_runtime_obfuscate' => 'zend/zend_f.php', + 'zend_send_buffer' => 'zend/zend.php', + 'zend_send_file' => 'zend/zend.php', + 'zend_set_configuration_changed' => 'ZendUtils/ZendUtils.php', + 'zend_shm_cache_clear' => 'ZendCache/ZendCache.php', + 'zend_shm_cache_delete' => 'ZendCache/ZendCache.php', + 'zend_shm_cache_fetch' => 'ZendCache/ZendCache.php', + 'zend_shm_cache_info' => 'ZendCache/ZendCache.php', + 'zend_shm_cache_store' => 'ZendCache/ZendCache.php', + 'zend_version' => 'Core/Core.php', + 'zip_close' => 'zip/zip.php', + 'zip_entry_close' => 'zip/zip.php', + 'zip_entry_compressedsize' => 'zip/zip.php', + 'zip_entry_compressionmethod' => 'zip/zip.php', + 'zip_entry_filesize' => 'zip/zip.php', + 'zip_entry_name' => 'zip/zip.php', + 'zip_entry_open' => 'zip/zip.php', + 'zip_entry_read' => 'zip/zip.php', + 'zip_open' => 'zip/zip.php', + 'zip_read' => 'zip/zip.php', + 'zlib_decode' => 'zlib/zlib.php', + 'zlib_encode' => 'zlib/zlib.php', + 'zlib_get_coding_type' => 'zlib/zlib.php', + 'zstd_compress' => 'zstd/zstd.php', + 'zstd_compress_dict' => 'zstd/zstd.php', + 'zstd_compress_usingcdict' => 'zstd/zstd.php', + 'zstd_decompress_dict' => 'zstd/zstd.php', + 'zstd_decompress_usingcdict' => 'zstd/zstd.php', + 'zstd_uncompress' => 'zstd/zstd.php', + 'zstd_uncompress_dict' => 'zstd/zstd.php', + 'zstd_uncompress_usingcdict' => 'zstd/zstd.php', +); + +const CONSTANTS = array ( + 'ABDAY_1' => 'standard/standard_defines.php', + 'ABDAY_2' => 'standard/standard_defines.php', + 'ABDAY_3' => 'standard/standard_defines.php', + 'ABDAY_4' => 'standard/standard_defines.php', + 'ABDAY_5' => 'standard/standard_defines.php', + 'ABDAY_6' => 'standard/standard_defines.php', + 'ABDAY_7' => 'standard/standard_defines.php', + 'ABMON_1' => 'standard/standard_defines.php', + 'ABMON_10' => 'standard/standard_defines.php', + 'ABMON_11' => 'standard/standard_defines.php', + 'ABMON_12' => 'standard/standard_defines.php', + 'ABMON_2' => 'standard/standard_defines.php', + 'ABMON_3' => 'standard/standard_defines.php', + 'ABMON_4' => 'standard/standard_defines.php', + 'ABMON_5' => 'standard/standard_defines.php', + 'ABMON_6' => 'standard/standard_defines.php', + 'ABMON_7' => 'standard/standard_defines.php', + 'ABMON_8' => 'standard/standard_defines.php', + 'ABMON_9' => 'standard/standard_defines.php', + 'AF_INET' => 'sockets/sockets.php', + 'AF_INET6' => 'sockets/sockets.php', + 'AF_UNIX' => 'sockets/sockets.php', + 'AI_ADDRCONFIG' => 'sockets/sockets.php', + 'AI_ALL' => 'sockets/sockets.php', + 'AI_CANONNAME' => 'sockets/sockets.php', + 'AI_NUMERICHOST' => 'sockets/sockets.php', + 'AI_NUMERICSERV' => 'sockets/sockets.php', + 'AI_PASSIVE' => 'sockets/sockets.php', + 'AI_V4MAPPED' => 'sockets/sockets.php', + 'ALT_DIGITS' => 'standard/standard_defines.php', + 'AMQP_AUTOACK' => 'amqp/amqp.php', + 'AMQP_AUTODELETE' => 'amqp/amqp.php', + 'AMQP_DURABLE' => 'amqp/amqp.php', + 'AMQP_EXCLUSIVE' => 'amqp/amqp.php', + 'AMQP_EX_TYPE_DIRECT' => 'amqp/amqp.php', + 'AMQP_EX_TYPE_FANOUT' => 'amqp/amqp.php', + 'AMQP_EX_TYPE_HEADERS' => 'amqp/amqp.php', + 'AMQP_EX_TYPE_TOPIC' => 'amqp/amqp.php', + 'AMQP_IFEMPTY' => 'amqp/amqp.php', + 'AMQP_IFUNUSED' => 'amqp/amqp.php', + 'AMQP_IMMEDIATE' => 'amqp/amqp.php', + 'AMQP_INTERNAL' => 'amqp/amqp.php', + 'AMQP_JUST_CONSUME' => 'amqp/amqp.php', + 'AMQP_MANDATORY' => 'amqp/amqp.php', + 'AMQP_MULTIPLE' => 'amqp/amqp.php', + 'AMQP_NOLOCAL' => 'amqp/amqp.php', + 'AMQP_NOPARAM' => 'amqp/amqp.php', + 'AMQP_NOWAIT' => 'amqp/amqp.php', + 'AMQP_OS_SOCKET_TIMEOUT_ERRNO' => 'amqp/amqp.php', + 'AMQP_PASSIVE' => 'amqp/amqp.php', + 'AMQP_REQUEUE' => 'amqp/amqp.php', + 'AMQP_SASL_METHOD_EXTERNAL' => 'amqp/amqp.php', + 'AMQP_SASL_METHOD_PLAIN' => 'amqp/amqp.php', + 'AM_STR' => 'standard/standard_defines.php', + 'APACHE_MAP' => 'soap/soap.php', + 'APC_BIN_VERIFY_CRC32' => 'apcu/apcu.php', + 'APC_BIN_VERIFY_MD5' => 'apcu/apcu.php', + 'APC_ITER_ALL' => 'apcu/apcu.php', + 'APC_ITER_ATIME' => 'apcu/apcu.php', + 'APC_ITER_CTIME' => 'apcu/apcu.php', + 'APC_ITER_DEVICE' => 'apcu/apcu.php', + 'APC_ITER_DTIME' => 'apcu/apcu.php', + 'APC_ITER_FILENAME' => 'apcu/apcu.php', + 'APC_ITER_INODE' => 'apcu/apcu.php', + 'APC_ITER_KEY' => 'apcu/apcu.php', + 'APC_ITER_MD5' => 'apcu/apcu.php', + 'APC_ITER_MEM_SIZE' => 'apcu/apcu.php', + 'APC_ITER_MTIME' => 'apcu/apcu.php', + 'APC_ITER_NONE' => 'apcu/apcu.php', + 'APC_ITER_NUM_HITS' => 'apcu/apcu.php', + 'APC_ITER_REFCOUNT' => 'apcu/apcu.php', + 'APC_ITER_TTL' => 'apcu/apcu.php', + 'APC_ITER_TYPE' => 'apcu/apcu.php', + 'APC_ITER_VALUE' => 'apcu/apcu.php', + 'APC_LIST_ACTIVE' => 'apcu/apcu.php', + 'APC_LIST_DELETED' => 'apcu/apcu.php', + 'ARRAY_FILTER_USE_BOTH' => 'standard/standard_9.php', + 'ARRAY_FILTER_USE_KEY' => 'standard/standard_9.php', + 'ASSERT_ACTIVE' => 'standard/standard_defines.php', + 'ASSERT_BAIL' => 'standard/standard_defines.php', + 'ASSERT_CALLBACK' => 'standard/standard_defines.php', + 'ASSERT_EXCEPTION' => 'standard/standard_defines.php', + 'ASSERT_QUIET_EVAL' => 'standard/standard_defines.php', + 'ASSERT_WARNING' => 'standard/standard_defines.php', + 'Accel' => 'winbinder/winbinder.php', + 'AppWindow' => 'winbinder/winbinder.php', + 'BLACK' => 'winbinder/winbinder.php', + 'BLUE' => 'winbinder/winbinder.php', + 'BUS_ADRALN' => 'pcntl/pcntl.php', + 'BUS_ADRERR' => 'pcntl/pcntl.php', + 'BUS_OBJERR' => 'pcntl/pcntl.php', + 'CAL_DOW_DAYNO' => 'calendar/calendar.php', + 'CAL_DOW_LONG' => 'calendar/calendar.php', + 'CAL_DOW_SHORT' => 'calendar/calendar.php', + 'CAL_EASTER_ALWAYS_GREGORIAN' => 'calendar/calendar.php', + 'CAL_EASTER_ALWAYS_JULIAN' => 'calendar/calendar.php', + 'CAL_EASTER_DEFAULT' => 'calendar/calendar.php', + 'CAL_EASTER_ROMAN' => 'calendar/calendar.php', + 'CAL_FRENCH' => 'calendar/calendar.php', + 'CAL_GREGORIAN' => 'calendar/calendar.php', + 'CAL_JEWISH' => 'calendar/calendar.php', + 'CAL_JEWISH_ADD_ALAFIM' => 'calendar/calendar.php', + 'CAL_JEWISH_ADD_ALAFIM_GERESH' => 'calendar/calendar.php', + 'CAL_JEWISH_ADD_GERESHAYIM' => 'calendar/calendar.php', + 'CAL_JULIAN' => 'calendar/calendar.php', + 'CAL_MONTH_FRENCH' => 'calendar/calendar.php', + 'CAL_MONTH_GREGORIAN_LONG' => 'calendar/calendar.php', + 'CAL_MONTH_GREGORIAN_SHORT' => 'calendar/calendar.php', + 'CAL_MONTH_JEWISH' => 'calendar/calendar.php', + 'CAL_MONTH_JULIAN_LONG' => 'calendar/calendar.php', + 'CAL_MONTH_JULIAN_SHORT' => 'calendar/calendar.php', + 'CAL_NUM_CALS' => 'calendar/calendar.php', + 'CASE_LOWER' => 'standard/standard_defines.php', + 'CASE_UPPER' => 'standard/standard_defines.php', + 'CHAR_MAX' => 'standard/standard_defines.php', + 'CLD_CONTINUED' => 'pcntl/pcntl.php', + 'CLD_DUMPED' => 'pcntl/pcntl.php', + 'CLD_EXITED' => 'pcntl/pcntl.php', + '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', + 'CLSCTX_ALL' => 'com_dotnet/com_dotnet.php', + 'CLSCTX_INPROC_HANDLER' => 'com_dotnet/com_dotnet.php', + 'CLSCTX_INPROC_SERVER' => 'com_dotnet/com_dotnet.php', + 'CLSCTX_LOCAL_SERVER' => 'com_dotnet/com_dotnet.php', + 'CLSCTX_REMOTE_SERVER' => 'com_dotnet/com_dotnet.php', + 'CLSCTX_SERVER' => 'com_dotnet/com_dotnet.php', + 'CL_EXPUNGE' => 'imap/imap.php', + 'CODESET' => 'standard/standard_defines.php', + 'CONNECTION_ABORTED' => 'standard/standard_defines.php', + 'CONNECTION_NORMAL' => 'standard/standard_defines.php', + 'CONNECTION_TIMEOUT' => 'standard/standard_defines.php', + 'COUNT_NORMAL' => 'standard/standard_defines.php', + 'COUNT_RECURSIVE' => 'standard/standard_defines.php', + 'CP_ACP' => 'com_dotnet/com_dotnet.php', + 'CP_MACCP' => 'com_dotnet/com_dotnet.php', + 'CP_MOVE' => 'imap/imap.php', + 'CP_OEMCP' => 'com_dotnet/com_dotnet.php', + 'CP_SYMBOL' => 'com_dotnet/com_dotnet.php', + 'CP_THREAD_ACP' => 'com_dotnet/com_dotnet.php', + 'CP_UID' => 'imap/imap.php', + 'CP_UTF7' => 'com_dotnet/com_dotnet.php', + 'CP_UTF8' => 'com_dotnet/com_dotnet.php', + 'CREDITS_ALL' => 'standard/standard_defines.php', + 'CREDITS_DOCS' => 'standard/standard_defines.php', + 'CREDITS_FULLPAGE' => 'standard/standard_defines.php', + 'CREDITS_GENERAL' => 'standard/standard_defines.php', + 'CREDITS_GROUP' => 'standard/standard_defines.php', + 'CREDITS_MODULES' => 'standard/standard_defines.php', + 'CREDITS_QA' => 'standard/standard_defines.php', + 'CREDITS_SAPI' => 'standard/standard_defines.php', + 'CRNCYSTR' => 'standard/standard_defines.php', + 'CRYPT_BLOWFISH' => 'standard/standard_defines.php', + 'CRYPT_EXT_DES' => 'standard/standard_defines.php', + 'CRYPT_MD5' => 'standard/standard_defines.php', + 'CRYPT_SALT_LENGTH' => 'standard/standard_defines.php', + 'CRYPT_SHA256' => 'standard/standard_defines.php', + 'CRYPT_SHA512' => 'standard/standard_defines.php', + 'CRYPT_STD_DES' => 'standard/standard_defines.php', + 'CUBRID_ASSOC' => 'cubrid/cubrid.php', + 'CUBRID_ASYNC' => 'cubrid/cubrid.php', + 'CUBRID_AUTOCOMMIT_FALSE' => 'cubrid/cubrid.php', + 'CUBRID_AUTOCOMMIT_TRUE' => 'cubrid/cubrid.php', + 'CUBRID_BOTH' => 'cubrid/cubrid.php', + 'CUBRID_CURSOR_CURRENT' => 'cubrid/cubrid.php', + 'CUBRID_CURSOR_ERROR' => 'cubrid/cubrid.php', + 'CUBRID_CURSOR_FIRST' => 'cubrid/cubrid.php', + 'CUBRID_CURSOR_LAST' => 'cubrid/cubrid.php', + 'CUBRID_CURSOR_SUCCESS' => 'cubrid/cubrid.php', + 'CUBRID_EXEC_QUERY_ALL' => 'cubrid/cubrid.php', + 'CUBRID_INCLUDE_OID' => 'cubrid/cubrid.php', + 'CUBRID_NO_MORE_DATA' => 'cubrid/cubrid.php', + 'CUBRID_NUM' => 'cubrid/cubrid.php', + 'CUBRID_OBJECT' => 'cubrid/cubrid.php', + 'CURLALTSVC_H1' => 'curl/curl_d.php', + 'CURLALTSVC_H2' => 'curl/curl_d.php', + 'CURLALTSVC_H3' => 'curl/curl_d.php', + 'CURLALTSVC_READONLYFILE' => 'curl/curl_d.php', + 'CURLAUTH_ANY' => 'curl/curl_d.php', + 'CURLAUTH_ANYSAFE' => 'curl/curl_d.php', + 'CURLAUTH_AWS_SIGV4' => 'curl/curl_d.php', + 'CURLAUTH_BASIC' => 'curl/curl_d.php', + 'CURLAUTH_BEARER' => 'curl/curl_d.php', + 'CURLAUTH_DIGEST' => 'curl/curl_d.php', + 'CURLAUTH_DIGEST_IE' => 'curl/curl_d.php', + 'CURLAUTH_GSSAPI' => 'curl/curl_d.php', + 'CURLAUTH_GSSNEGOTIATE' => 'curl/curl_d.php', + 'CURLAUTH_NEGOTIATE' => 'curl/curl_d.php', + 'CURLAUTH_NONE' => 'curl/curl_d.php', + 'CURLAUTH_NTLM' => 'curl/curl_d.php', + 'CURLAUTH_NTLM_WB' => 'curl/curl_d.php', + 'CURLAUTH_ONLY' => 'curl/curl_d.php', + 'CURLCLOSEPOLICY_CALLBACK' => 'curl/curl_d.php', + 'CURLCLOSEPOLICY_LEAST_RECENTLY_USED' => 'curl/curl_d.php', + 'CURLCLOSEPOLICY_LEAST_TRAFFIC' => 'curl/curl_d.php', + 'CURLCLOSEPOLICY_OLDEST' => 'curl/curl_d.php', + 'CURLCLOSEPOLICY_SLOWEST' => 'curl/curl_d.php', + 'CURLE_ABORTED_BY_CALLBACK' => 'curl/curl_d.php', + 'CURLE_BAD_CALLING_ORDER' => 'curl/curl_d.php', + 'CURLE_BAD_CONTENT_ENCODING' => 'curl/curl_d.php', + 'CURLE_BAD_DOWNLOAD_RESUME' => 'curl/curl_d.php', + 'CURLE_BAD_FUNCTION_ARGUMENT' => 'curl/curl_d.php', + 'CURLE_BAD_PASSWORD_ENTERED' => 'curl/curl_d.php', + 'CURLE_COULDNT_CONNECT' => 'curl/curl_d.php', + 'CURLE_COULDNT_RESOLVE_HOST' => 'curl/curl_d.php', + 'CURLE_COULDNT_RESOLVE_PROXY' => 'curl/curl_d.php', + 'CURLE_FAILED_INIT' => 'curl/curl_d.php', + 'CURLE_FILESIZE_EXCEEDED' => 'curl/curl_d.php', + 'CURLE_FILE_COULDNT_READ_FILE' => 'curl/curl_d.php', + 'CURLE_FTP_ACCESS_DENIED' => 'curl/curl_d.php', + 'CURLE_FTP_BAD_DOWNLOAD_RESUME' => 'curl/curl_d.php', + 'CURLE_FTP_CANT_GET_HOST' => 'curl/curl_d.php', + 'CURLE_FTP_CANT_RECONNECT' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_GET_SIZE' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_RETR_FILE' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_SET_ASCII' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_SET_BINARY' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_STOR_FILE' => 'curl/curl_d.php', + 'CURLE_FTP_COULDNT_USE_REST' => 'curl/curl_d.php', + 'CURLE_FTP_PARTIAL_FILE' => 'curl/curl_d.php', + 'CURLE_FTP_PORT_FAILED' => 'curl/curl_d.php', + 'CURLE_FTP_QUOTE_ERROR' => 'curl/curl_d.php', + 'CURLE_FTP_SSL_FAILED' => 'curl/curl_d.php', + 'CURLE_FTP_USER_PASSWORD_INCORRECT' => 'curl/curl_d.php', + 'CURLE_FTP_WEIRD_227_FORMAT' => 'curl/curl_d.php', + 'CURLE_FTP_WEIRD_PASS_REPLY' => 'curl/curl_d.php', + 'CURLE_FTP_WEIRD_PASV_REPLY' => 'curl/curl_d.php', + 'CURLE_FTP_WEIRD_SERVER_REPLY' => 'curl/curl_d.php', + 'CURLE_FTP_WEIRD_USER_REPLY' => 'curl/curl_d.php', + 'CURLE_FTP_WRITE_ERROR' => 'curl/curl_d.php', + 'CURLE_FUNCTION_NOT_FOUND' => 'curl/curl_d.php', + 'CURLE_GOT_NOTHING' => 'curl/curl_d.php', + 'CURLE_HTTP_NOT_FOUND' => 'curl/curl_d.php', + 'CURLE_HTTP_PORT_FAILED' => 'curl/curl_d.php', + 'CURLE_HTTP_POST_ERROR' => 'curl/curl_d.php', + 'CURLE_HTTP_RANGE_ERROR' => 'curl/curl_d.php', + 'CURLE_HTTP_RETURNED_ERROR' => 'curl/curl_d.php', + 'CURLE_LDAP_CANNOT_BIND' => 'curl/curl_d.php', + 'CURLE_LDAP_INVALID_URL' => 'curl/curl_d.php', + 'CURLE_LDAP_SEARCH_FAILED' => 'curl/curl_d.php', + 'CURLE_LIBRARY_NOT_FOUND' => 'curl/curl_d.php', + 'CURLE_MALFORMAT_USER' => 'curl/curl_d.php', + 'CURLE_OBSOLETE' => 'curl/curl_d.php', + 'CURLE_OK' => 'curl/curl_d.php', + 'CURLE_OPERATION_TIMEDOUT' => 'curl/curl_d.php', + 'CURLE_OPERATION_TIMEOUTED' => 'curl/curl_d.php', + 'CURLE_OUT_OF_MEMORY' => 'curl/curl_d.php', + 'CURLE_PARTIAL_FILE' => 'curl/curl_d.php', + 'CURLE_PROXY' => 'curl/curl_d.php', + 'CURLE_READ_ERROR' => 'curl/curl_d.php', + 'CURLE_RECV_ERROR' => 'curl/curl_d.php', + 'CURLE_SEND_ERROR' => 'curl/curl_d.php', + 'CURLE_SHARE_IN_USE' => 'curl/curl_d.php', + 'CURLE_SSH' => 'curl/curl_d.php', + 'CURLE_SSL_CACERT' => 'curl/curl_d.php', + 'CURLE_SSL_CACERT_BADFILE' => 'curl/curl_d.php', + 'CURLE_SSL_CERTPROBLEM' => 'curl/curl_d.php', + 'CURLE_SSL_CIPHER' => 'curl/curl_d.php', + 'CURLE_SSL_CONNECT_ERROR' => 'curl/curl_d.php', + 'CURLE_SSL_ENGINE_NOTFOUND' => 'curl/curl_d.php', + 'CURLE_SSL_ENGINE_SETFAILED' => 'curl/curl_d.php', + 'CURLE_SSL_PEER_CERTIFICATE' => 'curl/curl_d.php', + 'CURLE_SSL_PINNEDPUBKEYNOTMATCH' => 'curl/curl_d.php', + 'CURLE_TELNET_OPTION_SYNTAX' => 'curl/curl_d.php', + 'CURLE_TOO_MANY_REDIRECTS' => 'curl/curl_d.php', + 'CURLE_UNKNOWN_TELNET_OPTION' => 'curl/curl_d.php', + 'CURLE_UNSUPPORTED_PROTOCOL' => 'curl/curl_d.php', + 'CURLE_URL_MALFORMAT' => 'curl/curl_d.php', + 'CURLE_URL_MALFORMAT_USER' => 'curl/curl_d.php', + 'CURLE_WEIRD_SERVER_REPLY' => 'curl/curl_d.php', + 'CURLE_WRITE_ERROR' => 'curl/curl_d.php', + 'CURLFTPAUTH_DEFAULT' => 'curl/curl_d.php', + 'CURLFTPAUTH_SSL' => 'curl/curl_d.php', + 'CURLFTPAUTH_TLS' => 'curl/curl_d.php', + 'CURLFTPMETHOD_DEFAULT' => 'curl/curl_d.php', + 'CURLFTPMETHOD_MULTICWD' => 'curl/curl_d.php', + 'CURLFTPMETHOD_NOCWD' => 'curl/curl_d.php', + 'CURLFTPMETHOD_SINGLECWD' => 'curl/curl_d.php', + 'CURLFTPSSL_ALL' => 'curl/curl_d.php', + 'CURLFTPSSL_CCC_ACTIVE' => 'curl/curl_d.php', + 'CURLFTPSSL_CCC_NONE' => 'curl/curl_d.php', + 'CURLFTPSSL_CCC_PASSIVE' => 'curl/curl_d.php', + 'CURLFTPSSL_CONTROL' => 'curl/curl_d.php', + 'CURLFTPSSL_NONE' => 'curl/curl_d.php', + 'CURLFTPSSL_TRY' => 'curl/curl_d.php', + 'CURLFTP_CREATE_DIR' => 'curl/curl_d.php', + 'CURLFTP_CREATE_DIR_NONE' => 'curl/curl_d.php', + 'CURLFTP_CREATE_DIR_RETRY' => 'curl/curl_d.php', + 'CURLGSSAPI_DELEGATION_FLAG' => 'curl/curl_d.php', + 'CURLGSSAPI_DELEGATION_POLICY_FLAG' => 'curl/curl_d.php', + 'CURLHEADER_SEPARATE' => 'curl/curl_d.php', + 'CURLHEADER_UNIFIED' => 'curl/curl_d.php', + 'CURLHSTS_ENABLE' => 'curl/curl_d.php', + 'CURLHSTS_READONLYFILE' => 'curl/curl_d.php', + 'CURLINFO_APPCONNECT_TIME' => 'curl/curl_d.php', + 'CURLINFO_APPCONNECT_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_CAINFO' => 'curl/curl_d.php', + 'CURLINFO_CAPATH' => 'curl/curl_d.php', + 'CURLINFO_CERTINFO' => 'curl/curl_d.php', + 'CURLINFO_CONDITION_UNMET' => 'curl/curl_d.php', + 'CURLINFO_CONNECT_TIME' => 'curl/curl_d.php', + 'CURLINFO_CONNECT_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_CONTENT_LENGTH_DOWNLOAD' => 'curl/curl_d.php', + 'CURLINFO_CONTENT_LENGTH_DOWNLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_CONTENT_LENGTH_UPLOAD' => 'curl/curl_d.php', + 'CURLINFO_CONTENT_LENGTH_UPLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_CONTENT_TYPE' => 'curl/curl_d.php', + 'CURLINFO_COOKIELIST' => 'curl/curl_d.php', + 'CURLINFO_EFFECTIVE_METHOD' => 'curl/curl_d.php', + 'CURLINFO_EFFECTIVE_URL' => 'curl/curl_d.php', + 'CURLINFO_FILETIME' => 'curl/curl_d.php', + 'CURLINFO_FILETIME_T' => 'curl/curl_d.php', + 'CURLINFO_FTP_ENTRY_PATH' => 'curl/curl_d.php', + 'CURLINFO_HEADER_OUT' => 'curl/curl_d.php', + 'CURLINFO_HEADER_SIZE' => 'curl/curl_d.php', + 'CURLINFO_HTTPAUTH_AVAIL' => 'curl/curl_d.php', + 'CURLINFO_HTTP_CODE' => 'curl/curl_d.php', + 'CURLINFO_HTTP_CONNECTCODE' => 'curl/curl_d.php', + 'CURLINFO_HTTP_VERSION' => 'curl/curl_d.php', + 'CURLINFO_LASTONE' => 'curl/curl_d.php', + 'CURLINFO_LOCAL_IP' => 'curl/curl_d.php', + 'CURLINFO_LOCAL_PORT' => 'curl/curl_d.php', + 'CURLINFO_NAMELOOKUP_TIME' => 'curl/curl_d.php', + 'CURLINFO_NAMELOOKUP_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_NUM_CONNECTS' => 'curl/curl_d.php', + 'CURLINFO_OS_ERRNO' => 'curl/curl_d.php', + 'CURLINFO_PRETRANSFER_TIME' => 'curl/curl_d.php', + 'CURLINFO_PRETRANSFER_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_PRIMARY_IP' => 'curl/curl_d.php', + 'CURLINFO_PRIMARY_PORT' => 'curl/curl_d.php', + 'CURLINFO_PRIVATE' => 'curl/curl_d.php', + 'CURLINFO_PROTOCOL' => 'curl/curl_d.php', + 'CURLINFO_PROXYAUTH_AVAIL' => 'curl/curl_d.php', + 'CURLINFO_PROXY_ERROR' => 'curl/curl_d.php', + 'CURLINFO_PROXY_SSL_VERIFYRESULT' => 'curl/curl_d.php', + 'CURLINFO_REDIRECT_COUNT' => 'curl/curl_d.php', + 'CURLINFO_REDIRECT_TIME' => 'curl/curl_d.php', + 'CURLINFO_REDIRECT_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_REDIRECT_URL' => 'curl/curl_d.php', + 'CURLINFO_REFERER' => 'curl/curl_d.php', + 'CURLINFO_REQUEST_SIZE' => 'curl/curl_d.php', + 'CURLINFO_RESPONSE_CODE' => 'curl/curl_d.php', + 'CURLINFO_RETRY_AFTER' => 'curl/curl_d.php', + 'CURLINFO_RTSP_CLIENT_CSEQ' => 'curl/curl_d.php', + 'CURLINFO_RTSP_CSEQ_RECV' => 'curl/curl_d.php', + 'CURLINFO_RTSP_SERVER_CSEQ' => 'curl/curl_d.php', + 'CURLINFO_RTSP_SESSION_ID' => 'curl/curl_d.php', + 'CURLINFO_SCHEME' => 'curl/curl_d.php', + 'CURLINFO_SIZE_DOWNLOAD' => 'curl/curl_d.php', + 'CURLINFO_SIZE_DOWNLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_SIZE_UPLOAD' => 'curl/curl_d.php', + 'CURLINFO_SIZE_UPLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_SPEED_DOWNLOAD' => 'curl/curl_d.php', + 'CURLINFO_SPEED_DOWNLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_SPEED_UPLOAD' => 'curl/curl_d.php', + 'CURLINFO_SPEED_UPLOAD_T' => 'curl/curl_d.php', + 'CURLINFO_SSL_ENGINES' => 'curl/curl_d.php', + 'CURLINFO_SSL_VERIFYRESULT' => 'curl/curl_d.php', + 'CURLINFO_STARTTRANSFER_TIME' => 'curl/curl_d.php', + 'CURLINFO_STARTTRANSFER_TIME_T' => 'curl/curl_d.php', + 'CURLINFO_TOTAL_TIME' => 'curl/curl_d.php', + 'CURLINFO_TOTAL_TIME_T' => 'curl/curl_d.php', + 'CURLKHMATCH_LAST' => 'curl/curl_d.php', + 'CURLKHMATCH_MISMATCH' => 'curl/curl_d.php', + 'CURLKHMATCH_MISSING' => 'curl/curl_d.php', + 'CURLKHMATCH_OK' => 'curl/curl_d.php', + 'CURLMIMEOPT_FORMESCAPE' => 'curl/curl_d.php', + 'CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE' => 'curl/curl_d.php', + 'CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE' => 'curl/curl_d.php', + 'CURLMOPT_MAXCONNECTS' => 'curl/curl_d.php', + 'CURLMOPT_MAX_CONCURRENT_STREAMS' => 'curl/curl_d.php', + 'CURLMOPT_MAX_HOST_CONNECTIONS' => 'curl/curl_d.php', + 'CURLMOPT_MAX_PIPELINE_LENGTH' => 'curl/curl_d.php', + 'CURLMOPT_MAX_TOTAL_CONNECTIONS' => 'curl/curl_d.php', + 'CURLMOPT_PIPELINING' => 'curl/curl_d.php', + 'CURLMOPT_PUSHFUNCTION' => 'curl/curl_d.php', + 'CURLMSG_DONE' => 'curl/curl_d.php', + 'CURLM_ADDED_ALREADY' => 'curl/curl_d.php', + 'CURLM_BAD_EASY_HANDLE' => 'curl/curl_d.php', + 'CURLM_BAD_HANDLE' => 'curl/curl_d.php', + 'CURLM_CALL_MULTI_PERFORM' => 'curl/curl_d.php', + 'CURLM_INTERNAL_ERROR' => 'curl/curl_d.php', + 'CURLM_OK' => 'curl/curl_d.php', + 'CURLM_OUT_OF_MEMORY' => 'curl/curl_d.php', + 'CURLOPT_ABSTRACT_UNIX_SOCKET' => 'curl/curl_d.php', + 'CURLOPT_ACCEPTTIMEOUT_MS' => 'curl/curl_d.php', + 'CURLOPT_ACCEPT_ENCODING' => 'curl/curl_d.php', + 'CURLOPT_ADDRESS_SCOPE' => 'curl/curl_d.php', + 'CURLOPT_ALTSVC' => 'curl/curl_d.php', + 'CURLOPT_ALTSVC_CTRL' => 'curl/curl_d.php', + 'CURLOPT_APPEND' => 'curl/curl_d.php', + 'CURLOPT_AUTOREFERER' => 'curl/curl_d.php', + 'CURLOPT_AWS_SIGV4' => 'curl/curl_d.php', + 'CURLOPT_BINARYTRANSFER' => 'curl/curl_d.php', + 'CURLOPT_BUFFERSIZE' => 'curl/curl_d.php', + 'CURLOPT_CAINFO' => 'curl/curl_d.php', + 'CURLOPT_CAINFO_BLOB' => 'curl/curl_d.php', + 'CURLOPT_CAPATH' => 'curl/curl_d.php', + 'CURLOPT_CA_CACHE_TIMEOUT' => 'curl/curl_d.php', + 'CURLOPT_CERTINFO' => 'curl/curl_d.php', + 'CURLOPT_CLOSEPOLICY' => 'curl/curl_d.php', + 'CURLOPT_CONNECTTIMEOUT' => 'curl/curl_d.php', + 'CURLOPT_CONNECTTIMEOUT_MS' => 'curl/curl_d.php', + 'CURLOPT_CONNECT_ONLY' => 'curl/curl_d.php', + 'CURLOPT_CONNECT_TO' => 'curl/curl_d.php', + 'CURLOPT_COOKIE' => 'curl/curl_d.php', + 'CURLOPT_COOKIEFILE' => 'curl/curl_d.php', + 'CURLOPT_COOKIEJAR' => 'curl/curl_d.php', + 'CURLOPT_COOKIELIST' => 'curl/curl_d.php', + 'CURLOPT_COOKIESESSION' => 'curl/curl_d.php', + 'CURLOPT_CRLF' => 'curl/curl_d.php', + 'CURLOPT_CRLFILE' => 'curl/curl_d.php', + 'CURLOPT_CUSTOMREQUEST' => 'curl/curl_d.php', + 'CURLOPT_DEFAULT_PROTOCOL' => 'curl/curl_d.php', + 'CURLOPT_DIRLISTONLY' => 'curl/curl_d.php', + 'CURLOPT_DISALLOW_USERNAME_IN_URL' => 'curl/curl_d.php', + 'CURLOPT_DNS_CACHE_TIMEOUT' => 'curl/curl_d.php', + 'CURLOPT_DNS_INTERFACE' => 'curl/curl_d.php', + 'CURLOPT_DNS_LOCAL_IP4' => 'curl/curl_d.php', + 'CURLOPT_DNS_LOCAL_IP6' => 'curl/curl_d.php', + 'CURLOPT_DNS_SERVERS' => 'curl/curl_d.php', + 'CURLOPT_DNS_SHUFFLE_ADDRESSES' => 'curl/curl_d.php', + 'CURLOPT_DNS_USE_GLOBAL_CACHE' => 'curl/curl_d.php', + 'CURLOPT_DOH_SSL_VERIFYHOST' => 'curl/curl_d.php', + 'CURLOPT_DOH_SSL_VERIFYPEER' => 'curl/curl_d.php', + 'CURLOPT_DOH_SSL_VERIFYSTATUS' => 'curl/curl_d.php', + 'CURLOPT_DOH_URL' => 'curl/curl_d.php', + 'CURLOPT_EGDSOCKET' => 'curl/curl_d.php', + 'CURLOPT_ENCODING' => 'curl/curl_d.php', + 'CURLOPT_EXPECT_100_TIMEOUT_MS' => 'curl/curl_d.php', + 'CURLOPT_FAILONERROR' => 'curl/curl_d.php', + 'CURLOPT_FILE' => 'curl/curl_d.php', + 'CURLOPT_FILETIME' => 'curl/curl_d.php', + 'CURLOPT_FNMATCH_FUNCTION' => 'curl/curl_d.php', + 'CURLOPT_FOLLOWLOCATION' => 'curl/curl_d.php', + 'CURLOPT_FORBID_REUSE' => 'curl/curl_d.php', + 'CURLOPT_FRESH_CONNECT' => 'curl/curl_d.php', + 'CURLOPT_FTPAPPEND' => 'curl/curl_d.php', + 'CURLOPT_FTPASCII' => 'curl/curl_d.php', + 'CURLOPT_FTPLISTONLY' => 'curl/curl_d.php', + 'CURLOPT_FTPPORT' => 'curl/curl_d.php', + 'CURLOPT_FTPSSLAUTH' => 'curl/curl_d.php', + 'CURLOPT_FTP_ACCOUNT' => 'curl/curl_d.php', + 'CURLOPT_FTP_ALTERNATIVE_TO_USER' => 'curl/curl_d.php', + 'CURLOPT_FTP_CREATE_MISSING_DIRS' => 'curl/curl_d.php', + 'CURLOPT_FTP_FILEMETHOD' => 'curl/curl_d.php', + 'CURLOPT_FTP_RESPONSE_TIMEOUT' => 'curl/curl_d.php', + 'CURLOPT_FTP_SKIP_PASV_IP' => 'curl/curl_d.php', + 'CURLOPT_FTP_SSL' => 'curl/curl_d.php', + 'CURLOPT_FTP_SSL_CCC' => 'curl/curl_d.php', + 'CURLOPT_FTP_USE_EPRT' => 'curl/curl_d.php', + 'CURLOPT_FTP_USE_EPSV' => 'curl/curl_d.php', + 'CURLOPT_FTP_USE_PRET' => 'curl/curl_d.php', + 'CURLOPT_GSSAPI_DELEGATION' => 'curl/curl_d.php', + 'CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS' => 'curl/curl_d.php', + 'CURLOPT_HAPROXYPROTOCOL' => 'curl/curl_d.php', + 'CURLOPT_HEADER' => 'curl/curl_d.php', + 'CURLOPT_HEADERFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_HEADEROPT' => 'curl/curl_d.php', + 'CURLOPT_HSTS' => 'curl/curl_d.php', + 'CURLOPT_HSTS_CTRL' => 'curl/curl_d.php', + 'CURLOPT_HTTP09_ALLOWED' => 'curl/curl_d.php', + 'CURLOPT_HTTP200ALIASES' => 'curl/curl_d.php', + 'CURLOPT_HTTPAUTH' => 'curl/curl_d.php', + 'CURLOPT_HTTPGET' => 'curl/curl_d.php', + 'CURLOPT_HTTPHEADER' => 'curl/curl_d.php', + 'CURLOPT_HTTPPROXYTUNNEL' => 'curl/curl_d.php', + 'CURLOPT_HTTP_CONTENT_DECODING' => 'curl/curl_d.php', + 'CURLOPT_HTTP_TRANSFER_DECODING' => 'curl/curl_d.php', + 'CURLOPT_HTTP_VERSION' => 'curl/curl_d.php', + 'CURLOPT_IGNORE_CONTENT_LENGTH' => 'curl/curl_d.php', + 'CURLOPT_INFILE' => 'curl/curl_d.php', + 'CURLOPT_INFILESIZE' => 'curl/curl_d.php', + 'CURLOPT_INTERFACE' => 'curl/curl_d.php', + 'CURLOPT_IPRESOLVE' => 'curl/curl_d.php', + 'CURLOPT_ISSUERCERT' => 'curl/curl_d.php', + 'CURLOPT_ISSUERCERT_BLOB' => 'curl/curl_d.php', + 'CURLOPT_KEEP_SENDING_ON_ERROR' => 'curl/curl_d.php', + 'CURLOPT_KEYPASSWD' => 'curl/curl_d.php', + 'CURLOPT_KRB4LEVEL' => 'curl/curl_d.php', + 'CURLOPT_KRBLEVEL' => 'curl/curl_d.php', + 'CURLOPT_LOCALPORT' => 'curl/curl_d.php', + 'CURLOPT_LOCALPORTRANGE' => 'curl/curl_d.php', + 'CURLOPT_LOGIN_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_LOW_SPEED_LIMIT' => 'curl/curl_d.php', + 'CURLOPT_LOW_SPEED_TIME' => 'curl/curl_d.php', + 'CURLOPT_MAIL_AUTH' => 'curl/curl_d.php', + 'CURLOPT_MAIL_FROM' => 'curl/curl_d.php', + 'CURLOPT_MAIL_RCPT' => 'curl/curl_d.php', + 'CURLOPT_MAIL_RCPT_ALLLOWFAILS' => 'curl/curl_d.php', + 'CURLOPT_MAXAGE_CONN' => 'curl/curl_d.php', + 'CURLOPT_MAXCONNECTS' => 'curl/curl_d.php', + 'CURLOPT_MAXFILESIZE' => 'curl/curl_d.php', + 'CURLOPT_MAXFILESIZE_LARGE' => 'curl/curl_d.php', + 'CURLOPT_MAXLIFETIME_CONN' => 'curl/curl_d.php', + 'CURLOPT_MAXREDIRS' => 'curl/curl_d.php', + 'CURLOPT_MAX_RECV_SPEED_LARGE' => 'curl/curl_d.php', + 'CURLOPT_MAX_SEND_SPEED_LARGE' => 'curl/curl_d.php', + 'CURLOPT_MIME_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_MUTE' => 'curl/curl_d.php', + 'CURLOPT_NETRC' => 'curl/curl_d.php', + 'CURLOPT_NETRC_FILE' => 'curl/curl_d.php', + 'CURLOPT_NEW_DIRECTORY_PERMS' => 'curl/curl_d.php', + 'CURLOPT_NEW_FILE_PERMS' => 'curl/curl_d.php', + 'CURLOPT_NOBODY' => 'curl/curl_d.php', + 'CURLOPT_NOPROGRESS' => 'curl/curl_d.php', + 'CURLOPT_NOPROXY' => 'curl/curl_d.php', + 'CURLOPT_NOSIGNAL' => 'curl/curl_d.php', + 'CURLOPT_PASSWDFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_PASSWORD' => 'curl/curl_d.php', + 'CURLOPT_PATH_AS_IS' => 'curl/curl_d.php', + 'CURLOPT_PINNEDPUBLICKEY' => 'curl/curl_d.php', + 'CURLOPT_PIPEWAIT' => 'curl/curl_d.php', + 'CURLOPT_PORT' => 'curl/curl_d.php', + 'CURLOPT_POST' => 'curl/curl_d.php', + 'CURLOPT_POSTFIELDS' => 'curl/curl_d.php', + 'CURLOPT_POSTQUOTE' => 'curl/curl_d.php', + 'CURLOPT_POSTREDIR' => 'curl/curl_d.php', + 'CURLOPT_PREQUOTE' => 'curl/curl_d.php', + 'CURLOPT_PRE_PROXY' => 'curl/curl_d.php', + 'CURLOPT_PRIVATE' => 'curl/curl_d.php', + 'CURLOPT_PROGRESSFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_PROTOCOLS' => 'curl/curl_d.php', + 'CURLOPT_PROTOCOLS_STR' => 'curl/curl_d.php', + 'CURLOPT_PROXY' => 'curl/curl_d.php', + 'CURLOPT_PROXYAUTH' => 'curl/curl_d.php', + 'CURLOPT_PROXYHEADER' => 'curl/curl_d.php', + 'CURLOPT_PROXYPASSWORD' => 'curl/curl_d.php', + 'CURLOPT_PROXYPORT' => 'curl/curl_d.php', + 'CURLOPT_PROXYTYPE' => 'curl/curl_d.php', + 'CURLOPT_PROXYUSERNAME' => 'curl/curl_d.php', + 'CURLOPT_PROXYUSERPWD' => 'curl/curl_d.php', + 'CURLOPT_PROXY_CAINFO' => 'curl/curl_d.php', + 'CURLOPT_PROXY_CAINFO_BLOB' => 'curl/curl_d.php', + 'CURLOPT_PROXY_CAPATH' => 'curl/curl_d.php', + 'CURLOPT_PROXY_CRLFILE' => 'curl/curl_d.php', + 'CURLOPT_PROXY_ISSUERCERT' => 'curl/curl_d.php', + 'CURLOPT_PROXY_ISSUERCERT_BLOB' => 'curl/curl_d.php', + 'CURLOPT_PROXY_KEYPASSWD' => 'curl/curl_d.php', + 'CURLOPT_PROXY_PINNEDPUBLICKEY' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SERVICE_NAME' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLCERT' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLCERTTYPE' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLCERT_BLOB' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLKEY' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLKEYTYPE' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLKEY_BLOB' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSLVERSION' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSL_CIPHER_LIST' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSL_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSL_VERIFYHOST' => 'curl/curl_d.php', + 'CURLOPT_PROXY_SSL_VERIFYPEER' => 'curl/curl_d.php', + 'CURLOPT_PROXY_TLS13_CIPHERS' => 'curl/curl_d.php', + 'CURLOPT_PROXY_TLSAUTH_PASSWORD' => 'curl/curl_d.php', + 'CURLOPT_PROXY_TLSAUTH_TYPE' => 'curl/curl_d.php', + 'CURLOPT_PROXY_TLSAUTH_USERNAME' => 'curl/curl_d.php', + 'CURLOPT_PROXY_TRANSFER_MODE' => 'curl/curl_d.php', + 'CURLOPT_PUT' => 'curl/curl_d.php', + 'CURLOPT_QUICK_EXIT' => 'curl/curl_d.php', + 'CURLOPT_QUOTE' => 'curl/curl_d.php', + 'CURLOPT_RANDOM_FILE' => 'curl/curl_d.php', + 'CURLOPT_RANGE' => 'curl/curl_d.php', + 'CURLOPT_READDATA' => 'curl/curl_d.php', + 'CURLOPT_READFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_REDIR_PROTOCOLS' => 'curl/curl_d.php', + 'CURLOPT_REDIR_PROTOCOLS_STR' => 'curl/curl_d.php', + 'CURLOPT_REFERER' => 'curl/curl_d.php', + 'CURLOPT_REQUEST_TARGET' => 'curl/curl_d.php', + 'CURLOPT_RESOLVE' => 'curl/curl_d.php', + 'CURLOPT_RESUME_FROM' => 'curl/curl_d.php', + 'CURLOPT_RETURNTRANSFER' => 'curl/curl_d.php', + 'CURLOPT_RTSP_CLIENT_CSEQ' => 'curl/curl_d.php', + 'CURLOPT_RTSP_REQUEST' => 'curl/curl_d.php', + 'CURLOPT_RTSP_SERVER_CSEQ' => 'curl/curl_d.php', + 'CURLOPT_RTSP_SESSION_ID' => 'curl/curl_d.php', + 'CURLOPT_RTSP_STREAM_URI' => 'curl/curl_d.php', + 'CURLOPT_RTSP_TRANSPORT' => 'curl/curl_d.php', + 'CURLOPT_SAFE_UPLOAD' => 'curl/curl_d.php', + 'CURLOPT_SASL_AUTHZID' => 'curl/curl_d.php', + 'CURLOPT_SASL_IR' => 'curl/curl_d.php', + 'CURLOPT_SERVICE_NAME' => 'curl/curl_d.php', + 'CURLOPT_SHARE' => 'curl/curl_d.php', + 'CURLOPT_SOCKS5_AUTH' => 'curl/curl_d.php', + 'CURLOPT_SOCKS5_GSSAPI_NEC' => 'curl/curl_d.php', + 'CURLOPT_SOCKS5_GSSAPI_SERVICE' => 'curl/curl_d.php', + 'CURLOPT_SSH_AUTH_TYPES' => 'curl/curl_d.php', + 'CURLOPT_SSH_COMPRESSION' => 'curl/curl_d.php', + 'CURLOPT_SSH_HOSTKEYFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_SSH_HOST_PUBLIC_KEY_MD5' => 'curl/curl_d.php', + 'CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256' => 'curl/curl_d.php', + 'CURLOPT_SSH_KNOWNHOSTS' => 'curl/curl_d.php', + 'CURLOPT_SSH_PRIVATE_KEYFILE' => 'curl/curl_d.php', + 'CURLOPT_SSH_PUBLIC_KEYFILE' => 'curl/curl_d.php', + 'CURLOPT_SSLCERT' => 'curl/curl_d.php', + 'CURLOPT_SSLCERTPASSWD' => 'curl/curl_d.php', + 'CURLOPT_SSLCERTTYPE' => 'curl/curl_d.php', + 'CURLOPT_SSLCERT_BLOB' => 'curl/curl_d.php', + 'CURLOPT_SSLENGINE' => 'curl/curl_d.php', + 'CURLOPT_SSLENGINE_DEFAULT' => 'curl/curl_d.php', + 'CURLOPT_SSLKEY' => 'curl/curl_d.php', + 'CURLOPT_SSLKEYPASSWD' => 'curl/curl_d.php', + 'CURLOPT_SSLKEYTYPE' => 'curl/curl_d.php', + 'CURLOPT_SSLKEY_BLOB' => 'curl/curl_d.php', + 'CURLOPT_SSLVERSION' => 'curl/curl_d.php', + 'CURLOPT_SSL_CIPHER_LIST' => 'curl/curl_d.php', + 'CURLOPT_SSL_EC_CURVES' => 'curl/curl_d.php', + 'CURLOPT_SSL_ENABLE_ALPN' => 'curl/curl_d.php', + 'CURLOPT_SSL_ENABLE_NPN' => 'curl/curl_d.php', + 'CURLOPT_SSL_FALSESTART' => 'curl/curl_d.php', + 'CURLOPT_SSL_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_SSL_SESSIONID_CACHE' => 'curl/curl_d.php', + 'CURLOPT_SSL_VERIFYHOST' => 'curl/curl_d.php', + 'CURLOPT_SSL_VERIFYPEER' => 'curl/curl_d.php', + 'CURLOPT_SSL_VERIFYSTATUS' => 'curl/curl_d.php', + 'CURLOPT_STDERR' => 'curl/curl_d.php', + 'CURLOPT_STREAM_WEIGHT' => 'curl/curl_d.php', + 'CURLOPT_SUPPRESS_CONNECT_HEADERS' => 'curl/curl_d.php', + 'CURLOPT_TCP_FASTOPEN' => 'curl/curl_d.php', + 'CURLOPT_TCP_KEEPALIVE' => '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', + 'CURLOPT_TELNETOPTIONS' => 'curl/curl_d.php', + 'CURLOPT_TFTP_BLKSIZE' => 'curl/curl_d.php', + 'CURLOPT_TFTP_NO_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_TIMECONDITION' => 'curl/curl_d.php', + 'CURLOPT_TIMEOUT' => 'curl/curl_d.php', + 'CURLOPT_TIMEOUT_MS' => 'curl/curl_d.php', + 'CURLOPT_TIMEVALUE' => 'curl/curl_d.php', + 'CURLOPT_TIMEVALUE_LARGE' => 'curl/curl_d.php', + 'CURLOPT_TLS13_CIPHERS' => 'curl/curl_d.php', + 'CURLOPT_TLSAUTH_PASSWORD' => 'curl/curl_d.php', + 'CURLOPT_TLSAUTH_TYPE' => 'curl/curl_d.php', + 'CURLOPT_TLSAUTH_USERNAME' => 'curl/curl_d.php', + 'CURLOPT_TRANSFERTEXT' => 'curl/curl_d.php', + 'CURLOPT_TRANSFER_ENCODING' => 'curl/curl_d.php', + 'CURLOPT_UNIX_SOCKET_PATH' => 'curl/curl_d.php', + 'CURLOPT_UNRESTRICTED_AUTH' => 'curl/curl_d.php', + 'CURLOPT_UPKEEP_INTERVAL_MS' => 'curl/curl_d.php', + 'CURLOPT_UPLOAD' => 'curl/curl_d.php', + 'CURLOPT_UPLOAD_BUFFERSIZE' => 'curl/curl_d.php', + 'CURLOPT_URL' => 'curl/curl_d.php', + 'CURLOPT_USERAGENT' => 'curl/curl_d.php', + 'CURLOPT_USERNAME' => 'curl/curl_d.php', + 'CURLOPT_USERPWD' => 'curl/curl_d.php', + 'CURLOPT_USE_SSL' => 'curl/curl_d.php', + 'CURLOPT_VERBOSE' => 'curl/curl_d.php', + 'CURLOPT_WILDCARDMATCH' => 'curl/curl_d.php', + 'CURLOPT_WRITEFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_WRITEHEADER' => 'curl/curl_d.php', + 'CURLOPT_WS_OPTIONS' => 'curl/curl_d.php', + 'CURLOPT_XFERINFOFUNCTION' => 'curl/curl_d.php', + 'CURLOPT_XOAUTH2_BEARER' => 'curl/curl_d.php', + 'CURLPAUSE_ALL' => 'curl/curl_d.php', + 'CURLPAUSE_CONT' => 'curl/curl_d.php', + 'CURLPAUSE_RECV' => 'curl/curl_d.php', + 'CURLPAUSE_RECV_CONT' => 'curl/curl_d.php', + 'CURLPAUSE_SEND' => 'curl/curl_d.php', + 'CURLPAUSE_SEND_CONT' => 'curl/curl_d.php', + 'CURLPIPE_HTTP1' => 'curl/curl_d.php', + 'CURLPIPE_MULTIPLEX' => 'curl/curl_d.php', + 'CURLPIPE_NOTHING' => 'curl/curl_d.php', + 'CURLPROTO_ALL' => 'curl/curl_d.php', + 'CURLPROTO_DICT' => 'curl/curl_d.php', + 'CURLPROTO_FILE' => 'curl/curl_d.php', + 'CURLPROTO_FTP' => 'curl/curl_d.php', + 'CURLPROTO_FTPS' => 'curl/curl_d.php', + 'CURLPROTO_GOPHER' => 'curl/curl_d.php', + 'CURLPROTO_HTTP' => 'curl/curl_d.php', + 'CURLPROTO_HTTPS' => 'curl/curl_d.php', + 'CURLPROTO_IMAP' => 'curl/curl_d.php', + 'CURLPROTO_IMAPS' => 'curl/curl_d.php', + 'CURLPROTO_LDAP' => 'curl/curl_d.php', + 'CURLPROTO_LDAPS' => 'curl/curl_d.php', + 'CURLPROTO_MQTT' => 'curl/curl_d.php', + 'CURLPROTO_POP3' => 'curl/curl_d.php', + 'CURLPROTO_POP3S' => 'curl/curl_d.php', + 'CURLPROTO_RTMP' => 'curl/curl_d.php', + 'CURLPROTO_RTMPE' => 'curl/curl_d.php', + 'CURLPROTO_RTMPS' => 'curl/curl_d.php', + 'CURLPROTO_RTMPT' => 'curl/curl_d.php', + 'CURLPROTO_RTMPTE' => 'curl/curl_d.php', + 'CURLPROTO_RTMPTS' => 'curl/curl_d.php', + 'CURLPROTO_RTSP' => 'curl/curl_d.php', + 'CURLPROTO_SCP' => 'curl/curl_d.php', + 'CURLPROTO_SFTP' => 'curl/curl_d.php', + 'CURLPROTO_SMB' => 'curl/curl_d.php', + 'CURLPROTO_SMBS' => 'curl/curl_d.php', + 'CURLPROTO_SMTP' => 'curl/curl_d.php', + 'CURLPROTO_SMTPS' => 'curl/curl_d.php', + 'CURLPROTO_TELNET' => 'curl/curl_d.php', + 'CURLPROTO_TFTP' => 'curl/curl_d.php', + 'CURLPROXY_HTTP' => 'curl/curl_d.php', + 'CURLPROXY_HTTPS' => 'curl/curl_d.php', + 'CURLPROXY_HTTP_1_0' => 'curl/curl_d.php', + 'CURLPROXY_SOCKS4' => 'curl/curl_d.php', + 'CURLPROXY_SOCKS4A' => 'curl/curl_d.php', + 'CURLPROXY_SOCKS5' => 'curl/curl_d.php', + 'CURLPROXY_SOCKS5_HOSTNAME' => 'curl/curl_d.php', + 'CURLPX_BAD_ADDRESS_TYPE' => 'curl/curl_d.php', + 'CURLPX_BAD_VERSION' => 'curl/curl_d.php', + 'CURLPX_CLOSED' => 'curl/curl_d.php', + 'CURLPX_GSSAPI' => 'curl/curl_d.php', + 'CURLPX_GSSAPI_PERMSG' => 'curl/curl_d.php', + 'CURLPX_GSSAPI_PROTECTION' => 'curl/curl_d.php', + 'CURLPX_IDENTD' => 'curl/curl_d.php', + 'CURLPX_IDENTD_DIFFER' => 'curl/curl_d.php', + 'CURLPX_LONG_HOSTNAME' => 'curl/curl_d.php', + 'CURLPX_LONG_PASSWD' => 'curl/curl_d.php', + 'CURLPX_LONG_USER' => 'curl/curl_d.php', + 'CURLPX_NO_AUTH' => 'curl/curl_d.php', + 'CURLPX_OK' => 'curl/curl_d.php', + 'CURLPX_RECV_ADDRESS' => 'curl/curl_d.php', + 'CURLPX_RECV_AUTH' => 'curl/curl_d.php', + 'CURLPX_RECV_CONNECT' => 'curl/curl_d.php', + 'CURLPX_RECV_REQACK' => 'curl/curl_d.php', + 'CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED' => 'curl/curl_d.php', + 'CURLPX_REPLY_COMMAND_NOT_SUPPORTED' => 'curl/curl_d.php', + 'CURLPX_REPLY_CONNECTION_REFUSED' => 'curl/curl_d.php', + 'CURLPX_REPLY_GENERAL_SERVER_FAILURE' => 'curl/curl_d.php', + 'CURLPX_REPLY_HOST_UNREACHABLE' => 'curl/curl_d.php', + 'CURLPX_REPLY_NETWORK_UNREACHABLE' => 'curl/curl_d.php', + 'CURLPX_REPLY_NOT_ALLOWED' => 'curl/curl_d.php', + 'CURLPX_REPLY_TTL_EXPIRED' => 'curl/curl_d.php', + 'CURLPX_REPLY_UNASSIGNED' => 'curl/curl_d.php', + 'CURLPX_REQUEST_FAILED' => 'curl/curl_d.php', + 'CURLPX_RESOLVE_HOST' => 'curl/curl_d.php', + 'CURLPX_SEND_AUTH' => 'curl/curl_d.php', + 'CURLPX_SEND_CONNECT' => 'curl/curl_d.php', + 'CURLPX_SEND_REQUEST' => 'curl/curl_d.php', + 'CURLPX_UNKNOWN_FAIL' => 'curl/curl_d.php', + 'CURLPX_UNKNOWN_MODE' => 'curl/curl_d.php', + 'CURLPX_USER_REJECTED' => 'curl/curl_d.php', + 'CURLSHOPT_NONE' => 'curl/curl_d.php', + 'CURLSHOPT_SHARE' => 'curl/curl_d.php', + 'CURLSHOPT_UNSHARE' => 'curl/curl_d.php', + 'CURLSSH_AUTH_AGENT' => 'curl/curl_d.php', + 'CURLSSH_AUTH_ANY' => 'curl/curl_d.php', + 'CURLSSH_AUTH_DEFAULT' => 'curl/curl_d.php', + 'CURLSSH_AUTH_GSSAPI' => 'curl/curl_d.php', + 'CURLSSH_AUTH_HOST' => 'curl/curl_d.php', + 'CURLSSH_AUTH_KEYBOARD' => 'curl/curl_d.php', + 'CURLSSH_AUTH_NONE' => 'curl/curl_d.php', + 'CURLSSH_AUTH_PASSWORD' => 'curl/curl_d.php', + 'CURLSSH_AUTH_PUBLICKEY' => 'curl/curl_d.php', + 'CURLSSLOPT_ALLOW_BEAST' => 'curl/curl_d.php', + 'CURLSSLOPT_AUTO_CLIENT_CERT' => 'curl/curl_d.php', + 'CURLSSLOPT_NATIVE_CA' => 'curl/curl_d.php', + 'CURLSSLOPT_NO_PARTIALCHAIN' => 'curl/curl_d.php', + 'CURLSSLOPT_NO_REVOKE' => 'curl/curl_d.php', + 'CURLSSLOPT_REVOKE_BEST_EFFORT' => 'curl/curl_d.php', + 'CURLUSESSL_ALL' => 'curl/curl_d.php', + 'CURLUSESSL_CONTROL' => 'curl/curl_d.php', + 'CURLUSESSL_NONE' => 'curl/curl_d.php', + 'CURLUSESSL_TRY' => 'curl/curl_d.php', + 'CURLVERSION_NOW' => 'curl/curl_d.php', + 'CURLWS_RAW_MODE' => 'curl/curl_d.php', + 'CURL_FNMATCHFUNC_FAIL' => 'curl/curl_d.php', + 'CURL_FNMATCHFUNC_MATCH' => 'curl/curl_d.php', + 'CURL_FNMATCHFUNC_NOMATCH' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_1_0' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_1_1' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_2' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_2TLS' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_2_0' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE' => 'curl/curl_d.php', + 'CURL_HTTP_VERSION_NONE' => 'curl/curl_d.php', + 'CURL_IPRESOLVE_V4' => 'curl/curl_d.php', + 'CURL_IPRESOLVE_V6' => 'curl/curl_d.php', + 'CURL_IPRESOLVE_WHATEVER' => 'curl/curl_d.php', + 'CURL_LOCK_DATA_CONNECT' => 'curl/curl_d.php', + 'CURL_LOCK_DATA_COOKIE' => 'curl/curl_d.php', + 'CURL_LOCK_DATA_DNS' => 'curl/curl_d.php', + 'CURL_LOCK_DATA_PSL' => 'curl/curl_d.php', + 'CURL_LOCK_DATA_SSL_SESSION' => 'curl/curl_d.php', + 'CURL_MAX_READ_SIZE' => 'curl/curl_d.php', + 'CURL_NETRC_IGNORED' => 'curl/curl_d.php', + 'CURL_NETRC_OPTIONAL' => 'curl/curl_d.php', + 'CURL_NETRC_REQUIRED' => 'curl/curl_d.php', + 'CURL_PUSH_DENY' => 'curl/curl_d.php', + 'CURL_PUSH_OK' => 'curl/curl_d.php', + 'CURL_READFUNC_PAUSE' => 'curl/curl_d.php', + 'CURL_REDIR_POST_301' => 'curl/curl_d.php', + 'CURL_REDIR_POST_302' => 'curl/curl_d.php', + 'CURL_REDIR_POST_303' => 'curl/curl_d.php', + 'CURL_REDIR_POST_ALL' => 'curl/curl_d.php', + 'CURL_RTSPREQ_ANNOUNCE' => 'curl/curl_d.php', + 'CURL_RTSPREQ_DESCRIBE' => 'curl/curl_d.php', + 'CURL_RTSPREQ_GET_PARAMETER' => 'curl/curl_d.php', + 'CURL_RTSPREQ_OPTIONS' => 'curl/curl_d.php', + 'CURL_RTSPREQ_PAUSE' => 'curl/curl_d.php', + 'CURL_RTSPREQ_PLAY' => 'curl/curl_d.php', + 'CURL_RTSPREQ_RECEIVE' => 'curl/curl_d.php', + 'CURL_RTSPREQ_RECORD' => 'curl/curl_d.php', + 'CURL_RTSPREQ_SETUP' => 'curl/curl_d.php', + 'CURL_RTSPREQ_SET_PARAMETER' => 'curl/curl_d.php', + 'CURL_RTSPREQ_TEARDOWN' => 'curl/curl_d.php', + 'CURL_SSLVERSION_DEFAULT' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_DEFAULT' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_NONE' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_TLSv1_0' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_TLSv1_1' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_TLSv1_2' => 'curl/curl_d.php', + 'CURL_SSLVERSION_MAX_TLSv1_3' => 'curl/curl_d.php', + 'CURL_SSLVERSION_SSLv2' => 'curl/curl_d.php', + 'CURL_SSLVERSION_SSLv3' => 'curl/curl_d.php', + 'CURL_SSLVERSION_TLSv1' => 'curl/curl_d.php', + 'CURL_SSLVERSION_TLSv1_0' => 'curl/curl_d.php', + 'CURL_SSLVERSION_TLSv1_1' => 'curl/curl_d.php', + 'CURL_SSLVERSION_TLSv1_2' => 'curl/curl_d.php', + 'CURL_SSLVERSION_TLSv1_3' => 'curl/curl_d.php', + 'CURL_TIMECOND_IFMODSINCE' => 'curl/curl_d.php', + 'CURL_TIMECOND_IFUNMODSINCE' => 'curl/curl_d.php', + 'CURL_TIMECOND_LASTMOD' => 'curl/curl_d.php', + 'CURL_TIMECOND_NONE' => 'curl/curl_d.php', + 'CURL_TLSAUTH_SRP' => 'curl/curl_d.php', + 'CURL_VERSION_ALTSVC' => 'curl/curl_d.php', + 'CURL_VERSION_ASYNCHDNS' => 'curl/curl_d.php', + 'CURL_VERSION_BROTLI' => 'curl/curl_d.php', + 'CURL_VERSION_CONV' => 'curl/curl_d.php', + 'CURL_VERSION_CURLDEBUG' => 'curl/curl_d.php', + 'CURL_VERSION_DEBUG' => 'curl/curl_d.php', + 'CURL_VERSION_GSASL' => 'curl/curl_d.php', + 'CURL_VERSION_GSSAPI' => 'curl/curl_d.php', + 'CURL_VERSION_GSSNEGOTIATE' => 'curl/curl_d.php', + 'CURL_VERSION_HSTS' => 'curl/curl_d.php', + 'CURL_VERSION_HTTP2' => 'curl/curl_d.php', + 'CURL_VERSION_HTTP3' => 'curl/curl_d.php', + 'CURL_VERSION_HTTPS_PROXY' => 'curl/curl_d.php', + 'CURL_VERSION_IDN' => 'curl/curl_d.php', + 'CURL_VERSION_IPV6' => 'curl/curl_d.php', + 'CURL_VERSION_KERBEROS4' => 'curl/curl_d.php', + 'CURL_VERSION_KERBEROS5' => 'curl/curl_d.php', + 'CURL_VERSION_LARGEFILE' => 'curl/curl_d.php', + 'CURL_VERSION_LIBZ' => 'curl/curl_d.php', + 'CURL_VERSION_MULTI_SSL' => 'curl/curl_d.php', + 'CURL_VERSION_NTLM' => 'curl/curl_d.php', + 'CURL_VERSION_NTLM_WB' => 'curl/curl_d.php', + 'CURL_VERSION_PSL' => 'curl/curl_d.php', + 'CURL_VERSION_SPNEGO' => 'curl/curl_d.php', + 'CURL_VERSION_SSL' => 'curl/curl_d.php', + 'CURL_VERSION_SSPI' => 'curl/curl_d.php', + 'CURL_VERSION_TLSAUTH_SRP' => 'curl/curl_d.php', + 'CURL_VERSION_UNICODE' => 'curl/curl_d.php', + 'CURL_VERSION_UNIX_SOCKETS' => 'curl/curl_d.php', + 'CURL_VERSION_ZSTD' => 'curl/curl_d.php', + 'CURL_WRITEFUNC_PAUSE' => 'curl/curl_d.php', + 'CURRENCY_SYMBOL' => 'standard/standard_defines.php', + 'CYAN' => 'winbinder/winbinder.php', + 'Calendar' => 'winbinder/winbinder.php', + 'CheckBox' => 'winbinder/winbinder.php', + 'ComboBox' => 'winbinder/winbinder.php', + 'DARKBLUE' => 'winbinder/winbinder.php', + 'DARKCYAN' => 'winbinder/winbinder.php', + 'DARKGRAY' => 'winbinder/winbinder.php', + 'DARKGREEN' => 'winbinder/winbinder.php', + 'DARKMAGENTA' => 'winbinder/winbinder.php', + 'DARKRED' => 'winbinder/winbinder.php', + 'DARKYELLOW' => 'winbinder/winbinder.php', + 'DATE_ATOM' => 'date/date_d.php', + 'DATE_COOKIE' => 'date/date_d.php', + 'DATE_ISO8601' => 'date/date_d.php', + 'DATE_ISO8601_EXPANDED' => 'date/date_d.php', + 'DATE_RFC1036' => 'date/date_d.php', + 'DATE_RFC1123' => 'date/date_d.php', + 'DATE_RFC2822' => 'date/date_d.php', + 'DATE_RFC3339' => 'date/date_d.php', + 'DATE_RFC3339_EXTENDED' => 'date/date_d.php', + 'DATE_RFC7231' => 'date/date_d.php', + 'DATE_RFC822' => 'date/date_d.php', + 'DATE_RFC850' => 'date/date_d.php', + 'DATE_RSS' => 'date/date_d.php', + 'DATE_W3C' => 'date/date_d.php', + 'DAY_1' => 'standard/standard_defines.php', + 'DAY_2' => 'standard/standard_defines.php', + 'DAY_3' => 'standard/standard_defines.php', + 'DAY_4' => 'standard/standard_defines.php', + 'DAY_5' => 'standard/standard_defines.php', + 'DAY_6' => 'standard/standard_defines.php', + 'DAY_7' => 'standard/standard_defines.php', + 'DB2_AUTOCOMMIT_OFF' => 'ibm_db2/ibm_db2.php', + 'DB2_AUTOCOMMIT_ON' => 'ibm_db2/ibm_db2.php', + 'DB2_BINARY' => 'ibm_db2/ibm_db2.php', + 'DB2_CASE_LOWER' => 'ibm_db2/ibm_db2.php', + 'DB2_CASE_NATURAL' => 'ibm_db2/ibm_db2.php', + 'DB2_CASE_UPPER' => 'ibm_db2/ibm_db2.php', + 'DB2_CHAR' => 'ibm_db2/ibm_db2.php', + 'DB2_CONVERT' => 'ibm_db2/ibm_db2.php', + 'DB2_DEFERRED_PREPARE_OFF' => 'ibm_db2/ibm_db2.php', + 'DB2_DEFERRED_PREPARE_ON' => 'ibm_db2/ibm_db2.php', + 'DB2_DOUBLE' => 'ibm_db2/ibm_db2.php', + 'DB2_FORWARD_ONLY' => 'ibm_db2/ibm_db2.php', + 'DB2_LONG' => 'ibm_db2/ibm_db2.php', + 'DB2_PARAM_FILE' => 'ibm_db2/ibm_db2.php', + 'DB2_PARAM_IN' => 'ibm_db2/ibm_db2.php', + 'DB2_PARAM_INOUT' => 'ibm_db2/ibm_db2.php', + 'DB2_PARAM_OUT' => 'ibm_db2/ibm_db2.php', + 'DB2_PASSTHRU' => 'ibm_db2/ibm_db2.php', + 'DB2_SCROLLABLE' => 'ibm_db2/ibm_db2.php', + 'DB2_XML' => 'ibm_db2/ibm_db2.php', + 'DBA_LMDB_NO_SUB_DIR' => 'dba/dba.php', + 'DBA_LMDB_USE_SUB_DIR' => 'dba/dba.php', + 'DEBUG_BACKTRACE_IGNORE_ARGS' => 'Core/Core_d.php', + 'DEBUG_BACKTRACE_PROVIDE_OBJECT' => 'Core/Core_d.php', + 'DECIMAL_POINT' => 'standard/standard_defines.php', + 'DEFAULT_INCLUDE_PATH' => 'Core/Core_d.php', + 'DIRECTORY_SEPARATOR' => 'standard/standard_defines.php', + 'DISP_E_DIVBYZERO' => 'com_dotnet/com_dotnet.php', + 'DISP_E_OVERFLOW' => 'com_dotnet/com_dotnet.php', + 'DNS_A' => 'standard/standard_defines.php', + 'DNS_A6' => 'standard/standard_defines.php', + 'DNS_AAAA' => 'standard/standard_defines.php', + 'DNS_ALL' => 'standard/standard_defines.php', + 'DNS_ANY' => 'standard/standard_defines.php', + 'DNS_CAA' => 'standard/standard_defines.php', + 'DNS_CNAME' => 'standard/standard_defines.php', + 'DNS_HINFO' => 'standard/standard_defines.php', + 'DNS_MX' => 'standard/standard_defines.php', + 'DNS_NAPTR' => 'standard/standard_defines.php', + 'DNS_NS' => 'standard/standard_defines.php', + 'DNS_PTR' => 'standard/standard_defines.php', + 'DNS_SOA' => 'standard/standard_defines.php', + 'DNS_SRV' => 'standard/standard_defines.php', + 'DNS_TXT' => 'standard/standard_defines.php', + 'DOMSTRING_SIZE_ERR' => 'dom/dom.php', + 'DOM_HIERARCHY_REQUEST_ERR' => 'dom/dom.php', + 'DOM_INDEX_SIZE_ERR' => 'dom/dom.php', + 'DOM_INUSE_ATTRIBUTE_ERR' => 'dom/dom.php', + 'DOM_INVALID_ACCESS_ERR' => 'dom/dom.php', + 'DOM_INVALID_CHARACTER_ERR' => 'dom/dom.php', + 'DOM_INVALID_MODIFICATION_ERR' => 'dom/dom.php', + 'DOM_INVALID_STATE_ERR' => 'dom/dom.php', + 'DOM_NAMESPACE_ERR' => 'dom/dom.php', + 'DOM_NOT_FOUND_ERR' => 'dom/dom.php', + 'DOM_NOT_SUPPORTED_ERR' => 'dom/dom.php', + 'DOM_NO_DATA_ALLOWED_ERR' => 'dom/dom.php', + 'DOM_NO_MODIFICATION_ALLOWED_ERR' => 'dom/dom.php', + 'DOM_PHP_ERR' => 'dom/dom.php', + 'DOM_SYNTAX_ERR' => 'dom/dom.php', + 'DOM_VALIDATION_ERR' => 'dom/dom.php', + 'DOM_WRONG_DOCUMENT_ERR' => 'dom/dom.php', + 'D_FMT' => 'standard/standard_defines.php', + 'D_T_FMT' => 'standard/standard_defines.php', + 'EIO_DEBUG' => 'eio/eio.php', + 'EIO_DT_BLK' => 'eio/eio.php', + 'EIO_DT_CHR' => 'eio/eio.php', + 'EIO_DT_CMP' => 'eio/eio.php', + 'EIO_DT_DIR' => 'eio/eio.php', + 'EIO_DT_DOOR' => 'eio/eio.php', + 'EIO_DT_FIFO' => 'eio/eio.php', + 'EIO_DT_LNK' => 'eio/eio.php', + 'EIO_DT_MAX' => 'eio/eio.php', + 'EIO_DT_MPB' => 'eio/eio.php', + 'EIO_DT_MPC' => 'eio/eio.php', + 'EIO_DT_NAM' => 'eio/eio.php', + 'EIO_DT_NWK' => 'eio/eio.php', + 'EIO_DT_REG' => 'eio/eio.php', + 'EIO_DT_SOCK' => 'eio/eio.php', + 'EIO_DT_UNKNOWN' => 'eio/eio.php', + 'EIO_DT_WHT' => 'eio/eio.php', + 'EIO_FALLOC_FL_KEEP_SIZE' => 'eio/eio.php', + 'EIO_O_APPEND' => 'eio/eio.php', + 'EIO_O_CREAT' => 'eio/eio.php', + 'EIO_O_EXCL' => 'eio/eio.php', + 'EIO_O_FSYNC' => 'eio/eio.php', + 'EIO_O_NONBLOCK' => 'eio/eio.php', + 'EIO_O_RDONLY' => 'eio/eio.php', + 'EIO_O_RDWR' => 'eio/eio.php', + 'EIO_O_TRUNC' => 'eio/eio.php', + 'EIO_O_WRONLY' => 'eio/eio.php', + 'EIO_PRI_DEFAULT' => 'eio/eio.php', + 'EIO_PRI_MAX' => 'eio/eio.php', + 'EIO_PRI_MIN' => 'eio/eio.php', + 'EIO_READDIR_DENTS' => 'eio/eio.php', + 'EIO_READDIR_DIRS_FIRST' => 'eio/eio.php', + 'EIO_READDIR_FOUND_UNKNOWN' => 'eio/eio.php', + 'EIO_READDIR_STAT_ORDER' => 'eio/eio.php', + 'EIO_SEEK_CUR' => 'eio/eio.php', + 'EIO_SEEK_END' => 'eio/eio.php', + 'EIO_SEEK_SET' => 'eio/eio.php', + 'EIO_SYNC_FILE_RANGE_WAIT_AFTER' => 'eio/eio.php', + 'EIO_SYNC_FILE_RANGE_WAIT_BEFORE' => 'eio/eio.php', + 'EIO_SYNC_FILE_RANGE_WRITE' => 'eio/eio.php', + 'EIO_S_IFBLK' => 'eio/eio.php', + 'EIO_S_IFCHR' => 'eio/eio.php', + 'EIO_S_IFIFO' => 'eio/eio.php', + 'EIO_S_IFREG' => 'eio/eio.php', + 'EIO_S_IFSOCK' => 'eio/eio.php', + 'EIO_S_IRGRP' => 'eio/eio.php', + 'EIO_S_IROTH' => 'eio/eio.php', + 'EIO_S_IRUSR' => 'eio/eio.php', + 'EIO_S_IWGRP' => 'eio/eio.php', + 'EIO_S_IWOTH' => 'eio/eio.php', + 'EIO_S_IWUSR' => 'eio/eio.php', + 'EIO_S_IXGRP' => 'eio/eio.php', + 'EIO_S_IXOTH' => 'eio/eio.php', + 'EIO_S_IXUSR' => 'eio/eio.php', + 'ENC7BIT' => 'imap/imap.php', + 'ENC8BIT' => 'imap/imap.php', + 'ENCBASE64' => 'imap/imap.php', + 'ENCBINARY' => 'imap/imap.php', + 'ENCHANT_ISPELL' => 'enchant/enchant.php', + 'ENCHANT_MYSPELL' => 'enchant/enchant.php', + 'ENCOTHER' => 'imap/imap.php', + 'ENCQUOTEDPRINTABLE' => 'imap/imap.php', + 'ENT_COMPAT' => 'standard/standard_defines.php', + 'ENT_DISALLOWED' => 'standard/standard_defines.php', + 'ENT_HTML401' => 'standard/standard_defines.php', + 'ENT_HTML5' => 'standard/standard_defines.php', + 'ENT_IGNORE' => 'standard/standard_defines.php', + 'ENT_NOQUOTES' => 'standard/standard_defines.php', + 'ENT_QUOTES' => 'standard/standard_defines.php', + 'ENT_SUBSTITUTE' => 'standard/standard_defines.php', + 'ENT_XHTML' => 'standard/standard_defines.php', + 'ENT_XML1' => 'standard/standard_defines.php', + 'ERA' => 'standard/standard_defines.php', + 'ERA_D_FMT' => 'standard/standard_defines.php', + 'ERA_D_T_FMT' => 'standard/standard_defines.php', + 'ERA_T_FMT' => 'standard/standard_defines.php', + 'ERA_YEAR' => 'standard/standard_defines.php', + 'EVBUFFER_EOF' => 'libevent/libevent.php', + 'EVBUFFER_ERROR' => 'libevent/libevent.php', + 'EVBUFFER_READ' => 'libevent/libevent.php', + 'EVBUFFER_TIMEOUT' => 'libevent/libevent.php', + 'EVBUFFER_WRITE' => 'libevent/libevent.php', + 'EVLOOP_NONBLOCK' => 'libevent/libevent.php', + 'EVLOOP_ONCE' => 'libevent/libevent.php', + 'EV_PERSIST' => 'libevent/libevent.php', + 'EV_READ' => 'libevent/libevent.php', + 'EV_SIGNAL' => 'libevent/libevent.php', + 'EV_TIMEOUT' => 'libevent/libevent.php', + 'EV_WRITE' => 'libevent/libevent.php', + 'EXIF_USE_MBSTRING' => 'exif/exif.php', + 'EXP_EOF' => 'expect/expect.php', + 'EXP_EXACT' => 'expect/expect.php', + 'EXP_FULLBUFFER' => 'expect/expect.php', + 'EXP_GLOB' => 'expect/expect.php', + 'EXP_REGEXP' => 'expect/expect.php', + 'EXP_TIMEOUT' => 'expect/expect.php', + 'EXTR_IF_EXISTS' => 'standard/standard_defines.php', + 'EXTR_OVERWRITE' => 'standard/standard_defines.php', + 'EXTR_PREFIX_ALL' => 'standard/standard_defines.php', + 'EXTR_PREFIX_IF_EXISTS' => 'standard/standard_defines.php', + 'EXTR_PREFIX_INVALID' => 'standard/standard_defines.php', + 'EXTR_PREFIX_SAME' => 'standard/standard_defines.php', + 'EXTR_REFS' => 'standard/standard_defines.php', + 'EXTR_SKIP' => 'standard/standard_defines.php', + 'E_ALL' => 'Core/Core_d.php', + 'E_COMPILE_ERROR' => 'Core/Core_d.php', + 'E_COMPILE_WARNING' => 'Core/Core_d.php', + 'E_CORE_ERROR' => 'Core/Core_d.php', + 'E_CORE_WARNING' => 'Core/Core_d.php', + 'E_DEPRECATED' => 'Core/Core_d.php', + 'E_ERROR' => 'Core/Core_d.php', + 'E_NOTICE' => 'Core/Core_d.php', + 'E_PARSE' => 'Core/Core_d.php', + 'E_RECOVERABLE_ERROR' => 'Core/Core_d.php', + 'E_STRICT' => 'Core/Core_d.php', + 'E_USER_DEPRECATED' => 'Core/Core_d.php', + 'E_USER_ERROR' => 'Core/Core_d.php', + 'E_USER_NOTICE' => 'Core/Core_d.php', + 'E_USER_WARNING' => 'Core/Core_d.php', + 'E_WARNING' => 'Core/Core_d.php', + 'EditBox' => 'winbinder/winbinder.php', + 'FANN_COS' => 'fann/fann.php', + 'FANN_COS_SYMMETRIC' => 'fann/fann.php', + 'FANN_ELLIOT' => 'fann/fann.php', + 'FANN_ELLIOT_SYMMETRIC' => 'fann/fann.php', + 'FANN_ERRORFUNC_LINEAR' => 'fann/fann.php', + 'FANN_ERRORFUNC_TANH' => 'fann/fann.php', + 'FANN_E_CANT_ALLOCATE_MEM' => 'fann/fann.php', + 'FANN_E_CANT_OPEN_CONFIG_R' => 'fann/fann.php', + 'FANN_E_CANT_OPEN_CONFIG_W' => 'fann/fann.php', + 'FANN_E_CANT_OPEN_TD_R' => 'fann/fann.php', + 'FANN_E_CANT_OPEN_TD_W' => 'fann/fann.php', + 'FANN_E_CANT_READ_CONFIG' => 'fann/fann.php', + 'FANN_E_CANT_READ_CONNECTIONS' => 'fann/fann.php', + 'FANN_E_CANT_READ_NEURON' => 'fann/fann.php', + 'FANN_E_CANT_READ_TD' => 'fann/fann.php', + 'FANN_E_CANT_TRAIN_ACTIVATION' => 'fann/fann.php', + 'FANN_E_CANT_USE_ACTIVATION' => 'fann/fann.php', + 'FANN_E_CANT_USE_TRAIN_ALG' => 'fann/fann.php', + 'FANN_E_INDEX_OUT_OF_BOUND' => 'fann/fann.php', + 'FANN_E_INPUT_NO_MATCH' => 'fann/fann.php', + 'FANN_E_NO_ERROR' => 'fann/fann.php', + 'FANN_E_OUTPUT_NO_MATCH' => 'fann/fann.php', + 'FANN_E_SCALE_NOT_PRESENT' => 'fann/fann.php', + 'FANN_E_TRAIN_DATA_MISMATCH' => 'fann/fann.php', + 'FANN_E_TRAIN_DATA_SUBSET' => 'fann/fann.php', + 'FANN_E_WRONG_CONFIG_VERSION' => 'fann/fann.php', + 'FANN_E_WRONG_NUM_CONNECTIONS' => 'fann/fann.php', + 'FANN_GAUSSIAN' => 'fann/fann.php', + 'FANN_GAUSSIAN_STEPWISE' => 'fann/fann.php', + 'FANN_GAUSSIAN_SYMMETRIC' => 'fann/fann.php', + 'FANN_LINEAR' => 'fann/fann.php', + 'FANN_LINEAR_PIECE' => 'fann/fann.php', + 'FANN_LINEAR_PIECE_SYMMETRIC' => 'fann/fann.php', + 'FANN_NETTYPE_LAYER' => 'fann/fann.php', + 'FANN_NETTYPE_SHORTCUT' => 'fann/fann.php', + 'FANN_SIGMOID' => 'fann/fann.php', + 'FANN_SIGMOID_STEPWISE' => 'fann/fann.php', + 'FANN_SIGMOID_SYMMETRIC' => 'fann/fann.php', + 'FANN_SIGMOID_SYMMETRIC_STEPWISE' => 'fann/fann.php', + 'FANN_SIN' => 'fann/fann.php', + 'FANN_SIN_SYMMETRIC' => 'fann/fann.php', + 'FANN_STOPFUNC_BIT' => 'fann/fann.php', + 'FANN_STOPFUNC_MSE' => 'fann/fann.php', + 'FANN_THRESHOLD' => 'fann/fann.php', + 'FANN_THRESHOLD_SYMMETRIC' => 'fann/fann.php', + 'FANN_TRAIN_BATCH' => 'fann/fann.php', + 'FANN_TRAIN_INCREMENTAL' => 'fann/fann.php', + 'FANN_TRAIN_QUICKPROP' => 'fann/fann.php', + 'FANN_TRAIN_RPROP' => 'fann/fann.php', + 'FANN_TRAIN_SARPROP' => 'fann/fann.php', + 'FANN_VERSION' => 'fann/fann.php', + 'FILEINFO_APPLE' => 'fileinfo/fileinfo.php', + 'FILEINFO_CONTINUE' => 'fileinfo/fileinfo.php', + 'FILEINFO_DEVICES' => 'fileinfo/fileinfo.php', + 'FILEINFO_EXTENSION' => 'fileinfo/fileinfo.php', + 'FILEINFO_MIME' => 'fileinfo/fileinfo.php', + 'FILEINFO_MIME_ENCODING' => 'fileinfo/fileinfo.php', + 'FILEINFO_MIME_TYPE' => 'fileinfo/fileinfo.php', + 'FILEINFO_NONE' => 'fileinfo/fileinfo.php', + 'FILEINFO_PRESERVE_ATIME' => 'fileinfo/fileinfo.php', + 'FILEINFO_RAW' => 'fileinfo/fileinfo.php', + 'FILEINFO_SYMLINK' => 'fileinfo/fileinfo.php', + 'FILE_APPEND' => 'standard/standard_defines.php', + 'FILE_BINARY' => 'standard/standard_defines.php', + 'FILE_IGNORE_NEW_LINES' => 'standard/standard_defines.php', + 'FILE_NO_DEFAULT_CONTEXT' => 'standard/standard_defines.php', + 'FILE_SKIP_EMPTY_LINES' => 'standard/standard_defines.php', + 'FILE_TEXT' => 'standard/standard_defines.php', + 'FILE_USE_INCLUDE_PATH' => 'standard/standard_defines.php', + 'FILTER_CALLBACK' => 'filter/filter.php', + 'FILTER_DEFAULT' => 'filter/filter.php', + 'FILTER_FLAG_ALLOW_FRACTION' => 'filter/filter.php', + 'FILTER_FLAG_ALLOW_HEX' => 'filter/filter.php', + 'FILTER_FLAG_ALLOW_OCTAL' => 'filter/filter.php', + 'FILTER_FLAG_ALLOW_SCIENTIFIC' => 'filter/filter.php', + 'FILTER_FLAG_ALLOW_THOUSAND' => 'filter/filter.php', + 'FILTER_FLAG_EMAIL_UNICODE' => 'filter/filter.php', + 'FILTER_FLAG_EMPTY_STRING_NULL' => 'filter/filter.php', + 'FILTER_FLAG_ENCODE_AMP' => 'filter/filter.php', + 'FILTER_FLAG_ENCODE_HIGH' => 'filter/filter.php', + 'FILTER_FLAG_ENCODE_LOW' => 'filter/filter.php', + 'FILTER_FLAG_GLOBAL_RANGE' => 'filter/filter.php', + 'FILTER_FLAG_HOSTNAME' => 'filter/filter.php', + 'FILTER_FLAG_HOST_REQUIRED' => 'filter/filter.php', + 'FILTER_FLAG_IPV4' => 'filter/filter.php', + 'FILTER_FLAG_IPV6' => 'filter/filter.php', + 'FILTER_FLAG_NONE' => 'filter/filter.php', + 'FILTER_FLAG_NO_ENCODE_QUOTES' => 'filter/filter.php', + 'FILTER_FLAG_NO_PRIV_RANGE' => 'filter/filter.php', + 'FILTER_FLAG_NO_RES_RANGE' => 'filter/filter.php', + 'FILTER_FLAG_PATH_REQUIRED' => 'filter/filter.php', + 'FILTER_FLAG_QUERY_REQUIRED' => 'filter/filter.php', + 'FILTER_FLAG_SCHEME_REQUIRED' => 'filter/filter.php', + 'FILTER_FLAG_STRIP_BACKTICK' => 'filter/filter.php', + 'FILTER_FLAG_STRIP_HIGH' => 'filter/filter.php', + 'FILTER_FLAG_STRIP_LOW' => 'filter/filter.php', + 'FILTER_FORCE_ARRAY' => 'filter/filter.php', + 'FILTER_NULL_ON_FAILURE' => 'filter/filter.php', + 'FILTER_REQUIRE_ARRAY' => 'filter/filter.php', + 'FILTER_REQUIRE_SCALAR' => 'filter/filter.php', + 'FILTER_SANITIZE_ADD_SLASHES' => 'filter/filter.php', + 'FILTER_SANITIZE_EMAIL' => 'filter/filter.php', + 'FILTER_SANITIZE_ENCODED' => 'filter/filter.php', + 'FILTER_SANITIZE_FULL_SPECIAL_CHARS' => 'filter/filter.php', + 'FILTER_SANITIZE_MAGIC_QUOTES' => 'filter/filter.php', + 'FILTER_SANITIZE_NUMBER_FLOAT' => 'filter/filter.php', + 'FILTER_SANITIZE_NUMBER_INT' => 'filter/filter.php', + 'FILTER_SANITIZE_SPECIAL_CHARS' => 'filter/filter.php', + 'FILTER_SANITIZE_STRING' => 'filter/filter.php', + 'FILTER_SANITIZE_STRIPPED' => 'filter/filter.php', + 'FILTER_SANITIZE_URL' => 'filter/filter.php', + 'FILTER_UNSAFE_RAW' => 'filter/filter.php', + 'FILTER_VALIDATE_BOOL' => 'filter/filter.php', + 'FILTER_VALIDATE_BOOLEAN' => 'filter/filter.php', + 'FILTER_VALIDATE_DOMAIN' => 'filter/filter.php', + 'FILTER_VALIDATE_EMAIL' => 'filter/filter.php', + 'FILTER_VALIDATE_FLOAT' => 'filter/filter.php', + 'FILTER_VALIDATE_INT' => 'filter/filter.php', + 'FILTER_VALIDATE_IP' => 'filter/filter.php', + 'FILTER_VALIDATE_MAC' => 'filter/filter.php', + 'FILTER_VALIDATE_REGEXP' => 'filter/filter.php', + 'FILTER_VALIDATE_URL' => 'filter/filter.php', + 'FNM_CASEFOLD' => 'standard/standard_defines.php', + 'FNM_NOESCAPE' => 'standard/standard_defines.php', + 'FNM_PATHNAME' => 'standard/standard_defines.php', + 'FNM_PERIOD' => 'standard/standard_defines.php', + 'FORCE_DEFLATE' => 'zlib/zlib.php', + 'FORCE_GZIP' => 'zlib/zlib.php', + 'FPE_FLTDIV' => 'pcntl/pcntl.php', + 'FPE_FLTINV' => 'pcntl/pcntl.php', + 'FPE_FLTOVF' => 'pcntl/pcntl.php', + 'FPE_FLTRES' => 'pcntl/pcntl.php', + 'FPE_FLTSUB' => 'pcntl/pcntl.php', + 'FPE_FLTUND' => 'pcntl/pcntl.php', + 'FPE_INTDIV' => 'pcntl/pcntl.php', + 'FPE_INTOVF' => 'pcntl/pcntl.php', + 'FRAC_DIGITS' => 'standard/standard_defines.php', + 'FTA_BOLD' => 'winbinder/winbinder.php', + 'FTA_ITALIC' => 'winbinder/winbinder.php', + 'FTA_NORMAL' => 'winbinder/winbinder.php', + 'FTA_REGULAR' => 'winbinder/winbinder.php', + 'FTA_STRIKEOUT' => 'winbinder/winbinder.php', + 'FTA_UNDERLINE' => 'winbinder/winbinder.php', + 'FTP_ASCII' => 'ftp/ftp.php', + 'FTP_AUTORESUME' => 'ftp/ftp.php', + 'FTP_AUTOSEEK' => 'ftp/ftp.php', + 'FTP_BINARY' => 'ftp/ftp.php', + 'FTP_FAILED' => 'ftp/ftp.php', + 'FTP_FINISHED' => 'ftp/ftp.php', + 'FTP_IMAGE' => 'ftp/ftp.php', + 'FTP_MOREDATA' => 'ftp/ftp.php', + 'FTP_TEXT' => 'ftp/ftp.php', + 'FTP_TIMEOUT_SEC' => 'ftp/ftp.php', + 'FTP_USEPASVADDRESS' => 'ftp/ftp.php', + 'FT_INTERNAL' => 'imap/imap.php', + 'FT_NOT' => 'imap/imap.php', + 'FT_PEEK' => 'imap/imap.php', + 'FT_PREFETCHTEXT' => 'imap/imap.php', + 'FT_UID' => 'imap/imap.php', + 'F_DUPFD' => 'dio/dio_d.php', + 'F_GETFD' => 'dio/dio_d.php', + 'F_GETFL' => 'dio/dio_d.php', + 'F_GETLK' => 'dio/dio_d.php', + 'F_GETOWN' => 'dio/dio_d.php', + 'F_RDLCK' => 'dio/dio_d.php', + 'F_SETFL' => 'dio/dio_d.php', + 'F_SETLK' => 'dio/dio_d.php', + 'F_SETLKW' => 'dio/dio_d.php', + 'F_SETOWN' => 'dio/dio_d.php', + 'F_UNLCK' => 'dio/dio_d.php', + 'F_WRLCK' => 'dio/dio_d.php', + 'Frame' => 'winbinder/winbinder.php', + 'GD_BUNDLED' => 'gd/gd.php', + 'GD_EXTRA_VERSION' => 'gd/gd.php', + 'GD_MAJOR_VERSION' => 'gd/gd.php', + 'GD_MINOR_VERSION' => 'gd/gd.php', + 'GD_RELEASE_VERSION' => 'gd/gd.php', + 'GD_VERSION' => 'gd/gd.php', + 'GEARMAN_ARGS_BUFFER_SIZE' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_ALLOCATED' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_FREE_TASKS' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_NON_BLOCKING' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_NO_NEW' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_STATE_IDLE' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_STATE_NEW' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_STATE_PACKET' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_STATE_SUBMIT' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_TASK_IN_USE' => 'gearman/gearman.php', + 'GEARMAN_CLIENT_UNBUFFERED_RESULT' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_ALL_YOURS' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_CANT_DO' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_CAN_DO' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_CAN_DO_TIMEOUT' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_ECHO_REQ' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_ECHO_RES' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_ERROR' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_GET_STATUS' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_GRAB_JOB' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_GRAB_JOB_UNIQ' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_JOB_ASSIGN' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_JOB_ASSIGN_UNIQ' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_JOB_CREATED' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_MAX' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_NOOP' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_NO_JOB' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_OPTION_REQ' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_OPTION_RES' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_PRE_SLEEP' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_RESET_ABILITIES' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SET_CLIENT_ID' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_STATUS_RES' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_BG' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_EPOCH' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_HIGH' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_HIGH_BG' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_LOW' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_LOW_BG' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_SUBMIT_JOB_SCHED' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_TEXT' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_UNUSED' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_COMPLETE' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_DATA' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_EXCEPTION' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_FAIL' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_STATUS' => 'gearman/gearman.php', + 'GEARMAN_COMMAND_WORK_WARNING' => 'gearman/gearman.php', + 'GEARMAN_CON_CLOSE_AFTER_FLUSH' => 'gearman/gearman.php', + 'GEARMAN_CON_EXTERNAL_FD' => 'gearman/gearman.php', + 'GEARMAN_CON_IGNORE_LOST_CONNECTION' => 'gearman/gearman.php', + 'GEARMAN_CON_PACKET_IN_USE' => 'gearman/gearman.php', + 'GEARMAN_CON_READY' => 'gearman/gearman.php', + 'GEARMAN_CON_RECV_STATE_READ_DATA' => 'gearman/gearman.php', + 'GEARMAN_CON_SEND_STATE_NONE' => 'gearman/gearman.php', + 'GEARMAN_COULD_NOT_CONNECT' => 'gearman/gearman.php', + 'GEARMAN_DATA_TOO_LARGE' => 'gearman/gearman.php', + 'GEARMAN_DEFAULT_SOCKET_RECV_SIZE' => 'gearman/gearman.php', + 'GEARMAN_DEFAULT_SOCKET_SEND_SIZE' => 'gearman/gearman.php', + 'GEARMAN_DEFAULT_SOCKET_TIMEOUT' => 'gearman/gearman.php', + 'GEARMAN_DEFAULT_TCP_HOST' => 'gearman/gearman.php', + 'GEARMAN_DEFAULT_TCP_PORT' => 'gearman/gearman.php', + 'GEARMAN_DONT_TRACK_PACKETS' => 'gearman/gearman.php', + 'GEARMAN_ECHO_DATA_CORRUPTION' => 'gearman/gearman.php', + 'GEARMAN_ERRNO' => 'gearman/gearman.php', + 'GEARMAN_EVENT' => 'gearman/gearman.php', + 'GEARMAN_FLUSH_DATA' => 'gearman/gearman.php', + 'GEARMAN_GETADDRINFO' => 'gearman/gearman.php', + 'GEARMAN_IGNORE_PACKET' => 'gearman/gearman.php', + 'GEARMAN_INVALID_COMMAND' => 'gearman/gearman.php', + 'GEARMAN_INVALID_FUNCTION_NAME' => 'gearman/gearman.php', + 'GEARMAN_INVALID_MAGIC' => 'gearman/gearman.php', + 'GEARMAN_INVALID_PACKET' => 'gearman/gearman.php', + 'GEARMAN_INVALID_WORKER_FUNCTION' => 'gearman/gearman.php', + 'GEARMAN_IO_WAIT' => 'gearman/gearman.php', + 'GEARMAN_JOB_EXISTS' => 'gearman/gearman.php', + 'GEARMAN_JOB_HANDLE_SIZE' => 'gearman/gearman.php', + 'GEARMAN_JOB_PRIORITY_HIGH' => 'gearman/gearman.php', + 'GEARMAN_JOB_PRIORITY_LOW' => 'gearman/gearman.php', + 'GEARMAN_JOB_PRIORITY_MAX' => 'gearman/gearman.php', + 'GEARMAN_JOB_PRIORITY_NORMAL' => 'gearman/gearman.php', + 'GEARMAN_JOB_QUEUE_FULL' => 'gearman/gearman.php', + 'GEARMAN_LOST_CONNECTION' => 'gearman/gearman.php', + 'GEARMAN_MAGIC_REQUEST' => 'gearman/gearman.php', + 'GEARMAN_MAGIC_RESPONSE' => 'gearman/gearman.php', + 'GEARMAN_MAGIC_TEXT' => 'gearman/gearman.php', + 'GEARMAN_MAX_COMMAND_ARGS' => 'gearman/gearman.php', + 'GEARMAN_MAX_ERROR_SIZE' => 'gearman/gearman.php', + 'GEARMAN_MAX_RETURN' => 'gearman/gearman.php', + 'GEARMAN_MEMORY_ALLOCATION_FAILURE' => 'gearman/gearman.php', + 'GEARMAN_NEED_WORKLOAD_FN' => 'gearman/gearman.php', + 'GEARMAN_NON_BLOCKING' => 'gearman/gearman.php', + 'GEARMAN_NOT_CONNECTED' => 'gearman/gearman.php', + 'GEARMAN_NOT_FLUSHING' => 'gearman/gearman.php', + 'GEARMAN_NO_ACTIVE_FDS' => 'gearman/gearman.php', + 'GEARMAN_NO_JOBS' => 'gearman/gearman.php', + 'GEARMAN_NO_REGISTERED_FUNCTIONS' => 'gearman/gearman.php', + 'GEARMAN_NO_SERVERS' => 'gearman/gearman.php', + 'GEARMAN_OPTION_SIZE' => 'gearman/gearman.php', + 'GEARMAN_PACKET_HEADER_SIZE' => 'gearman/gearman.php', + 'GEARMAN_PAUSE' => 'gearman/gearman.php', + 'GEARMAN_PIPE_EOF' => 'gearman/gearman.php', + 'GEARMAN_PTHREAD' => 'gearman/gearman.php', + 'GEARMAN_QUEUE_ERROR' => 'gearman/gearman.php', + 'GEARMAN_RECV_BUFFER_SIZE' => 'gearman/gearman.php', + 'GEARMAN_RECV_IN_PROGRESS' => 'gearman/gearman.php', + 'GEARMAN_SEND_BUFFER_SIZE' => 'gearman/gearman.php', + 'GEARMAN_SEND_BUFFER_TOO_SMALL' => 'gearman/gearman.php', + 'GEARMAN_SEND_IN_PROGRESS' => 'gearman/gearman.php', + 'GEARMAN_SERVER_ERROR' => 'gearman/gearman.php', + 'GEARMAN_SHUTDOWN' => 'gearman/gearman.php', + 'GEARMAN_SHUTDOWN_GRACEFUL' => 'gearman/gearman.php', + 'GEARMAN_SUCCESS' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_COMPLETE' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_CREATED' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_DATA' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_EXCEPTION' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_FAIL' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_FINISHED' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_NEW' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_STATUS' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_SUBMIT' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_WARNING' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_WORK' => 'gearman/gearman.php', + 'GEARMAN_TASK_STATE_WORKLOAD' => 'gearman/gearman.php', + 'GEARMAN_TIMEOUT' => 'gearman/gearman.php', + 'GEARMAN_TOO_MANY_ARGS' => 'gearman/gearman.php', + 'GEARMAN_UNEXPECTED_PACKET' => 'gearman/gearman.php', + 'GEARMAN_UNIQUE_SIZE' => 'gearman/gearman.php', + 'GEARMAN_UNKNOWN_OPTION' => 'gearman/gearman.php', + 'GEARMAN_UNKNOWN_STATE' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_CRAZY' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_DEBUG' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_ERROR' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_FATAL' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_INFO' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_MAX' => 'gearman/gearman.php', + 'GEARMAN_VERBOSE_NEVER' => 'gearman/gearman.php', + 'GEARMAN_WORKER_ALLOCATED' => 'gearman/gearman.php', + 'GEARMAN_WORKER_CHANGE' => 'gearman/gearman.php', + 'GEARMAN_WORKER_GRAB_JOB_IN_USE' => 'gearman/gearman.php', + 'GEARMAN_WORKER_GRAB_UNIQ' => 'gearman/gearman.php', + 'GEARMAN_WORKER_NON_BLOCKING' => 'gearman/gearman.php', + 'GEARMAN_WORKER_PACKET_INIT' => 'gearman/gearman.php', + 'GEARMAN_WORKER_PRE_SLEEP_IN_USE' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_CONNECT' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_FUNCTION_SEND' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_GRAB_JOB_RECV' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_GRAB_JOB_SEND' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_PRE_SLEEP' => 'gearman/gearman.php', + 'GEARMAN_WORKER_STATE_START' => 'gearman/gearman.php', + 'GEARMAN_WORKER_TIMEOUT_RETURN' => 'gearman/gearman.php', + 'GEARMAN_WORKER_WAIT_TIMEOUT' => 'gearman/gearman.php', + 'GEARMAN_WORKER_WORK_JOB_IN_USE' => 'gearman/gearman.php', + 'GEARMAN_WORK_DATA' => 'gearman/gearman.php', + 'GEARMAN_WORK_ERROR' => 'gearman/gearman.php', + 'GEARMAN_WORK_EXCEPTION' => 'gearman/gearman.php', + 'GEARMAN_WORK_FAIL' => 'gearman/gearman.php', + 'GEARMAN_WORK_STATUS' => 'gearman/gearman.php', + 'GEARMAN_WORK_WARNING' => 'gearman/gearman.php', + 'GEOIP_ASNUM_EDITION' => 'geoip/geoip.php', + 'GEOIP_CABLEDSL_SPEED' => 'geoip/geoip.php', + 'GEOIP_CITY_EDITION_REV0' => 'geoip/geoip.php', + 'GEOIP_CITY_EDITION_REV1' => 'geoip/geoip.php', + 'GEOIP_CORPORATE_SPEED' => 'geoip/geoip.php', + 'GEOIP_COUNTRY_EDITION' => 'geoip/geoip.php', + 'GEOIP_DIALUP_SPEED' => 'geoip/geoip.php', + 'GEOIP_DOMAIN_EDITION' => 'geoip/geoip.php', + 'GEOIP_ISP_EDITION' => 'geoip/geoip.php', + 'GEOIP_NETSPEED_EDITION' => 'geoip/geoip.php', + 'GEOIP_ORG_EDITION' => 'geoip/geoip.php', + 'GEOIP_PROXY_EDITION' => 'geoip/geoip.php', + 'GEOIP_REGION_EDITION_REV0' => 'geoip/geoip.php', + 'GEOIP_REGION_EDITION_REV1' => 'geoip/geoip.php', + 'GEOIP_UNKNOWN_SPEED' => 'geoip/geoip.php', + 'GEOSBUF_CAP_FLAT' => 'geos/geos.php', + 'GEOSBUF_CAP_ROUND' => 'geos/geos.php', + 'GEOSBUF_CAP_SQUARE' => 'geos/geos.php', + 'GEOSBUF_JOIN_BEVEL' => 'geos/geos.php', + 'GEOSBUF_JOIN_MITRE' => 'geos/geos.php', + 'GEOSBUF_JOIN_ROUND' => 'geos/geos.php', + 'GEOSRELATE_BNR_ENDPOINT' => 'geos/geos.php', + 'GEOSRELATE_BNR_MOD2' => 'geos/geos.php', + 'GEOSRELATE_BNR_MONOVALENT_ENDPOINT' => 'geos/geos.php', + 'GEOSRELATE_BNR_MULTIVALENT_ENDPOINT' => 'geos/geos.php', + 'GEOSRELATE_BNR_OGC' => 'geos/geos.php', + 'GEOSVALID_ALLOW_SELFTOUCHING_RING_FORMING_HOLE' => 'geos/geos.php', + 'GEOS_GEOMETRYCOLLECTION' => 'geos/geos.php', + 'GEOS_LINEARRING' => 'geos/geos.php', + 'GEOS_LINESTRING' => 'geos/geos.php', + 'GEOS_MULTILINESTRING' => 'geos/geos.php', + 'GEOS_MULTIPOINT' => 'geos/geos.php', + 'GEOS_MULTIPOLYGON' => 'geos/geos.php', + 'GEOS_POINT' => 'geos/geos.php', + 'GEOS_POLYGON' => 'geos/geos.php', + 'GLOB_AVAILABLE_FLAGS' => 'standard/standard_defines.php', + 'GLOB_BRACE' => 'standard/standard_defines.php', + 'GLOB_ERR' => 'standard/standard_defines.php', + 'GLOB_MARK' => 'standard/standard_defines.php', + 'GLOB_NOCHECK' => 'standard/standard_defines.php', + 'GLOB_NOESCAPE' => 'standard/standard_defines.php', + 'GLOB_NOSORT' => 'standard/standard_defines.php', + 'GLOB_ONLYDIR' => 'standard/standard_defines.php', + 'GMP_BIG_ENDIAN' => 'gmp/gmp.php', + 'GMP_LITTLE_ENDIAN' => 'gmp/gmp.php', + 'GMP_LSW_FIRST' => 'gmp/gmp.php', + 'GMP_MPIR_VERSION' => 'gmp/gmp.php', + 'GMP_MSW_FIRST' => 'gmp/gmp.php', + 'GMP_NATIVE_ENDIAN' => 'gmp/gmp.php', + 'GMP_ROUND_MINUSINF' => 'gmp/gmp.php', + 'GMP_ROUND_PLUSINF' => 'gmp/gmp.php', + 'GMP_ROUND_ZERO' => 'gmp/gmp.php', + 'GMP_VERSION' => 'gmp/gmp.php', + 'GNUPG_ERROR_EXCEPTION' => 'gnupg/gnupg.php', + 'GNUPG_ERROR_SILENT' => 'gnupg/gnupg.php', + 'GNUPG_ERROR_WARNING' => 'gnupg/gnupg.php', + 'GNUPG_GPGME_VERSION' => 'gnupg/gnupg.php', + 'GNUPG_PK_DSA' => 'gnupg/gnupg.php', + 'GNUPG_PK_ECC' => 'gnupg/gnupg.php', + 'GNUPG_PK_ECDH' => 'gnupg/gnupg.php', + 'GNUPG_PK_ECDSA' => 'gnupg/gnupg.php', + 'GNUPG_PK_EDDSA' => 'gnupg/gnupg.php', + 'GNUPG_PK_ELG' => 'gnupg/gnupg.php', + 'GNUPG_PK_ELG_E' => 'gnupg/gnupg.php', + 'GNUPG_PK_RSA' => 'gnupg/gnupg.php', + 'GNUPG_PK_RSA_E' => 'gnupg/gnupg.php', + 'GNUPG_PK_RSA_S' => 'gnupg/gnupg.php', + 'GNUPG_PROTOCOL_CMS' => 'gnupg/gnupg.php', + 'GNUPG_PROTOCOL_OpenPGP' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_BAD_POLICY' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_CRL_MISSING' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_CRL_TOO_OLD' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_GREEN' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_KEY_EXPIRED' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_KEY_MISSING' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_KEY_REVOKED' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_RED' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_SIG_EXPIRED' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_SYS_ERROR' => 'gnupg/gnupg.php', + 'GNUPG_SIGSUM_VALID' => 'gnupg/gnupg.php', + 'GNUPG_SIG_MODE_CLEAR' => 'gnupg/gnupg.php', + 'GNUPG_SIG_MODE_DETACH' => 'gnupg/gnupg.php', + 'GNUPG_SIG_MODE_NORMAL' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_FULL' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_MARGINAL' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_NEVER' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_ULTIMATE' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_UNDEFINED' => 'gnupg/gnupg.php', + 'GNUPG_VALIDITY_UNKNOWN' => 'gnupg/gnupg.php', + 'GRAPHEME_EXTR_COUNT' => 'intl/intl.php', + 'GRAPHEME_EXTR_MAXBYTES' => 'intl/intl.php', + 'GRAPHEME_EXTR_MAXCHARS' => 'intl/intl.php', + 'GREEN' => 'winbinder/winbinder.php', + 'GROUPING' => 'standard/standard_defines.php', + 'Gauge' => 'winbinder/winbinder.php', + 'Grpc\\CALL_ERROR' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_ALREADY_ACCEPTED' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_ALREADY_FINISHED' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_ALREADY_INVOKED' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_BATCH_TOO_BIG' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_INVALID_FLAGS' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_INVALID_MESSAGE' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_INVALID_METADATA' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_NOT_INVOKED' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_NOT_ON_CLIENT' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_NOT_ON_SERVER' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_PAYLOAD_TYPE_MISMATCH' => 'grpc/grpc.php', + 'Grpc\\CALL_ERROR_TOO_MANY_OPERATIONS' => 'grpc/grpc.php', + 'Grpc\\CALL_OK' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_CONNECTING' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_FATAL_FAILURE' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_IDLE' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_READY' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_SHUTDOWN' => 'grpc/grpc.php', + 'Grpc\\CHANNEL_TRANSIENT_FAILURE' => 'grpc/grpc.php', + 'Grpc\\OP_RECV_CLOSE_ON_SERVER' => 'grpc/grpc.php', + 'Grpc\\OP_RECV_INITIAL_METADATA' => 'grpc/grpc.php', + 'Grpc\\OP_RECV_MESSAGE' => 'grpc/grpc.php', + 'Grpc\\OP_RECV_STATUS_ON_CLIENT' => 'grpc/grpc.php', + 'Grpc\\OP_SEND_CLOSE_FROM_CLIENT' => 'grpc/grpc.php', + 'Grpc\\OP_SEND_INITIAL_METADATA' => 'grpc/grpc.php', + 'Grpc\\OP_SEND_MESSAGE' => 'grpc/grpc.php', + 'Grpc\\OP_SEND_STATUS_FROM_SERVER' => 'grpc/grpc.php', + 'Grpc\\STATUS_ABORTED' => 'grpc/grpc.php', + 'Grpc\\STATUS_ALREADY_EXISTS' => 'grpc/grpc.php', + 'Grpc\\STATUS_CANCELLED' => 'grpc/grpc.php', + 'Grpc\\STATUS_DATA_LOSS' => 'grpc/grpc.php', + 'Grpc\\STATUS_DEADLINE_EXCEEDED' => 'grpc/grpc.php', + 'Grpc\\STATUS_FAILED_PRECONDITION' => 'grpc/grpc.php', + 'Grpc\\STATUS_INTERNAL' => 'grpc/grpc.php', + 'Grpc\\STATUS_INVALID_ARGUMENT' => 'grpc/grpc.php', + 'Grpc\\STATUS_NOT_FOUND' => 'grpc/grpc.php', + 'Grpc\\STATUS_OK' => 'grpc/grpc.php', + 'Grpc\\STATUS_OUT_OF_RANGE' => 'grpc/grpc.php', + 'Grpc\\STATUS_PERMISSION_DENIED' => 'grpc/grpc.php', + 'Grpc\\STATUS_RESOURCE_EXHAUSTED' => 'grpc/grpc.php', + 'Grpc\\STATUS_UNAUTHENTICATED' => 'grpc/grpc.php', + 'Grpc\\STATUS_UNAVAILABLE' => 'grpc/grpc.php', + 'Grpc\\STATUS_UNIMPLEMENTED' => 'grpc/grpc.php', + 'Grpc\\STATUS_UNKNOWN' => 'grpc/grpc.php', + 'Grpc\\WRITE_BUFFER_HINT' => 'grpc/grpc.php', + 'Grpc\\WRITE_NO_COMPRESS' => 'grpc/grpc.php', + 'HASH_HMAC' => 'hash/hash.php', + 'HTMLControl' => 'winbinder/winbinder.php', + 'HTML_ENTITIES' => 'standard/standard_defines.php', + 'HTML_SPECIALCHARS' => 'standard/standard_defines.php', + 'HTTP_AUTH_ANY' => 'http/http.php', + 'HTTP_AUTH_BASIC' => 'http/http.php', + 'HTTP_AUTH_DIGEST' => 'http/http.php', + 'HTTP_AUTH_GSSNEG' => 'http/http.php', + 'HTTP_AUTH_NTLM' => 'http/http.php', + 'HTTP_COOKIE_HTTPONLY' => 'http/http.php', + 'HTTP_COOKIE_PARSE_RAW' => 'http/http.php', + 'HTTP_COOKIE_SECURE' => 'http/http.php', + 'HTTP_DEFLATE_LEVEL_DEF' => 'http/http.php', + 'HTTP_DEFLATE_LEVEL_MAX' => 'http/http.php', + 'HTTP_DEFLATE_LEVEL_MIN' => 'http/http.php', + 'HTTP_DEFLATE_STRATEGY_DEF' => 'http/http.php', + 'HTTP_DEFLATE_STRATEGY_FILT' => 'http/http.php', + 'HTTP_DEFLATE_STRATEGY_FIXED' => 'http/http.php', + 'HTTP_DEFLATE_STRATEGY_HUFF' => 'http/http.php', + 'HTTP_DEFLATE_STRATEGY_RLE' => 'http/http.php', + 'HTTP_DEFLATE_TYPE_GZIP' => 'http/http.php', + 'HTTP_DEFLATE_TYPE_RAW' => 'http/http.php', + 'HTTP_DEFLATE_TYPE_ZLIB' => 'http/http.php', + 'HTTP_ENCODING_STREAM_FLUSH_FULL' => 'http/http.php', + 'HTTP_ENCODING_STREAM_FLUSH_NONE' => 'http/http.php', + 'HTTP_ENCODING_STREAM_FLUSH_SYNC' => 'http/http.php', + 'HTTP_E_ENCODING' => 'http/http.php', + 'HTTP_E_HEADER' => 'http/http.php', + 'HTTP_E_INVALID_PARAM' => 'http/http.php', + 'HTTP_E_MALFORMED_HEADERS' => 'http/http.php', + 'HTTP_E_MESSAGE_TYPE' => 'http/http.php', + 'HTTP_E_QUERYSTRING' => 'http/http.php', + 'HTTP_E_REQUEST' => 'http/http.php', + 'HTTP_E_REQUEST_METHOD' => 'http/http.php', + 'HTTP_E_REQUEST_POOL' => 'http/http.php', + 'HTTP_E_RESPONSE' => 'http/http.php', + 'HTTP_E_RUNTIME' => 'http/http.php', + 'HTTP_E_SOCKET' => 'http/http.php', + 'HTTP_E_URL' => 'http/http.php', + 'HTTP_IPRESOLVE_ANY' => 'http/http.php', + 'HTTP_IPRESOLVE_V4' => 'http/http.php', + 'HTTP_IPRESOLVE_V6' => 'http/http.php', + 'HTTP_METH_ACL' => 'http/http.php', + 'HTTP_METH_BASELINE_CONTROL' => 'http/http.php', + 'HTTP_METH_CHECKIN' => 'http/http.php', + 'HTTP_METH_CHECKOUT' => 'http/http.php', + 'HTTP_METH_CONNECT' => 'http/http.php', + 'HTTP_METH_COPY' => 'http/http.php', + 'HTTP_METH_DELETE' => 'http/http.php', + 'HTTP_METH_GET' => 'http/http.php', + 'HTTP_METH_HEAD' => 'http/http.php', + 'HTTP_METH_LABEL' => 'http/http.php', + 'HTTP_METH_LOCK' => 'http/http.php', + 'HTTP_METH_MERGE' => 'http/http.php', + 'HTTP_METH_MKACTIVITY' => 'http/http.php', + 'HTTP_METH_MKCOL' => 'http/http.php', + 'HTTP_METH_MKWORKSPACE' => 'http/http.php', + 'HTTP_METH_MOVE' => 'http/http.php', + 'HTTP_METH_OPTIONS' => 'http/http.php', + 'HTTP_METH_POST' => 'http/http.php', + 'HTTP_METH_PROPFIND' => 'http/http.php', + 'HTTP_METH_PROPPATCH' => 'http/http.php', + 'HTTP_METH_PUT' => 'http/http.php', + 'HTTP_METH_REPORT' => 'http/http.php', + 'HTTP_METH_TRACE' => 'http/http.php', + 'HTTP_METH_UNCHECKOUT' => 'http/http.php', + 'HTTP_METH_UNLOCK' => 'http/http.php', + 'HTTP_METH_UPDATE' => 'http/http.php', + 'HTTP_METH_VERSION_CONTROL' => 'http/http.php', + 'HTTP_MSG_NONE' => 'http/http.php', + 'HTTP_MSG_REQUEST' => 'http/http.php', + 'HTTP_MSG_RESPONSE' => 'http/http.php', + 'HTTP_PARAMS_ALLOW_COMMA' => 'http/http.php', + 'HTTP_PARAMS_ALLOW_FAILURE' => 'http/http.php', + 'HTTP_PARAMS_DEFAULT' => 'http/http.php', + 'HTTP_PARAMS_RAISE_ERROR' => 'http/http.php', + 'HTTP_PROXY_HTTP' => 'http/http.php', + 'HTTP_PROXY_SOCKS4' => 'http/http.php', + 'HTTP_PROXY_SOCKS5' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_ARRAY' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_BOOL' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_FLOAT' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_INT' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_OBJECT' => 'http/http.php', + 'HTTP_QUERYSTRING_TYPE_STRING' => 'http/http.php', + 'HTTP_REDIRECT' => 'http/http.php', + 'HTTP_REDIRECT_FOUND' => 'http/http.php', + 'HTTP_REDIRECT_PERM' => 'http/http.php', + 'HTTP_REDIRECT_POST' => 'http/http.php', + 'HTTP_REDIRECT_PROXY' => 'http/http.php', + 'HTTP_REDIRECT_TEMP' => 'http/http.php', + 'HTTP_SSL_VERSION_ANY' => 'http/http.php', + 'HTTP_SSL_VERSION_SSLv2' => 'http/http.php', + 'HTTP_SSL_VERSION_SSLv3' => 'http/http.php', + 'HTTP_SSL_VERSION_TLSv1' => 'http/http.php', + 'HTTP_SUPPORT' => 'http/http.php', + 'HTTP_SUPPORT_ENCODINGS' => 'http/http.php', + 'HTTP_SUPPORT_EVENTS' => 'http/http.php', + 'HTTP_SUPPORT_MAGICMIME' => 'http/http.php', + 'HTTP_SUPPORT_REQUESTS' => 'http/http.php', + 'HTTP_SUPPORT_SSLREQUESTS' => 'http/http.php', + 'HTTP_URL_FROM_ENV' => 'http/http.php', + 'HTTP_URL_JOIN_PATH' => 'http/http.php', + 'HTTP_URL_JOIN_QUERY' => 'http/http.php', + 'HTTP_URL_REPLACE' => 'http/http.php', + 'HTTP_URL_STRIP_ALL' => 'http/http.php', + 'HTTP_URL_STRIP_AUTH' => 'http/http.php', + 'HTTP_URL_STRIP_FRAGMENT' => 'http/http.php', + 'HTTP_URL_STRIP_PASS' => 'http/http.php', + 'HTTP_URL_STRIP_PATH' => 'http/http.php', + 'HTTP_URL_STRIP_PORT' => 'http/http.php', + 'HTTP_URL_STRIP_QUERY' => 'http/http.php', + 'HTTP_URL_STRIP_USER' => 'http/http.php', + 'HTTP_VERSION_1_0' => 'http/http.php', + 'HTTP_VERSION_1_1' => 'http/http.php', + 'HTTP_VERSION_ANY' => 'http/http.php', + 'HTTP_VERSION_NONE' => 'http/http.php', + 'HyperLink' => 'winbinder/winbinder.php', + 'IBASE_BKP_CONVERT' => 'interbase/interbase.php', + 'IBASE_BKP_IGNORE_CHECKSUMS' => 'interbase/interbase.php', + 'IBASE_BKP_IGNORE_LIMBO' => 'interbase/interbase.php', + 'IBASE_BKP_METADATA_ONLY' => 'interbase/interbase.php', + 'IBASE_BKP_NON_TRANSPORTABLE' => 'interbase/interbase.php', + 'IBASE_BKP_NO_GARBAGE_COLLECT' => 'interbase/interbase.php', + 'IBASE_BKP_OLD_DESCRIPTIONS' => 'interbase/interbase.php', + 'IBASE_COMMITTED' => 'interbase/interbase.php', + 'IBASE_CONCURRENCY' => 'interbase/interbase.php', + 'IBASE_CONSISTENCY' => 'interbase/interbase.php', + 'IBASE_CREATE' => 'interbase/interbase.php', + 'IBASE_DEFAULT' => 'interbase/interbase.php', + 'IBASE_FETCH_ARRAYS' => 'interbase/interbase.php', + 'IBASE_FETCH_BLOBS' => 'interbase/interbase.php', + 'IBASE_NOWAIT' => 'interbase/interbase.php', + 'IBASE_PRP_ACCESS_MODE' => 'interbase/interbase.php', + 'IBASE_PRP_ACTIVATE' => 'interbase/interbase.php', + 'IBASE_PRP_AM_READONLY' => 'interbase/interbase.php', + 'IBASE_PRP_AM_READWRITE' => 'interbase/interbase.php', + 'IBASE_PRP_DB_ONLINE' => 'interbase/interbase.php', + 'IBASE_PRP_DENY_NEW_ATTACHMENTS' => 'interbase/interbase.php', + 'IBASE_PRP_DENY_NEW_TRANSACTIONS' => 'interbase/interbase.php', + 'IBASE_PRP_PAGE_BUFFERS' => 'interbase/interbase.php', + 'IBASE_PRP_RES' => 'interbase/interbase.php', + 'IBASE_PRP_RESERVE_SPACE' => 'interbase/interbase.php', + 'IBASE_PRP_RES_USE_FULL' => 'interbase/interbase.php', + 'IBASE_PRP_SET_SQL_DIALECT' => 'interbase/interbase.php', + 'IBASE_PRP_SHUTDOWN_DB' => 'interbase/interbase.php', + 'IBASE_PRP_SWEEP_INTERVAL' => 'interbase/interbase.php', + 'IBASE_PRP_WM_ASYNC' => 'interbase/interbase.php', + 'IBASE_PRP_WM_SYNC' => 'interbase/interbase.php', + 'IBASE_PRP_WRITE_MODE' => 'interbase/interbase.php', + 'IBASE_READ' => 'interbase/interbase.php', + 'IBASE_REC_NO_VERSION' => 'interbase/interbase.php', + 'IBASE_REC_VERSION' => 'interbase/interbase.php', + 'IBASE_RES_CREATE' => 'interbase/interbase.php', + 'IBASE_RES_DEACTIVATE_IDX' => 'interbase/interbase.php', + 'IBASE_RES_NO_SHADOW' => 'interbase/interbase.php', + 'IBASE_RES_NO_VALIDITY' => 'interbase/interbase.php', + 'IBASE_RES_ONE_AT_A_TIME' => 'interbase/interbase.php', + 'IBASE_RES_REPLACE' => 'interbase/interbase.php', + 'IBASE_RES_USE_ALL_SPACE' => 'interbase/interbase.php', + 'IBASE_RPR_CHECK_DB' => 'interbase/interbase.php', + 'IBASE_RPR_FULL' => 'interbase/interbase.php', + 'IBASE_RPR_IGNORE_CHECKSUM' => 'interbase/interbase.php', + 'IBASE_RPR_KILL_SHADOWS' => 'interbase/interbase.php', + 'IBASE_RPR_MEND_DB' => 'interbase/interbase.php', + 'IBASE_RPR_SWEEP_DB' => 'interbase/interbase.php', + 'IBASE_RPR_VALIDATE_DB' => 'interbase/interbase.php', + 'IBASE_STS_DATA_PAGES' => 'interbase/interbase.php', + 'IBASE_STS_DB_LOG' => 'interbase/interbase.php', + 'IBASE_STS_HDR_PAGES' => 'interbase/interbase.php', + 'IBASE_STS_IDX_PAGES' => 'interbase/interbase.php', + 'IBASE_STS_SYS_RELATIONS' => 'interbase/interbase.php', + 'IBASE_SVC_GET_ENV' => 'interbase/interbase.php', + 'IBASE_SVC_GET_ENV_LOCK' => 'interbase/interbase.php', + 'IBASE_SVC_GET_ENV_MSG' => 'interbase/interbase.php', + 'IBASE_SVC_GET_USERS' => 'interbase/interbase.php', + 'IBASE_SVC_IMPLEMENTATION' => 'interbase/interbase.php', + 'IBASE_SVC_SERVER_VERSION' => 'interbase/interbase.php', + 'IBASE_SVC_SVR_DB_INFO' => 'interbase/interbase.php', + 'IBASE_SVC_USER_DBPATH' => 'interbase/interbase.php', + 'IBASE_TEXT' => 'interbase/interbase.php', + 'IBASE_UNIXTIME' => 'interbase/interbase.php', + 'IBASE_WAIT' => 'interbase/interbase.php', + 'IBASE_WRITE' => 'interbase/interbase.php', + 'ICONV_IMPL' => 'iconv/iconv.php', + 'ICONV_MIME_DECODE_CONTINUE_ON_ERROR' => 'iconv/iconv.php', + 'ICONV_MIME_DECODE_STRICT' => 'iconv/iconv.php', + 'ICONV_VERSION' => 'iconv/iconv.php', + 'IDABORT' => 'winbinder/winbinder.php', + 'IDCANCEL' => 'winbinder/winbinder.php', + 'IDCLOSE' => 'winbinder/winbinder.php', + 'IDDEFAULT' => 'winbinder/winbinder.php', + 'IDHELP' => 'winbinder/winbinder.php', + 'IDIGNORE' => 'winbinder/winbinder.php', + 'IDNA_ALLOW_UNASSIGNED' => 'intl/intl.php', + 'IDNA_CHECK_BIDI' => 'intl/intl.php', + 'IDNA_CHECK_CONTEXTJ' => 'intl/intl.php', + 'IDNA_DEFAULT' => 'intl/intl.php', + 'IDNA_ERROR_BIDI' => 'intl/intl.php', + 'IDNA_ERROR_CONTEXTJ' => 'intl/intl.php', + 'IDNA_ERROR_DISALLOWED' => 'intl/intl.php', + 'IDNA_ERROR_DOMAIN_NAME_TOO_LONG' => 'intl/intl.php', + 'IDNA_ERROR_EMPTY_LABEL' => 'intl/intl.php', + 'IDNA_ERROR_HYPHEN_3_4' => 'intl/intl.php', + 'IDNA_ERROR_INVALID_ACE_LABEL' => 'intl/intl.php', + 'IDNA_ERROR_LABEL_HAS_DOT' => 'intl/intl.php', + 'IDNA_ERROR_LABEL_TOO_LONG' => 'intl/intl.php', + 'IDNA_ERROR_LEADING_COMBINING_MARK' => 'intl/intl.php', + 'IDNA_ERROR_LEADING_HYPHEN' => 'intl/intl.php', + 'IDNA_ERROR_PUNYCODE' => 'intl/intl.php', + 'IDNA_ERROR_TRAILING_HYPHEN' => 'intl/intl.php', + 'IDNA_NONTRANSITIONAL_TO_ASCII' => 'intl/intl.php', + 'IDNA_NONTRANSITIONAL_TO_UNICODE' => 'intl/intl.php', + 'IDNA_USE_STD3_RULES' => 'intl/intl.php', + 'IDNO' => 'winbinder/winbinder.php', + 'IDOK' => 'winbinder/winbinder.php', + 'IDRETRY' => 'winbinder/winbinder.php', + 'IDYES' => 'winbinder/winbinder.php', + 'ILL_BADSTK' => 'pcntl/pcntl.php', + 'ILL_COPROC' => 'pcntl/pcntl.php', + 'ILL_ILLADR' => 'pcntl/pcntl.php', + 'ILL_ILLOPC' => 'pcntl/pcntl.php', + 'ILL_ILLOPN' => 'pcntl/pcntl.php', + 'ILL_ILLTRP' => 'pcntl/pcntl.php', + 'ILL_PRVOPC' => 'pcntl/pcntl.php', + 'ILL_PRVREG' => 'pcntl/pcntl.php', + 'IMAGETYPE_AVIF' => 'standard/standard_defines.php', + 'IMAGETYPE_BMP' => 'standard/standard_defines.php', + 'IMAGETYPE_COUNT' => 'standard/standard_defines.php', + 'IMAGETYPE_GIF' => 'standard/standard_defines.php', + 'IMAGETYPE_ICO' => 'standard/standard_defines.php', + 'IMAGETYPE_IFF' => 'standard/standard_defines.php', + 'IMAGETYPE_JB2' => 'standard/standard_defines.php', + 'IMAGETYPE_JP2' => 'standard/standard_defines.php', + 'IMAGETYPE_JPC' => 'standard/standard_defines.php', + 'IMAGETYPE_JPEG' => 'standard/standard_defines.php', + 'IMAGETYPE_JPEG2000' => 'standard/standard_defines.php', + 'IMAGETYPE_JPX' => 'standard/standard_defines.php', + 'IMAGETYPE_PNG' => 'standard/standard_defines.php', + 'IMAGETYPE_PSD' => 'standard/standard_defines.php', + 'IMAGETYPE_SWC' => 'standard/standard_defines.php', + 'IMAGETYPE_SWF' => 'standard/standard_defines.php', + 'IMAGETYPE_TIFF_II' => 'standard/standard_defines.php', + 'IMAGETYPE_TIFF_MM' => 'standard/standard_defines.php', + 'IMAGETYPE_UNKNOWN' => 'standard/standard_defines.php', + 'IMAGETYPE_WBMP' => 'standard/standard_defines.php', + 'IMAGETYPE_WEBP' => 'standard/standard_defines.php', + 'IMAGETYPE_XBM' => 'standard/standard_defines.php', + 'IMAP_CLOSETIMEOUT' => 'imap/imap.php', + 'IMAP_GC_ELT' => 'imap/imap.php', + 'IMAP_GC_ENV' => 'imap/imap.php', + 'IMAP_GC_TEXTS' => 'imap/imap.php', + 'IMAP_OPENTIMEOUT' => 'imap/imap.php', + 'IMAP_READTIMEOUT' => 'imap/imap.php', + 'IMAP_WRITETIMEOUT' => 'imap/imap.php', + 'IMG_AFFINE_ROTATE' => 'gd/gd.php', + 'IMG_AFFINE_SCALE' => 'gd/gd.php', + 'IMG_AFFINE_SHEAR_HORIZONTAL' => 'gd/gd.php', + 'IMG_AFFINE_SHEAR_VERTICAL' => 'gd/gd.php', + 'IMG_AFFINE_TRANSLATE' => 'gd/gd.php', + 'IMG_ARC_CHORD' => 'gd/gd.php', + 'IMG_ARC_EDGED' => 'gd/gd.php', + 'IMG_ARC_NOFILL' => 'gd/gd.php', + 'IMG_ARC_PIE' => 'gd/gd.php', + 'IMG_ARC_ROUNDED' => 'gd/gd.php', + 'IMG_AVIF' => 'gd/gd.php', + 'IMG_BELL' => 'gd/gd.php', + 'IMG_BESSEL' => 'gd/gd.php', + 'IMG_BICUBIC' => 'gd/gd.php', + 'IMG_BICUBIC_FIXED' => 'gd/gd.php', + 'IMG_BILINEAR_FIXED' => 'gd/gd.php', + 'IMG_BLACKMAN' => 'gd/gd.php', + 'IMG_BMP' => 'gd/gd.php', + 'IMG_BOX' => 'gd/gd.php', + 'IMG_BSPLINE' => 'gd/gd.php', + 'IMG_CATMULLROM' => 'gd/gd.php', + 'IMG_COLOR_BRUSHED' => 'gd/gd.php', + 'IMG_COLOR_STYLED' => 'gd/gd.php', + 'IMG_COLOR_STYLEDBRUSHED' => 'gd/gd.php', + 'IMG_COLOR_TILED' => 'gd/gd.php', + 'IMG_COLOR_TRANSPARENT' => 'gd/gd.php', + 'IMG_CROP_BLACK' => 'gd/gd.php', + 'IMG_CROP_DEFAULT' => 'gd/gd.php', + 'IMG_CROP_SIDES' => 'gd/gd.php', + 'IMG_CROP_THRESHOLD' => 'gd/gd.php', + 'IMG_CROP_TRANSPARENT' => 'gd/gd.php', + 'IMG_CROP_WHITE' => 'gd/gd.php', + 'IMG_EFFECT_ALPHABLEND' => 'gd/gd.php', + 'IMG_EFFECT_MULTIPLY' => 'gd/gd.php', + 'IMG_EFFECT_NORMAL' => 'gd/gd.php', + 'IMG_EFFECT_OVERLAY' => 'gd/gd.php', + 'IMG_EFFECT_REPLACE' => 'gd/gd.php', + 'IMG_FILTER_BRIGHTNESS' => 'gd/gd.php', + 'IMG_FILTER_COLORIZE' => 'gd/gd.php', + 'IMG_FILTER_CONTRAST' => 'gd/gd.php', + 'IMG_FILTER_EDGEDETECT' => 'gd/gd.php', + 'IMG_FILTER_EMBOSS' => 'gd/gd.php', + 'IMG_FILTER_GAUSSIAN_BLUR' => 'gd/gd.php', + 'IMG_FILTER_GRAYSCALE' => 'gd/gd.php', + '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', + 'IMG_FLIP_HORIZONTAL' => 'gd/gd.php', + 'IMG_FLIP_VERTICAL' => 'gd/gd.php', + 'IMG_GAUSSIAN' => 'gd/gd.php', + 'IMG_GD2_COMPRESSED' => 'gd/gd.php', + 'IMG_GD2_RAW' => 'gd/gd.php', + 'IMG_GENERALIZED_CUBIC' => 'gd/gd.php', + 'IMG_GIF' => 'gd/gd.php', + 'IMG_HAMMING' => 'gd/gd.php', + 'IMG_HANNING' => 'gd/gd.php', + 'IMG_HERMITE' => 'gd/gd.php', + 'IMG_JPEG' => 'gd/gd.php', + 'IMG_JPG' => 'gd/gd.php', + 'IMG_MITCHELL' => 'gd/gd.php', + 'IMG_NEAREST_NEIGHBOUR' => 'gd/gd.php', + 'IMG_PNG' => 'gd/gd.php', + 'IMG_POWER' => 'gd/gd.php', + 'IMG_QUADRATIC' => 'gd/gd.php', + 'IMG_SINC' => 'gd/gd.php', + 'IMG_TGA' => 'gd/gd.php', + 'IMG_TRIANGLE' => 'gd/gd.php', + 'IMG_WBMP' => 'gd/gd.php', + 'IMG_WEBP' => 'gd/gd.php', + 'IMG_WEBP_LOSSLESS' => 'gd/gd.php', + 'IMG_WEIGHTED4' => 'gd/gd.php', + 'IMG_XPM' => 'gd/gd.php', + 'INF' => 'standard/standard_defines.php', + 'INFO_ALL' => 'standard/standard_defines.php', + 'INFO_CONFIGURATION' => 'standard/standard_defines.php', + 'INFO_CREDITS' => 'standard/standard_defines.php', + 'INFO_ENVIRONMENT' => 'standard/standard_defines.php', + 'INFO_GENERAL' => 'standard/standard_defines.php', + 'INFO_LICENSE' => 'standard/standard_defines.php', + 'INFO_MODULES' => 'standard/standard_defines.php', + 'INFO_VARIABLES' => 'standard/standard_defines.php', + 'INI_ALL' => 'standard/standard_defines.php', + 'INI_PERDIR' => 'standard/standard_defines.php', + 'INI_SCANNER_NORMAL' => 'standard/standard_defines.php', + 'INI_SCANNER_RAW' => 'standard/standard_defines.php', + 'INI_SCANNER_TYPED' => 'standard/standard_defines.php', + 'INI_SYSTEM' => 'standard/standard_defines.php', + 'INI_USER' => 'standard/standard_defines.php', + 'INPUT_COOKIE' => 'filter/filter.php', + 'INPUT_ENV' => 'filter/filter.php', + 'INPUT_GET' => 'filter/filter.php', + 'INPUT_POST' => 'filter/filter.php', + 'INPUT_REQUEST' => 'filter/filter.php', + 'INPUT_SERVER' => 'filter/filter.php', + 'INPUT_SESSION' => 'filter/filter.php', + 'INTL_ICU_DATA_VERSION' => 'intl/intl.php', + 'INTL_ICU_VERSION' => 'intl/intl.php', + 'INTL_IDNA_VARIANT_2003' => 'intl/intl.php', + 'INTL_IDNA_VARIANT_UTS46' => 'intl/intl.php', + 'INTL_MAX_LOCALE_LEN' => 'intl/intl.php', + 'INT_CURR_SYMBOL' => 'standard/standard_defines.php', + 'INT_FRAC_DIGITS' => 'standard/standard_defines.php', + 'IN_ACCESS' => 'inotify/inotify.php', + 'IN_ALL_EVENTS' => 'inotify/inotify.php', + 'IN_ATTRIB' => 'inotify/inotify.php', + 'IN_CLOSE' => 'inotify/inotify.php', + 'IN_CLOSE_NOWRITE' => 'inotify/inotify.php', + 'IN_CLOSE_WRITE' => 'inotify/inotify.php', + 'IN_CREATE' => 'inotify/inotify.php', + 'IN_DELETE' => 'inotify/inotify.php', + 'IN_DELETE_SELF' => 'inotify/inotify.php', + 'IN_DONT_FOLLOW' => 'inotify/inotify.php', + 'IN_IGNORED' => 'inotify/inotify.php', + 'IN_ISDIR' => 'inotify/inotify.php', + 'IN_MASK_ADD' => 'inotify/inotify.php', + 'IN_MODIFY' => 'inotify/inotify.php', + 'IN_MOVE' => 'inotify/inotify.php', + 'IN_MOVED_FROM' => 'inotify/inotify.php', + 'IN_MOVED_TO' => 'inotify/inotify.php', + 'IN_MOVE_SELF' => 'inotify/inotify.php', + 'IN_ONESHOT' => 'inotify/inotify.php', + 'IN_ONLYDIR' => 'inotify/inotify.php', + 'IN_OPEN' => 'inotify/inotify.php', + 'IN_Q_OVERFLOW' => 'inotify/inotify.php', + 'IN_UNMOUNT' => 'inotify/inotify.php', + 'IPPROTO_IP' => 'sockets/sockets.php', + 'IPPROTO_IPV6' => 'sockets/sockets.php', + 'IPV6_HOPLIMIT' => 'sockets/sockets.php', + 'IPV6_MULTICAST_HOPS' => 'sockets/sockets.php', + 'IPV6_MULTICAST_IF' => 'sockets/sockets.php', + 'IPV6_MULTICAST_LOOP' => 'sockets/sockets.php', + 'IPV6_PKTINFO' => 'sockets/sockets.php', + 'IPV6_RECVHOPLIMIT' => 'sockets/sockets.php', + 'IPV6_RECVPKTINFO' => 'sockets/sockets.php', + 'IPV6_RECVTCLASS' => 'sockets/sockets.php', + 'IPV6_TCLASS' => 'sockets/sockets.php', + 'IPV6_UNICAST_HOPS' => 'sockets/sockets.php', + 'IPV6_V6ONLY' => 'sockets/sockets.php', + 'IP_BIND_ADDRESS_NO_PORT' => 'sockets/sockets.php', + 'IP_MTU_DISCOVER' => 'sockets/sockets.php', + 'IP_MULTICAST_IF' => 'sockets/sockets.php', + 'IP_MULTICAST_LOOP' => 'sockets/sockets.php', + 'IP_MULTICAST_TTL' => 'sockets/sockets.php', + 'IP_PMTUDISC_DO' => 'sockets/sockets.php', + 'IP_PMTUDISC_DONT' => 'sockets/sockets.php', + 'IP_PMTUDISC_INTERFACE' => 'sockets/sockets.php', + 'IP_PMTUDISC_OMIT' => 'sockets/sockets.php', + 'IP_PMTUDISC_PROBE' => 'sockets/sockets.php', + 'IP_PMTUDISC_WANT' => 'sockets/sockets.php', + 'ImageButton' => 'winbinder/winbinder.php', + 'InvisibleArea' => 'winbinder/winbinder.php', + 'JOB_QUEUE_PRIORITY_HIGH' => 'zend/zend_d.php', + 'JOB_QUEUE_PRIORITY_LOW' => 'zend/zend_d.php', + 'JOB_QUEUE_PRIORITY_NORMAL' => 'zend/zend_d.php', + 'JOB_QUEUE_PRIORITY_URGENT' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_COOKIE' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_ENV' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_FILES' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_GET' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_POST' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_RAW_POST' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_SERVER' => 'zend/zend_d.php', + 'JOB_QUEUE_SAVE_SESSION' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_EXECUTION_FAILED' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_IN_PROCESS' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_LOGICALLY_FAILED' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_SCHEDULED' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_SUCCESS' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_SUSPENDED' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_WAITING' => 'zend/zend_d.php', + 'JOB_QUEUE_STATUS_WAITING_PREDECESSOR' => 'zend/zend_d.php', + 'JSON_BIGINT_AS_STRING' => 'json/json.php', + 'JSON_ERROR_CTRL_CHAR' => 'json/json.php', + 'JSON_ERROR_DEPTH' => 'json/json.php', + 'JSON_ERROR_INF_OR_NAN' => 'json/json.php', + 'JSON_ERROR_INVALID_PROPERTY_NAME' => 'json/json.php', + 'JSON_ERROR_NONE' => 'json/json.php', + 'JSON_ERROR_NON_BACKED_ENUM' => 'json/json.php', + 'JSON_ERROR_RECURSION' => 'json/json.php', + 'JSON_ERROR_STATE_MISMATCH' => 'json/json.php', + 'JSON_ERROR_SYNTAX' => 'json/json.php', + 'JSON_ERROR_UNSUPPORTED_TYPE' => 'json/json.php', + 'JSON_ERROR_UTF16' => 'json/json.php', + 'JSON_ERROR_UTF8' => 'json/json.php', + 'JSON_FORCE_OBJECT' => 'json/json.php', + 'JSON_HEX_AMP' => 'json/json.php', + 'JSON_HEX_APOS' => 'json/json.php', + 'JSON_HEX_QUOT' => 'json/json.php', + 'JSON_HEX_TAG' => 'json/json.php', + 'JSON_INVALID_UTF8_IGNORE' => 'json/json.php', + 'JSON_INVALID_UTF8_SUBSTITUTE' => 'json/json.php', + 'JSON_NUMERIC_CHECK' => 'json/json.php', + 'JSON_OBJECT_AS_ARRAY' => 'json/json.php', + 'JSON_PARSER_NOTSTRICT' => 'json/json.php', + 'JSON_PARTIAL_OUTPUT_ON_ERROR' => 'json/json.php', + 'JSON_PRESERVE_ZERO_FRACTION' => 'json/json.php', + 'JSON_PRETTY_PRINT' => 'json/json.php', + 'JSON_THROW_ON_ERROR' => 'json/json.php', + 'JSON_UNESCAPED_LINE_TERMINATORS' => 'json/json.php', + 'JSON_UNESCAPED_SLASHES' => 'json/json.php', + 'JSON_UNESCAPED_UNICODE' => 'json/json.php', + 'LATT_HASCHILDREN' => 'imap/imap.php', + 'LATT_HASNOCHILDREN' => 'imap/imap.php', + 'LATT_MARKED' => 'imap/imap.php', + 'LATT_NOINFERIORS' => 'imap/imap.php', + 'LATT_NOSELECT' => 'imap/imap.php', + 'LATT_REFERRAL' => 'imap/imap.php', + 'LATT_UNMARKED' => 'imap/imap.php', + 'LC_ALL' => 'standard/standard_defines.php', + 'LC_COLLATE' => 'standard/standard_defines.php', + 'LC_CTYPE' => 'standard/standard_defines.php', + 'LC_MESSAGES' => 'standard/standard_defines.php', + 'LC_MONETARY' => 'standard/standard_defines.php', + 'LC_NUMERIC' => 'standard/standard_defines.php', + 'LC_TIME' => 'standard/standard_defines.php', + 'LDAP_CONTROL_ASSERT' => 'ldap/ldap.php', + 'LDAP_CONTROL_AUTHZID_REQUEST' => 'ldap/ldap.php', + 'LDAP_CONTROL_AUTHZID_RESPONSE' => 'ldap/ldap.php', + 'LDAP_CONTROL_DONTUSECOPY' => 'ldap/ldap.php', + 'LDAP_CONTROL_MANAGEDSAIT' => 'ldap/ldap.php', + 'LDAP_CONTROL_PAGEDRESULTS' => 'ldap/ldap.php', + 'LDAP_CONTROL_PASSWORDPOLICYREQUEST' => 'ldap/ldap.php', + 'LDAP_CONTROL_PASSWORDPOLICYRESPONSE' => 'ldap/ldap.php', + 'LDAP_CONTROL_POST_READ' => 'ldap/ldap.php', + 'LDAP_CONTROL_PRE_READ' => 'ldap/ldap.php', + 'LDAP_CONTROL_PROXY_AUTHZ' => 'ldap/ldap.php', + 'LDAP_CONTROL_SORTREQUEST' => 'ldap/ldap.php', + 'LDAP_CONTROL_SORTRESPONSE' => 'ldap/ldap.php', + 'LDAP_CONTROL_SUBENTRIES' => 'ldap/ldap.php', + 'LDAP_CONTROL_SYNC' => 'ldap/ldap.php', + 'LDAP_CONTROL_SYNC_DONE' => 'ldap/ldap.php', + 'LDAP_CONTROL_SYNC_STATE' => 'ldap/ldap.php', + 'LDAP_CONTROL_VALUESRETURNFILTER' => 'ldap/ldap.php', + 'LDAP_CONTROL_VLVREQUEST' => 'ldap/ldap.php', + 'LDAP_CONTROL_VLVRESPONSE' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_DOMAIN_SCOPE' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_EXTENDED_DN' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_INCREMENTAL_VALUES' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_PERMISSIVE_MODIFY' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_SEARCH_OPTIONS' => 'ldap/ldap.php', + 'LDAP_CONTROL_X_TREE_DELETE' => 'ldap/ldap.php', + 'LDAP_DEREF_ALWAYS' => 'ldap/ldap.php', + 'LDAP_DEREF_FINDING' => 'ldap/ldap.php', + 'LDAP_DEREF_NEVER' => 'ldap/ldap.php', + 'LDAP_DEREF_SEARCHING' => 'ldap/ldap.php', + 'LDAP_ESCAPE_DN' => 'ldap/ldap.php', + 'LDAP_ESCAPE_FILTER' => 'ldap/ldap.php', + 'LDAP_EXOP_MODIFY_PASSWD' => 'ldap/ldap.php', + 'LDAP_EXOP_REFRESH' => 'ldap/ldap.php', + 'LDAP_EXOP_START_TLS' => 'ldap/ldap.php', + 'LDAP_EXOP_TURN' => 'ldap/ldap.php', + 'LDAP_EXOP_WHO_AM_I' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_ADD' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_ATTRIB' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_MODTYPE' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_REMOVE' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_REMOVE_ALL' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_REPLACE' => 'ldap/ldap.php', + 'LDAP_MODIFY_BATCH_VALUES' => 'ldap/ldap.php', + 'LDAP_OPT_CLIENT_CONTROLS' => 'ldap/ldap.php', + 'LDAP_OPT_DEBUG_LEVEL' => 'ldap/ldap.php', + 'LDAP_OPT_DEREF' => 'ldap/ldap.php', + 'LDAP_OPT_DIAGNOSTIC_MESSAGE' => 'ldap/ldap.php', + 'LDAP_OPT_ERROR_NUMBER' => 'ldap/ldap.php', + 'LDAP_OPT_ERROR_STRING' => 'ldap/ldap.php', + 'LDAP_OPT_HOST_NAME' => 'ldap/ldap.php', + 'LDAP_OPT_MATCHED_DN' => 'ldap/ldap.php', + 'LDAP_OPT_NETWORK_TIMEOUT' => 'ldap/ldap.php', + 'LDAP_OPT_PROTOCOL_VERSION' => 'ldap/ldap.php', + 'LDAP_OPT_REFERRALS' => 'ldap/ldap.php', + 'LDAP_OPT_RESTART' => 'ldap/ldap.php', + 'LDAP_OPT_SERVER_CONTROLS' => 'ldap/ldap.php', + 'LDAP_OPT_SIZELIMIT' => 'ldap/ldap.php', + 'LDAP_OPT_TIMELIMIT' => 'ldap/ldap.php', + 'LDAP_OPT_TIMEOUT' => 'ldap/ldap.php', + 'LDAP_OPT_X_KEEPALIVE_IDLE' => 'ldap/ldap.php', + 'LDAP_OPT_X_KEEPALIVE_INTERVAL' => 'ldap/ldap.php', + 'LDAP_OPT_X_KEEPALIVE_PROBES' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_AUTHCID' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_AUTHZID' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_MECH' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_NOCANON' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_REALM' => 'ldap/ldap.php', + 'LDAP_OPT_X_SASL_USERNAME' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_ALLOW' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CACERTDIR' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CACERTFILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CERTFILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CIPHER_SUITE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CRLCHECK' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CRLFILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CRL_ALL' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CRL_NONE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_CRL_PEER' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_DEMAND' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_DHFILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_HARD' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_KEYFILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_NEVER' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PACKAGE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_MIN' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_SSL2' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_SSL3' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_TLS1_0' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_TLS1_1' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_PROTOCOL_TLS1_2' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_RANDOM_FILE' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_REQUIRE_CERT' => 'ldap/ldap.php', + 'LDAP_OPT_X_TLS_TRY' => 'ldap/ldap.php', + 'LEVELDB_NO_COMPRESSION' => 'leveldb/LevelDB.php', + 'LEVELDB_SNAPPY_COMPRESSION' => 'leveldb/LevelDB.php', + 'LIBEXSLT_DOTTED_VERSION' => 'xsl/xsl.php', + 'LIBEXSLT_VERSION' => 'xsl/xsl.php', + 'LIBXML_BIGLINES' => 'libxml/libxml.php', + 'LIBXML_COMPACT' => 'libxml/libxml.php', + 'LIBXML_DOTTED_VERSION' => 'libxml/libxml.php', + 'LIBXML_DTDATTR' => 'libxml/libxml.php', + 'LIBXML_DTDLOAD' => 'libxml/libxml.php', + 'LIBXML_DTDVALID' => 'libxml/libxml.php', + 'LIBXML_ERR_ERROR' => 'libxml/libxml.php', + 'LIBXML_ERR_FATAL' => 'libxml/libxml.php', + 'LIBXML_ERR_NONE' => 'libxml/libxml.php', + 'LIBXML_ERR_WARNING' => 'libxml/libxml.php', + 'LIBXML_HTML_NODEFDTD' => 'libxml/libxml.php', + 'LIBXML_HTML_NOIMPLIED' => 'libxml/libxml.php', + 'LIBXML_LOADED_VERSION' => 'libxml/libxml.php', + 'LIBXML_NOBLANKS' => 'libxml/libxml.php', + 'LIBXML_NOCDATA' => 'libxml/libxml.php', + 'LIBXML_NOEMPTYTAG' => 'libxml/libxml.php', + 'LIBXML_NOENT' => 'libxml/libxml.php', + 'LIBXML_NOERROR' => 'libxml/libxml.php', + 'LIBXML_NONET' => 'libxml/libxml.php', + 'LIBXML_NOWARNING' => 'libxml/libxml.php', + 'LIBXML_NOXMLDECL' => 'libxml/libxml.php', + 'LIBXML_NSCLEAN' => 'libxml/libxml.php', + 'LIBXML_PARSEHUGE' => 'libxml/libxml.php', + 'LIBXML_PEDANTIC' => 'libxml/libxml.php', + 'LIBXML_SCHEMA_CREATE' => 'libxml/libxml.php', + 'LIBXML_VERSION' => 'libxml/libxml.php', + 'LIBXML_XINCLUDE' => 'libxml/libxml.php', + 'LIBXSLT_DOTTED_VERSION' => 'xsl/xsl.php', + 'LIBXSLT_VERSION' => 'xsl/xsl.php', + 'LIBZSTD_VERSION_NUMBER' => 'zstd/zstd.php', + 'LIBZSTD_VERSION_STRING' => 'zstd/zstd.php', + 'LIGHTGRAY' => 'winbinder/winbinder.php', + 'LOCK_EX' => 'standard/standard_defines.php', + 'LOCK_NB' => 'standard/standard_defines.php', + 'LOCK_SH' => 'standard/standard_defines.php', + 'LOCK_UN' => 'standard/standard_defines.php', + 'LOG_ALERT' => 'standard/standard_defines.php', + 'LOG_AUTH' => 'standard/standard_defines.php', + 'LOG_AUTHPRIV' => 'standard/standard_defines.php', + 'LOG_CONS' => 'standard/standard_defines.php', + 'LOG_CRIT' => 'standard/standard_defines.php', + 'LOG_CRON' => 'standard/standard_defines.php', + 'LOG_DAEMON' => 'standard/standard_defines.php', + 'LOG_DEBUG' => 'standard/standard_defines.php', + 'LOG_EMERG' => 'standard/standard_defines.php', + 'LOG_ERR' => 'standard/standard_defines.php', + 'LOG_INFO' => 'standard/standard_defines.php', + 'LOG_KERN' => 'standard/standard_defines.php', + 'LOG_LOCAL0' => 'standard/standard_defines.php', + 'LOG_LOCAL1' => 'standard/standard_defines.php', + 'LOG_LOCAL2' => 'standard/standard_defines.php', + 'LOG_LOCAL3' => 'standard/standard_defines.php', + 'LOG_LOCAL4' => 'standard/standard_defines.php', + 'LOG_LOCAL5' => 'standard/standard_defines.php', + 'LOG_LOCAL6' => 'standard/standard_defines.php', + 'LOG_LOCAL7' => 'standard/standard_defines.php', + 'LOG_LPR' => 'standard/standard_defines.php', + 'LOG_MAIL' => 'standard/standard_defines.php', + 'LOG_NDELAY' => 'standard/standard_defines.php', + 'LOG_NEWS' => 'standard/standard_defines.php', + 'LOG_NOTICE' => 'standard/standard_defines.php', + 'LOG_NOWAIT' => 'standard/standard_defines.php', + 'LOG_ODELAY' => 'standard/standard_defines.php', + 'LOG_PERROR' => 'standard/standard_defines.php', + 'LOG_PID' => 'standard/standard_defines.php', + 'LOG_SYSLOG' => 'standard/standard_defines.php', + 'LOG_USER' => 'standard/standard_defines.php', + 'LOG_UUCP' => 'standard/standard_defines.php', + 'LOG_WARNING' => 'standard/standard_defines.php', + 'Label' => 'winbinder/winbinder.php', + 'ListBox' => 'winbinder/winbinder.php', + 'ListView' => 'winbinder/winbinder.php', + 'MAGENTA' => 'winbinder/winbinder.php', + 'MAILPARSE_EXTRACT_OUTPUT' => 'mailparse/mailparse.php', + 'MAILPARSE_EXTRACT_RETURN' => 'mailparse/mailparse.php', + 'MAILPARSE_EXTRACT_STREAM' => 'mailparse/mailparse.php', + 'MB_CASE_FOLD' => 'mbstring/mbstring.php', + 'MB_CASE_FOLD_SIMPLE' => 'mbstring/mbstring.php', + 'MB_CASE_LOWER' => 'mbstring/mbstring.php', + 'MB_CASE_LOWER_SIMPLE' => 'mbstring/mbstring.php', + 'MB_CASE_TITLE' => 'mbstring/mbstring.php', + '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', + 'MCAST_BLOCK_SOURCE' => 'sockets/sockets.php', + 'MCAST_JOIN_GROUP' => 'sockets/sockets.php', + 'MCAST_JOIN_SOURCE_GROUP' => 'sockets/sockets.php', + 'MCAST_LEAVE_GROUP' => 'sockets/sockets.php', + 'MCAST_LEAVE_SOURCE_GROUP' => 'sockets/sockets.php', + 'MCAST_UNBLOCK_SOURCE' => 'sockets/sockets.php', + 'MCRYPT_3DES' => 'mcrypt/mcrypt.php', + 'MCRYPT_ARCFOUR' => 'mcrypt/mcrypt.php', + 'MCRYPT_ARCFOUR_IV' => 'mcrypt/mcrypt.php', + 'MCRYPT_BLOWFISH' => 'mcrypt/mcrypt.php', + 'MCRYPT_BLOWFISH_COMPAT' => 'mcrypt/mcrypt.php', + 'MCRYPT_CAST_128' => 'mcrypt/mcrypt.php', + 'MCRYPT_CAST_256' => 'mcrypt/mcrypt.php', + 'MCRYPT_CRYPT' => 'mcrypt/mcrypt.php', + 'MCRYPT_DECRYPT' => 'mcrypt/mcrypt.php', + 'MCRYPT_DES' => 'mcrypt/mcrypt.php', + 'MCRYPT_DES_COMPAT' => 'mcrypt/mcrypt.php', + 'MCRYPT_DEV_RANDOM' => 'mcrypt/mcrypt.php', + 'MCRYPT_DEV_URANDOM' => 'mcrypt/mcrypt.php', + 'MCRYPT_ENCRYPT' => 'mcrypt/mcrypt.php', + 'MCRYPT_ENIGNA' => 'mcrypt/mcrypt.php', + 'MCRYPT_GOST' => 'mcrypt/mcrypt.php', + 'MCRYPT_IDEA' => 'mcrypt/mcrypt.php', + 'MCRYPT_LOKI97' => 'mcrypt/mcrypt.php', + 'MCRYPT_MARS' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_CBC' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_CFB' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_ECB' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_NOFB' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_OFB' => 'mcrypt/mcrypt.php', + 'MCRYPT_MODE_STREAM' => 'mcrypt/mcrypt.php', + 'MCRYPT_PANAMA' => 'mcrypt/mcrypt.php', + 'MCRYPT_RAND' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC2' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC4' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC6' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC6_128' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC6_192' => 'mcrypt/mcrypt.php', + 'MCRYPT_RC6_256' => 'mcrypt/mcrypt.php', + 'MCRYPT_RIJNDAEL_128' => 'mcrypt/mcrypt.php', + 'MCRYPT_RIJNDAEL_192' => 'mcrypt/mcrypt.php', + 'MCRYPT_RIJNDAEL_256' => 'mcrypt/mcrypt.php', + 'MCRYPT_SAFER128' => 'mcrypt/mcrypt.php', + 'MCRYPT_SAFER64' => 'mcrypt/mcrypt.php', + 'MCRYPT_SAFERPLUS' => 'mcrypt/mcrypt.php', + 'MCRYPT_SERPENT' => 'mcrypt/mcrypt.php', + 'MCRYPT_SERPENT_128' => 'mcrypt/mcrypt.php', + 'MCRYPT_SERPENT_192' => 'mcrypt/mcrypt.php', + 'MCRYPT_SERPENT_256' => 'mcrypt/mcrypt.php', + 'MCRYPT_SKIPJACK' => 'mcrypt/mcrypt.php', + 'MCRYPT_THREEWAY' => 'mcrypt/mcrypt.php', + 'MCRYPT_TRIPLEDES' => 'mcrypt/mcrypt.php', + 'MCRYPT_TWOFISH' => 'mcrypt/mcrypt.php', + 'MCRYPT_WAKE' => 'mcrypt/mcrypt.php', + 'MCRYPT_XTEA' => 'mcrypt/mcrypt.php', + 'MEMCACHE_COMPRESSED' => 'memcache/memcache.php', + 'MEMCACHE_HAVE_SESSION' => 'memcache/memcache.php', + 'MEMCACHE_USER1' => 'memcache/memcache.php', + 'MEMCACHE_USER2' => 'memcache/memcache.php', + 'MEMCACHE_USER3' => 'memcache/memcache.php', + 'MEMCACHE_USER4' => 'memcache/memcache.php', + 'MESSAGEPACK_OPT_PHPONLY' => 'msgpack/msgpack.php', + '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', + 'MHASH_FNV1A64' => 'hash/hash.php', + 'MHASH_GOST' => 'hash/hash.php', + 'MHASH_HAVAL128' => 'hash/hash.php', + 'MHASH_HAVAL160' => 'hash/hash.php', + 'MHASH_HAVAL192' => 'hash/hash.php', + 'MHASH_HAVAL224' => 'hash/hash.php', + 'MHASH_HAVAL256' => 'hash/hash.php', + 'MHASH_JOAAT' => 'hash/hash.php', + 'MHASH_MD2' => 'hash/hash.php', + 'MHASH_MD4' => 'hash/hash.php', + 'MHASH_MD5' => 'hash/hash.php', + 'MHASH_MURMUR3A' => 'hash/hash.php', + 'MHASH_MURMUR3C' => 'hash/hash.php', + 'MHASH_MURMUR3F' => 'hash/hash.php', + 'MHASH_RIPEMD128' => 'hash/hash.php', + 'MHASH_RIPEMD160' => 'hash/hash.php', + 'MHASH_RIPEMD256' => 'hash/hash.php', + 'MHASH_RIPEMD320' => 'hash/hash.php', + 'MHASH_SHA1' => 'hash/hash.php', + 'MHASH_SHA224' => 'hash/hash.php', + 'MHASH_SHA256' => 'hash/hash.php', + 'MHASH_SHA384' => 'hash/hash.php', + 'MHASH_SHA512' => 'hash/hash.php', + 'MHASH_SNEFRU256' => 'hash/hash.php', + 'MHASH_TIGER' => 'hash/hash.php', + 'MHASH_TIGER128' => 'hash/hash.php', + 'MHASH_TIGER160' => 'hash/hash.php', + 'MHASH_WHIRLPOOL' => 'hash/hash.php', + 'MHASH_XXH128' => 'hash/hash.php', + 'MHASH_XXH3' => 'hash/hash.php', + 'MHASH_XXH32' => 'hash/hash.php', + 'MHASH_XXH64' => 'hash/hash.php', + 'MING_NEW' => 'ming/ming.php', + 'MING_ZLIB' => 'ming/ming.php', + 'MK_E_UNAVAILABLE' => 'com_dotnet/com_dotnet.php', + 'MONGODB_STABILITY' => 'mongodb/mongodb.php', + 'MONGODB_VERSION' => 'mongodb/mongodb.php', + 'MON_1' => 'standard/standard_defines.php', + 'MON_10' => 'standard/standard_defines.php', + 'MON_11' => 'standard/standard_defines.php', + 'MON_12' => 'standard/standard_defines.php', + 'MON_2' => 'standard/standard_defines.php', + 'MON_3' => 'standard/standard_defines.php', + 'MON_4' => 'standard/standard_defines.php', + 'MON_5' => 'standard/standard_defines.php', + 'MON_6' => 'standard/standard_defines.php', + 'MON_7' => 'standard/standard_defines.php', + 'MON_8' => 'standard/standard_defines.php', + 'MON_9' => 'standard/standard_defines.php', + 'MON_DECIMAL_POINT' => 'standard/standard_defines.php', + 'MON_GROUPING' => 'standard/standard_defines.php', + 'MON_THOUSANDS_SEP' => 'standard/standard_defines.php', + 'MQSERIES_MQACT_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_AIX' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_BATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_BROKER' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_CHANNEL_INITIATOR' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_CICS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_CICS_BRIDGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_CICS_VSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_DEFAULT' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_DOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_DQM' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_GUARDIAN' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_IMS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_IMS_BRIDGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_JAVA' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_MCAST_PUBLISH' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_MVS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_NOTES_AGENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_NO_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_NSK' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_OPEN_TP1' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_OS2' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_OS390' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_OS400' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_QMGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_QMGR_PUBLISH' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_RRS_BATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_SIB' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_SYSTEM_EXTENSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_TPF' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_UNIX' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_UNKNOWN' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_USER' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_USER_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_USER_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_VM' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_VMS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_VOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_WINDOWS' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_WINDOWS_NT' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_WLM' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_XCF' => 'mqseries/mqseries.php', + 'MQSERIES_MQAT_ZOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQBO_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQBO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQBO_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_ADMIN_TOPIC_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_ALTERATION_DATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_ALTERATION_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_APPL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTH_INFO_CONN_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTH_INFO_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTH_INFO_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTH_INFO_OCSP_URL' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTO_REORG_CATALOG' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_AUTO_REORG_START_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_BACKOUT_REQ_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_BASE_OBJECT_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_BASE_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_BATCH_INTERFACE_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CF_STRUC_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CF_STRUC_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CHANNEL_AUTO_DEF_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CHILD' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CHINIT_SERVICE_PARM' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CHLAUTH_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CICS_FILE_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_DATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_NAMELIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_Q_MGR_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_WORKLOAD_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUSTER_WORKLOAD_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CLUS_CHL_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_COMMAND_INPUT_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_COMMAND_REPLY_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_COMM_INFO_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_COMM_INFO_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CREATION_DATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CREATION_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_CUSTOM' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_DEAD_LETTER_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_DEF_XMIT_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_DNS_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_ENV_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_IGQ_USER_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_INITIATION_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_INSTALLATION_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_INSTALLATION_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_INSTALLATION_PATH' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LAST_USED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LDAP_PASSWORD' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LDAP_USER_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LU62_ARM_SUFFIX' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LU_GROUP_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_LU_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_MODEL_DURABLE_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_MODEL_NON_DURABLE_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_MONITOR_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_NAMELIST_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_NAMELIST_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_NAMES' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_PARENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_PASS_TICKET_APPL' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_POLICY_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_PROCESS_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_PROCESS_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_QSG_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_Q_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_Q_MGR_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_Q_MGR_IDENTIFIER' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_Q_MGR_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_RECIPIENT_DN' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_REMOTE_Q_MGR_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_REMOTE_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_REPOSITORY_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_REPOSITORY_NAMELIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_RESUME_DATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_RESUME_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_START_ARGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_START_COMMAND' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_STOP_ARGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SERVICE_STOP_COMMAND' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SIGNER_DN' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SSL_CRL_NAMELIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SSL_CRYPTO_HARDWARE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SSL_KEY_LIBRARY' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SSL_KEY_MEMBER' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SSL_KEY_REPOSITORY' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_STDERR_DESTINATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_STDOUT_DESTINATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_STORAGE_CLASS' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_STORAGE_CLASS_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_SYSTEM_LOG_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TCP_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TOPIC_DESC' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TOPIC_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TOPIC_STRING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TOPIC_STRING_FILTER' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TPIPE_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TRIGGER_CHANNEL_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TRIGGER_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TRIGGER_PROGRAM_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TRIGGER_TERM_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_TRIGGER_TRANS_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_USER_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_USER_LIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_XCF_GROUP_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_XCF_MEMBER_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_XMIT_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_XR_SSL_CIPHER_SUITES' => 'mqseries/mqseries.php', + 'MQSERIES_MQCA_XR_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_APPL' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_AS_PUBLISHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_DEFAULT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_EMBEDDED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_INHERIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQCCSI_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCC_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCC_OK' => 'mqseries/mqseries.php', + 'MQSERIES_MQCC_UNKNOWN' => 'mqseries/mqseries.php', + 'MQSERIES_MQCC_WARNING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCI_NEW_SESSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCI_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACCOUNTING_MQI_DISABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACCOUNTING_MQI_ENABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACCOUNTING_Q_DISABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACCOUNTING_Q_ENABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACTIVITY_TRACE_DISABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ACTIVITY_TRACE_ENABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ALL_CONVS_SHARE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_CD_FOR_OUTPUT_ONLY' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_CLIENT_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_FASTPATH_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_HANDLE_SHARE_BLOCK' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_HANDLE_SHARE_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_HANDLE_SHARE_NO_BLOCK' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_ISOLATED_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_LOCAL_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_NO_CONV_SHARING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RECONNECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RECONNECT_AS_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RECONNECT_DISABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RECONNECT_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RESTRICT_CONN_TAG_QSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_RESTRICT_CONN_TAG_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_SERIALIZE_CONN_TAG_QSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_SERIALIZE_CONN_TAG_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_SHARED_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_STANDARD_BINDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_USE_CD_SELECTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_VERSION_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_VERSION_3' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_VERSION_4' => 'mqseries/mqseries.php', + 'MQSERIES_MQCNO_VERSION_5' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_DELETE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_DELETE_PURGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_IMMEDIATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_KEEP_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_QUIESCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQCO_REMOVE_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQEC_CONNECTION_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQEC_MSG_ARRIVED' => 'mqseries/mqseries.php', + 'MQSERIES_MQEC_Q_MGR_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQEC_WAIT_CANCELED' => 'mqseries/mqseries.php', + 'MQSERIES_MQEC_WAIT_INTERVAL_EXPIRED' => 'mqseries/mqseries.php', + 'MQSERIES_MQEI_UNLIMITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_AS_PUBLISHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_DECIMAL_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_DECIMAL_NORMAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_DECIMAL_REVERSED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_DECIMAL_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_IEEE_NORMAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_IEEE_REVERSED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_S390' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_TNS' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_FLOAT_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_INTEGER_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_INTEGER_NORMAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_INTEGER_REVERSED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_INTEGER_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_NATIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_NORMAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_RESERVED_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_REVERSED' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_S390' => 'mqseries/mqseries.php', + 'MQSERIES_MQENC_TNS' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_ACTIVITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_APPL_CANNOT_BE_STARTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_APPL_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_APPL_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_APPL_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_BIND_OPEN_CLUSRCVR_DEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_BUFFER_OVERFLOW' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CHANNEL_COMPLETED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CHANNEL_FAIL' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CHANNEL_FAIL_RETRY' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_APPL_ABENDED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_APPL_NOT_STARTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_BRIDGE_FAILURE' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_CCSID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_CIH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_COMMAREA_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_CORREL_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_DLQ_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_ENCODING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_INTERNAL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_NOT_AUTHORIZED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_UOW_BACKED_OUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_CICS_UOW_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_COA' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_COD' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_DATA_LENGTH_NEGATIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_DATA_LENGTH_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_DATA_LENGTH_ZERO' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_EXPIRATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IIH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IMS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IMS_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IMS_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IMS_NACK_1A_REASON_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_IMS_NACK_1A_REASON_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_LENGTH_OFF_BY_ONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_MAX_ACTIVITIES' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_MSG_SCOPE_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NAN' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NOT_AUTHORIZED_FOR_IMS' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NOT_A_GROUPUR_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NOT_A_REPOSITORY_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NOT_DELIVERED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_NOT_FORWARDED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_PAN' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_PUBLICATIONS_ON_REQUEST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_QUIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_SELECTOR_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_STOPPED_BY_CHAD_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_STOPPED_BY_MSG_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_STOPPED_BY_PUBSUB_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_SUBSCRIBER_IS_PUBLISHER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_SYSTEM_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_SYSTEM_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_TM_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_UNSUPPORTED_DELIVERY' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_UNSUPPORTED_FORWARDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQFB_XMIT_Q_MSG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_ADMIN' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_CHANNEL_COMPLETED' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_CICS' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_COMMAND_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_COMMAND_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_DEAD_LETTER_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_DIST_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_EMBEDDED_PCF' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_IMS' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_IMS_VAR_STRING' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_MD_EXTENSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_PCF' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_REF_MSG_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_RF_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_RF_HEADER_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_RF_HEADER_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_STRING' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_TRIGGER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_WORK_INFO_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQFMT_XMIT_Q_HEADER' => 'mqseries/mqseries.php', + 'MQSERIES_MQGI_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_ACCEPT_TRUNCATED_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_ALL_MSGS_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_ALL_SEGMENTS_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_BROWSE_CO_OP' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_BROWSE_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_BROWSE_HANDLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_BROWSE_MSG_UNDER_CURSOR' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_BROWSE_NEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_COMPLETE_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_CONVERT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_FAIL_IF_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_LOCK' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_LOGICAL_ORDER' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_MARK_BROWSE_CO_OP' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_MARK_BROWSE_HANDLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_MARK_SKIP_BACKOUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_MSG_UNDER_CURSOR' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_NO_PROPERTIES' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_NO_SYNCPOINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_NO_WAIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_PROPERTIES_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_PROPERTIES_COMPATIBILITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_PROPERTIES_FORCE_MQRFH2' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_PROPERTIES_IN_HANDLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_SET_SIGNAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_SYNCPOINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_SYNCPOINT_IF_PERSISTENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_UNLOCK' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_UNMARKED_BROWSE_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_UNMARK_BROWSE_CO_OP' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_UNMARK_BROWSE_HANDLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_VERSION_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_VERSION_3' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_VERSION_4' => 'mqseries/mqseries.php', + 'MQSERIES_MQGMO_WAIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACCOUNTING_CONN_OVERRIDE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACCOUNTING_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACCOUNTING_MQI' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACCOUNTING_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACTIVE_CHANNELS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACTIVITY_CONN_OVERRIDE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACTIVITY_RECORDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ACTIVITY_TRACE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ADOPTNEWMCA_CHECK' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ADOPTNEWMCA_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ADOPTNEWMCA_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_APPL_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ARCHIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_AUTHORITY_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_AUTH_INFO_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_AUTO_REORGANIZATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_AUTO_REORG_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_BACKOUT_THRESHOLD' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_BASE_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_BATCH_INTERFACE_AUTO' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_BRIDGE_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CERT_VAL_POLICY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_CFCONLOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_LEVEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_OFFLDUSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_OFFLOAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_OFFLOAD_THRESHOLD1' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_OFFLOAD_THRESHOLD2' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_OFFLOAD_THRESHOLD3' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_RECAUTO' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_RECOVER' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CF_SMDS_BUFFERS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHANNEL_AUTO_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHANNEL_AUTO_DEF_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHANNEL_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHINIT_ADAPTERS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHINIT_CONTROL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHINIT_DISPATCHERS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHINIT_TRACE_AUTO_START' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHINIT_TRACE_TABLE_SIZE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CHLAUTH_RECORDS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLUSTER_Q_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLUSTER_WORKLOAD_LENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLWL_MRU_CHANNELS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLWL_Q_PRIORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLWL_Q_RANK' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CLWL_USEQ' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CMD_SERVER_AUTO' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CMD_SERVER_CONTROL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CMD_SERVER_CONVERT_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CMD_SERVER_DLQ_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CODED_CHAR_SET_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_COMMAND_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_COMMAND_LEVEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_COMM_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_COMM_INFO_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CONFIGURATION_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CPI_LEVEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_CURRENT_Q_DEPTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEFINITION_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_BIND' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_CLUSTER_XMIT_Q_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_INPUT_OPEN_OPTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_PERSISTENCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_PRIORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_PUT_RESPONSE_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DEF_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DIST_LISTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DNS_WLM' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_DURABLE_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_ENCRYPTION_ALGORITHM' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_EXPIRY_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_GROUP_UR' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_HARDEN_GET_BACKOUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_HIGH_Q_DEPTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_IGQ_PUT_AUTHORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INDEX_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INHIBIT_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INHIBIT_GET' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INHIBIT_PUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INHIBIT_PUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INHIBIT_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_INTRA_GROUP_QUEUING' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_IP_ADDRESS_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LISTENER_PORT_NUMBER' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LISTENER_TIMER' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LOCAL_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LOGGER_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_LU62_CHANNELS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MASTER_ADMIN' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_CHANNELS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_CLIENTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_GLOBAL_LOCKS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_HANDLES' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_LOCAL_LOCKS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_MSG_LENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_OPEN_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_PRIORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_PROPERTIES_LENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_Q_DEPTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_Q_TRIGGERS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_RECOVERY_TASKS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_RESPONSES' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MAX_UNCOMMITTED_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MCAST_BRIDGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MONITORING_AUTO_CLUSSDR' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MONITORING_CHANNEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MONITORING_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MONITOR_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MSG_DELIVERY_SEQUENCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MSG_DEQ_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MSG_ENQ_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MSG_MARK_BROWSE_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_MULTICAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_NAMELIST_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_NAME_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_NPM_CLASS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_NPM_DELIVERY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_OPEN_INPUT_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_OPEN_OUTPUT_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_OUTBOUND_PORT_MAX' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_OUTBOUND_PORT_MIN' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PAGESET_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PERFORMANCE_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PLATFORM' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PM_DELIVERY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_POLICY_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PROPERTY_CONTROL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PROT_POLICY_CAPABILITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PROXY_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_CLUSTER' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_MAXMSG_RETRY_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_MODE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_NP_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_NP_RESP' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUBSUB_SYNC_PT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUB_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_PUB_SCOPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMGR_CFCONLOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_COMMS_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_CRITICAL_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_ERROR_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_INFO_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_REORG_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_SYSTEM_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CONS_WARNING_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_CSMT_ON_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_INTERNAL_DUMP' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_COMMS_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_CRITICAL_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_ERROR_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_INFO_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_REORG_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_SYSTEM_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_LOG_WARNING_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_TRACE_COMMS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_TRACE_CONVERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_TRACE_MQI_CALLS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_TRACE_REORG' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QMOPT_TRACE_SYSTEM' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_QSG_DISP' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_DEPTH_HIGH_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_DEPTH_HIGH_LIMIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_DEPTH_LOW_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_DEPTH_LOW_LIMIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_DEPTH_MAX_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_SERVICE_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_SERVICE_INTERVAL_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_Q_USERS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_RECEIVE_TIMEOUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_RECEIVE_TIMEOUT_MIN' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_RECEIVE_TIMEOUT_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_REMOTE_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_RESPONSE_RESTART_POINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_RETENTION_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SCOPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SECURITY_CASE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SERVICE_CONTROL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SERVICE_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SHAREABILITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SHARED_Q_Q_MGR_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SIGNATURE_ALGORITHM' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SSL_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SSL_FIPS_REQUIRED' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SSL_RESET_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SSL_TASKS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_START_STOP_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_STATISTICS_AUTO_CLUSSDR' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_STATISTICS_CHANNEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_STATISTICS_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_STATISTICS_MQI' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_STATISTICS_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SUB_CONFIGURATION_EVENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SUB_COUNT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SUB_SCOPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SUITE_B_STRENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_SYNCPOINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TCP_CHANNELS' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TCP_KEEP_ALIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TCP_STACK_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TIME_SINCE_RESET' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TOLERATE_UNPROTECTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TOPIC_DEF_PERSISTENCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TOPIC_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRACE_ROUTE_RECORDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TREE_LIFE_TIME' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_CONTROL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_DEPTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_INTERVAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_MSG_PRIORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_RESTART' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_TRIGGER_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_UR_DISP' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_USAGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_USER_LIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_USE_DEAD_LETTER_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_WILDCARD_OPERATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQIA_XR_CAPABILITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQMD_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQMD_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQMD_VERSION_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_ACCEPT_UNSUP_IF_XMIT_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_ACCEPT_UNSUP_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_LAST_MSG_IN_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_LAST_SEGMENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_MSG_IN_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_REJECT_UNSUP_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_SEGMENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_SEGMENTATION_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQMF_SEGMENTATION_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQMI_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_CORREL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_GROUP_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_MSG_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_MSG_SEQ_NUMBER' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_MSG_TOKEN' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_MATCH_OFFSET' => 'mqseries/mqseries.php', + 'MQSERIES_MQMO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQMTOK_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_APPL_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_APPL_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_DATAGRAM' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_MQE_FIELDS' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_MQE_FIELDS_FROM_MQE' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_REPLY' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_REPORT' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_REQUEST' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_SYSTEM_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQMT_SYSTEM_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQOD_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQOD_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQOD_VERSION_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQOD_VERSION_3' => 'mqseries/mqseries.php', + 'MQSERIES_MQOD_VERSION_4' => 'mqseries/mqseries.php', + 'MQSERIES_MQOL_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_ALTERNATE_USER_AUTHORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_BIND_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_BIND_NOT_FIXED' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_BIND_ON_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_BIND_ON_OPEN' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_BROWSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_CO_OP' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_FAIL_IF_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_INPUT_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_INPUT_EXCLUSIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_INPUT_SHARED' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_INQUIRE' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_NO_MULTICAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_NO_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_OUTPUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_PASS_ALL_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_PASS_IDENTITY_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_READ_AHEAD_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_RESOLVE_LOCAL_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_RESOLVE_LOCAL_TOPIC' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_SAVE_ALL_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_SET' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_SET_ALL_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOO_SET_IDENTITY_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_AUTH_INFO' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_CF_STRUC' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_CHANNEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_COMM_INFO' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_LISTENER' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_NAMELIST' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_PROCESS' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_RESERVED_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_SERVICE' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_STORAGE_CLASS' => 'mqseries/mqseries.php', + 'MQSERIES_MQOT_TOPIC' => 'mqseries/mqseries.php', + 'MQSERIES_MQPER_NOT_PERSISTENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPER_PERSISTENCE_AS_PARENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPER_PERSISTENCE_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPER_PERSISTENCE_AS_TOPIC_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPER_PERSISTENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_ALTERNATE_USER_AUTHORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_ASYNC_RESPONSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_CURRENT_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_DEFAULT_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_FAIL_IF_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_LOGICAL_ORDER' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_MD_FOR_OUTPUT_ONLY' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NEW_CORREL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NEW_MSG_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NOT_OWN_SUBS' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NO_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_NO_SYNCPOINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_PASS_ALL_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_PASS_IDENTITY_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_RESOLVE_LOCAL_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_RESPONSE_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_RESPONSE_AS_TOPIC_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_RETAIN' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SCOPE_QMGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SET_ALL_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SET_IDENTITY_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SUPPRESS_REPLYTO' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SYNCPOINT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_SYNC_RESPONSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_VERSION_1' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_VERSION_2' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_VERSION_3' => 'mqseries/mqseries.php', + 'MQSERIES_MQPMO_WARN_IF_NO_SUBS_MATCHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRI_PRIORITY_AS_PARENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRI_PRIORITY_AS_PUBLISHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRI_PRIORITY_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRI_PRIORITY_AS_TOPIC_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRT_ASYNC_RESPONSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRT_RESPONSE_AS_PARENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQPRT_SYNC_RESPONSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ACTION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_CONN_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_CONV_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_DEFS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_DEFS_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_DISC_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_SERV_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ADAPTER_STORAGE_SHORTAGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_AIR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ALIAS_BASE_Q_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ALIAS_TARGTYPE_CHANGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ALREADY_CONNECTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ALREADY_JOINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ALTER_SUB_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ANOTHER_Q_MGR_CONNECTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_API_EXIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_API_EXIT_INIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_API_EXIT_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_API_EXIT_NOT_FOUND' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_API_EXIT_TERM_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_APPL_FIRST' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_APPL_LAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ASID_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ASYNC_UOW_CONFLICT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ASYNC_XA_CONFLICT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ATTRIBUTE_LOCKED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_AUTH_INFO_CONN_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_AUTH_INFO_REC_COUNT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_AUTH_INFO_REC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_AUTH_INFO_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BACKED_OUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BACKOUT_THRESHOLD_REACHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BAG_CONVERSION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BAG_WRONG_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BINARY_DATA_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BMHO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BRIDGE_STARTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BRIDGE_STOPPED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BUFFER_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BUFFER_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_BUFFER_NOT_AUTOMATIC' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALLBACK_LINK_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALLBACK_NOT_REGISTERED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALLBACK_ROUTINE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALLBACK_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALL_INTERRUPTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CALL_IN_PROGRESS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CBD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CBD_OPTIONS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CD_ARRAY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CERT_VAL_POLICY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFBF_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFBS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFGR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFIF_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFIL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFIN_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFSF_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFSL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CFST_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_STRUC_AUTH_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_STRUC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_STRUC_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_STRUC_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CF_STRUC_LIST_HDR_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_ACTIVATED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_AUTO_DEF_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_AUTO_DEF_OK' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_BLOCKED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_BLOCKED_WARNING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_CONFIG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_CONV_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_NOT_ACTIVATED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_SSL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_SSL_WARNING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_STARTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_STOPPED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHANNEL_STOPPED_BY_USER' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHAR_ATTRS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHAR_ATTRS_TOO_SHORT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHAR_ATTR_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CHAR_CONVERSION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CICS_BRIDGE_RESTRICTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CICS_WAIT_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CIPHER_SPEC_NOT_SUITE_B' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLIENT_CHANNEL_CONFLICT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLIENT_CONN_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLIENT_EXIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLIENT_EXIT_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLUSTER_EXIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLUSTER_EXIT_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLUSTER_PUT_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLUSTER_RESOLUTION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CLUSTER_RESOURCE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CMD_SERVER_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CMHO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CNO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CODED_CHAR_SET_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_COD_NOT_VALID_FOR_XCF_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_COMMAND_MQSC' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_COMMAND_PCF' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_COMMAND_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_COMMINFO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONFIG_CHANGE_OBJECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONFIG_CREATE_OBJECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONFIG_DELETE_OBJECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONFIG_REFRESH_OBJECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_BROKEN' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_NOT_AUTHORIZED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_STOPPED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_STOPPING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONNECTION_SUSPENDED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONN_ID_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONN_TAG_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONN_TAG_NOT_RELEASED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONN_TAG_NOT_USABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONTENT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONTEXT_HANDLE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONTEXT_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONTEXT_OBJECT_NOT_VALID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONTEXT_OPEN_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONVERTED_MSG_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CONVERTED_STRING_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CORREL_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CRYPTO_HARDWARE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CTLO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CURRENT_RECORD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_CURSOR_NOT_VALID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DATA_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DATA_SET_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DATA_TRUNCATED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DB2_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DBCS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEF_SYNCPOINT_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEF_XMIT_Q_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEF_XMIT_Q_USAGE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEST_CLASS_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEST_ENV_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DEST_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DISTRIBUTION_LIST_EMPTY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DLH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DMHO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DMPO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DUPLICATE_GROUP_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DUPLICATE_RECOV_COORD' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DURABILITY_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DURABILITY_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_DYNAMIC_Q_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ENCODING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ENCODING_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ENVIRONMENT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_EPH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_EXIT_PROPS_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_EXIT_REASON_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_EXPIRY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FASTPATH_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FEEDBACK_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FILE_NOT_AUDITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FILE_SYSTEM_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FILTER_OPERATOR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FORMAT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FORMAT_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FUNCTION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_FUNCTION_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GET_ENABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GET_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GLOBAL_UOW_CONFLICT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GMO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GROUPING_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GROUPING_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GROUP_ADDRESS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_GROUP_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HANDLE_IN_USE_FOR_UOW' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HANDLE_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HBAG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HCONFIG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HCONN_ASYNC_ACTIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HCONN_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HEADER_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HMSG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HMSG_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HOBJ_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HOBJ_QUIESCED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HOBJ_QUIESCED_NO_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_HOST_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_IDENTITY_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_IIH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_IMPO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCOMPLETE_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCOMPLETE_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_BROWSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_CCSIDS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_ENCODINGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_FORMAT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_ITEM_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_OBJECT_STATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_OPEN_OPTIONS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_PERSISTENCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INCONSISTENT_UOW' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INDEX_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INDEX_NOT_PRESENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INHIBIT_VALUE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INITIALIZATION_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INQUIRY_COMMAND_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INSTALLATION_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INSTALLATION_MISSING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INSUFFICIENT_BUFFER' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INSUFFICIENT_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INT_ATTRS_ARRAY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INT_ATTR_COUNT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INT_ATTR_COUNT_TOO_SMALL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INVALID_DESTINATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INVALID_MSG_UNDER_CURSOR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_INVALID_SUBSCRIPTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ITEM_COUNT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ITEM_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ITEM_VALUE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_JMS_FORMAT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_JSSE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_KEY_REPOSITORY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LDAP_PASSWORD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LDAP_USER_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LDAP_USER_NAME_LENGTH_ERR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LOCAL_UOW_CONFLICT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LOGGER_STATUS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_LOOPING_PUBLICATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MATCH_OPTIONS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MAX_CONNS_LIMIT_REACHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MAX_MSG_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MCAST_PUB_STATUS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MCAST_SUB_STATUS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MDE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MHBO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MISSING_REPLY_TO_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MISSING_WIH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MIXED_CONTENT_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MODULE_ENTRY_NOT_FOUND' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MODULE_INVALID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MODULE_NOT_FOUND' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_FLAGS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_HANDLE_COPY_FAILURE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_HANDLE_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_MARKED_BROWSE_CO_OP' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_NOT_ALLOWED_IN_GROUP' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_NOT_MATCHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_SEQ_NUMBER_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_TOKEN_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_TOO_BIG_FOR_CHANNEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_TOO_BIG_FOR_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_TOO_BIG_FOR_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MSG_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTICAST_CONFIG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTICAST_INTERFACE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTICAST_INTERNAL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTICAST_ONLY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTICAST_SEND_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTIPLE_INSTANCE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_MULTIPLE_REASONS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NAME_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NAME_NOT_VALID_FOR_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NEGATIVE_LENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NEGATIVE_OFFSET' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NESTED_BAG_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NESTED_SELECTOR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NEXT_OFFSET_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NEXT_RECORD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_AUTHORIZED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_CONNECTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_CONVERTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_BROWSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_INPUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_INQUIRE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_OUTPUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_PASS_ALL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_PASS_IDENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_SET' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_SET_ALL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_OPEN_FOR_SET_IDENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NOT_PRIVILEGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_BUFFER' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_CALLBACKS_ACTIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_CONNECTION_REFERENCE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_DATA_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_DESTINATIONS_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_EXTERNAL_PARTICIPANTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_MSG_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_MSG_LOCKED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_MSG_UNDER_CURSOR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_RECORD_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_RETAINED_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_SUBSCRIPTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NO_SUBS_MATCHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_NULL_POINTER' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_ALREADY_EXISTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_CHANGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_DAMAGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_LEVEL_INCOMPATIBLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_NOT_UNIQUE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_Q_MGR_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_RECORDS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OBJECT_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OCSP_URL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OFFSET_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPEN_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPERATION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPERATION_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPTIONS_CHANGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPTIONS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPTION_ENVIRONMENT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OPTION_NOT_VALID_FOR_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ORIGINAL_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OUTCOME_MIXED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OUTCOME_PENDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_OUT_SELECTOR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PAGESET_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PAGESET_FULL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PARAMETER_MISSING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PARTIALLY_CONVERTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PARTICIPANT_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PARTICIPANT_NOT_DEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PCF_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PERSISTENCE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PERSISTENT_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PMO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PMO_RECORD_FLAGS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PRECONN_EXIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PRECONN_EXIT_LOAD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PRECONN_EXIT_NOT_FOUND' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PRIORITY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PRIORITY_EXCEEDS_MAXIMUM' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTIES_DISABLED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTIES_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_NAME_LENGTH_ERR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_NAME_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROPERTY_VALUE_TOO_BIG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROP_CONV_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROP_NAME_NOT_CONVERTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROP_NUMBER_FORMAT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROP_TYPE_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PROP_VALUE_NOT_CONVERTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUBLICATION_FAILURE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUBLISH_EXIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUBSUB_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUT_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUT_MSG_RECORDS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_PUT_NOT_RETAINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_ALREADY_EXISTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_DELETED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_DEPTH_HIGH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_DEPTH_LOW' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_FULL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_INDEX_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_ACTIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_NOT_ACTIVE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_MGR_STOPPING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_NOT_EMPTY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_SERVICE_INTERVAL_HIGH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_SERVICE_INTERVAL_OK' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_SPACE_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_Q_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RAS_PROPERTY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_READ_AHEAD_MSGS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECTING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECT_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECT_INCOMPATIBLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECT_QMID_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECT_Q_MGR_REQD' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECONNECT_TIMED_OUT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RECS_PRESENT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REFERENCE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REMOTE_Q_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REOPEN_EXCL_INPUT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REOPEN_INQUIRE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REOPEN_SAVED_CONTEXT_ERR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REOPEN_TEMPORARY_Q_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_REPORT_OPTIONS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RESERVED_VALUE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RESOURCE_PROBLEM' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RESPONSE_RECORDS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RES_OBJECT_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RETAINED_MSG_Q_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RETAINED_NOT_DELIVERED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_COMMAND_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_DUPLICATE_PARM' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_FORMAT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_HEADER_FIELD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_PARM_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_PARM_MISSING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_RESTRICTED_FORMAT_ERR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RFH_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_RMH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SCO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SD_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SECOND_MARK_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SECURITY_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SEGMENTATION_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SEGMENTS_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SEGMENT_LENGTH_ZERO' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTION_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTION_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_ALWAYS_FALSE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_COUNT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_INVALID_FOR_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_LIMIT_EXCEEDED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_NOT_FOR_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_NOT_PRESENT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_NOT_UNIQUE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_OUT_OF_RANGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_SYNTAX_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SELECTOR_WRONG_TYPE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SERVICE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SERVICE_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SIGNAL1_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SIGNAL_OUTSTANDING' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SIGNAL_REQUEST_ACCEPTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SMPO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOAP_AXIS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOAP_DOTNET_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOAP_URL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_BUFFER_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_CCSID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_DECIMAL_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_FLOAT_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_INTEGER_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SOURCE_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SRC_ENV_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SRC_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SRO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_ALREADY_INITIALIZED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_ALT_PROVIDER_REQUIRED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_CERTIFICATE_REVOKED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_CERT_STORE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_CONFIG_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_INITIALIZATION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_KEY_RESET_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_PEER_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SSL_PEER_NAME_MISMATCH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STANDBY_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STAT_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STOPPED_BY_CLUSTER_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STORAGE_CLASS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STORAGE_MEDIUM_FULL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STORAGE_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STRING_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STRING_TRUNCATED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STRUC_ID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STRUC_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_STS_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBLEVEL_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBSCRIPTION_CHANGE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBSCRIPTION_CREATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBSCRIPTION_DELETE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBSCRIPTION_IN_USE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUBSCRIPTION_REFRESH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUB_ALREADY_EXISTS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUB_INHIBITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUB_NAME_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUB_USER_DATA_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUITE_B_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SUPPRESSED_BY_EXIT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYNCPOINT_LIMIT_REACHED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYNCPOINT_NOT_ALLOWED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYNCPOINT_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYSTEM_BAG_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYSTEM_BAG_NOT_DELETABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYSTEM_ITEM_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_SYSTEM_ITEM_NOT_DELETABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_BUFFER_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_CCSID_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_DECIMAL_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_FLOAT_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_INTEGER_ENC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TARGET_LENGTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TERMINATION_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TMC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TM_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TOPIC_NOT_ALTERABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TOPIC_STRING_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRIGGER_CONTROL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRIGGER_DEPTH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRIGGER_MSG_PRIORITY_ERR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRIGGER_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRUNCATED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRUNCATED_MSG_ACCEPTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_TRUNCATED_MSG_FAILED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UCS2_CONVERSION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNEXPECTED_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNIT_OF_WORK_NOT_STARTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_ALIAS_BASE_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_AUTH_ENTITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_CHANNEL_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_COMPONENT_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_DEF_XMIT_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_ENTITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_OBJECT_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_OBJECT_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_Q_NAME' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_REF_OBJECT' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_REMOTE_Q_MGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_REPORT_OPTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNKNOWN_XMIT_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNSUPPORTED_CIPHER_SUITE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UNSUPPORTED_PROPERTY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_CANCELED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_COMMITTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_ENLISTMENT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_IN_PROGRESS' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_MIX_NOT_SUPPORTED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_UOW_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_USER_ID_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WAIT_INTERVAL_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WIH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WRONG_CF_LEVEL' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WRONG_GMO_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WRONG_MD_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WRONG_VERSION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_WXP_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XEPO_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XMIT_Q_TYPE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XMIT_Q_USAGE_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XQH_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XR_NOT_AVAILABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XWAIT_CANCELED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_XWAIT_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQRC_ZERO_LENGTH' => 'mqseries/mqseries.php', + 'MQSERIES_MQRL_UNDEFINED' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_ACCEPT_UNSUP_IF_XMIT_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_ACCEPT_UNSUP_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_ACTIVITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COA_WITH_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COA_WITH_FULL_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COD' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COD_WITH_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COD_WITH_FULL_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_COPY_MSG_ID_TO_CORREL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_DEAD_LETTER_Q' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_DISCARD_MSG' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXCEPTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXCEPTION_WITH_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXCEPTION_WITH_FULL_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXPIRATION' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXPIRATION_WITH_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_EXPIRATION_WITH_FULL_DATA' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_NAN' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_NEW_MSG_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_PAN' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_PASS_CORREL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_PASS_DISCARD_AND_EXPIRY' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_PASS_MSG_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQRO_REJECT_UNSUP_MASK' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_ALTER' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_ALTERNATE_USER_AUTHORITY' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_ANY_USERID' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_CREATE' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_DURABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_FAIL_IF_QUIESCING' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_FIXED_USERID' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_GROUP_SUB' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_MANAGED' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_NEW_PUBLICATIONS_ONLY' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_NONE' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_NON_DURABLE' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_NO_MULTICAST' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_NO_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_PUBLICATIONS_ON_REQUEST' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_READ_AHEAD' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_READ_AHEAD_AS_Q_DEF' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_RESUME' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_SCOPE_QMGR' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_SET_CORREL_ID' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_SET_IDENTITY_CONTEXT' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_WILDCARD_CHAR' => 'mqseries/mqseries.php', + 'MQSERIES_MQSO_WILDCARD_TOPIC' => 'mqseries/mqseries.php', + 'MQSERIES_MQSTAT_TYPE_ASYNC_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQSTAT_TYPE_RECONNECTION' => 'mqseries/mqseries.php', + 'MQSERIES_MQSTAT_TYPE_RECONNECTION_ERROR' => 'mqseries/mqseries.php', + 'MQSERIES_MQWI_UNLIMITED' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_ALL' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_DECNET' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_LOCAL' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_LU62' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_NETBIOS' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_SPX' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_TCP' => 'mqseries/mqseries.php', + 'MQSERIES_MQXPT_UDP' => 'mqseries/mqseries.php', + 'MSG_CMSG_CLOEXEC' => 'sockets/sockets.php', + 'MSG_CONFIRM' => 'sockets/sockets.php', + 'MSG_CTRUNC' => 'sockets/sockets.php', + 'MSG_DONTROUTE' => 'sockets/sockets.php', + 'MSG_DONTWAIT' => 'sockets/sockets.php', + 'MSG_EAGAIN' => 'sysvmsg/sysvmsg.php', + 'MSG_ENOMSG' => 'sysvmsg/sysvmsg.php', + 'MSG_EOF' => 'sockets/sockets.php', + 'MSG_EOR' => 'sockets/sockets.php', + 'MSG_ERRQUEUE' => 'sockets/sockets.php', + 'MSG_EXCEPT' => 'sysvmsg/sysvmsg.php', + 'MSG_IPC_NOWAIT' => 'sysvmsg/sysvmsg.php', + 'MSG_MORE' => 'sockets/sockets.php', + 'MSG_NOERROR' => 'sysvmsg/sysvmsg.php', + 'MSG_NOSIGNAL' => 'sockets/sockets.php', + 'MSG_OOB' => 'sockets/sockets.php', + 'MSG_PEEK' => 'sockets/sockets.php', + 'MSG_TRUNC' => 'sockets/sockets.php', + 'MSG_WAITALL' => 'sockets/sockets.php', + 'MSG_WAITFORONE' => 'sockets/sockets.php', + 'MSG_ZEROCOPY' => 'sockets/sockets.php', + 'MSSQL_ASSOC' => 'mssql/mssql.php', + 'MSSQL_BOTH' => 'mssql/mssql.php', + 'MSSQL_NUM' => 'mssql/mssql.php', + 'MS_ALIGN_CENTER' => 'mapscript/mapscript.php', + 'MS_ALIGN_LEFT' => 'mapscript/mapscript.php', + 'MS_ALIGN_RIGHT' => 'mapscript/mapscript.php', + 'MS_AUTO' => 'mapscript/mapscript.php', + 'MS_AUTO2' => 'mapscript/mapscript.php', + 'MS_CC' => 'mapscript/mapscript.php', + 'MS_CGIERR' => 'mapscript/mapscript.php', + 'MS_CL' => 'mapscript/mapscript.php', + 'MS_CR' => 'mapscript/mapscript.php', + 'MS_DBFERR' => 'mapscript/mapscript.php', + 'MS_DD' => 'mapscript/mapscript.php', + 'MS_DEFAULT' => 'mapscript/mapscript.php', + 'MS_DELETE' => 'mapscript/mapscript.php', + 'MS_EMBED' => 'mapscript/mapscript.php', + 'MS_EOFERR' => 'mapscript/mapscript.php', + 'MS_FALSE' => 'mapscript/mapscript.php', + 'MS_FEET' => 'mapscript/mapscript.php', + 'MS_FOLLOW' => 'mapscript/mapscript.php', + 'MS_GDERR' => 'mapscript/mapscript.php', + 'MS_GD_ALPHA' => 'mapscript/mapscript.php', + 'MS_GET_REQUEST' => 'mapscript/mapscript.php', + 'MS_GIANT' => 'mapscript/mapscript.php', + 'MS_GRATICULE' => 'mapscript/mapscript.php', + 'MS_HASHERR' => 'mapscript/mapscript.php', + 'MS_HILITE' => 'mapscript/mapscript.php', + 'MS_HTTPERR' => 'mapscript/mapscript.php', + 'MS_IDENTERR' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_BYTE' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_FEATURE' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_FLOAT32' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_INT16' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_NULL' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_PC256' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_RGB' => 'mapscript/mapscript.php', + 'MS_IMAGEMODE_RGBA' => 'mapscript/mapscript.php', + 'MS_IMGERR' => 'mapscript/mapscript.php', + 'MS_INCHES' => 'mapscript/mapscript.php', + 'MS_INLINE' => 'mapscript/mapscript.php', + 'MS_IOERR' => 'mapscript/mapscript.php', + 'MS_JOINERR' => 'mapscript/mapscript.php', + 'MS_KILOMETERS' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_ANGLE' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_COLOR' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_FONT' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_OUTLINECOLOR' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_POSITION' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_PRIORITY' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_SHADOWSIZEX' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_SHADOWSIZEY' => 'mapscript/mapscript.php', + 'MS_LABEL_BINDING_SIZE' => 'mapscript/mapscript.php', + 'MS_LARGE' => 'mapscript/mapscript.php', + 'MS_LAYER_ANNOTATION' => 'mapscript/mapscript.php', + 'MS_LAYER_CHART' => 'mapscript/mapscript.php', + 'MS_LAYER_CIRCLE' => 'mapscript/mapscript.php', + 'MS_LAYER_LINE' => 'mapscript/mapscript.php', + 'MS_LAYER_POINT' => 'mapscript/mapscript.php', + 'MS_LAYER_POLYGON' => 'mapscript/mapscript.php', + 'MS_LAYER_QUERY' => 'mapscript/mapscript.php', + 'MS_LAYER_RASTER' => 'mapscript/mapscript.php', + 'MS_LAYER_TILEINDEX' => 'mapscript/mapscript.php', + 'MS_LC' => 'mapscript/mapscript.php', + 'MS_LL' => 'mapscript/mapscript.php', + 'MS_LR' => 'mapscript/mapscript.php', + 'MS_MAPCONTEXTERR' => 'mapscript/mapscript.php', + 'MS_MEDIUM' => 'mapscript/mapscript.php', + 'MS_MEMERR' => 'mapscript/mapscript.php', + 'MS_METERS' => 'mapscript/mapscript.php', + 'MS_MILES' => 'mapscript/mapscript.php', + 'MS_MISCERR' => 'mapscript/mapscript.php', + 'MS_MULTIPLE' => 'mapscript/mapscript.php', + 'MS_NAUTICALMILES' => 'mapscript/mapscript.php', + 'MS_NO' => 'mapscript/mapscript.php', + 'MS_NOERR' => 'mapscript/mapscript.php', + 'MS_NONE' => 'mapscript/mapscript.php', + 'MS_NORMAL' => 'mapscript/mapscript.php', + 'MS_NOTFOUND' => 'mapscript/mapscript.php', + 'MS_OFF' => 'mapscript/mapscript.php', + 'MS_OGR' => 'mapscript/mapscript.php', + 'MS_OGRERR' => 'mapscript/mapscript.php', + 'MS_ON' => 'mapscript/mapscript.php', + 'MS_ORACLESPATIAL' => 'mapscript/mapscript.php', + 'MS_ORACLESPATIALERR' => 'mapscript/mapscript.php', + 'MS_PARSEERR' => 'mapscript/mapscript.php', + 'MS_PIXELS' => 'mapscript/mapscript.php', + 'MS_PLUGIN' => 'mapscript/mapscript.php', + 'MS_POSTGIS' => 'mapscript/mapscript.php', + 'MS_POST_REQUEST' => 'mapscript/mapscript.php', + 'MS_PROJERR' => 'mapscript/mapscript.php', + 'MS_QUERYERR' => 'mapscript/mapscript.php', + 'MS_RASTER' => 'mapscript/mapscript.php', + 'MS_REGEXERR' => 'mapscript/mapscript.php', + 'MS_SDE' => 'mapscript/mapscript.php', + 'MS_SDEERR' => 'mapscript/mapscript.php', + 'MS_SELECTED' => 'mapscript/mapscript.php', + 'MS_SHAPEFILE' => 'mapscript/mapscript.php', + 'MS_SHAPE_LINE' => 'mapscript/mapscript.php', + 'MS_SHAPE_NULL' => 'mapscript/mapscript.php', + 'MS_SHAPE_POINT' => 'mapscript/mapscript.php', + 'MS_SHAPE_POLYGON' => 'mapscript/mapscript.php', + 'MS_SHPERR' => 'mapscript/mapscript.php', + 'MS_SHP_ARC' => 'mapscript/mapscript.php', + 'MS_SHP_MULTIPOINT' => 'mapscript/mapscript.php', + 'MS_SHP_POINT' => 'mapscript/mapscript.php', + 'MS_SHP_POLYGON' => 'mapscript/mapscript.php', + 'MS_SINGLE' => 'mapscript/mapscript.php', + 'MS_SMALL' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_ANGLE' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_COLOR' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_OUTLINECOLOR' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_SIZE' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_SYMBOL' => 'mapscript/mapscript.php', + 'MS_STYLE_BINDING_WIDTH' => 'mapscript/mapscript.php', + 'MS_SYMBOL_ELLIPSE' => 'mapscript/mapscript.php', + 'MS_SYMBOL_PIXMAP' => 'mapscript/mapscript.php', + 'MS_SYMBOL_SIMPLE' => 'mapscript/mapscript.php', + 'MS_SYMBOL_TRUETYPE' => 'mapscript/mapscript.php', + 'MS_SYMBOL_VECTOR' => 'mapscript/mapscript.php', + 'MS_SYMERR' => 'mapscript/mapscript.php', + 'MS_TILED_OGR' => 'mapscript/mapscript.php', + 'MS_TILED_SHAPEFILE' => 'mapscript/mapscript.php', + 'MS_TINY' => 'mapscript/mapscript.php', + 'MS_TRUE' => 'mapscript/mapscript.php', + 'MS_TTFERR' => 'mapscript/mapscript.php', + 'MS_TYPEERR' => 'mapscript/mapscript.php', + 'MS_UC' => 'mapscript/mapscript.php', + 'MS_UL' => 'mapscript/mapscript.php', + 'MS_UNION' => 'mapscript/mapscript.php', + 'MS_UR' => 'mapscript/mapscript.php', + 'MS_WCSERR' => 'mapscript/mapscript.php', + 'MS_WEBERR' => 'mapscript/mapscript.php', + 'MS_WFS' => 'mapscript/mapscript.php', + 'MS_WFSCONNERR' => 'mapscript/mapscript.php', + 'MS_WFSERR' => 'mapscript/mapscript.php', + 'MS_WMS' => 'mapscript/mapscript.php', + 'MS_WMSCONNERR' => 'mapscript/mapscript.php', + 'MS_WMSERR' => 'mapscript/mapscript.php', + 'MS_XY' => 'mapscript/mapscript.php', + 'MS_YES' => 'mapscript/mapscript.php', + 'MT_RAND_MT19937' => 'standard/standard_defines.php', + 'MT_RAND_PHP' => 'standard/standard_defines.php', + 'MYSQLI_ASSOC' => 'mysqli/mysqli.php', + 'MYSQLI_ASYNC' => 'mysqli/mysqli.php', + 'MYSQLI_AUTO_INCREMENT_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_BINARY_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_BLOB_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_BOTH' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_COMPRESS' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_FOUND_ROWS' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_IGNORE_SPACE' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_INTERACTIVE' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_NO_SCHEMA' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_SSL' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT' => 'mysqli/mysqli.php', + 'MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT' => 'mysqli/mysqli.php', + 'MYSQLI_CURSOR_TYPE_FOR_UPDATE' => 'mysqli/mysqli.php', + 'MYSQLI_CURSOR_TYPE_NO_CURSOR' => 'mysqli/mysqli.php', + 'MYSQLI_CURSOR_TYPE_READ_ONLY' => 'mysqli/mysqli.php', + 'MYSQLI_CURSOR_TYPE_SCROLLABLE' => 'mysqli/mysqli.php', + 'MYSQLI_DATA_TRUNCATED' => 'mysqli/mysqli.php', + 'MYSQLI_DEBUG_TRACE_ENABLED' => 'mysqli/mysqli.php', + 'MYSQLI_ENUM_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_GROUP_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_INIT_COMMAND' => 'mysqli/mysqli.php', + 'MYSQLI_IS_MARIADB' => 'mysqli/mysqli.php', + 'MYSQLI_MULTIPLE_KEY_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_NOT_NULL_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_NO_DATA' => 'mysqli/mysqli.php', + 'MYSQLI_NO_DEFAULT_VALUE_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_NUM' => 'mysqli/mysqli.php', + 'MYSQLI_NUM_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_ON_UPDATE_NOW_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_CONNECT_TIMEOUT' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_INT_AND_FLOAT_NATIVE' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_LOAD_DATA_LOCAL_DIR' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_LOCAL_INFILE' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_NET_CMD_BUFFER_SIZE' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_NET_READ_BUFFER_SIZE' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_READ_TIMEOUT' => 'mysqli/mysqli.php', + 'MYSQLI_OPT_SSL_VERIFY_SERVER_CERT' => 'mysqli/mysqli.php', + 'MYSQLI_PART_KEY_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_PRI_KEY_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_READ_DEFAULT_FILE' => 'mysqli/mysqli.php', + 'MYSQLI_READ_DEFAULT_GROUP' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_BACKUP_LOG' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_GRANT' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_HOSTS' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_LOG' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_MASTER' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_REPLICA' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_SLAVE' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_STATUS' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_TABLES' => 'mysqli/mysqli.php', + 'MYSQLI_REFRESH_THREADS' => 'mysqli/mysqli.php', + 'MYSQLI_REPORT_ALL' => 'mysqli/mysqli.php', + 'MYSQLI_REPORT_ERROR' => 'mysqli/mysqli.php', + 'MYSQLI_REPORT_INDEX' => 'mysqli/mysqli.php', + 'MYSQLI_REPORT_OFF' => 'mysqli/mysqli.php', + 'MYSQLI_REPORT_STRICT' => 'mysqli/mysqli.php', + 'MYSQLI_SERVER_PS_OUT_PARAMS' => 'mysqli/mysqli.php', + 'MYSQLI_SERVER_PUBLIC_KEY' => 'mysqli/mysqli.php', + 'MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED' => 'mysqli/mysqli.php', + 'MYSQLI_SERVER_QUERY_NO_INDEX_USED' => 'mysqli/mysqli.php', + 'MYSQLI_SERVER_QUERY_WAS_SLOW' => 'mysqli/mysqli.php', + 'MYSQLI_SET_CHARSET_DIR' => 'mysqli/mysqli.php', + 'MYSQLI_SET_CHARSET_NAME' => 'mysqli/mysqli.php', + 'MYSQLI_SET_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_STMT_ATTR_CURSOR_TYPE' => 'mysqli/mysqli.php', + 'MYSQLI_STMT_ATTR_PREFETCH_ROWS' => 'mysqli/mysqli.php', + 'MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH' => 'mysqli/mysqli.php', + 'MYSQLI_STORE_RESULT' => 'mysqli/mysqli.php', + 'MYSQLI_STORE_RESULT_COPY_DATA' => 'mysqli/mysqli.php', + 'MYSQLI_TIMESTAMP_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_COR_AND_CHAIN' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_COR_AND_NO_CHAIN' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_COR_NO_RELEASE' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_COR_RELEASE' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_START_READ_ONLY' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_START_READ_WRITE' => 'mysqli/mysqli.php', + 'MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_BIT' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_BLOB' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_CHAR' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_DATE' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_DATETIME' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_DECIMAL' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_DOUBLE' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_ENUM' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_FLOAT' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_GEOMETRY' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_INT24' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_INTERVAL' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_JSON' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_LONG' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_LONGLONG' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_LONG_BLOB' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_MEDIUM_BLOB' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_NEWDATE' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_NEWDECIMAL' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_NULL' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_SET' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_SHORT' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_STRING' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_TIME' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_TIMESTAMP' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_TINY' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_TINY_BLOB' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_VAR_STRING' => 'mysqli/mysqli.php', + 'MYSQLI_TYPE_YEAR' => 'mysqli/mysqli.php', + 'MYSQLI_UNIQUE_KEY_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_UNSIGNED_FLAG' => 'mysqli/mysqli.php', + 'MYSQLI_USE_RESULT' => 'mysqli/mysqli.php', + 'MYSQLI_ZEROFILL_FLAG' => 'mysqli/mysqli.php', + 'MYSQLX_LOCK_DEFAULT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_LOCK_NOWAIT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_LOCK_SKIP_LOCKED' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_BIGINT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_BIT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_BLOB' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_BYTES' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_CHAR' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_DATE' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_DATETIME' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_DECIMAL' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_DOUBLE' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_ENUM' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_FLOAT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_GEOMETRY' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_INT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_INT24' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_INTERVAL' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_JSON' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_LONG' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_LONGLONG' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_LONG_BLOB' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_MEDIUMINT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_MEDIUM_BLOB' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_NEWDATE' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_NEWDECIMAL' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_NULL' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_SET' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_SHORT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_SMALLINT' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_STRING' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_TIME' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_TIMESTAMP' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_TINY' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_TINY_BLOB' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_VAR_STRING' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQLX_TYPE_YEAR' => 'mysql_xdevapi/mysql_xdevapi.php', + 'MYSQL_ASSOC' => 'mysql/mysql.php', + 'MYSQL_BOTH' => 'mysql/mysql.php', + 'MYSQL_CLIENT_COMPRESS' => 'mysql/mysql.php', + 'MYSQL_CLIENT_IGNORE_SPACE' => 'mysql/mysql.php', + 'MYSQL_CLIENT_INTERACTIVE' => 'mysql/mysql.php', + 'MYSQL_CLIENT_SSL' => 'mysql/mysql.php', + 'MYSQL_NUM' => 'mysql/mysql.php', + 'M_1_PI' => 'standard/standard_defines.php', + 'M_2_PI' => 'standard/standard_defines.php', + 'M_2_SQRTPI' => 'standard/standard_defines.php', + 'M_E' => 'standard/standard_defines.php', + 'M_EULER' => 'standard/standard_defines.php', + 'M_LN10' => 'standard/standard_defines.php', + 'M_LN2' => 'standard/standard_defines.php', + 'M_LNPI' => 'standard/standard_defines.php', + 'M_LOG10E' => 'standard/standard_defines.php', + 'M_LOG2E' => 'standard/standard_defines.php', + 'M_PI' => 'standard/standard_defines.php', + 'M_PI_2' => 'standard/standard_defines.php', + 'M_PI_4' => 'standard/standard_defines.php', + 'M_SQRT1_2' => 'standard/standard_defines.php', + 'M_SQRT2' => 'standard/standard_defines.php', + 'M_SQRT3' => 'standard/standard_defines.php', + 'M_SQRTPI' => 'standard/standard_defines.php', + 'Menu' => 'winbinder/winbinder.php', + 'ModalDialog' => 'winbinder/winbinder.php', + 'ModelessDialog' => 'winbinder/winbinder.php', + 'NAN' => 'standard/standard_defines.php', + 'NCURSES_ALL_MOUSE_EVENTS' => 'ncurses/ncurses.php', + 'NCURSES_A_ALTCHARSET' => 'ncurses/ncurses.php', + 'NCURSES_A_BLINK' => 'ncurses/ncurses.php', + 'NCURSES_A_BOLD' => 'ncurses/ncurses.php', + 'NCURSES_A_CHARTEXT' => 'ncurses/ncurses.php', + 'NCURSES_A_DIM' => 'ncurses/ncurses.php', + 'NCURSES_A_INVIS' => 'ncurses/ncurses.php', + 'NCURSES_A_NORMAL' => 'ncurses/ncurses.php', + 'NCURSES_A_PROTECT' => 'ncurses/ncurses.php', + 'NCURSES_A_REVERSE' => 'ncurses/ncurses.php', + 'NCURSES_A_STANDOUT' => 'ncurses/ncurses.php', + 'NCURSES_A_UNDERLINE' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON1_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON1_DOUBLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON1_PRESSED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON1_RELEASED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON1_TRIPLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON2_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON2_DOUBLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON2_PRESSED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON2_RELEASED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON2_TRIPLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON3_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON3_DOUBLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON3_PRESSED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON3_RELEASED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON3_TRIPLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON4_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON4_DOUBLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON4_PRESSED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON4_RELEASED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON4_TRIPLE_CLICKED' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON_ALT' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON_CTRL' => 'ncurses/ncurses.php', + 'NCURSES_BUTTON_SHIFT' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_BLACK' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_BLUE' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_CYAN' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_GREEN' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_MAGENTA' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_RED' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_WHITE' => 'ncurses/ncurses.php', + 'NCURSES_COLOR_YELLOW' => 'ncurses/ncurses.php', + 'NCURSES_KEY_A1' => 'ncurses/ncurses.php', + 'NCURSES_KEY_A3' => 'ncurses/ncurses.php', + 'NCURSES_KEY_B2' => 'ncurses/ncurses.php', + 'NCURSES_KEY_BACKSPACE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_BEG' => 'ncurses/ncurses.php', + 'NCURSES_KEY_BTAB' => 'ncurses/ncurses.php', + 'NCURSES_KEY_C1' => 'ncurses/ncurses.php', + 'NCURSES_KEY_C3' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CANCEL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CATAB' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CLEAR' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CLOSE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_COMMAND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_COPY' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CREATE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_CTAB' => 'ncurses/ncurses.php', + 'NCURSES_KEY_DC' => 'ncurses/ncurses.php', + 'NCURSES_KEY_DL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_DOWN' => 'ncurses/ncurses.php', + 'NCURSES_KEY_EIC' => 'ncurses/ncurses.php', + 'NCURSES_KEY_END' => 'ncurses/ncurses.php', + 'NCURSES_KEY_ENTER' => 'ncurses/ncurses.php', + 'NCURSES_KEY_EOL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_EOS' => 'ncurses/ncurses.php', + 'NCURSES_KEY_EXIT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F0' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F1' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F10' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F11' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F12' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F2' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F3' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F4' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F5' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F6' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F7' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F8' => 'ncurses/ncurses.php', + 'NCURSES_KEY_F9' => 'ncurses/ncurses.php', + 'NCURSES_KEY_FIND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_HELP' => 'ncurses/ncurses.php', + 'NCURSES_KEY_HOME' => 'ncurses/ncurses.php', + 'NCURSES_KEY_IC' => 'ncurses/ncurses.php', + 'NCURSES_KEY_IL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_LEFT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_LL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_MARK' => 'ncurses/ncurses.php', + 'NCURSES_KEY_MESSAGE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_MOUSE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_MOVE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_NEXT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_NPAGE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_OPEN' => 'ncurses/ncurses.php', + 'NCURSES_KEY_OPTIONS' => 'ncurses/ncurses.php', + 'NCURSES_KEY_PPAGE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_PREVIOUS' => 'ncurses/ncurses.php', + 'NCURSES_KEY_PRINT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_REDO' => 'ncurses/ncurses.php', + 'NCURSES_KEY_REFERENCE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_REFRESH' => 'ncurses/ncurses.php', + 'NCURSES_KEY_REPLACE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_RESET' => 'ncurses/ncurses.php', + 'NCURSES_KEY_RESIZE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_RESTART' => 'ncurses/ncurses.php', + 'NCURSES_KEY_RESUME' => 'ncurses/ncurses.php', + 'NCURSES_KEY_RIGHT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SAVE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SBEG' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SCANCEL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SCOMMAND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SCOPY' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SCREATE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SDC' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SDL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SELECT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SEND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SEOL' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SEXIT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SF' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SFIND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SHELP' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SHOME' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SIC' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SLEFT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SMESSAGE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SMOVE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SNEXT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SOPTIONS' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SPREVIOUS' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SPRINT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SR' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SREDO' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SREPLACE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SRESET' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SRIGHT' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SRSUME' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SSAVE' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SSUSPEND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_STAB' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SUNDO' => 'ncurses/ncurses.php', + 'NCURSES_KEY_SUSPEND' => 'ncurses/ncurses.php', + 'NCURSES_KEY_UNDO' => 'ncurses/ncurses.php', + 'NCURSES_KEY_UP' => 'ncurses/ncurses.php', + 'NCURSES_REPORT_MOUSE_POSITION' => 'ncurses/ncurses.php', + 'NEGATIVE_SIGN' => 'standard/standard_defines.php', + 'NIL' => 'imap/imap.php', + 'NOCOLOR' => 'winbinder/winbinder.php', + 'NOEXPR' => 'standard/standard_defines.php', + 'NORM_IGNORECASE' => 'com_dotnet/com_dotnet.php', + 'NORM_IGNOREKANATYPE' => 'com_dotnet/com_dotnet.php', + 'NORM_IGNOREKASHIDA' => 'com_dotnet/com_dotnet.php', + 'NORM_IGNORENONSPACE' => 'com_dotnet/com_dotnet.php', + 'NORM_IGNORESYMBOLS' => 'com_dotnet/com_dotnet.php', + 'NORM_IGNOREWIDTH' => 'com_dotnet/com_dotnet.php', + 'NOSTR' => 'standard/standard_defines.php', + 'N_CS_PRECEDES' => 'standard/standard_defines.php', + 'N_SEP_BY_SPACE' => 'standard/standard_defines.php', + 'N_SIGN_POSN' => 'standard/standard_defines.php', + 'NakedWindow' => 'winbinder/winbinder.php', + 'OAUTH_AUTH_TYPE_AUTHORIZATION' => 'oauth/oauth.php', + 'OAUTH_AUTH_TYPE_FORM' => 'oauth/oauth.php', + 'OAUTH_AUTH_TYPE_NONE' => 'oauth/oauth.php', + 'OAUTH_AUTH_TYPE_URI' => 'oauth/oauth.php', + 'OAUTH_BAD_NONCE' => 'oauth/oauth.php', + 'OAUTH_BAD_TIMESTAMP' => 'oauth/oauth.php', + 'OAUTH_CONSUMER_KEY_REFUSED' => 'oauth/oauth.php', + 'OAUTH_CONSUMER_KEY_UNKNOWN' => 'oauth/oauth.php', + 'OAUTH_HTTP_METHOD_DELETE' => 'oauth/oauth.php', + 'OAUTH_HTTP_METHOD_GET' => 'oauth/oauth.php', + 'OAUTH_HTTP_METHOD_HEAD' => 'oauth/oauth.php', + 'OAUTH_HTTP_METHOD_POST' => 'oauth/oauth.php', + 'OAUTH_HTTP_METHOD_PUT' => 'oauth/oauth.php', + 'OAUTH_INVALID_SIGNATURE' => 'oauth/oauth.php', + 'OAUTH_OK' => 'oauth/oauth.php', + 'OAUTH_PARAMETER_ABSENT' => 'oauth/oauth.php', + 'OAUTH_REQENGINE_CURL' => 'oauth/oauth.php', + 'OAUTH_REQENGINE_STREAMS' => 'oauth/oauth.php', + 'OAUTH_SIGNATURE_METHOD_REJECTED' => 'oauth/oauth.php', + 'OAUTH_SIG_METHOD_HMACSHA1' => 'oauth/oauth.php', + 'OAUTH_SIG_METHOD_HMACSHA256' => 'oauth/oauth.php', + 'OAUTH_SIG_METHOD_RSASHA1' => 'oauth/oauth.php', + 'OAUTH_TOKEN_EXPIRED' => 'oauth/oauth.php', + 'OAUTH_TOKEN_REJECTED' => 'oauth/oauth.php', + 'OAUTH_TOKEN_USED' => 'oauth/oauth.php', + 'OAUTH_VERIFIER_INVALID' => 'oauth/oauth.php', + 'OCI_ASSOC' => 'oci8/oci8.php', + 'OCI_BOTH' => 'oci8/oci8.php', + 'OCI_B_BFILE' => 'oci8/oci8.php', + 'OCI_B_BIN' => 'oci8/oci8.php', + 'OCI_B_BLOB' => 'oci8/oci8.php', + 'OCI_B_BOL' => 'oci8/oci8.php', + 'OCI_B_CFILEE' => 'oci8/oci8.php', + 'OCI_B_CLOB' => 'oci8/oci8.php', + 'OCI_B_CURSOR' => 'oci8/oci8.php', + 'OCI_B_INT' => 'oci8/oci8.php', + 'OCI_B_NTY' => 'oci8/oci8.php', + 'OCI_B_NUM' => 'oci8/oci8.php', + 'OCI_B_ROWID' => 'oci8/oci8.php', + 'OCI_COMMIT_ON_SUCCESS' => 'oci8/oci8.php', + 'OCI_CRED_EXT' => 'oci8/oci8.php', + 'OCI_DEFAULT' => 'oci8/oci8.php', + 'OCI_DESCRIBE_ONLY' => 'oci8/oci8.php', + 'OCI_DTYPE_FILE' => 'oci8/oci8.php', + 'OCI_DTYPE_LOB' => 'oci8/oci8.php', + 'OCI_DTYPE_ROWID' => 'oci8/oci8.php', + 'OCI_D_FILE' => 'oci8/oci8.php', + 'OCI_D_LOB' => 'oci8/oci8.php', + 'OCI_D_ROWID' => 'oci8/oci8.php', + 'OCI_EXACT_FETCH' => 'oci8/oci8.php', + 'OCI_FETCHSTATEMENT_BY_COLUMN' => 'oci8/oci8.php', + 'OCI_FETCHSTATEMENT_BY_ROW' => 'oci8/oci8.php', + 'OCI_LOB_BUFFER_FREE' => 'oci8/oci8.php', + 'OCI_NO_AUTO_COMMIT' => 'oci8/oci8.php', + 'OCI_NUM' => 'oci8/oci8.php', + 'OCI_RETURN_LOBS' => 'oci8/oci8.php', + 'OCI_RETURN_NULLS' => 'oci8/oci8.php', + 'OCI_SEEK_CUR' => 'oci8/oci8.php', + 'OCI_SEEK_END' => 'oci8/oci8.php', + 'OCI_SEEK_SET' => 'oci8/oci8.php', + 'OCI_SYSDATE' => 'oci8/oci8.php', + 'OCI_SYSDBA' => 'oci8/oci8.php', + 'OCI_SYSOPER' => 'oci8/oci8.php', + 'OCI_TEMP_BLOB' => 'oci8/oci8.php', + 'OCI_TEMP_CLOB' => 'oci8/oci8.php', + 'ODBC_BINMODE_CONVERT' => 'odbc/odbc.php', + 'ODBC_BINMODE_PASSTHRU' => 'odbc/odbc.php', + 'ODBC_BINMODE_RETURN' => 'odbc/odbc.php', + 'ODBC_TYPE' => 'odbc/odbc.php', + 'OPENSSL_ALGO_DSS1' => 'openssl/openssl.php', + 'OPENSSL_ALGO_MD2' => 'openssl/openssl.php', + 'OPENSSL_ALGO_MD4' => 'openssl/openssl.php', + 'OPENSSL_ALGO_MD5' => 'openssl/openssl.php', + 'OPENSSL_ALGO_RMD160' => 'openssl/openssl.php', + 'OPENSSL_ALGO_SHA1' => 'openssl/openssl.php', + 'OPENSSL_ALGO_SHA224' => 'openssl/openssl.php', + 'OPENSSL_ALGO_SHA256' => 'openssl/openssl.php', + 'OPENSSL_ALGO_SHA384' => 'openssl/openssl.php', + 'OPENSSL_ALGO_SHA512' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_3DES' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_AES_128_CBC' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_AES_192_CBC' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_AES_256_CBC' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_DES' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_RC2_128' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_RC2_40' => 'openssl/openssl.php', + 'OPENSSL_CIPHER_RC2_64' => 'openssl/openssl.php', + 'OPENSSL_CMS_BINARY' => 'openssl/openssl.php', + 'OPENSSL_CMS_DETACHED' => 'openssl/openssl.php', + 'OPENSSL_CMS_NOATTR' => 'openssl/openssl.php', + 'OPENSSL_CMS_NOCERTS' => 'openssl/openssl.php', + 'OPENSSL_CMS_NOINTERN' => 'openssl/openssl.php', + 'OPENSSL_CMS_NOSIGS' => 'openssl/openssl.php', + 'OPENSSL_CMS_NOVERIFY' => 'openssl/openssl.php', + 'OPENSSL_CMS_OLDMIMETYPE' => 'openssl/openssl.php', + 'OPENSSL_CMS_TEXT' => 'openssl/openssl.php', + 'OPENSSL_DEFAULT_STREAM_CIPHERS' => 'openssl/openssl.php', + 'OPENSSL_DONT_ZERO_PAD_KEY' => 'openssl/openssl.php', + 'OPENSSL_ENCODING_DER' => 'openssl/openssl.php', + 'OPENSSL_ENCODING_PEM' => 'openssl/openssl.php', + 'OPENSSL_ENCODING_SMIME' => 'openssl/openssl.php', + 'OPENSSL_KEYTYPE_DH' => 'openssl/openssl.php', + 'OPENSSL_KEYTYPE_DSA' => 'openssl/openssl.php', + 'OPENSSL_KEYTYPE_EC' => 'openssl/openssl.php', + 'OPENSSL_KEYTYPE_RSA' => 'openssl/openssl.php', + 'OPENSSL_NO_PADDING' => 'openssl/openssl.php', + 'OPENSSL_PKCS1_OAEP_PADDING' => 'openssl/openssl.php', + 'OPENSSL_PKCS1_PADDING' => 'openssl/openssl.php', + 'OPENSSL_RAW_DATA' => 'openssl/openssl.php', + 'OPENSSL_SSLV23_PADDING' => 'openssl/openssl.php', + 'OPENSSL_TLSEXT_SERVER_NAME' => 'openssl/openssl.php', + 'OPENSSL_VERSION_NUMBER' => 'openssl/openssl.php', + 'OPENSSL_VERSION_TEXT' => 'openssl/openssl.php', + 'OPENSSL_ZERO_PADDING' => 'openssl/openssl.php', + 'OP_ANONYMOUS' => 'imap/imap.php', + 'OP_DEBUG' => 'imap/imap.php', + 'OP_EXPUNGE' => 'imap/imap.php', + 'OP_HALFOPEN' => 'imap/imap.php', + 'OP_PROTOTYPE' => 'imap/imap.php', + 'OP_READONLY' => 'imap/imap.php', + 'OP_SECURE' => 'imap/imap.php', + 'OP_SHORTCACHE' => 'imap/imap.php', + 'OP_SILENT' => 'imap/imap.php', + 'O_APPEND' => 'dio/dio_d.php', + 'O_ASYNC' => 'dio/dio_d.php', + 'O_CREAT' => 'dio/dio_d.php', + 'O_EXCL' => 'dio/dio_d.php', + 'O_NDELAY' => 'dio/dio_d.php', + 'O_NOCTTY' => 'dio/dio_d.php', + 'O_NONBLOCK' => 'dio/dio_d.php', + 'O_RDONLY' => 'dio/dio_d.php', + 'O_RDWR' => 'dio/dio_d.php', + 'O_SYNC' => 'dio/dio_d.php', + 'O_TRUNC' => 'dio/dio_d.php', + 'O_WRONLY' => 'dio/dio_d.php', + 'PASSWORD_ARGON2I' => 'standard/password.php', + 'PASSWORD_ARGON2ID' => 'standard/password.php', + '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', + 'PATHINFO_ALL' => 'standard/standard_defines.php', + 'PATHINFO_BASENAME' => 'standard/standard_defines.php', + 'PATHINFO_DIRNAME' => 'standard/standard_defines.php', + 'PATHINFO_EXTENSION' => 'standard/standard_defines.php', + 'PATHINFO_FILENAME' => 'standard/standard_defines.php', + 'PATH_SEPARATOR' => 'standard/standard_defines.php', + 'PCNTL_E2BIG' => 'pcntl/pcntl.php', + 'PCNTL_EACCES' => 'pcntl/pcntl.php', + 'PCNTL_EAGAIN' => 'pcntl/pcntl.php', + 'PCNTL_ECHILD' => 'pcntl/pcntl.php', + 'PCNTL_EFAULT' => 'pcntl/pcntl.php', + 'PCNTL_EINTR' => 'pcntl/pcntl.php', + 'PCNTL_EINVAL' => 'pcntl/pcntl.php', + 'PCNTL_EIO' => 'pcntl/pcntl.php', + 'PCNTL_EISDIR' => 'pcntl/pcntl.php', + 'PCNTL_ELIBBAD' => 'pcntl/pcntl.php', + 'PCNTL_ELOOP' => 'pcntl/pcntl.php', + 'PCNTL_EMFILE' => 'pcntl/pcntl.php', + 'PCNTL_ENAMETOOLONG' => 'pcntl/pcntl.php', + 'PCNTL_ENFILE' => 'pcntl/pcntl.php', + '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', + 'PCRE_VERSION_MINOR' => 'pcre/pcre.php', + 'PEAR_EXTENSION_DIR' => 'Core/Core_d.php', + 'PEAR_INSTALL_DIR' => 'Core/Core_d.php', + 'PGSQL_ASSOC' => 'pgsql/pgsql.php', + 'PGSQL_BAD_RESPONSE' => 'pgsql/pgsql.php', + 'PGSQL_BOTH' => 'pgsql/pgsql.php', + 'PGSQL_COMMAND_OK' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_AUTH_OK' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_AWAITING_RESPONSE' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_BAD' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_MADE' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_OK' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_SETENV' => 'pgsql/pgsql.php', + 'PGSQL_CONNECTION_STARTED' => 'pgsql/pgsql.php', + 'PGSQL_CONNECT_ASYNC' => 'pgsql/pgsql.php', + 'PGSQL_CONNECT_FORCE_NEW' => 'pgsql/pgsql.php', + 'PGSQL_CONV_FORCE_NULL' => 'pgsql/pgsql.php', + 'PGSQL_CONV_IGNORE_DEFAULT' => 'pgsql/pgsql.php', + 'PGSQL_CONV_IGNORE_NOT_NULL' => 'pgsql/pgsql.php', + 'PGSQL_COPY_IN' => 'pgsql/pgsql.php', + 'PGSQL_COPY_OUT' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_COLUMN_NAME' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_CONSTRAINT_NAME' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_CONTEXT' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_DATATYPE_NAME' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_INTERNAL_POSITION' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_INTERNAL_QUERY' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_MESSAGE_DETAIL' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_MESSAGE_HINT' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_MESSAGE_PRIMARY' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SCHEMA_NAME' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SEVERITY' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SEVERITY_NONLOCALIZED' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SOURCE_FILE' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SOURCE_FUNCTION' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SOURCE_LINE' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_SQLSTATE' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_STATEMENT_POSITION' => 'pgsql/pgsql.php', + 'PGSQL_DIAG_TABLE_NAME' => 'pgsql/pgsql.php', + 'PGSQL_DML_ASYNC' => 'pgsql/pgsql.php', + 'PGSQL_DML_ESCAPE' => 'pgsql/pgsql.php', + 'PGSQL_DML_EXEC' => 'pgsql/pgsql.php', + 'PGSQL_DML_NO_CONV' => 'pgsql/pgsql.php', + 'PGSQL_DML_STRING' => 'pgsql/pgsql.php', + 'PGSQL_EMPTY_QUERY' => 'pgsql/pgsql.php', + 'PGSQL_ERRORS_DEFAULT' => 'pgsql/pgsql.php', + 'PGSQL_ERRORS_SQLSTATE' => 'pgsql/pgsql.php', + 'PGSQL_ERRORS_TERSE' => 'pgsql/pgsql.php', + 'PGSQL_ERRORS_VERBOSE' => 'pgsql/pgsql.php', + 'PGSQL_FATAL_ERROR' => 'pgsql/pgsql.php', + 'PGSQL_LIBPQ_VERSION' => 'pgsql/pgsql.php', + 'PGSQL_LIBPQ_VERSION_STR' => 'pgsql/pgsql.php', + 'PGSQL_NONFATAL_ERROR' => 'pgsql/pgsql.php', + 'PGSQL_NOTICE_ALL' => 'pgsql/pgsql.php', + 'PGSQL_NOTICE_CLEAR' => 'pgsql/pgsql.php', + 'PGSQL_NOTICE_LAST' => 'pgsql/pgsql.php', + 'PGSQL_NUM' => 'pgsql/pgsql.php', + 'PGSQL_PIPELINE_ABORTED' => 'pgsql/pgsql.php', + 'PGSQL_PIPELINE_OFF' => 'pgsql/pgsql.php', + 'PGSQL_PIPELINE_ON' => 'pgsql/pgsql.php', + 'PGSQL_PIPELINE_SYNC' => 'pgsql/pgsql.php', + 'PGSQL_POLLING_ACTIVE' => 'pgsql/pgsql.php', + 'PGSQL_POLLING_FAILED' => 'pgsql/pgsql.php', + 'PGSQL_POLLING_OK' => 'pgsql/pgsql.php', + 'PGSQL_POLLING_READING' => 'pgsql/pgsql.php', + 'PGSQL_POLLING_WRITING' => 'pgsql/pgsql.php', + 'PGSQL_SEEK_CUR' => 'pgsql/pgsql.php', + 'PGSQL_SEEK_END' => 'pgsql/pgsql.php', + 'PGSQL_SEEK_SET' => 'pgsql/pgsql.php', + 'PGSQL_SHOW_CONTEXT_ALWAYS' => 'pgsql/pgsql.php', + 'PGSQL_SHOW_CONTEXT_ERRORS' => 'pgsql/pgsql.php', + 'PGSQL_SHOW_CONTEXT_NEVER' => 'pgsql/pgsql.php', + 'PGSQL_STATUS_LONG' => 'pgsql/pgsql.php', + 'PGSQL_STATUS_STRING' => 'pgsql/pgsql.php', + 'PGSQL_TRACE_REGRESS_MODE' => 'pgsql/pgsql.php', + 'PGSQL_TRANSACTION_ACTIVE' => 'pgsql/pgsql.php', + 'PGSQL_TRANSACTION_IDLE' => 'pgsql/pgsql.php', + 'PGSQL_TRANSACTION_INERROR' => 'pgsql/pgsql.php', + 'PGSQL_TRANSACTION_INTRANS' => 'pgsql/pgsql.php', + 'PGSQL_TRANSACTION_UNKNOWN' => 'pgsql/pgsql.php', + 'PGSQL_TUPLES_OK' => 'pgsql/pgsql.php', + 'PHP_AMQP_MAX_CHANNELS' => 'amqp/amqp.php', + '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', + 'PHP_DEBUG' => 'Core/Core_d.php', + 'PHP_EOL' => 'Core/Core_d.php', + 'PHP_EXTENSION_DIR' => 'Core/Core_d.php', + 'PHP_EXTRA_VERSION' => 'Core/Core_d.php', + 'PHP_FD_SETSIZE' => 'Core/Core_d.php', + 'PHP_FLOAT_DIG' => 'Core/Core_d.php', + 'PHP_FLOAT_EPSILON' => 'Core/Core_d.php', + 'PHP_FLOAT_MAX' => 'Core/Core_d.php', + 'PHP_FLOAT_MIN' => 'Core/Core_d.php', + 'PHP_INT_MAX' => 'Core/Core_d.php', + 'PHP_INT_MIN' => 'Core/Core_d.php', + 'PHP_INT_SIZE' => 'Core/Core_d.php', + 'PHP_LIBDIR' => 'Core/Core_d.php', + 'PHP_LOCALSTATEDIR' => 'Core/Core_d.php', + 'PHP_MAJOR_VERSION' => 'Core/Core_d.php', + 'PHP_MANDIR' => 'Core/Core_d.php', + 'PHP_MAXPATHLEN' => 'Core/Core_d.php', + 'PHP_MINOR_VERSION' => 'Core/Core_d.php', + 'PHP_NORMAL_READ' => 'sockets/sockets.php', + 'PHP_OS' => 'Core/Core_d.php', + 'PHP_OS_FAMILY' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_CLEAN' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_CLEANABLE' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_CONT' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_DISABLED' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_END' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_FINAL' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_FLUSH' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_FLUSHABLE' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_REMOVABLE' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_START' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_STARTED' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_STDFLAGS' => 'Core/Core_d.php', + 'PHP_OUTPUT_HANDLER_WRITE' => 'Core/Core_d.php', + 'PHP_PREFIX' => 'Core/Core_d.php', + 'PHP_QUERY_RFC1738' => 'standard/standard_defines.php', + 'PHP_QUERY_RFC3986' => 'standard/standard_defines.php', + 'PHP_RELEASE_VERSION' => 'Core/Core_d.php', + 'PHP_ROUND_HALF_DOWN' => 'standard/standard_defines.php', + 'PHP_ROUND_HALF_EVEN' => 'standard/standard_defines.php', + 'PHP_ROUND_HALF_ODD' => 'standard/standard_defines.php', + 'PHP_ROUND_HALF_UP' => 'standard/standard_defines.php', + 'PHP_SAPI' => 'Core/Core_d.php', + 'PHP_SESSION_ACTIVE' => 'standard/standard_defines.php', + 'PHP_SESSION_DISABLED' => 'standard/standard_defines.php', + 'PHP_SESSION_NONE' => 'standard/standard_defines.php', + 'PHP_SHLIB_SUFFIX' => 'Core/Core_d.php', + 'PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS' => 'svn/svn.php', + 'PHP_SYSCONFDIR' => 'Core/Core_d.php', + 'PHP_URL_FRAGMENT' => 'standard/standard_defines.php', + 'PHP_URL_HOST' => 'standard/standard_defines.php', + 'PHP_URL_PASS' => 'standard/standard_defines.php', + 'PHP_URL_PATH' => 'standard/standard_defines.php', + 'PHP_URL_PORT' => 'standard/standard_defines.php', + 'PHP_URL_QUERY' => 'standard/standard_defines.php', + 'PHP_URL_SCHEME' => 'standard/standard_defines.php', + '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', + 'PHP_WINDOWS_VERSION_BUILD' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_MAJOR' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_MINOR' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_PLATFORM' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_PRODUCTTYPE' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_SP_MAJOR' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_SP_MINOR' => 'Core/Core_d.php', + 'PHP_WINDOWS_VERSION_SUITEMASK' => 'Core/Core_d.php', + 'PHP_ZTS' => 'Core/Core_d.php', + 'PKCS7_BINARY' => 'openssl/openssl.php', + 'PKCS7_DETACHED' => 'openssl/openssl.php', + 'PKCS7_NOATTR' => 'openssl/openssl.php', + 'PKCS7_NOCERTS' => 'openssl/openssl.php', + 'PKCS7_NOCHAIN' => 'openssl/openssl.php', + 'PKCS7_NOINTERN' => 'openssl/openssl.php', + 'PKCS7_NOOLDMIMETYPE' => 'openssl/openssl.php', + 'PKCS7_NOSIGS' => 'openssl/openssl.php', + 'PKCS7_NOVERIFY' => 'openssl/openssl.php', + 'PKCS7_TEXT' => 'openssl/openssl.php', + 'PM_STR' => 'standard/standard_defines.php', + 'PNG_ALL_FILTERS' => 'gd/gd.php', + 'PNG_FILTER_AVG' => 'gd/gd.php', + 'PNG_FILTER_NONE' => 'gd/gd.php', + 'PNG_FILTER_PAETH' => 'gd/gd.php', + 'PNG_FILTER_SUB' => 'gd/gd.php', + 'PNG_FILTER_UP' => 'gd/gd.php', + 'PNG_NO_FILTER' => 'gd/gd.php', + 'POLL_ERR' => 'pcntl/pcntl.php', + 'POLL_HUP' => 'pcntl/pcntl.php', + 'POLL_IN' => 'pcntl/pcntl.php', + 'POLL_MSG' => 'pcntl/pcntl.php', + 'POLL_OUT' => 'pcntl/pcntl.php', + 'POLL_PRI' => 'pcntl/pcntl.php', + 'POSITIVE_SIGN' => 'standard/standard_defines.php', + 'POSIX_F_OK' => 'posix/posix.php', + 'POSIX_PC_ALLOC_SIZE_MIN' => 'posix/posix.php', + 'POSIX_PC_CHOWN_RESTRICTED' => 'posix/posix.php', + 'POSIX_PC_LINK_MAX' => 'posix/posix.php', + 'POSIX_PC_MAX_CANON' => 'posix/posix.php', + 'POSIX_PC_MAX_INPUT' => 'posix/posix.php', + 'POSIX_PC_NAME_MAX' => 'posix/posix.php', + 'POSIX_PC_NO_TRUNC' => 'posix/posix.php', + 'POSIX_PC_PATH_MAX' => 'posix/posix.php', + 'POSIX_PC_PIPE_BUF' => 'posix/posix.php', + 'POSIX_PC_SYMLINK_MAX' => 'posix/posix.php', + 'POSIX_RLIMIT_AS' => 'posix/posix.php', + 'POSIX_RLIMIT_CORE' => 'posix/posix.php', + 'POSIX_RLIMIT_CPU' => 'posix/posix.php', + 'POSIX_RLIMIT_DATA' => 'posix/posix.php', + 'POSIX_RLIMIT_FSIZE' => 'posix/posix.php', + 'POSIX_RLIMIT_INFINITY' => 'posix/posix.php', + 'POSIX_RLIMIT_LOCKS' => 'posix/posix.php', + 'POSIX_RLIMIT_MEMLOCK' => 'posix/posix.php', + 'POSIX_RLIMIT_MSGQUEUE' => 'posix/posix.php', + 'POSIX_RLIMIT_NICE' => 'posix/posix.php', + 'POSIX_RLIMIT_NOFILE' => 'posix/posix.php', + 'POSIX_RLIMIT_NPROC' => 'posix/posix.php', + 'POSIX_RLIMIT_RSS' => 'posix/posix.php', + 'POSIX_RLIMIT_RTPRIO' => 'posix/posix.php', + 'POSIX_RLIMIT_RTTIME' => 'posix/posix.php', + 'POSIX_RLIMIT_SIGPENDING' => 'posix/posix.php', + 'POSIX_RLIMIT_STACK' => 'posix/posix.php', + 'POSIX_R_OK' => 'posix/posix.php', + 'POSIX_SC_ARG_MAX' => 'posix/posix.php', + 'POSIX_SC_NPROCESSORS_CONF' => 'posix/posix.php', + 'POSIX_SC_NPROCESSORS_ONLN' => 'posix/posix.php', + 'POSIX_SC_PAGESIZE' => 'posix/posix.php', + 'POSIX_S_IFBLK' => 'posix/posix.php', + 'POSIX_S_IFCHR' => 'posix/posix.php', + 'POSIX_S_IFIFO' => 'posix/posix.php', + 'POSIX_S_IFREG' => 'posix/posix.php', + 'POSIX_S_IFSOCK' => 'posix/posix.php', + 'POSIX_W_OK' => 'posix/posix.php', + 'POSIX_X_OK' => 'posix/posix.php', + 'PREG_BACKTRACK_LIMIT_ERROR' => 'pcre/pcre.php', + 'PREG_BAD_UTF8_ERROR' => 'pcre/pcre.php', + 'PREG_BAD_UTF8_OFFSET_ERROR' => 'pcre/pcre.php', + 'PREG_GREP_INVERT' => 'pcre/pcre.php', + 'PREG_INTERNAL_ERROR' => 'pcre/pcre.php', + 'PREG_JIT_STACKLIMIT_ERROR' => 'pcre/pcre.php', + 'PREG_NO_ERROR' => 'pcre/pcre.php', + 'PREG_OFFSET_CAPTURE' => 'pcre/pcre.php', + 'PREG_PATTERN_ORDER' => 'pcre/pcre.php', + 'PREG_RECURSION_LIMIT_ERROR' => 'pcre/pcre.php', + 'PREG_SET_ORDER' => 'pcre/pcre.php', + 'PREG_SPLIT_DELIM_CAPTURE' => 'pcre/pcre.php', + 'PREG_SPLIT_NO_EMPTY' => 'pcre/pcre.php', + 'PREG_SPLIT_OFFSET_CAPTURE' => 'pcre/pcre.php', + 'PREG_UNMATCHED_AS_NULL' => 'pcre/pcre.php', + 'PRIO_PGRP' => 'pcntl/pcntl.php', + 'PRIO_PROCESS' => 'pcntl/pcntl.php', + 'PRIO_USER' => 'pcntl/pcntl.php', + 'PSFS_ERR_FATAL' => 'standard/standard_defines.php', + 'PSFS_FEED_ME' => 'standard/standard_defines.php', + 'PSFS_FLAG_FLUSH_CLOSE' => 'standard/standard_defines.php', + 'PSFS_FLAG_FLUSH_INC' => 'standard/standard_defines.php', + 'PSFS_FLAG_NORMAL' => 'standard/standard_defines.php', + 'PSFS_PASS_ON' => 'standard/standard_defines.php', + 'PSPELL_BAD_SPELLERS' => 'pspell/pspell.php', + 'PSPELL_FAST' => 'pspell/pspell.php', + 'PSPELL_NORMAL' => 'pspell/pspell.php', + 'PSPELL_RUN_TOGETHER' => 'pspell/pspell.php', + 'PTHREADS_ALLOW_HEADERS' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_ALL' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_CLASSES' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_COMMENTS' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_CONSTANTS' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_FUNCTIONS' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_INCLUDES' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_INI' => 'pthreads/pthreads.php', + 'PTHREADS_INHERIT_NONE' => 'pthreads/pthreads.php', + 'P_CS_PRECEDES' => 'standard/standard_defines.php', + 'P_SEP_BY_SPACE' => 'standard/standard_defines.php', + 'P_SIGN_POSN' => 'standard/standard_defines.php', + 'PopupWindow' => 'winbinder/winbinder.php', + 'PushButton' => 'winbinder/winbinder.php', + 'RADIUS_ACCESS_ACCEPT' => 'radius/radius.php', + 'RADIUS_ACCESS_CHALLENGE' => 'radius/radius.php', + 'RADIUS_ACCESS_REJECT' => 'radius/radius.php', + 'RADIUS_ACCESS_REQUEST' => 'radius/radius.php', + 'RADIUS_ACCOUNTING_OFF' => 'radius/radius.php', + 'RADIUS_ACCOUNTING_ON' => 'radius/radius.php', + 'RADIUS_ACCOUNTING_REQUEST' => 'radius/radius.php', + 'RADIUS_ACCOUNTING_RESPONSE' => 'radius/radius.php', + 'RADIUS_ACCT_AUTHENTIC' => 'radius/radius.php', + 'RADIUS_ACCT_DELAY_TIME' => 'radius/radius.php', + 'RADIUS_ACCT_INPUT_OCTETS' => 'radius/radius.php', + 'RADIUS_ACCT_INPUT_PACKETS' => 'radius/radius.php', + 'RADIUS_ACCT_LINK_COUNT' => 'radius/radius.php', + 'RADIUS_ACCT_MULTI_SESSION_ID' => 'radius/radius.php', + 'RADIUS_ACCT_OUTPUT_OCTETS' => 'radius/radius.php', + 'RADIUS_ACCT_OUTPUT_PACKETS' => 'radius/radius.php', + 'RADIUS_ACCT_SESSION_ID' => 'radius/radius.php', + 'RADIUS_ACCT_SESSION_TIME' => 'radius/radius.php', + 'RADIUS_ACCT_STATUS_TYPE' => 'radius/radius.php', + 'RADIUS_ACCT_TERMINATE_CAUSE' => 'radius/radius.php', + 'RADIUS_ADMINISTRATIVE' => 'radius/radius.php', + 'RADIUS_ADSL_CAP' => 'radius/radius.php', + 'RADIUS_ADSL_DMT' => 'radius/radius.php', + 'RADIUS_ARAP' => 'radius/radius.php', + 'RADIUS_ASYNC' => 'radius/radius.php', + 'RADIUS_AUTHENTICATE_ONLY' => 'radius/radius.php', + 'RADIUS_AUTH_LOCAL' => 'radius/radius.php', + 'RADIUS_AUTH_RADIUS' => 'radius/radius.php', + 'RADIUS_AUTH_REMOTE' => 'radius/radius.php', + 'RADIUS_CABLE' => 'radius/radius.php', + 'RADIUS_CALLBACK_FRAMED' => 'radius/radius.php', + 'RADIUS_CALLBACK_ID' => 'radius/radius.php', + 'RADIUS_CALLBACK_LOGIN' => 'radius/radius.php', + 'RADIUS_CALLBACK_NAS_PROMPT' => 'radius/radius.php', + 'RADIUS_CALLBACK_NUMBER' => 'radius/radius.php', + 'RADIUS_CALLED_STATION_ID' => 'radius/radius.php', + 'RADIUS_CALLING_STATION_ID' => 'radius/radius.php', + 'RADIUS_CHAP_CHALLENGE' => 'radius/radius.php', + 'RADIUS_CHAP_PASSWORD' => 'radius/radius.php', + 'RADIUS_CLASS' => 'radius/radius.php', + 'RADIUS_COA_ACK' => 'radius/radius.php', + 'RADIUS_COA_NAK' => 'radius/radius.php', + 'RADIUS_COA_REQUEST' => 'radius/radius.php', + 'RADIUS_COMP_IPXHDR' => 'radius/radius.php', + 'RADIUS_COMP_NONE' => 'radius/radius.php', + 'RADIUS_COMP_VJ' => 'radius/radius.php', + 'RADIUS_CONNECT_INFO' => 'radius/radius.php', + 'RADIUS_DISCONNECT_ACK' => 'radius/radius.php', + 'RADIUS_DISCONNECT_NAK' => 'radius/radius.php', + 'RADIUS_DISCONNECT_REQUEST' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_ADMINISTRATIVELY_PROHIBITED' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_INVALID_EAP_PACKET' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_INVALID_REQUEST' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_MISSING_ATTRIBUTE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_NAS_IDENTIFICATION_MISMATCH' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_OTHER_PROXY_PROCESSING_ERROR' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_REQUEST_INITIATED' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_REQUEST_NOT_ROUTABLE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_RESIDUAL_SESSION_CONTEXT_REMOVED' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_RESOURCES_UNAVAILABLE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_SESSION_CONTEXT_NOT_FOUND' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_SESSION_CONTEXT_NOT_REMOVABLE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_UNSUPPORTED_ATTRIBUTE' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_UNSUPPORTED_EXCEPTION' => 'radius/radius.php', + 'RADIUS_ERROR_CAUSE_UNSUPPORTED_SERVICE' => 'radius/radius.php', + 'RADIUS_ETHERNET' => 'radius/radius.php', + 'RADIUS_FILTER_ID' => 'radius/radius.php', + 'RADIUS_FRAMED' => 'radius/radius.php', + 'RADIUS_FRAMED_APPLETALK_LINK' => 'radius/radius.php', + 'RADIUS_FRAMED_APPLETALK_NETWORK' => 'radius/radius.php', + 'RADIUS_FRAMED_APPLETALK_ZONE' => 'radius/radius.php', + 'RADIUS_FRAMED_COMPRESSION' => 'radius/radius.php', + 'RADIUS_FRAMED_INTERFACE_ID' => 'radius/radius.php', + 'RADIUS_FRAMED_IPV6_POOL' => 'radius/radius.php', + 'RADIUS_FRAMED_IPV6_PREFIX' => 'radius/radius.php', + 'RADIUS_FRAMED_IPV6_ROUTE' => 'radius/radius.php', + 'RADIUS_FRAMED_IPX_NETWORK' => 'radius/radius.php', + 'RADIUS_FRAMED_IP_ADDRESS' => 'radius/radius.php', + 'RADIUS_FRAMED_IP_NETMASK' => 'radius/radius.php', + 'RADIUS_FRAMED_MTU' => 'radius/radius.php', + 'RADIUS_FRAMED_PROTOCOL' => 'radius/radius.php', + 'RADIUS_FRAMED_ROUTE' => 'radius/radius.php', + 'RADIUS_FRAMED_ROUTING' => 'radius/radius.php', + 'RADIUS_GANDALF' => 'radius/radius.php', + 'RADIUS_G_3_FAX' => 'radius/radius.php', + 'RADIUS_HDLC_CLEAR_CHANNEL' => 'radius/radius.php', + 'RADIUS_IDLE_TIMEOUT' => 'radius/radius.php', + 'RADIUS_IDSL' => 'radius/radius.php', + 'RADIUS_ISDN_ASYNC_V110' => 'radius/radius.php', + 'RADIUS_ISDN_ASYNC_V120' => 'radius/radius.php', + 'RADIUS_ISDN_SYNC' => 'radius/radius.php', + 'RADIUS_LOGIN' => 'radius/radius.php', + 'RADIUS_LOGIN_IPV6_HOST' => 'radius/radius.php', + 'RADIUS_LOGIN_IP_HOST' => 'radius/radius.php', + 'RADIUS_LOGIN_LAT_GROUP' => 'radius/radius.php', + 'RADIUS_LOGIN_LAT_NODE' => 'radius/radius.php', + 'RADIUS_LOGIN_LAT_PORT' => 'radius/radius.php', + 'RADIUS_LOGIN_LAT_SERVICE' => 'radius/radius.php', + 'RADIUS_LOGIN_SERVICE' => 'radius/radius.php', + 'RADIUS_LOGIN_TCP_PORT' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_ACCT_AUTH_TYPE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_ACCT_EAP_TYPE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_ARAP_CHALLENGE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_ARAP_PASSWORD_CHANGE_REASON' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_BAP_USAGE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP2_PW' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP2_RESPONSE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP2_SUCCESS' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_CHALLENGE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_DOMAIN' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_ERROR' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_LM_ENC_PW' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_MPPE_KEYS' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_NT_ENC_PW' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_PW_1' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_PW_2' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_CHAP_RESPONSE' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_FILTER' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_LINK_DROP_TIME_LIMIT' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_LINK_UTILIZATION_THRESHOLD' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_POLICY' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_MPPE_ENCRYPTION_TYPES' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_MPPE_RECV_KEY' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_MPPE_SEND_KEY' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_NEW_ARAP_PASSWORD' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_OLD_ARAP_PASSWORD' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_PRIMARY_DNS_SERVER' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_PRIMARY_NBNS_SERVER' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_RAS_VENDOR' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_RAS_VERSION' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_SECONDARY_DNS_SERVER' => 'radius/radius.php', + 'RADIUS_MICROSOFT_MS_SECONDARY_NBNS_SERVER' => 'radius/radius.php', + 'RADIUS_MPPE_KEY_LEN' => 'radius/radius.php', + 'RADIUS_NAS_IDENTIFIER' => 'radius/radius.php', + 'RADIUS_NAS_IPV6_ADDRESS' => 'radius/radius.php', + 'RADIUS_NAS_IP_ADDRESS' => 'radius/radius.php', + 'RADIUS_NAS_PORT' => 'radius/radius.php', + 'RADIUS_NAS_PORT_TYPE' => 'radius/radius.php', + 'RADIUS_NAS_PROMPT' => 'radius/radius.php', + 'RADIUS_OPTION_NONE' => 'radius/radius.php', + 'RADIUS_OPTION_SALT' => 'radius/radius.php', + 'RADIUS_OPTION_TAGGED' => 'radius/radius.php', + 'RADIUS_OUTBOUND' => 'radius/radius.php', + 'RADIUS_PIAFS' => 'radius/radius.php', + 'RADIUS_PORT_LIMIT' => 'radius/radius.php', + 'RADIUS_PPP' => 'radius/radius.php', + 'RADIUS_PROXY_STATE' => 'radius/radius.php', + 'RADIUS_REPLY_MESSAGE' => 'radius/radius.php', + 'RADIUS_SDSL' => 'radius/radius.php', + 'RADIUS_SERVICE_TYPE' => 'radius/radius.php', + 'RADIUS_SESSION_TIMEOUT' => 'radius/radius.php', + 'RADIUS_SLIP' => 'radius/radius.php', + 'RADIUS_START' => 'radius/radius.php', + 'RADIUS_STATE' => 'radius/radius.php', + 'RADIUS_STOP' => 'radius/radius.php', + 'RADIUS_SYNC' => 'radius/radius.php', + 'RADIUS_TERMINATION_ACTION' => 'radius/radius.php', + 'RADIUS_TERM_ADMIN_REBOOT' => 'radius/radius.php', + 'RADIUS_TERM_ADMIN_RESET' => 'radius/radius.php', + 'RADIUS_TERM_CALLBACK' => 'radius/radius.php', + 'RADIUS_TERM_HOST_REQUEST' => 'radius/radius.php', + 'RADIUS_TERM_IDLE_TIMEOUT' => 'radius/radius.php', + 'RADIUS_TERM_LOST_CARRIER' => 'radius/radius.php', + 'RADIUS_TERM_LOST_SERVICE' => 'radius/radius.php', + 'RADIUS_TERM_NAS_ERROR' => 'radius/radius.php', + 'RADIUS_TERM_NAS_REBOOT' => 'radius/radius.php', + 'RADIUS_TERM_NAS_REQUEST' => 'radius/radius.php', + 'RADIUS_TERM_PORT_ERROR' => 'radius/radius.php', + 'RADIUS_TERM_PORT_PREEMPTED' => 'radius/radius.php', + 'RADIUS_TERM_PORT_SUSPENDED' => 'radius/radius.php', + 'RADIUS_TERM_PORT_UNNEEDED' => 'radius/radius.php', + 'RADIUS_TERM_SERVICE_UNAVAILABLE' => 'radius/radius.php', + 'RADIUS_TERM_SESSION_TIMEOUT' => 'radius/radius.php', + 'RADIUS_TERM_USER_ERROR' => 'radius/radius.php', + 'RADIUS_TERM_USER_REQUEST' => 'radius/radius.php', + 'RADIUS_USER_NAME' => 'radius/radius.php', + 'RADIUS_USER_PASSWORD' => 'radius/radius.php', + 'RADIUS_VENDOR_MICROSOFT' => 'radius/radius.php', + 'RADIUS_VENDOR_SPECIFIC' => 'radius/radius.php', + 'RADIUS_VIRTUAL' => 'radius/radius.php', + 'RADIUS_WIRELESS_IEEE_802_11' => 'radius/radius.php', + 'RADIUS_WIRELESS_OTHER' => 'radius/radius.php', + 'RADIUS_XDSL' => 'radius/radius.php', + 'RADIUS_XYLOGICS' => 'radius/radius.php', + 'RADIUS_X_25' => 'radius/radius.php', + 'RADIUS_X_75' => 'radius/radius.php', + 'RADIXCHAR' => 'standard/standard_defines.php', + 'RAD_OPTION_TAG' => 'radius/radius.php', + 'RD_KAFKA_BUILD_VERSION' => 'rdkafka/constants.php', + 'RD_KAFKA_CONF_INVALID' => 'rdkafka/constants.php', + 'RD_KAFKA_CONF_OK' => 'rdkafka/constants.php', + 'RD_KAFKA_CONF_UNKNOWN' => 'rdkafka/constants.php', + 'RD_KAFKA_CONSUMER' => 'rdkafka/constants.php', + 'RD_KAFKA_LOG_PRINT' => 'rdkafka/constants.php', + 'RD_KAFKA_LOG_SYSLOG' => 'rdkafka/constants.php', + 'RD_KAFKA_LOG_SYSLOG_PRINT' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_F_BLOCK' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_PARTITIONER_CONSISTENT' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_PARTITIONER_CONSISTENT_RANDOM' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_PARTITIONER_MURMUR2' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_PARTITIONER_MURMUR2_RANDOM' => 'rdkafka/constants.php', + 'RD_KAFKA_MSG_PARTITIONER_RANDOM' => 'rdkafka/constants.php', + 'RD_KAFKA_OFFSET_BEGINNING' => 'rdkafka/constants.php', + 'RD_KAFKA_OFFSET_END' => 'rdkafka/constants.php', + 'RD_KAFKA_OFFSET_INVALID' => 'rdkafka/constants.php', + 'RD_KAFKA_OFFSET_STORED' => 'rdkafka/constants.php', + 'RD_KAFKA_PARTITION_UA' => 'rdkafka/constants.php', + 'RD_KAFKA_PRODUCER' => 'rdkafka/constants.php', + 'RD_KAFKA_PURGE_F_INFLIGHT' => 'rdkafka/constants.php', + 'RD_KAFKA_PURGE_F_NON_BLOCKING' => 'rdkafka/constants.php', + 'RD_KAFKA_PURGE_F_QUEUE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_BROKER_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_CLUSTER_AUTHORIZATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_CONCURRENT_TRANSACTIONS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_COORDINATOR_LOAD_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_COORDINATOR_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTHORIZATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_AUTH_DISABLED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_EXPIRED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_OWNER_MISMATCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DELEGATION_TOKEN_REQUEST_NOT_ALLOWED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DUPLICATE_RESOURCE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_DUPLICATE_SEQUENCE_NUMBER' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_ELECTION_NOT_NEEDED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_ELIGIBLE_LEADERS_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_FEATURE_UPDATE_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_FENCED_INSTANCE_ID' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_FENCED_LEADER_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_FETCH_SESSION_ID_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_AUTHORIZATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_COORDINATOR_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_ID_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_LOAD_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_MAX_SIZE_REACHED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_GROUP_SUBSCRIBED_TO_TOPIC' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_ILLEGAL_GENERATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_ILLEGAL_SASL_STATE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INCONSISTENT_GROUP_PROTOCOL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INCONSISTENT_VOTER_SET' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_COMMIT_OFFSET_SIZE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_CONFIG' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_FETCH_SESSION_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_GROUP_ID' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_MSG' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_MSG_SIZE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_PARTITIONS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_PRINCIPAL_TYPE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_PRODUCER_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_PRODUCER_ID_MAPPING' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_RECORD' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_REPLICATION_FACTOR' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_REPLICA_ASSIGNMENT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_REQUEST' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_REQUIRED_ACKS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_SESSION_TIMEOUT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_TIMESTAMP' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_TRANSACTION_TIMEOUT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_TXN_STATE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_INVALID_UPDATE_VERSION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_KAFKA_STORAGE_ERROR' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_LEADER_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_LISTENER_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_LOG_DIR_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_MEMBER_ID_REQUIRED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_MSG_SIZE_TOO_LARGE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NETWORK_EXCEPTION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NON_EMPTY_GROUP' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_CONTROLLER' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_COORDINATOR' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_COORDINATOR_FOR_GROUP' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_ENOUGH_REPLICAS_AFTER_APPEND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NOT_LEADER_FOR_PARTITION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NO_ERROR' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_NO_REASSIGNMENT_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_OFFSET_METADATA_TOO_LARGE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_OFFSET_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_OFFSET_OUT_OF_RANGE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_OPERATION_NOT_ATTEMPTED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_OUT_OF_ORDER_SEQUENCE_NUMBER' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_POLICY_VIOLATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_PREFERRED_LEADER_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_PRINCIPAL_DESERIALIZATION_FAILURE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_PRODUCER_FENCED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_REASSIGNMENT_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_REBALANCE_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_RECORD_LIST_TOO_LARGE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_REPLICA_NOT_AVAILABLE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_REQUEST_TIMED_OUT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_RESOURCE_NOT_FOUND' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_SASL_AUTHENTICATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_SECURITY_DISABLED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_STALE_BROKER_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_STALE_CTRL_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_THROTTLING_QUOTA_EXCEEDED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TOPIC_ALREADY_EXISTS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TOPIC_AUTHORIZATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TOPIC_DELETION_DISABLED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TOPIC_EXCEPTION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TRANSACTIONAL_ID_AUTHORIZATION_FAILED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_TRANSACTION_COORDINATOR_FENCED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNACCEPTABLE_CREDENTIAL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNKNOWN' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNKNOWN_LEADER_EPOCH' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNKNOWN_MEMBER_ID' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNKNOWN_PRODUCER_ID' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNKNOWN_TOPIC_OR_PART' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNSTABLE_OFFSET_COMMIT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNSUPPORTED_COMPRESSION_TYPE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNSUPPORTED_FOR_MESSAGE_FORMAT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNSUPPORTED_SASL_MECHANISM' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR_UNSUPPORTED_VERSION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__ALL_BROKERS_DOWN' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__APPLICATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__ASSIGNMENT_LOST' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__ASSIGN_PARTITIONS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__AUTHENTICATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__AUTO_OFFSET_RESET' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__BAD_COMPRESSION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__BAD_MSG' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__BEGIN' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__CONFLICT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__CRIT_SYS_RESOURCE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__DESTROY' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__END' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__EXISTING_SUBSCRIPTION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__FAIL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__FATAL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__FENCED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__FS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__GAPLESS_GUARANTEE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__INCONSISTENT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__INTR' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__INVALID_ARG' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__INVALID_TYPE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__ISR_INSUFF' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__KEY_DESERIALIZATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__KEY_SERIALIZATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__MAX_POLL_EXCEEDED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__MSG_TIMED_OUT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NODE_UPDATE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NOENT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NOOP' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NOT_CONFIGURED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NOT_IMPLEMENTED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__NO_OFFSET' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__OUTDATED' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__PARTIAL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__PARTITION_EOF' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__PREV_IN_PROGRESS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__PURGE_INFLIGHT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__PURGE_QUEUE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__QUEUE_FULL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__READ_ONLY' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__RESOLVE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__RETRY' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__REVOKE_PARTITIONS' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__SSL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__STATE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__TIMED_OUT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__TIMED_OUT_QUEUE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__TRANSPORT' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNDERFLOW' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNKNOWN_BROKER' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNKNOWN_GROUP' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNKNOWN_PARTITION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNKNOWN_PROTOCOL' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNKNOWN_TOPIC' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__UNSUPPORTED_FEATURE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__VALUE_DESERIALIZATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__VALUE_SERIALIZATION' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__WAIT_CACHE' => 'rdkafka/constants.php', + 'RD_KAFKA_RESP_ERR__WAIT_COORD' => 'rdkafka/constants.php', + 'RD_KAFKA_VERSION' => 'rdkafka/constants.php', + 'READLINE_LIB' => 'readline/readline.php', + 'RED' => 'winbinder/winbinder.php', + 'RPMMIRE_DEFAULT' => 'rpminfo/rpminfo.php', + 'RPMMIRE_GLOB' => 'rpminfo/rpminfo.php', + 'RPMMIRE_REGEX' => 'rpminfo/rpminfo.php', + 'RPMMIRE_STRCMP' => 'rpminfo/rpminfo.php', + 'RPMSENSE_ANY' => 'rpminfo/rpminfo.php', + 'RPMSENSE_CONFIG' => 'rpminfo/rpminfo.php', + 'RPMSENSE_EQUAL' => 'rpminfo/rpminfo.php', + 'RPMSENSE_FIND_PROVIDES' => 'rpminfo/rpminfo.php', + 'RPMSENSE_FIND_REQUIRES' => 'rpminfo/rpminfo.php', + 'RPMSENSE_GREATER' => 'rpminfo/rpminfo.php', + 'RPMSENSE_INTERP' => 'rpminfo/rpminfo.php', + 'RPMSENSE_KEYRING' => 'rpminfo/rpminfo.php', + 'RPMSENSE_LESS' => 'rpminfo/rpminfo.php', + 'RPMSENSE_MISSINGOK' => 'rpminfo/rpminfo.php', + 'RPMSENSE_POSTTRANS' => 'rpminfo/rpminfo.php', + 'RPMSENSE_PREREQ' => 'rpminfo/rpminfo.php', + 'RPMSENSE_PRETRANS' => 'rpminfo/rpminfo.php', + 'RPMSENSE_RPMLIB' => 'rpminfo/rpminfo.php', + 'RPMSENSE_SCRIPT_POST' => 'rpminfo/rpminfo.php', + 'RPMSENSE_SCRIPT_POSTUN' => 'rpminfo/rpminfo.php', + 'RPMSENSE_SCRIPT_PRE' => 'rpminfo/rpminfo.php', + 'RPMSENSE_SCRIPT_PREUN' => 'rpminfo/rpminfo.php', + 'RPMSENSE_SCRIPT_VERIFY' => 'rpminfo/rpminfo.php', + 'RPMSENSE_TRIGGERIN' => 'rpminfo/rpminfo.php', + 'RPMSENSE_TRIGGERPOSTUN' => 'rpminfo/rpminfo.php', + 'RPMSENSE_TRIGGERPREIN' => 'rpminfo/rpminfo.php', + 'RPMSENSE_TRIGGERUN' => 'rpminfo/rpminfo.php', + 'RPMTAG_ARCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_ARCHIVESIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_BASENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_BUGURL' => 'rpminfo/rpminfo.php', + 'RPMTAG_BUILDARCHS' => 'rpminfo/rpminfo.php', + 'RPMTAG_BUILDHOST' => 'rpminfo/rpminfo.php', + 'RPMTAG_BUILDTIME' => 'rpminfo/rpminfo.php', + 'RPMTAG_C' => 'rpminfo/rpminfo.php', + 'RPMTAG_CHANGELOGNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_CHANGELOGTEXT' => 'rpminfo/rpminfo.php', + 'RPMTAG_CHANGELOGTIME' => 'rpminfo/rpminfo.php', + 'RPMTAG_CLASSDICT' => 'rpminfo/rpminfo.php', + 'RPMTAG_CONFLICTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_CONFLICTNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_CONFLICTNEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_CONFLICTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_CONFLICTVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_COOKIE' => 'rpminfo/rpminfo.php', + 'RPMTAG_DBINSTANCE' => 'rpminfo/rpminfo.php', + 'RPMTAG_DEPENDSDICT' => 'rpminfo/rpminfo.php', + 'RPMTAG_DESCRIPTION' => 'rpminfo/rpminfo.php', + 'RPMTAG_DIRINDEXES' => 'rpminfo/rpminfo.php', + 'RPMTAG_DIRNAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_DISTRIBUTION' => 'rpminfo/rpminfo.php', + 'RPMTAG_DISTTAG' => 'rpminfo/rpminfo.php', + 'RPMTAG_DISTURL' => 'rpminfo/rpminfo.php', + 'RPMTAG_DSAHEADER' => 'rpminfo/rpminfo.php', + 'RPMTAG_E' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENCODING' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENHANCEFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENHANCENAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENHANCENEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENHANCES' => 'rpminfo/rpminfo.php', + 'RPMTAG_ENHANCEVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_EPOCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_EPOCHNUM' => 'rpminfo/rpminfo.php', + 'RPMTAG_EVR' => 'rpminfo/rpminfo.php', + 'RPMTAG_EXCLUDEARCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_EXCLUDEOS' => 'rpminfo/rpminfo.php', + 'RPMTAG_EXCLUSIVEARCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_EXCLUSIVEOS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILECAPS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILECLASS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILECOLORS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILECONTEXTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEDEPENDSN' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEDEPENDSX' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEDEVICES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEDIGESTALGO' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEDIGESTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEGROUPNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEINODES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILELANGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILELINKTOS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEMD5S' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEMODES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEMTIMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILENLINKS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEPROVIDE' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILERDEVS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEREQUIRE' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILESIGNATURELENGTH' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILESIGNATURES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILESIZES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILESTATES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERCONDS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERINDEX' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERPRIORITIES' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERSCRIPTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERSCRIPTPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERSCRIPTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERTYPE' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILETRIGGERVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEUSERNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_FILEVERIFYFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_FSCONTEXTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_GIF' => 'rpminfo/rpminfo.php', + 'RPMTAG_GROUP' => 'rpminfo/rpminfo.php', + 'RPMTAG_HDRID' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERCOLOR' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERI18NTABLE' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERIMAGE' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERIMMUTABLE' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERREGIONS' => 'rpminfo/rpminfo.php', + 'RPMTAG_HEADERSIGNATURES' => 'rpminfo/rpminfo.php', + 'RPMTAG_ICON' => 'rpminfo/rpminfo.php', + 'RPMTAG_INSTALLCOLOR' => 'rpminfo/rpminfo.php', + 'RPMTAG_INSTALLTID' => 'rpminfo/rpminfo.php', + 'RPMTAG_INSTALLTIME' => 'rpminfo/rpminfo.php', + 'RPMTAG_INSTFILENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_INSTPREFIXES' => 'rpminfo/rpminfo.php', + 'RPMTAG_LICENSE' => 'rpminfo/rpminfo.php', + 'RPMTAG_LONGARCHIVESIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_LONGFILESIZES' => 'rpminfo/rpminfo.php', + 'RPMTAG_LONGSIGSIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_LONGSIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_MODULARITYLABEL' => 'rpminfo/rpminfo.php', + 'RPMTAG_N' => 'rpminfo/rpminfo.php', + 'RPMTAG_NAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_NEVR' => 'rpminfo/rpminfo.php', + 'RPMTAG_NEVRA' => 'rpminfo/rpminfo.php', + 'RPMTAG_NOPATCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_NOSOURCE' => 'rpminfo/rpminfo.php', + 'RPMTAG_NVR' => 'rpminfo/rpminfo.php', + 'RPMTAG_NVRA' => 'rpminfo/rpminfo.php', + 'RPMTAG_O' => 'rpminfo/rpminfo.php', + 'RPMTAG_OBSOLETEFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_OBSOLETENAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_OBSOLETENEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_OBSOLETES' => 'rpminfo/rpminfo.php', + 'RPMTAG_OBSOLETEVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDENHANCES' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDENHANCESFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDENHANCESNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDENHANCESVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDFILENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDSUGGESTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDSUGGESTSFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDSUGGESTSNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_OLDSUGGESTSVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_OPTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORDERFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORDERNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORDERVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORIGBASENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORIGDIRINDEXES' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORIGDIRNAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_ORIGFILENAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_OS' => 'rpminfo/rpminfo.php', + 'RPMTAG_P' => 'rpminfo/rpminfo.php', + 'RPMTAG_PACKAGER' => 'rpminfo/rpminfo.php', + 'RPMTAG_PATCH' => 'rpminfo/rpminfo.php', + 'RPMTAG_PATCHESFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PATCHESNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_PATCHESVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_PAYLOADCOMPRESSOR' => 'rpminfo/rpminfo.php', + 'RPMTAG_PAYLOADDIGEST' => 'rpminfo/rpminfo.php', + 'RPMTAG_PAYLOADDIGESTALGO' => 'rpminfo/rpminfo.php', + 'RPMTAG_PAYLOADFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PAYLOADFORMAT' => 'rpminfo/rpminfo.php', + 'RPMTAG_PKGID' => 'rpminfo/rpminfo.php', + 'RPMTAG_PLATFORM' => 'rpminfo/rpminfo.php', + 'RPMTAG_POLICIES' => 'rpminfo/rpminfo.php', + 'RPMTAG_POLICYFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_POLICYNAMES' => 'rpminfo/rpminfo.php', + 'RPMTAG_POLICYTYPES' => 'rpminfo/rpminfo.php', + 'RPMTAG_POLICYTYPESINDEXES' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTIN' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTINFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTINPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTTRANS' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTTRANSFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTTRANSPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTUN' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTUNFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_POSTUNPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREFIXES' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREIN' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREINFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREINPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_PRETRANS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PRETRANSFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PRETRANSPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREUN' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREUNFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PREUNPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_PROVIDEFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PROVIDENAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_PROVIDENEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_PROVIDES' => 'rpminfo/rpminfo.php', + 'RPMTAG_PROVIDEVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_PUBKEYS' => 'rpminfo/rpminfo.php', + 'RPMTAG_R' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECOMMENDFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECOMMENDNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECOMMENDNEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECOMMENDS' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECOMMENDVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_RECONTEXTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_RELEASE' => 'rpminfo/rpminfo.php', + 'RPMTAG_REMOVETID' => 'rpminfo/rpminfo.php', + 'RPMTAG_REQUIREFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_REQUIRENAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_REQUIRENEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_REQUIRES' => 'rpminfo/rpminfo.php', + 'RPMTAG_REQUIREVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_RPMVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_RSAHEADER' => 'rpminfo/rpminfo.php', + 'RPMTAG_SHA1HEADER' => 'rpminfo/rpminfo.php', + 'RPMTAG_SHA256HEADER' => 'rpminfo/rpminfo.php', + 'RPMTAG_SIGGPG' => 'rpminfo/rpminfo.php', + 'RPMTAG_SIGMD5' => 'rpminfo/rpminfo.php', + 'RPMTAG_SIGPGP' => 'rpminfo/rpminfo.php', + 'RPMTAG_SIGSIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_SIZE' => 'rpminfo/rpminfo.php', + 'RPMTAG_SOURCE' => 'rpminfo/rpminfo.php', + 'RPMTAG_SOURCEPACKAGE' => 'rpminfo/rpminfo.php', + 'RPMTAG_SOURCEPKGID' => 'rpminfo/rpminfo.php', + 'RPMTAG_SOURCERPM' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUGGESTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUGGESTNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUGGESTNEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUGGESTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUGGESTVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUMMARY' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUPPLEMENTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUPPLEMENTNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUPPLEMENTNEVRS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUPPLEMENTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_SUPPLEMENTVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERCONDS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERINDEX' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERPRIORITIES' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERSCRIPTPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERSCRIPTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERTYPE' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRANSFILETRIGGERVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERCONDS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERINDEX' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERNAME' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERSCRIPTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERSCRIPTPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERSCRIPTS' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERTYPE' => 'rpminfo/rpminfo.php', + 'RPMTAG_TRIGGERVERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_URL' => 'rpminfo/rpminfo.php', + 'RPMTAG_V' => 'rpminfo/rpminfo.php', + 'RPMTAG_VCS' => 'rpminfo/rpminfo.php', + 'RPMTAG_VENDOR' => 'rpminfo/rpminfo.php', + 'RPMTAG_VERBOSE' => 'rpminfo/rpminfo.php', + 'RPMTAG_VERIFYSCRIPT' => 'rpminfo/rpminfo.php', + 'RPMTAG_VERIFYSCRIPTFLAGS' => 'rpminfo/rpminfo.php', + 'RPMTAG_VERIFYSCRIPTPROG' => 'rpminfo/rpminfo.php', + 'RPMTAG_VERSION' => 'rpminfo/rpminfo.php', + 'RPMTAG_XPM' => 'rpminfo/rpminfo.php', + 'RPMVERSION' => 'rpminfo/rpminfo.php', + 'RTFEditBox' => 'winbinder/winbinder.php', + 'RadioButton' => 'winbinder/winbinder.php', + 'ResizableWindow' => 'winbinder/winbinder.php', + 'SA_ALL' => 'imap/imap.php', + 'SA_MESSAGES' => 'imap/imap.php', + 'SA_RECENT' => 'imap/imap.php', + 'SA_UIDNEXT' => 'imap/imap.php', + 'SA_UIDVALIDITY' => 'imap/imap.php', + 'SA_UNSEEN' => 'imap/imap.php', + 'SCANDIR_SORT_ASCENDING' => 'standard/standard_defines.php', + 'SCANDIR_SORT_DESCENDING' => 'standard/standard_defines.php', + 'SCANDIR_SORT_NONE' => 'standard/standard_defines.php', + 'SCM_CREDENTIALS' => 'sockets/sockets.php', + 'SCM_RIGHTS' => 'sockets/sockets.php', + 'SEEK_CUR' => 'standard/standard_defines.php', + 'SEEK_END' => 'standard/standard_defines.php', + 'SEEK_SET' => 'standard/standard_defines.php', + 'SEGV_ACCERR' => 'pcntl/pcntl.php', + 'SEGV_MAPERR' => 'pcntl/pcntl.php', + 'SE_FREE' => 'imap/imap.php', + 'SE_NOPREFETCH' => 'imap/imap.php', + 'SE_UID' => 'imap/imap.php', + 'SID' => 'standard/standard_defines.php', + 'SIGABRT' => 'pcntl/pcntl.php', + 'SIGALRM' => 'pcntl/pcntl.php', + 'SIGBABY' => 'pcntl/pcntl.php', + 'SIGBUS' => 'pcntl/pcntl.php', + 'SIGCHLD' => 'pcntl/pcntl.php', + 'SIGCLD' => 'pcntl/pcntl.php', + 'SIGCONT' => 'pcntl/pcntl.php', + 'SIGFPE' => 'pcntl/pcntl.php', + 'SIGHUP' => 'pcntl/pcntl.php', + 'SIGILL' => 'pcntl/pcntl.php', + 'SIGINT' => 'pcntl/pcntl.php', + 'SIGIO' => 'pcntl/pcntl.php', + 'SIGIOT' => 'pcntl/pcntl.php', + 'SIGKILL' => 'pcntl/pcntl.php', + 'SIGPIPE' => 'pcntl/pcntl.php', + 'SIGPOLL' => 'pcntl/pcntl.php', + 'SIGPROF' => 'pcntl/pcntl.php', + 'SIGPWR' => 'pcntl/pcntl.php', + 'SIGQUIT' => 'pcntl/pcntl.php', + 'SIGRTMAX' => 'pcntl/pcntl.php', + 'SIGRTMIN' => 'pcntl/pcntl.php', + 'SIGSEGV' => 'pcntl/pcntl.php', + 'SIGSTKFLT' => 'pcntl/pcntl.php', + 'SIGSTOP' => 'pcntl/pcntl.php', + 'SIGSYS' => 'pcntl/pcntl.php', + 'SIGTERM' => 'pcntl/pcntl.php', + 'SIGTRAP' => 'pcntl/pcntl.php', + 'SIGTSTP' => 'pcntl/pcntl.php', + 'SIGTTIN' => 'pcntl/pcntl.php', + 'SIGTTOU' => 'pcntl/pcntl.php', + 'SIGURG' => 'pcntl/pcntl.php', + 'SIGUSR1' => 'pcntl/pcntl.php', + 'SIGUSR2' => 'pcntl/pcntl.php', + 'SIGVTALRM' => 'pcntl/pcntl.php', + 'SIGWINCH' => 'pcntl/pcntl.php', + 'SIGXCPU' => 'pcntl/pcntl.php', + 'SIGXFSZ' => 'pcntl/pcntl.php', + 'SIG_BLOCK' => 'pcntl/pcntl.php', + 'SIG_DFL' => 'pcntl/pcntl.php', + 'SIG_ERR' => 'pcntl/pcntl.php', + 'SIG_IGN' => 'pcntl/pcntl.php', + 'SIG_SETMASK' => 'pcntl/pcntl.php', + 'SIG_UNBLOCK' => 'pcntl/pcntl.php', + 'SI_ASYNCIO' => 'pcntl/pcntl.php', + 'SI_KERNEL' => 'pcntl/pcntl.php', + 'SI_MESGQ' => 'pcntl/pcntl.php', + 'SI_QUEUE' => 'pcntl/pcntl.php', + 'SI_SIGIO' => 'pcntl/pcntl.php', + 'SI_TIMER' => 'pcntl/pcntl.php', + 'SI_TKILL' => 'pcntl/pcntl.php', + 'SI_USER' => 'pcntl/pcntl.php', + 'SKF_AD_ALU_XOR_X' => 'sockets/sockets.php', + 'SKF_AD_CPU' => 'sockets/sockets.php', + 'SKF_AD_HATYPE' => 'sockets/sockets.php', + 'SKF_AD_IFINDEX' => 'sockets/sockets.php', + 'SKF_AD_MARK' => 'sockets/sockets.php', + 'SKF_AD_MAX' => 'sockets/sockets.php', + 'SKF_AD_NLATTR' => 'sockets/sockets.php', + 'SKF_AD_NLATTR_NEST' => 'sockets/sockets.php', + 'SKF_AD_OFF' => 'sockets/sockets.php', + 'SKF_AD_PAY_OFFSET' => 'sockets/sockets.php', + 'SKF_AD_PKTTYPE' => 'sockets/sockets.php', + 'SKF_AD_PROTOCOL' => 'sockets/sockets.php', + 'SKF_AD_QUEUE' => 'sockets/sockets.php', + 'SKF_AD_RANDOM' => 'sockets/sockets.php', + 'SKF_AD_RXHASH' => 'sockets/sockets.php', + 'SKF_AD_VLAN_TAG' => 'sockets/sockets.php', + 'SKF_AD_VLAN_TAG_PRESENT' => 'sockets/sockets.php', + 'SKF_AD_VLAN_TPID' => 'sockets/sockets.php', + 'SNMP_BIT_STR' => 'snmp/snmp.php', + 'SNMP_COUNTER' => 'snmp/snmp.php', + 'SNMP_COUNTER64' => 'snmp/snmp.php', + 'SNMP_INTEGER' => 'snmp/snmp.php', + 'SNMP_IPADDRESS' => 'snmp/snmp.php', + 'SNMP_NULL' => 'snmp/snmp.php', + 'SNMP_OBJECT_ID' => 'snmp/snmp.php', + 'SNMP_OCTET_STR' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_FULL' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_MODULE' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_NONE' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_NUMERIC' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_SUFFIX' => 'snmp/snmp.php', + 'SNMP_OID_OUTPUT_UCD' => 'snmp/snmp.php', + 'SNMP_OPAQUE' => 'snmp/snmp.php', + 'SNMP_TIMETICKS' => 'snmp/snmp.php', + 'SNMP_UINTEGER' => 'snmp/snmp.php', + 'SNMP_UNSIGNED' => 'snmp/snmp.php', + 'SNMP_VALUE_LIBRARY' => 'snmp/snmp.php', + 'SNMP_VALUE_OBJECT' => 'snmp/snmp.php', + 'SNMP_VALUE_PLAIN' => 'snmp/snmp.php', + 'SOAP_1_1' => 'soap/soap.php', + 'SOAP_1_2' => 'soap/soap.php', + 'SOAP_ACTOR_NEXT' => 'soap/soap.php', + 'SOAP_ACTOR_NONE' => 'soap/soap.php', + 'SOAP_ACTOR_UNLIMATERECEIVER' => 'soap/soap.php', + 'SOAP_AUTHENTICATION_BASIC' => 'soap/soap.php', + 'SOAP_AUTHENTICATION_DIGEST' => 'soap/soap.php', + 'SOAP_COMPRESSION_ACCEPT' => 'soap/soap.php', + 'SOAP_COMPRESSION_DEFLATE' => 'soap/soap.php', + 'SOAP_COMPRESSION_GZIP' => 'soap/soap.php', + 'SOAP_DOCUMENT' => 'soap/soap.php', + 'SOAP_ENCODED' => 'soap/soap.php', + 'SOAP_ENC_ARRAY' => 'soap/soap.php', + 'SOAP_ENC_OBJECT' => 'soap/soap.php', + 'SOAP_FUNCTIONS_ALL' => 'soap/soap.php', + 'SOAP_LITERAL' => 'soap/soap.php', + 'SOAP_PERSISTENCE_REQUEST' => 'soap/soap.php', + 'SOAP_PERSISTENCE_SESSION' => 'soap/soap.php', + 'SOAP_RPC' => 'soap/soap.php', + 'SOAP_SINGLE_ELEMENT_ARRAYS' => 'soap/soap.php', + 'SOAP_SSL_METHOD_SSLv2' => 'soap/soap.php', + 'SOAP_SSL_METHOD_SSLv23' => 'soap/soap.php', + 'SOAP_SSL_METHOD_SSLv3' => 'soap/soap.php', + 'SOAP_SSL_METHOD_TLS' => 'soap/soap.php', + 'SOAP_USE_XSI_ARRAY_TYPE' => 'soap/soap.php', + 'SOAP_WAIT_ONE_WAY_CALLS' => 'soap/soap.php', + 'SOCKET_E2BIG' => 'sockets/sockets.php', + 'SOCKET_EACCES' => 'sockets/sockets.php', + 'SOCKET_EADDRINUSE' => 'sockets/sockets.php', + 'SOCKET_EADDRNOTAVAIL' => 'sockets/sockets.php', + 'SOCKET_EADV' => 'sockets/sockets.php', + 'SOCKET_EAFNOSUPPORT' => 'sockets/sockets.php', + 'SOCKET_EAGAIN' => 'sockets/sockets.php', + 'SOCKET_EALREADY' => 'sockets/sockets.php', + 'SOCKET_EBADE' => 'sockets/sockets.php', + 'SOCKET_EBADF' => 'sockets/sockets.php', + 'SOCKET_EBADFD' => 'sockets/sockets.php', + 'SOCKET_EBADMSG' => 'sockets/sockets.php', + 'SOCKET_EBADR' => 'sockets/sockets.php', + 'SOCKET_EBADRQC' => 'sockets/sockets.php', + 'SOCKET_EBADSLT' => 'sockets/sockets.php', + 'SOCKET_EBUSY' => 'sockets/sockets.php', + 'SOCKET_ECANCELED' => 'swoole/constants.php', + 'SOCKET_ECHRNG' => 'sockets/sockets.php', + 'SOCKET_ECOMM' => 'sockets/sockets.php', + 'SOCKET_ECONNABORTED' => 'sockets/sockets.php', + 'SOCKET_ECONNREFUSED' => 'sockets/sockets.php', + 'SOCKET_ECONNRESET' => 'sockets/sockets.php', + 'SOCKET_EDESTADDRREQ' => 'sockets/sockets.php', + 'SOCKET_EDISCON' => 'sockets/sockets.php', + 'SOCKET_EDQUOT' => 'sockets/sockets.php', + 'SOCKET_EEXIST' => 'sockets/sockets.php', + 'SOCKET_EFAULT' => 'sockets/sockets.php', + 'SOCKET_EHOSTDOWN' => 'sockets/sockets.php', + 'SOCKET_EHOSTUNREACH' => 'sockets/sockets.php', + 'SOCKET_EIDRM' => 'sockets/sockets.php', + 'SOCKET_EINPROGRESS' => 'sockets/sockets.php', + 'SOCKET_EINTR' => 'sockets/sockets.php', + 'SOCKET_EINVAL' => 'sockets/sockets.php', + 'SOCKET_EIO' => 'sockets/sockets.php', + 'SOCKET_EISCONN' => 'sockets/sockets.php', + 'SOCKET_EISDIR' => 'sockets/sockets.php', + 'SOCKET_EISNAM' => 'sockets/sockets.php', + 'SOCKET_EL2HLT' => 'sockets/sockets.php', + 'SOCKET_EL2NSYNC' => 'sockets/sockets.php', + 'SOCKET_EL3HLT' => 'sockets/sockets.php', + 'SOCKET_EL3RST' => 'sockets/sockets.php', + 'SOCKET_ELNRNG' => 'sockets/sockets.php', + 'SOCKET_ELOOP' => 'sockets/sockets.php', + 'SOCKET_EMEDIUMTYPE' => 'sockets/sockets.php', + 'SOCKET_EMFILE' => 'sockets/sockets.php', + 'SOCKET_EMLINK' => 'sockets/sockets.php', + 'SOCKET_EMSGSIZE' => 'sockets/sockets.php', + 'SOCKET_EMULTIHOP' => 'sockets/sockets.php', + 'SOCKET_ENAMETOOLONG' => 'sockets/sockets.php', + 'SOCKET_ENETDOWN' => 'sockets/sockets.php', + 'SOCKET_ENETRESET' => 'sockets/sockets.php', + 'SOCKET_ENETUNREACH' => 'sockets/sockets.php', + 'SOCKET_ENFILE' => 'sockets/sockets.php', + 'SOCKET_ENOANO' => 'sockets/sockets.php', + 'SOCKET_ENOBUFS' => 'sockets/sockets.php', + 'SOCKET_ENOCSI' => 'sockets/sockets.php', + 'SOCKET_ENODATA' => 'sockets/sockets.php', + 'SOCKET_ENODEV' => 'sockets/sockets.php', + 'SOCKET_ENOENT' => 'sockets/sockets.php', + 'SOCKET_ENOLCK' => 'sockets/sockets.php', + 'SOCKET_ENOLINK' => 'sockets/sockets.php', + 'SOCKET_ENOMEDIUM' => 'sockets/sockets.php', + 'SOCKET_ENOMEM' => 'sockets/sockets.php', + 'SOCKET_ENOMSG' => 'sockets/sockets.php', + 'SOCKET_ENONET' => 'sockets/sockets.php', + 'SOCKET_ENOPROTOOPT' => 'sockets/sockets.php', + 'SOCKET_ENOSPC' => 'sockets/sockets.php', + 'SOCKET_ENOSR' => 'sockets/sockets.php', + 'SOCKET_ENOSTR' => 'sockets/sockets.php', + 'SOCKET_ENOSYS' => 'sockets/sockets.php', + 'SOCKET_ENOTBLK' => 'sockets/sockets.php', + 'SOCKET_ENOTCONN' => 'sockets/sockets.php', + 'SOCKET_ENOTDIR' => 'sockets/sockets.php', + 'SOCKET_ENOTEMPTY' => 'sockets/sockets.php', + 'SOCKET_ENOTSOCK' => 'sockets/sockets.php', + 'SOCKET_ENOTTY' => 'sockets/sockets.php', + 'SOCKET_ENOTUNIQ' => 'sockets/sockets.php', + 'SOCKET_ENXIO' => 'sockets/sockets.php', + 'SOCKET_EOPNOTSUPP' => 'sockets/sockets.php', + 'SOCKET_EPERM' => 'sockets/sockets.php', + 'SOCKET_EPFNOSUPPORT' => 'sockets/sockets.php', + 'SOCKET_EPIPE' => 'sockets/sockets.php', + 'SOCKET_EPROCLIM' => 'sockets/sockets.php', + 'SOCKET_EPROTO' => 'sockets/sockets.php', + 'SOCKET_EPROTONOSUPPORT' => 'sockets/sockets.php', + 'SOCKET_EPROTOTYPE' => 'sockets/sockets.php', + 'SOCKET_EREMCHG' => 'sockets/sockets.php', + 'SOCKET_EREMOTE' => 'sockets/sockets.php', + 'SOCKET_EREMOTEIO' => 'sockets/sockets.php', + 'SOCKET_ERESTART' => 'sockets/sockets.php', + 'SOCKET_EROFS' => 'sockets/sockets.php', + 'SOCKET_ESHUTDOWN' => 'sockets/sockets.php', + 'SOCKET_ESOCKTNOSUPPORT' => 'sockets/sockets.php', + 'SOCKET_ESPIPE' => 'sockets/sockets.php', + 'SOCKET_ESRMNT' => 'sockets/sockets.php', + 'SOCKET_ESTALE' => 'sockets/sockets.php', + 'SOCKET_ESTRPIPE' => 'sockets/sockets.php', + 'SOCKET_ETIME' => 'sockets/sockets.php', + 'SOCKET_ETIMEDOUT' => 'sockets/sockets.php', + 'SOCKET_ETOOMANYREFS' => 'sockets/sockets.php', + 'SOCKET_EUNATCH' => 'sockets/sockets.php', + 'SOCKET_EUSERS' => 'sockets/sockets.php', + 'SOCKET_EWOULDBLOCK' => 'sockets/sockets.php', + 'SOCKET_EXDEV' => 'sockets/sockets.php', + 'SOCKET_EXFULL' => 'sockets/sockets.php', + 'SOCKET_HOST_NOT_FOUND' => 'sockets/sockets.php', + 'SOCKET_NOTINITIALISED' => 'sockets/sockets.php', + 'SOCKET_NO_ADDRESS' => 'sockets/sockets.php', + 'SOCKET_NO_DATA' => 'sockets/sockets.php', + 'SOCKET_NO_RECOVERY' => 'sockets/sockets.php', + 'SOCKET_SYSNOTREADY' => 'sockets/sockets.php', + 'SOCKET_TRY_AGAIN' => 'sockets/sockets.php', + 'SOCKET_VERNOTSUPPORTED' => 'sockets/sockets.php', + 'SOCK_DGRAM' => 'sockets/sockets.php', + 'SOCK_RAW' => 'sockets/sockets.php', + 'SOCK_RDM' => 'sockets/sockets.php', + 'SOCK_SEQPACKET' => 'sockets/sockets.php', + 'SOCK_STREAM' => 'sockets/sockets.php', + 'SODIUM_BASE64_VARIANT_ORIGINAL' => 'sodium/sodium.php', + 'SODIUM_BASE64_VARIANT_ORIGINAL_NO_PADDING' => 'sodium/sodium.php', + 'SODIUM_BASE64_VARIANT_URLSAFE' => 'sodium/sodium.php', + 'SODIUM_BASE64_VARIANT_URLSAFE_NO_PADDING' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_AES256GCM_ABYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_AES256GCM_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_AES256GCM_NPUBBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_AES256GCM_NSECBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_ABYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_ABYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NPUBBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_IETF_NSECBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_ABYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NPUBBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AEAD_XCHACHA20POLY1305_IETF_NSECBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AUTH_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_AUTH_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_KEYPAIRBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_MACBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_NONCEBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_PUBLICKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_SEALBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_SECRETKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_BOX_SEEDBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_CORE_RISTRETTO255_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_CORE_RISTRETTO255_HASHBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_CORE_RISTRETTO255_NONREDUCEDSCALARBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_CORE_RISTRETTO255_SCALARBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_BYTES_MAX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_BYTES_MIN' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MAX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_GENERICHASH_KEYBYTES_MIN' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KDF_BYTES_MAX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KDF_BYTES_MIN' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KDF_CONTEXTBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KDF_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_KEYPAIRBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_PUBLICKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_SECRETKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_SEEDBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_KX_SESSIONKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_ALG_ARGON2I13' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_ALG_ARGON2ID13' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_ALG_DEFAULT' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_MEMLIMIT_MODERATE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_MEMLIMIT_SENSITIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_OPSLIMIT_MODERATE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_OPSLIMIT_SENSITIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SALTBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_PWHASH_STRPREFIX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SCALARMULT_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SCALARMULT_RISTRETTO255_SCALARBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SCALARMULT_SCALARBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETBOX_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETBOX_MACBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETBOX_NONCEBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_ABYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_HEADERBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_MESSAGEBYTES_MAX' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_FINAL' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_PUSH' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_REKEY' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SHORTHASH_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SHORTHASH_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SIGN_BYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SIGN_KEYPAIRBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SIGN_PUBLICKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SIGN_SECRETKEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_SIGN_SEEDBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_STREAM_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_STREAM_NONCEBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_STREAM_XCHACHA20_KEYBYTES' => 'sodium/sodium.php', + 'SODIUM_CRYPTO_STREAM_XCHACHA20_NONCEBYTES' => 'sodium/sodium.php', + 'SODIUM_LIBRARY_MAJOR_VERSION' => 'sodium/sodium.php', + 'SODIUM_LIBRARY_MINOR_VERSION' => 'sodium/sodium.php', + 'SODIUM_LIBRARY_VERSION' => 'sodium/sodium.php', + 'SOLR_EXTENSION_VERSION' => 'solr/constants.php', + 'SOLR_MAJOR_VERSION' => 'solr/constants.php', + 'SOLR_MINOR_VERSION' => 'solr/constants.php', + 'SOLR_PATCH_VERSION' => 'solr/constants.php', + 'SOL_SOCKET' => 'sockets/sockets.php', + 'SOL_TCP' => 'sockets/sockets.php', + 'SOL_UDP' => 'sockets/sockets.php', + 'SOL_UDPLITE' => 'sockets/sockets.php', + 'SOMAXCONN' => 'sockets/sockets.php', + 'SORTARRIVAL' => 'imap/imap.php', + 'SORTCC' => 'imap/imap.php', + 'SORTDATE' => 'imap/imap.php', + 'SORTFROM' => 'imap/imap.php', + 'SORTSIZE' => 'imap/imap.php', + 'SORTSUBJECT' => 'imap/imap.php', + 'SORTTO' => 'imap/imap.php', + 'SORT_ASC' => 'standard/standard_defines.php', + 'SORT_DESC' => 'standard/standard_defines.php', + 'SORT_FLAG_CASE' => 'standard/standard_defines.php', + 'SORT_LOCALE_STRING' => 'standard/standard_defines.php', + 'SORT_NATURAL' => 'standard/standard_defines.php', + 'SORT_NUMERIC' => 'standard/standard_defines.php', + 'SORT_REGULAR' => 'standard/standard_defines.php', + 'SORT_STRING' => 'standard/standard_defines.php', + 'SO_ATTACH_REUSEPORT_CBPF' => 'sockets/sockets.php', + 'SO_BINDTODEVICE' => 'sockets/sockets.php', + 'SO_BPF_EXTENSIONS' => 'sockets/sockets.php', + 'SO_BROADCAST' => 'sockets/sockets.php', + 'SO_DEBUG' => 'sockets/sockets.php', + 'SO_DETACH_BPF' => 'sockets/sockets.php', + 'SO_DETACH_FILTER' => 'sockets/sockets.php', + 'SO_DONTROUTE' => 'sockets/sockets.php', + 'SO_ERROR' => 'sockets/sockets.php', + 'SO_FREE' => 'imap/imap.php', + 'SO_INCOMING_CPU' => 'sockets/sockets.php', + 'SO_KEEPALIVE' => 'sockets/sockets.php', + 'SO_LINGER' => 'sockets/sockets.php', + 'SO_MARK' => 'sockets/sockets.php', + 'SO_MEMINFO' => 'sockets/sockets.php', + 'SO_NOSERVER' => 'imap/imap.php', + 'SO_OOBINLINE' => 'sockets/sockets.php', + 'SO_PASSCRED' => 'sockets/sockets.php', + 'SO_RCVBUF' => 'sockets/sockets.php', + 'SO_RCVLOWAT' => 'sockets/sockets.php', + 'SO_RCVTIMEO' => 'sockets/sockets.php', + 'SO_REUSEADDR' => 'sockets/sockets.php', + 'SO_REUSEPORT' => 'sockets/sockets.php', + 'SO_SNDBUF' => 'sockets/sockets.php', + 'SO_SNDLOWAT' => 'sockets/sockets.php', + 'SO_SNDTIMEO' => 'sockets/sockets.php', + 'SO_TYPE' => 'sockets/sockets.php', + 'SO_ZEROCOPY' => 'sockets/sockets.php', + 'SQLBIT' => 'mssql/mssql.php', + 'SQLCHAR' => 'mssql/mssql.php', + 'SQLFLT4' => 'mssql/mssql.php', + 'SQLFLT8' => 'mssql/mssql.php', + 'SQLFLTN' => 'mssql/mssql.php', + 'SQLINT1' => 'mssql/mssql.php', + 'SQLINT2' => 'mssql/mssql.php', + 'SQLINT4' => 'mssql/mssql.php', + 'SQLITE3_ASSOC' => 'sqlite3/sqlite3.php', + 'SQLITE3_BLOB' => 'sqlite3/sqlite3.php', + 'SQLITE3_BOTH' => 'sqlite3/sqlite3.php', + 'SQLITE3_DETERMINISTIC' => 'sqlite3/sqlite3.php', + 'SQLITE3_FLOAT' => 'sqlite3/sqlite3.php', + 'SQLITE3_INTEGER' => 'sqlite3/sqlite3.php', + 'SQLITE3_NULL' => 'sqlite3/sqlite3.php', + 'SQLITE3_NUM' => 'sqlite3/sqlite3.php', + 'SQLITE3_OPEN_CREATE' => 'sqlite3/sqlite3.php', + 'SQLITE3_OPEN_READONLY' => 'sqlite3/sqlite3.php', + 'SQLITE3_OPEN_READWRITE' => 'sqlite3/sqlite3.php', + 'SQLITE3_TEXT' => 'sqlite3/sqlite3.php', + 'SQLITE_ABORT' => 'SQLite/SQLite.php', + 'SQLITE_ASSOC' => 'SQLite/SQLite.php', + 'SQLITE_AUTH' => 'SQLite/SQLite.php', + 'SQLITE_BOTH' => 'SQLite/SQLite.php', + 'SQLITE_BUSY' => 'SQLite/SQLite.php', + 'SQLITE_CANTOPEN' => 'SQLite/SQLite.php', + 'SQLITE_CONSTRAINT' => 'SQLite/SQLite.php', + 'SQLITE_CORRUPT' => 'SQLite/SQLite.php', + 'SQLITE_DONE' => 'SQLite/SQLite.php', + 'SQLITE_EMPTY' => 'SQLite/SQLite.php', + 'SQLITE_ERROR' => 'SQLite/SQLite.php', + 'SQLITE_FORMAT' => 'SQLite/SQLite.php', + 'SQLITE_FULL' => 'SQLite/SQLite.php', + 'SQLITE_INTERNAL' => 'SQLite/SQLite.php', + 'SQLITE_INTERRUPT' => 'SQLite/SQLite.php', + 'SQLITE_IOERR' => 'SQLite/SQLite.php', + 'SQLITE_LOCKED' => 'SQLite/SQLite.php', + 'SQLITE_MISMATCH' => 'SQLite/SQLite.php', + 'SQLITE_MISUSE' => 'SQLite/SQLite.php', + 'SQLITE_NOLFS' => 'SQLite/SQLite.php', + 'SQLITE_NOMEM' => 'SQLite/SQLite.php', + 'SQLITE_NOTADB' => 'SQLite/SQLite.php', + 'SQLITE_NOTFOUND' => 'SQLite/SQLite.php', + 'SQLITE_NUM' => 'SQLite/SQLite.php', + 'SQLITE_OK' => 'SQLite/SQLite.php', + 'SQLITE_PERM' => 'SQLite/SQLite.php', + 'SQLITE_PROTOCOL' => 'SQLite/SQLite.php', + 'SQLITE_READONLY' => 'SQLite/SQLite.php', + 'SQLITE_ROW' => 'SQLite/SQLite.php', + 'SQLITE_SCHEMA' => 'SQLite/SQLite.php', + 'SQLITE_TOOBIG' => 'SQLite/SQLite.php', + 'SQLSRV_CURSOR_CLIENT_BUFFERED' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_CURSOR_DYNAMIC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_CURSOR_FORWARD' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_CURSOR_KEYSET' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_CURSOR_STATIC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_ENC_BINARY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_ENC_CHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_ERR_ALL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_ERR_ERRORS' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_ERR_WARNINGS' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_FETCH_ASSOC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_FETCH_BOTH' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_FETCH_NUMERIC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SEVERITY_ALL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SEVERITY_ERROR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SEVERITY_NOTICE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SEVERITY_WARNING' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_ALL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_CONN' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_INIT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_OFF' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_STMT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_LOG_SYSTEM_UTIL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_NULLABLE_NO' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_NULLABLE_UNKNOWN' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_NULLABLE_YES' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PARAM_IN' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PARAM_INOUT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PARAM_OUT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PHPTYPE_DATETIME' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PHPTYPE_FLOAT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PHPTYPE_INT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_PHPTYPE_NULL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_ABSOLUTE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_FIRST' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_LAST' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_NEXT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_PRIOR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SCROLL_RELATIVE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_BIGINT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_BIT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_CHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DATE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DATETIME' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DATETIME2' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DATETIMEOFFSET' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_DECIMAL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_FLOAT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_IMAGE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_INT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_MONEY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NCHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NTEXT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NUMERIC' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_NVARCHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_REAL' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_SMALLDATETIME' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_SMALLINT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_SMALLMONEY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_TEXT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_TIME' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_TIMESTAMP' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_TINYINT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_UDT' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_UNIQUEIDENTIFIER' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_VARBINARY' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_VARCHAR' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_SQLTYPE_XML' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_TXN_READ_COMMITTED' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_TXN_READ_UNCOMMITTED' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_TXN_REPEATABLE_READ' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_TXN_SERIALIZABLE' => 'sqlsrv/sqlsrv.php', + 'SQLSRV_TXN_SNAPSHOT' => 'sqlsrv/sqlsrv.php', + 'SQLTEXT' => 'mssql/mssql.php', + 'SQLT_AFC' => 'oci8/oci8.php', + 'SQLT_AVC' => 'oci8/oci8.php', + 'SQLT_BDOUBLE' => 'oci8/oci8.php', + 'SQLT_BFILEE' => 'oci8/oci8.php', + 'SQLT_BFLOAT' => 'oci8/oci8.php', + 'SQLT_BIN' => 'oci8/oci8.php', + 'SQLT_BLOB' => 'oci8/oci8.php', + 'SQLT_BOL' => 'oci8/oci8.php', + 'SQLT_CFILEE' => 'oci8/oci8.php', + 'SQLT_CHR' => 'oci8/oci8.php', + 'SQLT_CLOB' => 'oci8/oci8.php', + 'SQLT_FLT' => 'oci8/oci8.php', + 'SQLT_INT' => 'oci8/oci8.php', + 'SQLT_LBI' => 'oci8/oci8.php', + 'SQLT_LNG' => 'oci8/oci8.php', + 'SQLT_LVC' => 'oci8/oci8.php', + 'SQLT_NTY' => 'oci8/oci8.php', + 'SQLT_NUM' => 'oci8/oci8.php', + 'SQLT_ODT' => 'oci8/oci8.php', + 'SQLT_RDD' => 'oci8/oci8.php', + 'SQLT_RSET' => 'oci8/oci8.php', + 'SQLT_STR' => 'oci8/oci8.php', + 'SQLT_UIN' => 'oci8/oci8.php', + 'SQLT_VCS' => 'oci8/oci8.php', + 'SQLVARCHAR' => 'mssql/mssql.php', + 'SQL_BEST_ROWID' => 'odbc/odbc.php', + 'SQL_BIGINT' => 'odbc/odbc.php', + 'SQL_BINARY' => 'odbc/odbc.php', + 'SQL_BIT' => 'odbc/odbc.php', + 'SQL_CHAR' => 'odbc/odbc.php', + 'SQL_CONCURRENCY' => 'odbc/odbc.php', + 'SQL_CONCUR_LOCK' => 'odbc/odbc.php', + 'SQL_CONCUR_READ_ONLY' => 'odbc/odbc.php', + 'SQL_CONCUR_ROWVER' => 'odbc/odbc.php', + 'SQL_CONCUR_VALUES' => 'odbc/odbc.php', + 'SQL_CURSOR_DYNAMIC' => 'odbc/odbc.php', + 'SQL_CURSOR_FORWARD_ONLY' => 'odbc/odbc.php', + 'SQL_CURSOR_KEYSET_DRIVEN' => 'odbc/odbc.php', + 'SQL_CURSOR_STATIC' => 'odbc/odbc.php', + 'SQL_CURSOR_TYPE' => 'odbc/odbc.php', + 'SQL_CUR_USE_DRIVER' => 'odbc/odbc.php', + 'SQL_CUR_USE_IF_NEEDED' => 'odbc/odbc.php', + 'SQL_CUR_USE_ODBC' => 'odbc/odbc.php', + 'SQL_DATE' => 'odbc/odbc.php', + 'SQL_DECIMAL' => 'odbc/odbc.php', + 'SQL_DOUBLE' => 'odbc/odbc.php', + 'SQL_ENSURE' => 'odbc/odbc.php', + 'SQL_FETCH_FIRST' => 'odbc/odbc.php', + 'SQL_FETCH_NEXT' => 'odbc/odbc.php', + 'SQL_FLOAT' => 'odbc/odbc.php', + 'SQL_INDEX_ALL' => 'odbc/odbc.php', + 'SQL_INDEX_UNIQUE' => 'odbc/odbc.php', + 'SQL_INTEGER' => 'odbc/odbc.php', + 'SQL_KEYSET_SIZE' => 'odbc/odbc.php', + 'SQL_LONGVARBINARY' => 'odbc/odbc.php', + 'SQL_LONGVARCHAR' => 'odbc/odbc.php', + 'SQL_NO_NULLS' => 'odbc/odbc.php', + 'SQL_NULLABLE' => 'odbc/odbc.php', + 'SQL_NUMERIC' => 'odbc/odbc.php', + 'SQL_ODBC_CURSORS' => 'odbc/odbc.php', + 'SQL_QUICK' => 'odbc/odbc.php', + 'SQL_REAL' => 'odbc/odbc.php', + 'SQL_ROWVER' => 'odbc/odbc.php', + 'SQL_SCOPE_CURROW' => 'odbc/odbc.php', + 'SQL_SCOPE_SESSION' => 'odbc/odbc.php', + 'SQL_SCOPE_TRANSACTION' => 'odbc/odbc.php', + 'SQL_SMALLINT' => 'odbc/odbc.php', + 'SQL_TIME' => 'odbc/odbc.php', + 'SQL_TIMESTAMP' => 'odbc/odbc.php', + 'SQL_TINYINT' => 'odbc/odbc.php', + 'SQL_TYPE_DATE' => 'odbc/odbc.php', + 'SQL_TYPE_TIME' => 'odbc/odbc.php', + 'SQL_TYPE_TIMESTAMP' => 'odbc/odbc.php', + 'SQL_VARBINARY' => 'odbc/odbc.php', + 'SQL_VARCHAR' => 'odbc/odbc.php', + 'SQL_WCHAR' => 'odbc/odbc.php', + 'SQL_WLONGVARCHAR' => 'odbc/odbc.php', + 'SQL_WVARCHAR' => 'odbc/odbc.php', + 'SSH2_DEFAULT_TERMINAL' => 'ssh2/ssh2.php', + 'SSH2_DEFAULT_TERM_HEIGHT' => 'ssh2/ssh2.php', + 'SSH2_DEFAULT_TERM_UNIT' => 'ssh2/ssh2.php', + 'SSH2_DEFAULT_TERM_WIDTH' => 'ssh2/ssh2.php', + 'SSH2_FINGERPRINT_HEX' => 'ssh2/ssh2.php', + 'SSH2_FINGERPRINT_MD5' => 'ssh2/ssh2.php', + 'SSH2_FINGERPRINT_RAW' => 'ssh2/ssh2.php', + 'SSH2_FINGERPRINT_SHA1' => 'ssh2/ssh2.php', + 'SSH2_POLLERR' => 'ssh2/ssh2.php', + 'SSH2_POLLEXT' => 'ssh2/ssh2.php', + 'SSH2_POLLHUP' => 'ssh2/ssh2.php', + 'SSH2_POLLIN' => 'ssh2/ssh2.php', + 'SSH2_POLLNVAL' => 'ssh2/ssh2.php', + 'SSH2_POLLOUT' => 'ssh2/ssh2.php', + 'SSH2_POLL_CHANNEL_CLOSED' => 'ssh2/ssh2.php', + 'SSH2_POLL_LISTENER_CLOSED' => 'ssh2/ssh2.php', + 'SSH2_POLL_SESSION_CLOSED' => 'ssh2/ssh2.php', + 'SSH2_STREAM_STDERR' => 'ssh2/ssh2.php', + 'SSH2_STREAM_STDIO' => 'ssh2/ssh2.php', + 'SSH2_TERM_UNIT_CHARS' => 'ssh2/ssh2.php', + 'SSH2_TERM_UNIT_PIXELS' => 'ssh2/ssh2.php', + 'STDERR' => 'Core/Core_d.php', + 'STDIN' => 'Core/Core_d.php', + 'STDOUT' => 'Core/Core_d.php', + 'STREAM_BUFFER_FULL' => 'standard/standard_defines.php', + 'STREAM_BUFFER_LINE' => 'standard/standard_defines.php', + 'STREAM_BUFFER_NONE' => 'standard/standard_defines.php', + 'STREAM_CAST_AS_STREAM' => 'standard/standard_defines.php', + 'STREAM_CAST_FOR_SELECT' => 'standard/standard_defines.php', + 'STREAM_CLIENT_ASYNC_CONNECT' => 'standard/standard_defines.php', + 'STREAM_CLIENT_CONNECT' => 'standard/standard_defines.php', + 'STREAM_CLIENT_PERSISTENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_ANY_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_ANY_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv23_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv23_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv2_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv2_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv3_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_SSLv3_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_TLS_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_TLS_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_TLSv1_0_SERVER' => 'standard/standard_defines.php', + 'STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT' => 'standard/standard_defines.php', + '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', + 'STREAM_FILTER_WRITE' => 'standard/standard_defines.php', + 'STREAM_IGNORE_URL' => 'standard/standard_defines.php', + 'STREAM_IPPROTO_ICMP' => 'standard/standard_defines.php', + 'STREAM_IPPROTO_IP' => 'standard/standard_defines.php', + 'STREAM_IPPROTO_RAW' => 'standard/standard_defines.php', + 'STREAM_IPPROTO_TCP' => 'standard/standard_defines.php', + 'STREAM_IPPROTO_UDP' => 'standard/standard_defines.php', + 'STREAM_IS_URL' => 'standard/standard_defines.php', + 'STREAM_META_ACCESS' => 'standard/standard_defines.php', + 'STREAM_META_GROUP' => 'standard/standard_defines.php', + 'STREAM_META_GROUP_NAME' => 'standard/standard_defines.php', + 'STREAM_META_OWNER' => 'standard/standard_defines.php', + 'STREAM_META_OWNER_NAME' => 'standard/standard_defines.php', + 'STREAM_META_TOUCH' => 'standard/standard_defines.php', + 'STREAM_MKDIR_RECURSIVE' => 'standard/standard_defines.php', + 'STREAM_MUST_SEEK' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_AUTH_REQUIRED' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_AUTH_RESULT' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_COMPLETED' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_CONNECT' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_FAILURE' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_FILE_SIZE_IS' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_MIME_TYPE_IS' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_PROGRESS' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_REDIRECTED' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_RESOLVE' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_SEVERITY_ERR' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_SEVERITY_INFO' => 'standard/standard_defines.php', + 'STREAM_NOTIFY_SEVERITY_WARN' => 'standard/standard_defines.php', + 'STREAM_OOB' => 'standard/standard_defines.php', + 'STREAM_OPTION_BLOCKING' => 'standard/standard_defines.php', + 'STREAM_OPTION_READ_BUFFER' => 'standard/standard_defines.php', + 'STREAM_OPTION_READ_TIMEOUT' => 'standard/standard_defines.php', + 'STREAM_OPTION_WRITE_BUFFER' => 'standard/standard_defines.php', + 'STREAM_PEEK' => 'standard/standard_defines.php', + 'STREAM_PF_INET' => 'standard/standard_defines.php', + 'STREAM_PF_INET6' => 'standard/standard_defines.php', + 'STREAM_PF_UNIX' => 'standard/standard_defines.php', + 'STREAM_REPORT_ERRORS' => 'standard/standard_defines.php', + 'STREAM_SERVER_BIND' => 'standard/standard_defines.php', + 'STREAM_SERVER_LISTEN' => 'standard/standard_defines.php', + 'STREAM_SHUT_RD' => 'standard/standard_defines.php', + 'STREAM_SHUT_RDWR' => 'standard/standard_defines.php', + 'STREAM_SHUT_WR' => 'standard/standard_defines.php', + 'STREAM_SOCK_DGRAM' => 'standard/standard_defines.php', + 'STREAM_SOCK_RAW' => 'standard/standard_defines.php', + 'STREAM_SOCK_RDM' => 'standard/standard_defines.php', + 'STREAM_SOCK_SEQPACKET' => 'standard/standard_defines.php', + 'STREAM_SOCK_STREAM' => 'standard/standard_defines.php', + 'STREAM_URL_STAT_LINK' => 'standard/standard_defines.php', + 'STREAM_URL_STAT_QUIET' => 'standard/standard_defines.php', + 'STREAM_USE_PATH' => 'standard/standard_defines.php', + 'STR_PAD_BOTH' => 'standard/standard_defines.php', + 'STR_PAD_LEFT' => 'standard/standard_defines.php', + 'STR_PAD_RIGHT' => 'standard/standard_defines.php', + 'ST_SET' => 'imap/imap.php', + 'ST_SILENT' => 'imap/imap.php', + 'ST_UID' => 'imap/imap.php', + 'SUHOSIN_PATCH' => 'Core/Core_d.php', + 'SUHOSIN_PATCH_VERSION' => 'Core/Core_d.php', + 'SUNFUNCS_RET_DOUBLE' => 'date/date_d.php', + 'SUNFUNCS_RET_STRING' => 'date/date_d.php', + 'SUNFUNCS_RET_TIMESTAMP' => 'date/date_d.php', + 'SVN_ALL' => 'svn/svn.php', + 'SVN_AUTH_PARAM_CONFIG' => 'svn/svn.php', + 'SVN_AUTH_PARAM_CONFIG_DIR' => 'svn/svn.php', + 'SVN_AUTH_PARAM_DEFAULT_PASSWORD' => 'svn/svn.php', + 'SVN_AUTH_PARAM_DEFAULT_USERNAME' => 'svn/svn.php', + 'SVN_AUTH_PARAM_DONT_STORE_PASSWORDS' => 'svn/svn.php', + 'SVN_AUTH_PARAM_NON_INTERACTIVE' => 'svn/svn.php', + 'SVN_AUTH_PARAM_NO_AUTH_CACHE' => 'svn/svn.php', + 'SVN_AUTH_PARAM_SERVER_GROUP' => 'svn/svn.php', + 'SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO' => 'svn/svn.php', + 'SVN_AUTH_PARAM_SSL_SERVER_FAILURES' => 'svn/svn.php', + 'SVN_DISCOVER_CHANGED_PATHS' => 'svn/svn.php', + 'SVN_FS_CONFIG_FS_TYPE' => 'svn/svn.php', + 'SVN_FS_TYPE_BDB' => 'svn/svn.php', + 'SVN_FS_TYPE_FSFS' => 'svn/svn.php', + 'SVN_NODE_DIR' => 'svn/svn.php', + 'SVN_NODE_FILE' => 'svn/svn.php', + 'SVN_NODE_NONE' => 'svn/svn.php', + 'SVN_NODE_UNKNOWN' => 'svn/svn.php', + 'SVN_NON_RECURSIVE' => 'svn/svn.php', + 'SVN_NO_IGNORE' => 'svn/svn.php', + 'SVN_OMIT_MESSAGES' => 'svn/svn.php', + 'SVN_PROP_REVISION_AUTHOR' => 'svn/svn.php', + 'SVN_PROP_REVISION_DATE' => 'svn/svn.php', + 'SVN_PROP_REVISION_LOG' => 'svn/svn.php', + 'SVN_PROP_REVISION_ORIG_DATE' => 'svn/svn.php', + 'SVN_REVISION_BASE' => 'svn/svn.php', + 'SVN_REVISION_COMMITTED' => 'svn/svn.php', + 'SVN_REVISION_HEAD' => 'svn/svn.php', + 'SVN_REVISION_INITIAL' => 'svn/svn.php', + 'SVN_REVISION_PREV' => 'svn/svn.php', + 'SVN_REVISION_UNSPECIFIED' => 'svn/svn.php', + 'SVN_SHOW_UPDATES' => 'svn/svn.php', + 'SVN_STOP_ON_COPY' => 'svn/svn.php', + 'SVN_WC_SCHEDULE_ADD' => 'svn/svn.php', + 'SVN_WC_SCHEDULE_DELETE' => 'svn/svn.php', + 'SVN_WC_SCHEDULE_NORMAL' => 'svn/svn.php', + 'SVN_WC_SCHEDULE_REPLACE' => 'svn/svn.php', + 'SVN_WC_STATUS_ADDED' => 'svn/svn.php', + 'SVN_WC_STATUS_CONFLICTED' => 'svn/svn.php', + 'SVN_WC_STATUS_DELETED' => 'svn/svn.php', + 'SVN_WC_STATUS_EXTERNAL' => 'svn/svn.php', + 'SVN_WC_STATUS_IGNORED' => 'svn/svn.php', + 'SVN_WC_STATUS_INCOMPLETE' => 'svn/svn.php', + 'SVN_WC_STATUS_MERGED' => 'svn/svn.php', + 'SVN_WC_STATUS_MISSING' => 'svn/svn.php', + 'SVN_WC_STATUS_MODIFIED' => 'svn/svn.php', + 'SVN_WC_STATUS_NONE' => 'svn/svn.php', + 'SVN_WC_STATUS_NORMAL' => 'svn/svn.php', + 'SVN_WC_STATUS_OBSTRUCTED' => 'svn/svn.php', + 'SVN_WC_STATUS_REPLACED' => 'svn/svn.php', + 'SVN_WC_STATUS_UNVERSIONED' => 'svn/svn.php', + 'SWFACTION_DATA' => 'ming/ming.php', + 'SWFACTION_ENTERFRAME' => 'ming/ming.php', + 'SWFACTION_KEYDOWN' => 'ming/ming.php', + 'SWFACTION_KEYUP' => 'ming/ming.php', + 'SWFACTION_MOUSEDOWN' => 'ming/ming.php', + 'SWFACTION_MOUSEMOVE' => 'ming/ming.php', + 'SWFACTION_MOUSEUP' => 'ming/ming.php', + 'SWFACTION_ONLOAD' => 'ming/ming.php', + 'SWFACTION_UNLOAD' => 'ming/ming.php', + 'SWFBUTTON_DOWN' => 'ming/ming.php', + 'SWFBUTTON_DRAGOUT' => 'ming/ming.php', + 'SWFBUTTON_DRAGOVER' => 'ming/ming.php', + 'SWFBUTTON_HIT' => 'ming/ming.php', + 'SWFBUTTON_MOUSEDOWN' => 'ming/ming.php', + 'SWFBUTTON_MOUSEOUT' => 'ming/ming.php', + 'SWFBUTTON_MOUSEOVER' => 'ming/ming.php', + 'SWFBUTTON_MOUSEUP' => 'ming/ming.php', + 'SWFBUTTON_MOUSEUPOUTSIDE' => 'ming/ming.php', + 'SWFBUTTON_OVER' => 'ming/ming.php', + 'SWFBUTTON_UP' => 'ming/ming.php', + 'SWFFILL_CLIPPED_BITMAP' => 'ming/ming.php', + 'SWFFILL_LINEAR_GRADIENT' => 'ming/ming.php', + 'SWFFILL_RADIAL_GRADIENT' => 'ming/ming.php', + 'SWFFILL_TILED_BITMAP' => 'ming/ming.php', + 'SWFTEXTFIELD_ALIGN_CENTER' => 'ming/ming.php', + 'SWFTEXTFIELD_ALIGN_JUSTIFY' => 'ming/ming.php', + 'SWFTEXTFIELD_ALIGN_LEFT' => 'ming/ming.php', + 'SWFTEXTFIELD_ALIGN_RIGHT' => 'ming/ming.php', + 'SWFTEXTFIELD_AUTOSIZE' => 'ming/ming.php', + 'SWFTEXTFIELD_DRAWBOX' => 'ming/ming.php', + 'SWFTEXTFIELD_HASLENGTH' => 'ming/ming.php', + 'SWFTEXTFIELD_HTML' => 'ming/ming.php', + 'SWFTEXTFIELD_MULTILINE' => 'ming/ming.php', + 'SWFTEXTFIELD_NOEDIT' => 'ming/ming.php', + 'SWFTEXTFIELD_NOSELECT' => 'ming/ming.php', + 'SWFTEXTFIELD_PASSWORD' => 'ming/ming.php', + 'SWFTEXTFIELD_USEFONT' => 'ming/ming.php', + 'SWFTEXTFIELD_WORDWRAP' => 'ming/ming.php', + 'SWF_SOUND_11KHZ' => 'ming/ming.php', + 'SWF_SOUND_16BITS' => 'ming/ming.php', + 'SWF_SOUND_22KHZ' => 'ming/ming.php', + 'SWF_SOUND_44KHZ' => 'ming/ming.php', + 'SWF_SOUND_5KHZ' => 'ming/ming.php', + 'SWF_SOUND_8BITS' => 'ming/ming.php', + 'SWF_SOUND_ADPCM_COMPRESSED' => 'ming/ming.php', + 'SWF_SOUND_MONO' => 'ming/ming.php', + 'SWF_SOUND_MP3_COMPRESSED' => 'ming/ming.php', + 'SWF_SOUND_NELLY_COMPRESSED' => 'ming/ming.php', + 'SWF_SOUND_NOT_COMPRESSED' => 'ming/ming.php', + 'SWF_SOUND_NOT_COMPRESSED_LE' => 'ming/ming.php', + 'SWF_SOUND_STEREO' => 'ming/ming.php', + 'SWOOLE_ASYNC' => 'swoole/constants.php', + 'SWOOLE_BASE' => 'swoole/constants.php', + 'SWOOLE_CHANNEL_CANCELED' => 'swoole/constants.php', + 'SWOOLE_CHANNEL_CLOSED' => 'swoole/constants.php', + 'SWOOLE_CHANNEL_OK' => 'swoole/constants.php', + 'SWOOLE_CHANNEL_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_CORO_END' => 'swoole/constants.php', + 'SWOOLE_CORO_INIT' => 'swoole/constants.php', + 'SWOOLE_CORO_MAX_NUM_LIMIT' => 'swoole/constants.php', + 'SWOOLE_CORO_RUNNING' => 'swoole/constants.php', + 'SWOOLE_CORO_WAITING' => 'swoole/constants.php', + 'SWOOLE_DEBUG' => 'swoole/constants.php', + 'SWOOLE_DEFAULT_MAX_CORO_NUM' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_CO_CONN_LB' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_CO_REQ_LB' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_FDMOD' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_IDLE_WORKER' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_IPMOD' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_RESULT_CLOSE_CONNECTION' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_RESULT_DISCARD_PACKET' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_RESULT_USERFUNC_FALLBACK' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_ROUND' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_STREAM' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_UIDMOD' => 'swoole/constants.php', + 'SWOOLE_DISPATCH_USERFUNC' => 'swoole/constants.php', + 'SWOOLE_DTLS_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_DTLS_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_ERROR_AIO_BAD_REQUEST' => 'swoole/constants.php', + 'SWOOLE_ERROR_AIO_CANCELED' => 'swoole/constants.php', + 'SWOOLE_ERROR_AIO_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_BAD_IPV6_ADDRESS' => 'swoole/constants.php', + 'SWOOLE_ERROR_CLIENT_NO_CONNECTION' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_BLOCK_OBJECT_LOCKED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_BLOCK_OBJECT_WAITING' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_CANCELED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_CANNOT_CANCEL' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_DISABLED_MULTI_THREAD' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_GETCONTEXT_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_HAS_BEEN_BOUND' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_HAS_BEEN_DISCARDED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_IOCPINIT_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_MAKECONTEXT_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_MUTEX_DOUBLE_UNLOCK' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_NOT_EXISTS' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_OUT_OF_COROUTINE' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_PROTECT_STACK_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_STD_THREAD_LINK_ERROR' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_SWAPCONTEXT_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_TIMEDOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_CO_YIELD_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_DATA_LENGTH_TOO_LARGE' => 'swoole/constants.php', + 'SWOOLE_ERROR_DNSLOOKUP_DUPLICATE_REQUEST' => 'swoole/constants.php', + 'SWOOLE_ERROR_DNSLOOKUP_NO_SERVER' => 'swoole/constants.php', + 'SWOOLE_ERROR_DNSLOOKUP_RESOLVE_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_DNSLOOKUP_RESOLVE_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_DNSLOOKUP_UNSUPPORTED' => 'swoole/constants.php', + 'SWOOLE_ERROR_EVENT_SOCKET_REMOVED' => 'swoole/constants.php', + 'SWOOLE_ERROR_FILE_EMPTY' => 'swoole/constants.php', + 'SWOOLE_ERROR_FILE_NOT_EXIST' => 'swoole/constants.php', + 'SWOOLE_ERROR_FILE_TOO_LARGE' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP2_STREAM_ID_TOO_BIG' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP2_STREAM_IGNORE' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP2_STREAM_NOT_FOUND' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP2_STREAM_NO_HEADER' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP_INVALID_PROTOCOL' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP_PROXY_BAD_RESPONSE' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_ERROR' => 'swoole/constants.php', + 'SWOOLE_ERROR_HTTP_PROXY_HANDSHAKE_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_INVALID_PARAMS' => 'swoole/constants.php', + 'SWOOLE_ERROR_MALLOC_FAIL' => 'swoole/constants.php', + 'SWOOLE_ERROR_NAME_TOO_LONG' => 'swoole/constants.php', + 'SWOOLE_ERROR_OPERATION_NOT_SUPPORT' => 'swoole/constants.php', + 'SWOOLE_ERROR_OUTPUT_BUFFER_OVERFLOW' => 'swoole/constants.php', + 'SWOOLE_ERROR_OUTPUT_SEND_YIELD' => 'swoole/constants.php', + 'SWOOLE_ERROR_PACKAGE_LENGTH_NOT_FOUND' => 'swoole/constants.php', + 'SWOOLE_ERROR_PACKAGE_LENGTH_TOO_LARGE' => 'swoole/constants.php', + 'SWOOLE_ERROR_PACKAGE_MALFORMED_DATA' => 'swoole/constants.php', + 'SWOOLE_ERROR_PHP_FATAL_ERROR' => 'swoole/constants.php', + 'SWOOLE_ERROR_PROTOCOL_ERROR' => 'swoole/constants.php', + 'SWOOLE_ERROR_QUEUE_FULL' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_CONNECT_FAIL' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_INVALID_COMMAND' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_INVALID_LISTEN_PORT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_INVALID_REQUEST' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_MUST_CREATED_BEFORE_CLIENT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_NO_IDLE_WORKER' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_ONLY_START_ONE' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_PIPE_BUFFER_FULL' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_SEND_IN_MASTER' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_TOO_MANY_LISTEN_PORT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_TOO_MANY_SOCKET' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_WORKER_ABNORMAL_PIPE_DATA' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_WORKER_EXIT_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_WORKER_TERMINATED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SERVER_WORKER_UNPROCESSED_DATA' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_CLOSED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_CLOSED_BY_CLIENT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_CLOSED_BY_SERVER' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_CLOSING' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_DISCARD_DATA' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_DISCARD_TIMEOUT_DATA' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_INVALID_ID' => 'swoole/constants.php', + 'SWOOLE_ERROR_SESSION_NOT_EXIST' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKET_CLOSED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKET_POLL_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKS5_AUTH_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKS5_HANDSHAKE_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKS5_SERVER_ERROR' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKS5_UNSUPPORT_METHOD' => 'swoole/constants.php', + 'SWOOLE_ERROR_SOCKS5_UNSUPPORT_VERSION' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_BAD_CLIENT' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_BAD_PROTOCOL' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_CANNOT_USE_SENFILE' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_EMPTY_PEER_CERTIFICATE' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_HANDSHAKE_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_NOT_READY' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_RESET' => 'swoole/constants.php', + 'SWOOLE_ERROR_SSL_VERIFY_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_SYSTEM_CALL_FAIL' => 'swoole/constants.php', + 'SWOOLE_ERROR_TASK_DISPATCH_FAIL' => 'swoole/constants.php', + 'SWOOLE_ERROR_TASK_PACKAGE_TOO_BIG' => 'swoole/constants.php', + 'SWOOLE_ERROR_TASK_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_ERROR_UNREGISTERED_SIGNAL' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_BAD_CLIENT' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_BAD_OPCODE' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_HANDSHAKE_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_INCOMPLETE_PACKET' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_PACK_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_UNCONNECTED' => 'swoole/constants.php', + 'SWOOLE_ERROR_WEBSOCKET_UNPACK_FAILED' => 'swoole/constants.php', + 'SWOOLE_ERROR_WRONG_OPERATION' => 'swoole/constants.php', + 'SWOOLE_EVENT_READ' => 'swoole/constants.php', + 'SWOOLE_EVENT_WRITE' => 'swoole/constants.php', + 'SWOOLE_EXIT_IN_COROUTINE' => 'swoole/constants.php', + 'SWOOLE_EXIT_IN_SERVER' => 'swoole/constants.php', + 'SWOOLE_EXTRA_VERSION' => 'swoole/constants.php', + 'SWOOLE_FILELOCK' => 'swoole/constants.php', + 'SWOOLE_HAVE_BROTLI' => 'swoole/constants.php', + 'SWOOLE_HAVE_COMPRESSION' => 'swoole/constants.php', + 'SWOOLE_HAVE_ZLIB' => 'swoole/constants.php', + 'SWOOLE_HOOK_ALL' => 'swoole/constants.php', + 'SWOOLE_HOOK_BLOCKING_FUNCTION' => 'swoole/constants.php', + 'SWOOLE_HOOK_CURL' => 'swoole/constants.php', + 'SWOOLE_HOOK_FILE' => 'swoole/constants.php', + 'SWOOLE_HOOK_NATIVE_CURL' => 'swoole/constants.php', + 'SWOOLE_HOOK_PROC' => 'swoole/constants.php', + 'SWOOLE_HOOK_SLEEP' => 'swoole/constants.php', + 'SWOOLE_HOOK_SOCKETS' => 'swoole/constants.php', + 'SWOOLE_HOOK_SSL' => 'swoole/constants.php', + 'SWOOLE_HOOK_STDIO' => 'swoole/constants.php', + 'SWOOLE_HOOK_STREAM_FUNCTION' => 'swoole/constants.php', + 'SWOOLE_HOOK_STREAM_SELECT' => 'swoole/constants.php', + 'SWOOLE_HOOK_TCP' => 'swoole/constants.php', + 'SWOOLE_HOOK_TLS' => 'swoole/constants.php', + 'SWOOLE_HOOK_UDG' => 'swoole/constants.php', + 'SWOOLE_HOOK_UDP' => 'swoole/constants.php', + 'SWOOLE_HOOK_UNIX' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_CANCEL' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_COMPRESSION_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_CONNECT_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_ENHANCE_YOUR_CALM' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_FLOW_CONTROL_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_FRAME_SIZE_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_INADEQUATE_SECURITY' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_INTERNAL_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_NO_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_PROTOCOL_ERROR' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_REFUSED_STREAM' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_SETTINGS_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_HTTP2_ERROR_STREAM_CLOSED' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_CONTINUATION' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_DATA' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_GOAWAY' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_HEADERS' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_PING' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_PRIORITY' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_PUSH_PROMISE' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_RST_STREAM' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_SETTINGS' => 'swoole/constants.php', + 'SWOOLE_HTTP2_TYPE_WINDOW_UPDATE' => 'swoole/constants.php', + 'SWOOLE_HTTP_CLIENT_ESTATUS_CONNECT_FAILED' => 'swoole/constants.php', + 'SWOOLE_HTTP_CLIENT_ESTATUS_REQUEST_TIMEOUT' => 'swoole/constants.php', + 'SWOOLE_HTTP_CLIENT_ESTATUS_SEND_FAILED' => 'swoole/constants.php', + 'SWOOLE_HTTP_CLIENT_ESTATUS_SERVER_RESET' => 'swoole/constants.php', + 'SWOOLE_IOV_MAX' => 'swoole/constants.php', + 'SWOOLE_IPC_MSGQUEUE' => 'swoole/constants.php', + 'SWOOLE_IPC_NONE' => 'swoole/constants.php', + 'SWOOLE_IPC_PREEMPTIVE' => 'swoole/constants.php', + 'SWOOLE_IPC_SOCKET' => 'swoole/constants.php', + 'SWOOLE_IPC_UNIXSOCK' => 'swoole/constants.php', + 'SWOOLE_IPC_UNSOCK' => 'swoole/constants.php', + 'SWOOLE_KEEP' => 'swoole/constants.php', + 'SWOOLE_LOG_DEBUG' => 'swoole/constants.php', + 'SWOOLE_LOG_ERROR' => 'swoole/constants.php', + 'SWOOLE_LOG_INFO' => 'swoole/constants.php', + 'SWOOLE_LOG_NONE' => 'swoole/constants.php', + 'SWOOLE_LOG_NOTICE' => 'swoole/constants.php', + 'SWOOLE_LOG_ROTATION_DAILY' => 'swoole/constants.php', + 'SWOOLE_LOG_ROTATION_EVERY_MINUTE' => 'swoole/constants.php', + 'SWOOLE_LOG_ROTATION_HOURLY' => 'swoole/constants.php', + 'SWOOLE_LOG_ROTATION_MONTHLY' => 'swoole/constants.php', + 'SWOOLE_LOG_ROTATION_SINGLE' => 'swoole/constants.php', + 'SWOOLE_LOG_TRACE' => 'swoole/constants.php', + 'SWOOLE_LOG_WARNING' => 'swoole/constants.php', + 'SWOOLE_MAJOR_VERSION' => 'swoole/constants.php', + 'SWOOLE_MINOR_VERSION' => 'swoole/constants.php', + 'SWOOLE_MUTEX' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_CANT_FIND_CHARSET' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_COMMANDS_OUT_OF_SYNC' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_CONNECTION_ERROR' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_INVALID_BUFFER_USE' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_INVALID_PARAMETER_NO' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_MALFORMED_PACKET' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_NOT_IMPLEMENTED' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_NO_PREPARE_STMT' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_OUT_OF_MEMORY' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_PARAMS_NOT_BOUND' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_SERVER_GONE_ERROR' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_SERVER_LOST' => 'swoole/constants.php', + 'SWOOLE_MYSQLND_CR_UNKNOWN_ERROR' => 'swoole/constants.php', + 'SWOOLE_PROCESS' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_ALLOC' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_CLOSED' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_EOF' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_IO' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_NOAUTH' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_OOM' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_OTHER' => 'swoole/constants.php', + 'SWOOLE_REDIS_ERR_PROTOCOL' => 'swoole/constants.php', + 'SWOOLE_REDIS_MODE_MULTI' => 'swoole/constants.php', + 'SWOOLE_REDIS_MODE_PIPELINE' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_HASH' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_LIST' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_NOT_FOUND' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_SET' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_STRING' => 'swoole/constants.php', + 'SWOOLE_REDIS_TYPE_ZSET' => 'swoole/constants.php', + 'SWOOLE_RELEASE_VERSION' => 'swoole/constants.php', + 'SWOOLE_RWLOCK' => 'swoole/constants.php', + 'SWOOLE_SEM' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_EVENT_WORKER' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_MANAGER' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_MASTER' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_REACTOR_THREAD' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_TASK_WORKER' => 'swoole/constants.php', + 'SWOOLE_SERVER_COMMAND_WORKER' => 'swoole/constants.php', + 'SWOOLE_SOCK_ASYNC' => 'swoole/constants.php', + 'SWOOLE_SOCK_SYNC' => 'swoole/constants.php', + 'SWOOLE_SOCK_TCP' => 'swoole/constants.php', + 'SWOOLE_SOCK_TCP6' => 'swoole/constants.php', + 'SWOOLE_SOCK_UDP' => 'swoole/constants.php', + 'SWOOLE_SOCK_UDP6' => 'swoole/constants.php', + 'SWOOLE_SOCK_UNIX_DGRAM' => 'swoole/constants.php', + 'SWOOLE_SOCK_UNIX_STREAM' => 'swoole/constants.php', + 'SWOOLE_SPINLOCK' => 'swoole/constants.php', + 'SWOOLE_SSL' => 'swoole/constants.php', + 'SWOOLE_SSL_DTLS' => 'swoole/constants.php', + 'SWOOLE_SSL_SSLv2' => 'swoole/constants.php', + 'SWOOLE_SSL_TLSv1' => 'swoole/constants.php', + 'SWOOLE_SSL_TLSv1_1' => 'swoole/constants.php', + 'SWOOLE_SSL_TLSv1_2' => 'swoole/constants.php', + 'SWOOLE_SSL_TLSv1_3' => 'swoole/constants.php', + 'SWOOLE_SSLv23_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_SSLv23_METHOD' => 'swoole/constants.php', + 'SWOOLE_SSLv23_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_SSLv3_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_SSLv3_METHOD' => 'swoole/constants.php', + 'SWOOLE_SSLv3_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_STRERROR_DNS' => 'swoole/constants.php', + 'SWOOLE_STRERROR_GAI' => 'swoole/constants.php', + 'SWOOLE_STRERROR_SWOOLE' => 'swoole/constants.php', + 'SWOOLE_STRERROR_SYSTEM' => 'swoole/constants.php', + 'SWOOLE_SYNC' => 'swoole/constants.php', + 'SWOOLE_TASK_CALLBACK' => 'swoole/constants.php', + 'SWOOLE_TASK_COROUTINE' => 'swoole/constants.php', + 'SWOOLE_TASK_NONBLOCK' => 'swoole/constants.php', + 'SWOOLE_TASK_NOREPLY' => 'swoole/constants.php', + 'SWOOLE_TASK_PEEK' => 'swoole/constants.php', + 'SWOOLE_TASK_SERIALIZE' => 'swoole/constants.php', + 'SWOOLE_TASK_TMPFILE' => 'swoole/constants.php', + 'SWOOLE_TASK_WAITALL' => 'swoole/constants.php', + 'SWOOLE_TCP' => 'swoole/constants.php', + 'SWOOLE_TCP6' => 'swoole/constants.php', + 'SWOOLE_TIMER_MAX_MS' => 'swoole/constants.php', + 'SWOOLE_TIMER_MAX_SEC' => 'swoole/constants.php', + 'SWOOLE_TIMER_MIN_MS' => 'swoole/constants.php', + 'SWOOLE_TIMER_MIN_SEC' => 'swoole/constants.php', + 'SWOOLE_TLS_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLS_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLS_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_1_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_1_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_1_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_2_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_2_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_2_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_CLIENT_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_METHOD' => 'swoole/constants.php', + 'SWOOLE_TLSv1_SERVER_METHOD' => 'swoole/constants.php', + 'SWOOLE_TRACE_AIO' => 'swoole/constants.php', + 'SWOOLE_TRACE_ALL' => 'swoole/constants.php', + 'SWOOLE_TRACE_BUFFER' => 'swoole/constants.php', + 'SWOOLE_TRACE_CARES' => 'swoole/constants.php', + 'SWOOLE_TRACE_CHANNEL' => 'swoole/constants.php', + 'SWOOLE_TRACE_CLIENT' => 'swoole/constants.php', + 'SWOOLE_TRACE_CLOSE' => 'swoole/constants.php', + 'SWOOLE_TRACE_CONN' => 'swoole/constants.php', + 'SWOOLE_TRACE_CONTEXT' => 'swoole/constants.php', + 'SWOOLE_TRACE_COROUTINE' => 'swoole/constants.php', + 'SWOOLE_TRACE_CO_CURL' => 'swoole/constants.php', + 'SWOOLE_TRACE_CO_HTTP_SERVER' => 'swoole/constants.php', + 'SWOOLE_TRACE_EOF_PROTOCOL' => 'swoole/constants.php', + 'SWOOLE_TRACE_EVENT' => 'swoole/constants.php', + 'SWOOLE_TRACE_HTTP' => 'swoole/constants.php', + 'SWOOLE_TRACE_HTTP2' => 'swoole/constants.php', + 'SWOOLE_TRACE_HTTP_CLIENT' => 'swoole/constants.php', + 'SWOOLE_TRACE_LENGTH_PROTOCOL' => 'swoole/constants.php', + 'SWOOLE_TRACE_MEMORY' => 'swoole/constants.php', + 'SWOOLE_TRACE_MYSQL_CLIENT' => 'swoole/constants.php', + 'SWOOLE_TRACE_NORMAL' => 'swoole/constants.php', + 'SWOOLE_TRACE_PHP' => 'swoole/constants.php', + 'SWOOLE_TRACE_REACTOR' => 'swoole/constants.php', + 'SWOOLE_TRACE_REDIS_CLIENT' => 'swoole/constants.php', + 'SWOOLE_TRACE_SERVER' => 'swoole/constants.php', + 'SWOOLE_TRACE_SOCKET' => 'swoole/constants.php', + 'SWOOLE_TRACE_SSL' => 'swoole/constants.php', + 'SWOOLE_TRACE_TABLE' => 'swoole/constants.php', + 'SWOOLE_TRACE_TIMER' => 'swoole/constants.php', + 'SWOOLE_TRACE_WEBSOCKET' => 'swoole/constants.php', + 'SWOOLE_TRACE_WORKER' => 'swoole/constants.php', + 'SWOOLE_UDP' => 'swoole/constants.php', + 'SWOOLE_UDP6' => 'swoole/constants.php', + 'SWOOLE_UNIX_DGRAM' => 'swoole/constants.php', + 'SWOOLE_UNIX_STREAM' => 'swoole/constants.php', + 'SWOOLE_USE_HTTP2' => 'swoole/constants.php', + 'SWOOLE_USE_SHORTNAME' => 'swoole/constants.php', + 'SWOOLE_VERSION' => 'swoole/constants.php', + 'SWOOLE_VERSION_ID' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_ABNORMAL' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_DATA_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_EXTENSION_MISSING' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_GOING_AWAY' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_MESSAGE_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_MESSAGE_TOO_BIG' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_NORMAL' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_POLICY_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_PROTOCOL_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_SERVER_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_STATUS_ERROR' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_CLOSE_TLS' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_COMPRESS' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_FIN' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_MASK' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_RSV1' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_RSV2' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_FLAG_RSV3' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_BINARY' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_CLOSE' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_CONTINUATION' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_PING' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_PONG' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_OPCODE_TEXT' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_STATUS_ACTIVE' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_STATUS_CLOSING' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_STATUS_CONNECTION' => 'swoole/constants.php', + 'SWOOLE_WEBSOCKET_STATUS_HANDSHAKE' => 'swoole/constants.php', + 'SWOOLE_WORKER_BUSY' => 'swoole/constants.php', + 'SWOOLE_WORKER_EXIT' => 'swoole/constants.php', + 'SWOOLE_WORKER_IDLE' => 'swoole/constants.php', + 'S_ALL' => 'Core/Core_d.php', + 'S_EXECUTOR' => 'Core/Core_d.php', + 'S_FILES' => 'Core/Core_d.php', + 'S_INCLUDE' => 'Core/Core_d.php', + 'S_INTERNAL' => 'Core/Core_d.php', + 'S_IRGRP' => 'dio/dio_d.php', + 'S_IROTH' => 'dio/dio_d.php', + 'S_IRUSR' => 'dio/dio_d.php', + 'S_IRWXG' => 'dio/dio_d.php', + 'S_IRWXO' => 'dio/dio_d.php', + 'S_IRWXU' => 'dio/dio_d.php', + 'S_IWGRP' => 'dio/dio_d.php', + 'S_IWOTH' => 'dio/dio_d.php', + 'S_IWUSR' => 'dio/dio_d.php', + 'S_IXGRP' => 'dio/dio_d.php', + 'S_IXOTH' => 'dio/dio_d.php', + 'S_IXUSR' => 'dio/dio_d.php', + 'S_MAIL' => 'Core/Core_d.php', + 'S_MEMORY' => 'Core/Core_d.php', + 'S_MISC' => 'Core/Core_d.php', + 'S_SESSION' => 'Core/Core_d.php', + 'S_SQL' => 'Core/Core_d.php', + 'S_VARS' => 'Core/Core_d.php', + 'ScrollBar' => 'winbinder/winbinder.php', + 'Slider' => 'winbinder/winbinder.php', + 'Sodium\\CRYPTO_AEAD_AES256GCM_ABYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_AES256GCM_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_AES256GCM_NPUBBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_AES256GCM_NSECBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_CHACHA20POLY1305_ABYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_CHACHA20POLY1305_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_CHACHA20POLY1305_NPUBBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AEAD_CHACHA20POLY1305_NSECBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AUTH_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_AUTH_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_KEYPAIRBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_MACBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_NONCEBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_PUBLICKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_SEALBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_SECRETKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_BOX_SEEDBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_BYTES_MAX' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_BYTES_MIN' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_KEYBYTES_MAX' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_GENERICHASH_KEYBYTES_MIN' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_KX_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_KX_PUBLICKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_KX_SECRETKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_MEMLIMIT_INTERACTIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_MEMLIMIT_MODERATE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_MEMLIMIT_SENSITIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_OPSLIMIT_INTERACTIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_OPSLIMIT_MODERATE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_OPSLIMIT_SENSITIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_SENSITIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_SENSITIVE' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_SALTBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_STRPREFIX' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SCALARMULT_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SCALARMULT_SCALARBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SECRETBOX_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SECRETBOX_MACBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SECRETBOX_NONCEBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SHORTHASH_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SHORTHASH_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SIGN_BYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SIGN_KEYPAIRBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SIGN_PUBLICKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SIGN_SECRETKEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_SIGN_SEEDBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_STREAM_KEYBYTES' => 'libsodium/libsodium.php', + 'Sodium\\CRYPTO_STREAM_NONCEBYTES' => 'libsodium/libsodium.php', + 'Spinner' => 'winbinder/winbinder.php', + 'StatusBar' => 'winbinder/winbinder.php', + 'TCP_CONGESTION' => 'sockets/sockets.php', + 'TCP_DEFER_ACCEPT' => 'sockets/sockets.php', + 'TCP_KEEPCNT' => 'sockets/sockets.php', + 'TCP_KEEPIDLE' => 'sockets/sockets.php', + 'TCP_KEEPINTVL' => 'sockets/sockets.php', + 'TCP_NODELAY' => 'sockets/sockets.php', + 'TCP_NOTSENT_LOWAT' => 'sockets/sockets.php', + 'TCP_QUICKACK' => 'sockets/sockets.php', + 'TCP_REPAIR' => 'sockets/sockets.php', + 'THOUSANDS_SEP' => 'standard/standard_defines.php', + 'THOUSEP' => 'standard/standard_defines.php', + 'TIDY_NODETYPE_ASP' => 'tidy/tidy.php', + 'TIDY_NODETYPE_CDATA' => 'tidy/tidy.php', + 'TIDY_NODETYPE_COMMENT' => 'tidy/tidy.php', + 'TIDY_NODETYPE_DOCTYPE' => 'tidy/tidy.php', + 'TIDY_NODETYPE_END' => 'tidy/tidy.php', + 'TIDY_NODETYPE_JSTE' => 'tidy/tidy.php', + 'TIDY_NODETYPE_PHP' => 'tidy/tidy.php', + 'TIDY_NODETYPE_PROCINS' => 'tidy/tidy.php', + 'TIDY_NODETYPE_ROOT' => 'tidy/tidy.php', + 'TIDY_NODETYPE_SECTION' => 'tidy/tidy.php', + 'TIDY_NODETYPE_START' => 'tidy/tidy.php', + 'TIDY_NODETYPE_STARTEND' => 'tidy/tidy.php', + 'TIDY_NODETYPE_TEXT' => 'tidy/tidy.php', + 'TIDY_NODETYPE_XMLDECL' => 'tidy/tidy.php', + 'TIDY_TAG_A' => 'tidy/tidy.php', + 'TIDY_TAG_ABBR' => 'tidy/tidy.php', + 'TIDY_TAG_ACRONYM' => 'tidy/tidy.php', + 'TIDY_TAG_ADDRESS' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_BLINK' => 'tidy/tidy.php', + 'TIDY_TAG_BLOCKQUOTE' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_DT' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_H1' => 'tidy/tidy.php', + 'TIDY_TAG_H2' => 'tidy/tidy.php', + 'TIDY_TAG_H3' => 'tidy/tidy.php', + 'TIDY_TAG_H4' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_IFRAME' => 'tidy/tidy.php', + 'TIDY_TAG_ILAYER' => 'tidy/tidy.php', + 'TIDY_TAG_IMG' => 'tidy/tidy.php', + 'TIDY_TAG_INPUT' => 'tidy/tidy.php', + 'TIDY_TAG_INS' => 'tidy/tidy.php', + 'TIDY_TAG_ISINDEX' => 'tidy/tidy.php', + 'TIDY_TAG_KBD' => 'tidy/tidy.php', + 'TIDY_TAG_KEYGEN' => 'tidy/tidy.php', + 'TIDY_TAG_LABEL' => 'tidy/tidy.php', + 'TIDY_TAG_LAYER' => 'tidy/tidy.php', + 'TIDY_TAG_LEGEND' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_NOLAYER' => 'tidy/tidy.php', + 'TIDY_TAG_NOSAVE' => 'tidy/tidy.php', + 'TIDY_TAG_NOSCRIPT' => 'tidy/tidy.php', + 'TIDY_TAG_OBJECT' => 'tidy/tidy.php', + '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', + 'TIDY_TAG_RP' => 'tidy/tidy.php', + 'TIDY_TAG_RT' => 'tidy/tidy.php', + 'TIDY_TAG_RTC' => 'tidy/tidy.php', + 'TIDY_TAG_RUBY' => 'tidy/tidy.php', + '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', + 'TRAP_BRKPT' => 'pcntl/pcntl.php', + 'TRAP_TRACE' => 'pcntl/pcntl.php', + 'TYPEAPPLICATION' => 'imap/imap.php', + 'TYPEAUDIO' => 'imap/imap.php', + 'TYPEIMAGE' => 'imap/imap.php', + 'TYPEMESSAGE' => 'imap/imap.php', + 'TYPEMODEL' => 'imap/imap.php', + 'TYPEMULTIPART' => 'imap/imap.php', + 'TYPEOTHER' => 'imap/imap.php', + 'TYPETEXT' => 'imap/imap.php', + 'TYPEVIDEO' => 'imap/imap.php', + 'T_ABSTRACT' => 'tokenizer/tokenizer.php', + 'T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG' => 'tokenizer/tokenizer.php', + 'T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG' => 'tokenizer/tokenizer.php', + 'T_AND_EQUAL' => 'tokenizer/tokenizer.php', + 'T_ARRAY' => 'tokenizer/tokenizer.php', + 'T_ARRAY_CAST' => 'tokenizer/tokenizer.php', + 'T_AS' => 'tokenizer/tokenizer.php', + 'T_ATTRIBUTE' => 'tokenizer/tokenizer.php', + 'T_BAD_CHARACTER' => 'tokenizer/tokenizer.php', + 'T_BOOLEAN_AND' => 'tokenizer/tokenizer.php', + 'T_BOOLEAN_OR' => 'tokenizer/tokenizer.php', + 'T_BOOL_CAST' => 'tokenizer/tokenizer.php', + 'T_BREAK' => 'tokenizer/tokenizer.php', + 'T_CALLABLE' => 'tokenizer/tokenizer.php', + 'T_CASE' => 'tokenizer/tokenizer.php', + 'T_CATCH' => 'tokenizer/tokenizer.php', + 'T_CHARACTER' => 'tokenizer/tokenizer.php', + 'T_CLASS' => 'tokenizer/tokenizer.php', + 'T_CLASS_C' => 'tokenizer/tokenizer.php', + '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', + 'T_CONSTANT_ENCAPSED_STRING' => 'tokenizer/tokenizer.php', + 'T_CONTINUE' => 'tokenizer/tokenizer.php', + 'T_CURLY_OPEN' => 'tokenizer/tokenizer.php', + 'T_DEC' => 'tokenizer/tokenizer.php', + 'T_DECLARE' => 'tokenizer/tokenizer.php', + 'T_DEFAULT' => 'tokenizer/tokenizer.php', + 'T_DIR' => 'tokenizer/tokenizer.php', + 'T_DIV_EQUAL' => 'tokenizer/tokenizer.php', + 'T_DNUMBER' => 'tokenizer/tokenizer.php', + 'T_DO' => 'tokenizer/tokenizer.php', + 'T_DOC_COMMENT' => 'tokenizer/tokenizer.php', + 'T_DOLLAR_OPEN_CURLY_BRACES' => 'tokenizer/tokenizer.php', + 'T_DOUBLE_ARROW' => 'tokenizer/tokenizer.php', + 'T_DOUBLE_CAST' => 'tokenizer/tokenizer.php', + 'T_DOUBLE_COLON' => 'tokenizer/tokenizer.php', + 'T_ECHO' => 'tokenizer/tokenizer.php', + 'T_ELLIPSIS' => 'tokenizer/tokenizer.php', + 'T_ELSE' => 'tokenizer/tokenizer.php', + 'T_ELSEIF' => 'tokenizer/tokenizer.php', + 'T_EMPTY' => 'tokenizer/tokenizer.php', + 'T_ENCAPSED_AND_WHITESPACE' => 'tokenizer/tokenizer.php', + 'T_ENDDECLARE' => 'tokenizer/tokenizer.php', + 'T_ENDFOR' => 'tokenizer/tokenizer.php', + 'T_ENDFOREACH' => 'tokenizer/tokenizer.php', + 'T_ENDIF' => 'tokenizer/tokenizer.php', + 'T_ENDSWITCH' => 'tokenizer/tokenizer.php', + 'T_ENDWHILE' => 'tokenizer/tokenizer.php', + 'T_END_HEREDOC' => 'tokenizer/tokenizer.php', + 'T_ENUM' => 'tokenizer/tokenizer.php', + 'T_EVAL' => 'tokenizer/tokenizer.php', + 'T_EXIT' => 'tokenizer/tokenizer.php', + 'T_EXTENDS' => 'tokenizer/tokenizer.php', + 'T_FILE' => 'tokenizer/tokenizer.php', + 'T_FINAL' => 'tokenizer/tokenizer.php', + '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', + 'T_FUNC_C' => 'tokenizer/tokenizer.php', + 'T_GLOBAL' => 'tokenizer/tokenizer.php', + 'T_GOTO' => 'tokenizer/tokenizer.php', + 'T_HALT_COMPILER' => 'tokenizer/tokenizer.php', + 'T_IF' => 'tokenizer/tokenizer.php', + 'T_IMPLEMENTS' => 'tokenizer/tokenizer.php', + 'T_INC' => 'tokenizer/tokenizer.php', + 'T_INCLUDE' => 'tokenizer/tokenizer.php', + 'T_INCLUDE_ONCE' => 'tokenizer/tokenizer.php', + 'T_INLINE_HTML' => 'tokenizer/tokenizer.php', + 'T_INSTANCEOF' => 'tokenizer/tokenizer.php', + 'T_INSTEADOF' => 'tokenizer/tokenizer.php', + 'T_INTERFACE' => 'tokenizer/tokenizer.php', + 'T_INT_CAST' => 'tokenizer/tokenizer.php', + 'T_ISSET' => 'tokenizer/tokenizer.php', + 'T_IS_EQUAL' => 'tokenizer/tokenizer.php', + 'T_IS_GREATER_OR_EQUAL' => 'tokenizer/tokenizer.php', + 'T_IS_IDENTICAL' => 'tokenizer/tokenizer.php', + 'T_IS_NOT_EQUAL' => 'tokenizer/tokenizer.php', + 'T_IS_NOT_IDENTICAL' => 'tokenizer/tokenizer.php', + 'T_IS_SMALLER_OR_EQUAL' => 'tokenizer/tokenizer.php', + 'T_LINE' => 'tokenizer/tokenizer.php', + 'T_LIST' => 'tokenizer/tokenizer.php', + 'T_LNUMBER' => 'tokenizer/tokenizer.php', + 'T_LOGICAL_AND' => 'tokenizer/tokenizer.php', + 'T_LOGICAL_OR' => 'tokenizer/tokenizer.php', + 'T_LOGICAL_XOR' => 'tokenizer/tokenizer.php', + 'T_MATCH' => 'tokenizer/tokenizer.php', + 'T_METHOD_C' => 'tokenizer/tokenizer.php', + 'T_MINUS_EQUAL' => 'tokenizer/tokenizer.php', + 'T_MOD_EQUAL' => 'tokenizer/tokenizer.php', + 'T_MUL_EQUAL' => 'tokenizer/tokenizer.php', + 'T_NAMESPACE' => 'tokenizer/tokenizer.php', + 'T_NAME_FULLY_QUALIFIED' => 'tokenizer/tokenizer.php', + 'T_NAME_QUALIFIED' => 'tokenizer/tokenizer.php', + 'T_NAME_RELATIVE' => 'tokenizer/tokenizer.php', + 'T_NEW' => 'tokenizer/tokenizer.php', + 'T_NS_C' => 'tokenizer/tokenizer.php', + 'T_NS_SEPARATOR' => 'tokenizer/tokenizer.php', + 'T_NULLSAFE_OBJECT_OPERATOR' => 'tokenizer/tokenizer.php', + 'T_NUM_STRING' => 'tokenizer/tokenizer.php', + 'T_OBJECT_CAST' => 'tokenizer/tokenizer.php', + 'T_OBJECT_OPERATOR' => 'tokenizer/tokenizer.php', + 'T_OPEN_TAG' => 'tokenizer/tokenizer.php', + 'T_OPEN_TAG_WITH_ECHO' => 'tokenizer/tokenizer.php', + 'T_OR_EQUAL' => 'tokenizer/tokenizer.php', + 'T_PAAMAYIM_NEKUDOTAYIM' => 'tokenizer/tokenizer.php', + 'T_PLUS_EQUAL' => 'tokenizer/tokenizer.php', + 'T_POW' => 'tokenizer/tokenizer.php', + 'T_POW_EQUAL' => 'tokenizer/tokenizer.php', + 'T_PRINT' => 'tokenizer/tokenizer.php', + 'T_PRIVATE' => 'tokenizer/tokenizer.php', + 'T_PROTECTED' => 'tokenizer/tokenizer.php', + 'T_PUBLIC' => 'tokenizer/tokenizer.php', + 'T_READONLY' => 'tokenizer/tokenizer.php', + 'T_REQUIRE' => 'tokenizer/tokenizer.php', + 'T_REQUIRE_ONCE' => 'tokenizer/tokenizer.php', + 'T_RETURN' => 'tokenizer/tokenizer.php', + 'T_SL' => 'tokenizer/tokenizer.php', + 'T_SL_EQUAL' => 'tokenizer/tokenizer.php', + 'T_SPACESHIP' => 'tokenizer/tokenizer.php', + 'T_SR' => 'tokenizer/tokenizer.php', + 'T_SR_EQUAL' => 'tokenizer/tokenizer.php', + 'T_START_HEREDOC' => 'tokenizer/tokenizer.php', + 'T_STATIC' => 'tokenizer/tokenizer.php', + 'T_STRING' => 'tokenizer/tokenizer.php', + 'T_STRING_CAST' => 'tokenizer/tokenizer.php', + 'T_STRING_VARNAME' => 'tokenizer/tokenizer.php', + 'T_SWITCH' => 'tokenizer/tokenizer.php', + 'T_THROW' => 'tokenizer/tokenizer.php', + 'T_TRAIT' => 'tokenizer/tokenizer.php', + 'T_TRAIT_C' => 'tokenizer/tokenizer.php', + 'T_TRY' => 'tokenizer/tokenizer.php', + 'T_UNSET' => 'tokenizer/tokenizer.php', + 'T_UNSET_CAST' => 'tokenizer/tokenizer.php', + 'T_USE' => 'tokenizer/tokenizer.php', + 'T_VAR' => 'tokenizer/tokenizer.php', + 'T_VARIABLE' => 'tokenizer/tokenizer.php', + 'T_WHILE' => 'tokenizer/tokenizer.php', + 'T_WHITESPACE' => 'tokenizer/tokenizer.php', + 'T_XOR_EQUAL' => 'tokenizer/tokenizer.php', + 'T_YIELD' => 'tokenizer/tokenizer.php', + 'T_YIELD_FROM' => 'tokenizer/tokenizer.php', + 'TabControl' => 'winbinder/winbinder.php', + 'Timer' => 'winbinder/winbinder.php', + 'ToolBar' => 'winbinder/winbinder.php', + 'ToolDialog' => 'winbinder/winbinder.php', + 'TreeView' => 'winbinder/winbinder.php', + 'ULOC_ACTUAL_LOCALE' => 'intl/intl.php', + 'ULOC_VALID_LOCALE' => 'intl/intl.php', + 'UNKNOWN_TYPE' => 'soap/soap.php', + 'UPLOAD_ERR_CANT_WRITE' => 'Core/Core_d.php', + 'UPLOAD_ERR_EXTENSION' => 'Core/Core_d.php', + 'UPLOAD_ERR_FORM_SIZE' => 'Core/Core_d.php', + 'UPLOAD_ERR_INI_SIZE' => 'Core/Core_d.php', + 'UPLOAD_ERR_NO_FILE' => 'Core/Core_d.php', + 'UPLOAD_ERR_NO_TMP_DIR' => 'Core/Core_d.php', + 'UPLOAD_ERR_OK' => 'Core/Core_d.php', + 'UPLOAD_ERR_PARTIAL' => 'Core/Core_d.php', + 'UUID_TYPE_DCE' => 'uuid/uuid_c.php', + 'UUID_TYPE_DEFAULT' => 'uuid/uuid_c.php', + 'UUID_TYPE_INVALID' => 'uuid/uuid_c.php', + 'UUID_TYPE_MD5' => 'uuid/uuid_c.php', + 'UUID_TYPE_NAME' => 'uuid/uuid_c.php', + 'UUID_TYPE_NULL' => 'uuid/uuid_c.php', + 'UUID_TYPE_RANDOM' => 'uuid/uuid_c.php', + 'UUID_TYPE_SECURITY' => 'uuid/uuid_c.php', + 'UUID_TYPE_SHA1' => 'uuid/uuid_c.php', + 'UUID_TYPE_TIME' => 'uuid/uuid_c.php', + 'UUID_VARIANT_DCE' => 'uuid/uuid_c.php', + 'UUID_VARIANT_MICROSOFT' => 'uuid/uuid_c.php', + 'UUID_VARIANT_NCS' => 'uuid/uuid_c.php', + 'UUID_VARIANT_OTHER' => 'uuid/uuid_c.php', + 'U_AMBIGUOUS_ALIAS_WARNING' => 'intl/intl.php', + 'U_BAD_VARIABLE_DEFINITION' => 'intl/intl.php', + 'U_BRK_ASSIGN_ERROR' => 'intl/intl.php', + 'U_BRK_ERROR_LIMIT' => 'intl/intl.php', + 'U_BRK_ERROR_START' => 'intl/intl.php', + 'U_BRK_HEX_DIGITS_EXPECTED' => 'intl/intl.php', + 'U_BRK_INIT_ERROR' => 'intl/intl.php', + 'U_BRK_INTERNAL_ERROR' => 'intl/intl.php', + 'U_BRK_MALFORMED_RULE_TAG' => 'intl/intl.php', + 'U_BRK_MISMATCHED_PAREN' => 'intl/intl.php', + 'U_BRK_NEW_LINE_IN_QUOTED_STRING' => 'intl/intl.php', + 'U_BRK_RULE_EMPTY_SET' => 'intl/intl.php', + 'U_BRK_RULE_SYNTAX' => 'intl/intl.php', + 'U_BRK_SEMICOLON_EXPECTED' => 'intl/intl.php', + 'U_BRK_UNCLOSED_SET' => 'intl/intl.php', + 'U_BRK_UNDEFINED_VARIABLE' => 'intl/intl.php', + 'U_BRK_UNRECOGNIZED_OPTION' => 'intl/intl.php', + 'U_BRK_VARIABLE_REDFINITION' => 'intl/intl.php', + 'U_BUFFER_OVERFLOW_ERROR' => 'intl/intl.php', + 'U_CE_NOT_FOUND_ERROR' => 'intl/intl.php', + 'U_COLLATOR_VERSION_MISMATCH' => 'intl/intl.php', + 'U_DIFFERENT_UCA_VERSION' => 'intl/intl.php', + 'U_ENUM_OUT_OF_SYNC_ERROR' => 'intl/intl.php', + 'U_ERROR_LIMIT' => 'intl/intl.php', + 'U_ERROR_WARNING_LIMIT' => 'intl/intl.php', + 'U_ERROR_WARNING_START' => 'intl/intl.php', + 'U_FILE_ACCESS_ERROR' => 'intl/intl.php', + 'U_FMT_PARSE_ERROR_LIMIT' => 'intl/intl.php', + 'U_FMT_PARSE_ERROR_START' => 'intl/intl.php', + 'U_IDNA_ACE_PREFIX_ERROR' => 'intl/intl.php', + 'U_IDNA_CHECK_BIDI_ERROR' => 'intl/intl.php', + 'U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR' => 'intl/intl.php', + 'U_IDNA_ERROR_LIMIT' => 'intl/intl.php', + 'U_IDNA_ERROR_START' => 'intl/intl.php', + 'U_IDNA_LABEL_TOO_LONG_ERROR' => 'intl/intl.php', + 'U_IDNA_PROHIBITED_ERROR' => 'intl/intl.php', + 'U_IDNA_STD3_ASCII_RULES_ERROR' => 'intl/intl.php', + 'U_IDNA_UNASSIGNED_ERROR' => 'intl/intl.php', + 'U_IDNA_VERIFICATION_ERROR' => 'intl/intl.php', + 'U_IDNA_ZERO_LENGTH_LABEL_ERROR' => 'intl/intl.php', + 'U_ILLEGAL_ARGUMENT_ERROR' => 'intl/intl.php', + 'U_ILLEGAL_CHARACTER' => 'intl/intl.php', + 'U_ILLEGAL_CHAR_FOUND' => 'intl/intl.php', + 'U_ILLEGAL_CHAR_IN_SEGMENT' => 'intl/intl.php', + 'U_ILLEGAL_ESCAPE_SEQUENCE' => 'intl/intl.php', + 'U_ILLEGAL_PAD_POSITION' => 'intl/intl.php', + 'U_INDEX_OUTOFBOUNDS_ERROR' => 'intl/intl.php', + 'U_INTERNAL_PROGRAM_ERROR' => 'intl/intl.php', + 'U_INTERNAL_TRANSLITERATOR_ERROR' => 'intl/intl.php', + 'U_INVALID_CHAR_FOUND' => 'intl/intl.php', + 'U_INVALID_FORMAT_ERROR' => 'intl/intl.php', + 'U_INVALID_FUNCTION' => 'intl/intl.php', + 'U_INVALID_ID' => 'intl/intl.php', + 'U_INVALID_PROPERTY_PATTERN' => 'intl/intl.php', + 'U_INVALID_RBT_SYNTAX' => 'intl/intl.php', + 'U_INVALID_STATE_ERROR' => 'intl/intl.php', + 'U_INVALID_TABLE_FILE' => 'intl/intl.php', + 'U_INVALID_TABLE_FORMAT' => 'intl/intl.php', + 'U_INVARIANT_CONVERSION_ERROR' => 'intl/intl.php', + 'U_MALFORMED_EXPONENTIAL_PATTERN' => 'intl/intl.php', + 'U_MALFORMED_PRAGMA' => 'intl/intl.php', + 'U_MALFORMED_RULE' => 'intl/intl.php', + 'U_MALFORMED_SET' => 'intl/intl.php', + 'U_MALFORMED_SYMBOL_REFERENCE' => 'intl/intl.php', + 'U_MALFORMED_UNICODE_ESCAPE' => 'intl/intl.php', + 'U_MALFORMED_VARIABLE_DEFINITION' => 'intl/intl.php', + 'U_MALFORMED_VARIABLE_REFERENCE' => 'intl/intl.php', + 'U_MEMORY_ALLOCATION_ERROR' => 'intl/intl.php', + 'U_MESSAGE_PARSE_ERROR' => 'intl/intl.php', + 'U_MISMATCHED_SEGMENT_DELIMITERS' => 'intl/intl.php', + 'U_MISPLACED_ANCHOR_START' => 'intl/intl.php', + 'U_MISPLACED_COMPOUND_FILTER' => 'intl/intl.php', + 'U_MISPLACED_CURSOR_OFFSET' => 'intl/intl.php', + 'U_MISPLACED_QUANTIFIER' => 'intl/intl.php', + 'U_MISSING_OPERATOR' => 'intl/intl.php', + 'U_MISSING_RESOURCE_ERROR' => 'intl/intl.php', + 'U_MISSING_SEGMENT_CLOSE' => 'intl/intl.php', + 'U_MULTIPLE_ANTE_CONTEXTS' => 'intl/intl.php', + 'U_MULTIPLE_COMPOUND_FILTERS' => 'intl/intl.php', + 'U_MULTIPLE_CURSORS' => 'intl/intl.php', + 'U_MULTIPLE_DECIMAL_SEPARATORS' => 'intl/intl.php', + 'U_MULTIPLE_DECIMAL_SEPERATORS' => 'intl/intl.php', + 'U_MULTIPLE_EXPONENTIAL_SYMBOLS' => 'intl/intl.php', + 'U_MULTIPLE_PAD_SPECIFIERS' => 'intl/intl.php', + 'U_MULTIPLE_PERCENT_SYMBOLS' => 'intl/intl.php', + 'U_MULTIPLE_PERMILL_SYMBOLS' => 'intl/intl.php', + 'U_MULTIPLE_POST_CONTEXTS' => 'intl/intl.php', + 'U_NO_SPACE_AVAILABLE' => 'intl/intl.php', + 'U_NO_WRITE_PERMISSION' => 'intl/intl.php', + 'U_PARSE_ERROR' => 'intl/intl.php', + 'U_PARSE_ERROR_LIMIT' => 'intl/intl.php', + 'U_PARSE_ERROR_START' => 'intl/intl.php', + 'U_PATTERN_SYNTAX_ERROR' => 'intl/intl.php', + 'U_PRIMARY_TOO_LONG_ERROR' => 'intl/intl.php', + 'U_REGEX_BAD_ESCAPE_SEQUENCE' => 'intl/intl.php', + 'U_REGEX_BAD_INTERVAL' => 'intl/intl.php', + 'U_REGEX_ERROR_LIMIT' => 'intl/intl.php', + 'U_REGEX_ERROR_START' => 'intl/intl.php', + 'U_REGEX_INTERNAL_ERROR' => 'intl/intl.php', + 'U_REGEX_INVALID_BACK_REF' => 'intl/intl.php', + 'U_REGEX_INVALID_FLAG' => 'intl/intl.php', + 'U_REGEX_INVALID_STATE' => 'intl/intl.php', + 'U_REGEX_LOOK_BEHIND_LIMIT' => 'intl/intl.php', + 'U_REGEX_MAX_LT_MIN' => 'intl/intl.php', + 'U_REGEX_MISMATCHED_PAREN' => 'intl/intl.php', + 'U_REGEX_NUMBER_TOO_BIG' => 'intl/intl.php', + 'U_REGEX_PROPERTY_SYNTAX' => 'intl/intl.php', + 'U_REGEX_RULE_SYNTAX' => 'intl/intl.php', + 'U_REGEX_SET_CONTAINS_STRING' => 'intl/intl.php', + 'U_REGEX_UNIMPLEMENTED' => 'intl/intl.php', + 'U_RESOURCE_TYPE_MISMATCH' => 'intl/intl.php', + 'U_RULE_MASK_ERROR' => 'intl/intl.php', + 'U_SAFECLONE_ALLOCATED_WARNING' => 'intl/intl.php', + 'U_SORT_KEY_TOO_SHORT_WARNING' => 'intl/intl.php', + 'U_STANDARD_ERROR_LIMIT' => 'intl/intl.php', + 'U_STATE_OLD_WARNING' => 'intl/intl.php', + 'U_STATE_TOO_OLD_ERROR' => 'intl/intl.php', + 'U_STRINGPREP_CHECK_BIDI_ERROR' => 'intl/intl.php', + 'U_STRINGPREP_PROHIBITED_ERROR' => 'intl/intl.php', + 'U_STRINGPREP_UNASSIGNED_ERROR' => 'intl/intl.php', + 'U_STRING_NOT_TERMINATED_WARNING' => 'intl/intl.php', + 'U_TOO_MANY_ALIASES_ERROR' => 'intl/intl.php', + 'U_TRAILING_BACKSLASH' => 'intl/intl.php', + 'U_TRUNCATED_CHAR_FOUND' => 'intl/intl.php', + 'U_UNCLOSED_SEGMENT' => 'intl/intl.php', + 'U_UNDEFINED_SEGMENT_REFERENCE' => 'intl/intl.php', + 'U_UNDEFINED_VARIABLE' => 'intl/intl.php', + 'U_UNEXPECTED_TOKEN' => 'intl/intl.php', + 'U_UNMATCHED_BRACES' => 'intl/intl.php', + 'U_UNQUOTED_SPECIAL' => 'intl/intl.php', + 'U_UNSUPPORTED_ATTRIBUTE' => 'intl/intl.php', + 'U_UNSUPPORTED_ERROR' => 'intl/intl.php', + 'U_UNSUPPORTED_ESCAPE_SEQUENCE' => 'intl/intl.php', + 'U_UNSUPPORTED_PROPERTY' => 'intl/intl.php', + 'U_UNTERMINATED_QUOTE' => 'intl/intl.php', + 'U_USELESS_COLLATOR_ERROR' => 'intl/intl.php', + 'U_USING_DEFAULT_WARNING' => 'intl/intl.php', + 'U_USING_FALLBACK_WARNING' => 'intl/intl.php', + 'U_VARIABLE_RANGE_EXHAUSTED' => 'intl/intl.php', + 'U_VARIABLE_RANGE_OVERLAP' => 'intl/intl.php', + 'U_ZERO_ERROR' => 'intl/intl.php', + 'VARCMP_EQ' => 'com_dotnet/com_dotnet.php', + 'VARCMP_GT' => 'com_dotnet/com_dotnet.php', + 'VARCMP_LT' => 'com_dotnet/com_dotnet.php', + 'VARCMP_NULL' => 'com_dotnet/com_dotnet.php', + 'VIR_CONNECT_FLAG_SOUNDHW_GET_NAMES' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_ACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_INACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_OTHER' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_PAUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_PERSISTENT' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_RUNNING' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_SHUTOFF' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_GET_ALL_DOMAINS_STATS_TRANSIENT' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_ACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_AUTOSTART' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_INACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_NO_AUTOSTART' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_PERSISTENT' => 'libvirt-php/libvirt-php.php', + 'VIR_CONNECT_LIST_NETWORKS_TRANSIENT' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_AUTHNAME' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_CNONCE' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_ECHOPROMPT' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_EXTERNAL' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_LANGUAGE' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_NOECHOPROMPT' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_PASSPHRASE' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_REALM' => 'libvirt-php/libvirt-php.php', + 'VIR_CRED_USERNAME' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_AFFECT_CONFIG' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_AFFECT_CURRENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_AFFECT_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCKED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COMMIT_ACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COMMIT_BANDWIDTH_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COMMIT_DELETE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COMMIT_RELATIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COMMIT_SHALLOW' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COPY_REUSE_EXT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_COPY_SHALLOW' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_ABORT_ASYNC' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_ABORT_PIVOT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_INFO_BANDWIDTH_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_TYPE_ACTIVE_COMMIT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_TYPE_COMMIT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_TYPE_COPY' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_TYPE_PULL' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_JOB_TYPE_UNKNOWN' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_PULL_BANDWIDTH_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_BANDWIDTH_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_COPY' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_COPY_DEV' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_COPY_RAW' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_RELATIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_REUSE_EXT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_REBASE_SHALLOW' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_BLOCK_RESIZE_BYTES' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_CRASHED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DEVICE_MODIFY_CONFIG' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DEVICE_MODIFY_CURRENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DEVICE_MODIFY_FORCE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DEVICE_MODIFY_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DISK_ACCESS_ALL' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DISK_BLOCK' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_DISK_FILE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_CLOCK_LOCALTIME' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_FEATURE_ACPI' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_FEATURE_APIC' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_FEATURE_PAE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_SOUND_AC97' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_FLAG_TEST_LOCAL_VNC' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_BOUNDED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_CANCELLED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_COMPLETED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_FAILED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_NONE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_JOB_UNBOUNDED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_ACTUAL_BALLOON' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_AVAILABLE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_MAJOR_FAULT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_MINOR_FAULT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_NR' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_RSS' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_SWAP_IN' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_SWAP_OUT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEMORY_STAT_UNUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEM_CONFIG' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEM_CURRENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEM_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_MEM_MAXIMUM' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_METADATA_DESCRIPTION' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_METADATA_ELEMENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_METADATA_TITLE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_NONE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_NOSTATE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_PAUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_PMSUSPENDED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_RUNNING' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_SHUTDOWN' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_SHUTOFF' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_START_AUTODESTROY' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_START_BYPASS_CACHE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_START_FORCE_BOOT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_START_PAUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_START_VALIDATE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_BALLOON' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_BLOCK' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_CPU_TOTAL' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_INTERFACE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_STATE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_STATS_VCPU' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_UNDEFINE_KEEP_NVRAM' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_UNDEFINE_MANAGED_SAVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_UNDEFINE_NVRAM' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_VCPU_CONFIG' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_VCPU_CURRENT' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_VCPU_GUEST' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_VCPU_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_VCPU_MAXIMUM' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_XML_INACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_XML_MIGRATABLE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_XML_SECURE' => 'libvirt-php/libvirt-php.php', + 'VIR_DOMAIN_XML_UPDATE_CPU' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_ATSET1' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_ATSET2' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_ATSET3' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_LINUX' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_OSX' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_RFB' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_USB' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_WIN32' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_XT' => 'libvirt-php/libvirt-php.php', + 'VIR_KEYCODE_SET_XT_KBD' => 'libvirt-php/libvirt-php.php', + 'VIR_MEMORY_PHYSICAL' => 'libvirt-php/libvirt-php.php', + 'VIR_MEMORY_VIRTUAL' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_ABORT_ON_ERROR' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_AUTO_CONVERGE' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_CHANGE_PROTECTION' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_COMPRESSED' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_NON_SHARED_DISK' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_NON_SHARED_INC' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_OFFLINE' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_PAUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_PEER2PEER' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_PERSIST_DEST' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_TUNNELLED' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_UNDEFINE_SOURCE' => 'libvirt-php/libvirt-php.php', + 'VIR_MIGRATE_UNSAFE' => 'libvirt-php/libvirt-php.php', + 'VIR_NETWORKS_ACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_NETWORKS_ALL' => 'libvirt-php/libvirt-php.php', + 'VIR_NETWORKS_INACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_NODE_CPU_STATS_ALL_CPUS' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_ATOMIC' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_CURRENT' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_DISK_ONLY' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_HALT' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_LIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_NO_METADATA' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_QUIESCE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_REDEFINE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_CREATE_REUSE_EXT' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_DELETE_CHILDREN' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_DELETE_CHILDREN_ONLY' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_DELETE_METADATA_ONLY' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_ACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_DESCENDANTS' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_DISK_ONLY' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_EXTERNAL' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_INACTIVE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_INTERNAL' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_LEAVES' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_METADATA' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_NO_LEAVES' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_NO_METADATA' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_LIST_ROOTS' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_REVERT_FORCE' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_REVERT_PAUSED' => 'libvirt-php/libvirt-php.php', + 'VIR_SNAPSHOT_REVERT_RUNNING' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_POOL_BUILD_NEW' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_POOL_BUILD_REPAIR' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_POOL_BUILD_RESIZE' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_VOL_CREATE_PREALLOC_METADATA' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_VOL_CREATE_REFLINK' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_VOL_RESIZE_ALLOCATE' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_VOL_RESIZE_DELTA' => 'libvirt-php/libvirt-php.php', + 'VIR_STORAGE_VOL_RESIZE_SHRINK' => 'libvirt-php/libvirt-php.php', + 'VIR_VERSION_BINDING' => 'libvirt-php/libvirt-php.php', + 'VIR_VERSION_LIBVIRT' => 'libvirt-php/libvirt-php.php', + 'VT_ARRAY' => 'com_dotnet/com_dotnet.php', + 'VT_BOOL' => 'com_dotnet/com_dotnet.php', + 'VT_BSTR' => 'com_dotnet/com_dotnet.php', + 'VT_BYREF' => 'com_dotnet/com_dotnet.php', + 'VT_CY' => 'com_dotnet/com_dotnet.php', + 'VT_DATE' => 'com_dotnet/com_dotnet.php', + 'VT_DECIMAL' => 'com_dotnet/com_dotnet.php', + 'VT_DISPATCH' => 'com_dotnet/com_dotnet.php', + 'VT_EMPTY' => 'com_dotnet/com_dotnet.php', + 'VT_ERROR' => 'com_dotnet/com_dotnet.php', + 'VT_I1' => 'com_dotnet/com_dotnet.php', + 'VT_I2' => 'com_dotnet/com_dotnet.php', + 'VT_I4' => 'com_dotnet/com_dotnet.php', + 'VT_INT' => 'com_dotnet/com_dotnet.php', + 'VT_NULL' => 'com_dotnet/com_dotnet.php', + 'VT_R4' => 'com_dotnet/com_dotnet.php', + 'VT_R8' => 'com_dotnet/com_dotnet.php', + 'VT_UI1' => 'com_dotnet/com_dotnet.php', + 'VT_UI2' => 'com_dotnet/com_dotnet.php', + 'VT_UI4' => 'com_dotnet/com_dotnet.php', + 'VT_UINT' => 'com_dotnet/com_dotnet.php', + 'VT_UNKNOWN' => 'com_dotnet/com_dotnet.php', + 'VT_VARIANT' => 'com_dotnet/com_dotnet.php', + 'WBC_ALT' => 'winbinder/winbinder.php', + 'WBC_AUTOREPEAT' => 'winbinder/winbinder.php', + 'WBC_BEEP' => 'winbinder/winbinder.php', + 'WBC_BORDER' => 'winbinder/winbinder.php', + 'WBC_BOTTOM' => 'winbinder/winbinder.php', + 'WBC_CENTER' => 'winbinder/winbinder.php', + 'WBC_CHECKBOXES' => 'winbinder/winbinder.php', + 'WBC_CONTROL' => 'winbinder/winbinder.php', + 'WBC_CUSTOMDRAW' => 'winbinder/winbinder.php', + 'WBC_DBLCLICK' => 'winbinder/winbinder.php', + 'WBC_DEFAULT' => 'winbinder/winbinder.php', + 'WBC_DEFAULTPOS' => 'winbinder/winbinder.php', + 'WBC_DISABLED' => 'winbinder/winbinder.php', + 'WBC_ELLIPSIS' => 'winbinder/winbinder.php', + 'WBC_ENABLED' => 'winbinder/winbinder.php', + 'WBC_GETFOCUS' => 'winbinder/winbinder.php', + 'WBC_GROUP' => 'winbinder/winbinder.php', + 'WBC_HEADERSEL' => 'winbinder/winbinder.php', + 'WBC_IMAGE' => 'winbinder/winbinder.php', + 'WBC_INFO' => 'winbinder/winbinder.php', + 'WBC_INVISIBLE' => 'winbinder/winbinder.php', + 'WBC_KEYDOWN' => 'winbinder/winbinder.php', + 'WBC_KEYUP' => 'winbinder/winbinder.php', + 'WBC_LBUTTON' => 'winbinder/winbinder.php', + 'WBC_LEFT' => 'winbinder/winbinder.php', + 'WBC_LINES' => 'winbinder/winbinder.php', + 'WBC_LV_BACK' => 'winbinder/winbinder.php', + 'WBC_LV_COLUMNS' => 'winbinder/winbinder.php', + 'WBC_LV_DEFAULT' => 'winbinder/winbinder.php', + 'WBC_LV_DRAW' => 'winbinder/winbinder.php', + 'WBC_LV_FORE' => 'winbinder/winbinder.php', + 'WBC_LV_NONE' => 'winbinder/winbinder.php', + 'WBC_MASKED' => 'winbinder/winbinder.php', + 'WBC_MAXIMIZED' => 'winbinder/winbinder.php', + 'WBC_MAXSIZE' => 'winbinder/winbinder.php', + 'WBC_MBUTTON' => 'winbinder/winbinder.php', + 'WBC_MIDDLE' => 'winbinder/winbinder.php', + 'WBC_MINIMIZED' => 'winbinder/winbinder.php', + 'WBC_MINSIZE' => 'winbinder/winbinder.php', + 'WBC_MOUSEDOWN' => 'winbinder/winbinder.php', + 'WBC_MOUSEMOVE' => 'winbinder/winbinder.php', + 'WBC_MOUSEUP' => 'winbinder/winbinder.php', + 'WBC_MULTILINE' => 'winbinder/winbinder.php', + 'WBC_MULTISELECT' => 'winbinder/winbinder.php', + 'WBC_NOHEADER' => 'winbinder/winbinder.php', + 'WBC_NORMAL' => 'winbinder/winbinder.php', + 'WBC_NOTIFY' => 'winbinder/winbinder.php', + 'WBC_NUMBER' => 'winbinder/winbinder.php', + 'WBC_OK' => 'winbinder/winbinder.php', + 'WBC_OKCANCEL' => 'winbinder/winbinder.php', + 'WBC_QUESTION' => 'winbinder/winbinder.php', + 'WBC_RBUTTON' => 'winbinder/winbinder.php', + 'WBC_READONLY' => 'winbinder/winbinder.php', + 'WBC_REDRAW' => 'winbinder/winbinder.php', + 'WBC_RESIZE' => 'winbinder/winbinder.php', + 'WBC_RIGHT' => 'winbinder/winbinder.php', + 'WBC_RTF_TEXT' => 'winbinder/winbinder.php', + 'WBC_SHIFT' => 'winbinder/winbinder.php', + 'WBC_SINGLE' => 'winbinder/winbinder.php', + 'WBC_SORT' => 'winbinder/winbinder.php', + 'WBC_STOP' => 'winbinder/winbinder.php', + 'WBC_TASKBAR' => 'winbinder/winbinder.php', + 'WBC_TITLE' => 'winbinder/winbinder.php', + 'WBC_TOP' => 'winbinder/winbinder.php', + 'WBC_TRANSPARENT' => 'winbinder/winbinder.php', + 'WBC_VERSION' => 'winbinder/winbinder.php', + 'WBC_VISIBLE' => 'winbinder/winbinder.php', + 'WBC_WARNING' => 'winbinder/winbinder.php', + 'WBC_YESNO' => 'winbinder/winbinder.php', + 'WBC_YESNOCANCEL' => 'winbinder/winbinder.php', + 'WCONTINUED' => 'pcntl/pcntl.php', + 'WEBSOCKET_CLOSE_ABNORMAL' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_DATA_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_EXTENSION_MISSING' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_GOING_AWAY' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_MESSAGE_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_MESSAGE_TOO_BIG' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_NORMAL' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_POLICY_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_PROTOCOL_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_SERVER_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_STATUS_ERROR' => 'swoole/constants.php', + 'WEBSOCKET_CLOSE_TLS' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_BINARY' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_CLOSE' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_CONTINUATION' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_PING' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_PONG' => 'swoole/constants.php', + 'WEBSOCKET_OPCODE_TEXT' => 'swoole/constants.php', + 'WEBSOCKET_STATUS_ACTIVE' => 'swoole/constants.php', + 'WEBSOCKET_STATUS_CLOSING' => 'swoole/constants.php', + 'WEBSOCKET_STATUS_CONNECTION' => 'swoole/constants.php', + 'WEBSOCKET_STATUS_FRAME' => 'swoole/constants.php', + 'WEBSOCKET_STATUS_HANDSHAKE' => 'swoole/constants.php', + 'WHITE' => 'winbinder/winbinder.php', + 'WIN32_ABOVE_NORMAL_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_BELOW_NORMAL_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_ERROR_ACCESS_DENIED' => 'win32service/win32service.php', + 'WIN32_ERROR_CIRCULAR_DEPENDENCY' => 'win32service/win32service.php', + 'WIN32_ERROR_DATABASE_DOES_NOT_EXIST' => 'win32service/win32service.php', + 'WIN32_ERROR_DEPENDENT_SERVICES_RUNNING' => 'win32service/win32service.php', + 'WIN32_ERROR_DUPLICATE_SERVICE_NAME' => 'win32service/win32service.php', + 'WIN32_ERROR_FAILED_SERVICE_CONTROLLER_CONNECT' => 'win32service/win32service.php', + 'WIN32_ERROR_INSUFFICIENT_BUFFER' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_DATA' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_HANDLE' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_LEVEL' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_NAME' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_PARAMETER' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_SERVICE_ACCOUNT' => 'win32service/win32service.php', + 'WIN32_ERROR_INVALID_SERVICE_CONTROL' => 'win32service/win32service.php', + 'WIN32_ERROR_PATH_NOT_FOUND' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_ALREADY_RUNNING' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_CANNOT_ACCEPT_CTRL' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_DATABASE_LOCKED' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_DEPENDENCY_DELETED' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_DEPENDENCY_FAIL' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_DISABLED' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_DOES_NOT_EXIST' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_EXISTS' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_LOGON_FAILED' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_MARKED_FOR_DELETE' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_NOT_ACTIVE' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_NO_THREAD' => 'win32service/win32service.php', + 'WIN32_ERROR_SERVICE_REQUEST_TIMEOUT' => 'win32service/win32service.php', + 'WIN32_ERROR_SHUTDOWN_IN_PROGRESS' => 'win32service/win32service.php', + 'WIN32_HIGH_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_IDLE_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_NORMAL_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_NO_ERROR' => 'win32service/win32service.php', + 'WIN32_REALTIME_PRIORITY_CLASS' => 'win32service/win32service.php', + 'WIN32_SERVICE_ACCEPT_PAUSE_CONTINUE' => 'win32service/win32service.php', + 'WIN32_SERVICE_ACCEPT_PRESHUTDOWN' => 'win32service/win32service.php', + 'WIN32_SERVICE_ACCEPT_SHUTDOWN' => 'win32service/win32service.php', + 'WIN32_SERVICE_ACCEPT_STOP' => 'win32service/win32service.php', + 'WIN32_SERVICE_AUTO_START' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTINUE_PENDING' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_CONTINUE' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_INTERROGATE' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_PAUSE' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_PRESHUTDOWN' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_SHUTDOWN' => 'win32service/win32service.php', + 'WIN32_SERVICE_CONTROL_STOP' => 'win32service/win32service.php', + 'WIN32_SERVICE_DEMAND_START' => 'win32service/win32service.php', + 'WIN32_SERVICE_DISABLED' => 'win32service/win32service.php', + 'WIN32_SERVICE_ERROR_IGNORE' => 'win32service/win32service.php', + 'WIN32_SERVICE_ERROR_NORMAL' => 'win32service/win32service.php', + 'WIN32_SERVICE_INTERACTIVE_PROCESS' => 'win32service/win32service.php', + 'WIN32_SERVICE_PAUSED' => 'win32service/win32service.php', + 'WIN32_SERVICE_PAUSE_PENDING' => 'win32service/win32service.php', + 'WIN32_SERVICE_RUNNING' => 'win32service/win32service.php', + 'WIN32_SERVICE_RUNS_IN_SYSTEM_PROCESS' => 'win32service/win32service.php', + 'WIN32_SERVICE_START_PENDING' => 'win32service/win32service.php', + 'WIN32_SERVICE_STOPPED' => 'win32service/win32service.php', + 'WIN32_SERVICE_STOP_PENDING' => 'win32service/win32service.php', + 'WIN32_SERVICE_WIN32_OWN_PROCESS' => 'win32service/win32service.php', + 'WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE' => 'win32service/win32service.php', + 'WNOHANG' => 'pcntl/pcntl.php', + 'WSDL_CACHE_BOTH' => 'soap/soap.php', + 'WSDL_CACHE_DISK' => 'soap/soap.php', + 'WSDL_CACHE_MEMORY' => 'soap/soap.php', + 'WSDL_CACHE_NONE' => 'soap/soap.php', + 'WUNTRACED' => 'pcntl/pcntl.php', + 'X509_PURPOSE_ANY' => 'openssl/openssl.php', + 'X509_PURPOSE_CRL_SIGN' => 'openssl/openssl.php', + 'X509_PURPOSE_NS_SSL_SERVER' => 'openssl/openssl.php', + 'X509_PURPOSE_SMIME_ENCRYPT' => 'openssl/openssl.php', + 'X509_PURPOSE_SMIME_SIGN' => 'openssl/openssl.php', + 'X509_PURPOSE_SSL_CLIENT' => 'openssl/openssl.php', + 'X509_PURPOSE_SSL_SERVER' => 'openssl/openssl.php', + 'XDEBUG_CC_BRANCH_CHECK' => 'xdebug/xdebug.php', + 'XDEBUG_CC_DEAD_CODE' => 'xdebug/xdebug.php', + 'XDEBUG_CC_UNUSED' => 'xdebug/xdebug.php', + 'XDEBUG_FILTER_CODE_COVERAGE' => 'xdebug/xdebug.php', + 'XDEBUG_FILTER_NONE' => 'xdebug/xdebug.php', + 'XDEBUG_FILTER_STACK' => 'xdebug/xdebug.php', + 'XDEBUG_FILTER_TRACING' => 'xdebug/xdebug.php', + 'XDEBUG_NAMESPACE_BLACKLIST' => 'xdebug/xdebug.php', + 'XDEBUG_NAMESPACE_EXCLUDE' => 'xdebug/xdebug.php', + 'XDEBUG_NAMESPACE_INCLUDE' => 'xdebug/xdebug.php', + 'XDEBUG_NAMESPACE_WHITELIST' => 'xdebug/xdebug.php', + 'XDEBUG_PATH_BLACKLIST' => 'xdebug/xdebug.php', + 'XDEBUG_PATH_EXCLUDE' => 'xdebug/xdebug.php', + 'XDEBUG_PATH_INCLUDE' => 'xdebug/xdebug.php', + 'XDEBUG_PATH_WHITELIST' => 'xdebug/xdebug.php', + 'XDEBUG_STACK_NO_DESC' => 'xdebug/xdebug.php', + 'XDEBUG_TRACE_APPEND' => 'xdebug/xdebug.php', + 'XDEBUG_TRACE_COMPUTERIZED' => 'xdebug/xdebug.php', + 'XDEBUG_TRACE_HTML' => 'xdebug/xdebug.php', + 'XDEBUG_TRACE_NAKED_FILENAME' => 'xdebug/xdebug.php', + 'XDIFF_PATCH_IGNORESPACE' => 'xdiff/xdiff.php', + 'XDIFF_PATCH_NORMAL' => 'xdiff/xdiff.php', + 'XDIFF_PATCH_REVERSE' => 'xdiff/xdiff.php', + 'XHPROF_FLAGS_CPU' => 'xhprof/xhprof.php', + 'XHPROF_FLAGS_MEMORY' => 'xhprof/xhprof.php', + 'XHPROF_FLAGS_NO_BUILTINS' => 'xhprof/xhprof.php', + 'XML_ATTRIBUTE_CDATA' => 'dom/dom.php', + 'XML_ATTRIBUTE_DECL_NODE' => 'dom/dom.php', + 'XML_ATTRIBUTE_ENTITY' => 'dom/dom.php', + 'XML_ATTRIBUTE_ENUMERATION' => 'dom/dom.php', + 'XML_ATTRIBUTE_ID' => 'dom/dom.php', + 'XML_ATTRIBUTE_IDREF' => 'dom/dom.php', + 'XML_ATTRIBUTE_IDREFS' => 'dom/dom.php', + 'XML_ATTRIBUTE_NMTOKEN' => 'dom/dom.php', + 'XML_ATTRIBUTE_NMTOKENS' => 'dom/dom.php', + 'XML_ATTRIBUTE_NODE' => 'dom/dom.php', + 'XML_ATTRIBUTE_NOTATION' => 'dom/dom.php', + 'XML_CDATA_SECTION_NODE' => 'dom/dom.php', + 'XML_COMMENT_NODE' => 'dom/dom.php', + 'XML_DOCUMENT_FRAG_NODE' => 'dom/dom.php', + 'XML_DOCUMENT_NODE' => 'dom/dom.php', + 'XML_DOCUMENT_TYPE_NODE' => 'dom/dom.php', + 'XML_DTD_NODE' => 'dom/dom.php', + 'XML_ELEMENT_DECL_NODE' => 'dom/dom.php', + 'XML_ELEMENT_NODE' => 'dom/dom.php', + 'XML_ENTITY_DECL_NODE' => 'dom/dom.php', + 'XML_ENTITY_NODE' => 'dom/dom.php', + 'XML_ENTITY_REF_NODE' => 'dom/dom.php', + 'XML_ERROR_ASYNC_ENTITY' => 'xml/xml.php', + 'XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF' => 'xml/xml.php', + 'XML_ERROR_BAD_CHAR_REF' => 'xml/xml.php', + 'XML_ERROR_BINARY_ENTITY_REF' => 'xml/xml.php', + 'XML_ERROR_DUPLICATE_ATTRIBUTE' => 'xml/xml.php', + 'XML_ERROR_EXTERNAL_ENTITY_HANDLING' => 'xml/xml.php', + 'XML_ERROR_INCORRECT_ENCODING' => 'xml/xml.php', + 'XML_ERROR_INVALID_TOKEN' => 'xml/xml.php', + 'XML_ERROR_JUNK_AFTER_DOC_ELEMENT' => 'xml/xml.php', + 'XML_ERROR_MISPLACED_XML_PI' => 'xml/xml.php', + 'XML_ERROR_NONE' => 'xml/xml.php', + 'XML_ERROR_NO_ELEMENTS' => 'xml/xml.php', + 'XML_ERROR_NO_MEMORY' => 'xml/xml.php', + 'XML_ERROR_PARAM_ENTITY_REF' => 'xml/xml.php', + 'XML_ERROR_PARTIAL_CHAR' => 'xml/xml.php', + 'XML_ERROR_RECURSIVE_ENTITY_REF' => 'xml/xml.php', + 'XML_ERROR_SYNTAX' => 'xml/xml.php', + 'XML_ERROR_TAG_MISMATCH' => 'xml/xml.php', + 'XML_ERROR_UNCLOSED_CDATA_SECTION' => 'xml/xml.php', + 'XML_ERROR_UNCLOSED_TOKEN' => 'xml/xml.php', + 'XML_ERROR_UNDEFINED_ENTITY' => 'xml/xml.php', + 'XML_ERROR_UNKNOWN_ENCODING' => 'xml/xml.php', + 'XML_HTML_DOCUMENT_NODE' => 'dom/dom.php', + 'XML_LOCAL_NAMESPACE' => 'dom/dom.php', + 'XML_NAMESPACE_DECL_NODE' => 'dom/dom.php', + 'XML_NOTATION_NODE' => 'dom/dom.php', + 'XML_OPTION_CASE_FOLDING' => 'xml/xml.php', + 'XML_OPTION_SKIP_TAGSTART' => 'xml/xml.php', + 'XML_OPTION_SKIP_WHITE' => 'xml/xml.php', + 'XML_OPTION_TARGET_ENCODING' => 'xml/xml.php', + 'XML_PI_NODE' => 'dom/dom.php', + 'XML_SAX_IMPL' => 'xml/xml.php', + 'XML_TEXT_NODE' => 'dom/dom.php', + 'XSD_1999_NAMESPACE' => 'soap/soap.php', + 'XSD_1999_TIMEINSTANT' => 'soap/soap.php', + 'XSD_ANYTYPE' => 'soap/soap.php', + 'XSD_ANYURI' => 'soap/soap.php', + 'XSD_ANYXML' => 'soap/soap.php', + 'XSD_BASE64BINARY' => 'soap/soap.php', + 'XSD_BOOLEAN' => 'soap/soap.php', + 'XSD_BYTE' => 'soap/soap.php', + 'XSD_DATE' => 'soap/soap.php', + 'XSD_DATETIME' => 'soap/soap.php', + 'XSD_DECIMAL' => 'soap/soap.php', + 'XSD_DOUBLE' => 'soap/soap.php', + 'XSD_DURATION' => 'soap/soap.php', + 'XSD_ENTITIES' => 'soap/soap.php', + 'XSD_ENTITY' => 'soap/soap.php', + 'XSD_FLOAT' => 'soap/soap.php', + 'XSD_GDAY' => 'soap/soap.php', + 'XSD_GMONTH' => 'soap/soap.php', + 'XSD_GMONTHDAY' => 'soap/soap.php', + 'XSD_GYEAR' => 'soap/soap.php', + 'XSD_GYEARMONTH' => 'soap/soap.php', + 'XSD_HEXBINARY' => 'soap/soap.php', + 'XSD_ID' => 'soap/soap.php', + 'XSD_IDREF' => 'soap/soap.php', + 'XSD_IDREFS' => 'soap/soap.php', + 'XSD_INT' => 'soap/soap.php', + 'XSD_INTEGER' => 'soap/soap.php', + 'XSD_LANGUAGE' => 'soap/soap.php', + 'XSD_LONG' => 'soap/soap.php', + 'XSD_NAME' => 'soap/soap.php', + 'XSD_NAMESPACE' => 'soap/soap.php', + 'XSD_NCNAME' => 'soap/soap.php', + 'XSD_NEGATIVEINTEGER' => 'soap/soap.php', + 'XSD_NMTOKEN' => 'soap/soap.php', + 'XSD_NMTOKENS' => 'soap/soap.php', + 'XSD_NONNEGATIVEINTEGER' => 'soap/soap.php', + 'XSD_NONPOSITIVEINTEGER' => 'soap/soap.php', + 'XSD_NORMALIZEDSTRING' => 'soap/soap.php', + 'XSD_NOTATION' => 'soap/soap.php', + 'XSD_POSITIVEINTEGER' => 'soap/soap.php', + 'XSD_QNAME' => 'soap/soap.php', + 'XSD_SHORT' => 'soap/soap.php', + 'XSD_STRING' => 'soap/soap.php', + 'XSD_TIME' => 'soap/soap.php', + 'XSD_TOKEN' => 'soap/soap.php', + 'XSD_UNSIGNEDBYTE' => 'soap/soap.php', + 'XSD_UNSIGNEDINT' => 'soap/soap.php', + 'XSD_UNSIGNEDLONG' => 'soap/soap.php', + 'XSD_UNSIGNEDSHORT' => 'soap/soap.php', + 'XSL_CLONE_ALWAYS' => 'xsl/xsl.php', + 'XSL_CLONE_AUTO' => 'xsl/xsl.php', + 'XSL_CLONE_NEVER' => 'xsl/xsl.php', + 'XSL_SECPREF_CREATE_DIRECTORY' => 'xsl/xsl.php', + 'XSL_SECPREF_DEFAULT' => 'xsl/xsl.php', + 'XSL_SECPREF_NONE' => 'xsl/xsl.php', + 'XSL_SECPREF_READ_FILE' => 'xsl/xsl.php', + 'XSL_SECPREF_READ_NETWORK' => 'xsl/xsl.php', + 'XSL_SECPREF_WRITE_FILE' => 'xsl/xsl.php', + 'XSL_SECPREF_WRITE_NETWORK' => 'xsl/xsl.php', + 'YAF\\ENVIRON' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\AUTOLOAD\\FAILED' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\CALL\\FAILED' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\DISPATCH\\FAILED' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\NOTFOUND\\ACTION' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\NOTFOUND\\CONTROLLER' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\NOTFOUND\\MODULE' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\NOTFOUND\\VIEW' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\ROUTE\\FAILED' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\STARTUP\\FAILED' => 'yaf/yaf_namespace.php', + 'YAF\\ERR\\TYPE\\ERROR' => 'yaf/yaf_namespace.php', + 'YAF\\VERSION' => 'yaf/yaf_namespace.php', + 'YAF_ENVIRON' => 'yaf/yaf.php', + 'YAF_ERR_ACCESS_ERROR' => 'yaf/yaf.php', + 'YAF_ERR_AUTOLOAD_FAILED' => 'yaf/yaf.php', + 'YAF_ERR_CALL_FAILED' => 'yaf/yaf.php', + 'YAF_ERR_DISPATCH_FAILED' => 'yaf/yaf.php', + 'YAF_ERR_NOTFOUND_ACTION' => 'yaf/yaf.php', + 'YAF_ERR_NOTFOUND_CONTROLLER' => 'yaf/yaf.php', + 'YAF_ERR_NOTFOUND_MODULE' => 'yaf/yaf.php', + 'YAF_ERR_NOTFOUND_VIEW' => 'yaf/yaf.php', + 'YAF_ERR_ROUTE_FAILED' => 'yaf/yaf.php', + 'YAF_ERR_STARTUP_FAILED' => 'yaf/yaf.php', + 'YAF_ERR_TYPE_ERROR' => 'yaf/yaf.php', + 'YAF_VERSION' => 'yaf/yaf.php', + 'YAML_ANY_BREAK' => 'yaml/yaml.php', + 'YAML_ANY_ENCODING' => 'yaml/yaml.php', + 'YAML_ANY_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_BINARY_TAG' => 'yaml/yaml.php', + 'YAML_BOOL_TAG' => 'yaml/yaml.php', + 'YAML_CRLN_BREAK' => 'yaml/yaml.php', + 'YAML_CR_BREAK' => 'yaml/yaml.php', + 'YAML_DOUBLE_QUOTED_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_FLOAT_TAG' => 'yaml/yaml.php', + 'YAML_FOLDED_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_INT_TAG' => 'yaml/yaml.php', + 'YAML_LITERAL_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_LN_BREAK' => 'yaml/yaml.php', + 'YAML_MAP_TAG' => 'yaml/yaml.php', + 'YAML_MERGE_TAG' => 'yaml/yaml.php', + 'YAML_NULL_TAG' => 'yaml/yaml.php', + 'YAML_PHP_TAG' => 'yaml/yaml.php', + 'YAML_PLAIN_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_SEQ_TAG' => 'yaml/yaml.php', + 'YAML_SINGLE_QUOTED_SCALAR_STYLE' => 'yaml/yaml.php', + 'YAML_STR_TAG' => 'yaml/yaml.php', + 'YAML_TIMESTAMP_TAG' => 'yaml/yaml.php', + 'YAML_UTF16BE_ENCODING' => 'yaml/yaml.php', + 'YAML_UTF16LE_ENCODING' => 'yaml/yaml.php', + 'YAML_UTF8_ENCODING' => 'yaml/yaml.php', + 'YAR_CLIENT_PROTOCOL_HTTP' => 'yar/yar.php', + 'YAR_CLIENT_PROTOCOL_TCP' => 'yar/yar.php', + 'YAR_CLIENT_PROTOCOL_UNIX' => 'yar/yar.php', + 'YAR_ERR_EXCEPTION' => 'yar/yar.php', + 'YAR_ERR_OKEY' => 'yar/yar.php', + 'YAR_ERR_OUTPUT' => 'yar/yar.php', + 'YAR_ERR_PACKAGER' => 'yar/yar.php', + 'YAR_ERR_PROTOCOL' => 'yar/yar.php', + 'YAR_ERR_REQUEST' => 'yar/yar.php', + 'YAR_ERR_TRANSPORT' => 'yar/yar.php', + 'YAR_OPT_CONNECT_TIMEOUT' => 'yar/yar.php', + 'YAR_OPT_HEADER' => 'yar/yar.php', + 'YAR_OPT_PACKAGER' => 'yar/yar.php', + 'YAR_OPT_PERSISTENT' => 'yar/yar.php', + 'YAR_OPT_RESOLVE' => 'yar/yar.php', + 'YAR_OPT_TIMEOUT' => 'yar/yar.php', + 'YAR_PACKAGER_JSON' => 'yar/yar.php', + 'YAR_PACKAGER_PHP' => 'yar/yar.php', + 'YAR_VERSION' => 'yar/yar.php', + 'YELLOW' => 'winbinder/winbinder.php', + 'YESEXPR' => 'standard/standard_defines.php', + 'YESSTR' => 'standard/standard_defines.php', + 'ZEND_ACC_ABSTRACT' => 'uopz/uopz.php', + 'ZEND_ACC_FETCH' => 'uopz/uopz.php', + 'ZEND_ACC_FINAL' => 'uopz/uopz.php', + 'ZEND_ACC_PPP_MASK' => 'uopz/uopz.php', + 'ZEND_ACC_PRIVATE' => 'uopz/uopz.php', + 'ZEND_ACC_PROTECTED' => 'uopz/uopz.php', + 'ZEND_ACC_PUBLIC' => 'uopz/uopz.php', + 'ZEND_ACC_STATIC' => 'uopz/uopz.php', + 'ZEND_DEBUG_BUILD' => 'Core/Core_d.php', + 'ZEND_MULTIBYTE' => 'Core/Core_d.php', + 'ZEND_THREAD_SAFE' => 'Core/Core_d.php', + 'ZLIB_BLOCK' => 'zlib/zlib.php', + 'ZLIB_BUF_ERROR' => 'zlib/zlib.php', + 'ZLIB_DATA_ERROR' => 'zlib/zlib.php', + 'ZLIB_DEFAULT_STRATEGY' => 'zlib/zlib.php', + 'ZLIB_ENCODING_DEFLATE' => 'zlib/zlib.php', + 'ZLIB_ENCODING_GZIP' => 'zlib/zlib.php', + 'ZLIB_ENCODING_RAW' => 'zlib/zlib.php', + 'ZLIB_ERRNO' => 'zlib/zlib.php', + 'ZLIB_FILTERED' => 'zlib/zlib.php', + 'ZLIB_FINISH' => 'zlib/zlib.php', + 'ZLIB_FIXED' => 'zlib/zlib.php', + 'ZLIB_FULL_FLUSH' => 'zlib/zlib.php', + 'ZLIB_HUFFMAN_ONLY' => 'zlib/zlib.php', + 'ZLIB_MEM_ERROR' => 'zlib/zlib.php', + 'ZLIB_NEED_DICT' => 'zlib/zlib.php', + 'ZLIB_NO_FLUSH' => 'zlib/zlib.php', + 'ZLIB_OK' => 'zlib/zlib.php', + 'ZLIB_PARTIAL_FLUSH' => 'zlib/zlib.php', + 'ZLIB_RLE' => 'zlib/zlib.php', + 'ZLIB_STREAM_END' => 'zlib/zlib.php', + 'ZLIB_STREAM_ERROR' => 'zlib/zlib.php', + 'ZLIB_SYNC_FLUSH' => 'zlib/zlib.php', + 'ZLIB_VERNUM' => 'zlib/zlib.php', + 'ZLIB_VERSION' => 'zlib/zlib.php', + 'ZLIB_VERSION_ERROR' => 'zlib/zlib.php', + 'ZSTD_COMPRESS_LEVEL_DEFAULT' => 'zstd/zstd.php', + 'ZSTD_COMPRESS_LEVEL_MAX' => 'zstd/zstd.php', + 'ZSTD_COMPRESS_LEVEL_MIN' => 'zstd/zstd.php', + '__CLASS__' => 'standard/basic.php', + '__COMPILER_HALT_OFFSET__' => 'standard/_standard_manual.php', + '__DIR__' => 'standard/basic.php', + '__FILE__' => 'standard/basic.php', + '__FUNCTION__' => 'standard/basic.php', + '__LINE__' => 'standard/basic.php', + '__METHOD__' => 'standard/basic.php', + '__NAMESPACE__' => 'standard/basic.php', + '__TRAIT__' => 'standard/basic.php', + '__class__' => 'standard/basic.php', + '__dir__' => 'standard/basic.php', + '__file__' => 'standard/basic.php', + '__function__' => 'standard/basic.php', + '__line__' => 'standard/basic.php', + '__method__' => 'standard/basic.php', + '__namespace__' => 'standard/basic.php', + '__trait__' => 'standard/basic.php', + 'ast\\AST_ARG_LIST' => 'ast/ast.php', + 'ast\\AST_ARRAY' => 'ast/ast.php', + 'ast\\AST_ARRAY_ELEM' => 'ast/ast.php', + 'ast\\AST_ARROW_FUNC' => 'ast/ast.php', + 'ast\\AST_ASSIGN' => 'ast/ast.php', + 'ast\\AST_ASSIGN_OP' => 'ast/ast.php', + 'ast\\AST_ASSIGN_REF' => 'ast/ast.php', + 'ast\\AST_ATTRIBUTE' => 'ast/ast.php', + 'ast\\AST_ATTRIBUTE_GROUP' => 'ast/ast.php', + 'ast\\AST_ATTRIBUTE_LIST' => 'ast/ast.php', + 'ast\\AST_BINARY_OP' => 'ast/ast.php', + 'ast\\AST_BREAK' => 'ast/ast.php', + 'ast\\AST_CALL' => 'ast/ast.php', + 'ast\\AST_CAST' => 'ast/ast.php', + 'ast\\AST_CATCH' => 'ast/ast.php', + 'ast\\AST_CATCH_LIST' => 'ast/ast.php', + 'ast\\AST_CLASS' => 'ast/ast.php', + 'ast\\AST_CLASS_CONST' => 'ast/ast.php', + 'ast\\AST_CLASS_CONST_DECL' => 'ast/ast.php', + 'ast\\AST_CLASS_CONST_GROUP' => 'ast/ast.php', + 'ast\\AST_CLASS_NAME' => 'ast/ast.php', + 'ast\\AST_CLONE' => 'ast/ast.php', + 'ast\\AST_CLOSURE' => 'ast/ast.php', + 'ast\\AST_CLOSURE_USES' => 'ast/ast.php', + 'ast\\AST_CLOSURE_VAR' => 'ast/ast.php', + 'ast\\AST_CONDITIONAL' => 'ast/ast.php', + 'ast\\AST_CONST' => 'ast/ast.php', + 'ast\\AST_CONST_DECL' => 'ast/ast.php', + 'ast\\AST_CONST_ELEM' => 'ast/ast.php', + 'ast\\AST_CONTINUE' => 'ast/ast.php', + 'ast\\AST_DECLARE' => 'ast/ast.php', + 'ast\\AST_DIM' => 'ast/ast.php', + 'ast\\AST_DO_WHILE' => 'ast/ast.php', + 'ast\\AST_ECHO' => 'ast/ast.php', + 'ast\\AST_EMPTY' => 'ast/ast.php', + 'ast\\AST_ENCAPS_LIST' => 'ast/ast.php', + 'ast\\AST_EXIT' => 'ast/ast.php', + 'ast\\AST_EXPR_LIST' => 'ast/ast.php', + 'ast\\AST_FOR' => 'ast/ast.php', + 'ast\\AST_FOREACH' => 'ast/ast.php', + 'ast\\AST_FUNC_DECL' => 'ast/ast.php', + 'ast\\AST_GLOBAL' => 'ast/ast.php', + 'ast\\AST_GOTO' => 'ast/ast.php', + 'ast\\AST_GROUP_USE' => 'ast/ast.php', + 'ast\\AST_HALT_COMPILER' => 'ast/ast.php', + 'ast\\AST_IF' => 'ast/ast.php', + 'ast\\AST_IF_ELEM' => 'ast/ast.php', + 'ast\\AST_INCLUDE_OR_EVAL' => 'ast/ast.php', + 'ast\\AST_INSTANCEOF' => 'ast/ast.php', + 'ast\\AST_ISSET' => 'ast/ast.php', + 'ast\\AST_LABEL' => 'ast/ast.php', + 'ast\\AST_LIST' => 'ast/ast.php', + 'ast\\AST_MAGIC_CONST' => 'ast/ast.php', + 'ast\\AST_MATCH' => 'ast/ast.php', + 'ast\\AST_MATCH_ARM' => 'ast/ast.php', + 'ast\\AST_MATCH_ARM_LIST' => 'ast/ast.php', + 'ast\\AST_METHOD' => 'ast/ast.php', + 'ast\\AST_METHOD_CALL' => 'ast/ast.php', + 'ast\\AST_METHOD_REFERENCE' => 'ast/ast.php', + 'ast\\AST_NAME' => 'ast/ast.php', + 'ast\\AST_NAMED_ARG' => 'ast/ast.php', + 'ast\\AST_NAMESPACE' => 'ast/ast.php', + 'ast\\AST_NAME_LIST' => 'ast/ast.php', + 'ast\\AST_NEW' => 'ast/ast.php', + 'ast\\AST_NULLABLE_TYPE' => 'ast/ast.php', + 'ast\\AST_NULLSAFE_METHOD_CALL' => 'ast/ast.php', + 'ast\\AST_NULLSAFE_PROP' => 'ast/ast.php', + 'ast\\AST_PARAM' => 'ast/ast.php', + 'ast\\AST_PARAM_LIST' => 'ast/ast.php', + 'ast\\AST_POST_DEC' => 'ast/ast.php', + 'ast\\AST_POST_INC' => 'ast/ast.php', + 'ast\\AST_PRE_DEC' => 'ast/ast.php', + 'ast\\AST_PRE_INC' => 'ast/ast.php', + 'ast\\AST_PRINT' => 'ast/ast.php', + 'ast\\AST_PROP' => 'ast/ast.php', + 'ast\\AST_PROP_DECL' => 'ast/ast.php', + 'ast\\AST_PROP_ELEM' => 'ast/ast.php', + 'ast\\AST_PROP_GROUP' => 'ast/ast.php', + 'ast\\AST_REF' => 'ast/ast.php', + 'ast\\AST_RETURN' => 'ast/ast.php', + 'ast\\AST_SHELL_EXEC' => 'ast/ast.php', + 'ast\\AST_STATIC' => 'ast/ast.php', + 'ast\\AST_STATIC_CALL' => 'ast/ast.php', + 'ast\\AST_STATIC_PROP' => 'ast/ast.php', + 'ast\\AST_STMT_LIST' => 'ast/ast.php', + 'ast\\AST_SWITCH' => 'ast/ast.php', + 'ast\\AST_SWITCH_CASE' => 'ast/ast.php', + 'ast\\AST_SWITCH_LIST' => 'ast/ast.php', + 'ast\\AST_THROW' => 'ast/ast.php', + 'ast\\AST_TRAIT_ADAPTATIONS' => 'ast/ast.php', + 'ast\\AST_TRAIT_ALIAS' => 'ast/ast.php', + 'ast\\AST_TRAIT_PRECEDENCE' => 'ast/ast.php', + 'ast\\AST_TRY' => 'ast/ast.php', + 'ast\\AST_TYPE' => 'ast/ast.php', + 'ast\\AST_TYPE_UNION' => 'ast/ast.php', + 'ast\\AST_UNARY_OP' => 'ast/ast.php', + 'ast\\AST_UNPACK' => 'ast/ast.php', + 'ast\\AST_UNSET' => 'ast/ast.php', + 'ast\\AST_USE' => 'ast/ast.php', + 'ast\\AST_USE_ELEM' => 'ast/ast.php', + 'ast\\AST_USE_TRAIT' => 'ast/ast.php', + 'ast\\AST_VAR' => 'ast/ast.php', + 'ast\\AST_WHILE' => 'ast/ast.php', + 'ast\\AST_YIELD' => 'ast/ast.php', + 'ast\\AST_YIELD_FROM' => 'ast/ast.php', + 'ast\\flags\\ARRAY_ELEM_REF' => 'ast/ast.php', + 'ast\\flags\\ARRAY_SYNTAX_LIST' => 'ast/ast.php', + 'ast\\flags\\ARRAY_SYNTAX_LONG' => 'ast/ast.php', + 'ast\\flags\\ARRAY_SYNTAX_SHORT' => 'ast/ast.php', + 'ast\\flags\\BINARY_ADD' => 'ast/ast.php', + 'ast\\flags\\BINARY_BITWISE_AND' => 'ast/ast.php', + 'ast\\flags\\BINARY_BITWISE_OR' => 'ast/ast.php', + 'ast\\flags\\BINARY_BITWISE_XOR' => 'ast/ast.php', + 'ast\\flags\\BINARY_BOOL_AND' => 'ast/ast.php', + 'ast\\flags\\BINARY_BOOL_OR' => 'ast/ast.php', + 'ast\\flags\\BINARY_BOOL_XOR' => 'ast/ast.php', + 'ast\\flags\\BINARY_COALESCE' => 'ast/ast.php', + 'ast\\flags\\BINARY_CONCAT' => 'ast/ast.php', + 'ast\\flags\\BINARY_DIV' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_EQUAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_GREATER' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_GREATER_OR_EQUAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_IDENTICAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_NOT_EQUAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_NOT_IDENTICAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_SMALLER' => 'ast/ast.php', + 'ast\\flags\\BINARY_IS_SMALLER_OR_EQUAL' => 'ast/ast.php', + 'ast\\flags\\BINARY_MOD' => 'ast/ast.php', + 'ast\\flags\\BINARY_MUL' => 'ast/ast.php', + 'ast\\flags\\BINARY_POW' => 'ast/ast.php', + 'ast\\flags\\BINARY_SHIFT_LEFT' => 'ast/ast.php', + 'ast\\flags\\BINARY_SHIFT_RIGHT' => 'ast/ast.php', + 'ast\\flags\\BINARY_SPACESHIP' => 'ast/ast.php', + 'ast\\flags\\BINARY_SUB' => 'ast/ast.php', + 'ast\\flags\\CLASS_ABSTRACT' => 'ast/ast.php', + 'ast\\flags\\CLASS_ANONYMOUS' => 'ast/ast.php', + 'ast\\flags\\CLASS_FINAL' => 'ast/ast.php', + 'ast\\flags\\CLASS_INTERFACE' => 'ast/ast.php', + 'ast\\flags\\CLASS_TRAIT' => 'ast/ast.php', + 'ast\\flags\\CLOSURE_USE_REF' => 'ast/ast.php', + 'ast\\flags\\DIM_ALTERNATIVE_SYNTAX' => 'ast/ast.php', + 'ast\\flags\\EXEC_EVAL' => 'ast/ast.php', + 'ast\\flags\\EXEC_INCLUDE' => 'ast/ast.php', + 'ast\\flags\\EXEC_INCLUDE_ONCE' => 'ast/ast.php', + 'ast\\flags\\EXEC_REQUIRE' => 'ast/ast.php', + 'ast\\flags\\EXEC_REQUIRE_ONCE' => 'ast/ast.php', + 'ast\\flags\\FUNC_GENERATOR' => 'ast/ast.php', + 'ast\\flags\\FUNC_RETURNS_REF' => 'ast/ast.php', + 'ast\\flags\\MAGIC_CLASS' => 'ast/ast.php', + 'ast\\flags\\MAGIC_DIR' => 'ast/ast.php', + 'ast\\flags\\MAGIC_FILE' => 'ast/ast.php', + 'ast\\flags\\MAGIC_FUNCTION' => 'ast/ast.php', + 'ast\\flags\\MAGIC_LINE' => 'ast/ast.php', + 'ast\\flags\\MAGIC_METHOD' => 'ast/ast.php', + 'ast\\flags\\MAGIC_NAMESPACE' => 'ast/ast.php', + 'ast\\flags\\MAGIC_TRAIT' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_ABSTRACT' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_FINAL' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_PRIVATE' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_PROTECTED' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_PUBLIC' => 'ast/ast.php', + 'ast\\flags\\MODIFIER_STATIC' => 'ast/ast.php', + 'ast\\flags\\NAME_FQ' => 'ast/ast.php', + 'ast\\flags\\NAME_NOT_FQ' => 'ast/ast.php', + 'ast\\flags\\NAME_RELATIVE' => 'ast/ast.php', + 'ast\\flags\\PARAM_MODIFIER_PRIVATE' => 'ast/ast.php', + 'ast\\flags\\PARAM_MODIFIER_PROTECTED' => 'ast/ast.php', + 'ast\\flags\\PARAM_MODIFIER_PUBLIC' => 'ast/ast.php', + 'ast\\flags\\PARAM_REF' => 'ast/ast.php', + 'ast\\flags\\PARAM_VARIADIC' => 'ast/ast.php', + 'ast\\flags\\PARENTHESIZED_CONDITIONAL' => 'ast/ast.php', + 'ast\\flags\\RETURNS_REF' => 'ast/ast.php', + 'ast\\flags\\TYPE_ARRAY' => 'ast/ast.php', + 'ast\\flags\\TYPE_BOOL' => 'ast/ast.php', + 'ast\\flags\\TYPE_CALLABLE' => 'ast/ast.php', + 'ast\\flags\\TYPE_DOUBLE' => 'ast/ast.php', + 'ast\\flags\\TYPE_FALSE' => 'ast/ast.php', + 'ast\\flags\\TYPE_ITERABLE' => 'ast/ast.php', + 'ast\\flags\\TYPE_LONG' => 'ast/ast.php', + 'ast\\flags\\TYPE_MIXED' => 'ast/ast.php', + 'ast\\flags\\TYPE_NULL' => 'ast/ast.php', + 'ast\\flags\\TYPE_OBJECT' => 'ast/ast.php', + 'ast\\flags\\TYPE_STATIC' => 'ast/ast.php', + 'ast\\flags\\TYPE_STRING' => 'ast/ast.php', + 'ast\\flags\\TYPE_VOID' => 'ast/ast.php', + 'ast\\flags\\UNARY_BITWISE_NOT' => 'ast/ast.php', + 'ast\\flags\\UNARY_BOOL_NOT' => 'ast/ast.php', + 'ast\\flags\\UNARY_MINUS' => 'ast/ast.php', + 'ast\\flags\\UNARY_PLUS' => 'ast/ast.php', + 'ast\\flags\\UNARY_SILENCE' => 'ast/ast.php', + 'ast\\flags\\USE_CONST' => 'ast/ast.php', + 'ast\\flags\\USE_FUNCTION' => 'ast/ast.php', + 'ast\\flags\\USE_NORMAL' => 'ast/ast.php', + 'bgrBLACK' => 'winbinder/winbinder.php', + 'bgrBLUE' => 'winbinder/winbinder.php', + 'bgrCYAN' => 'winbinder/winbinder.php', + 'bgrDARKBLUE' => 'winbinder/winbinder.php', + 'bgrDARKCYAN' => 'winbinder/winbinder.php', + 'bgrDARKGRAY' => 'winbinder/winbinder.php', + 'bgrDARKGREEN' => 'winbinder/winbinder.php', + 'bgrDARKMAGENTA' => 'winbinder/winbinder.php', + 'bgrDARKRED' => 'winbinder/winbinder.php', + 'bgrDARKYELLOW' => 'winbinder/winbinder.php', + 'bgrGREEN' => 'winbinder/winbinder.php', + 'bgrLIGHTGRAY' => 'winbinder/winbinder.php', + 'bgrMAGENTA' => 'winbinder/winbinder.php', + 'bgrNOCOLOR' => 'winbinder/winbinder.php', + 'bgrRED' => 'winbinder/winbinder.php', + 'bgrWHITE' => 'winbinder/winbinder.php', + 'bgrYELLOW' => 'winbinder/winbinder.php', + 'false' => 'Core/Core_d.php', + 'http\\Client\\Curl\\AUTH_ANY' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_BASIC' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_DIGEST' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_DIGEST_IE' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_GSSNEG' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_NTLM' => 'http/http3.php', + 'http\\Client\\Curl\\AUTH_SPNEGO' => 'http/http3.php', + 'http\\Client\\Curl\\FEATURES' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\ASYNCHDNS' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\GSSAPI' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\GSSNEGOTIATE' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\HTTP2' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\IDN' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\IPV6' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\KERBEROS4' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\KERBEROS5' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\LARGEFILE' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\LIBZ' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\NTLM' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\NTLM_WB' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\PSL' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\SPNEGO' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\SSL' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\SSPI' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\TLSAUTH_SRP' => 'http/http3.php', + 'http\\Client\\Curl\\Features\\UNIX_SOCKETS' => 'http/http3.php', + 'http\\Client\\Curl\\HTTP_VERSION_1_0' => 'http/http3.php', + 'http\\Client\\Curl\\HTTP_VERSION_1_1' => 'http/http3.php', + 'http\\Client\\Curl\\HTTP_VERSION_2TLS' => 'http/http3.php', + 'http\\Client\\Curl\\HTTP_VERSION_2_0' => 'http/http3.php', + 'http\\Client\\Curl\\HTTP_VERSION_ANY' => 'http/http3.php', + 'http\\Client\\Curl\\IPRESOLVE_ANY' => 'http/http3.php', + 'http\\Client\\Curl\\IPRESOLVE_V4' => 'http/http3.php', + 'http\\Client\\Curl\\IPRESOLVE_V6' => 'http/http3.php', + 'http\\Client\\Curl\\POSTREDIR_301' => 'http/http3.php', + 'http\\Client\\Curl\\POSTREDIR_302' => 'http/http3.php', + 'http\\Client\\Curl\\POSTREDIR_303' => 'http/http3.php', + 'http\\Client\\Curl\\POSTREDIR_ALL' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_HTTP' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_HTTP_1_0' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_SOCKS4' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_SOCKS4A' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_SOCKS5' => 'http/http3.php', + 'http\\Client\\Curl\\PROXY_SOCKS5_HOSTNAME' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_ANY' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_SSLv2' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_SSLv3' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_TLSv1' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_TLSv1_0' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_TLSv1_1' => 'http/http3.php', + 'http\\Client\\Curl\\SSL_VERSION_TLSv1_2' => 'http/http3.php', + 'http\\Client\\Curl\\TLSAUTH_SRP' => 'http/http3.php', + 'http\\Client\\Curl\\VERSIONS' => 'http/http3.php', + 'http\\Client\\Curl\\Versions\\ARES' => 'http/http3.php', + 'http\\Client\\Curl\\Versions\\CURL' => 'http/http3.php', + 'http\\Client\\Curl\\Versions\\IDN' => 'http/http3.php', + 'http\\Client\\Curl\\Versions\\LIBZ' => 'http/http3.php', + 'http\\Client\\Curl\\Versions\\SSL' => 'http/http3.php', + 'null' => 'Core/Core_d.php', + 'pcov\\all' => 'pcov/pcov.php', + 'pcov\\exclusive' => 'pcov/pcov.php', + 'pcov\\inclusive' => 'pcov/pcov.php', + 'pcov\\version' => 'pcov/pcov.php', + 'true' => 'Core/Core_d.php', + 'yaf\\environ' => 'yaf/yaf_namespace.php', + 'yaf\\err\\autoload\\failed' => 'yaf/yaf_namespace.php', + 'yaf\\err\\call\\failed' => 'yaf/yaf_namespace.php', + 'yaf\\err\\dispatch\\failed' => 'yaf/yaf_namespace.php', + 'yaf\\err\\notfound\\action' => 'yaf/yaf_namespace.php', + 'yaf\\err\\notfound\\controller' => 'yaf/yaf_namespace.php', + 'yaf\\err\\notfound\\module' => 'yaf/yaf_namespace.php', + 'yaf\\err\\notfound\\view' => 'yaf/yaf_namespace.php', + 'yaf\\err\\route\\failed' => 'yaf/yaf_namespace.php', + 'yaf\\err\\startup\\failed' => 'yaf/yaf_namespace.php', + 'yaf\\err\\type\\error' => 'yaf/yaf_namespace.php', + 'yaf\\version' => 'yaf/yaf_namespace.php', + 'yaf_environ' => 'yaf/yaf.php', + 'yaf_err_autoload_failed' => 'yaf/yaf.php', + 'yaf_err_call_failed' => 'yaf/yaf.php', + 'yaf_err_dispatch_failed' => 'yaf/yaf.php', + 'yaf_err_notfound_action' => 'yaf/yaf.php', + 'yaf_err_notfound_controller' => 'yaf/yaf.php', + 'yaf_err_notfound_module' => 'yaf/yaf.php', + 'yaf_err_notfound_view' => 'yaf/yaf.php', + 'yaf_err_route_failed' => 'yaf/yaf.php', + 'yaf_err_startup_failed' => 'yaf/yaf.php', + 'yaf_err_type_error' => 'yaf/yaf.php', + 'yaf_version' => 'yaf/yaf.php', +); +} \ No newline at end of file diff --git a/phpstorm-stubs/README.md b/phpstorm-stubs/README.md new file mode 100644 index 0000000..6aaed5d --- /dev/null +++ b/phpstorm-stubs/README.md @@ -0,0 +1,47 @@ +# phpstorm-stubs + +[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub) +[](https://www.apache.org/licenses/LICENSE-2.0.html) +[](https://packagist.org/packages/jetbrains/phpstorm-stubs) + +[](https://github.com/JetBrains/phpstorm-stubs/actions/workflows/main.yml) +[](https://github.com/JetBrains/phpstorm-stubs/actions/workflows/testPeclExtensions.yml) +[](https://github.com/JetBrains/phpstorm-stubs/actions/workflows/testLinks.yml) + +STUBS are normal, syntactically correct PHP files that contain function & class signatures, constant definitions, etc. for all built-in PHP stuff and most standard extensions. Stubs need to include complete [PHPDOC], especially proper @return annotations. + +An IDE needs them for completion, code inspection, type inference, doc popups, etc. Quality of most of these services depend on the quality of the stubs (basically their PHPDOC @annotations). + +Note that the stubs for “non-standard” extensions are provided as is. (Non-Standard extensions are the ones that are not part of PHP Core or are not Bundled/External - see the complete list [here](http://php.net/manual/en/extensions.membership.php).) + +The support for such “non-standard” stubs is community-driven, and we only validate their PHPDoc. We do not check whether a stub matches the actual extension or whether the provided descriptions are correct. + +Please note that currently there are no tests for the thrown exceptions so @throws tags should be checked manually according to official docs or PHP source code + +[Relevant open issues] + +### Contribution process +[Contribution process](CONTRIBUTING.md) + +### Updating the IDE +Have a full copy of the .git repo within an IDE and provide its path in `Settings | Languages & Frameworks | PHP | PHP Runtime | Advanced settings | Default stubs path`. It should then be easily updatable both ways via normal git methods. + +### Extensions enabled by default +The set of extensions enabled by default in PhpStorm can change anytime without prior notice. To learn how to view the enabled extensions, look [here](https://blog.jetbrains.com/phpstorm/2017/03/per-project-php-extension-settings-in-phpstorm-2017-1/). + +### How to run tests +1. Execute `docker-compose -f docker-compose.yml run test_runner composer install --ignore-platform-reqs` +2. Execute `docker-compose -f docker-compose.yml run -e PHP_VERSION=8.0 test_runner vendor/bin/phpunit --testsuite PHP_8.0` + +### How to update stub map +Execute `docker-compose -f docker-compose.yml run test_runner /usr/local/bin/php tests/Tools/generate-stub-map` and commit the resulting `PhpStormStubsMap.php` + +### License +[Apache 2] + +contains material by the PHP Documentation Group, licensed with [CC-BY 3.0] + +[PHPDOC]:https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md +[Apache 2]:https://www.apache.org/licenses/LICENSE-2.0 +[Relevant open issues]:https://youtrack.jetbrains.com/issues/WI?q=%23Unresolved+Subsystem%3A+%7BPHP+lib+stubs%7D+order+by%3A+votes+ +[CC-BY 3.0]:https://www.php.net/manual/en/cc.license.php diff --git a/phpstorm-stubs/Reflection/.phpstorm.meta.php b/phpstorm-stubs/Reflection/.phpstorm.meta.php new file mode 100644 index 0000000..0b334a3 --- /dev/null +++ b/phpstorm-stubs/Reflection/.phpstorm.meta.php @@ -0,0 +1,66 @@ + 'int'], default: '')] $modifiers): array {} + + /** + * Exports + * + * @link https://php.net/manual/en/reflection.export.php + * @param Reflector $reflector The reflection to export. + * @param bool $return Setting to {@see true} will return the export, as + * opposed to emitting it. Setting to {@see false} (the default) will do the opposite. + * @return string|null If the return parameter is set to {@see true}, then the + * export is returned as a string, otherwise {@see null} is returned. + * @removed 8.0 + */ + #[Deprecated(since: '7.4')] + public static function export(Reflector $reflector, $return = false) {} +} diff --git a/phpstorm-stubs/Reflection/ReflectionAttribute.php b/phpstorm-stubs/Reflection/ReflectionAttribute.php new file mode 100644 index 0000000..7b4474d --- /dev/null +++ b/phpstorm-stubs/Reflection/ReflectionAttribute.php @@ -0,0 +1,83 @@ +ReflectionClass class reports information about a class. + * + * @link https://php.net/manual/en/class.reflectionclass.php + */ +class ReflectionClass implements Reflector +{ + /** + * @var class-string
+ * $reflection = new ReflectionMethod(new Example(), 'method');
+ * $reflection = new ReflectionMethod(Example::class, 'method');
+ * $reflection = new ReflectionMethod('Example::method');
+ *
+ *
+ * @link https://php.net/manual/en/reflectionmethod.construct.php
+ * @param string|object $objectOrMethod Classname, object
+ * (instance of the class) that contains the method or class name and
+ * method name delimited by ::.
+ * @param string|null $method Name of the method if the first argument is a
+ * classname or an object.
+ * @throws ReflectionException if the class or method does not exist.
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'object|string'], default: '')] $objectOrMethod,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $method = null
+ ) {}
+
+ /**
+ * Export a reflection method.
+ *
+ * @link https://php.net/manual/en/reflectionmethod.export.php
+ * @param string $class The class name.
+ * @param string $name The name of the method.
+ * @param bool $return Setting to {@see true} will return the export,
+ * as opposed to emitting it. Setting to {@see false} (the default) will do the
+ * opposite.
+ * @return string|null If the $return parameter is set to {@see true}, then
+ * the export is returned as a string, otherwise {@see null} is returned.
+ * @removed 8.0
+ */
+ #[Deprecated(since: '7.4')]
+ public static function export($class, $name, $return = false) {}
+
+ /**
+ * Returns the string representation of the ReflectionMethod object.
+ *
+ * @link https://php.net/manual/en/reflectionmethod.tostring.php
+ * @return string A string representation of this {@see ReflectionMethod} instance.
+ */
+ #[TentativeType]
+ public function __toString(): string {}
+
+ /**
+ * Checks if method is public
+ *
+ * @link https://php.net/manual/en/reflectionmethod.ispublic.php
+ * @return bool Returns {@see true} if the method is public, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isPublic(): bool {}
+
+ /**
+ * Checks if method is private
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isprivate.php
+ * @return bool Returns {@see true} if the method is private, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isPrivate(): bool {}
+
+ /**
+ * Checks if method is protected
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isprotected.php
+ * @return bool Returns {@see true} if the method is protected, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isProtected(): bool {}
+
+ /**
+ * Checks if method is abstract
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isabstract.php
+ * @return bool Returns {@see true} if the method is abstract, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isAbstract(): bool {}
+
+ /**
+ * Checks if method is final
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isfinal.php
+ * @return bool Returns {@see true} if the method is final, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isFinal(): bool {}
+
+ /**
+ * Checks if method is static
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isstatic.php
+ * @return bool Returns {@see true} if the method is static, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isStatic(): bool {}
+
+ /**
+ * Checks if method is a constructor
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isconstructor.php
+ * @return bool Returns {@see true} if the method is a constructor, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isConstructor(): bool {}
+
+ /**
+ * Checks if method is a destructor
+ *
+ * @link https://php.net/manual/en/reflectionmethod.isdestructor.php
+ * @return bool Returns {@see true} if the method is a destructor, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isDestructor(): bool {}
+
+ /**
+ * Returns a dynamically created closure for the method
+ *
+ * @link https://php.net/manual/en/reflectionmethod.getclosure.php
+ * @param object $object Forbidden for static methods, required for other methods or nothing.
+ * @return Closure|null Returns {@see Closure} or {@see null} in case of an error.
+ * @since 5.4
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getClosure(
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $object,
+ #[PhpStormStubsElementAvailable(from: '7.4')] #[LanguageLevelTypeAware(['8.0' => 'object|null'], default: '')] $object = null
+ ): Closure {}
+
+ /**
+ * Gets the method modifiers
+ *
+ * @link https://php.net/manual/en/reflectionmethod.getmodifiers.php
+ * @return int A numeric representation of the modifiers. The modifiers are
+ * listed below. The actual meanings of these modifiers are described in the
+ * predefined constants.
+ *
+ * ReflectionMethod modifiers:
+ *
+ * - {@see ReflectionMethod::IS_STATIC} - Indicates that the method is static.
+ * - {@see ReflectionMethod::IS_PUBLIC} - Indicates that the method is public.
+ * - {@see ReflectionMethod::IS_PROTECTED} - Indicates that the method is protected.
+ * - {@see ReflectionMethod::IS_PRIVATE} - Indicates that the method is private.
+ * - {@see ReflectionMethod::IS_ABSTRACT} - Indicates that the method is abstract.
+ * - {@see ReflectionMethod::IS_FINAL} - Indicates that the method is final.
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getModifiers(): int {}
+
+ /**
+ * Invokes a reflected method.
+ *
+ * @link https://php.net/manual/en/reflectionmethod.invoke.php
+ * @param object|null $object The object to invoke the method on. For static
+ * methods, pass {@see null} to this parameter.
+ * @param mixed ...$args Zero or more parameters to be passed to the
+ * method. It accepts a variable number of parameters which are passed to
+ * the method.
+ * @return mixed Returns the method result.
+ * @throws ReflectionException if the object parameter does not contain an
+ * instance of the class that this method was declared in or the method
+ * invocation failed.
+ */
+ public function invoke($object, ...$args) {}
+
+ /**
+ * Invokes the reflected method and pass its arguments as array.
+ *
+ * @link https://php.net/manual/en/reflectionmethod.invokeargs.php
+ * @param object|null $object The object to invoke the method on. In case
+ * of static methods, you can pass {@see null} to this parameter.
+ * @param array $args The parameters to be passed to the function, as an {@see array}.
+ * @return mixed the method result.
+ * @throws ReflectionException if the object parameter does not contain an
+ * instance of the class that this method was declared in or the method
+ * invocation failed.
+ */
+ #[TentativeType]
+ public function invokeArgs(#[LanguageLevelTypeAware(['8.0' => 'object|null'], default: '')] $object, array $args): mixed {}
+
+ /**
+ * Gets declaring class for the reflected method.
+ *
+ * @link https://php.net/manual/en/reflectionmethod.getdeclaringclass.php
+ * @return ReflectionClass A {@see ReflectionClass} object of the class that the
+ * reflected method is part of.
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getDeclaringClass(): ReflectionClass {}
+
+ /**
+ * Gets the method prototype (if there is one).
+ *
+ * @link https://php.net/manual/en/reflectionmethod.getprototype.php
+ * @return ReflectionMethod A {@see ReflectionMethod} instance of the method prototype.
+ * @throws ReflectionException if the method does not have a prototype
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getPrototype(): ReflectionMethod {}
+
+ /**
+ * Set method accessibility
+ *
+ * @link https://php.net/manual/en/reflectionmethod.setaccessible.php
+ * @param bool $accessible {@see true} to allow accessibility, or {@see false}
+ * @return void No value is returned.
+ * @since 5.3.2
+ */
+ #[PhpStormStubsElementAvailable(to: "8.0")]
+ #[TentativeType]
+ public function setAccessible(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $accessible): void {}
+
+ /**
+ * Set method accessibility
+ * This method is no-op starting from PHP 8.1
+ *
+ * @link https://php.net/manual/en/reflectionmethod.setaccessible.php
+ * @param bool $accessible {@see true} to allow accessibility, or {@see false}
+ * @return void No value is returned.
+ */
+ #[Pure]
+ #[PhpStormStubsElementAvailable(from: "8.1")]
+ #[TentativeType]
+ public function setAccessible(bool $accessible): void {}
+
+ #[PhpStormStubsElementAvailable(from: '8.2')]
+ public function hasPrototype(): bool {}
+
+ /**
+ * @since 8.3
+ */
+ public static function createFromMethodName(string $method): static {}
+}
diff --git a/phpstorm-stubs/Reflection/ReflectionNamedType.php b/phpstorm-stubs/Reflection/ReflectionNamedType.php
new file mode 100644
index 0000000..073b58f
--- /dev/null
+++ b/phpstorm-stubs/Reflection/ReflectionNamedType.php
@@ -0,0 +1,33 @@
+ReflectionObject class reports
+ * information about an object.
+ *
+ * @link https://php.net/manual/en/class.reflectionobject.php
+ */
+class ReflectionObject extends ReflectionClass
+{
+ /**
+ * Constructs a ReflectionObject
+ *
+ * @link https://php.net/manual/en/reflectionobject.construct.php
+ * @param object $object An object instance.
+ */
+ public function __construct(#[LanguageLevelTypeAware(['8.0' => 'object'], default: '')] $object) {}
+
+ /**
+ * Export
+ *
+ * @link https://php.net/manual/en/reflectionobject.export.php
+ * @param string $argument The reflection to export.
+ * @param bool $return Setting to {@see true} will return the export,
+ * as opposed to emitting it. Setting to {@see false} (the default) will do
+ * the opposite.
+ * @return string|null If the $return parameter is set to {@see true}, then
+ * the export is returned as a string, otherwise {@see null} is returned.
+ * @removed 8.0
+ */
+ #[Deprecated(since: '7.4')]
+ public static function export($argument, $return = false) {}
+}
diff --git a/phpstorm-stubs/Reflection/ReflectionParameter.php b/phpstorm-stubs/Reflection/ReflectionParameter.php
new file mode 100644
index 0000000..4bc5e60
--- /dev/null
+++ b/phpstorm-stubs/Reflection/ReflectionParameter.php
@@ -0,0 +1,309 @@
+ReflectionParameter class retrieves
+ * information about function's or method's parameters.
+ *
+ * @link https://php.net/manual/en/class.reflectionparameter.php
+ */
+class ReflectionParameter implements Reflector
+{
+ /**
+ * @var string Name of the parameter, same as calling the {@see ReflectionParameter::getName()} method
+ */
+ #[Immutable]
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $name;
+
+ /**
+ * Construct
+ *
+ * @link https://php.net/manual/en/reflectionparameter.construct.php
+ * @param callable $function The function to reflect parameters from.
+ * @param string|int $param Either an integer specifying the position
+ * of the parameter (starting with zero), or a the parameter name as string.
+ * @throws ReflectionException if the function or parameter does not exist.
+ */
+ public function __construct($function, #[LanguageLevelTypeAware(['8.0' => 'string|int'], default: '')] $param) {}
+
+ /**
+ * Exports
+ *
+ * @link https://php.net/manual/en/reflectionparameter.export.php
+ * @param string $function The function name.
+ * @param string $parameter The parameter name.
+ * @param bool $return Setting to {@see true} will return the export,
+ * as opposed to emitting it. Setting to {@see false} (the default) will do the
+ * opposite.
+ * @return string|null The exported reflection.
+ * @removed 8.0
+ */
+ #[Deprecated(since: '7.4')]
+ public static function export($function, $parameter, $return = false) {}
+
+ /**
+ * Returns the string representation of the ReflectionParameter object.
+ *
+ * @link https://php.net/manual/en/reflectionparameter.tostring.php
+ * @return string
+ */
+ #[TentativeType]
+ public function __toString(): string {}
+
+ /**
+ * Gets parameter name
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getname.php
+ * @return string The name of the reflected parameter.
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getName(): string {}
+
+ /**
+ * Checks if passed by reference
+ *
+ * @link https://php.net/manual/en/reflectionparameter.ispassedbyreference.php
+ * @return bool {@see true} if the parameter is passed in by reference, otherwise {@see false}
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isPassedByReference(): bool {}
+
+ /**
+ * Returns whether this parameter can be passed by value
+ *
+ * @link https://php.net/manual/en/reflectionparameter.canbepassedbyvalue.php
+ * @return bool|null {@see true} if the parameter can be passed by value, {@see false} otherwise.
+ * Returns {@see null} in case of an error.
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function canBePassedByValue(): bool {}
+
+ /**
+ * Gets declaring function
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getdeclaringfunction.php
+ * @return ReflectionFunctionAbstract A {@see ReflectionFunctionAbstract} object.
+ * @since 5.2.3
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getDeclaringFunction(): ReflectionFunctionAbstract {}
+
+ /**
+ * Gets declaring class
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getdeclaringclass.php
+ * @return ReflectionClass|null A {@see ReflectionClass} object or {@see null} if
+ * called on function.
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getDeclaringClass(): ?ReflectionClass {}
+
+ /**
+ * Gets the class type hinted for the parameter as a ReflectionClass object.
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getclass.php
+ * @return ReflectionClass|null A {@see ReflectionClass} object.
+ * @see ReflectionParameter::getType()
+ */
+ #[Deprecated(reason: "Use ReflectionParameter::getType() and the ReflectionType APIs should be used instead.", since: "8.0")]
+ #[Pure]
+ #[TentativeType]
+ public function getClass(): ?ReflectionClass {}
+
+ /**
+ * Checks if the parameter has a type associated with it.
+ *
+ * @link https://php.net/manual/en/reflectionparameter.hastype.php
+ * @return bool {@see true} if a type is specified, {@see false} otherwise.
+ * @since 7.0
+ */
+ #[TentativeType]
+ public function hasType(): bool {}
+
+ /**
+ * Gets a parameter's type
+ *
+ * @link https://php.net/manual/en/reflectionparameter.gettype.php
+ * @return ReflectionType|null Returns a {@see ReflectionType} object if a
+ * parameter type is specified, {@see null} otherwise.
+ * @since 7.0
+ */
+ #[Pure]
+ #[LanguageLevelTypeAware(
+ [
+ '7.1' => 'ReflectionNamedType|null',
+ '8.0' => 'ReflectionNamedType|ReflectionUnionType|null',
+ '8.1' => 'ReflectionNamedType|ReflectionUnionType|ReflectionIntersectionType|null'
+ ],
+ default: 'ReflectionType|null'
+ )]
+ #[TentativeType]
+ public function getType(): ?ReflectionType {}
+
+ /**
+ * Checks if parameter expects an array
+ *
+ * @link https://php.net/manual/en/reflectionparameter.isarray.php
+ * @return bool {@see true} if an array is expected, {@see false} otherwise.
+ * @see ReflectionParameter::getType()
+ */
+ #[Deprecated(reason: "Use ReflectionParameter::getType() and the ReflectionType APIs should be used instead.", since: "8.0")]
+ #[Pure]
+ #[TentativeType]
+ public function isArray(): bool {}
+
+ /**
+ * Returns whether parameter MUST be callable
+ *
+ * @link https://php.net/manual/en/reflectionparameter.iscallable.php
+ * @return bool|null Returns {@see true} if the parameter is callable, {@see false}
+ * if it is not or {@see null} on failure.
+ * @since 5.4
+ * @see ReflectionParameter::getType()
+ */
+ #[Deprecated(reason: "Use ReflectionParameter::getType() and the ReflectionType APIs should be used instead.", since: "8.0")]
+ #[Pure]
+ #[TentativeType]
+ public function isCallable(): bool {}
+
+ /**
+ * Checks if null is allowed
+ *
+ * @link https://php.net/manual/en/reflectionparameter.allowsnull.php
+ * @return bool Returns {@see true} if {@see null} is allowed,
+ * otherwise {@see false}
+ */
+ #[TentativeType]
+ public function allowsNull(): bool {}
+
+ /**
+ * Gets parameter position
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getposition.php
+ * @return int The position of the parameter, left to right, starting at position #0.
+ * @since 5.2.3
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getPosition(): int {}
+
+ /**
+ * Checks if optional
+ *
+ * @link https://php.net/manual/en/reflectionparameter.isoptional.php
+ * @return bool Returns {@see true} if the parameter is optional, otherwise {@see false}
+ * @since 5.0.3
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isOptional(): bool {}
+
+ /**
+ * Checks if a default value is available
+ *
+ * @link https://php.net/manual/en/reflectionparameter.isdefaultvalueavailable.php
+ * @return bool Returns {@see true} if a default value is available, otherwise {@see false}
+ * @since 5.0.3
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isDefaultValueAvailable(): bool {}
+
+ /**
+ * Gets default parameter value
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getdefaultvalue.php
+ * @return mixed The parameters default value.
+ * @throws ReflectionException if the parameter is not optional
+ * @since 5.0.3
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getDefaultValue(): mixed {}
+
+ /**
+ * Returns whether the default value of this parameter is constant
+ *
+ * @link https://php.net/manual/en/reflectionparameter.isdefaultvalueconstant.php
+ * @return bool Returns {@see true} if the default value is constant, and {@see false} otherwise.
+ * @since 5.4.6
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isDefaultValueConstant(): bool {}
+
+ /**
+ * Returns the default value's constant name if default value is constant or null
+ *
+ * @link https://php.net/manual/en/reflectionparameter.getdefaultvalueconstantname.php
+ * @return string|null Returns string on success or {@see null} on failure.
+ * @throws ReflectionException if the parameter is not optional
+ * @since 5.4.6
+ */
+ #[Pure]
+ #[TentativeType]
+ public function getDefaultValueConstantName(): ?string {}
+
+ /**
+ * Returns whether this function is variadic
+ *
+ * @link https://php.net/manual/en/reflectionparameter.isvariadic.php
+ * @return bool Returns {@see true} if the function is variadic, otherwise {@see false}
+ * @since 5.6
+ */
+ #[Pure]
+ #[TentativeType]
+ public function isVariadic(): bool {}
+
+ /**
+ * Returns information about whether the parameter is a promoted.
+ *
+ * @return bool Returns {@see true} if the parameter promoted or {@see false} instead
+ * @since 8.0
+ */
+ #[Pure]
+ public function isPromoted(): bool {}
+
+ /**
+ * @template T
+ *
+ * Returns an array of parameter attributes.
+ *
+ * @param class-string function my_callback($current, $key, $iterator)
+ * @link https://secure.php.net/manual/en/callbackfilteriterator.construct.php
+ */
+ public function __construct(Iterator $iterator, callable $callback) {}
+
+ /**
+ * This method calls the callback with the current value, current key and the inner iterator.
+ * The callback is expected to return TRUE if the current item is to be accepted, or FALSE otherwise.
+ * @link https://secure.php.net/manual/en/callbackfilteriterator.accept.php
+ * @return bool true if the current element is acceptable, otherwise false.
+ */
+ #[TentativeType]
+ public function accept(): bool {}
+}
+
+/**
+ * (PHP 5 >= 5.4.0)+ * The maximum allowed depth. Default -1 is used + * for any depth. + *
+ * @return void + */ + #[TentativeType] + public function setMaxDepth(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxDepth = -1): void {} + + /** + * Get max depth + * @link https://php.net/manual/en/recursiveiteratoriterator.getmaxdepth.php + * @return int|false The maximum accepted depth, or false if any depth is allowed. + */ + #[TentativeType] + public function getMaxDepth(): int|false {} +} + +/** + * Classes implementing OuterIterator can be used to iterate + * over iterators. + * @link https://php.net/manual/en/class.outeriterator.php + */ +interface OuterIterator extends Iterator +{ + /** + * Returns the inner iterator for the current entry. + * @link https://php.net/manual/en/outeriterator.getinneriterator.php + * @return Iterator|null The inner iterator for the current entry. + */ + #[TentativeType] + public function getInnerIterator(): ?Iterator; +} + +/** + * This iterator wrapper allows the conversion of anything that is + * Traversable into an Iterator. + * It is important to understand that most classes that do not implement + * Iterators have reasons as most likely they do not allow the full + * Iterator feature set. If so, techniques should be provided to prevent + * misuse, otherwise expect exceptions or fatal errors. + * @link https://php.net/manual/en/class.iteratoriterator.php + */ +class IteratorIterator implements OuterIterator +{ + /** + * Create an iterator from anything that is traversable + * @link https://php.net/manual/en/iteratoriterator.construct.php + * @param Traversable $iterator + * @param string|null $class [optional] + */ + public function __construct(Traversable $iterator, #[PhpStormStubsElementAvailable(from: '8.0')] ?string $class = null) {} + + /** + * Get the inner iterator + * @link https://php.net/manual/en/iteratoriterator.getinneriterator.php + * @return Iterator|null The inner iterator as passed to IteratorIterator::__construct. + */ + #[TentativeType] + public function getInnerIterator(): ?Iterator {} + + /** + * Rewind to the first element + * @link https://php.net/manual/en/iteratoriterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Checks if the iterator is valid + * @link https://php.net/manual/en/iteratoriterator.valid.php + * @return bool true if the iterator is valid, otherwise false + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Get the key of the current element + * @link https://php.net/manual/en/iteratoriterator.key.php + * @return mixed The key of the current element. + */ + #[TentativeType] + public function key(): mixed {} + + /** + * Get the current value + * @link https://php.net/manual/en/iteratoriterator.current.php + * @return mixed The value of the current element. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Forward to the next element + * @link https://php.net/manual/en/iteratoriterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} +} + +/** + * This abstract iterator filters out unwanted values. This class should be extended to + * implement custom iterator filters. The FilterIterator::accept + * must be implemented in the subclass. + * @link https://php.net/manual/en/class.filteriterator.php + */ +abstract class FilterIterator extends IteratorIterator +{ + /** + * Check whether the current element of the iterator is acceptable + * @link https://php.net/manual/en/filteriterator.accept.php + * @return bool true if the current element is acceptable, otherwise false. + */ + #[TentativeType] + abstract public function accept(): bool; + + /** + * Construct a filterIterator + * @link https://php.net/manual/en/filteriterator.construct.php + * @param Iterator $iterator + */ + public function __construct(Iterator $iterator) {} + + /** + * Rewind the iterator + * @link https://php.net/manual/en/filteriterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Check whether the current element is valid + * @link https://php.net/manual/en/filteriterator.valid.php + * @return bool true if the current element is valid, otherwise false + */ + public function valid(): bool {} + + /** + * Get the current key + * @link https://php.net/manual/en/filteriterator.key.php + * @return mixed The key of the current element. + */ + public function key(): mixed {} + + /** + * Get the current element value + * @link https://php.net/manual/en/filteriterator.current.php + * @return mixed The current element value. + */ + public function current(): mixed {} + + /** + * Move the iterator forward + * @link https://php.net/manual/en/filteriterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Get the inner iterator + * @link https://php.net/manual/en/filteriterator.getinneriterator.php + * @return Iterator The inner iterator. + */ + public function getInnerIterator(): Iterator {} +} + +/** + * This abstract iterator filters out unwanted values for a RecursiveIterator. + * This class should be extended to implement custom filters. + * The RecursiveFilterIterator::accept must be implemented in the subclass. + * @link https://php.net/manual/en/class.recursivefilteriterator.php + */ +abstract class RecursiveFilterIterator extends FilterIterator implements RecursiveIterator +{ + /** + * Create a RecursiveFilterIterator from a RecursiveIterator + * @link https://php.net/manual/en/recursivefilteriterator.construct.php + * @param RecursiveIterator $iterator + */ + public function __construct(RecursiveIterator $iterator) {} + + /** + * Check whether the inner iterator's current element has children + * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php + * @return bool true if the inner iterator has children, otherwise false + */ + #[TentativeType] + public function hasChildren(): bool {} + + /** + * Return the inner iterator's children contained in a RecursiveFilterIterator + * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php + * @return RecursiveFilterIterator|null containing the inner iterator's children. + */ + #[TentativeType] + public function getChildren(): ?RecursiveFilterIterator {} +} + +/** + * This extended FilterIterator allows a recursive iteration using RecursiveIteratorIterator that only shows those elements which have children. + * @link https://php.net/manual/en/class.parentiterator.php + */ +class ParentIterator extends RecursiveFilterIterator +{ + /** + * Determines acceptability + * @link https://php.net/manual/en/parentiterator.accept.php + * @return bool true if the current element is acceptable, otherwise false. + */ + #[TentativeType] + public function accept(): bool {} + + /** + * Constructs a ParentIterator + * @link https://php.net/manual/en/parentiterator.construct.php + * @param RecursiveIterator $iterator + */ + public function __construct(RecursiveIterator $iterator) {} + + /** + * Check whether the inner iterator's current element has children + * @link https://php.net/manual/en/recursivefilteriterator.haschildren.php + * @return bool true if the inner iterator has children, otherwise false + */ + public function hasChildren() {} + + /** + * Return the inner iterator's children contained in a RecursiveFilterIterator + * @link https://php.net/manual/en/recursivefilteriterator.getchildren.php + * @return ParentIterator containing the inner iterator's children. + */ + public function getChildren() {} +} + +/** + * The Seekable iterator. + * @link https://php.net/manual/en/class.seekableiterator.php + */ +interface SeekableIterator extends Iterator +{ + /** + * Seeks to a position + * @link https://php.net/manual/en/seekableiterator.seek.php + * @param int $offset+ * The position to seek to. + *
+ * @return void + */ + #[TentativeType] + public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): void; +} + +/** + * The LimitIterator class allows iteration over + * a limited subset of items in an Iterator. + * @link https://php.net/manual/en/class.limititerator.php + */ +class LimitIterator extends IteratorIterator +{ + /** + * Construct a LimitIterator + * @link https://php.net/manual/en/limititerator.construct.php + * @param Iterator $iterator The iterator to limit. + * @param int $offset [optional] The offset to start at. Must be zero or greater. + * @param int $limit [optional] The number of items to iterate. Must be -1 or greater. -1, the default, means no limit. + */ + public function __construct( + Iterator $iterator, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset = 0, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $limit = -1 + ) {} + + /** + * Rewind the iterator to the specified starting offset + * @link https://php.net/manual/en/limititerator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Check whether the current element is valid + * @link https://php.net/manual/en/limititerator.valid.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Get current key + * @link https://php.net/manual/en/limititerator.key.php + * @return mixed The key of the current element. + */ + public function key(): mixed {} + + /** + * Get current element + * @link https://php.net/manual/en/limititerator.current.php + * @return mixed the current element or null if there is none. + */ + public function current(): mixed {} + + /** + * Move the iterator forward + * @link https://php.net/manual/en/limititerator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Seek to the given position + * @link https://php.net/manual/en/limititerator.seek.php + * @param int $offset+ * The position to seek to. + *
+ * @return int the offset position after seeking. + */ + #[TentativeType] + public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): int {} + + /** + * Return the current position + * @link https://php.net/manual/en/limititerator.getposition.php + * @return int The current position. + */ + #[TentativeType] + public function getPosition(): int {} + + /** + * Get inner iterator + * @link https://php.net/manual/en/limititerator.getinneriterator.php + * @return Iterator The inner iterator passed to LimitIterator::__construct. + */ + public function getInnerIterator(): Iterator {} +} + +/** + * This object supports cached iteration over another iterator. + * @link https://php.net/manual/en/class.cachingiterator.php + */ +class CachingIterator extends IteratorIterator implements ArrayAccess, Countable, Stringable +{ + /** + * String conversion flag (mutually exclusive): Uses the current element for the iterator's string conversion. + * This converts the current element to a string only once, regardless of whether it is needed or not. + */ + public const CALL_TOSTRING = 1; + + /** + * String conversion flag (mutually exclusive). Uses the current key for the iterator's string conversion. + */ + public const TOSTRING_USE_KEY = 2; + + /** + * String conversion flag (mutually exclusive). Uses the current element for the iterator's string conversion. + * This converts the current element to a string only when (and every time) it is needed. + */ + public const TOSTRING_USE_CURRENT = 4; + + /** + * String conversion flag (mutually exclusive). Forwards the string conversion to the inner iterator. + * This converts the inner iterator to a string only once, regardless of whether it is needed or not. + */ + public const TOSTRING_USE_INNER = 8; + + /** + * Ignore exceptions thrown in accessing children. Only used with {@see RecursiveCachingIterator}. + */ + public const CATCH_GET_CHILD = 16; + + /** + * Cache all read data. This is needed to use {@see CachingIterator::getCache}, and ArrayAccess and Countable methods. + */ + public const FULL_CACHE = 256; + + /** + * Constructs a new CachingIterator. + * @link https://php.net/manual/en/cachingiterator.construct.php + * @param Iterator $iterator The iterator to cache. + * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details. + */ + public function __construct(Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = self::CALL_TOSTRING) {} + + /** + * Rewind the iterator + * @link https://php.net/manual/en/cachingiterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Check whether the current element is valid + * @link https://php.net/manual/en/cachingiterator.valid.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Return the key for the current element + * @link https://php.net/manual/en/cachingiterator.key.php + * @return mixed The key of the current element. + */ + public function key(): mixed {} + + /** + * Return the current element + * @link https://php.net/manual/en/cachingiterator.current.php + * @return mixed + */ + public function current(): mixed {} + + /** + * Move the iterator forward + * @link https://php.net/manual/en/cachingiterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Check whether the inner iterator has a valid next element + * @link https://php.net/manual/en/cachingiterator.hasnext.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function hasNext(): bool {} + + /** + * Return the string representation of the current iteration based on the flag being used. + * @link https://php.net/manual/en/cachingiterator.tostring.php + * @return string The string representation of the current iteration based on the flag being used. + */ + #[TentativeType] + public function __toString(): string {} + + /** + * Returns the inner iterator + * @link https://php.net/manual/en/cachingiterator.getinneriterator.php + * @return Iterator an object implementing the Iterator interface. + */ + public function getInnerIterator(): Iterator {} + + /** + * Get flags used + * @link https://php.net/manual/en/cachingiterator.getflags.php + * @return int Bitmask of the flags + */ + #[TentativeType] + public function getFlags(): int {} + + /** + * The setFlags purpose + * @link https://php.net/manual/en/cachingiterator.setflags.php + * @param int $flags Bitmask of the flags to set. + * @return void + */ + #[TentativeType] + public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void {} + + /** + * Internal cache array index to retrieve. + * @link https://php.net/manual/en/cachingiterator.offsetget.php + * @param string $key The index of the element to retrieve. + * @return mixed + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + */ + #[TentativeType] + public function offsetGet($key): mixed {} + + /** + * Set an element on the internal cache array. + * @link https://php.net/manual/en/cachingiterator.offsetset.php + * @param string $key The index of the element to be set. + * @param string $value The new value for the index. + * @return void + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + */ + #[TentativeType] + public function offsetSet($key, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Remove an element from the internal cache array. + * @link https://php.net/manual/en/cachingiterator.offsetunset.php + * @param string $key The index of the element to be unset. + * @return void + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + */ + #[TentativeType] + public function offsetUnset($key): void {} + + /** + * Return whether an element at the index exists on the internal cache array. + * @link https://php.net/manual/en/cachingiterator.offsetexists.php + * @param string $key The index being checked. + * @return bool true if an entry referenced by the offset exists, false otherwise. + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + */ + #[TentativeType] + public function offsetExists($key): bool {} + + /** + * Retrieve the contents of the cache + * @link https://php.net/manual/en/cachingiterator.getcache.php + * @return array An array containing the cache items. + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + */ + #[TentativeType] + public function getCache(): array {} + + /** + * The number of elements in the iterator + * @link https://php.net/manual/en/cachingiterator.count.php + * @return int The count of the elements iterated over. + * @throws BadMethodCallException when the {@see CachingIterator::FULL_CACHE} flag is not being used. + * @since 5.2.2 + */ + #[TentativeType] + public function count(): int {} +} + +/** + * ... + * @link https://php.net/manual/en/class.recursivecachingiterator.php + */ +class RecursiveCachingIterator extends CachingIterator implements RecursiveIterator +{ + /** + * Constructs a new RecursiveCachingIterator. + * @link https://php.net/manual/en/recursivecachingiterator.construct.php + * @param Iterator $iterator The iterator to cache. + * @param int $flags [optional] A bitmask of flags. See CachingIterator class constants for details. + */ + public function __construct(Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = CachingIterator::CALL_TOSTRING) {} + + /** + * Check whether the current element of the inner iterator has children + * @link https://php.net/manual/en/recursivecachingiterator.haschildren.php + * @return bool true if the inner iterator has children, otherwise false + */ + #[TentativeType] + public function hasChildren(): bool {} + + /** + * Return the inner iterator's children as a RecursiveCachingIterator + * @link https://php.net/manual/en/recursivecachingiterator.getchildren.php + * @return RecursiveCachingIterator|null The inner iterator's children, as a RecursiveCachingIterator. + */ + #[TentativeType] + public function getChildren(): ?RecursiveCachingIterator {} +} + +/** + * This iterator cannot be rewinded. + * @link https://php.net/manual/en/class.norewinditerator.php + */ +class NoRewindIterator extends IteratorIterator +{ + /** + * Construct a NoRewindIterator + * @link https://php.net/manual/en/norewinditerator.construct.php + * @param Iterator $iterator + */ + public function __construct(Iterator $iterator) {} + + /** + * Prevents the rewind operation on the inner iterator. + * @link https://php.net/manual/en/norewinditerator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Validates the iterator + * @link https://php.net/manual/en/norewinditerator.valid.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Get the current key + * @link https://php.net/manual/en/norewinditerator.key.php + * @return mixed The key of the current element. + */ + #[TentativeType] + public function key(): mixed {} + + /** + * Get the current value + * @link https://php.net/manual/en/norewinditerator.current.php + * @return mixed The current value. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Forward to the next element + * @link https://php.net/manual/en/norewinditerator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Get the inner iterator + * @link https://php.net/manual/en/norewinditerator.getinneriterator.php + * @return Iterator The inner iterator, as passed to NoRewindIterator::__construct. + */ + public function getInnerIterator(): Iterator {} +} + +/** + * An Iterator that iterates over several iterators one after the other. + * @link https://php.net/manual/en/class.appenditerator.php + */ +class AppendIterator extends IteratorIterator +{ + /** + * Constructs an AppendIterator + * @link https://php.net/manual/en/appenditerator.construct.php + */ + public function __construct() {} + + /** + * Appends an iterator + * @link https://php.net/manual/en/appenditerator.append.php + * @param Iterator $iterator+ * The iterator to append. + *
+ * @return void + */ + #[TentativeType] + public function append(Iterator $iterator): void {} + + /** + * Rewinds the Iterator + * @link https://php.net/manual/en/appenditerator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Checks validity of the current element + * @link https://php.net/manual/en/appenditerator.valid.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Gets the current key + * @link https://php.net/manual/en/appenditerator.key.php + * @return mixed The key of the current element. + */ + public function key(): mixed {} + + /** + * Gets the current value + * @link https://php.net/manual/en/appenditerator.current.php + * @return mixed The current value if it is valid or null otherwise. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Moves to the next element + * @link https://php.net/manual/en/appenditerator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Gets an inner iterator + * @link https://php.net/manual/en/appenditerator.getinneriterator.php + * @return Iterator the current inner Iterator. + */ + public function getInnerIterator(): Iterator {} + + /** + * Gets an index of iterators + * @link https://php.net/manual/en/appenditerator.getiteratorindex.php + * @return int|null The index of iterators. + */ + #[TentativeType] + public function getIteratorIndex(): ?int {} + + /** + * The getArrayIterator method + * @link https://php.net/manual/en/appenditerator.getarrayiterator.php + * @return ArrayIterator containing the appended iterators. + */ + #[TentativeType] + public function getArrayIterator(): ArrayIterator {} +} + +/** + * The InfiniteIterator allows one to + * infinitely iterate over an iterator without having to manually + * rewind the iterator upon reaching its end. + * @link https://php.net/manual/en/class.infiniteiterator.php + */ +class InfiniteIterator extends IteratorIterator +{ + /** + * Constructs an InfiniteIterator + * @link https://php.net/manual/en/infiniteiterator.construct.php + * @param Iterator $iterator + */ + public function __construct(Iterator $iterator) {} + + /** + * Moves the inner Iterator forward or rewinds it + * @link https://php.net/manual/en/infiniteiterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} +} + +/** + * This iterator can be used to filter another iterator based on a regular expression. + * @link https://php.net/manual/en/class.regexiterator.php + */ +class RegexIterator extends FilterIterator +{ + /** + * Return all matches for the current entry @see preg_match_all + */ + public const ALL_MATCHES = 2; + + /** + * Return the first match for the current entry @see preg_match + */ + public const GET_MATCH = 1; + + /** + * Only execute match (filter) for the current entry @see preg_match + */ + public const MATCH = 0; + + /** + * Replace the current entry (Not fully implemented yet) @see preg_replace + */ + public const REPLACE = 4; + + /** + * Returns the split values for the current entry @see preg_split + */ + public const SPLIT = 3; + + /** + * Special flag: Match the entry key instead of the entry value. + */ + public const USE_KEY = 1; + public const INVERT_MATCH = 2; + + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $replacement; + + /** + * Create a new RegexIterator + * @link https://php.net/manual/en/regexiterator.construct.php + * @param Iterator $iterator The iterator to apply this regex filter to. + * @param string $pattern The regular expression to match. + * @param int $mode [optional] Operation mode, see RegexIterator::setMode() for a list of modes. + * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags. + * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter + */ + public function __construct( + Iterator $iterator, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = self::MATCH, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags = 0 + ) {} + + /** + * Get accept status + * @link https://php.net/manual/en/regexiterator.accept.php + * @return bool true if a match, false otherwise. + */ + #[TentativeType] + public function accept(): bool {} + + /** + * Returns operation mode. + * @link https://php.net/manual/en/regexiterator.getmode.php + * @return int the operation mode. + */ + #[TentativeType] + public function getMode(): int {} + + /** + * Sets the operation mode. + * @link https://php.net/manual/en/regexiterator.setmode.php + * @param int $mode+ * The operation mode. + *
+ *+ * The available modes are listed below. The actual + * meanings of these modes are described in the + * predefined constants. + *
| value | + *constant | + *
| 0 | + *+ * RegexIterator::MATCH + * | + *
| 1 | + *+ * RegexIterator::GET_MATCH + * | + *
| 2 | + *+ * RegexIterator::ALL_MATCHES + * | + *
| 3 | + *+ * RegexIterator::SPLIT + * | + *
| 4 | + *+ * RegexIterator::REPLACE + * | + *
+ * The flags to set, a bitmask of class constants. + *
+ *+ * The available flags are listed below. The actual + * meanings of these flags are described in the + * predefined constants. + *
| value | + *constant | + *
| 1 | + *+ * RegexIterator::USE_KEY + * | + *
+ * The regular expression flags. See RegexIterator::__construct + * for an overview of available flags. + *
+ * @return void + */ + #[TentativeType] + public function setPregFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags): void {} +} + +/** + * This recursive iterator can filter another recursive iterator via a regular expression. + * @link https://php.net/manual/en/class.recursiveregexiterator.php + */ +class RecursiveRegexIterator extends RegexIterator implements RecursiveIterator +{ + /** + * Creates a new RecursiveRegexIterator. + * @link https://php.net/manual/en/recursiveregexiterator.construct.php + * @param RecursiveIterator $iterator The iterator to apply this regex filter to. + * @param string $pattern The regular expression to match. + * @param int $mode [optional] Operation mode, see RegexIterator::setMode() for a list of modes. + * @param int $flags [optional] Special flags, see RegexIterator::setFlags() for a list of available flags. + * @param int $pregFlags [optional] The regular expression flags. These flags depend on the operation mode parameter + */ + public function __construct( + RecursiveIterator $iterator, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = RegexIterator::MATCH, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $pregFlags = 0 + ) {} + + /** + * Returns whether an iterator can be obtained for the current entry. + * @link https://php.net/manual/en/recursiveregexiterator.haschildren.php + * @return bool true if an iterator can be obtained for the current entry, otherwise returns false. + */ + #[TentativeType] + public function hasChildren(): bool {} + + /** + * Returns an iterator for the current entry. + * @link https://php.net/manual/en/recursiveregexiterator.getchildren.php + * @return RecursiveRegexIterator An iterator for the current entry, if it can be iterated over by the inner iterator. + */ + #[TentativeType] + public function getChildren(): RecursiveRegexIterator {} +} + +/** + * Allows iterating over a RecursiveIterator to generate an ASCII graphic tree. + * @link https://php.net/manual/en/class.recursivetreeiterator.php + */ +class RecursiveTreeIterator extends RecursiveIteratorIterator +{ + public const BYPASS_CURRENT = 4; + public const BYPASS_KEY = 8; + public const PREFIX_LEFT = 0; + public const PREFIX_MID_HAS_NEXT = 1; + public const PREFIX_MID_LAST = 2; + public const PREFIX_END_HAS_NEXT = 3; + public const PREFIX_END_LAST = 4; + public const PREFIX_RIGHT = 5; + + /** + * Construct a RecursiveTreeIterator + * @link https://php.net/manual/en/recursivetreeiterator.construct.php + * @param RecursiveIterator|IteratorAggregate $iterator + * @param int $flags [optional] Flags to control the behavior of the RecursiveTreeIterator object. + * @param int $cachingIteratorFlags [optional] Flags to affect the behavior of the {@see RecursiveCachingIterator} used internally. + * @param int $mode [optional] Flags to affect the behavior of the {@see RecursiveIteratorIterator} used internally. + */ + public function __construct( + $iterator, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = self::BYPASS_KEY, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $cachingIteratorFlags = CachingIterator::CATCH_GET_CHILD, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = RecursiveIteratorIterator::SELF_FIRST + ) {} + + /** + * Rewind iterator + * @link https://php.net/manual/en/recursivetreeiterator.rewind.php + * @return void + */ + public function rewind(): void {} + + /** + * Check validity + * @link https://php.net/manual/en/recursivetreeiterator.valid.php + * @return bool true if the current position is valid, otherwise false + */ + public function valid(): bool {} + + /** + * Get the key of the current element + * @link https://php.net/manual/en/recursivetreeiterator.key.php + * @return string the current key prefixed and postfixed. + */ + #[TentativeType] + public function key(): mixed {} + + /** + * Get current element + * @link https://php.net/manual/en/recursivetreeiterator.current.php + * @return string the current element prefixed and postfixed. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Move to next element + * @link https://php.net/manual/en/recursivetreeiterator.next.php + * @return void + */ + public function next(): void {} + + /** + * Begin iteration + * @link https://php.net/manual/en/recursivetreeiterator.beginiteration.php + * @return RecursiveIterator A RecursiveIterator. + */ + public function beginIteration() {} + + /** + * End iteration + * @link https://php.net/manual/en/recursivetreeiterator.enditeration.php + * @return void + */ + public function endIteration() {} + + /** + * Has children + * @link https://php.net/manual/en/recursivetreeiterator.callhaschildren.php + * @return bool true if there are children, otherwise false + */ + public function callHasChildren() {} + + /** + * Get children + * @link https://php.net/manual/en/recursivetreeiterator.callgetchildren.php + * @return RecursiveIterator A RecursiveIterator. + */ + public function callGetChildren() {} + + /** + * Begin children + * @link https://php.net/manual/en/recursivetreeiterator.beginchildren.php + * @return void + */ + public function beginChildren() {} + + /** + * End children + * @link https://php.net/manual/en/recursivetreeiterator.endchildren.php + * @return void + */ + public function endChildren() {} + + /** + * Next element + * @link https://php.net/manual/en/recursivetreeiterator.nextelement.php + * @return void + */ + public function nextElement() {} + + /** + * Get the prefix + * @link https://php.net/manual/en/recursivetreeiterator.getprefix.php + * @return string the string to place in front of current element + */ + #[TentativeType] + public function getPrefix(): string {} + + /** + * @param string $postfix + */ + #[TentativeType] + public function setPostfix(#[PhpStormStubsElementAvailable(from: '7.3')] string $postfix): void {} + + /** + * Set a part of the prefix + * @link https://php.net/manual/en/recursivetreeiterator.setprefixpart.php + * @param int $part+ * One of the RecursiveTreeIterator::PREFIX_* constants. + *
+ * @param string $value+ * The value to assign to the part of the prefix specified in part. + *
+ * @return void + */ + #[TentativeType] + public function setPrefixPart( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $part, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value + ): void {} + + /** + * Get current entry + * @link https://php.net/manual/en/recursivetreeiterator.getentry.php + * @return string the part of the tree built for the current element. + */ + #[TentativeType] + public function getEntry(): string {} + + /** + * Get the postfix + * @link https://php.net/manual/en/recursivetreeiterator.getpostfix.php + * @return string to place after the current element. + */ + #[TentativeType] + public function getPostfix(): string {} +} + +/** + * This class allows objects to work as arrays. + * @link https://php.net/manual/en/class.arrayobject.php + * @template TKey + * @template TValue + * @template-implements IteratorAggregate+ * The index being checked. + *
+ * @return bool true if the requested index exists, otherwise false + */ + #[TentativeType] + public function offsetExists(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): bool {} + + /** + * Returns the value at the specified index + * @link https://php.net/manual/en/arrayobject.offsetget.php + * @param TKey $key+ * The index with the value. + *
+ * @return TValue|false The value at the specified index or false. + */ + #[TentativeType] + public function offsetGet(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): mixed {} + + /** + * Sets the value at the specified index to newval + * @link https://php.net/manual/en/arrayobject.offsetset.php + * @param TKey $key+ * The index being set. + *
+ * @param TValue $value+ * The new value for the index. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value + ): void {} + + /** + * Unsets the value at the specified index + * @link https://php.net/manual/en/arrayobject.offsetunset.php + * @param TKey $key+ * The index being unset. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): void {} + + /** + * Appends the value + * @link https://php.net/manual/en/arrayobject.append.php + * @param TValue $value+ * The value being appended. + *
+ * @return void + */ + #[TentativeType] + public function append(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Creates a copy of the ArrayObject. + * @link https://php.net/manual/en/arrayobject.getarraycopy.php + * @return array+ * The new ArrayObject behavior. + * It takes on either a bitmask, or named constants. Using named + * constants is strongly encouraged to ensure compatibility for future + * versions. + *
+ *+ * The available behavior flags are listed below. The actual + * meanings of these flags are described in the + * predefined constants. + *
| value | + *constant | + *
| 1 | + *+ * ArrayObject::STD_PROP_LIST + * | + *
| 2 | + *+ * ArrayObject::ARRAY_AS_PROPS + * | + *
+ * Function cmp_function should accept two + * parameters which will be filled by pairs of entries. + * The comparison function must return an integer less than, equal + * to, or greater than zero if the first argument is considered to + * be respectively less than, equal to, or greater than the + * second. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function uasort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback) {} + + /** + * Sort the entries by keys using a user-defined comparison function + * @link https://php.net/manual/en/arrayobject.uksort.php + * @param callable(TValue, TValue):int $callback+ * The callback comparison function. + *
+ *+ * Function cmp_function should accept two + * parameters which will be filled by pairs of entry keys. + * The comparison function must return an integer less than, equal + * to, or greater than zero if the first argument is considered to + * be respectively less than, equal to, or greater than the + * second. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function uksort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback) {} + + /** + * Sort entries using a "natural order" algorithm + * @link https://php.net/manual/en/arrayobject.natsort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function natsort() {} + + /** + * Sort an array using a case insensitive "natural order" algorithm + * @link https://php.net/manual/en/arrayobject.natcasesort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function natcasesort() {} + + /** + * Unserialize an ArrayObject + * @link https://php.net/manual/en/arrayobject.unserialize.php + * @param string $data+ * The serialized ArrayObject. + *
+ * @return void + */ + #[TentativeType] + public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void {} + + /** + * Serialize an ArrayObject + * @link https://php.net/manual/en/arrayobject.serialize.php + * @return string The serialized representation of the ArrayObject. + */ + #[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 + * @return ArrayIterator+ * The new array or object to exchange with the current array. + *
+ * @return array the old array. + */ + #[TentativeType] + public function exchangeArray(#[LanguageLevelTypeAware(['8.0' => 'object|array'], default: '')] $array): array {} + + /** + * Sets the iterator classname for the ArrayObject. + * @link https://php.net/manual/en/arrayobject.setiteratorclass.php + * @param class-string+ * The classname of the array iterator to use when iterating over this object. + *
+ * @return void + */ + #[TentativeType] + public function setIteratorClass(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $iteratorClass): void {} + + /** + * Gets the iterator classname for the ArrayObject. + * @link https://php.net/manual/en/arrayobject.getiteratorclass.php + * @return class-string+ * The offset being checked. + *
+ * @return bool true if the offset exists, otherwise false + */ + #[TentativeType] + public function offsetExists(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): bool {} + + /** + * Get value for an offset + * @link https://php.net/manual/en/arrayiterator.offsetget.php + * @param string $key+ * The offset to get the value from. + *
+ * @return mixed The value at offset index. + */ + #[TentativeType] + public function offsetGet(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): mixed {} + + /** + * Set value for an offset + * @link https://php.net/manual/en/arrayiterator.offsetset.php + * @param string $key+ * The index to set for. + *
+ * @param string $value+ * The new value to store at the index. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value + ): void {} + + /** + * Unset value for an offset + * @link https://php.net/manual/en/arrayiterator.offsetunset.php + * @param string $key+ * The offset to unset. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $key): void {} + + /** + * Append an element + * @link https://php.net/manual/en/arrayiterator.append.php + * @param mixed $value+ * The value to append. + *
+ * @return void + */ + #[TentativeType] + public function append(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Get array copy + * @link https://php.net/manual/en/arrayiterator.getarraycopy.php + * @return array A copy of the array, or array of public properties + * if ArrayIterator refers to an object. + */ + #[TentativeType] + public function getArrayCopy(): array {} + + /** + * Count elements + * @link https://php.net/manual/en/arrayiterator.count.php + * @return int<0,max> The number of elements or public properties in the associated + * array or object, respectively. + */ + #[TentativeType] + public function count(): int {} + + /** + * Get flags + * @link https://php.net/manual/en/arrayiterator.getflags.php + * @return int The current flags. + */ + #[TentativeType] + public function getFlags(): int {} + + /** + * Set behaviour flags + * @link https://php.net/manual/en/arrayiterator.setflags.php + * @param string $flags+ * A bitmask as follows: + * 0 = Properties of the object have their normal functionality + * when accessed as list (var_dump, foreach, etc.). + * 1 = Array indices can be accessed as properties in read/write. + *
+ * @return void + */ + #[TentativeType] + public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void {} + + /** + * Sort array by values + * @link https://php.net/manual/en/arrayiterator.asort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function asort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR) {} + + /** + * Sort array by keys + * @link https://php.net/manual/en/arrayiterator.ksort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function ksort(#[PhpStormStubsElementAvailable(from: '8.0')] int $flags = SORT_REGULAR) {} + + /** + * User defined sort + * @link https://php.net/manual/en/arrayiterator.uasort.php + * @param callable $callback+ * The compare function used for the sort. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function uasort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback) {} + + /** + * User defined sort + * @link https://php.net/manual/en/arrayiterator.uksort.php + * @param callable $callback+ * The compare function used for the sort. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function uksort(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback) {} + + /** + * Sort an array naturally + * @link https://php.net/manual/en/arrayiterator.natsort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function natsort() {} + + /** + * Sort an array naturally, case insensitive + * @link https://php.net/manual/en/arrayiterator.natcasesort.php + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function natcasesort() {} + + /** + * Unserialize + * @link https://php.net/manual/en/arrayiterator.unserialize.php + * @param string $data+ * The serialized ArrayIterator object to be unserialized. + *
+ * @return void + */ + #[TentativeType] + public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void {} + + /** + * Serialize + * @link https://php.net/manual/en/arrayiterator.serialize.php + * @return string The serialized ArrayIterator. + */ + #[TentativeType] + public function serialize(): string {} + + /** + * Rewind array back to the start + * @link https://php.net/manual/en/arrayiterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Return current array entry + * @link https://php.net/manual/en/arrayiterator.current.php + * @return mixed The current array entry. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Return current array key + * @link https://php.net/manual/en/arrayiterator.key.php + * @return string|int|null The key of the current element. + */ + #[TentativeType] + public function key(): string|int|null {} + + /** + * Move to next entry + * @link https://php.net/manual/en/arrayiterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Check whether array contains more entries + * @link https://php.net/manual/en/arrayiterator.valid.php + * @return bool + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Seek to position + * @link https://php.net/manual/en/arrayiterator.seek.php + * @param int $offset+ * The position to seek to. + *
+ * @return void + */ + #[TentativeType] + public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $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 {} +} + +/** + * This iterator allows to unset and modify values and keys while iterating over Arrays and Objects + * in the same way as the ArrayIterator. Additionally it is possible to iterate + * over the current iterator entry. + * @link https://php.net/manual/en/class.recursivearrayiterator.php + */ +class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator +{ + public const CHILD_ARRAYS_ONLY = 4; + + /** + * Returns whether current entry is an array or an object. + * @link https://php.net/manual/en/recursivearrayiterator.haschildren.php + * @return bool true if the current entry is an array or an object, + * otherwise false is returned. + */ + #[TentativeType] + public function hasChildren(): bool {} + + /** + * Returns an iterator for the current entry if it is an array or an object. + * @link https://php.net/manual/en/recursivearrayiterator.getchildren.php + * @return RecursiveArrayIterator|null An iterator for the current entry, if it is an array or object. + */ + #[TentativeType] + public function getChildren(): ?RecursiveArrayIterator {} +} diff --git a/phpstorm-stubs/SPL/SPL_c1.php b/phpstorm-stubs/SPL/SPL_c1.php new file mode 100644 index 0000000..23815b6 --- /dev/null +++ b/phpstorm-stubs/SPL/SPL_c1.php @@ -0,0 +1,2423 @@ + 'string'], default: '')] $filename) {} + + /** + * Gets the path without filename + * @link https://php.net/manual/en/splfileinfo.getpath.php + * @return string the path to the file. + * @since 5.1.2 + */ + #[TentativeType] + public function getPath(): string {} + + /** + * Gets the filename + * @link https://php.net/manual/en/splfileinfo.getfilename.php + * @return string The filename. + * @since 5.1.2 + */ + #[TentativeType] + public function getFilename(): string {} + + /** + * Gets the file extension + * @link https://php.net/manual/en/splfileinfo.getextension.php + * @return string a string containing the file extension, or an + * empty string if the file has no extension. + * @since 5.3.6 + */ + #[TentativeType] + public function getExtension(): string {} + + /** + * Gets the base name of the file + * @link https://php.net/manual/en/splfileinfo.getbasename.php + * @param string $suffix [optional]+ * Optional suffix to omit from the base name returned. + *
+ * @return string the base name without path information. + * @since 5.2.2 + */ + #[TentativeType] + public function getBasename(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $suffix = ''): string {} + + /** + * Gets the path to the file + * @link https://php.net/manual/en/splfileinfo.getpathname.php + * @return string The path to the file. + * @since 5.1.2 + */ + #[TentativeType] + public function getPathname(): string {} + + /** + * Gets file permissions + * @link https://php.net/manual/en/splfileinfo.getperms.php + * @return int|false The file permissions on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getPerms(): int|false {} + + /** + * Gets the inode for the file + * @link https://php.net/manual/en/splfileinfo.getinode.php + * @return int|false The inode number for the filesystem object on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getInode(): int|false {} + + /** + * Gets file size + * @link https://php.net/manual/en/splfileinfo.getsize.php + * @return int|false The filesize in bytes on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getSize(): int|false {} + + /** + * Gets the owner of the file + * @link https://php.net/manual/en/splfileinfo.getowner.php + * @return int|false The owner id in numerical format on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getOwner(): int|false {} + + /** + * Gets the file group + * @link https://php.net/manual/en/splfileinfo.getgroup.php + * @return int|false The group id in numerical format on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getGroup(): int|false {} + + /** + * Gets last access time of the file + * @link https://php.net/manual/en/splfileinfo.getatime.php + * @return int|false The time the file was last accessed on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getATime(): int|false {} + + /** + * Gets the last modified time + * @link https://php.net/manual/en/splfileinfo.getmtime.php + * @return int|false The last modified time for the file, in a Unix timestamp on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getMTime(): int|false {} + + /** + * Gets the inode change time + * @link https://php.net/manual/en/splfileinfo.getctime.php + * @return int|false The last change time, in a Unix timestamp on success, or FALSE on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getCTime(): int|false {} + + /** + * Gets file type + * @link https://php.net/manual/en/splfileinfo.gettype.php + * @return string|false A string representing the type of the entry. May be one of file, link, dir, block, fifo, char, socket, or unknown, or FALSE on failure. + * May be one of file, link, + * or dir + * @since 5.1.2 + */ + #[TentativeType] + public function getType(): string|false {} + + /** + * Tells if the entry is writable + * @link https://php.net/manual/en/splfileinfo.iswritable.php + * @return bool true if writable, false otherwise; + * @since 5.1.2 + */ + #[TentativeType] + public function isWritable(): bool {} + + /** + * Tells if file is readable + * @link https://php.net/manual/en/splfileinfo.isreadable.php + * @return bool true if readable, false otherwise. + * @since 5.1.2 + */ + #[TentativeType] + public function isReadable(): bool {} + + /** + * Tells if the file is executable + * @link https://php.net/manual/en/splfileinfo.isexecutable.php + * @return bool true if executable, false otherwise. + * @since 5.1.2 + */ + #[TentativeType] + public function isExecutable(): bool {} + + /** + * Tells if the object references a regular file + * @link https://php.net/manual/en/splfileinfo.isfile.php + * @return bool true if the file exists and is a regular file (not a link), false otherwise. + * @since 5.1.2 + */ + #[TentativeType] + public function isFile(): bool {} + + /** + * Tells if the file is a directory + * @link https://php.net/manual/en/splfileinfo.isdir.php + * @return bool true if a directory, false otherwise. + * @since 5.1.2 + */ + #[TentativeType] + public function isDir(): bool {} + + /** + * Tells if the file is a link + * @link https://php.net/manual/en/splfileinfo.islink.php + * @return bool true if the file is a link, false otherwise. + * @since 5.1.2 + */ + #[TentativeType] + public function isLink(): bool {} + + /** + * Gets the target of a link + * @link https://php.net/manual/en/splfileinfo.getlinktarget.php + * @return string|false The target of the filesystem link on success, or FALSE on failure. + * @since 5.2.2 + */ + #[TentativeType] + public function getLinkTarget(): string|false {} + + /** + * Gets absolute path to file + * @link https://php.net/manual/en/splfileinfo.getrealpath.php + * @return string|false the path to the file, or FALSE if the file does not exist. + * @since 5.2.2 + */ + #[TentativeType] + public function getRealPath(): string|false {} + + /** + * Gets an SplFileInfo object for the file + * @link https://php.net/manual/en/splfileinfo.getfileinfo.php + * @param string $class [optional]+ * Name of an SplFileInfo derived class to use. + *
+ * @return SplFileInfo An SplFileInfo object created for the file. + * @since 5.1.2 + */ + #[TentativeType] + public function getFileInfo(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $class = null): SplFileInfo {} + + /** + * Gets an SplFileInfo object for the path + * @link https://php.net/manual/en/splfileinfo.getpathinfo.php + * @param string $class [optional]+ * Name of an SplFileInfo derived class to use. + *
+ * @return SplFileInfo|null A SplFileInfo object for the parent path of the file on success, or NULL on failure. + * @since 5.1.2 + */ + #[TentativeType] + public function getPathInfo(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $class = null): ?SplFileInfo {} + + /** + * Gets an SplFileObject object for the file + * @link https://php.net/manual/en/splfileinfo.openfile.php + * @param string $mode [optional]+ * The mode for opening the file. See the fopen + * documentation for descriptions of possible modes. The default + * is read only. + *
+ * @param bool $useIncludePath [optional]+ *
+ * @param resource $context [optional]+ *
+ * @return SplFileObject The opened file as an SplFileObject object. + * @since 5.1.2 + */ + #[TentativeType] + public function openFile( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $mode = 'r', + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $useIncludePath = false, + $context = null + ): SplFileObject {} + + /** + * Sets the class name used with SplFileInfo::openFile + * @link https://php.net/manual/en/splfileinfo.setfileclass.php + * @param string $class [optional]+ * The class name to use when openFile() is called. + *
+ * @return void + * @since 5.1.2 + */ + #[TentativeType] + public function setFileClass(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $class = SplFileObject::class): void {} + + /** + * Sets the class used with getFileInfo and getPathInfo + * @link https://php.net/manual/en/splfileinfo.setinfoclass.php + * @param string $class [optional]+ * The class name to use. + *
+ * @return void + * @since 5.1.2 + */ + #[TentativeType] + public function setInfoClass(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $class = SplFileInfo::class): void {} + + /** + * Returns the path to the file as a string + * @link https://php.net/manual/en/splfileinfo.tostring.php + * @return string the path to the file. + * @since 5.1.2 + */ + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] + public function __toString() {} + + #[TentativeType] + final public function _bad_state_ex(): void {} + + public function __wakeup() {} + + /** + * @return array + * @since 7.4 + */ + #[TentativeType] + public function __debugInfo(): array {} +} + +/** + * The DirectoryIterator class provides a simple interface for viewing + * the contents of filesystem directories. + * @link https://php.net/manual/en/class.directoryiterator.php + */ +class DirectoryIterator extends SplFileInfo implements SeekableIterator +{ + /** + * Constructs a new directory iterator from a path + * @link https://php.net/manual/en/directoryiterator.construct.php + * @param string $directory + * @throws UnexpectedValueException if the path cannot be opened. + * @throws RuntimeException if the path is an empty string. + */ + public function __construct(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $directory) {} + + /** + * Determine if current DirectoryIterator item is '.' or '..' + * @link https://php.net/manual/en/directoryiterator.isdot.php + * @return bool true if the entry is . or .., + * otherwise false + */ + #[TentativeType] + public function isDot(): bool {} + + /** + * Rewind the DirectoryIterator back to the start + * @link https://php.net/manual/en/directoryiterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Check whether current DirectoryIterator position is a valid file + * @link https://php.net/manual/en/directoryiterator.valid.php + * @return bool true if the position is valid, otherwise false + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Return the key for the current DirectoryIterator item + * @link https://php.net/manual/en/directoryiterator.key.php + * @return string The key for the current DirectoryIterator item. + */ + #[TentativeType] + public function key(): mixed {} + + /** + * Return the current DirectoryIterator item. + * @link https://php.net/manual/en/directoryiterator.current.php + * @return DirectoryIterator The current DirectoryIterator item. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Move forward to next DirectoryIterator item + * @link https://php.net/manual/en/directoryiterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Seek to a DirectoryIterator item + * @link https://php.net/manual/en/directoryiterator.seek.php + * @param int $offset+ * The zero-based numeric position to seek to. + *
+ * @return void + */ + #[TentativeType] + public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): void {} +} + +/** + * The Filesystem iterator + * @link https://php.net/manual/en/class.filesystemiterator.php + */ +class FilesystemIterator extends DirectoryIterator +{ + public const CURRENT_MODE_MASK = 240; + public const CURRENT_AS_PATHNAME = 32; + public const CURRENT_AS_FILEINFO = 0; + public const CURRENT_AS_SELF = 16; + public const KEY_MODE_MASK = 3840; + public const KEY_AS_PATHNAME = 0; + public const FOLLOW_SYMLINKS = 16384; + public const KEY_AS_FILENAME = 256; + public const NEW_CURRENT_AND_KEY = 256; + public const SKIP_DOTS = 4096; + public const UNIX_PATHS = 8192; + public const OTHER_MODE_MASK = 28672; + + /** + * Constructs a new filesystem iterator + * @link https://php.net/manual/en/filesystemiterator.construct.php + * @param string $directory + * @param int $flags [optional] + * @throws UnexpectedValueException if the path cannot be found. + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $directory, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FilesystemIterator::KEY_AS_PATHNAME|FilesystemIterator::CURRENT_AS_FILEINFO|FilesystemIterator::SKIP_DOTS + ) {} + + /** + * Rewinds back to the beginning + * @link https://php.net/manual/en/filesystemiterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Move to the next file + * @link https://php.net/manual/en/filesystemiterator.next.php + * @return void + */ + public function next() {} + + /** + * Retrieve the key for the current file + * @link https://php.net/manual/en/filesystemiterator.key.php + * @return string the pathname or filename depending on the set flags. + * See the FilesystemIterator constants. + */ + #[TentativeType] + public function key(): string {} + + /** + * The current file + * @link https://php.net/manual/en/filesystemiterator.current.php + * @return string|SplFileInfo|self The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator constants. + */ + #[TentativeType] + public function current(): SplFileInfo|FilesystemIterator|string {} + + /** + * Get the handling flags + * @link https://php.net/manual/en/filesystemiterator.getflags.php + * @return int The integer value of the set flags. + */ + #[TentativeType] + public function getFlags(): int {} + + /** + * Sets handling flags + * @link https://php.net/manual/en/filesystemiterator.setflags.php + * @param int $flags+ * The handling flags to set. + * See the FilesystemIterator constants. + *
+ * @return void + */ + #[TentativeType] + public function setFlags( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $flags = null, + #[PhpStormStubsElementAvailable(from: '8.0')] int $flags + ): void {} +} + +/** + * The RecursiveDirectoryIterator provides + * an interface for iterating recursively over filesystem directories. + * @link https://php.net/manual/en/class.recursivedirectoryiterator.php + */ +class RecursiveDirectoryIterator extends FilesystemIterator implements RecursiveIterator +{ + /** + * Constructs a RecursiveDirectoryIterator + * @link https://php.net/manual/en/recursivedirectoryiterator.construct.php + * @param string $directory + * @param int $flags [optional] + * @throws UnexpectedValueException if the path cannot be found or is not a directory. + * @since 5.1.2 + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $directory, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FilesystemIterator::KEY_AS_PATHNAME|FilesystemIterator::CURRENT_AS_FILEINFO + ) {} + + /** + * Returns whether current entry is a directory and not '.' or '..' + * @link https://php.net/manual/en/recursivedirectoryiterator.haschildren.php + * @param bool $allowLinks [optional]+ *
+ * @return bool whether the current entry is a directory, but not '.' or '..' + */ + #[TentativeType] + public function hasChildren(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $allowLinks = false): bool {} + + /** + * Returns an iterator for the current entry if it is a directory + * @link https://php.net/manual/en/recursivedirectoryiterator.getchildren.php + * @return RecursiveDirectoryIterator An iterator for the current entry, if it is a directory. + */ + #[TentativeType] + public function getChildren(): RecursiveDirectoryIterator {} + + /** + * Get sub path + * @link https://php.net/manual/en/recursivedirectoryiterator.getsubpath.php + * @return string The sub path (sub directory). + */ + #[TentativeType] + public function getSubPath(): string {} + + /** + * Get sub path and name + * @link https://php.net/manual/en/recursivedirectoryiterator.getsubpathname.php + * @return string The sub path (sub directory) and filename. + */ + #[TentativeType] + public function getSubPathname(): string {} + + /** + * Rewinds back to the beginning + * @link https://php.net/manual/en/filesystemiterator.rewind.php + * @return void + */ + public function rewind() {} + + /** + * Move to the next file + * @link https://php.net/manual/en/filesystemiterator.next.php + * @return void + */ + public function next() {} + + /** + * Retrieve the key for the current file + * @link https://php.net/manual/en/filesystemiterator.key.php + * @return string the pathname or filename depending on the set flags. + * See the FilesystemIterator constants. + */ + public function key() {} + + /** + * The current file + * @link https://php.net/manual/en/filesystemiterator.current.php + * @return string|SplFileInfo|self The filename, file information, or $this depending on the set flags. + * See the FilesystemIterator constants. + */ + public function current() {} +} + +/** + * Iterates through a file system in a similar fashion to + * glob. + * @link https://php.net/manual/en/class.globiterator.php + */ +class GlobIterator extends FilesystemIterator implements Countable +{ + /** + * Construct a directory using glob + * @link https://php.net/manual/en/globiterator.construct.php + * @param $pattern + * @param int $flags [optional] + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FilesystemIterator::KEY_AS_PATHNAME|FilesystemIterator::CURRENT_AS_FILEINFO + ) {} + + /** + * Get the number of directories and files + * @link https://php.net/manual/en/globiterator.count.php + * @return int<0,max> The number of returned directories and files, as an + * integer. + */ + #[TentativeType] + public function count(): int {} +} + +/** + * The SplFileObject class offers an object oriented interface for a file. + * @link https://php.net/manual/en/class.splfileobject.php + */ +class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator +{ + /** + * Drop newlines at the end of a line. + */ + public const DROP_NEW_LINE = 1; + + /** + * Read on rewind/next. + */ + public const READ_AHEAD = 2; + + /** + * Skip empty lines in the file. This requires the {@see READ_AHEAD} flag to work as expected. + */ + public const SKIP_EMPTY = 4; + + /** + * Read lines as CSV rows. + */ + public const READ_CSV = 8; + + /** + * Construct a new file object. + * + * @link https://php.net/manual/en/splfileobject.construct.php + * + * @param string $filename The file to open + * @param string $mode [optional] The mode in which to open the file. See {@see fopen} for a list of allowed modes. + * @param bool $useIncludePath [optional] Whether to search in the include_path for filename + * @param resource $context [optional] A valid context resource created with {@see stream_context_create} + * + * @throws RuntimeException When the filename cannot be opened + * @throws LogicException When the filename is a directory + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $mode = 'r', + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $useIncludePath = false, + $context = null + ) {} + + /** + * Rewind the file to the first line + * @link https://php.net/manual/en/splfileobject.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Reached end of file + * @link https://php.net/manual/en/splfileobject.eof.php + * @return bool true if file is at EOF, false otherwise. + */ + #[TentativeType] + public function eof(): bool {} + + /** + * Not at EOF + * @link https://php.net/manual/en/splfileobject.valid.php + * @return bool true if not reached EOF, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Gets line from file + * @link https://php.net/manual/en/splfileobject.fgets.php + * @return string a string containing the next line from the file. + */ + #[TentativeType] + public function fgets(): string {} + + /** + * Read from file + * @link https://php.net/manual/en/splfileobject.fread.php + * @param int $length+ * The number of bytes to read. + *
+ * @return string|false returns the string read from the file or FALSE on failure. + * @since 5.5.11 + */ + #[TentativeType] + public function fread(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length): string|false {} + + /** + * Gets line from file and parse as CSV fields + * @link https://php.net/manual/en/splfileobject.fgetcsv.php + * @param string $separator [optional]+ * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl. + *
+ * @param string $enclosure [optional]+ * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl. + *
+ * @param string $escape [optional]+ * The escape character (one character only). Defaults as a backslash (\) or the value set using SplFileObject::setCsvControl. + *
+ * @return array|false|null an indexed array containing the fields read, or false on error. + * + *+ * A blank line in a CSV file will be returned as an array + * comprising a single null field unless using SplFileObject::SKIP_EMPTY | SplFileObject::DROP_NEW_LINE, + * in which case empty lines are skipped. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.1' => 'array|false'], default: 'array|false|null')] + public function fgetcsv( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $separator = ",", + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $enclosure = "\"", + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $escape = "\\" + ) {} + + /** + * Write a field array as a CSV line + * @link https://php.net/manual/en/splfileobject.fputcsv.php + * @param array $fields An array of values + * @param string $separator [optional]
+ * The field delimiter (one character only). Defaults as a comma or the value set using SplFileObject::setCsvControl. + *
+ * @param string $enclosure [optional]+ * The field enclosure character (one character only). Defaults as a double quotation mark or the value set using SplFileObject::setCsvControl. + *
+ * @param string $escape The optional escape parameter sets the escape character (one character only). + * @return int|false Returns the length of the written string or FALSE on failure. + * @since 5.4 + */ + #[TentativeType] + public function fputcsv( + array $fields, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $separator = ',', + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $enclosure = '"', + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $escape = "\\", + #[PhpStormStubsElementAvailable('8.1')] string $eol = PHP_EOL + ): int|false {} + + /** + * Set the delimiter and enclosure character for CSV + * @link https://php.net/manual/en/splfileobject.setcsvcontrol.php + * @param string $separator [optional]+ * The field delimiter (one character only). + *
+ * @param string $enclosure [optional]+ * The field enclosure character (one character only). + *
+ * @param string $escape [optional]+ * The field escape character (one character only). + *
+ * @return void + */ + #[TentativeType] + public function setCsvControl( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $separator = ",", + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $enclosure = "\"", + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $escape = "\\" + ): void {} + + /** + * Get the delimiter and enclosure character for CSV + * @link https://php.net/manual/en/splfileobject.getcsvcontrol.php + * @return array an indexed array containing the delimiter and enclosure character. + */ + #[TentativeType] + public function getCsvControl(): array {} + + /** + * Portable file locking + * @link https://php.net/manual/en/splfileobject.flock.php + * @param int $operation+ * operation is one of the following: + * LOCK_SH to acquire a shared lock (reader). + *
+ * @param int &$wouldBlock [optional]+ * Set to 1 if the lock would block (EWOULDBLOCK errno condition). + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function flock(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $operation, &$wouldBlock = null): bool {} + + /** + * Flushes the output to the file + * @link https://php.net/manual/en/splfileobject.fflush.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function fflush(): bool {} + + /** + * Return current file position + * @link https://php.net/manual/en/splfileobject.ftell.php + * @return int|false the position of the file pointer as an integer, or false on error. + */ + #[TentativeType] + public function ftell(): int|false {} + + /** + * Seek to a position + * @link https://php.net/manual/en/splfileobject.fseek.php + * @param int $offset+ * The offset. A negative value can be used to move backwards through the file which + * is useful when SEEK_END is used as the whence value. + *
+ * @param int $whence [optional]+ * whence values are: + * SEEK_SET - Set position equal to offset bytes. + * SEEK_CUR - Set position to current location plus offset. + * SEEK_END - Set position to end-of-file plus offset. + *
+ *+ * If whence is not specified, it is assumed to be SEEK_SET. + *
+ * @return int 0 if the seek was successful, -1 otherwise. Note that seeking + * past EOF is not considered an error. + */ + #[TentativeType] + public function fseek( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $whence = SEEK_SET + ): int {} + + /** + * Gets character from file + * @link https://php.net/manual/en/splfileobject.fgetc.php + * @return string|false a string containing a single character read from the file or false on EOF. + */ + #[TentativeType] + public function fgetc(): string|false {} + + /** + * Output all remaining data on a file pointer + * @link https://php.net/manual/en/splfileobject.fpassthru.php + * @return int the number of characters read from handle + * and passed through to the output. + */ + #[TentativeType] + public function fpassthru(): int {} + + /** + * Gets line from file and strip HTML tags + * @link https://php.net/manual/en/splfileobject.fgetss.php + * @param string $allowable_tags [optional]+ * You can use the optional third parameter to specify tags which should + * not be stripped. + *
+ * @return string|false a string containing the next line of the file with HTML and PHP + * code stripped, or false on error. + * @removed 8.0 + */ + #[Deprecated(since: '7.3')] + public function fgetss($allowable_tags = null) {} + + /** + * Parses input from file according to a format + * @link https://php.net/manual/en/splfileobject.fscanf.php + * @param string $format+ * The specified format as described in the sprintf documentation. + *
+ * @param mixed &...$vars [optional]+ * The optional assigned values. + *
+ * @return array|int|null If only one parameter is passed to this method, the values parsed will be + * returned as an array. Otherwise, if optional parameters are passed, the + * function will return the number of assigned values. The optional + * parameters must be passed by reference. + */ + #[TentativeType] + public function fscanf( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $format, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] &...$vars + ): array|int|null {} + + /** + * Write to file + * @link https://php.net/manual/en/splfileobject.fwrite.php + * @param string $data+ * The string to be written to the file. + *
+ * @param int $length [optional]+ * If the length argument is given, writing will + * stop after length bytes have been written or + * the end of string is reached, whichever comes + * first. + *
+ * @return int|false the number of bytes written, or 0 (false since 7.4) on error. + */ + #[LanguageLevelTypeAware(['7.4' => 'int|false'], default: 'int')] + #[TentativeType] + public function fwrite( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length = 0 + ): int|false {} + + /** + * Gets information about the file + * @link https://php.net/manual/en/splfileobject.fstat.php + * @return array an array with the statistics of the file; the format of the array + * is described in detail on the stat manual page. + */ + #[TentativeType] + public function fstat(): array {} + + /** + * Truncates the file to a given length + * @link https://php.net/manual/en/splfileobject.ftruncate.php + * @param int $size+ * The size to truncate to. + *
+ *+ * If size is larger than the file it is extended with null bytes. + *
+ *+ * If size is smaller than the file, the extra data will be lost. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function ftruncate(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $size): bool {} + + /** + * Retrieve current line of file + * @link https://php.net/manual/en/splfileobject.current.php + * @return string|array|false Retrieves the current line of the file. If the SplFileObject::READ_CSV flag is set, this method returns an array containing the current line parsed as CSV data. + */ + #[TentativeType] + public function current(): string|array|false {} + + /** + * Get line number + * @link https://php.net/manual/en/splfileobject.key.php + * @return int the current line number. + */ + #[TentativeType] + public function key(): int {} + + /** + * Read next line + * @link https://php.net/manual/en/splfileobject.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Sets flags for the SplFileObject + * @link https://php.net/manual/en/splfileobject.setflags.php + * @param int $flags+ * Bit mask of the flags to set. See + * SplFileObject constants + * for the available flags. + *
+ * @return void + */ + #[TentativeType] + public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void {} + + /** + * Gets flags for the SplFileObject + * @link https://php.net/manual/en/splfileobject.getflags.php + * @return int an integer representing the flags. + */ + #[TentativeType] + public function getFlags(): int {} + + /** + * Set maximum line length + * @link https://php.net/manual/en/splfileobject.setmaxlinelen.php + * @param int $maxLength+ * The maximum length of a line. + *
+ * @return void + */ + #[TentativeType] + public function setMaxLineLen(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxLength): void {} + + /** + * Get maximum line length + * @link https://php.net/manual/en/splfileobject.getmaxlinelen.php + * @return int<0, max> the maximum line length if one has been set with + * SplFileObject::setMaxLineLen, default is 0. + */ + #[TentativeType] + public function getMaxLineLen(): int {} + + /** + * SplFileObject does not have children + * @link https://php.net/manual/en/splfileobject.haschildren.php + * @return bool false + * @since 5.1.2 + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.2' => 'false'], default: 'bool')] + public function hasChildren() {} + + /** + * No purpose + * @link https://php.net/manual/en/splfileobject.getchildren.php + * @return null|RecursiveIterator An SplFileObject does not have children so this method returns NULL. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.2' => 'null'], default: 'null|RecursiveIterator')] + public function getChildren() {} + + /** + * Seek to specified line + * @link https://php.net/manual/en/splfileobject.seek.php + * @param int $line+ * The zero-based line number to seek to. + *
+ * @return void + */ + #[TentativeType] + public function seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $line): void {} + + /** + * Alias of SplFileObject::fgets + * @link https://php.net/manual/en/splfileobject.getcurrentline.php + * @return string Returns a string containing the next line from the file. + * @since 5.1.2 + */ + #[TentativeType] + public function getCurrentLine(): string {} + + /** + * Alias of SplFileObject::current + * @link https://php.net/manual/en/splfileobject.tostring.php + */ + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] + public function __toString() {} +} + +/** + * The SplTempFileObject class offers an object oriented interface for a temporary file. + * @link https://php.net/manual/en/class.spltempfileobject.php + */ +class SplTempFileObject extends SplFileObject +{ + /** + * Construct a new temporary file object + * @link https://php.net/manual/en/spltempfileobject.construct.php + * @param int $maxMemory [optional] + * @throws RuntimeException if an error occurs. + * @since 5.1.2 + */ + public function __construct(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $maxMemory = 2097152) {} +} + +/** + * @template TValue + * The SplDoublyLinkedList class provides the main functionalities of a doubly linked list. + * @link https://php.net/manual/en/class.spldoublylinkedlist.php + * @template-implements Iterator+ * The value to push. + *
+ * @return void + */ + #[TentativeType] + public function push(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Prepends the doubly linked list with an element + * @link https://php.net/manual/en/spldoublylinkedlist.unshift.php + * @param mixed $value+ * The value to unshift. + *
+ * @return void + */ + #[TentativeType] + public function unshift(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Peeks at the node from the end of the doubly linked list + * @link https://php.net/manual/en/spldoublylinkedlist.top.php + * @return mixed The value of the last node. + */ + #[TentativeType] + public function top(): mixed {} + + /** + * Peeks at the node from the beginning of the doubly linked list + * @link https://php.net/manual/en/spldoublylinkedlist.bottom.php + * @return mixed The value of the first node. + */ + #[TentativeType] + public function bottom(): mixed {} + + /** + * Counts the number of elements in the doubly linked list. + * @link https://php.net/manual/en/spldoublylinkedlist.count.php + * @return int the number of elements in the doubly linked list. + */ + #[TentativeType] + public function count(): int {} + + /** + * Checks whether the doubly linked list is empty. + * @link https://php.net/manual/en/spldoublylinkedlist.isempty.php + * @return bool whether the doubly linked list is empty. + */ + #[TentativeType] + public function isEmpty(): bool {} + + /** + * Sets the mode of iteration + * @link https://php.net/manual/en/spldoublylinkedlist.setiteratormode.php + * @param int $mode+ * There are two orthogonal sets of modes that can be set: + *
+ * The direction of the iteration (either one or the other): + * SplDoublyLinkedList::IT_MODE_LIFO (Stack style) + * @return int + */ + #[TentativeType] + public function setIteratorMode(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode): int {} + + /** + * Returns the mode of iteration + * @link https://php.net/manual/en/spldoublylinkedlist.getiteratormode.php + * @return int the different modes and flags that affect the iteration. + */ + #[TentativeType] + public function getIteratorMode(): int {} + + /** + * Returns whether the requested $index exists + * @link https://php.net/manual/en/spldoublylinkedlist.offsetexists.php + * @param mixed $index+ * The index being checked. + *
+ * @return bool true if the requested index exists, otherwise false + */ + #[TentativeType] + public function offsetExists($index): bool {} + + /** + * Returns the value at the specified $index + * @link https://php.net/manual/en/spldoublylinkedlist.offsetget.php + * @param mixed $index+ * The index with the value. + *
+ * @return mixed The value at the specified index. + */ + #[TentativeType] + public function offsetGet($index): mixed {} + + /** + * Sets the value at the specified $index to $newval + * @link https://php.net/manual/en/spldoublylinkedlist.offsetset.php + * @param mixed $index+ * The index being set. + *
+ * @param mixed $value+ * The new value for the index. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet($index, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Unsets the value at the specified $index + * @link https://php.net/manual/en/spldoublylinkedlist.offsetunset.php + * @param mixed $index+ * The index being unset. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset($index): void {} + + /** + * Rewind iterator back to the start + * @link https://php.net/manual/en/spldoublylinkedlist.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Return current array entry + * @link https://php.net/manual/en/spldoublylinkedlist.current.php + * @return mixed The current node value. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Return current node index + * @link https://php.net/manual/en/spldoublylinkedlist.key.php + * @return string|float|int|bool|null The current node index. + */ + #[TentativeType] + public function key(): int {} + + /** + * Move to next entry + * @link https://php.net/manual/en/spldoublylinkedlist.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Move to previous entry + * @link https://php.net/manual/en/spldoublylinkedlist.prev.php + * @return void + */ + #[TentativeType] + public function prev(): void {} + + /** + * Check whether the doubly linked list contains more nodes + * @link https://php.net/manual/en/spldoublylinkedlist.valid.php + * @return bool true if the doubly linked list contains any more nodes, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Unserializes the storage + * @link https://php.net/manual/en/spldoublylinkedlist.serialize.php + * @param string $data The serialized string. + * @return void + * @since 5.4 + */ + #[TentativeType] + public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void {} + + /** + * Serializes the storage + * @link https://php.net/manual/en/spldoublylinkedlist.unserialize.php + * @return string The serialized string. + * @since 5.4 + */ + #[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 {} +} + +/** + * @template TValue + * The SplQueue class provides the main functionalities of a queue implemented using a doubly linked list. + * @link https://php.net/manual/en/class.splqueue.php + */ +class SplQueue extends SplDoublyLinkedList +{ + /** + * Adds an element to the queue. + * @link https://php.net/manual/en/splqueue.enqueue.php + * @param TValue $value+ * The value to enqueue. + *
+ * @return void + */ + #[TentativeType] + public function enqueue(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Dequeues a node from the queue + * @link https://php.net/manual/en/splqueue.dequeue.php + * @return TValue The value of the dequeued node. + */ + #[TentativeType] + public function dequeue(): mixed {} + + /** + * Sets the mode of iteration + * @link https://php.net/manual/en/spldoublylinkedlist.setiteratormode.php + * @param int $mode+ * There are two orthogonal sets of modes that can be set: + *
+ * The direction of the iteration (either one or the other): + * SplDoublyLinkedList::IT_MODE_LIFO (Stack style) + * @return void + */ + public function setIteratorMode($mode) {} +} + +/** + * @template TValue + * The SplStack class provides the main functionalities of a stack implemented using a doubly linked list. + * @link https://php.net/manual/en/class.splstack.php + * @template-extends SplDoublyLinkedList+ * There are two orthogonal sets of modes that can be set: + *
+ * The direction of the iteration (either one or the other): + * SplDoublyLinkedList::IT_MODE_LIFO (Stack style) + * @return void + */ + public function setIteratorMode($mode) {} +} + +/** + * @template TValue + * The SplHeap class provides the main functionalities of an Heap. + * @link https://php.net/manual/en/class.splheap.php + * @template-implements Iterator+ * The value to insert. + *
+ * @return bool + */ + #[TentativeType] + public function insert(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): bool {} + + /** + * Peeks at the node from the top of the heap + * @link https://php.net/manual/en/splheap.top.php + * @return TValue The value of the node on the top. + */ + #[TentativeType] + public function top(): mixed {} + + /** + * Counts the number of elements in the heap. + * @link https://php.net/manual/en/splheap.count.php + * @return int the number of elements in the heap. + */ + #[TentativeType] + public function count(): int {} + + /** + * Checks whether the heap is empty. + * @link https://php.net/manual/en/splheap.isempty.php + * @return bool whether the heap is empty. + */ + #[TentativeType] + public function isEmpty(): bool {} + + /** + * Rewind iterator back to the start (no-op) + * @link https://php.net/manual/en/splheap.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Return current node pointed by the iterator + * @link https://php.net/manual/en/splheap.current.php + * @return TValue The current node value. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Return current node index + * @link https://php.net/manual/en/splheap.key.php + * @return int The current node index. + */ + #[TentativeType] + public function key(): int {} + + /** + * Move to the next node + * @link https://php.net/manual/en/splheap.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Check whether the heap contains more nodes + * @link https://php.net/manual/en/splheap.valid.php + * @return bool true if the heap contains any more nodes, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Recover from the corrupted state and allow further actions on the heap. + * @link https://php.net/manual/en/splheap.recoverfromcorruption.php + * @return bool + */ + #[TentativeType] + public function recoverFromCorruption(): bool {} + + /** + * Compare elements in order to place them correctly in the heap while sifting up. + * @link https://php.net/manual/en/splheap.compare.php + * @param mixed $value1+ * The value of the first node being compared. + *
+ * @param mixed $value2+ * The value of the second node being compared. + *
+ * @return int Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise. + * + *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.
+ */
+ abstract protected function compare($value1, $value2);
+
+ /**
+ * @return bool
+ */
+ #[TentativeType]
+ public function isCorrupted(): bool {}
+
+ /**
+ * @return array
+ * @since 7.4
+ */
+ #[TentativeType]
+ public function __debugInfo(): array {}
+}
+
+/**
+ * @template TValue
+ * The SplMinHeap class provides the main functionalities of a heap, keeping the minimum on the top.
+ * @link https://php.net/manual/en/class.splminheap.php
+ * @template-extends SplHeap
+ * The value of the first node being compared.
+ *
+ * The value of the second node being compared.
+ *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position. + */ + #[TentativeType] + protected function compare( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value1, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value2 + ): int {} + + /** + * Extracts a node from top of the heap and sift up. + * @link https://php.net/manual/en/splheap.extract.php + * @return TValue The value of the extracted node. + */ + public function extract() {} + + /** + * Inserts an element in the heap by sifting it up. + * @link https://php.net/manual/en/splheap.insert.php + * @param TValue $value
+ * The value to insert. + *
+ * @return true + */ + public function insert($value) {} + + /** + * Peeks at the node from the top of the heap + * @link https://php.net/manual/en/splheap.top.php + * @return TValue The value of the node on the top. + */ + public function top() {} + + /** + * Counts the number of elements in the heap. + * @link https://php.net/manual/en/splheap.count.php + * @return int the number of elements in the heap. + */ + public function count() {} + + /** + * Checks whether the heap is empty. + * @link https://php.net/manual/en/splheap.isempty.php + * @return bool whether the heap is empty. + */ + public function isEmpty() {} + + /** + * Rewind iterator back to the start (no-op) + * @link https://php.net/manual/en/splheap.rewind.php + * @return void + */ + public function rewind() {} + + /** + * Return current node pointed by the iterator + * @link https://php.net/manual/en/splheap.current.php + * @return TValue The current node value. + */ + public function current() {} + + /** + * Return current node index + * @link https://php.net/manual/en/splheap.key.php + * @return int The current node index. + */ + public function key() {} + + /** + * Move to the next node + * @link https://php.net/manual/en/splheap.next.php + * @return void + */ + public function next() {} + + /** + * Check whether the heap contains more nodes + * @link https://php.net/manual/en/splheap.valid.php + * @return bool true if the heap contains any more nodes, false otherwise. + */ + public function valid() {} + + /** + * Recover from the corrupted state and allow further actions on the heap. + * @link https://php.net/manual/en/splheap.recoverfromcorruption.php + * @return void + */ + public function recoverFromCorruption() {} +} + +/** + * @template TValue + * The SplMaxHeap class provides the main functionalities of a heap, keeping the maximum on the top. + * @link https://php.net/manual/en/class.splmaxheap.php + * @template-extends SplHeap+ * The value of the first node being compared. + *
+ * @param TValue $value2+ * The value of the second node being compared. + *
+ * @return int Result of the comparison, positive integer if value1 is greater than value2, 0 if they are equal, negative integer otherwise. + * + *
+ * Having multiple elements with the same value in a Heap is not recommended. They will end up in an arbitrary relative position.
+ */
+ #[TentativeType]
+ protected function compare(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value1,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value2
+ ): int {}
+}
+
+/**
+ * @template TPriority
+ * @template TValue
+ * The SplPriorityQueue class provides the main functionalities of an
+ * prioritized queue, implemented using a heap.
+ * @link https://php.net/manual/en/class.splpriorityqueue.php
+ * @template-implements Iterator
+ * The priority of the first node being compared.
+ *
+ * The priority of the second node being compared.
+ *
+ * Multiple elements with the same priority will get dequeued in no particular order. + */ + #[TentativeType] + public function compare( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $priority1, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $priority2 + ): int {} + + /** + * Inserts an element in the queue by sifting it up. + * @link https://php.net/manual/en/splpriorityqueue.insert.php + * @param TValue $value
+ * The value to insert. + *
+ * @param TPriority $priority+ * The associated priority. + *
+ * @return true + */ + public function insert( + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $priority + ) {} + + /** + * Sets the mode of extraction + * @link https://php.net/manual/en/splpriorityqueue.setextractflags.php + * @param int $flags+ * Defines what is extracted by SplPriorityQueue::current, + * SplPriorityQueue::top and + * SplPriorityQueue::extract. + *
+ * SplPriorityQueue::EXTR_DATA (0x00000001): Extract the data + * @return int + */ + #[TentativeType] + public function setExtractFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): int {} + + /** + * Peeks at the node from the top of the queue + * @link https://php.net/manual/en/splpriorityqueue.top.php + * @return TValue The value or priority (or both) of the top node, depending on the extract flag. + */ + #[TentativeType] + public function top(): mixed {} + + /** + * Extracts a node from top of the heap and sift up. + * @link https://php.net/manual/en/splpriorityqueue.extract.php + * @return TValue The value or priority (or both) of the extracted node, depending on the extract flag. + */ + #[TentativeType] + public function extract(): mixed {} + + /** + * Counts the number of elements in the queue. + * @link https://php.net/manual/en/splpriorityqueue.count.php + * @return int the number of elements in the queue. + */ + #[TentativeType] + public function count(): int {} + + /** + * Checks whether the queue is empty. + * @link https://php.net/manual/en/splpriorityqueue.isempty.php + * @return bool whether the queue is empty. + */ + #[TentativeType] + public function isEmpty(): bool {} + + /** + * Rewind iterator back to the start (no-op) + * @link https://php.net/manual/en/splpriorityqueue.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Return current node pointed by the iterator + * @link https://php.net/manual/en/splpriorityqueue.current.php + * @return TValue The value or priority (or both) of the current node, depending on the extract flag. + */ + #[TentativeType] + public function current(): mixed {} + + /** + * Return current node index + * @link https://php.net/manual/en/splpriorityqueue.key.php + * @return int The current node index. + */ + #[TentativeType] + public function key(): int {} + + /** + * Move to the next node + * @link https://php.net/manual/en/splpriorityqueue.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Check whether the queue contains more nodes + * @link https://php.net/manual/en/splpriorityqueue.valid.php + * @return bool true if the queue contains any more nodes, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Recover from the corrupted state and allow further actions on the queue. + * @link https://php.net/manual/en/splpriorityqueue.recoverfromcorruption.php + * @return void + */ + public function recoverFromCorruption() {} + + /** + * @return bool + */ + #[TentativeType] + public function isCorrupted(): bool {} + + /** + * @return int + */ + #[TentativeType] + public function getExtractFlags(): int {} + + /** + * @return array + * @since 7.4 + */ + #[TentativeType] + public function __debugInfo(): array {} +} + +/** + * @template TValue + * The SplFixedArray class provides the main functionalities of array. The + * main differences between a SplFixedArray and a normal PHP array is that + * the SplFixedArray is of fixed length and allows only integers within + * the range as indexes. The advantage is that it allows a faster array + * implementation. + * @link https://php.net/manual/en/class.splfixedarray.php + * @template-implements Iterator+ * The array to import. + *
+ * @param bool $preserveKeys [optional]+ * Try to save the numeric indexes used in the original array. + *
+ * @return SplFixedArray an instance of SplFixedArray + * containing the array content. + */ + #[TentativeType] + public static function fromArray( + #[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $array, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $preserveKeys = true + ): SplFixedArray {} + + /** + * Gets the size of the array + * @link https://php.net/manual/en/splfixedarray.getsize.php + * @return int the size of the array, as an integer. + */ + #[TentativeType] + public function getSize(): int {} + + /** + * Change the size of an array + * @link https://php.net/manual/en/splfixedarray.setsize.php + * @param int $size+ * The new array size. + *
+ * @return bool + */ + public function setSize(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $size) {} + + /** + * Returns whether the requested index exists + * @link https://php.net/manual/en/splfixedarray.offsetexists.php + * @param int $index+ * The index being checked. + *
+ * @return bool true if the requested index exists, otherwise false + */ + #[TentativeType] + public function offsetExists($index): bool {} + + /** + * Returns the value at the specified index + * @link https://php.net/manual/en/splfixedarray.offsetget.php + * @param int $index+ * The index with the value. + *
+ * @return TValue The value at the specified index. + */ + #[TentativeType] + public function offsetGet($index): mixed {} + + /** + * Sets a new value at a specified index + * @link https://php.net/manual/en/splfixedarray.offsetset.php + * @param int $index+ * The index being set. + *
+ * @param TValue $value+ * The new value for the index. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet($index, #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): void {} + + /** + * Unsets the value at the specified $index + * @link https://php.net/manual/en/splfixedarray.offsetunset.php + * @param int $index+ * The index being unset. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset($index): void {} + + /** + * Rewind iterator back to the start + * @link https://php.net/manual/en/splfixedarray.rewind.php + * @return void + */ + public function rewind() {} + + /** + * Return current array entry + * @link https://php.net/manual/en/splfixedarray.current.php + * @return TValue The current element value. + */ + public function current() {} + + /** + * Return current array index + * @link https://php.net/manual/en/splfixedarray.key.php + * @return int The current array index. + */ + public function key() {} + + /** + * Move to next entry + * @link https://php.net/manual/en/splfixedarray.next.php + * @return void + */ + public function next() {} + + /** + * Check whether the array contains more elements + * @link https://php.net/manual/en/splfixedarray.valid.php + * @return bool true if the array contains any more elements, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + #[TentativeType] + public function __wakeup(): void {} + + #[PhpStormStubsElementAvailable(from: '8.2')] + public function __serialize(): array {} + + /** + * @param array $data + */ + #[PhpStormStubsElementAvailable(from: '8.2')] + public function __unserialize(array $data): void {} + + /** + * @return Iterator+ * The SplSubject notifying the observer of an update. + *
+ * @return void + */ + #[TentativeType] + public function update(SplSubject $subject): void; +} + +/** + * The SplSubject interface is used alongside + * SplObserver to implement the Observer Design Pattern. + * @link https://php.net/manual/en/class.splsubject.php + */ +interface SplSubject +{ + /** + * Attach an SplObserver + * @link https://php.net/manual/en/splsubject.attach.php + * @param SplObserver $observer+ * The SplObserver to attach. + *
+ * @return void + */ + #[TentativeType] + public function attach(SplObserver $observer): void; + + /** + * Detach an observer + * @link https://php.net/manual/en/splsubject.detach.php + * @param SplObserver $observer+ * The SplObserver to detach. + *
+ * @return void + */ + #[TentativeType] + public function detach(SplObserver $observer): void; + + /** + * Notify an observer + * @link https://php.net/manual/en/splsubject.notify.php + * @return void + */ + #[TentativeType] + public function notify(): void; +} + +/** + * @template TObject of object + * @template TValue + * The SplObjectStorage class provides a map from objects to data or, by + * ignoring data, an object set. This dual purpose can be useful in many + * cases involving the need to uniquely identify objects. + * @link https://php.net/manual/en/class.splobjectstorage.php + * @template-implements Iterator+ * The object to add. + *
+ * @param TValue $info [optional]+ * The data to associate with the object. + *
+ * @return void + */ + #[TentativeType] + public function attach( + #[LanguageLevelTypeAware(['8.0' => 'object'], default: '')] $object, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $info = null + ): void {} + + /** + * Removes an object from the storage + * @link https://php.net/manual/en/splobjectstorage.detach.php + * @param TObject $object+ * The object to remove. + *
+ * @return void + */ + #[TentativeType] + public function detach(#[LanguageLevelTypeAware(['8.0' => 'object'], default: '')] $object): void {} + + /** + * Checks if the storage contains a specific object + * @link https://php.net/manual/en/splobjectstorage.contains.php + * @param TObject $object+ * The object to look for. + *
+ * @return bool true if the object is in the storage, false otherwise. + */ + #[TentativeType] + public function contains(#[LanguageLevelTypeAware(['8.0' => 'object'], default: '')] $object): bool {} + + /** + * Adds all objects from another storage + * @link https://php.net/manual/en/splobjectstorage.addall.php + * @param SplObjectStorage+ * The storage you want to import. + *
+ * @return int + */ + #[TentativeType] + public function addAll(#[LanguageLevelTypeAware(['8.0' => 'SplObjectStorage'], default: '')] $storage): int {} + + /** + * Removes objects contained in another storage from the current storage + * @link https://php.net/manual/en/splobjectstorage.removeall.php + * @param SplObjectStorage+ * The storage containing the elements to remove. + *
+ * @return int + */ + #[TentativeType] + public function removeAll(#[LanguageLevelTypeAware(['8.0' => 'SplObjectStorage'], default: '')] $storage): int {} + + /** + * Removes all objects except for those contained in another storage from the current storage + * @link https://php.net/manual/en/splobjectstorage.removeallexcept.php + * @param SplObjectStorage+ * The storage containing the elements to retain in the current storage. + *
+ * @return int + * @since 5.3.6 + */ + #[TentativeType] + public function removeAllExcept(#[LanguageLevelTypeAware(['8.0' => 'SplObjectStorage'], default: '')] $storage): int {} + + /** + * Returns the data associated with the current iterator entry + * @link https://php.net/manual/en/splobjectstorage.getinfo.php + * @return TValue The data associated with the current iterator position. + */ + #[TentativeType] + public function getInfo(): mixed {} + + /** + * Sets the data associated with the current iterator entry + * @link https://php.net/manual/en/splobjectstorage.setinfo.php + * @param TValue $info+ * The data to associate with the current iterator entry. + *
+ * @return void + */ + #[TentativeType] + public function setInfo(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $info): void {} + + /** + * Returns the number of objects in the storage + * @link https://php.net/manual/en/splobjectstorage.count.php + * @param int $mode [optional] + * @return int The number of objects in the storage. + */ + #[TentativeType] + public function count(#[PhpStormStubsElementAvailable(from: '8.0')] int $mode = COUNT_NORMAL): int {} + + /** + * Rewind the iterator to the first storage element + * @link https://php.net/manual/en/splobjectstorage.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Returns if the current iterator entry is valid + * @link https://php.net/manual/en/splobjectstorage.valid.php + * @return bool true if the iterator entry is valid, false otherwise. + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Returns the index at which the iterator currently is + * @link https://php.net/manual/en/splobjectstorage.key.php + * @return int The index corresponding to the position of the iterator. + */ + #[TentativeType] + public function key(): int {} + + /** + * Returns the current storage entry + * @link https://php.net/manual/en/splobjectstorage.current.php + * @return TObject The object at the current iterator position. + */ + #[TentativeType] + public function current(): object {} + + /** + * Move to the next entry + * @link https://php.net/manual/en/splobjectstorage.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * Unserializes a storage from its string representation + * @link https://php.net/manual/en/splobjectstorage.unserialize.php + * @param string $data+ * The serialized representation of a storage. + *
+ * @return void + * @since 5.2.2 + */ + #[TentativeType] + public function unserialize(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): void {} + + /** + * Serializes the storage + * @link https://php.net/manual/en/splobjectstorage.serialize.php + * @return string A string representing the storage. + * @since 5.2.2 + */ + #[TentativeType] + public function serialize(): string {} + + /** + * Checks whether an object exists in the storage + * @link https://php.net/manual/en/splobjectstorage.offsetexists.php + * @param TObject $object+ * The object to look for. + *
+ * @return bool true if the object exists in the storage, + * and false otherwise. + */ + #[TentativeType] + public function offsetExists($object): bool {} + + /** + * Associates data to an object in the storage + * @link https://php.net/manual/en/splobjectstorage.offsetset.php + * @param TObject $object+ * The object to associate data with. + *
+ * @param TValue $info [optional]+ * The data to associate with the object. + *
+ * @return void + */ + #[TentativeType] + public function offsetSet( + #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: '')] $object, + #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $info = null + ): void {} + + /** + * Removes an object from the storage + * @link https://php.net/manual/en/splobjectstorage.offsetunset.php + * @param TObject $object+ * The object to remove. + *
+ * @return void + */ + #[TentativeType] + public function offsetUnset($object): void {} + + /** + * Returns the data associated with an+ * The object to look for. + *
+ * @return TValue The data previously associated with the object in the storage. + */ + #[TentativeType] + public function offsetGet($object): mixed {} + + /** + * Calculate a unique identifier for the contained objects + * @link https://php.net/manual/en/splobjectstorage.gethash.php + * @param TObject $object+ * object whose identifier is to be calculated. + *
+ * @return string A string with the calculated identifier. + * @since 5.4 + */ + #[TentativeType] + public function getHash(#[LanguageLevelTypeAware(['8.0' => 'object'], default: '')] $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 {} +} + +/** + * An Iterator that sequentially iterates over all attached iterators + * @link https://php.net/manual/en/class.multipleiterator.php + */ +class MultipleIterator implements Iterator +{ + public const MIT_NEED_ANY = 0; + public const MIT_NEED_ALL = 1; + public const MIT_KEYS_NUMERIC = 0; + public const MIT_KEYS_ASSOC = 2; + + /** + * Constructs a new MultipleIterator + * @link https://php.net/manual/en/multipleiterator.construct.php + * @param int $flags Defaults to MultipleIterator::MIT_NEED_ALL | MultipleIterator::MIT_KEYS_NUMERIC + */ + public function __construct( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $flags, + #[PhpStormStubsElementAvailable(from: '8.0')] int $flags = MultipleIterator::MIT_NEED_ALL|MultipleIterator::MIT_KEYS_NUMERIC + ) {} + + /** + * Gets the flag information + * @link https://php.net/manual/en/multipleiterator.getflags.php + * @return int Information about the flags, as an integer. + */ + #[TentativeType] + public function getFlags(): int {} + + /** + * Sets flags + * @link https://php.net/manual/en/multipleiterator.setflags.php + * @param int $flags+ * The flags to set, according to the + * Flag Constants + *
+ * @return void + */ + #[TentativeType] + public function setFlags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): void {} + + /** + * Attaches iterator information + * @link https://php.net/manual/en/multipleiterator.attachiterator.php + * @param Iterator $iterator+ * The new iterator to attach. + *
+ * @param int|string|null $info [optional]+ * The associative information for the Iterator, which must be an + * integer, a string, or null. + *
+ * @return void Description... + */ + #[TentativeType] + public function attachIterator(Iterator $iterator, #[LanguageLevelTypeAware(['8.0' => 'int|string|null'], default: '')] $info = null): void {} + + /** + * Detaches an iterator + * @link https://php.net/manual/en/multipleiterator.detachiterator.php + * @param Iterator $iterator+ * The iterator to detach. + *
+ * @return void + */ + #[TentativeType] + public function detachIterator(Iterator $iterator): void {} + + /** + * Checks if an iterator is attached + * @link https://php.net/manual/en/multipleiterator.containsiterator.php + * @param Iterator $iterator+ * The iterator to check. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function containsIterator(Iterator $iterator): bool {} + + /** + * Gets the number of attached iterator instances + * @link https://php.net/manual/en/multipleiterator.countiterators.php + * @return int The number of attached iterator instances (as an integer). + */ + #[TentativeType] + public function countIterators(): int {} + + /** + * Rewinds all attached iterator instances + * @link https://php.net/manual/en/multipleiterator.rewind.php + * @return void + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Checks the validity of sub iterators + * @link https://php.net/manual/en/multipleiterator.valid.php + * @return bool true if one or all sub iterators are valid depending on flags, + * otherwise false + */ + #[TentativeType] + public function valid(): bool {} + + /** + * Gets the registered iterator instances + * @link https://php.net/manual/en/multipleiterator.key.php + * @return array An array of all registered iterator instances, + * or false if no sub iterator is attached. + */ + #[TentativeType] + public function key(): array {} + + /** + * Gets the registered iterator instances + * @link https://php.net/manual/en/multipleiterator.current.php + * @return array An array containing the current values of each attached iterator, + * or false if no iterators are attached. + * @throws RuntimeException if mode MIT_NEED_ALL is set and at least one attached iterator is not valid. + * @throws InvalidArgumentException if a key is NULL and MIT_KEYS_ASSOC is set. + */ + #[TentativeType] + public function current(): array {} + + /** + * Moves all attached iterator instances forward + * @link https://php.net/manual/en/multipleiterator.next.php + * @return void + */ + #[TentativeType] + public function next(): void {} + + /** + * @return array + * @since 7.4 + */ + #[TentativeType] + public function __debugInfo(): array {} +} diff --git a/phpstorm-stubs/SPL/SPL_f.php b/phpstorm-stubs/SPL/SPL_f.php new file mode 100644 index 0000000..b0cb5f7 --- /dev/null +++ b/phpstorm-stubs/SPL/SPL_f.php @@ -0,0 +1,201 @@ + + * + * @param string|null $file_extensions [optional]+ * By default it checks all include paths to + * contain filenames built up by the lowercase class name appended by the + * filename extensions .inc and .php. + *
+ * @return void + * @since 5.1.2 + */ +function spl_autoload(string $class, ?string $file_extensions): void {} + +/** + * Register and return default file extensions for spl_autoload + * @link https://php.net/manual/en/function.spl-autoload-extensions.php + * @param string|null $file_extensions [optional]+ * When calling without an argument, it simply returns the current list + * of extensions each separated by comma. To modify the list of file + * extensions, simply invoke the functions with the new list of file + * extensions to use in a single string with each extensions separated + * by comma. + *
+ * @return string A comma delimited list of default file extensions for + * spl_autoload. + * @since 5.1.2 + */ +function spl_autoload_extensions(?string $file_extensions): string {} + +/** + * Register given function as __autoload() implementation + * @link https://php.net/manual/en/function.spl-autoload-register.php + * @param callable|null $callback [optional]+ * The autoload function being registered. + * If no parameter is provided, then the default implementation of + * spl_autoload will be registered. + *
+ * @param bool $throw This parameter specifies whether spl_autoload_register() should throw exceptions when the + * autoload_function cannot be registered. Ignored since since 8.0. + * @param bool $prepend If true, spl_autoload_register() will prepend the autoloader on the autoload stack instead of + * appending it. + * @return bool true on success or false on failure. + * @throws TypeError Since 8.0. + * @since 5.1.2 + */ +function spl_autoload_register(?callable $callback, bool $throw = true, bool $prepend = false): bool {} + +/** + * Unregister given function as __autoload() implementation + * @link https://php.net/manual/en/function.spl-autoload-unregister.php + * @param callable $callback+ * The autoload function being unregistered. + *
+ * @return bool true on success or false on failure. + * @since 5.1.2 + */ +function spl_autoload_unregister(callable $callback): bool {} + +/** + * Return all registered __autoload() functions + * @link https://php.net/manual/en/function.spl-autoload-functions.php + * @return array|false An array of all registered __autoload functions. + * If the autoload stack is not activated then the return value is false. + * If no function is registered the return value will be an empty array. + * @since 5.1.2 + */ +#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")] +function spl_autoload_functions() {} + +/** + * Try all registered __autoload() functions to load the requested class + * @link https://php.net/manual/en/function.spl-autoload-call.php + * @param string $class+ * The class name being searched. + *
+ * @return void + * @since 5.1.2 + */ +function spl_autoload_call(string $class): void {} + +/** + * Return the parent classes of the given class + * @link https://php.net/manual/en/function.class-parents.php + * @param object|string $object_or_class+ * An object (class instance) or a string (class name). + *
+ * @param bool $autoload [optional]+ * Whether to allow this function to load the class automatically through + * the __autoload magic + * method. + *
+ * @return string[]|false An array on success, or false on error. + */ +#[Pure] +function class_parents($object_or_class, bool $autoload = true): array|false {} + +/** + * Return the interfaces which are implemented by the given class + * @link https://php.net/manual/en/function.class-implements.php + * @param object|string $object_or_class+ * An object (class instance) or a string (class name). + *
+ * @param bool $autoload [optional]+ * Whether to allow this function to load the class automatically through + * the __autoload magic + * method. + *
+ * @return string[]|false An array on success, or false on error. + */ +#[Pure] +function class_implements($object_or_class, bool $autoload = true): array|false {} + +/** + * Return hash id for given object + * @link https://php.net/manual/en/function.spl-object-hash.php + * @param object $object + * @return string A string that is unique for each object and is always the same for + * the same object. + */ +#[Pure] +function spl_object_hash(object $object): string {} + +/** + * Copy the iterator into an array + * @link https://php.net/manual/en/function.iterator-to-array.php + * @param Traversable $iterator+ * The iterator being copied. + *
+ * @param bool $preserve_keys [optional]+ * Whether to use the iterator element keys as index. + *
+ * @return array An array containing the elements of the iterator. + */ +function iterator_to_array(#[LanguageLevelTypeAware(['8.2' => 'Traversable|array'], default: 'Traversable')] $iterator, bool $preserve_keys = true): array {} + +/** + * Count the elements in an iterator + * @link https://php.net/manual/en/function.iterator-count.php + * @param Traversable $iterator+ * The iterator being counted. + *
+ * @return int The number of elements in iterator. + */ +#[Pure] +function iterator_count(#[LanguageLevelTypeAware(['8.2' => 'Traversable|array'], default: 'Traversable')] $iterator): int {} + +/** + * Call a function for every element in an iterator + * @link https://php.net/manual/en/function.iterator-apply.php + * @param Traversable $iterator+ * The class to iterate over. + *
+ * @param callable $callback+ * The callback function to call on every element. + * The function must return true in order to + * continue iterating over the iterator. + *
+ * @param array|null $args [optional]+ * Arguments to pass to the callback function. + *
+ * @return int the iteration count. + */ +function iterator_apply(Traversable $iterator, callable $callback, ?array $args): int {} + +// End of SPL v.0.2 + +/** + * Return the traits used by the given class + * @param object|string $object_or_class An object (class instance) or a string (class name). + * @param bool $autoload Whether to allow this function to load the class automatically through the __autoload() magic method. + * @return string[]|false An array on success, or false on error. + * @link https://php.net/manual/en/function.class-uses.php + * @see class_parents() + * @see get_declared_traits() + * @since 5.4 + */ +function class_uses($object_or_class, bool $autoload = true): array|false {} + +/** + * return the integer object handle for given object + * @param object $object + * @return int + * @since 7.2 + */ +function spl_object_id(object $object): int {} diff --git a/phpstorm-stubs/SQLite/SQLite.php b/phpstorm-stubs/SQLite/SQLite.php new file mode 100644 index 0000000..21613d6 --- /dev/null +++ b/phpstorm-stubs/SQLite/SQLite.php @@ -0,0 +1,1401 @@ +The filename of the SQLite database. If the file does not exist, SQLite will attempt to create it. PHP must have write permissions to the file if data is inserted, the database schema is modified or to create the database if it does not exist. + * @param int $mode [optional]The mode of the file. Intended to be used to open the database in read-only mode. Presently, this parameter is ignored by the sqlite library. The default value for mode is the octal value 0666 and this is the recommended value.
+ * @param string &$error_message [optional]Passed by reference and is set to hold a descriptive error message explaining why the database could not be opened if there was an error.
+ */ + final public function __construct($filename, $mode = 0666, &$error_message) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * @link https://php.net/manual/en/function.sqlite-query.php + * @param string $query+ * The query to be executed. + *
+ *+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}. + *
+ * @param int $result_type [optional] + *The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
+ * @param string &$error_message [optional]The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the {@see sqlite_last_error()} function.
+ * @return resource|false+ * This function will return a result handle or FALSE on failure. + * For queries that return rows, the result handle can then be used with + * functions such as {@see sqlite_fetch_array()} and + * {@see sqlite_seek()}. + *
+ *+ * Regardless of the query type, this function will return FALSE if the + * query failed. + *
+ *+ * {@see sqlite_query()} returns a buffered, seekable result + * handle. This is useful for reasonably small queries where you need to + * be able to randomly access the rows. Buffered result handles will + * allocate memory to hold the entire result and will not return until it + * has been fetched. If you only need sequential access to the data, it is + * recommended that you use the much higher performance + * {@see sqlite_unbuffered_query()} instead. + *
+ */ + public function query($query, $result_type, &$error_message) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * @link https://php.net/manual/en/function.sqlite-exec.php + * @param string $query+ * The query to be executed. + *
+ *+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}. + *
+ * @param string &$error_message [optional]The specified variable will be filled if an error occurs. This is specially important because SQL syntax errors can't be fetched using the + * {@see sqlite_last_error()} function.
+ * @return bool+ * This function will return a boolean result; TRUE for success or FALSE for failure. + * If you need to run a query that returns rows, see {@see sqlite_query()}. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ + public function queryExec($query, &$error_message) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Execute a query against a given database and returns an array + * @link https://php.net/manual/en/function.sqlite-array-query.php + * @param string $query+ * The query to be executed. + *
+ *+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}. + *
+ * @param int $result_type [optional]The optional result_type + * parameter accepts a constant and determines how the returned array will be + * indexed. Using SQLITE_ASSOC will return only associative + * indices (named fields) while SQLITE_NUM will return + * only numerical indices (ordinal field numbers). SQLITE_BOTH + * will return both associative and numerical indices. + * SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ *+ * @return array|false + * Returns an array of the entire result set; FALSE otherwise. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ + public function arrayQuery($query, $result_type, $decode_binary) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.1) + * Executes a query and returns either an array for one single column or the value of the first row + * @link https://php.net/manual/en/function.sqlite-single-query.php + * @param string $query + * @param bool $first_row_only [optional] + * @param bool $decode_binary [optional] + * @return array + */ + public function singleQuery($query, $first_row_only, $decode_binary) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Execute a query that does not prefetch and buffer all data + * @link https://php.net/manual/en/function.sqlite-unbuffered-query.php + * @param string $query+ * The query to be executed. + *
+ *+ * Data inside the query should be {@link https://php.net/manual/en/function.sqlite-escape-string.php properly escaped}. + *
+ * @param int $result_type [optional]The optional result_type parameter accepts a constant and determines how the returned array will be indexed. + * Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). + * SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function. + *
+ * @param string &$error_message [optional] + * @return resource Returns a result handle or FALSE on failure. + * {@see sqlite_unbuffered_query()} returns a sequential forward-only result set that can only be used to read each row, one after the other. + */ + public function unbufferedQuery($query, $result_type = SQLITE_BOTH, &$error_message = null) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the rowid of the most recently inserted row + * @link https://php.net/manual/en/function.sqlite-last-insert-rowid.php + * @return int Returns the row id, as an integer. + */ + public function lastInsertRowid() {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the number of rows that were changed by the most recent SQL statement + * @link https://php.net/manual/en/function.sqlite-changes.php + * @return int Returns the number of changed rows. + */ + public function changes() {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Register an aggregating UDF for use in SQL statements + * @link https://php.net/manual/en/function.sqlite-create-aggregate.php + * @param string $function_nameThe name of the function used in SQL statements.
+ * @param callable $step_funcCallback function called for each row of the result set. Function parameters are &$context, $value, ....
+ * @param callable $finalize_funcCallback function to aggregate the "stepped" data from each row. Function parameter is &$context and the function should return the final result of aggregation.
+ * @param int $num_args [optional]Hint to the SQLite parser if the callback function accepts a predetermined number of arguments.
+ */ + public function createAggregate($function_name, $step_func, $finalize_func, $num_args = -1) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Registers a "regular" User Defined Function for use in SQL statements + * @link https://php.net/manual/en/function.sqlite-create-function.php + * @param string $function_nameThe name of the function used in SQL statements.
+ * @param callable $callback+ * Callback function to handle the defined SQL function. + *
+ *+ * @param int $num_args [optional]Note: + * Callback functions should return a type understood by SQLite (i.e. + * {@link https://php.net/manual/en/language.types.intro.php scalar type}). + *
+ */ + public function createFunction($function_name, $callback, $num_args = -1) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Set busy timeout duration, or disable busy handlers + * @link https://php.net/manual/en/function.sqlite-busy-timeout.php + * @param int $millisecondsNote: Two alternative syntaxes are + * supported for compatibility with other database extensions (such as MySQL). + * The preferred form is the first, where the dbhandle + * parameter is the first parameter to the function.
The number of milliseconds. When set to 0, busy handlers will be disabled and SQLite will return immediately with a SQLITE_BUSY status code if another process/thread has the database locked for an update. + * PHP sets the default busy timeout to be 60 seconds when the database is opened.
+ * @return intReturns an error code, or 0 if no error occurred.
+ */ + public function busyTimeout($milliseconds) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the error code of the last error for a database + * @link https://php.net/manual/en/function.sqlite-last-error.php + * @return int Returns an error code, or 0 if no error occurred. + */ + public function lastError() {} + + /** + * (PHP 5 < 5.4.0) + * Return an array of column types from a particular table + * @link https://php.net/manual/en/function.sqlite-fetch-column-types.php + * @param string $table_nameThe table name to query.
+ * @param int $result_type [optional]+ * The optional result_type parameter accepts a + * constant and determines how the returned array will be indexed. Using + * SQLITE_ASSOC will return only associative indices + * (named fields) while SQLITE_NUM will return only + * numerical indices (ordinal field numbers). + * SQLITE_ASSOC is the default for + * this function. + *
+ * @return array+ * Returns an array of column data types; FALSE on error. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ + public function fetchColumnTypes($table_name, $result_type = SQLITE_ASSOC) {} +} + +/** + * @link https://php.net/manual/en/ref.sqlite.php + */ +final class SQLiteResult implements Iterator, Countable +{ + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Fetches the next row from a result set as an array + * @link https://php.net/manual/en/function.sqlite-fetch-array.php + * @param int $result_type [optional] + *+ * The optional result_type + * parameter accepts a constant and determines how the returned array will be + * indexed. Using SQLITE_ASSOC will return only associative + * indices (named fields) while SQLITE_NUM will return + * only numerical indices (ordinal field numbers). SQLITE_BOTH + * will return both associative and numerical indices. + * SQLITE_BOTH is the default for this function. + *
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return array + *+ * Returns an array of the next row from a result set; FALSE if the + * next position is beyond the final row. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ + public function fetch($result_type = SQLITE_BOTH, $decode_binary = true) {} + + /** + * (PHP 5 < 5.4.0) + * Fetches the next row from a result set as an object + * @link https://php.net/manual/en/function.sqlite-fetch-object.php + * @param string $class_name [optional] + * @param array $ctor_params [optional] + * @param bool $decode_binary [optional] + * @return object + */ + public function fetchObject($class_name, $ctor_params, $decode_binary = true) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.1) + * Fetches the first column of a result set as a string + * @link https://php.net/manual/en/function.sqlite-fetch-single.php + * @param bool $decode_binary [optional] + * @return stringReturns the first column value, as a string.
+ */ + public function fetchSingle($decode_binary = true) {} + + /** + * (PHP 5 < 5.4.0) + * Fetches the next row from a result set as an object + * @link https://www.php.net/manual/en/function.sqlite-fetch-all.php + * @param int $result_type [optional]+ * The optional result_type parameter accepts a constant and determines how the returned array will be indexed. + * Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). + * {@see SQLITE_BOTH} will return both associative and numerical indices. {@see SQLITE_BOTH} is the default for this function.
+ * @param bool $decode_binary [optional]When the decode_binary parameter is set to TRUE (the default), + * PHP will decode the binary encoding it applied to the data if it was encoded using the {@see sqlite_escape_string()}. + * You should normally leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.
+ * @return object + */ + public function fetchAll($result_type, $decode_binary = true) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Fetches a column from the current row of a result set + * @link https://php.net/manual/en/function.sqlite-column.php + * @param $index_or_name + * @param $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return mixedReturns the column value
+ */ + public function column($index_or_name, $decode_binary = true) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the number of fields in a result set + * @link https://php.net/manual/en/function.sqlite-num-fields.php + * @return intReturns the number of fields, as an integer.
+ */ + public function numFields() {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the name of a particular field + * @link https://php.net/manual/en/function.sqlite-field-name.php + * @param int $field_indexThe ordinal column number in the result set.
+ * @return string+ * Returns the name of a field in an SQLite result set, given the ordinal + * column number; FALSE on error. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case}configuration + * option.
+ */ + public function fieldName($field_index) {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Fetches the current row from a result set as an array + * @link https://php.net/manual/en/function.sqlite-current.php + * @param int $result_type [optional]The optional result_type + * parameter accepts a constant and determines how the returned array will be + * indexed. Using {@see SQLITE_ASSOC} will return only associative + * indices (named fields) while {@see SQLITE_NUM} will return + * only numerical indices (ordinal field numbers). SQLITE_BOTH + * will return both associative and numerical indices. + * {@see SQLITE_BOTH} is the default for this function.
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return array+ * Returns an array of the current row from a result set; FALSE if the + * current position is beyond the final row. + *
+ *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ + public function current($result_type = SQLITE_BOTH, $decode_binary = true) {} + + /** + * Return the key of the current element + * @link https://php.net/manual/en/iterator.key.php + * @return mixed scalar on success, or null on failure. + * @since 5.0.0 + */ + public function key() {} + + /** + * Seek to the next row number + * @link https://php.net/manual/en/function.sqlite-next.php + * @return bool Returns TRUE on success, or FALSE if there are no more rows. + * @since 5.0.0 + */ + public function next() {} + + /** + * Checks if current position is valid + * @link https://php.net/manual/en/iterator.valid.php + * @return bool+ * Returns TRUE if there are more rows available from the + * result handle, or FALSE otherwise. + *
+ * @since 5.0.0 + */ + public function valid() {} + + /** + * Rewind the Iterator to the first element + * @link https://php.net/manual/en/iterator.rewind.php + * @return void Any returned value is ignored. + * @since 5.0.0 + */ + public function rewind() {} + + /** + * Count elements of an object + * @link https://php.net/manual/en/countable.count.php + * @return intThe custom count as an integer. + *
+ *+ * The return value is cast to an integer. + *
+ * @since 5.1.0 + */ + public function count() {} + + /** + * Seek to the previous row number of a result set + * @link https://php.net/manual/en/function.sqlite-prev.php + * @return boolReturns TRUE on success, or FALSE if there are no more previous rows. + *
+ * @since 5.4.0 + */ + public function prev() {} + + /** + *@since 5.4.0 + * Returns whether or not a previous row is available + * @link https://php.net/manual/en/function.sqlite-has-prev.php + * @return bool+ * Returns TRUE if there are more previous rows available from the + * result handle, or FALSE otherwise. + *
+ */ + public function hasPrev() {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Returns the number of rows in a buffered result set + * @link https://php.net/manual/en/function.sqlite-num-rows.php + * @return int Returns the number of rows, as an integer. + */ + public function numRows() {} + + /** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0) + * Seek to a particular row number of a buffered result set + * @link https://php.net/manual/en/function.sqlite-seek.php + * @param $row + *+ * The ordinal row number to seek to. The row number is zero-based (0 is + * the first row). + *
+ *+ */ + public function seek($row) {} +} + +/** + * Represents an unbuffered SQLite result set. Unbuffered results sets are sequential, forward-seeking only. + * @link https://php.net/manual/en/ref.sqlite.php + */ +final class SQLiteUnbuffered +{ + /** + * @param int $result_type [optional] + * @param bool $decode_binary [optional] + */ + public function fetch($result_type, $decode_binary) {} + + /** + * @link https://www.php.net/manual/en/function.sqlite-fetch-object.php + * @param string $class_name [optional] + * @param array $ctor_params [optional] + * @param bool $decode_binary [optional] + */ + public function fetchObject($class_name, $ctor_params, $decode_binary) {} + + /** + * @param bool $decode_binary [optional] + */ + public function fetchSingle($decode_binary) {} + + /** + * @param int $result_type [optional] + * @param bool $decode_binary [optional] + */ + public function fetchAll($result_type, $decode_binary) {} + + /** + * @param $index_or_name + * @param $decode_binary [optional] + */ + public function column($index_or_name, $decode_binary) {} + + public function numFields() {} + + /** + * @param int $field_index + */ + public function fieldName($field_index) {} + + /** + * @param int $result_type [optional] + * @param bool $decode_binary [optional] + */ + public function current($result_type, $decode_binary) {} + + public function next() {} + + public function valid() {} +} + +final class SQLiteException extends RuntimeException +{ + protected $message; + protected $code; + protected $file; + protected $line; + + /** + * Clone the exception + * @link https://php.net/manual/en/exception.clone.php + * @return void + * @since 5.1.0 + */ + final private function __clone() {} + + /** + * Construct the exception + * @link https://php.net/manual/en/exception.construct.php + * @param $message [optional] + * @param $code [optional] + * @param $previous [optional] + * @since 5.1.0 + */ + #[Pure] + public function __construct($message, $code, $previous) {} + + /** + * String representation of the exception + * @link https://php.net/manual/en/exception.tostring.php + * @return string the string representation of the exception. + * @since 5.1.0 + */ + public function __toString() {} +} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)Note:
This function cannot be used with + * unbuffered result handles.
+ * The filename of the SQLite database. If the file does not exist, SQLite + * will attempt to create it. PHP must have write permissions to the file + * if data is inserted, the database schema is modified or to create the + * database if it does not exist. + *
+ * @param int $mode [optional]+ * The mode of the file. Intended to be used to open the database in + * read-only mode. Presently, this parameter is ignored by the sqlite + * library. The default value for mode is the octal value + * 0666 and this is the recommended value. + *
+ * @param string &$error_message [optional]+ * Passed by reference and is set to hold a descriptive error message + * explaining why the database could not be opened if there was an error. + *
+ * @return resource|false a resource (database handle) on success, false on error. + */ +function sqlite_open($filename, $mode = null, &$error_message = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The filename of the SQLite database. If the file does not exist, SQLite + * will attempt to create it. PHP must have write permissions to the file + * if data is inserted, the database schema is modified or to create the + * database if it does not exist. + *
+ * @param int $mode [optional]+ * The mode of the file. Intended to be used to open the database in + * read-only mode. Presently, this parameter is ignored by the sqlite + * library. The default value for mode is the octal value + * 0666 and this is the recommended value. + *
+ * @param string &$error_message [optional]+ * Passed by reference and is set to hold a descriptive error message + * explaining why the database could not be opened if there was an error. + *
+ * @return resource|falsea resource (database handle) on success, false on error.
+ */ +function sqlite_popen($filename, $mode = null, &$error_message = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The SQLite Database resource; returned from sqlite_open + * when used procedurally. + *
+ * @return void + */ +function sqlite_close($dbhandle) {} + +/** + * (PHP 5 < 5.4.0, PECL sqlite >= 1.0.0)+ * The query to be executed. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param resource|string $dbhandle The SQLite Database resource; returned from sqlite_open() when used procedurally. This parameter is not required when using the object-oriented method. + * @param int $result_type [optional]The optional result_type + * parameter accepts a constant and determines how the returned array will be + * indexed. Using SQLITE_ASSOC will return only associative + * indices (named fields) while SQLITE_NUM will return + * only numerical indices (ordinal field numbers). SQLITE_BOTH + * will return both associative and numerical indices. + * SQLITE_BOTH is the default for this function.
+ * @param string &$error_msg [optional]+ * The specified variable will be filled if an error occurs. This is + * specially important because SQL syntax errors can't be fetched using + * the + * {@see sqlite_last_error} function. + *
+ * @return resource|false This function will return a result handle or FALSE on failure. + * For queries that return rows, the result handle can then be used with + * functions such as + * {@see sqlite_fetch_array} and + * {@see sqlite_seek}. + * + *+ * Regardless of the query type, this function will return false if the + * query failed. + *
+ *
+ * {@see sqlite_query} returns a buffered, seekable result
+ * handle. This is useful for reasonably small queries where you need to
+ * be able to randomly access the rows. Buffered result handles will
+ * allocate memory to hold the entire result and will not return until it
+ * has been fetched. If you only need sequential access to the data, it is
+ * recommended that you use the much higher performance
+ * {@see sqlite_unbuffered_query} instead.
+ */
+function sqlite_query($query, $dbhandle, $result_type = SQLITE_BOTH, &$error_msg = null) {}
+
+/**
+ * (PHP 5, PECL sqlite >= 1.0.3)
+ * Executes a result-less query against a given database
+ * @link https://php.net/manual/en/function.sqlite-exec.php
+ * @param string $query
+ * The query to be executed. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param resource $dbhandle+ * The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. This parameter + * is not required when using the object-oriented method. + *
+ * @param string &$error_msg [optional]+ * The specified variable will be filled if an error occurs. This is + * specially important because SQL syntax errors can't be fetched using + * the + * {@see sqlite_last_error} function. + *
+ * @return boolThis function will return a boolean result; true for success or false for failure. + * If you need to run a query that returns rows, see sqlite_query.
+ */ +function sqlite_exec($dbhandle, $query, &$error_msg = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The query to be executed. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param resource $dbhandle+ * The SQLite Database resource; returned from + * {@see sqlite_open()} + * when used procedurally. This parameter is not required + * when using the object-oriented method. + *
+ * @param int $result_type [optional]The optional result_type + * parameter accepts a constant and determines how the returned array will be + * indexed. Using SQLITE_ASSOC will return only associative + * indices (named fields) while SQLITE_NUM will return + * only numerical indices (ordinal field numbers). SQLITE_BOTH + * will return both associative and numerical indices. + * SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@link sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return array|false an array of the entire result set; false otherwise. + *The column names returned by + * SQLITE_ASSOC and SQLITE_BOTH will be + * case-folded according to the value of the + * {@link php.net/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration + * option.
+ */ +function sqlite_array_query($dbhandle, $query, $result_type = null, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.1)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional] + * @param bool $decode_binary [optional] + * @return array|falsean array of the next row from a result set; false if the + * next position is beyond the final row.
+ */ +function sqlite_fetch_array($result, $result_type = SQLITE_BOTH, $decode_binary = null) {} + +/** + * Fetches the next row from a result set as an object + * @link https://php.net/manual/en/function.sqlite-fetch-object.php + * @param resource $result + * @param string $class_name [optional] + * @param null|array $ctor_params [optional] + * @param bool $decode_binary [optional] + * @return object + */ +function sqlite_fetch_object($result, $class_name = null, ?array $ctor_params = null, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.1)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return stringthe first column value, as a string.
+ */ +function sqlite_fetch_single($result, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return stringthe first column value, as a string.
+ */ +function sqlite_fetch_string($result, $decode_binary) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)an array of the remaining rows in a result set. If called right + * after + * {@see sqlite_query}, it returns all rows. If called + * after + * {@see sqlite_fetch_array}, it returns the rest. If + * there are no rows in a result set, it returns an empty array.
+ *The column names returned by SQLITE_ASSOC and SQLITE_BOTH will be case-folded according to the value of the + * {@link https://php.net/manual/en/sqlite.configuration.php#ini.sqlite.assoc-case sqlite.assoc_case} configuration option.
+ */ +function sqlite_fetch_all($result_type = null, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional]The optional result_type parameter accepts a constant and determines how the returned array will be indexed. Using SQLITE_ASSOC will return only associative indices (named fields) while SQLITE_NUM will return only numerical indices (ordinal field numbers). SQLITE_BOTH will return both associative and numerical indices. SQLITE_BOTH is the default for this function.
+ * @param bool $decode_binary [optional]When the decode_binary parameter is set to TRUE (the default), PHP will decode the binary encoding it applied to the data if it was encoded using the sqlite_escape_string(). You should normally leave this value at its default, unless you are interoperating with databases created by other sqlite capable applications.
+ * @return array|false an array of the current row from a result set; false if the + * current position is beyond the final row. + */ +function sqlite_current($result, $result_type = null, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param mixed $index_or_name+ * The column index or name to fetch. + *
+ * @param bool $decode_binary [optional]When the decode_binary + * parameter is set to TRUE (the default), PHP will decode the binary encoding + * it applied to the data if it was encoded using the + * {@see sqlite_escape_string()}. You should normally leave this + * value at its default, unless you are interoperating with databases created by + * other sqlite capable applications.
+ * @return mixed the column value. + */ +function sqlite_column($result, $index_or_name, $decode_binary = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. This parameter is not required when using the object-oriented method.
+ * @return int the row id, as an integer. + */ +function sqlite_last_insert_rowid($dbhandle) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @return int the number of rows, as an integer. + */ +function sqlite_num_rows($result) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)Note:
This function cannot be used with + * unbuffered result handles.
The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @return int the number of fields, as an integer. + */ +function sqlite_num_fields($result) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite result resource. This parameter is not required when using the object-oriented method.
+ * @param int $field_index+ * The ordinal column number in the result set. + *
+ * @return string the name of a field in an SQLite result set, given the ordinal + * column number; false on error. + */ +function sqlite_field_name($result, $field_index) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @param int $rownumNote:
This function cannot be used with + * unbuffered result handles.
+ * The ordinal row number to seek to. The row number is zero-based (0 is + * the first row). + *
+ * @return bool false if the row does not exist, true otherwise. + */ +function sqlite_seek($result, $rownum) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @return bool false if there are no rows in the result set, true otherwise. + */ +function sqlite_rewind($result) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)Note:
This function cannot be used with + * unbuffered result handles.
+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @return bool TRUE on success, or FALSE if there are no more rows. + */ +function sqlite_next($result) {} + +/** + * Seek to the previous row number of a result set + * @link https://php.net/manual/en/function.sqlite-prev.php + * @param resource $resultNote:
This function cannot be used with + * unbuffered result handles.
+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @return bool true on success, or false if there are no more previous rows. + */ +function sqlite_prev($result) {} + +/** + * Returns whether more rows are available + * @link https://php.net/manual/en/function.sqlite-valid.php + * @param resource $resultNote:
This function cannot be used with + * unbuffered result handles.
+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ *+ * @return bool TRUE if there are more rows available from the + * result handle, or FALSE otherwise. + */ +function sqlite_valid($result) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)Note:
This function cannot be used with + * unbuffered result handles.
+ * The SQLite result resource. + *
+ * @return bool TRUE if there are more rows available from the + * result handle, or FALSE otherwise. + */ +function sqlite_has_more($result) {} + +/** + * Returns whether or not a previous row is available + * @link https://php.net/manual/en/function.sqlite-has-prev.php + * @param resource $result+ * The SQLite result resource. This parameter is not required when using + * the object-oriented method. + *
+ * @return bool TRUE if there are more previous rows available from the + * result handle, or FALSE otherwise. + */ +function sqlite_has_prev($result) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The string being quoted. + *
+ *+ * If the item contains a NUL + * character, or if it begins with a character whose ordinal value is + * 0x01, PHP will apply a binary encoding scheme so that + * you can safely store and retrieve binary data. + *
+ * @return string an escaped string for use in an SQLite SQL statement. + */ +function sqlite_escape_string($item) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @param int $milliseconds+ * The number of milliseconds. When set to + * 0, busy handlers will be disabled and SQLite will + * return immediately with a SQLITE_BUSY status code + * if another process/thread has the database locked for an update. + *
+ *+ * PHP sets the default busy timeout to be 60 seconds when the database is + * opened. + *
+ *+ * There are one thousand (1000) milliseconds in one second. + *
+ * @return void + */ +function sqlite_busy_timeout($dbhandle, $milliseconds) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @return int an error code, or 0 if no error occurred. + */ +function sqlite_last_error($dbhandle) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The error code being used, which might be passed in from + * {@see sqlite_last_error}. + *
+ * @return string a human readable description of the error_code, + * as a string. + */ +function sqlite_error_string($error_code) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @param string $query+ * The query to be executed. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param int $result_type [optional] + * @param string &$error_msg [optional]+ * The specified variable will be filled if an error occurs. This is + * specially important because SQL syntax errors can't be fetched using + * the sqlite_last_error function. + *
+ * @return SQLiteUnbuffered|false a result handle or false on failure. + *+ * sqlite_unbuffered_query returns a sequential + * forward-only result set that can only be used to read each row, one after + * the other. + *
+ */ +function sqlite_unbuffered_query($dbhandle, $query, $result_type = SQLITE_BOTH, &$error_msg = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @param string $function_name+ * The name of the function used in SQL statements. + *
+ * @param callable $step_func+ * Callback function called for each row of the result set. + *
+ * @param callable $finalize_func+ * Callback function to aggregate the "stepped" data from each row. + *
+ * @param int $num_args [optional]+ * Hint to the SQLite parser if the callback function accepts a + * predetermined number of arguments. + *
+ * @return void + */ +function sqlite_create_aggregate($dbhandle, $function_name, $step_func, $finalize_func, $num_args = null) {} + +/** + * (PHP 5, sqlite >= 1.0.0)The SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @param string $function_name+ * The name of the function used in SQL statements. + *
+ * @param callable $callback+ * Callback function to handle the defined SQL function. + *
+ * Callback functions should return a type understood by SQLite (i.e. + * scalar type). + * @param int $num_args [optional]+ * Hint to the SQLite parser if the callback function accepts a + * predetermined number of arguments. + *
+ * @return void + */ +function sqlite_create_function($dbhandle, $function_name, $callback, $num_args = null) {} + +/** + * Opens a SQLite database and returns a SQLiteDatabase object + * @link https://php.net/manual/en/function.sqlite-factory.php + * @param string $filename+ * The filename of the SQLite database. + *
+ * @param int $mode [optional]+ * The mode of the file. Intended to be used to open the database in + * read-only mode. Presently, this parameter is ignored by the sqlite + * library. The default value for mode is the octal value + * 0666 and this is the recommended value. + *
+ * @param string &$error_message [optional]+ * Passed by reference and is set to hold a descriptive error message + * explaining why the database could not be opened if there was an error. + *
+ * @return SQLiteDatabase|null a SQLiteDatabase object on success, null on error. + */ +function sqlite_factory($filename, $mode = null, &$error_message = null) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The string being encoded. + *
+ * @return string The encoded string. + */ +function sqlite_udf_encode_binary($data) {} + +/** + * (PHP 5, PECL sqlite >= 1.0.0)+ * The encoded data that will be decoded, data that was applied by either + * sqlite_udf_encode_binary or + * sqlite_escape_string. + *
+ * @return string The decoded string. + */ +function sqlite_udf_decode_binary($data) {} + +/** + * Return an array of column types from a particular table + * @link https://php.net/manual/en/function.sqlite-fetch-column-types.php + * @param string $table_name+ * The table name to query. + *
+ * @param resource $dbhandleThe SQLite Database resource; returned from + * {@see sqlite_open()} when used procedurally. + * This parameter is not required when using the object-oriented method.
+ * @param int $result_type [optional]+ * The optional result_type parameter accepts a + * constant and determines how the returned array will be indexed. Using + * SQLITE_ASSOC will return only associative indices + * (named fields) while SQLITE_NUM will return only + * numerical indices (ordinal field numbers). + * SQLITE_BOTH will return both associative and + * numerical indices. SQLITE_ASSOC is the default for + * this function. + *
+ * @return array|false an array of column data types; false on error. + */ +function sqlite_fetch_column_types($dbhandle, $table_name, $result_type = null) {} + +/** + * Columns are returned into the array having both a numerical index + * and the field name as the array index. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_BOTH', 3); + +/** + * Columns are returned into the array having a numerical index to the + * fields. This index starts with 0, the first field in the result. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_NUM', 2); + +/** + * Columns are returned into the array having the field name as the array + * index. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_ASSOC', 1); + +/** + * Successful result. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_OK', 0); + +/** + * SQL error or missing database. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_ERROR', 1); + +/** + * An internal logic error in SQLite. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_INTERNAL', 2); + +/** + * Access permission denied. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_PERM', 3); + +/** + * Callback routine requested an abort. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_ABORT', 4); + +/** + * The database file is locked. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_BUSY', 5); + +/** + * A table in the database is locked. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_LOCKED', 6); + +/** + * Memory allocation failed. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_NOMEM', 7); + +/** + * Attempt to write a readonly database. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_READONLY', 8); + +/** + * Operation terminated internally. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_INTERRUPT', 9); + +/** + * Disk I/O error occurred. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_IOERR', 10); + +/** + * The database disk image is malformed. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_CORRUPT', 11); + +/** + * (Internal) Table or record not found. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_NOTFOUND', 12); + +/** + * Insertion failed because database is full. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_FULL', 13); + +/** + * Unable to open the database file. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_CANTOPEN', 14); + +/** + * Database lock protocol error. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_PROTOCOL', 15); + +/** + * (Internal) Database table is empty. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_EMPTY', 16); + +/** + * The database schema changed. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_SCHEMA', 17); + +/** + * Too much data for one row of a table. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_TOOBIG', 18); + +/** + * Abort due to constraint violation. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_CONSTRAINT', 19); + +/** + * Data type mismatch. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_MISMATCH', 20); + +/** + * Library used incorrectly. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_MISUSE', 21); + +/** + * Uses of OS features not supported on host. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_NOLFS', 22); + +/** + * Authorized failed. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_AUTH', 23); + +/** + * File opened that is not a database file. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_NOTADB', 26); + +/** + * Auxiliary database format error. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_FORMAT', 24); + +/** + * Internal process has another row ready. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_ROW', 100); + +/** + * Internal process has finished executing. + * @link https://php.net/manual/en/sqlite.constants.php + */ +define('SQLITE_DONE', 101); diff --git a/phpstorm-stubs/SaxonC/SaxonC.php b/phpstorm-stubs/SaxonC/SaxonC.php new file mode 100644 index 0000000..e86bab2 --- /dev/null +++ b/phpstorm-stubs/SaxonC/SaxonC.php @@ -0,0 +1,1200 @@ +setProperty('report', 'true'). + * + * @return XdmNode + */ + public function getValidationReport() {} + + /** + * Set the parameters required for XQuery Processor + * + * @param string $name + * @param XdmValue $value + * @return void + */ + public function setParameter($name, $value) {} + + /** + * Set properties for Schema Validator. + * + * @param string $name + * @param string $value + * @return void + */ + public function setProperty($name, $value) {} + + /** + * Clear parameter values set + * + * @return void + */ + public function clearParameters() {} + + /** + * Clear property values set + * + * @return void + */ + public function clearProperties() {} + + /** + * Clear any exception thrown + * + * @return void + */ + public function exceptionClear() {} + + /** + * Get the $i'th error code if there are any errors + * + * @param int $i + * @return string + */ + public function getErrorCode($i) {} + + /** + * Get the $i'th error message if there are any errors + * + * @param int $i + * @return string + */ + public function getErrorMessage($i) {} + + /** + * Get number of error during execution of the validator + * + * @return int + */ + public function getExceptionCount() {} +} + +/** + * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmvalue + */ +class XdmValue +{ + /** + * Get the first item in the sequence + * + * @return XdmItem + */ + public function getHead() {} + + /** + * Get the n'th item in the value, counting from zero + * + * @param int $index + * @return XdmItem + */ + public function itemAt($index) {} + + /** + * Get the number of items in the sequence + * + * @return int + */ + public function size() {} + + /** + * Add item to the sequence at the end. + * + * @param XdmItem $item + */ + public function addXdmItem($item) {} +} + +/** + * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmitem + */ +class XdmItem extends XdmValue +{ + /** + * Get the string value of the item. For a node, this gets the string value of the node. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function. + * + * @return string + */ + public function getStringValue() {} + + /** + * Determine whether the item is a node value or not. + * + * @return bool + */ + public function isNode() {} + + /** + * Determine whether the item is an atomic value or not. + * + * @return bool + */ + public function isAtomic() {} + + /** + * Provided the item is an atomic value we return the {@link XdmAtomicValue} otherwise return null + * + * @return XdmAtomicValue|null + */ + public function getAtomicValue() {} + + /** + * Provided the item is a node value we return the {@link XdmNode} otherwise return null + * + * @return XdmNode|null + */ + public function getNodeValue() {} +} + +/** + * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmnode + */ +class XdmNode extends XdmItem +{ + /** + * Get the string value of the item. For a node, this gets the string value of the node. + * + * @return string + */ + public function getStringValue() {} + + /** + * Get the kind of node + * + * @return int + */ + public function getNodeKind() {} + + /** + * Get the name of the node, as a EQName + * + * @return string + */ + public function getNodeName() {} + + /** + * Determine whether the item is an atomic value or a node. This method will return FALSE as the item is not atomic + * + * @return false + */ + public function isAtomic() {} + + /** + * Get the count of child node at this current node + * + * @return int + */ + public function getChildCount() {} + + /** + * Get the count of attribute nodes at this node + * + * @return int + */ + public function getAttributeCount() {} + + /** + * Get the n'th child node at this node. If the child node selected does not exist then return null + * + * @param int $index + * @return XdmNode|null + */ + public function getChildNode($index) {} + + /** + * Get the parent of this node. If parent node does not exist then return null + * + * @return XdmNode|null + */ + public function getParent() {} + + /** + * Get the n'th attribute node at this node. If the attribute node selected does not exist then return null + * + * @param int $index + * @return XdmNode|null + */ + public function getAttributeNode($index) {} + + /** + * Get the n'th attribute node value at this node. If the attribute node selected does not exist then return null + * + * @param int $index + * @return string|null + */ + public function getAttributeValue($index) {} +} + +/** + * @link https://www.saxonica.com/saxon-c/documentation/index.html#!api/saxon_c_php_api/saxon_c_php_xdmatomicvalue + */ +class XdmAtomicValue extends XdmItem +{ + /** + * Get the string value of the item. For an atomic value, it has the same effect as casting the value to a string. In all cases the result is the same as applying the XPath string() function. + * + * @return string + */ + public function getStringValue() {} + + /** + * Get the value converted to a boolean using the XPath casting rules + * + * @return bool + */ + public function getBooleanValue() {} + + /** + * Get the value converted to a float using the XPath casting rules. If the value is a string, the XSD 1.1 rules are used, which means that the string "+INF" is recognised + * + * @return float + */ + public function getDoubleValue() {} + + /** + * Get the value converted to an integer using the XPath casting rules + * + * @return int + */ + public function getLongValue() {} + + /** + * Determine whether the item is an atomic value or a node. Return TRUE if the item is an atomic value + * + * @return true + */ + public function isAtomic() {} +} diff --git a/phpstorm-stubs/SimpleXML/SimpleXML.php b/phpstorm-stubs/SimpleXML/SimpleXML.php new file mode 100644 index 0000000..7781391 --- /dev/null +++ b/phpstorm-stubs/SimpleXML/SimpleXML.php @@ -0,0 +1,517 @@ + 'string'], default: '')] $data, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $dataIsURL = false, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespaceOrPrefix = "", + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isPrefix = false + ) {} + + /** + * Provides access to element's children + * private Method not callable directly, stub exists for typehint only + * @param string $name child name + * @return static + */ + private function __get($name) {} + + /** + * Return a well-formed XML string based on SimpleXML element + * @link https://php.net/manual/en/simplexmlelement.asxml.php + * @param string $filename [optional]+ * If specified, the function writes the data to the file rather than + * returning it. + *
+ * @return string|bool If the filename isn't specified, this function + * returns a string on success and FALSE on error. If the + * parameter is specified, it returns TRUE if the file was written + * successfully and FALSE otherwise. + * @since 5.0.1 + */ + #[TentativeType] + public function asXML(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $filename = null): string|bool {} + + /** + * Alias of SimpleXMLElement::asXML + * Return a well-formed XML string based on SimpleXML element + * @link https://php.net/manual/en/simplexmlelement.savexml.php + * @param string $filename [optional]+ * If specified, the function writes the data to the file rather than + * returning it. + *
+ * @return string|bool If the filename isn't specified, this function + * returns a string on success and false on error. If the + * parameter is specified, it returns true if the file was written + * successfully and false otherwise. + */ + #[TentativeType] + public function saveXML(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $filename = null): string|bool {} + + /** + * Runs XPath query on XML data + * @link https://php.net/manual/en/simplexmlelement.xpath.php + * @param string $expression+ * An XPath path + *
+ * @return static[]|false|null an array of SimpleXMLElement objects or FALSE in + * case of an error. + */ + #[TentativeType] + public function xpath(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $expression): array|false|null {} + + /** + * Creates a prefix/ns context for the next XPath query + * @link https://php.net/manual/en/simplexmlelement.registerxpathnamespace.php + * @param string $prefix+ * The namespace prefix to use in the XPath query for the namespace given in + * ns. + *
+ * @param string $namespace+ * The namespace to use for the XPath query. This must match a namespace in + * use by the XML document or the XPath query using + * prefix will not return any results. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function registerXPathNamespace( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $prefix, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace + ): bool {} + + /** + * Identifies an element's attributes + * @link https://php.net/manual/en/simplexmlelement.attributes.php + * @param string $namespaceOrPrefix [optional]+ * An optional namespace for the retrieved attributes + *
+ * @param bool $isPrefix [optional]+ * Default to FALSE + *
+ * @return static|null a SimpleXMLElement object that can be + * iterated over to loop through the attributes on the tag. + * + *+ * Returns NULL if called on a SimpleXMLElement + * object that already represents an attribute and not a tag. + * @since 5.0.1 + */ + #[TentativeType] + public function attributes( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespaceOrPrefix = null, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isPrefix = false + ): ?static {} + + /** + * Finds children of given node + * @link https://php.net/manual/en/simplexmlelement.children.php + * @param string $namespaceOrPrefix [optional]
+ * An XML namespace. + *
+ * @param bool $isPrefix [optional]+ * If is_prefix is TRUE, + * ns will be regarded as a prefix. If FALSE, + * ns will be regarded as a namespace + * URL. + *
+ * @return static|null a SimpleXMLElement element, whether the node + * has children or not. + * @since 5.0.1 + */ + #[Pure] + #[TentativeType] + public function children( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespaceOrPrefix = null, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isPrefix = false + ): ?static {} + + /** + * Returns namespaces used in document + * @link https://php.net/manual/en/simplexmlelement.getnamespaces.php + * @param bool $recursive [optional]+ * If specified, returns all namespaces used in parent and child nodes. + * Otherwise, returns only namespaces used in root node. + *
+ * @return array The getNamespaces method returns an array of + * namespace names with their associated URIs. + * @since 5.1.2 + */ + #[Pure] + #[TentativeType] + public function getNamespaces(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $recursive = false): array {} + + /** + * Returns namespaces declared in document + * @link https://php.net/manual/en/simplexmlelement.getdocnamespaces.php + * @param bool $recursive [optional]+ * If specified, returns all namespaces declared in parent and child nodes. + * Otherwise, returns only namespaces declared in root node. + *
+ * @param bool $fromRoot [optional]+ * Allows you to recursively check namespaces under a child node instead of + * from the root of the XML doc. + *
+ * @return array The getDocNamespaces method returns an array + * of namespace names with their associated URIs. + * @since 5.1.2 + */ + #[Pure] + #[TentativeType] + public function getDocNamespaces( + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $recursive = false, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $fromRoot = true + ): array|false {} + + /** + * Gets the name of the XML element + * @link https://php.net/manual/en/simplexmlelement.getname.php + * @return string The getName method returns as a string the + * name of the XML tag referenced by the SimpleXMLElement object. + * @since 5.1.3 + */ + #[Pure] + #[TentativeType] + public function getName(): string {} + + /** + * Adds a child element to the XML node + * @link https://php.net/manual/en/simplexmlelement.addchild.php + * @param string $qualifiedName+ * The name of the child element to add. + *
+ * @param string $value [optional]+ * If specified, the value of the child element. + *
+ * @param string $namespace [optional]+ * If specified, the namespace to which the child element belongs. + *
+ * @return static|null The addChild method returns a SimpleXMLElement + * object representing the child added to the XML node. + * @since 5.1.3 + */ + #[TentativeType] + public function addChild( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $value = null, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace = null + ): ?static {} + + /** + * Adds an attribute to the SimpleXML element + * @link https://php.net/manual/en/simplexmlelement.addattribute.php + * @param string $qualifiedName+ * The name of the attribute to add. + *
+ * @param string $value+ * The value of the attribute. + *
+ * @param string $namespace [optional]+ * If specified, the namespace to which the attribute belongs. + *
+ * @return void No value is returned. + * @since 5.1.3 + */ + #[TentativeType] + public function addAttribute( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $value = null, + #[PhpStormStubsElementAvailable(from: '8.0')] string $value, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace = null + ): void {} + + /** + * Returns the string content + * @link https://php.net/manual/en/simplexmlelement.tostring.php + * @return string the string content on success or an empty string on failure. + * @since 5.3 + */ + #[TentativeType] + public function __toString(): string {} + + /** + * Counts the children of an element + * @link https://php.net/manual/en/simplexmlelement.count.php + * @return int<0,max> the number of elements of an element. + */ + #[Pure] + #[TentativeType] + public function count(): int {} + + /** + * Class provides access to children by position, and attributes by name + * private Method not callable directly, stub exists for typehint only + * @param string|int $offset + * @return bool true on success or false on failure. + */ + #[Pure] + public function offsetExists($offset) {} + + /** + * Class provides access to children by position, and attributes by name + * private Method not callable directly, stub exists for typehint only + * @param string|int $offset + * @return static Either a named attribute or an element from a list of children + */ + #[Pure] + public function offsetGet($offset) {} + + /** + * Class provides access to children by position, and attributes by name + * private Method not callable directly, stub exists for typehint only + * @param string|int $offset + * @param mixed $value + * @return void + */ + public function offsetSet($offset, $value) {} + + /** + * Class provides access to children by position, and attributes by name + * private Method not callable directly, stub exists for typehint only + * @param string|int $offset + * @return void + */ + public function offsetUnset($offset) {} + + /** + * Rewind to the first element + * @link https://php.net/manual/en/simplexmliterator.rewind.php + * @return void No value is returned. + */ + #[TentativeType] + public function rewind(): void {} + + /** + * Check whether the current element is valid + * @link https://php.net/manual/en/simplexmliterator.valid.php + * @return bool TRUE if the current element is valid, otherwise FALSE + */ + #[Pure] + #[TentativeType] + public function valid(): bool {} + + /** + * Returns the current element + * @link https://php.net/manual/en/simplexmliterator.current.php + * @return static|null the current element as a SimpleXMLElement object or NULL on failure. + */ + #[Pure] + #[TentativeType] + public function current(): ?static {} + + /** + * Return current key + * @link https://php.net/manual/en/simplexmliterator.key.php + * @return string|false the XML tag name of the element referenced by the current SimpleXMLIterator object + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.0' => 'string'], default: 'string|false')] + public function key() {} + + /** + * Move to next element + * @link https://php.net/manual/en/simplexmliterator.next.php + * @return void No value is returned. + */ + #[TentativeType] + public function next(): void {} + + /** + * @return bool + * @since 8.0 + */ + #[Pure] + #[TentativeType] + public function hasChildren(): bool {} + + /** + * @since 8.0 + */ + #[Pure] + #[TentativeType] + public function getChildren(): ?SimpleXMLElement {} +} + +/** + * The SimpleXMLIterator provides recursive iteration over all nodes of a SimpleXMLElement object. + * @link https://php.net/manual/en/class.simplexmliterator.php + */ +class SimpleXMLIterator extends SimpleXMLElement implements RecursiveIterator, Countable, Stringable +{ + /** + * Rewind to the first element + * @link https://php.net/manual/en/simplexmliterator.rewind.php + * @return void No value is returned. + */ + public function rewind() {} + + /** + * Check whether the current element is valid + * @link https://php.net/manual/en/simplexmliterator.valid.php + * @return bool TRUE if the current element is valid, otherwise FALSE + */ + #[Pure] + public function valid() {} + + /** + * Returns the current element + * @link https://php.net/manual/en/simplexmliterator.current.php + * @return static|null the current element as a SimpleXMLIterator object or NULL on failure. + */ + #[Pure] + public function current() {} + + /** + * Return current key + * @link https://php.net/manual/en/simplexmliterator.key.php + * @return string|false the XML tag name of the element referenced by the current SimpleXMLIterator object or FALSE + */ + public function key() {} + + /** + * Move to next element + * @link https://php.net/manual/en/simplexmliterator.next.php + * @return void No value is returned. + */ + public function next() {} + + /** + * Checks whether the current element has sub elements. + * @link https://php.net/manual/en/simplexmliterator.haschildren.php + * @return bool TRUE if the current element has sub-elements, otherwise FALSE + */ + #[Pure] + public function hasChildren() {} + + /** + * Returns the sub-elements of the current element + * @link https://php.net/manual/en/simplexmliterator.getchildren.php + * @return SimpleXMLIterator a SimpleXMLIterator object containing + * the sub-elements of the current element. + */ + #[Pure] + public function getChildren() {} + + /** + * Returns the string content + * @link https://php.net/manual/en/simplexmlelement.tostring.php + * @return string the string content on success or an empty string on failure. + * @since 5.3 + */ + public function __toString() {} + + /** + * Counts the children of an element + * @link https://php.net/manual/en/simplexmlelement.count.php + * @return int the number of elements of an element. + */ + #[Pure] + public function count() {} +} + +/** + * Interprets an XML file into an object + * @link https://php.net/manual/en/function.simplexml-load-file.php + * @param string $filename+ * Path to the XML file + *
+ *+ * Libxml 2 unescapes the URI, so if you want to pass e.g. + * b&c as the URI parameter a, + * you have to call + * simplexml_load_file(rawurlencode('https://example.com/?a=' . + * urlencode('b&c'))). Since PHP 5.1.0 you don't need to do + * this because PHP will do it for you. + *
+ * @param string|null $class_name [optional]+ * You may use this optional parameter so that + * simplexml_load_file will return an object of + * the specified class. That class should extend the + * SimpleXMLElement class. + *
+ * @param int $options [optional]+ * Since PHP 5.1.0 and Libxml 2.6.0, you may also use the + * options parameter to specify additional Libxml parameters. + *
+ * @param string $namespace_or_prefix [optional]+ * Namespace prefix or URI. + *
+ * @param bool $is_prefix [optional]+ * TRUE if ns is a prefix, FALSE if it's a URI; + * defaults to FALSE. + *
+ * @return SimpleXMLElement|false an object of class SimpleXMLElement with + * properties containing the data held within the XML document, or FALSE on failure. + */ +function simplexml_load_file(string $filename, ?string $class_name = "SimpleXMLElement", int $options = 0, string $namespace_or_prefix = "", bool $is_prefix = false): SimpleXMLElement|false {} + +/** + * Interprets a string of XML into an object + * @link https://php.net/manual/en/function.simplexml-load-string.php + * @param string $data+ * A well-formed XML string + *
+ * @param string|null $class_name [optional]+ * You may use this optional parameter so that + * simplexml_load_string will return an object of + * the specified class. That class should extend the + * SimpleXMLElement class. + *
+ * @param int $options [optional]+ * Since PHP 5.1.0 and Libxml 2.6.0, you may also use the + * options parameter to specify additional Libxml parameters. + *
+ * @param string $namespace_or_prefix [optional]+ * Namespace prefix or URI. + *
+ * @param bool $is_prefix [optional]+ * TRUE if ns is a prefix, FALSE if it's a URI; + * defaults to FALSE. + *
+ * @return SimpleXMLElement|false an object of class SimpleXMLElement with + * properties containing the data held within the xml document, or FALSE on failure. + */ +function simplexml_load_string(string $data, ?string $class_name = "SimpleXMLElement", int $options = 0, string $namespace_or_prefix = "", bool $is_prefix = false): SimpleXMLElement|false {} + +/** + * Get a SimpleXMLElement object from a DOM node. + * @link https://php.net/manual/en/function.simplexml-import-dom.php + * @param SimpleXMLElement|DOMNode $node+ * A DOM Element node + *
+ * @param string|null $class_name [optional]+ * You may use this optional parameter so that + * simplexml_import_dom will return an object of + * the specified class. That class should extend the + * SimpleXMLElement class. + *
+ * @return SimpleXMLElement|null a SimpleXMLElement or FALSE on failure. + */ +function simplexml_import_dom(SimpleXMLElement|DOMNode $node, ?string $class_name = "SimpleXMLElement"): ?SimpleXMLElement {} + +// End of SimpleXML v.0.1 diff --git a/phpstorm-stubs/SplType/SplType.php b/phpstorm-stubs/SplType/SplType.php new file mode 100644 index 0000000..d4b840d --- /dev/null +++ b/phpstorm-stubs/SplType/SplType.php @@ -0,0 +1,105 @@ + + * Compiles and caches a PHP script without executing it + * @link https://secure.php.net/manual/en/function.opcache-compile-file.php + * @param string $filename The path to the PHP script to be compiled. + * @return bool + * Returns TRUE if the opcode cache for script was + * invalidated or if there was nothing to invalidate, or FALSE if the opcode + * cache is disabled. + * @since 5.5 + */ +function opcache_compile_file(string $filename): bool {} + +/** + * (PHP 5 >= 5.5.0, PECL ZendOpcache >= 7.0.0 )The path to the script being invalidated.
+ * @param bool $force [optional]If set to TRUE, the script will be invalidated regardless of whether invalidation is necessary.
+ * @return bool + * Returns TRUE if the opcode cache for script was + * invalidated or if there was nothing to invalidate, or FALSE if the opcode + * cache is disabled. + * @since 5.5 + */ +function opcache_invalidate(string $filename, bool $force = false): bool {} + +/** + * (PHP 5 >= 5.5.0, PECL ZendOpcache >= 7.0.0 )Include script specific state information
+ * @return array|falseReturns an array of information, optionally containing script specific state information
+ * @since 5.5 + */ +#[ArrayShape([ + 'opcache_enabled' => 'bool', + 'file_cache' => 'string', + 'file_cache_only' => 'bool', + 'cache_full' => 'bool', + 'restart_pending' => 'bool', + 'restart_in_progress' => 'bool', + 'memory_usage' => 'array', + 'interned_strings_usage' => 'array', + 'opcache_statistics' => 'array', + 'preload_statistics' => 'array', + 'scripts' => 'array', + 'jit' => 'array', +])] +function opcache_get_status(bool $include_scripts = true): array|false {} + +/** + * (PHP 5 >= 5.5.5, PECL ZendOpcache >= 7.0.2 )Returns an array of information, including ini, blacklist and version
+ * @since 5.5 + */ +#[ArrayShape(["directives" => "array", "version" => "string[]", "blacklist" => "array"])] +function opcache_get_configuration(): array|false {} + +/** + * (PHP 5 >= 5.6, PECL ZendOpcache >= 7.0.4 )+ * The Apache environment variable. + *
+ * @param bool $walk_to_top+ * Whether to get the top-level variable available to all Apache layers. + *
+ * @return string|false The value of the Apache environment variable on success, or FALSE on failure. + */ +#[Pure] +function apache_getenv($variable, $walk_to_top = false) {} + +/** + * Perform a partial request for the specified URI and return all info about it + * This performs a partial request for a URI. It goes just far enough to obtain all the important information about the given resource. + * This function is supported when PHP is installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers. + * @link https://php.net/manual/en/function.apache-lookup-uri.php + * @param string $filename+ * The filename (URI) that's being requested. + *
+ * @return object of related URI information. + */ +function apache_lookup_uri($filename) {} + +/** + * Get and set apache request notes + * This function is a wrapper for Apache's table_get and table_set. It edits the table of notes that exists during a request. The table's purpose is to allow Apache modules to communicate. + * The main use for apache_note() is to pass information from one module to another within the same request. + * @link https://php.net/manual/en/function.apache-note.php + * @param string $note_name+ * The name of the note. + *
+ * @param string $note_value+ * The value of the note. + *
+ * @return string|false If called with one argument, it returns the current value of note note_name. If called with two arguments, it sets the value of note note_name to note_value and returns the previous value of note note_name. If the note cannot be retrieved, FALSE is returned. + */ +function apache_note($note_name, $note_value = '') {} + +/** + * Reset the Apache write timer + * apache_reset_timeout() resets the Apache write timer, which defaults to 300 seconds. With set_time_limit(0); ignore_user_abort(true) and periodic apache_reset_timeout() calls, Apache can theoretically run forever. + * This function requires Apache 1. + * @link https://php.net/manual/en/function.apache-reset-timeout.php + * @return bool TRUE on success or FALSE on failure. + */ +function apache_reset_timeout() {} + +/** + * Fetch all HTTP response headers + * @link https://php.net/manual/en/function.apache-response-headers.php + * @return array|false An array of all Apache response headers on success or FALSE on failure. + */ +function apache_response_headers() {} + +/** + * Sets the value of the Apache environment variable specified by variable. + * Note: When setting an Apache environment variable, the corresponding $_SERVER variable is not changed. + * @link https://php.net/manual/en/function.apache-setenv.php + * @param string $variable+ * The environment variable that's being set. + *
+ * @param string $value+ * The new variable value. + *
+ * @param bool $walk_to_top+ * Whether to set the top-level variable available to all Apache layers. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function apache_setenv($variable, $value, $walk_to_top = false) {} + +/** + * Perform an Apache sub-request + * virtual() is an Apache-specific function which is similar to in mod_include. It performs an Apache sub-request. It is useful for including CGI scripts or .shtml files, or anything else that you would parse through Apache. Note that for a CGI script, the script must generate valid CGI headers. At the minimum that means it must generate a Content-Type header. + * To run the sub-request, all buffers are terminated and flushed to the browser, pending headers are sent too. + * This function is supported when PHP is installed as an Apache module or by the NSAPI server module in Netscape/iPlanet/SunONE webservers. + * @link https://secure.php.net/manual/en/function.virtual.php + * @param string $filename+ * The file that the virtual command will be performed on. + *
+ * @return bool Performs the virtual command on success, or returns FALSE on failure. + */ +function virtual($filename) {} diff --git a/phpstorm-stubs/apcu/apcu.php b/phpstorm-stubs/apcu/apcu.php new file mode 100644 index 0000000..fab1eb4 --- /dev/null +++ b/phpstorm-stubs/apcu/apcu.php @@ -0,0 +1,660 @@ + value pairs. + * The constant_name must follow the normal constant naming rules. Value must evaluate to a scalar value. + * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive; + * i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE + * the constants will be declared as case-insensitive symbols. + * @return bool Returns TRUE on success or FALSE on failure. + */ +function apc_define_constants($key, array $constants, $case_sensitive = true) {} + +/** + * Caches a variable in the data store, only if it's not already stored + * @link https://php.net/manual/en/function.apc-add.php + * @param string $key Store the variable using this name. Keys are cache-unique, + * so attempting to use apc_add() to store data with a key that already exists will not + * overwrite the existing data, and will instead return FALSE. (This is the only difference + * between apc_add() and apc_store().) + * @param mixed $var The variable to store + * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed, + * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied + * (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @return bool + */ +function apc_add($key, $var, $ttl = 0) {} + +/** + * Stores a file in the bytecode cache, bypassing all filters + * @link https://php.net/manual/en/function.apc-compile-file.php + * @param string|string[] $filename Full or relative path to a PHP file that will be + * compiled and stored in the bytecode cache. + * @param bool $atomic + * @return bool Returns TRUE on success or FALSE on failure. + */ +function apc_compile_file($filename, $atomic = true) {} + +/** + * Loads a set of constants from the cache + * @link https://php.net/manual/en/function.apc-load-constants.php + * @param string $key The name of the constant set (that was stored + * with apc_define_constants()) to be retrieved. + * @param bool $case_sensitive The default behaviour for constants is to be declared case-sensitive; + * i.e. CONSTANT and Constant represent different values. If this parameter evaluates to FALSE + * the constants will be declared as case-insensitive symbols. + * @return bool Returns TRUE on success or FALSE on failure. + */ +function apc_load_constants($key, $case_sensitive = true) {} + +/** + * Checks if APC key exists + * @link https://php.net/manual/en/function.apc-exists.php + * @param string|string[] $keys A string, or an array of strings, that contain keys. + * @return bool|string[] Returns TRUE if the key exists, otherwise FALSE + * Or if an array was passed to keys, then an array is returned that + * contains all existing keys, or an empty array if none exist. + */ +function apc_exists($keys) {} + +/** + * Deletes the given files from the opcode cache + * + * Accepts a string, array of strings, or APCIterator object. + * Returns True/False, or for an Array an Array of failed files. + * + * @link https://php.net/manual/en/function.apc-delete-file.php + * @param string|string[]|APCIterator $keys + * @return bool|string[] + */ +function apc_delete_file($keys) {} + +/** + * Increase a stored number + * @link https://php.net/manual/en/function.apc-inc.php + * @param string $key The key of the value being increased. + * @param int $step The step, or value to increase. + * @param bool|null &$success Optionally pass the success or fail boolean value to this referenced variable. + * @return int|false Returns the current value of key's value on success, or FALSE on failure. + */ +function apc_inc($key, $step = 1, &$success = null) {} + +/** + * Decrease a stored number + * @link https://php.net/manual/en/function.apc-dec.php + * @param string $key The key of the value being decreased. + * @param int $step The step, or value to decrease. + * @param bool|null &$success Optionally pass the success or fail boolean value to this referenced variable. + * @return int|false Returns the current value of key's value on success, or FALSE on failure. + */ +function apc_dec($key, $step = 1, &$success = null) {} + +/** + * Updates an old value with a new value + * @link https://php.net/manual/en/function.apc-cas.php + * @param string $key + * @param int $old + * @param int $new + * @return bool + */ +function apc_cas($key, $old, $new) {} + +/** + * Returns a binary dump of the given files and user variables from the APC cache + * + * A NULL for files or user_vars signals a dump of every entry, while array() will dump nothing. + * + * @link https://php.net/manual/en/function.apc-bin-dump.php + * @param string[]|null $files The files. Passing in NULL signals a dump of every entry, while passing in array() will dump nothing. + * @param string[]|null $user_vars The user vars. Passing in NULL signals a dump of every entry, while passing in array() will dump nothing. + * @return string|false|null Returns a binary dump of the given files and user variables from the APC cache, FALSE if APC is not enabled, or NULL if an unknown error is encountered. + */ +function apc_bin_dump($files = null, $user_vars = null) {} + +/** + * Output a binary dump of the given files and user variables from the APC cache to the named file + * @link https://php.net/manual/en/function.apc-bin-dumpfile.php + * @param string[]|null $files The file names being dumped. + * @param string[]|null $user_vars The user variables being dumped. + * @param string $filename The filename where the dump is being saved. + * @param int $flags Flags passed to the filename stream. See the file_put_contents() documentation for details. + * @param resource $context The context passed to the filename stream. See the file_put_contents() documentation for details. + * @return int|false The number of bytes written to the file, otherwise FALSE if APC + * is not enabled, filename is an invalid file name, filename can't be opened, + * the file dump can't be completed (e.g., the hard drive is out of disk space), + * or an unknown error was encountered. + */ +function apc_bin_dumpfile($files, $user_vars, $filename, $flags = 0, $context = null) {} + +/** + * Load the given binary dump into the APC file/user cache + * @link https://php.net/manual/en/function.apc-bin-load.php + * @param string $data The binary dump being loaded, likely from apc_bin_dump(). + * @param int $flags Either APC_BIN_VERIFY_CRC32, APC_BIN_VERIFY_MD5, or both. + * @return bool Returns TRUE if the binary dump data was loaded with success, otherwise FALSE is returned. + * FALSE is returned if APC is not enabled, or if the data is not a valid APC binary dump (e.g., unexpected size). + */ +function apc_bin_load($data, $flags = 0) {} + +/** + * Load the given binary dump from the named file into the APC file/user cache + * @link https://php.net/manual/en/function.apc-bin-loadfile.php + * @param string $filename The file name containing the dump, likely from apc_bin_dumpfile(). + * @param resource $context The files context. + * @param int $flags Either APC_BIN_VERIFY_CRC32, APC_BIN_VERIFY_MD5, or both. + * @return bool Returns TRUE on success, otherwise FALSE Reasons it may return FALSE include APC + * is not enabled, filename is an invalid file name or empty, filename can't be opened, + * the file dump can't be completed, or if the data is not a valid APC binary dump (e.g., unexpected size). + */ +function apc_bin_loadfile($filename, $context = null, $flags = 0) {} + +/** + * The APCIterator class + * + * The APCIterator class makes it easier to iterate over large APC caches. + * This is helpful as it allows iterating over large caches in steps, while grabbing a defined number + * of entries per lock instance, so it frees the cache locks for other activities rather than hold up + * the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more + * efficient as it's been moved to the C level. + * + * @link https://php.net/manual/en/class.apciterator.php + */ +class APCIterator implements Iterator +{ + /** + * Constructs an APCIterator iterator object + * @link https://php.net/manual/en/apciterator.construct.php + * @param string $cache The cache type, which will be 'user' or 'file'. + * @param string|string[]|null $search A PCRE regular expression that matches against APC key names, + * either as a string for a single regular expression, or as an array of regular expressions. + * Or, optionally pass in NULL to skip the search. + * @param int $format The desired format, as configured with one ore more of the APC_ITER_* constants. + * @param int $chunk_size The chunk size. Must be a value greater than 0. The default value is 100. + * @param int $list The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_INACTIVE. + */ + public function __construct($cache, $search = null, $format = APC_ITER_ALL, $chunk_size = 100, $list = APC_LIST_ACTIVE) {} + + /** + * Rewinds back the iterator to the first element + * @link https://php.net/manual/en/apciterator.rewind.php + */ + public function rewind() {} + + /** + * Checks if the current iterator position is valid + * @link https://php.net/manual/en/apciterator.valid.php + * @return bool Returns TRUE if the current iterator position is valid, otherwise FALSE. + */ + public function valid() {} + + /** + * Gets the current item from the APCIterator stack + * @link https://php.net/manual/en/apciterator.current.php + * @return mixed|false Returns the current item on success, or FALSE if no more items or exist, or on failure. + */ + public function current() {} + + /** + * Gets the current iterator key + * @link https://php.net/manual/en/apciterator.key.php + * @return string|int|false Returns the key on success, or FALSE upon failure. + */ + public function key() {} + + /** + * Moves the iterator pointer to the next element + * @link https://php.net/manual/en/apciterator.next.php + * @return bool Returns TRUE on success or FALSE on failure. + */ + public function next() {} + + /** + * Gets the total number of cache hits + * @link https://php.net/manual/en/apciterator.gettotalhits.php + * @return int|false The number of hits on success, or FALSE on failure. + */ + public function getTotalHits() {} + + /** + * Gets the total cache size + * @link https://php.net/manual/en/apciterator.gettotalsize.php + * @return int|bool The total cache size. + */ + public function getTotalSize() {} + + /** + * Get the total count + * @link https://php.net/manual/en/apciterator.gettotalcount.php + * @return int|bool The total count. + */ + public function getTotalCount() {} +} + +/** + * Stubs for APCu 5.0.0 + */ + +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_LIST_ACTIVE', 1); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_LIST_DELETED', 2); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_TYPE', 1); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_KEY', 2); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_FILENAME', 4); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_DEVICE', 8); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_INODE', 16); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_VALUE', 32); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_MD5', 64); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_NUM_HITS', 128); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_MTIME', 256); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_CTIME', 512); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_DTIME', 1024); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_ATIME', 2048); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_REFCOUNT', 4096); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_MEM_SIZE', 8192); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_TTL', 16384); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_NONE', 0); +/** + * @link https://php.net/manual/en/apcu.constants.php + */ +define('APC_ITER_ALL', -1); + +/** + * Clears the APCu cache + * @link https://php.net/manual/en/function.apcu-clear-cache.php + * + * @return bool Returns TRUE always. + */ +function apcu_clear_cache() {} + +/** + * Retrieves APCu Shared Memory Allocation information + * @link https://php.net/manual/en/function.apcu-sma-info.php + * @param bool $limited When set to FALSE (default) apcu_sma_info() will + * return a detailed information about each segment. + * + * @return array|false Array of Shared Memory Allocation data; FALSE on failure. + */ +function apcu_sma_info($limited = false) {} + +/** + * Cache a variable in the data store + * @link https://php.net/manual/en/function.apcu-store.php + * @param string|string[] $key String: Store the variable using this name. Keys are cache-unique, + * so storing a second value with the same key will overwrite the original value. + * Array: Names in key, variables in value. + * @param mixed $var [optional] The variable to store + * @param int $ttl [optional] Time To Live; store var in the cache for ttl seconds. After the ttl has passed, + * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied + * (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @return bool|array Returns TRUE on success or FALSE on failure | array with error keys. + */ +function apcu_store($key, $var, $ttl = 0) {} + +/** + * Fetch a stored variable from the cache + * @link https://php.net/manual/en/function.apcu-fetch.php + * @param string|string[] $key The key used to store the value (with apcu_store()). + * If an array is passed then each element is fetched and returned. + * @param bool|null &$success Set to TRUE in success and FALSE in failure. + * @return mixed|false The stored variable or array of variables on success; FALSE on failure. + */ +function apcu_fetch($key, &$success = null) {} + +/** + * Removes a stored variable from the cache + * @link https://php.net/manual/en/function.apcu-delete.php + * @param string|string[]|APCUIterator $key The key used to store the value (with apcu_store()). + * @return bool|string[] Returns TRUE on success or FALSE on failure. For array of keys returns list of failed keys. + */ +function apcu_delete($key) {} + +/** + * Caches a variable in the data store, only if it's not already stored + * @link https://php.net/manual/en/function.apcu-add.php + * @param string|array $key Store the variable using this name. Keys are cache-unique, + * so attempting to use apcu_add() to store data with a key that already exists will not + * overwrite the existing data, and will instead return FALSE. (This is the only difference + * between apcu_add() and apcu_store().) + * Array: Names in key, variables in value. + * @param mixed $var The variable to store + * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed, + * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied + * (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @return bool|array Returns TRUE if something has effectively been added into the cache, FALSE otherwise. + * Second syntax returns array with error keys. + */ +function apcu_add($key, $var, $ttl = 0) {} + +/** + * Checks if APCu key exists + * @link https://php.net/manual/en/function.apcu-exists.php + * @param string|string[] $keys A string, or an array of strings, that contain keys. + * @return bool|string[] Returns TRUE if the key exists, otherwise FALSE + * Or if an array was passed to keys, then an array is returned that + * contains all existing keys, or an empty array if none exist. + */ +function apcu_exists($keys) {} + +/** + * Increase a stored number + * @link https://php.net/manual/en/function.apcu-inc.php + * @param string $key The key of the value being increased. + * @param int $step The step, or value to increase. + * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed, + * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied + * (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @param bool|null &$success Optionally pass the success or fail boolean value to this referenced variable. + * @return int|false Returns the current value of key's value on success, or FALSE on failure. + */ +function apcu_inc($key, $step = 1, &$success = null, $ttl = 0) {} + +/** + * Decrease a stored number + * @link https://php.net/manual/en/function.apcu-dec.php + * @param string $key The key of the value being decreased. + * @param int $step The step, or value to decrease. + * @param int $ttl Time To Live; store var in the cache for ttl seconds. After the ttl has passed, + * the stored variable will be expunged from the cache (on the next request). If no ttl is supplied + * (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @param bool|null &$success Optionally pass the success or fail boolean value to this referenced variable. + * @return int|false Returns the current value of key's value on success, or FALSE on failure. + */ +function apcu_dec($key, $step = 1, &$success = null, $ttl = 0) {} + +/** + * Updates an old value with a new value + * + * apcu_cas() updates an already existing integer value if the old parameter matches the currently stored value + * with the value of the new parameter. + * + * @link https://php.net/manual/en/function.apcu-cas.php + * @param string $key The key of the value being updated. + * @param int $old The old value (the value currently stored). + * @param int $new The new value to update to. + * @return bool Returns TRUE on success or FALSE on failure. + */ +function apcu_cas($key, $old, $new) {} + +/** + * Atomically fetch or generate a cache entry + * + *Atomically attempts to find key in the cache, if it cannot be found generator is called, + * passing key as the only argument. The return value of the call is then cached with the optionally + * specified ttl, and returned. + *
+ * + *Note: When control enters apcu_entry() the lock for the cache is acquired exclusively, it is released when + * control leaves apcu_entry(): In effect, this turns the body of generator into a critical section, + * disallowing two processes from executing the same code paths concurrently. + * In addition, it prohibits the concurrent execution of any other APCu functions, + * since they will acquire the same lock. + *
+ * + * @link https://php.net/manual/en/function.apcu-entry.php + * + * @param string $key Identity of cache entry + * @param callable $generator A callable that accepts key as the only argument and returns the value to cache. + *Warning + * The only APCu function that can be called safely by generator is apcu_entry().
+ * @param int $ttl [optional] Time To Live; store var in the cache for ttl seconds. + * After the ttl has passed, the stored variable will be expunged from the cache (on the next request). + * If no ttl is supplied (or if the ttl is 0), the value will persist until it is removed from the cache manually, + * or otherwise fails to exist in the cache (clear, restart, etc.). + * @return mixed Returns the cached value + * @since APCu 5.1.0 + */ +function apcu_entry($key, callable $generator, $ttl = 0) {} + +/** + * Retrieves cached information from APCu's data store + * + * @link https://php.net/manual/en/function.apcu-cache-info.php + * + * @param bool $limited If limited is TRUE, the return value will exclude the individual list of cache entries. + * This is useful when trying to optimize calls for statistics gathering. + * @return array|false Array of cached data (and meta-data) or FALSE on failure + */ +function apcu_cache_info($limited = false) {} + +/** + * Whether APCu is usable in the current environment + * + * @link https://www.php.net/manual/en/function.apcu-enabled.php + * + * @return bool + */ +function apcu_enabled() {} + +/** + * @param string $key + * @return array|null + */ +function apcu_key_info($key) {} + +/** + * The APCUIterator class + * + * The APCUIterator class makes it easier to iterate over large APCu caches. + * This is helpful as it allows iterating over large caches in steps, while grabbing a defined number + * of entries per lock instance, so it frees the cache locks for other activities rather than hold up + * the entire cache to grab 100 (the default) entries. Also, using regular expression matching is more + * efficient as it's been moved to the C level. + * + * @link https://php.net/manual/en/class.apcuiterator.php + * @since APCu 5.0.0 + */ +class APCUIterator implements Iterator +{ + /** + * Constructs an APCUIterator iterator object + * @link https://php.net/manual/en/apcuiterator.construct.php + * @param string|string[]|null $search A PCRE regular expression that matches against APCu key names, + * either as a string for a single regular expression, or as an array of regular expressions. + * Or, optionally pass in NULL to skip the search. + * @param int $format The desired format, as configured with one ore more of the APC_ITER_* constants. + * @param int $chunk_size The chunk size. Must be a value greater than 0. The default value is 100. + * @param int $list The type to list. Either pass in APC_LIST_ACTIVE or APC_LIST_DELETED. + */ + public function __construct($search = null, $format = APC_ITER_ALL, $chunk_size = 100, $list = APC_LIST_ACTIVE) {} + + /** + * Rewinds back the iterator to the first element + * @link https://php.net/manual/en/apcuiterator.rewind.php + */ + public function rewind() {} + + /** + * Checks if the current iterator position is valid + * @link https://php.net/manual/en/apcuiterator.valid.php + * @return bool Returns TRUE if the current iterator position is valid, otherwise FALSE. + */ + public function valid() {} + + /** + * Gets the current item from the APCUIterator stack + * @link https://php.net/manual/en/apcuiterator.current.php + * @return mixed|false Returns the current item on success, or FALSE if no more items or exist, or on failure. + */ + public function current() {} + + /** + * Gets the current iterator key + * @link https://php.net/manual/en/apcuiterator.key.php + * @return string|int|false Returns the key on success, or FALSE upon failure. + */ + public function key() {} + + /** + * Moves the iterator pointer to the next element + * @link https://php.net/manual/en/apcuiterator.next.php + * @return bool Returns TRUE on success or FALSE on failure. + */ + public function next() {} + + /** + * Gets the total number of cache hits + * @link https://php.net/manual/en/apcuiterator.gettotalhits.php + * @return int|false The number of hits on success, or FALSE on failure. + */ + public function getTotalHits() {} + + /** + * Gets the total cache size + * @link https://php.net/manual/en/apcuiterator.gettotalsize.php + * @return int|false The total cache size. + */ + public function getTotalSize() {} + + /** + * Get the total count + * @link https://php.net/manual/en/apcuiterator.gettotalcount.php + * @return int|false The total count. + */ + public function getTotalCount() {} +} diff --git a/phpstorm-stubs/ast/ast.php b/phpstorm-stubs/ast/ast.php new file mode 100644 index 0000000..9fc3951 --- /dev/null +++ b/phpstorm-stubs/ast/ast.php @@ -0,0 +1,485 @@ +] value) {stmts} (children: expr, value, key, stmts) */ +const AST_FOREACH = 1025; +/** A global function declaration. (children: name, docComment, params, stmts, returnType, __declId) */ +const AST_FUNC_DECL = 67; +/** A usage of a global variable of the form `global var`. (children: var) */ +const AST_GLOBAL = 277; +/** A goto statement of the form `goto label;` (children: label) */ +const AST_GOTO = 285; +/** A use statement (for classes, namespaces, functions, and/or constants) containing a list of one or more elements. (children: prefix, uses) */ +const AST_GROUP_USE = 545; +/** A `__halt_compiler;` statement. (children: offset) */ +const AST_HALT_COMPILER = 282; +/** A list of `ast\AST_IF_ELEM` nodes for a chain of 1 or more `if`/`elseif`/`else` statements (numerically indexed children) */ +const AST_IF = 133; +/** An `if`/`elseif`/`elseif` statement of the form `if (cond) stmts` (children: cond, stmts) */ +const AST_IF_ELEM = 535; +/** An `include*(expr)`, `require*(expr)`, or `eval(expr)` statement. The type can be determined from the flags (`ast\flags\EXEC_*`). (children: expr) */ +const AST_INCLUDE_OR_EVAL = 269; +/** An `expr instanceof class` expression. (children: expr, class) */ +const AST_INSTANCEOF = 528; +/** An `isset(var)` expression. (children: var) */ +const AST_ISSET = 263; +/** A `name:` expression (a target for `goto name`). (children: name) */ +const AST_LABEL = 280; +/** Used for `list() = ` unpacking, etc. Predates AST version 50. (numerically indexed children) */ +const AST_LIST = 255; +/** A magic constant (depends on flags that are one of `ast\flags\MAGIC_*`) */ +const AST_MAGIC_CONST = 0; +/** A match expression of the form `match(cond) { stmts }` (children: cond, stmts) */ +const AST_MATCH = 548; +/** An arm of a match expression of the form `cond => expr` (children: cond, expr) */ +const AST_MATCH_ARM = 549; +/** Numerically indexed children of the kind `ast\AST_MATCH_ARM` for the statements of a match expression */ +const AST_MATCH_ARM_LIST = 147; +/** A method declaration. (children: name, docComment, params, stmts, returnType, __declId) */ +const AST_METHOD = 69; +/** An invocation of an instance method, of the form `expr->method(args)` (children: expr, method, args) */ +const AST_METHOD_CALL = 768; +/** A reference to a method when using a trait inside a class declaration. (children: class, method) */ +const AST_METHOD_REFERENCE = 541; +/** A name token (e.g. of a constant/class/class type) (children: name) */ +const AST_NAME = 2048; +/** A named argument in an argument list of a function/method call. (children: name, expr) */ +const AST_NAMED_ARG = 550; +/** A namespace declaration of the form `namespace name;` or `namespace name { stmts }`. (children: name, stmts) */ +const AST_NAMESPACE = 542; +/** A list of names (e.g. for catching multiple classes in a `catch` statement) (numerically indexed children) */ +const AST_NAME_LIST = 141; +/** An object creation expression of the form `new class(args)` (children: class, args) */ +const AST_NEW = 527; +/** A nullable node with a child node of kind `ast\AST_TYPE` or `ast\AST_NAME` (children: type) */ +const AST_NULLABLE_TYPE = 2050; +/** A nullsafe method call of the form `expr?->method(args)`. (children: expr, method, args) */ +const AST_NULLSAFE_METHOD_CALL = 769; +/** A nullsafe property read of the form `expr?->prop`. (children: expr, prop) */ +const AST_NULLSAFE_PROP = 514; +/** A parameter of a function, closure, or method declaration. (children: type, name, default) */ +const AST_PARAM = 1280; +/** The list of parameters of a function, closure, or method declaration. (numerically indexed children) */ +const AST_PARAM_LIST = 136; +/** A `var--` expression. (children: var) */ +const AST_POST_DEC = 274; +/** A `var++` expression. (children: var) */ +const AST_POST_INC = 273; +/** A `--var` expression. (children: var) */ +const AST_PRE_DEC = 272; +/** A `++var` expression. (children: var) */ +const AST_PRE_INC = 271; +/** A `print expr` expression. (children: expr) */ +const AST_PRINT = 268; +/** An instance property usage of the form `expr->prop` (children: expr, prop) */ +const AST_PROP = 513; +/** A single group of property declarations inside a class. (numerically indexed children) */ +const AST_PROP_DECL = 138; +/** A class property declaration. (children: name, default, docComment) */ +const AST_PROP_ELEM = 775; +/** A class property group declaration with optional type information for the group (in PHP 7.4+). Used in AST version 70+ (children: type, props, __declId) */ +const AST_PROP_GROUP = 774; +/** Used for `&$v` in `foreach ($a as &$v)` (children: var) */ +const AST_REF = 281; +/** A `return;` or `return expr` statement. (children: expr) */ +const AST_RETURN = 279; +/** A `\`some_shell_command\`` expression. (children: expr) */ +const AST_SHELL_EXEC = 265; +/** A declaration of a static local variable of the form `static var = default`. (children: var, default) */ +const AST_STATIC = 532; +/** A call of a static method, of the form `class::method(args)`. (children: class, method, args) */ +const AST_STATIC_CALL = 770; +/** A usage of a static property, of the form `class::prop`. (children: class, prop) */ +const AST_STATIC_PROP = 515; +/** A list of statements. The statements are usually nodes but can be non-nodes, e.g. `;2;`. (numerically indexed children) */ +const AST_STMT_LIST = 132; +/** A switch statement of the form `switch(cond) { stmts }`. `stmts` is a node of the kind `ast\AST_SWITCH_LIST`. (children: cond, stmts) */ +const AST_SWITCH = 536; +/** A case statement of a switch, of the form `case cond: stmts` (children: cond, stmts) */ +const AST_SWITCH_CASE = 537; +/** The full list of nodes inside a switch statement body, each of kind `ast\AST_SWITCH_CASE`. (numerically indexed children) */ +const AST_SWITCH_LIST = 134; +/** A throw statement of the form `throw expr;` (children: expr) */ +const AST_THROW = 284; +/** The optional adaptations to a statement using a trait inside a class (numerically indexed children) */ +const AST_TRAIT_ADAPTATIONS = 142; +/** Adds an alias inside of a use of a trait (`method as alias`) (children: method, alias) */ +const AST_TRAIT_ALIAS = 544; +/** Indicates the precedent of a trait over another trait (`method INSTEADOF insteadof`) (children: method, insteadof) */ +const AST_TRAIT_PRECEDENCE = 540; +/** A try/catch(es)/finally block. (children: try, catches, finally) */ +const AST_TRY = 772; +/** A type such as `bool`. Other types such as specific classes are represented as `ast\AST_NAME`s (depends on flags of `ast\flags\TYPE_*`) */ +const AST_TYPE = 1; +/** A union type made up of individual types, such as `bool|int` (numerically indexed children) */ +const AST_TYPE_UNION = 144; +/** A unary operation of the form `op expr` (e.g. `-expr`, the flags can be one of `ast\flags\UNARY_*`) (children: expr) */ +const AST_UNARY_OP = 270; +/** An expression unpacking an array/iterable (i.e. `...expr`) (children: expr) */ +const AST_UNPACK = 258; +/** `unset(var)` - A statement unsetting the expression `var` (children: var) */ +const AST_UNSET = 278; +/** A list of uses of classes/namespaces, functions, and constants. The child nodes are of the kind `ast\AST_USE_ELEM` (numerically indexed children) */ +const AST_USE = 143; +/** A single use statement for a group of (children: name, alias) */ +const AST_USE_ELEM = 543; +/** Represents `use traits {[adaptations]}` within a class declaration (children: traits, adaptations) */ +const AST_USE_TRAIT = 539; +/** An occurrence of a variable `$name` or `${name}`. (children: name) */ +const AST_VAR = 256; +/** A while loop of the form `while (cond) { stmts }` (children: cond, stmts) */ +const AST_WHILE = 533; +/** An expression of the form `yield [key =>] value` (children: value, key) */ +const AST_YIELD = 529; +/** An expression of the form `yield from expr` (children: expr) */ +const AST_YIELD_FROM = 275; +} + +namespace ast\flags { +/** Marks an `ast\AST_ARRAY_ELEM` as a reference */ +const ARRAY_ELEM_REF = 1; +/** Marks an `ast\AST_ARRAY` as using the `list(...)` syntax */ +const ARRAY_SYNTAX_LIST = 1; +/** Marks an `ast\AST_ARRAY` as using the `array(...)` syntax */ +const ARRAY_SYNTAX_LONG = 2; +/** Marks an `ast\AST_ARRAY` as using the `[...]` syntax */ +const ARRAY_SYNTAX_SHORT = 3; +/** Marks an ast\AST_BINARY_OP as being a `+` */ +const BINARY_ADD = 1; +/** Marks an ast\AST_BINARY_OP as being a `&` */ +const BINARY_BITWISE_AND = 10; +/** Marks an ast\AST_BINARY_OP as being a `|` */ +const BINARY_BITWISE_OR = 9; +/** Marks an ast\AST_BINARY_OP as being a `^` */ +const BINARY_BITWISE_XOR = 11; +/** Marks an ast\AST_BINARY_OP as being a `&&` or `and` */ +const BINARY_BOOL_AND = 259; +/** Marks an ast\AST_BINARY_OP as being a `||` or `or` */ +const BINARY_BOOL_OR = 258; +/** Marks an ast\AST_BINARY_OP as being an `xor` */ +const BINARY_BOOL_XOR = 15; +/** Marks an ast\AST_BINARY_OP as being a `??` */ +const BINARY_COALESCE = 260; +/** Marks an ast\AST_BINARY_OP as being a `.` */ +const BINARY_CONCAT = 8; +/** Marks an ast\AST_BINARY_OP as being a `/` */ +const BINARY_DIV = 4; +/** Marks an ast\AST_BINARY_OP as being a `==` */ +const BINARY_IS_EQUAL = 18; +/** Marks an ast\AST_BINARY_OP as being a `>` */ +const BINARY_IS_GREATER = 256; +/** Marks an ast\AST_BINARY_OP as being a `>=` */ +const BINARY_IS_GREATER_OR_EQUAL = 257; +/** Marks an ast\AST_BINARY_OP as being a `===` */ +const BINARY_IS_IDENTICAL = 16; +/** Marks an ast\AST_BINARY_OP as being a `!=` */ +const BINARY_IS_NOT_EQUAL = 19; +/** Marks an ast\AST_BINARY_OP as being a `!==` */ +const BINARY_IS_NOT_IDENTICAL = 17; +/** Marks an ast\AST_BINARY_OP as being a `<` */ +const BINARY_IS_SMALLER = 20; +/** Marks an ast\AST_BINARY_OP as being a `<=` */ +const BINARY_IS_SMALLER_OR_EQUAL = 21; +/** Marks an ast\AST_BINARY_OP as being a `%` */ +const BINARY_MOD = 5; +/** Marks an ast\AST_BINARY_OP as being a `*` */ +const BINARY_MUL = 3; +/** Marks an ast\AST_BINARY_OP as being a `**` */ +const BINARY_POW = 12; +/** Marks an ast\AST_BINARY_OP as being a `<<` */ +const BINARY_SHIFT_LEFT = 6; +/** Marks an ast\AST_BINARY_OP as being a `>>` */ +const BINARY_SHIFT_RIGHT = 7; +/** Marks an ast\AST_BINARY_OP as being a `<=>` */ +const BINARY_SPACESHIP = 170; +/** Marks an ast\AST_BINARY_OP as being a `-` */ +const BINARY_SUB = 2; +/** Marks a `ast\AST_CLASS` (class-like declaration) as being abstract */ +const CLASS_ABSTRACT = 64; +/** Marks a `ast\AST_CLASS` (class-like declaration) as being anonymous */ +const CLASS_ANONYMOUS = 4; +/** Marks a `ast\AST_CLASS` (class-like declaration) as being final */ +const CLASS_FINAL = 32; +/** Marks a `ast\AST_CLASS` (class-like declaration) as being an interface */ +const CLASS_INTERFACE = 1; +/** Marks a `ast\AST_CLASS` (class-like declaration) as being a trait */ +const CLASS_TRAIT = 2; +/** Marks an `ast\AST_CLOSURE_USE` as using a variable by reference */ +const CLOSURE_USE_REF = 1; +/** Marks an `ast\AST_DIM` as using the alternative `expr{dim}` syntax */ +const DIM_ALTERNATIVE_SYNTAX = 2; +/** Marks an `ast\AST_EXEC` as being an `eval(...)` */ +const EXEC_EVAL = 1; +/** Marks an `ast\AST_EXEC` as being an `include` */ +const EXEC_INCLUDE = 2; +/** Marks an `ast\AST_EXEC` as being an `include_once` */ +const EXEC_INCLUDE_ONCE = 4; +/** Marks an `ast\AST_EXEC` as being a `require` */ +const EXEC_REQUIRE = 8; +/** Marks an `ast\AST_EXEC` as being a `require_once` */ +const EXEC_REQUIRE_ONCE = 16; +/** Marks an `ast\AST_FUNC_DECL` as being a generator */ +const FUNC_GENERATOR = 16777216; +/** Marks an `ast\AST_FUNC_DECL` as returning a value by reference */ +const FUNC_RETURNS_REF = 4096; +/** Marks an `ast\AST_MAGIC_CONST` as being `__CLASS__` */ +const MAGIC_CLASS = 378; +/** Marks an `ast\AST_MAGIC_CONST` as being `__DIR__` */ +const MAGIC_DIR = 377; +/** Marks an `ast\AST_MAGIC_CONST` as being `__FILE__` */ +const MAGIC_FILE = 376; +/** Marks an `ast\AST_MAGIC_CONST` as being `__FUNCTION__` */ +const MAGIC_FUNCTION = 381; +/** Marks an `ast\AST_MAGIC_CONST` as being `__LINE__` */ +const MAGIC_LINE = 375; +/** Marks an `ast\AST_MAGIC_CONST` as being `__METHOD__` */ +const MAGIC_METHOD = 380; +/** Marks an `ast\AST_MAGIC_CONST` as being `__NAMESPACE__` */ +const MAGIC_NAMESPACE = 382; +/** Marks an `ast\AST_MAGIC_CONST` as being `__TRAIT__` */ +const MAGIC_TRAIT = 379; +/** Marks an element declaration as being `abstract` */ +const MODIFIER_ABSTRACT = 64; +/** Marks an element declaration as being `final` */ +const MODIFIER_FINAL = 32; +/** Marks an element declaration as being `private` */ +const MODIFIER_PRIVATE = 4; +/** Marks an element declaration as being `protected` */ +const MODIFIER_PROTECTED = 2; +/** Marks an element declaration as being `public` */ +const MODIFIER_PUBLIC = 1; +/** Marks an element declaration as being `static` */ +const MODIFIER_STATIC = 16; +/** Marks an `ast\AST_NAME` as being fully qualified (`\Name`) */ +const NAME_FQ = 0; +/** Marks an `ast\AST_NAME` as being not fully qualified (`Name`) */ +const NAME_NOT_FQ = 1; +/** Marks an `ast\AST_NAME` as being relative to the current namespace (`namespace\Name`) */ +const NAME_RELATIVE = 2; +/** Marks a promoted constructor property as being `private` */ +const PARAM_MODIFIER_PRIVATE = 4; +/** Marks a promoted constructor property as being `protected` */ +const PARAM_MODIFIER_PROTECTED = 2; +/** Marks a promoted constructor property as being `public` */ +const PARAM_MODIFIER_PUBLIC = 1; +/** Marks an `ast\AST_PARAM` as being a reference (`&$x`) */ +const PARAM_REF = 8; +/** Marks an `ast\AST_PARAM` as being variadic (`...$x`) */ +const PARAM_VARIADIC = 16; +/** Marks a `ast\AST_CONDITIONAL` as being parenthesized (`(cond ? true : false)`) */ +const PARENTHESIZED_CONDITIONAL = 1; +/** Marks a function-like as returning an argument by reference */ +const RETURNS_REF = 4096; +/** Marks an `ast\AST_TYPE` as being `array` */ +const TYPE_ARRAY = 7; +/** Marks an `ast\AST_TYPE` as being `bool` */ +const TYPE_BOOL = 17; +/** Marks an `ast\AST_TYPE` as being `callable` */ +const TYPE_CALLABLE = 12; +/** Marks an `ast\AST_TYPE` as being `float` */ +const TYPE_DOUBLE = 5; +/** Marks an `ast\AST_TYPE` as being `false` (for union types) */ +const TYPE_FALSE = 2; +/** Marks an `ast\AST_TYPE` as being `iterable` */ +const TYPE_ITERABLE = 13; +/** Marks an `ast\AST_TYPE` as being `int` */ +const TYPE_LONG = 4; +/** Marks an `ast\AST_TYPE` as being `mixed` */ +const TYPE_MIXED = 16; +/** Marks an `ast\AST_TYPE` as being `null` (for union types) */ +const TYPE_NULL = 1; +/** Marks an `ast\AST_TYPE` as being `object` */ +const TYPE_OBJECT = 8; +/** Marks an `ast\AST_TYPE` as being `static` (for return types) */ +const TYPE_STATIC = 15; +/** Marks an `ast\AST_TYPE` as being `string` */ +const TYPE_STRING = 6; +/** Marks an `ast\AST_TYPE` as being `void` (for return types) */ +const TYPE_VOID = 14; +/** Marks an `ast\AST_UNARY_OP` as being `~expr` */ +const UNARY_BITWISE_NOT = 13; +/** Marks an `ast\AST_UNARY_OP` as being `!expr` */ +const UNARY_BOOL_NOT = 14; +/** Marks an `ast\AST_UNARY_OP` as being `-expr` */ +const UNARY_MINUS = 262; +/** Marks an `ast\AST_UNARY_OP` as being `+expr` */ +const UNARY_PLUS = 261; +/** Marks an `ast\AST_UNARY_OP` as being `@expr` */ +const UNARY_SILENCE = 260; +/** Marks an `ast\AST_USE` or `ast\AST_GROUP_USE` (namespace use statement) as being `use const name;` */ +const USE_CONST = 4; +/** Marks an `ast\AST_USE` or `ast\AST_GROUP_USE` (namespace use statement) as being `use function name;` */ +const USE_FUNCTION = 2; +/** Marks an `ast\AST_USE` or `ast\AST_GROUP_USE` (namespace use statement) as being `use name;` */ +const USE_NORMAL = 1; +} diff --git a/phpstorm-stubs/bcmath/bcmath.php b/phpstorm-stubs/bcmath/bcmath.php new file mode 100644 index 0000000..c7042ad --- /dev/null +++ b/phpstorm-stubs/bcmath/bcmath.php @@ -0,0 +1,248 @@ + + * The left operand, as a string. + * + * @param string $num2+ * The right operand, as a string. + *
+ * @param int|null $scale+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string The sum of the two operands, as a string. + */ +#[Pure] +function bcadd(string $num1, string $num2, ?int $scale = null): string {} + +/** + * Subtract one arbitrary precision number from another + * @link https://php.net/manual/en/function.bcsub.php + * @param string $num1+ * The left operand, as a string. + *
+ * @param string $num2+ * The right operand, as a string. + *
+ * @param int|null $scale+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string The result of the subtraction, as a string. + */ +#[Pure] +function bcsub(string $num1, string $num2, ?int $scale = null): string {} + +/** + * Multiply two arbitrary precision numbers + * @link https://php.net/manual/en/function.bcmul.php + * @param string $num1+ * The left operand, as a string. + *
+ * @param string $num2+ * The right operand, as a string. + *
+ * @param int|null $scale+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string the result as a string. + */ +#[Pure] +function bcmul(string $num1, string $num2, ?int $scale = null): string {} + +/** + * Divide two arbitrary precision numbers + * @link https://php.net/manual/en/function.bcdiv.php + * @param string $num1+ * The dividend, as a string. + *
+ * @param string $num2+ * The divisor, as a string. + *
+ * @param int|null $scale [optional]+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string|null the result of the division as a string, or NULL if + * divisor is 0. + */ +#[Pure] +#[PhpStormStubsElementAvailable(to: '7.4')] +function bcdiv(string $num1, string $num2, ?int $scale = 0): ?string {} + +/** + * Divide two arbitrary precision numbers + * @link https://php.net/manual/en/function.bcdiv.php + * @param string $num1+ * The dividend, as a string. + *
+ * @param string $num2+ * The divisor, as a string. + *
+ * @param int|null $scale [optional]+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string the result of the division as a string. + * @throws \DivisionByZeroError if divisor is 0. Available since PHP 8.0. + */ +#[Pure] +#[PhpStormStubsElementAvailable('8.0')] +function bcdiv(string $num1, string $num2, ?int $scale = null): string {} + +/** + * Get modulus of an arbitrary precision number + * @link https://php.net/manual/en/function.bcmod.php + * @param string $num1+ * The dividend, as a string. Since PHP 7.2, the divided is no longer truncated to an integer. + *
+ * @param string $num2+ * The divisor, as a string. Since PHP 7.2, the divisor is no longer truncated to an integer. + *
+ * @param int|null $scale [optional]+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. Available since PHP 7.2. + *
+ * @return string|null the modulus as a string, or NULL if + * divisor is 0. + */ +#[Pure] +#[PhpStormStubsElementAvailable(to: '7.4')] +function bcmod(string $num1, string $num2, ?int $scale = 0): ?string {} + +/** + * Get modulus of an arbitrary precision number + * @link https://php.net/manual/en/function.bcmod.php + * @param string $num1+ * The dividend, as a string. Since PHP 7.2, the divided is no longer truncated to an integer. + *
+ * @param string $num2+ * The divisor, as a string. Since PHP 7.2, the divisor is no longer truncated to an integer. + *
+ * @param int|null $scale [optional]+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. Available since PHP 7.2. + *
+ * @return string the modulus as a string. + * @throws \DivisionByZeroError if divisor is 0. Available since PHP 8.0. + */ +#[Pure] +#[PhpStormStubsElementAvailable('8.0')] +function bcmod(string $num1, string $num2, ?int $scale = null): string {} + +/** + * Raise an arbitrary precision number to another + * @link https://php.net/manual/en/function.bcpow.php + * @param string $num+ * The base, as a string. + *
+ * @param string $exponent+ * The exponent, as a string. If the exponent is non-integral, it is truncated. + * The valid range of the exponent is platform specific, but is at least + * -2147483648 to 2147483647. + *
+ * @param int|null $scale+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string the result as a string. + */ +#[Pure] +function bcpow(string $num, string $exponent, ?int $scale = null): string {} + +/** + * Get the square root of an arbitrary precision number + * @link https://php.net/manual/en/function.bcsqrt.php + * @param string $num+ * The operand, as a string. + *
+ * @param int|null $scale [optional] + * @return string|null the square root as a string, or NULL if + * operand is negative. + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")] +function bcsqrt(string $num, ?int $scale) {} + +/** + * Set default scale parameter for all bc math functions + * @link https://php.net/manual/en/function.bcscale.php + * @param int $scale + * @return int|bool + */ +#[LanguageLevelTypeAware(['7.3' => 'int'], default: 'bool')] +function bcscale( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $scale, + #[PhpStormStubsElementAvailable(from: '7.3')] #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: 'int')] $scale = null +) {} + +/** + * Compare two arbitrary precision numbers + * @link https://php.net/manual/en/function.bccomp.php + * @param string $num1+ * The left operand, as a string. + *
+ * @param string $num2+ * The right operand, as a string. + *
+ * @param int|null $scale+ * The optional scale parameter is used to set the + * number of digits after the decimal place which will be used in the + * comparison. + *
+ * @return int 0 if the two operands are equal, 1 if the + * left_operand is larger than the + * right_operand, -1 otherwise. + */ +#[Pure] +function bccomp(string $num1, string $num2, ?int $scale = null): int {} + +/** + * Raise an arbitrary precision number to another, reduced by a specified modulus + * @link https://php.net/manual/en/function.bcpowmod.php + * @param string $num+ * The base, as an integral string (i.e. the scale has to be zero). + *
+ * @param string $exponent+ * The exponent, as an non-negative, integral string (i.e. the scale has to be + * zero). + *
+ * @param string $modulus+ * The modulus, as an integral string (i.e. the scale has to be zero). + *
+ * @param int|null $scale+ * This optional parameter is used to set the number of digits after the + * decimal place in the result. If omitted, it will default to the scale + * set globally with the {@link bcscale()} function, or fallback to 0 if + * this has not been set. + *
+ * @return string|null the result as a string, or NULL if modulus + * is 0 or exponent is negative. + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")] +function bcpowmod(string $num, string $exponent, string $modulus, ?int $scale = null) {} diff --git a/phpstorm-stubs/blackfire/blackfire.php b/phpstorm-stubs/blackfire/blackfire.php new file mode 100644 index 0000000..c5bf555 --- /dev/null +++ b/phpstorm-stubs/blackfire/blackfire.php @@ -0,0 +1,137 @@ + + * The name of the file to open, or an existing stream resource. + * + * @param string $mode+ * Similar to the fopen function, only 'r' (read) + * and 'w' (write) are supported. Everything else will cause bzopen + * to return FALSE. + *
+ * @return resource|false If the open fails, bzopen returns FALSE, otherwise + * it returns a pointer to the newly opened file. + */ +#[Pure] +function bzopen($file, string $mode) {} + +/** + * Binary safe bzip2 file read + * @link https://php.net/manual/en/function.bzread.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @param int<1024, 8192> $length [optional]+ * If not specified, bzread will read 1024 + * (uncompressed) bytes at a time. A maximum of 8192 + * uncompressed bytes will be read at a time. + *
+ * @return string|false the uncompressed data, or FALSE on error. + */ +function bzread($bz, int $length = 1024): string|false {} + +/** + * Binary safe bzip2 file write + * @link https://php.net/manual/en/function.bzwrite.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @param string $data+ * The written data. + *
+ * @param int|null $length [optional]+ * If supplied, writing will stop after length + * (uncompressed) bytes have been written or the end of + * data is reached, whichever comes first. + *
+ * @return int|false the number of bytes written, or FALSE on error. + */ +function bzwrite($bz, string $data, ?int $length): int|false {} + +/** + * Force a write of all buffered data + * @link https://php.net/manual/en/function.bzflush.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function bzflush($bz): bool {} + +/** + * Close a bzip2 file + * @link https://php.net/manual/en/function.bzclose.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function bzclose($bz): bool {} + +/** + * Returns a bzip2 error number + * @link https://php.net/manual/en/function.bzerrno.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @return int the error number as an integer. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.1' => 'int', '8.0' => 'int|false'], default: 'int')] +function bzerrno($bz) {} + +/** + * Returns a bzip2 error string + * @link https://php.net/manual/en/function.bzerrstr.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @return string a string containing the error message. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.1' => 'string', '8.0' => 'string|false'], default: 'string')] +function bzerrstr($bz) {} + +/** + * Returns the bzip2 error number and error string in an array + * @link https://php.net/manual/en/function.bzerror.php + * @param resource $bz+ * The file pointer. It must be valid and must point to a file + * successfully opened by bzopen. + *
+ * @return array an associative array, with the error code in the + * errno entry, and the error message in the + * errstr entry. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.1' => 'array', '8.0' => 'array|false'], default: 'array')] +#[ArrayShape(["errno" => "int", "errstr" => "string"])] +function bzerror($bz) {} + +/** + * Compress a string into bzip2 encoded data + * @link https://php.net/manual/en/function.bzcompress.php + * @param string $data+ * The string to compress. + *
+ * @param int $block_size+ * Specifies the blocksize used during compression and should be a number + * from 1 to 9 with 9 giving the best compression, but using more + * resources to do so. + *
+ * @param int $work_factor [optional]+ * Controls how the compression phase behaves when presented with worst + * case, highly repetitive, input data. The value can be between 0 and + * 250 with 0 being a special case. + *
+ *+ * Regardless of the workfactor, the generated + * output is the same. + *
+ * @return string|int The compressed string, or an error number if an error occurred. + */ +#[Pure] +function bzcompress( + string $data, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] int $blocksize, + #[PhpStormStubsElementAvailable(from: '7.1')] int $block_size = 4, + int $work_factor = 0 +): string|int {} + +/** + * Decompresses bzip2 encoded data + * @link https://php.net/manual/en/function.bzdecompress.php + * @param string $data+ * The string to decompress. + *
+ * @param bool $use_less_memory [optional]+ * If TRUE, an alternative decompression algorithm will be used which + * uses less memory (the maximum memory requirement drops to around 2300K) + * but works at roughly half the speed. + *
+ *+ * See the bzip2 documentation for more + * information about this feature. + *
+ * @return string|int|false The decompressed string, or an error number if an error occurred. + */ +#[Pure] +function bzdecompress(string $data, bool $use_less_memory = false): string|int|false {} diff --git a/phpstorm-stubs/calendar/calendar.php b/phpstorm-stubs/calendar/calendar.php new file mode 100644 index 0000000..3aef6c2 --- /dev/null +++ b/phpstorm-stubs/calendar/calendar.php @@ -0,0 +1,314 @@ + + * A julian day number as integer + * + * @return string The gregorian date as a string in the form "month/day/year" + */ +function jdtogregorian(int $julian_day): string {} + +/** + * Converts a Gregorian date to Julian Day Count + * @link https://php.net/manual/en/function.gregoriantojd.php + * @param int $month+ * The month as a number from 1 (for January) to 12 (for December) + *
+ * @param int $day+ * The day as a number from 1 to 31 + *
+ * @param int $year+ * The year as a number between -4714 and 9999 + *
+ * @return int The julian day for the given gregorian date as an integer. + */ +function gregoriantojd(int $month, int $day, int $year): int {} + +/** + * Converts a Julian Day Count to a Julian Calendar Date + * @link https://php.net/manual/en/function.jdtojulian.php + * @param int $julian_day+ * A julian day number as integer + *
+ * @return string The julian date as a string in the form "month/day/year" + */ +function jdtojulian(int $julian_day): string {} + +/** + * Converts a Julian Calendar date to Julian Day Count + * @link https://php.net/manual/en/function.juliantojd.php + * @param int $month+ * The month as a number from 1 (for January) to 12 (for December) + *
+ * @param int $day+ * The day as a number from 1 to 31 + *
+ * @param int $year+ * The year as a number between -4713 and 9999 + *
+ * @return int The julian day for the given julian date as an integer. + */ +function juliantojd(int $month, int $day, int $year): int {} + +/** + * Converts a Julian day count to a Jewish calendar date + * @link https://php.net/manual/en/function.jdtojewish.php + * @param int $julian_day + * @param bool $hebrew [optional]+ * If the hebrew parameter is set to TRUE, the + * fl parameter is used for Hebrew, string based, + * output format. + *
+ * @param int $flags [optional]+ * The available formats are: + * CAL_JEWISH_ADD_ALAFIM_GERESH, + * CAL_JEWISH_ADD_ALAFIM, + * CAL_JEWISH_ADD_GERESHAYIM. + *
+ * @return string The jewish date as a string in the form "month/day/year" + */ +function jdtojewish(int $julian_day, bool $hebrew = false, int $flags = 0): string {} + +/** + * Converts a date in the Jewish Calendar to Julian Day Count + * @link https://php.net/manual/en/function.jewishtojd.php + * @param int $month+ * The month as a number from 1 to 13 + *
+ * @param int $day+ * The day as a number from 1 to 30 + *
+ * @param int $year+ * The year as a number between 1 and 9999 + *
+ * @return int The julian day for the given jewish date as an integer. + */ +function jewishtojd(int $month, int $day, int $year): int {} + +/** + * Converts a Julian Day Count to the French Republican Calendar + * @link https://php.net/manual/en/function.jdtofrench.php + * @param int $julian_day + * @return string The french revolution date as a string in the form "month/day/year" + */ +function jdtofrench(int $julian_day): string {} + +/** + * Converts a date from the French Republican Calendar to a Julian Day Count + * @link https://php.net/manual/en/function.frenchtojd.php + * @param int $month+ * The month as a number from 1 (for Vendémiaire) to 13 (for the period of 5-6 days at the end of each year) + *
+ * @param int $day+ * The day as a number from 1 to 30 + *
+ * @param int $year+ * The year as a number between 1 and 14 + *
+ * @return int The julian day for the given french revolution date as an integer. + */ +function frenchtojd(int $month, int $day, int $year): int {} + +/** + * Returns the day of the week + * @link https://php.net/manual/en/function.jddayofweek.php + * @param int $julian_day+ * A julian day number as integer + *
+ * @param int $mode [optional]| Mode | + *Meaning | + *
| 0 (Default) | + *+ * Return the day number as an int (0=Sunday, 1=Monday, etc) + * | + *
| 1 | + *+ * Returns string containing the day of week + * (English-Gregorian) + * | + *
| 2 | + *+ * Return a string containing the abbreviated day of week + * (English-Gregorian) + * | + *
+ * The year as a number between 1970 an 2037 + *
+ * @param int $mode [optional] Allows Easter dates to be calculated based on the Julian calendar when set to CAL_EASTER_ALWAYS_JULIAN + * @return int The easter date as a unix timestamp. + */ +function easter_date(?int $year, #[PhpStormStubsElementAvailable(from: '8.0')] int $mode = CAL_EASTER_DEFAULT): int {} + +/** + * Get number of days after March 21 on which Easter falls for a given year + * @link https://php.net/manual/en/function.easter-days.php + * @param positive-int|null $year [optional]+ * The year as a positive number + *
+ * @param int $mode [optional]+ * Allows to calculate easter dates based + * on the Gregorian calendar during the years 1582 - 1752 when set to + * CAL_EASTER_ROMAN. See the calendar constants for more valid + * constants. + *
+ * @return int The number of days after March 21st that the Easter Sunday + * is in the given year. + */ +function easter_days(?int $year, int $mode = CAL_EASTER_DEFAULT): int {} + +/** + * Convert Unix timestamp to Julian Day + * @link https://php.net/manual/en/function.unixtojd.php + * @param int|null $timestamp defaults to time()+ * A unix timestamp to convert. + *
+ * @return int|false A julian day number as integer. + */ +function unixtojd(?int $timestamp = null): int|false {} + +/** + * Convert Julian Day to Unix timestamp + * @link https://php.net/manual/en/function.jdtounix.php + * @param int $julian_day+ * A julian day number between 2440588 and 2465342. + *
+ * @return int The unix timestamp for the start of the given julian day. + */ +function jdtounix(int $julian_day): int {} + +/** + * Converts from a supported calendar to Julian Day Count + * @link https://php.net/manual/en/function.cal-to-jd.php + * @param int $calendar+ * Calendar to convert from, one of + * CAL_GREGORIAN, + * CAL_JULIAN, + * CAL_JEWISH or + * CAL_FRENCH. + *
+ * @param int $month+ * The month as a number, the valid range depends + * on the calendar + *
+ * @param int $day+ * The day as a number, the valid range depends + * on the calendar + *
+ * @param int $year+ * The year as a number, the valid range depends + * on the calendar + *
+ * @return int A Julian Day number. + */ +function cal_to_jd(int $calendar, int $month, int $day, int $year): int {} + +/** + * Converts from Julian Day Count to a supported calendar + * @link https://php.net/manual/en/function.cal-from-jd.php + * @param int $julian_day+ * Julian day as integer + *
+ * @param int $calendar+ * Calendar to convert to + *
+ * @return array an array containing calendar information like month, day, year, + * day of week, abbreviated and full names of weekday and month and the + * date in string form "month/day/year". + */ +#[ArrayShape([ + "date" => "string", + "month" => "int", + "day" => "int", + "year" => "int", + "dow" => "int", + "abbrevdayname" => "string", + "dayname" => "string", + "abbrevmonth" => "string", + "monthname" => "string" +])] +function cal_from_jd(int $julian_day, int $calendar): array {} + +/** + * Return the number of days in a month for a given year and calendar + * @link https://php.net/manual/en/function.cal-days-in-month.php + * @param int $calendar+ * Calendar to use for calculation + *
+ * @param int $month+ * Month in the selected calendar + *
+ * @param int $year+ * Year in the selected calendar + *
+ * @return int The length in days of the selected month in the given calendar + */ +function cal_days_in_month(int $calendar, int $month, int $year): int {} + +/** + * Returns information about a particular calendar + * @link https://php.net/manual/en/function.cal-info.php + * @param int $calendar [optional]+ * Calendar to return information for. If no calendar is specified + * information about all calendars is returned. + *
+ * @return array + */ +#[ArrayShape(["months" => "array", "abbrevmonths" => "array", "maxdaysinmonth" => "int", "calname" => "string", "calsymbol" => "string"])] +function cal_info(int $calendar = -1): array {} + +define('CAL_GREGORIAN', 0); +define('CAL_JULIAN', 1); +define('CAL_JEWISH', 2); +define('CAL_FRENCH', 3); +define('CAL_NUM_CALS', 4); +define('CAL_DOW_DAYNO', 0); +define('CAL_DOW_SHORT', 2); +define('CAL_DOW_LONG', 1); +define('CAL_MONTH_GREGORIAN_SHORT', 0); +define('CAL_MONTH_GREGORIAN_LONG', 1); +define('CAL_MONTH_JULIAN_SHORT', 2); +define('CAL_MONTH_JULIAN_LONG', 3); +define('CAL_MONTH_JEWISH', 4); +define('CAL_MONTH_FRENCH', 5); +define('CAL_EASTER_DEFAULT', 0); +define('CAL_EASTER_ROMAN', 1); +define('CAL_EASTER_ALWAYS_GREGORIAN', 2); +define('CAL_EASTER_ALWAYS_JULIAN', 3); +define('CAL_JEWISH_ADD_ALAFIM_GERESH', 2); +define('CAL_JEWISH_ADD_ALAFIM', 4); +define('CAL_JEWISH_ADD_GERESHAYIM', 8); + +// End of calendar v. diff --git a/phpstorm-stubs/cassandra/cassandra.php b/phpstorm-stubs/cassandra/cassandra.php new file mode 100644 index 0000000..23deaa6 --- /dev/null +++ b/phpstorm-stubs/cassandra/cassandra.php @@ -0,0 +1,6867 @@ + + * @link https://github.com/soulshockers/cassandra-phpdoc + */ + +/** + * Copyright 2019 DataStax, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +namespace { + /** + * The main entry point to the PHP Driver for Apache Cassandra. + * + * Use Cassandra::cluster() to build a cluster instance. + * Use Cassandra::ssl() to build SSL options instance. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/ + */ + final class Cassandra + { + /** + * Consistency level ANY means the request is fulfilled as soon as the data + * has been written on the Coordinator. Requests with this consistency level + * are not guaranteed to make it to Replica nodes. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ANY + */ + public const CONSISTENCY_ANY = 0; + + /** + * Consistency level ONE guarantees that data has been written to at least + * one Replica node. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ONE + */ + public const CONSISTENCY_ONE = 1; + + /** + * Consistency level TWO guarantees that data has been written to at least + * two Replica nodes. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_TWO + */ + public const CONSISTENCY_TWO = 2; + + /** + * Consistency level THREE guarantees that data has been written to at least + * three Replica nodes. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_THREE + */ + public const CONSISTENCY_THREE = 3; + + /** + * Consistency level QUORUM guarantees that data has been written to at least + * the majority of Replica nodes. How many nodes exactly are a majority + * depends on the replication factor of a given keyspace and is calculated + * using the formula `ceil(RF / 2 + 1)`, where `ceil` is a mathematical + * ceiling function and `RF` is the replication factor used. For example, + * for a replication factor of `5`, the majority is `ceil(5 / 2 + 1) = 3`. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_QUORUM + */ + public const CONSISTENCY_QUORUM = 4; + + /** + * Consistency level ALL guarantees that data has been written to all + * Replica nodes. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_ALL + */ + public const CONSISTENCY_ALL = 5; + + /** + * Same as `CONSISTENCY_QUORUM`, but confined to the local data center. This + * consistency level works only with `NetworkTopologyStrategy` replication. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_QUORUM + */ + public const CONSISTENCY_LOCAL_QUORUM = 6; + + /** + * Consistency level EACH_QUORUM guarantees that data has been written to at + * least a majority Replica nodes in all datacenters. This consistency level + * works only with `NetworkTopologyStrategy` replication. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_EACH_QUORUM + */ + public const CONSISTENCY_EACH_QUORUM = 7; + + /** + * This is a serial consistency level, it is used in conditional updates, + * e.g. (`CREATE|INSERT ... IF NOT EXISTS`), and should be specified as the + * `serial_consistency` execution option when invoking `session.execute` + * or `session.execute_async`. + * + * Consistency level SERIAL, when set, ensures that a Paxos commit fails if + * any of the replicas is down. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_SERIAL + */ + public const CONSISTENCY_SERIAL = 8; + + /** + * Same as `CONSISTENCY_SERIAL`, but confined to the local data center. This + * consistency level works only with `NetworkTopologyStrategy` replication. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_SERIAL + */ + public const CONSISTENCY_LOCAL_SERIAL = 9; + + /** + * Same as `CONSISTENCY_ONE`, but confined to the local data center. This + * consistency level works only with `NetworkTopologyStrategy` replication. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CONSISTENCY_LOCAL_ONE + */ + public const CONSISTENCY_LOCAL_ONE = 10; + + /** + * Perform no verification of nodes when using SSL encryption. + * + * @see \Cassandra\SSLOptions\Builder::withVerifyFlags() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_NONE + */ + public const VERIFY_NONE = 0; + + /** + * Verify presence and validity of SSL certificates. + * + * @see \Cassandra\SSLOptions\Builder::withVerifyFlags() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_PEER_CERT + */ + public const VERIFY_PEER_CERT = 1; + + /** + * Verify that the IP address matches the SSL certificate’s common name or + * one of its subject alternative names. This implies the certificate is + * also present. + * + * @see \Cassandra\SSLOptions\Builder::withVerifyFlags() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERIFY_PEER_IDENTITY + */ + public const VERIFY_PEER_IDENTITY = 2; + + /** + * @see \Cassandra\BatchStatement::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_LOGGED + */ + public const BATCH_LOGGED = 0; + + /** + * @see \Cassandra\BatchStatement::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_UNLOGGED + */ + public const BATCH_UNLOGGED = 1; + + /** + * @see \Cassandra\BatchStatement::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-BATCH_COUNTER + */ + public const BATCH_COUNTER = 2; + + /** + * Used to disable logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_DISABLED + */ + public const LOG_DISABLED = 0; + + /** + * Allow critical level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_CRITICAL + */ + public const LOG_CRITICAL = 1; + + /** + * Allow error level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_ERROR + */ + public const LOG_ERROR = 2; + + /** + * Allow warning level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_WARN + */ + public const LOG_WARN = 3; + + /** + * Allow info level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_INFO + */ + public const LOG_INFO = 4; + + /** + * Allow debug level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_DEBUG + */ + public const LOG_DEBUG = 5; + + /** + * Allow trace level logging. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-LOG_TRACE + */ + public const LOG_TRACE = 6; + + /** + * When using a map, collection or set of type text, all of its elements + * must be strings. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TEXT + */ + public const TYPE_TEXT = 'text'; + + /** + * When using a map, collection or set of type ascii, all of its elements + * must be strings. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_ASCII + */ + public const TYPE_ASCII = 'ascii'; + + /** + * When using a map, collection or set of type varchar, all of its elements + * must be strings. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_VARCHAR + */ + public const TYPE_VARCHAR = 'varchar'; + + /** + * When using a map, collection or set of type bigint, all of its elements + * must be instances of Bigint. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BIGINT + */ + public const TYPE_BIGINT = 'bigint'; + + /** + * When using a map, collection or set of type smallint, all of its elements + * must be instances of Inet. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_SMALLINT + */ + public const TYPE_SMALLINT = 'smallint'; + + /** + * When using a map, collection or set of type tinyint, all of its elements + * must be instances of Inet. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TINYINT + */ + public const TYPE_TINYINT = 'tinyint'; + + /** + * When using a map, collection or set of type blob, all of its elements + * must be instances of Blob. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BLOB + */ + public const TYPE_BLOB = 'blob'; + + /** + * When using a map, collection or set of type bool, all of its elements + * must be boolean. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_BOOLEAN + */ + public const TYPE_BOOLEAN = 'boolean'; + + /** + * When using a map, collection or set of type counter, all of its elements + * must be instances of Bigint. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_COUNTER + */ + public const TYPE_COUNTER = 'counter'; + + /** + * When using a map, collection or set of type decimal, all of its elements + * must be instances of Decimal. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_DECIMAL + */ + public const TYPE_DECIMAL = 'decimal'; + + /** + * When using a map, collection or set of type double, all of its elements + * must be doubles. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_DOUBLE + */ + public const TYPE_DOUBLE = 'double'; + + /** + * When using a map, collection or set of type float, all of its elements + * must be instances of Float. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_FLOAT + */ + public const TYPE_FLOAT = 'float'; + + /** + * When using a map, collection or set of type int, all of its elements + * must be ints. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_INT + */ + public const TYPE_INT = 'int'; + + /** + * When using a map, collection or set of type timestamp, all of its elements + * must be instances of Timestamp. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TIMESTAMP + */ + public const TYPE_TIMESTAMP = 'timestamp'; + + /** + * When using a map, collection or set of type uuid, all of its elements + * must be instances of Uuid. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_UUID + */ + public const TYPE_UUID = 'uuid'; + + /** + * When using a map, collection or set of type varint, all of its elements + * must be instances of Varint. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_VARINT + */ + public const TYPE_VARINT = 'varint'; + + /** + * When using a map, collection or set of type timeuuid, all of its elements + * must be instances of Timeuuid. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_TIMEUUID + */ + public const TYPE_TIMEUUID = 'timeuuid'; + + /** + * When using a map, collection or set of type inet, all of its elements + * must be instances of Inet. + * + * @see Set::__construct() + * @see Collection::__construct() + * @see Map::__construct() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-TYPE_INET + */ + public const TYPE_INET = 'inet'; + + /** + * The current version of the extension. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-VERSION + */ + public const VERSION = '1.3.2'; + + /** + * The version of the cpp-driver the extension is compiled against. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#constant-CPP_DRIVER_VERSION + */ + public const CPP_DRIVER_VERSION = '2.13.0'; + + /** + * Creates a new cluster builder for constructing a Cluster object. + * + * @return \Cassandra\Cluster\Builder A cluster builder object with default settings + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#method-cluster + */ + public static function cluster() {} + + /** + * Creates a new ssl builder for constructing a SSLOptions object. + * + * @return \Cassandra\SSLOptions\Builder A SSL options builder with default settings + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/class.Cassandra/#method-ssl + */ + public static function ssl() {} + } +} + +/** + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/ + */ + +namespace Cassandra { + use JetBrains\PhpStorm\Deprecated; + + /** + * A PHP representation of a column + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/ + */ + interface Column + { + /** + * Returns the name of the column. + * + * @return string Name of the column or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-name + */ + public function name(); + + /** + * Returns the type of the column. + * + * @return \Cassandra\Type Type of the column + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-type + */ + public function type(); + + /** + * Returns whether the column is in descending or ascending order. + * + * @return bool Whether the column is stored in descending order. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isReversed + */ + public function isReversed(); + + /** + * Returns true for static columns. + * + * @return bool Whether the column is static + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isStatic + */ + public function isStatic(); + + /** + * Returns true for frozen columns. + * + * @return bool Whether the column is frozen + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-isFrozen + */ + public function isFrozen(); + + /** + * Returns name of the index if defined. + * + * @return string Name of the index if defined or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-indexName + */ + public function indexName(); + + /** + * Returns index options if present. + * + * @return string Index options if present or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Column/#method-indexOptions + */ + public function indexOptions(); + } + + /** + * A session is used to prepare and execute statements. + * + * @see \Cassandra\Cluster::connect() + * @see \Cassandra\Cluster::connectAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/ + */ + interface Session + { + /** + * Execute a query. + * + * Available execution options: + * | Option Name | Option **Type** | Option Details | + * |--------------------|-----------------|----------------------------------------------------------------------------------------------------------| + * | arguments | array | An array or positional or named arguments | + * | consistency | int | A consistency constant e.g Dse::CONSISTENCY_ONE, Dse::CONSISTENCY_QUORUM, etc. | + * | timeout | int | A number of rows to include in result for paging | + * | paging_state_token | string | A string token use to resume from the state of a previous result set | + * | retry_policy | RetryPolicy | A retry policy that is used to handle server-side failures for this request | + * | serial_consistency | int | Either Dse::CONSISTENCY_SERIAL or Dse::CONSISTENCY_LOCAL_SERIAL | + * | timestamp | int\|string | Either an integer or integer string timestamp that represents the number of microseconds since the epoch | + * | execute_as | string | User to execute statement as | + * + * @param string|\Cassandra\Statement $statement string or statement to be executed. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query. + * + * @return \Cassandra\Rows A collection of rows. + * @throws \Cassandra\Exception + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-execute + */ + public function execute($statement, $options); + + /** + * Execute a query asynchronously. This method returns immediately, but + * the query continues execution in the background. + * + * @param string|\Cassandra\Statement $statement string or statement to be executed. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query. + * + * @return \Cassandra\FutureRows A future that can be used to retrieve the result. + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-executeAsync + */ + public function executeAsync($statement, $options); + + /** + * Prepare a query for execution. + * + * @param string $cql The query to be prepared. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query. + * + * @return \Cassandra\PreparedStatement A prepared statement that can be bound with parameters and executed. + * + * @throws \Cassandra\Exception + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-prepare + */ + public function prepare($cql, $options); + + /** + * Asynchronously prepare a query for execution. + * + * @param string $cql The query to be prepared. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query. + * + * @return \Cassandra\FuturePreparedStatement A future that can be used to retrieve the prepared statement. + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-prepareAsync + */ + public function prepareAsync($cql, $options); + + /** + * Close the session and all its connections. + * + * @param float $timeout The amount of time in seconds to wait for the session to close. + * + * @return null Nothing. + * @throws \Cassandra\Exception + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-close + */ + public function close($timeout); + + /** + * Asynchronously close the session and all its connections. + * + * @return \Cassandra\FutureClose A future that can be waited on. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-closeAsync + */ + public function closeAsync(); + + /** + * Get performance and diagnostic metrics. + * + * @return array Performance/Diagnostic metrics. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-metrics + */ + public function metrics(); + + /** + * Get a snapshot of the cluster's current schema. + * + * @return \Cassandra\Schema A snapshot of the cluster's schema. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Session/#method-schema + */ + public function schema(); + } + + /** + * A PHP representation of a table + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/ + */ + interface Table + { + /** + * Returns the name of this table + * + * @return string Name of the table + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-name + */ + public function name(); + + /** + * Return a table's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-option + */ + public function option($name); + + /** + * Returns all the table's options + * + * @return array A dictionary of `string` and `Value` pairs of the table's options. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-options + */ + public function options(); + + /** + * Description of the table, if any + * + * @return string Table description or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-comment + */ + public function comment(); + + /** + * Returns read repair chance + * + * @return float Read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-readRepairChance + */ + public function readRepairChance(); + + /** + * Returns local read repair chance + * + * @return float Local read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-localReadRepairChance + */ + public function localReadRepairChance(); + + /** + * Returns GC grace seconds + * + * @return int GC grace seconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-gcGraceSeconds + */ + public function gcGraceSeconds(); + + /** + * Returns caching options + * + * @return string Caching options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-caching + */ + public function caching(); + + /** + * Returns bloom filter FP chance + * + * @return float Bloom filter FP chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-bloomFilterFPChance + */ + public function bloomFilterFPChance(); + + /** + * Returns memtable flush period in milliseconds + * + * @return int Memtable flush period in milliseconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-memtableFlushPeriodMs + */ + public function memtableFlushPeriodMs(); + + /** + * Returns default TTL. + * + * @return int Default TTL. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-defaultTTL + */ + public function defaultTTL(); + + /** + * Returns speculative retry. + * + * @return string Speculative retry. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-speculativeRetry + */ + public function speculativeRetry(); + + /** + * Returns index interval + * + * @return int Index interval + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-indexInterval + */ + public function indexInterval(); + + /** + * Returns compaction strategy class name + * + * @return string Compaction strategy class name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compactionStrategyClassName + */ + public function compactionStrategyClassName(); + + /** + * Returns compaction strategy options + * + * @return \Cassandra\Map Compaction strategy options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compactionStrategyOptions + */ + public function compactionStrategyOptions(); + + /** + * Returns compression parameters + * + * @return \Cassandra\Map Compression parameters + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-compressionParameters + */ + public function compressionParameters(); + + /** + * Returns whether or not the `populate_io_cache_on_flush` is true + * + * @return bool Value of `populate_io_cache_on_flush` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-populateIOCacheOnFlush + */ + public function populateIOCacheOnFlush(); + + /** + * Returns whether or not the `replicate_on_write` is true + * + * @return bool Value of `replicate_on_write` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-replicateOnWrite + */ + public function replicateOnWrite(); + + /** + * Returns the value of `max_index_interval` + * + * @return int Value of `max_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-maxIndexInterval + */ + public function maxIndexInterval(); + + /** + * Returns the value of `min_index_interval` + * + * @return int Value of `min_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-minIndexInterval + */ + public function minIndexInterval(); + + /** + * Returns column by name + * + * @param string $name Name of the column + * + * @return \Cassandra\Column Column instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-column + */ + public function column($name); + + /** + * Returns all columns in this table + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-columns + */ + public function columns(); + + /** + * Returns the partition key columns of the table + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-partitionKey + */ + public function partitionKey(); + + /** + * Returns both the partition and clustering key columns of the table + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-primaryKey + */ + public function primaryKey(); + + /** + * Returns the clustering key columns of the table + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-clusteringKey + */ + public function clusteringKey(); + + /** + * @return array A list of cluster column orders ('asc' and 'desc') + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Table/#method-clusteringOrder + */ + public function clusteringOrder(); + } + + /** + * Interface for retry policies. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.RetryPolicy/ + */ + interface RetryPolicy {} + + /** + * Interface for timestamp generators. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.TimestampGenerator/ + */ + interface TimestampGenerator {} + + /** + * An interface implemented by all exceptions thrown by the PHP Driver. + * Makes it easy to catch all driver-related exceptions using + * `catch (Exception $e)`. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Exception/ + */ + interface Exception {} + + /** + * A PHP representation of a function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/ + */ + interface Function_ + { + /** + * Returns the full name of the function + * + * @return string Full name of the function including name and types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-name + */ + public function name(); + + /** + * Returns the simple name of the function + * + * @return string Simple name of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-simpleName + */ + public function simpleName(); + + /** + * Returns the arguments of the function + * + * @return array Arguments of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-arguments + */ + public function arguments(); + + /** + * Returns the return type of the function + * + * @return \Cassandra\Type Return type of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-returnType + */ + public function returnType(); + + /** + * Returns the signature of the function + * + * @return string Signature of the function (same as name()) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-signature + */ + public function signature(); + + /** + * Returns the lanuage of the function + * + * @return string Language used by the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-language + */ + public function language(); + + /** + * Returns the body of the function + * + * @return string Body of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-body + */ + public function body(); + + /** + * Determines if a function is called when the value is null. + * + * @return bool Returns whether the function is called when the input columns are null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Function/#method-isCalledOnNullInput + */ + public function isCalledOnNullInput(); + } + + /** + * A PHP representation of the CQL `uuid` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/ + */ + interface UuidInterface + { + /** + * Returns this uuid as string. + * + * @return string uuid as string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/#method-uuid + */ + public function uuid(); + + /** + * Returns the version of this uuid. + * + * @return int version of this uuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.UuidInterface/#method-version + */ + public function version(); + } + + /** + * A PHP representation of an index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/ + */ + interface Index + { + /** + * Returns the name of the index + * + * @return string Name of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-name + */ + public function name(); + + /** + * Returns the kind of index + * + * @return string Kind of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-kind + */ + public function kind(); + + /** + * Returns the target column of the index + * + * @return string Target column name of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-target + */ + public function target(); + + /** + * Return a column's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-option + */ + public function option($name); + + /** + * Returns all the index's options + * + * @return array A dictionary of `string` and `Value` pairs of the index's options. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-options + */ + public function options(); + + /** + * Returns the class name of the index + * + * @return string Class name of a custom index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-className + */ + public function className(); + + /** + * Determines if the index is a custom index. + * + * @return bool true if a custom index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Index/#method-isCustom + */ + public function isCustom(); + } + + /** + * Cluster object is used to create Sessions. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/ + */ + interface Cluster + { + /** + * Creates a new Session instance. + * + * @param string $keyspace Optional keyspace name + * + * @return \Cassandra\Session Session instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/#method-connect + */ + public function connect($keyspace); + + /** + * Creates a new Session instance. + * + * @param string $keyspace Optional keyspace name + * + * @return \Cassandra\Future A Future Session instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Cluster/#method-connectAsync + */ + public function connectAsync($keyspace); + } + + /** + * Common interface implemented by all numeric types, providing basic + * arithmetic functions. + * + * @see \Cassandra\Bigint + * @see \Cassandra\Decimal + * @see \Cassandra\Float_ + * @see \Cassandra\Varint + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/ + */ + interface Numeric + { + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-add + */ + public function add($num); + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-sub + */ + public function sub($num); + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-mul + */ + public function mul($num); + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-div + */ + public function div($num); + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-mod + */ + public function mod($num); + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-abs + */ + public function abs(); + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-neg + */ + public function neg(); + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-sqrt + */ + public function sqrt(); + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-toInt + */ + public function toInt(); + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Numeric/#method-toDouble + */ + public function toDouble(); + } + + /** + * Futures are returns from asynchronous methods. + * + * @see \Cassandra\Cluster::connectAsync() + * @see \Cassandra\Session::executeAsync() + * @see \Cassandra\Session::prepareAsync() + * @see \Cassandra\Session::closeAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Future/ + */ + interface Future + { + /** + * Waits for a given future resource to resolve and throws errors if any. + * + * @param int|float|null $timeout A timeout in seconds + * + * @return mixed a value that the future has been resolved with + * @throws \Cassandra\Exception\TimeoutException + * + * @throws \Cassandra\Exception\InvalidArgumentException + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Future/#method-get + */ + public function get($timeout); + } + + /** + * A PHP representation of a keyspace + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/ + */ + interface Keyspace + { + /** + * Returns keyspace name + * + * @return string Name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-name + */ + public function name(); + + /** + * Returns replication class name + * + * @return string Replication class + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-replicationClassName + */ + public function replicationClassName(); + + /** + * Returns replication options + * + * @return \Cassandra\Map Replication options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-replicationOptions + */ + public function replicationOptions(); + + /** + * Returns whether the keyspace has durable writes enabled + * + * @return string Whether durable writes are enabled + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-hasDurableWrites + */ + public function hasDurableWrites(); + + /** + * Returns a table by name + * + * @param string $name Table name + * + * @return \Cassandra\Table|null Table instance or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-table + */ + public function table($name); + + /** + * Returns all tables defined in this keyspace + * + * @return array An array of `Table` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-tables + */ + public function tables(); + + /** + * Get user type by name + * + * @param string $name User type name + * + * @return \Cassandra\Type\UserType|null A user type or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-userType + */ + public function userType($name); + + /** + * Get all user types + * + * @return array An array of user types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-userTypes + */ + public function userTypes(); + + /** + * Get materialized view by name + * + * @param string $name Materialized view name + * + * @return \Cassandra\MaterializedView|null A materialized view or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-materializedView + */ + public function materializedView($name); + + /** + * Gets all materialized views + * + * @return array An array of materialized views + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-materializedViews + */ + public function materializedViews(); + + /** + * Get a function by name and signature + * + * @param string $name Function name + * @param string|\Cassandra\Type $params Function arguments + * + * @return \Cassandra\Function_|null A function or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-function + */ + public function function_($name, ...$params); + + /** + * Get all functions + * + * @return array An array of functions + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-functions + */ + public function functions(); + + /** + * Get an aggregate by name and signature + * + * @param string $name Aggregate name + * @param string|\Cassandra\Type $params Aggregate arguments + * + * @return \Cassandra\Aggregate|null An aggregate or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-aggregate + */ + public function aggregate($name, ...$params); + + /** + * Get all aggregates + * + * @return array An array of aggregates + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Keyspace/#method-aggregates + */ + public function aggregates(); + } + + /** + * Common interface implemented by all Cassandra value types. + * + * @see \Cassandra\Bigint + * @see \Cassandra\Smallint + * @see \Cassandra\Tinyint + * @see \Cassandra\Blob + * @see \Cassandra\Collection + * @see \Cassandra\Float_ + * @see \Cassandra\Inet + * @see \Cassandra\Map + * @see \Cassandra\Set + * @see \Cassandra\Timestamp + * @see \Cassandra\Timeuuid + * @see \Cassandra\Uuid + * @see \Cassandra\Varint + * @see \Cassandra\Date + * @see \Cassandra\Time + * + * @see \Cassandra\Numeric + * @see \Cassandra\UuidInterface + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Value/ + */ + interface Value + { + /** + * The type of represented by the value. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Value/#method-type + */ + public function type(); + } + + /** + * A PHP representation of an aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/ + */ + interface Aggregate + { + /** + * Returns the full name of the aggregate + * + * @return string Full name of the aggregate including name and types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-name + */ + public function name(); + + /** + * Returns the simple name of the aggregate + * + * @return string Simple name of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-simpleName + */ + public function simpleName(); + + /** + * Returns the argument types of the aggregate + * + * @return array Argument types of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-argumentTypes + */ + public function argumentTypes(); + + /** + * Returns the final function of the aggregate + * + * @return \Cassandra\Function_ Final function of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-finalFunction + */ + public function finalFunction(); + + /** + * Returns the state function of the aggregate + * + * @return \Cassandra\Function_ State function of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-stateFunction + */ + public function stateFunction(); + + /** + * Returns the initial condition of the aggregate + * + * @return \Cassandra\Value Initial condition of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-initialCondition + */ + public function initialCondition(); + + /** + * Returns the return type of the aggregate + * + * @return \Cassandra\Type Return type of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-returnType + */ + public function returnType(); + + /** + * Returns the state type of the aggregate + * + * @return \Cassandra\Type State type of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-stateType + */ + public function stateType(); + + /** + * Returns the signature of the aggregate + * + * @return string Signature of the aggregate (same as name()) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Aggregate/#method-signature + */ + public function signature(); + } + + /** + * All statements implement this common interface. + * + * @see \Cassandra\SimpleStatement + * @see \Cassandra\PreparedStatement + * @see \Cassandra\BatchStatement + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Statement/ + */ + interface Statement {} + + /** + * A PHP representation of a schema + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/ + */ + interface Schema + { + /** + * Returns a Keyspace instance by name. + * + * @param string $name Name of the keyspace to get + * + * @return \Cassandra\Keyspace Keyspace instance or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/#method-keyspace + */ + public function keyspace($name); + + /** + * Returns all keyspaces defined in the schema. + * + * @return array An array of Keyspace instances. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/interface.Schema/#method-keyspaces + */ + public function keyspaces(); + } + + /** + * Rows represent a result of statement execution. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/ + */ + final class Rows implements \Iterator, \ArrayAccess + { + /** + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-__construct + */ + public function __construct() {} + + /** + * Returns the number of rows. + * + * @return int number of rows + * + * @see \Countable::count() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-count + */ + public function count() {} + + /** + * Resets the rows iterator. + * + * @return void + * + * @see \Iterator::rewind() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-rewind + */ + public function rewind() {} + + /** + * Returns current row. + * + * @return array current row + * + * @see \Iterator::current() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-current + */ + public function current() {} + + /** + * Returns current index. + * + * @return int index + * + * @see \Iterator::key() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-key + */ + public function key() {} + + /** + * Advances the rows iterator by one. + * + * @return void + * + * @see \Iterator::next() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-next + */ + public function next() {} + + /** + * Returns existence of more rows being available. + * + * @return bool whether there are more rows available for iteration + * + * @see \Iterator::valid() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-valid + */ + public function valid() {} + + /** + * Returns existence of a given row. + * + * @param int $offset row index + * + * @return bool whether a row at a given index exists + * + * @see \ArrayAccess::offsetExists() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetExists + */ + public function offsetExists($offset) {} + + /** + * Returns a row at given index. + * + * @param int $offset row index + * + * @return array|null row at a given index + * + * @see \ArrayAccess::offsetGet() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetGet + */ + public function offsetGet($offset) {} + + /** + * Sets a row at given index. + * + * @param int $offset row index + * @param array $value row value + * + * @return void + * + * @throws \Cassandra\Exception\DomainException + * + * @see \ArrayAccess::offsetSet() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetSet + */ + public function offsetSet($offset, $value) {} + + /** + * Removes a row at given index. + * + * @param int $offset row index + * + * @return void + * + * @throws \Cassandra\Exception\DomainException + * + * @see \ArrayAccess::offsetUnset() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-offsetUnset + */ + public function offsetUnset($offset) {} + + /** + * Check for the last page when paging. + * + * @return bool whether this is the last page or not + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-isLastPage + */ + public function isLastPage() {} + + /** + * Get the next page of results. + * + * @param float|null $timeout + * + * @return \Cassandra\Rows|null loads and returns next result page + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-nextPage + */ + public function nextPage($timeout) {} + + /** + * Get the next page of results asynchronously. + * + * @return \Cassandra\Future returns future of the next result page + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-nextPageAsync + */ + public function nextPageAsync() {} + + /** + * Returns the raw paging state token. + * + * @return string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-pagingStateToken + */ + public function pagingStateToken() {} + + /** + * Get the first row. + * + * @return array|null returns first row if any + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Rows/#method-first + */ + public function first() {} + } + + /** + * Default cluster implementation. + * + * @see \Cassandra\Cluster + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/ + */ + final class DefaultCluster implements Cluster + { + /** + * Creates a new Session instance. + * + * @param string $keyspace Optional keyspace name + * @param int $timeout Optional timeout + * + * @return \Cassandra\Session Session instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/#method-connect + */ + public function connect($keyspace, $timeout) {} + + /** + * Creates a new Session instance. + * + * @param string $keyspace Optional keyspace name + * + * @return \Cassandra\Future A Future Session instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultCluster/#method-connectAsync + */ + public function connectAsync($keyspace) {} + } + + /** + * A PHP representation of a public function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/ + */ + final class DefaultFunction implements Function_ + { + /** + * Returns the full name of the function + * + * @return string Full name of the function including name and types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-name + */ + public function name() {} + + /** + * Returns the simple name of the function + * + * @return string Simple name of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-simpleName + */ + public function simpleName() {} + + /** + * Returns the arguments of the function + * + * @return array Arguments of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-arguments + */ + public function arguments() {} + + /** + * Returns the return type of the function + * + * @return \Cassandra\Type Return type of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-returnType + */ + public function returnType() {} + + /** + * Returns the signature of the function + * + * @return string Signature of the function (same as name()) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-signature + */ + public function signature() {} + + /** + * Returns the lanuage of the function + * + * @return string Language used by the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-language + */ + public function language() {} + + /** + * Returns the body of the function + * + * @return string Body of the function + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-body + */ + public function body() {} + + /** + * Determines if a function is called when the value is null. + * + * @return bool Returns whether the function is called when the input columns are null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultFunction/#method-isCalledOnNullInput + */ + public function isCalledOnNullInput() {} + } + + /** + * Simple statements can be executed using a Session instance. + * They are constructed with a CQL string that can contain positional + * argument markers `?`. + * + * NOTE: Positional argument are only valid for native protocol v2+. + * + * @see \Cassandra\Session::execute() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SimpleStatement/ + */ + final class SimpleStatement implements Statement + { + /** + * Creates a new simple statement with the provided CQL. + * + * @param string $cql CQL string for this simple statement + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SimpleStatement/#method-__construct + */ + public function __construct($cql) {} + } + + /** + * A PHP representation of the CQL `tuple` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/ + */ + final class Tuple implements Value, \Countable, \Iterator + { + /** + * Creates a new tuple with the given types. + * + * @param array $types Array of types + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-__construct + */ + public function __construct($types) {} + + /** + * The type of this tuple. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-type + */ + public function type() {} + + /** + * Array of values in this tuple. + * + * @return array values + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-values + */ + public function values() {} + + /** + * Sets the value at index in this tuple . + * + * @param mixed $value A value or null + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-set + */ + public function set($value) {} + + /** + * Retrieves the value at a given index. + * + * @param int $index Index + * + * @return mixed A value or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-get + */ + public function get($index) {} + + /** + * Total number of elements in this tuple + * + * @return int count + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-count + */ + public function count() {} + + /** + * Current element for iteration + * + * @return mixed current element + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-current + */ + public function current() {} + + /** + * Current key for iteration + * + * @return int current key + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-key + */ + public function key() {} + + /** + * Move internal iterator forward + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-next + */ + public function next() {} + + /** + * Check whether a current value exists + * + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-valid + */ + public function valid() {} + + /** + * Rewind internal iterator + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tuple/#method-rewind + */ + public function rewind() {} + } + + /** + * A PHP representation of the CQL `smallint` datatype. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/ + */ + final class Smallint implements Value, Numeric + { + /** + * Creates a new 16-bit signed integer. + * + * @param int|float|string $value The value as an integer, double or string + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-__construct + */ + public function __construct($value) {} + + /** + * Minimum possible Smallint value + * + * @return \Cassandra\Smallint minimum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-min + */ + public static function min() {} + + /** + * Maximum possible Smallint value + * + * @return \Cassandra\Smallint maximum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-max + */ + public static function max() {} + + /** + * @return string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-__toString + */ + public function __toString() {} + + /** + * The type of this value (smallint). + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-type + */ + public function type() {} + + /** + * Returns the integer value. + * + * @return int integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-value + */ + public function value() {} + + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-add + */ + public function add($num) {} + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-sub + */ + public function sub($num) {} + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-mul + */ + public function mul($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-div + */ + public function div($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-mod + */ + public function mod($num) {} + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-abs + */ + public function abs() {} + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-neg + */ + public function neg() {} + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-sqrt + */ + public function sqrt() {} + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-toInt + */ + public function toInt() {} + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Smallint/#method-toDouble + */ + public function toDouble() {} + } + + /** + * A future returned from `Session::prepareAsync()` + * This future will resolve with a PreparedStatement or an exception. + * + * @see \Cassandra\Session::prepareAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FuturePreparedStatement/ + */ + final class FuturePreparedStatement implements Future + { + /** + * Waits for a given future resource to resolve and throws errors if any. + * + * @param int|float|null $timeout A timeout in seconds + * + * @return \Cassandra\PreparedStatement A prepared statement + * @throws \Cassandra\Exception\TimeoutException + * + * @throws \Cassandra\Exception\InvalidArgumentException + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FuturePreparedStatement/#method-get + */ + public function get($timeout) {} + } + + /** + * A PHP representation of a schema + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/ + */ + final class DefaultSchema implements Schema + { + /** + * Returns a Keyspace instance by name. + * + * @param string $name Name of the keyspace to get + * + * @return \Cassandra\Keyspace Keyspace instance or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-keyspace + */ + public function keyspace($name) {} + + /** + * Returns all keyspaces defined in the schema. + * + * @return array An array of `Keyspace` instances. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-keyspaces + */ + public function keyspaces() {} + + /** + * Get the version of the schema snapshot + * + * @return int Version of the schema. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSchema/#method-version + */ + public function version() {} + } + + /** + * Batch statements are used to execute a series of simple or prepared + * statements. + * + * There are 3 types of batch statements: + * * `Cassandra::BATCH_LOGGED` - this is the default batch type. This batch + * guarantees that either all or none of its statements will be executed. + * This behavior is achieved by writing a batch log on the coordinator, + * which slows down the execution somewhat. + * * `Cassandra::BATCH_UNLOGGED` - this batch will not be verified when + * executed, which makes it faster than a `LOGGED` batch, but means that + * some of its statements might fail, while others - succeed. + * * `Cassandra::BATCH_COUNTER` - this batch is used for counter updates, + * which are, unlike other writes, not idempotent. + * + * @see Cassandra::BATCH_LOGGED + * @see Cassandra::BATCH_UNLOGGED + * @see Cassandra::BATCH_COUNTER + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/ + */ + final class BatchStatement implements Statement + { + /** + * Creates a new batch statement. + * + * @param int $type must be one of Cassandra::BATCH_* (default: Cassandra::BATCH_LOGGED). + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/#method-__construct + */ + public function __construct($type) {} + + /** + * Adds a statement to this batch. + * + * @param string|\Cassandra\Statement $statement string or statement to add + * @param array|null $arguments positional or named arguments (optional) + * + * @return \Cassandra\BatchStatement self + * @throws \Cassandra\Exception\InvalidArgumentException + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.BatchStatement/#method-add + */ + public function add($statement, $arguments) {} + } + + /** + * A PHP representation of the CQL `list` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/ + */ + final class Collection implements Value, \Countable, \Iterator + { + /** + * Creates a new collection of a given type. + * + * @param \Cassandra\Type $type + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-__construct + */ + public function __construct($type) {} + + /** + * The type of this collection. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-type + */ + public function type() {} + + /** + * Array of values in this collection. + * + * @return array values + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-values + */ + public function values() {} + + /** + * Adds one or more values to this collection. + * + * @param mixed ...$value one or more values to add + * + * @return int total number of values in this collection + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-add + */ + public function add(...$value) {} + + /** + * Retrieves the value at a given index. + * + * @param int $index Index + * + * @return mixed Value or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-get + */ + public function get($index) {} + + /** + * Finds index of a value in this collection. + * + * @param mixed $value Value + * + * @return int Index or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-find + */ + public function find($value) {} + + /** + * Total number of elements in this collection + * + * @return int count + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-count + */ + public function count() {} + + /** + * Current element for iteration + * + * @return mixed current element + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-current + */ + public function current() {} + + /** + * Current key for iteration + * + * @return int current key + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-key + */ + public function key() {} + + /** + * Move internal iterator forward + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-next + */ + public function next() {} + + /** + * Check whether a current value exists + * + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-valid + */ + public function valid() {} + + /** + * Rewind internal iterator + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-rewind + */ + public function rewind() {} + + /** + * Deletes the value at a given index + * + * @param int $index Index + * + * @return bool Whether the value at a given index is correctly removed + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Collection/#method-remove + */ + public function remove($index) {} + } + + /** + * This future results is resolved with Rows. + * + * @see \Cassandra\Session::executeAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureRows/ + */ + final class FutureRows implements Future + { + /** + * Waits for a given future resource to resolve and throws errors if any. + * + * @param int|float|null $timeout A timeout in seconds + * + * @return \Cassandra\Rows|null The result set + * @throws \Cassandra\Exception\TimeoutException + * + * @throws \Cassandra\Exception\InvalidArgumentException + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureRows/#method-get + */ + public function get($timeout) {} + } + + /** + * A PHP representation of a materialized view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/ + */ + final class DefaultMaterializedView extends MaterializedView + { + /** + * Returns the name of this view + * + * @return string Name of the view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-name + */ + public function name() {} + + /** + * Return a view's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-option + */ + public function option($name) {} + + /** + * Returns all the view's options + * + * @return array A dictionary of string and Value pairs of the + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-options + */ + public function options() {} + + /** + * Description of the view, if any + * + * @return string Table description or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-comment + */ + public function comment() {} + + /** + * Returns read repair chance + * + * @return float Read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-readRepairChance + */ + public function readRepairChance() {} + + /** + * Returns local read repair chance + * + * @return float Local read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-localReadRepairChance + */ + public function localReadRepairChance() {} + + /** + * Returns GC grace seconds + * + * @return int GC grace seconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-gcGraceSeconds + */ + public function gcGraceSeconds() {} + + /** + * Returns caching options + * + * @return string Caching options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-caching + */ + public function caching() {} + + /** + * Returns bloom filter FP chance + * + * @return float Bloom filter FP chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-bloomFilterFPChance + */ + public function bloomFilterFPChance() {} + + /** + * Returns memtable flush period in milliseconds + * + * @return int Memtable flush period in milliseconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-memtableFlushPeriodMs + */ + public function memtableFlushPeriodMs() {} + + /** + * Returns default TTL. + * + * @return int Default TTL. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-defaultTTL + */ + public function defaultTTL() {} + + /** + * Returns speculative retry. + * + * @return string Speculative retry. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-speculativeRetry + */ + public function speculativeRetry() {} + + /** + * Returns index interval + * + * @return int Index interval + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-indexInterval + */ + public function indexInterval() {} + + /** + * Returns compaction strategy class name + * + * @return string Compaction strategy class name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compactionStrategyClassName + */ + public function compactionStrategyClassName() {} + + /** + * Returns compaction strategy options + * + * @return \Cassandra\Map Compaction strategy options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compactionStrategyOptions + */ + public function compactionStrategyOptions() {} + + /** + * Returns compression parameters + * + * @return \Cassandra\Map Compression parameters + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-compressionParameters + */ + public function compressionParameters() {} + + /** + * Returns whether or not the `populate_io_cache_on_flush` is true + * + * @return bool Value of `populate_io_cache_on_flush` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-populateIOCacheOnFlush + */ + public function populateIOCacheOnFlush() {} + + /** + * Returns whether or not the `replicate_on_write` is true + * + * @return bool Value of `replicate_on_write` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-replicateOnWrite + */ + public function replicateOnWrite() {} + + /** + * Returns the value of `max_index_interval` + * + * @return int Value of `max_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-maxIndexInterval + */ + public function maxIndexInterval() {} + + /** + * Returns the value of `min_index_interval` + * + * @return int Value of `min_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-minIndexInterval + */ + public function minIndexInterval() {} + + /** + * Returns column by name + * + * @param string $name Name of the column + * + * @return \Cassandra\Column Column instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-column + */ + public function column($name) {} + + /** + * Returns all columns in this view + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-columns + */ + public function columns() {} + + /** + * Returns the partition key columns of the view + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-partitionKey + */ + public function partitionKey() {} + + /** + * Returns both the partition and clustering key columns of the view + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-primaryKey + */ + public function primaryKey() {} + + /** + * Returns the clustering key columns of the view + * + * @return array A list of Column instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-clusteringKey + */ + public function clusteringKey() {} + + /** + * @return array A list of cluster column orders ('asc' and 'desc') + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-clusteringOrder + */ + public function clusteringOrder() {} + + /** + * Returns the base table of the view + * + * @return \Cassandra\Table Base table of the view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultMaterializedView/#method-baseTable + */ + public function baseTable() {} + } + + /** + * SSL options for Cluster. + * + * @see \Cassandra\SSLOptions\Builder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.SSLOptions/ + */ + final class SSLOptions {} + + /** + * A PHP representation of the CQL `bigint` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/ + */ + final class Bigint implements Value, Numeric + { + /** + * Creates a new 64bit integer. + * + * @param string $value integer value as a string + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-__construct + */ + public function __construct($value) {} + + /** + * Minimum possible Bigint value + * + * @return \Cassandra\Bigint minimum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-min + */ + public static function min() {} + + /** + * Maximum possible Bigint value + * + * @return \Cassandra\Bigint maximum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-max + */ + public static function max() {} + + /** + * Returns string representation of the integer value. + * + * @return string integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-__toString + */ + public function __toString() {} + + /** + * The type of this bigint. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-type + */ + public function type() {} + + /** + * Returns the integer value. + * + * @return string integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-value + */ + public function value() {} + + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-add + */ + public function add($num) {} + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-sub + */ + public function sub($num) {} + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-mul + */ + public function mul($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-div + */ + public function div($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-mod + */ + public function mod($num) {} + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-abs + */ + public function abs() {} + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-neg + */ + public function neg() {} + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-sqrt + */ + public function sqrt() {} + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-toInt + */ + public function toInt() {} + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Bigint/#method-toDouble + */ + public function toDouble() {} + } + + /** + * A future that resolves with Session. + * + * @see \Cassandra\Cluster::connectAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureSession/ + */ + final class FutureSession implements Future + { + /** + * Waits for a given future resource to resolve and throws errors if any. + * + * @param int|float|null $timeout A timeout in seconds + * + * @return \Cassandra\Session A connected session + * @throws \Cassandra\Exception\TimeoutException + * + * @throws \Cassandra\Exception\InvalidArgumentException + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureSession/#method-get + */ + public function get($timeout) {} + } + + /** + * A PHP representation of the CQL `set` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/ + */ + final class Set implements Value, \Countable, \Iterator + { + /** + * Creates a new collection of a given type. + * + * @param \Cassandra\Type $type + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-__construct + */ + public function __construct($type) {} + + /** + * The type of this set. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-type + */ + public function type() {} + + /** + * Array of values in this set. + * + * @return array values + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-values + */ + public function values() {} + + /** + * Adds a value to this set. + * + * @param mixed $value Value + * + * @return bool whether the value has been added + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-add + */ + public function add($value) {} + + /** + * Returns whether a value is in this set. + * + * @param mixed $value Value + * + * @return bool whether the value is in the set + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-has + */ + public function has($value) {} + + /** + * Removes a value to this set. + * + * @param mixed $value Value + * + * @return bool whether the value has been removed + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-remove + */ + public function remove($value) {} + + /** + * Total number of elements in this set + * + * @return int count + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-count + */ + public function count() {} + + /** + * Current element for iteration + * + * @return mixed current element + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-current + */ + public function current() {} + + /** + * Current key for iteration + * + * @return int current key + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-key + */ + public function key() {} + + /** + * Move internal iterator forward + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-next + */ + public function next() {} + + /** + * Check whether a current value exists + * + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-valid + */ + public function valid() {} + + /** + * Rewind internal iterator + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Set/#method-rewind + */ + public function rewind() {} + } + + /** + * A PHP representation of an index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/ + */ + final class DefaultIndex implements Index + { + /** + * Returns the name of the index + * + * @return string Name of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-name + */ + public function name() {} + + /** + * Returns the kind of index + * + * @return string Kind of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-kind + */ + public function kind() {} + + /** + * Returns the target column of the index + * + * @return string Target column name of the index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-target + */ + public function target() {} + + /** + * Return a column's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-option + */ + public function option($name) {} + + /** + * Returns all the index's options + * + * @return array A dictionary of `string` and `Value` pairs of the index's options. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-options + */ + public function options() {} + + /** + * Returns the class name of the index + * + * @return string Class name of a custom index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-className + */ + public function className() {} + + /** + * Determines if the index is a custom index. + * + * @return bool true if a custom index + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultIndex/#method-isCustom + */ + public function isCustom() {} + } + + /** + * A PHP representation of an aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/ + */ + final class DefaultAggregate implements Aggregate + { + /** + * Returns the full name of the aggregate + * + * @return string Full name of the aggregate including name and types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-name + */ + public function name() {} + + /** + * Returns the simple name of the aggregate + * + * @return string Simple name of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-simpleName + */ + public function simpleName() {} + + /** + * Returns the argument types of the aggregate + * + * @return array Argument types of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-argumentTypes + */ + public function argumentTypes() {} + + /** + * Returns the state function of the aggregate + * + * @return \Cassandra\Function_ State public function of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-stateFunction + */ + public function stateFunction() {} + + /** + * Returns the final function of the aggregate + * + * @return \Cassandra\Function_ Final public function of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-finalFunction + */ + public function finalFunction() {} + + /** + * Returns the initial condition of the aggregate + * + * @return \Cassandra\Value Initial condition of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-initialCondition + */ + public function initialCondition() {} + + /** + * Returns the state type of the aggregate + * + * @return \Cassandra\Type State type of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-stateType + */ + public function stateType() {} + + /** + * Returns the return type of the aggregate + * + * @return \Cassandra\Type Return type of the aggregate + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-returnType + */ + public function returnType() {} + + /** + * Returns the signature of the aggregate + * + * @return string Signature of the aggregate (same as name()) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultAggregate/#method-signature + */ + public function signature() {} + } + + /** + * A PHP representation of the CQL `timestamp` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/ + */ + final class Timestamp implements Value + { + /** + * Creates a new timestamp from either unix timestamp and microseconds or + * from the current time by default. + * + * @param int $seconds The number of seconds + * @param int $microseconds The number of microseconds + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-__construct + */ + public function __construct($seconds, $microseconds) {} + + /** + * The type of this timestamp. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-type + */ + public function type() {} + + /** + * Unix timestamp. + * + * @return int seconds + * + * @see time + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-time + */ + public function time() {} + + /** + * Microtime from this timestamp + * + * @param bool $get_as_float Whether to get this value as float + * + * @return float|string Float or string representation + * + * @see microtime + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-microtime + */ + public function microtime($get_as_float) {} + + /** + * Converts current timestamp to PHP DateTime. + * + * @return \DateTime PHP representation + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-toDateTime + */ + public function toDateTime() {} + + /** + * Returns a string representation of this timestamp. + * + * @return string timestamp + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timestamp/#method-__toString + */ + public function __toString() {} + } + + /** + * A PHP representation of the CQL `tinyint` datatype. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/ + */ + final class Tinyint implements Value, Numeric + { + /** + * Creates a new 8-bit signed integer. + * + * @param int|float|string $value The value as an integer, float or string + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-__construct + */ + public function __construct($value) {} + + /** + * Minimum possible Tinyint value + * + * @return \Cassandra\Tinyint minimum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-min + */ + public static function min() {} + + /** + * Maximum possible Tinyint value + * + * @return \Cassandra\Tinyint maximum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-max + */ + public static function max() {} + + /** + * @return string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-__toString + */ + public function __toString() {} + + /** + * The type of this value (tinyint). + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-type + */ + public function type() {} + + /** + * Returns the integer value. + * + * @return int integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-value + */ + public function value() {} + + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-add + */ + public function add($num) {} + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-sub + */ + public function sub($num) {} + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-mul + */ + public function mul($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-div + */ + public function div($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-mod + */ + public function mod($num) {} + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-abs + */ + public function abs() {} + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-neg + */ + public function neg() {} + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-sqrt + */ + public function sqrt() {} + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-toInt + */ + public function toInt() {} + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Tinyint/#method-toDouble + */ + public function toDouble() {} + } + + /** + * A PHP representation of the CQL `timeuuid` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/ + */ + final class Timeuuid implements Value, UuidInterface + { + /** + * Creates a timeuuid from a given timestamp or current time. + * + * @param int $timestamp Unix timestamp + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-__construct + */ + public function __construct($timestamp) {} + + /** + * Returns this timeuuid as string. + * + * @return string timeuuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-__toString + */ + public function __toString() {} + + /** + * The type of this timeuuid. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-type + */ + public function type() {} + + /** + * Returns this timeuuid as string. + * + * @return string timeuuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-uuid + */ + public function uuid() {} + + /** + * Returns the version of this timeuuid. + * + * @return int version of this timeuuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-version + */ + public function version() {} + + /** + * Unix timestamp. + * + * @return int seconds + * + * @see time + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-time + */ + public function time() {} + + /** + * Converts current timeuuid to PHP DateTime. + * + * @return \DateTime PHP representation + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Timeuuid/#method-toDateTime + */ + public function toDateTime() {} + } + + /** + * A session is used to prepare and execute statements. + * + * @see \Cassandra\Cluster::connect() + * @see \Cassandra\Cluster::connectAsync() + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/ + */ + final class DefaultSession implements Session + { + /** + * Execute a query. + * + * Available execution options: + * | Option Name | Option **Type** | Option Details | + * |--------------------|-----------------|----------------------------------------------------------------------------------------------------------| + * | arguments | array | An array or positional or named arguments | + * | consistency | int | A consistency constant e.g Dse::CONSISTENCY_ONE, Dse::CONSISTENCY_QUORUM, etc. | + * | timeout | int | A number of rows to include in result for paging | + * | paging_state_token | string | A string token use to resume from the state of a previous result set | + * | retry_policy | RetryPolicy | A retry policy that is used to handle server-side failures for this request | + * | serial_consistency | int | Either Dse::CONSISTENCY_SERIAL or Dse::CONSISTENCY_LOCAL_SERIAL | + * | timestamp | int\|string | Either an integer or integer string timestamp that represents the number of microseconds since the epoch | + * | execute_as | string | User to execute statement as | + * + * @param string|\Cassandra\Statement $statement string or statement to be executed. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query. + * + * @return \Cassandra\Rows A collection of rows. + * @throws \Cassandra\Exception + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-execute + */ + public function execute($statement, $options) {} + + /** + * Execute a query asynchronously. This method returns immediately, but + * the query continues execution in the background. + * + * @param string|\Cassandra\Statement $statement string or statement to be executed. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control execution of the query. + * + * @return \Cassandra\FutureRows A future that can be used to retrieve the result. + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-executeAsync + */ + public function executeAsync($statement, $options) {} + + /** + * Prepare a query for execution. + * + * @param string $cql The query to be prepared. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query. + * + * @return \Cassandra\PreparedStatement A prepared statement that can be bound with parameters and executed. + * + * @throws \Cassandra\Exception + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-prepare + */ + public function prepare($cql, $options) {} + + /** + * Asynchronously prepare a query for execution. + * + * @param string $cql The query to be prepared. + * @param array|\Cassandra\ExecutionOptions|null $options Options to control preparing the query. + * + * @return \Cassandra\FuturePreparedStatement A future that can be used to retrieve the prepared statement. + * + * @see \Cassandra\Session::execute() for valid execution options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-prepareAsync + */ + public function prepareAsync($cql, $options) {} + + /** + * Close the session and all its connections. + * + * @param float $timeout The amount of time in seconds to wait for the session to close. + * + * @return null Nothing. + * @throws \Cassandra\Exception + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-close + */ + public function close($timeout) {} + + /** + * Asynchronously close the session and all its connections. + * + * @return \Cassandra\FutureClose A future that can be waited on. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-closeAsync + */ + public function closeAsync() {} + + /** + * Get performance and diagnostic metrics. + * + * @return array Performance/Diagnostic metrics. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-metrics + */ + public function metrics() {} + + /** + * Get a snapshot of the cluster's current schema. + * + * @return \Cassandra\Schema A snapshot of the cluster's schema. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultSession/#method-schema + */ + public function schema() {} + } + + /** + * A class for representing custom values. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Custom/ + */ + abstract class Custom implements Value + { + /** + * The type of this value. + * + * @return \Cassandra\Type\Custom + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Custom/#method-type + */ + abstract public function type(); + } + + /** + * A PHP representation of a materialized view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/ + */ + abstract class MaterializedView implements Table + { + /** + * Returns the base table of the view + * + * @return \Cassandra\Table Base table of the view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-baseTable + */ + abstract public function baseTable(); + + /** + * Returns the name of this view + * + * @return string Name of the view + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-name + */ + abstract public function name(); + + /** + * Return a view's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-option + */ + abstract public function option($name); + + /** + * Returns all the view's options + * + * @return array A dictionary of string and Value pairs of the + * view's options. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-options + */ + abstract public function options(); + + /** + * Description of the view, if any + * + * @return string View description or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-comment + */ + abstract public function comment(); + + /** + * Returns read repair chance + * + * @return float Read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-readRepairChance + */ + abstract public function readRepairChance(); + + /** + * Returns local read repair chance + * + * @return float Local read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-localReadRepairChance + */ + abstract public function localReadRepairChance(); + + /** + * Returns GC grace seconds + * + * @return int GC grace seconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-gcGraceSeconds + */ + abstract public function gcGraceSeconds(); + + /** + * Returns caching options + * + * @return string Caching options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-caching + */ + abstract public function caching(); + + /** + * Returns bloom filter FP chance + * + * @return float Bloom filter FP chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-bloomFilterFPChance + */ + abstract public function bloomFilterFPChance(); + + /** + * Returns memtable flush period in milliseconds + * + * @return int Memtable flush period in milliseconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-memtableFlushPeriodMs + */ + abstract public function memtableFlushPeriodMs(); + + /** + * Returns default TTL. + * + * @return int Default TTL. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-defaultTTL + */ + abstract public function defaultTTL(); + + /** + * Returns speculative retry. + * + * @return string Speculative retry. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-speculativeRetry + */ + abstract public function speculativeRetry(); + + /** + * Returns index interval + * + * @return int Index interval + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-indexInterval + */ + abstract public function indexInterval(); + + /** + * Returns compaction strategy class name + * + * @return string Compaction strategy class name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compactionStrategyClassName + */ + abstract public function compactionStrategyClassName(); + + /** + * Returns compaction strategy options + * + * @return \Cassandra\Map Compaction strategy options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compactionStrategyOptions + */ + abstract public function compactionStrategyOptions(); + + /** + * Returns compression parameters + * + * @return \Cassandra\Map Compression parameters + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-compressionParameters + */ + abstract public function compressionParameters(); + + /** + * Returns whether or not the `populate_io_cache_on_flush` is true + * + * @return bool Value of `populate_io_cache_on_flush` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-populateIOCacheOnFlush + */ + abstract public function populateIOCacheOnFlush(); + + /** + * Returns whether or not the `replicate_on_write` is true + * + * @return bool Value of `replicate_on_write` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-replicateOnWrite + */ + abstract public function replicateOnWrite(); + + /** + * Returns the value of `max_index_interval` + * + * @return int Value of `max_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-maxIndexInterval + */ + abstract public function maxIndexInterval(); + + /** + * Returns the value of `min_index_interval` + * + * @return int Value of `min_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-minIndexInterval + */ + abstract public function minIndexInterval(); + + /** + * Returns column by name + * + * @param string $name Name of the column + * + * @return \Cassandra\Column Column instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-column + */ + abstract public function column($name); + + /** + * Returns all columns in this view + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-columns + */ + abstract public function columns(); + + /** + * Returns the partition key columns of the view + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-partitionKey + */ + abstract public function partitionKey(); + + /** + * Returns both the partition and clustering key columns of the view + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-primaryKey + */ + abstract public function primaryKey(); + + /** + * Returns the clustering key columns of the view + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-clusteringKey + */ + abstract public function clusteringKey(); + + /** + * @return array A list of cluster column orders ('asc' and 'desc') + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.MaterializedView/#method-clusteringOrder + */ + abstract public function clusteringOrder(); + } + + /** + * A PHP representation of the CQL `time` type. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/ + */ + final class Time implements Value + { + /** + * Creates a new Time object + * + * @param int|string $nanoseconds Number of nanoseconds since last microsecond + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-__construct + */ + public function __construct($nanoseconds) {} + + /** + * @param \DateTime $datetime + * + * @return \Cassandra\Time + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-fromDateTime + */ + public static function fromDateTime($datetime) {} + + /** + * The type of this date. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-type + */ + public function type() {} + + /** + * @return int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-seconds + */ + public function seconds() {} + + /** + * @return string this date in string format: Time(nanoseconds=$nanoseconds) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Time/#method-__toString + */ + public function __toString() {} + } + + /** + * Cluster object is used to create Sessions. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/ + */ + abstract class Type + { + /** + * Get representation of ascii type + * + * @return \Cassandra\Type ascii type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-ascii + */ + final public static function ascii() {} + + /** + * Get representation of bigint type + * + * @return \Cassandra\Type bigint type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-bigint + */ + final public static function bigint() {} + + /** + * Get representation of smallint type + * + * @return \Cassandra\Type smallint type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-smallint + */ + final public static function smallint() {} + + /** + * Get representation of tinyint type + * + * @return \Cassandra\Type tinyint type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-tinyint + */ + final public static function tinyint() {} + + /** + * Get representation of blob type + * + * @return \Cassandra\Type blob type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-blob + */ + final public static function blob() {} + + /** + * Get representation of boolean type + * + * @return \Cassandra\Type boolean type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-boolean + */ + final public static function boolean() {} + + /** + * Get representation of counter type + * + * @return \Cassandra\Type counter type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-counter + */ + final public static function counter() {} + + /** + * Get representation of decimal type + * + * @return \Cassandra\Type decimal type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-decimal + */ + final public static function decimal() {} + + /** + * Get representation of double type + * + * @return \Cassandra\Type double type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-double + */ + final public static function double() {} + + /** + * Get representation of duration type + * + * @return \Cassandra\Type duration type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-duration + */ + final public static function duration() {} + + /** + * Get representation of float type + * + * @return \Cassandra\Type float type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-float + */ + final public static function float() {} + + /** + * Get representation of int type + * + * @return \Cassandra\Type int type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-int + */ + final public static function int() {} + + /** + * Get representation of text type + * + * @return \Cassandra\Type text type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-text + */ + final public static function text() {} + + /** + * Get representation of timestamp type + * + * @return \Cassandra\Type timestamp type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-timestamp + */ + final public static function timestamp() {} + + /** + * Get representation of date type + * + * @return \Cassandra\Type date type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-date + */ + final public static function date() {} + + /** + * Get representation of time type + * + * @return \Cassandra\Type time type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-time + */ + final public static function time() {} + + /** + * Get representation of uuid type + * + * @return \Cassandra\Type uuid type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-uuid + */ + final public static function uuid() {} + + /** + * Get representation of varchar type + * + * @return \Cassandra\Type varchar type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-varchar + */ + final public static function varchar() {} + + /** + * Get representation of varint type + * + * @return \Cassandra\Type varint type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-varint + */ + final public static function varint() {} + + /** + * Get representation of timeuuid type + * + * @return \Cassandra\Type timeuuid type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-timeuuid + */ + final public static function timeuuid() {} + + /** + * Get representation of inet type + * + * @return \Cassandra\Type inet type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-inet + */ + final public static function inet() {} + + /** + * Initialize a Collection type + * ```php + * create(1, 2, 3, 4, 5, 6, 7, 8, 9); + * + * var_dump($collection); + * ``` + * + * @param \Cassandra\Type $type The type of values + * + * @return \Cassandra\Type The collection type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-collection + */ + final public static function collection($type) {} + + /** + * Initialize a set type + * ``` + * create("a", "b", "c", "d", "e", "f", "g", "h", "i", "j"); + * + * var_dump($set); + * ``` + * + * @param \Cassandra\Type $type The types of values + * + * @return \Cassandra\Type The set type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-set + */ + final public static function set($type) {} + + /** + * Initialize a map type + * ```create(1, "a", 2, "b", 3, "c", 4, "d", 5, "e", 6, "f") + * + * var_dump($map);``` + * + * @param \Cassandra\Type $keyType The type of keys + * @param \Cassandra\Type $valueType The type of values + * + * @return \Cassandra\Type The map type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-map + */ + final public static function map($keyType, $valueType) {} + + /** + * Initialize a tuple type + * ```create("a", 123); + * + * var_dump($tuple);``` + * + * @param \Cassandra\Type $types A variadic list of types + * + * @return \Cassandra\Type The tuple type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-tuple + */ + final public static function tuple($types) {} + + /** + * Initialize a user type + * ```create("a", "abc", "b", 123); + * + * var_dump($userType);``` + * + * @param \Cassandra\Type $types A variadic list of name/type pairs + * + * @return \Cassandra\Type The user type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-userType + */ + final public static function userType($types) {} + + /** + * Returns the name of this type as string. + * + * @return string Name of this type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-name + */ + abstract public function name(); + + /** + * Returns string representation of this type. + * + * @return string String representation of this type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Type/#method-__toString + */ + abstract public function __toString(); + } + + /** + * A PHP representation of the CQL `varint` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/ + */ + final class Varint implements Value, Numeric + { + /** + * Creates a new variable length integer. + * + * @param string $value integer value as a string + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-__construct + */ + public function __construct($value) {} + + /** + * Returns the integer value. + * + * @return string integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-__toString + */ + public function __toString() {} + + /** + * The type of this varint. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-type + */ + public function type() {} + + /** + * Returns the integer value. + * + * @return string integer value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-value + */ + public function value() {} + + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-add + */ + public function add($num) {} + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-sub + */ + public function sub($num) {} + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-mul + */ + public function mul($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-div + */ + public function div($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-mod + */ + public function mod($num) {} + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-abs + */ + public function abs() {} + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-neg + */ + public function neg() {} + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-sqrt + */ + public function sqrt() {} + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-toInt + */ + public function toInt() {} + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Varint/#method-toDouble + */ + public function toDouble() {} + } + + /** + * A PHP representation of the CQL `map` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/ + */ + final class Map implements Value, \Countable, \Iterator, \ArrayAccess + { + /** + * Creates a new map of a given key and value type. + * + * @param \Cassandra\Type $keyType + * @param \Cassandra\Type $valueType + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-__construct + */ + public function __construct($keyType, $valueType) {} + + /** + * The type of this map. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-type + */ + public function type() {} + + /** + * Returns all keys in the map as an array. + * + * @return array keys + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-keys + */ + public function keys() {} + + /** + * Returns all values in the map as an array. + * + * @return array values + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-values + */ + public function values() {} + + /** + * Sets key/value in the map. + * + * @param mixed $key key + * @param mixed $value value + * + * @return mixed + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-set + */ + public function set($key, $value) {} + + /** + * Gets the value of the key in the map. + * + * @param mixed $key Key + * + * @return mixed Value or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-get + */ + public function get($key) {} + + /** + * Removes the key from the map. + * + * @param mixed $key Key + * + * @return bool Whether the key was removed or not, e.g. didn't exist + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-remove + */ + public function remove($key) {} + + /** + * Returns whether the key is in the map. + * + * @param mixed $key Key + * + * @return bool Whether the key is in the map or not + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-has + */ + public function has($key) {} + + /** + * Total number of elements in this map + * + * @return int count + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-count + */ + public function count() {} + + /** + * Current value for iteration + * + * @return mixed current value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-current + */ + public function current() {} + + /** + * Current key for iteration + * + * @return int current key + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-key + */ + public function key() {} + + /** + * Move internal iterator forward + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-next + */ + public function next() {} + + /** + * Check whether a current value exists + * + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-valid + */ + public function valid() {} + + /** + * Rewind internal iterator + * + * @return void + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-rewind + */ + public function rewind() {} + + /** + * Sets the value at a given key + * + * @param mixed $key Key to use. + * @param mixed $value Value to set. + * + * @return void + * @throws \Cassandra\Exception\InvalidArgumentException when the type of key or value is wrong + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetSet + */ + public function offsetSet($key, $value) {} + + /** + * Retrieves the value at a given key + * + * @param mixed $key Key to use. + * + * @return mixed Value or `null` + * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetGet + */ + public function offsetGet($key) {} + + /** + * Deletes the value at a given key + * + * @param mixed $key Key to use. + * + * @return void + * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetUnset + */ + public function offsetUnset($key) {} + + /** + * Returns whether the value a given key is present + * + * @param mixed $key Key to use. + * + * @return bool Whether the value at a given key is present + * @throws \Cassandra\Exception\InvalidArgumentException when the type of key is wrong + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Map/#method-offsetExists + */ + public function offsetExists($key) {} + } + + /** + * A PHP representation of the CQL `uuid` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/ + */ + final class Uuid implements Value, UuidInterface + { + /** + * Creates a uuid from a given uuid string or a random one. + * + * @param string $uuid A uuid string + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-__construct + */ + public function __construct($uuid) {} + + /** + * Returns this uuid as string. + * + * @return string uuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-__toString + */ + public function __toString() {} + + /** + * The type of this uuid. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-type + */ + public function type() {} + + /** + * Returns this uuid as string. + * + * @return string uuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-uuid + */ + public function uuid() {} + + /** + * Returns the version of this uuid. + * + * @return int version of this uuid + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Uuid/#method-version + */ + public function version() {} + } + + /** + * A PHP representation of the CQL `float` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/ + */ + final class Float_ implements Value, Numeric + { + /** + * Creates a new float. + * + * @param float|int|string|\Cassandra\Float_ $value A float value as a string, number or Float + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-__construct + */ + public function __construct($value) {} + + /** + * Minimum possible Float value + * + * @return \Cassandra\Float_ minimum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-min + */ + public static function min() {} + + /** + * Maximum possible Float value + * + * @return \Cassandra\Float_ maximum value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-max + */ + public static function max() {} + + /** + * Returns string representation of the float value. + * + * @return string float value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-__toString + */ + public function __toString() {} + + /** + * The type of this float. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-type + */ + public function type() {} + + /** + * Returns the float value. + * + * @return float float value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-value + */ + public function value() {} + + /** + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isInfinite + */ + public function isInfinite() {} + + /** + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isFinite + */ + public function isFinite() {} + + /** + * @return bool + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-isNaN + */ + public function isNaN() {} + + /** + * @param \Cassandra\Numeric $num a number to add to this one + * + * @return \Cassandra\Numeric sum + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-add + */ + public function add($num) {} + + /** + * @param \Cassandra\Numeric $num a number to subtract from this one + * + * @return \Cassandra\Numeric difference + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-sub + */ + public function sub($num) {} + + /** + * @param \Cassandra\Numeric $num a number to multiply this one by + * + * @return \Cassandra\Numeric product + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-mul + */ + public function mul($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric quotient + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-div + */ + public function div($num) {} + + /** + * @param \Cassandra\Numeric $num a number to divide this one by + * + * @return \Cassandra\Numeric remainder + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-mod + */ + public function mod($num) {} + + /** + * @return \Cassandra\Numeric absolute value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-abs + */ + public function abs() {} + + /** + * @return \Cassandra\Numeric negative value + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-neg + */ + public function neg() {} + + /** + * @return \Cassandra\Numeric square root + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-sqrt + */ + public function sqrt() {} + + /** + * @return int this number as int + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-toInt + */ + public function toInt() {} + + /** + * @return float this number as float + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Float/#method-toDouble + */ + public function toDouble() {} + } + + /** + * A PHP representation of the CQL `duration` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/ + */ + final class Duration implements Value + { + /** + * @param int|float|string|\Cassandra\Bigint $months Months attribute of the duration. + * @param int|float|string|\Cassandra\Bigint $days Days attribute of the duration. + * @param int|float|string|\Cassandra\Bigint $nanos Nanos attribute of the duration. + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-__construct + */ + public function __construct($months, $days, $nanos) {} + + /** + * The type of represented by the value. + * + * @return \Cassandra\Type the Cassandra type for Duration + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-type + */ + public function type() {} + + /** + * @return string the months attribute of this Duration + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-months + */ + public function months() {} + + /** + * @return string the days attribute of this Duration + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-days + */ + public function days() {} + + /** + * @return string the nanoseconds attribute of this Duration + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-nanos + */ + public function nanos() {} + + /** + * @return string string representation of this Duration; may be used as a literal parameter in CQL queries. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Duration/#method-__toString + */ + public function __toString() {} + } + + /** + * A PHP representation of a keyspace + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/ + */ + final class DefaultKeyspace implements Keyspace + { + /** + * Returns keyspace name + * + * @return string Name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-name + */ + public function name() {} + + /** + * Returns replication class name + * + * @return string Replication class + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-replicationClassName + */ + public function replicationClassName() {} + + /** + * Returns replication options + * + * @return \Cassandra\Map Replication options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-replicationOptions + */ + public function replicationOptions() {} + + /** + * Returns whether the keyspace has durable writes enabled + * + * @return string Whether durable writes are enabled + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-hasDurableWrites + */ + public function hasDurableWrites() {} + + /** + * Returns a table by name + * + * @param string $name Table name + * + * @return \Cassandra\Table + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-table + */ + public function table($name) {} + + /** + * Returns all tables defined in this keyspace + * + * @return array An array of `Table` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-tables + */ + public function tables() {} + + /** + * Get user type by name + * + * @param string $name User type name + * + * @return \Cassandra\Type\UserType|null A user type or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-userType + */ + public function userType($name) {} + + /** + * Get all user types + * + * @return array An array of user types + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-userTypes + */ + public function userTypes() {} + + /** + * Get materialized view by name + * + * @param string $name Materialized view name + * + * @return \Cassandra\MaterializedView|null A materialized view or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-materializedView + */ + public function materializedView($name) {} + + /** + * Gets all materialized views + * + * @return array An array of materialized views + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-materializedViews + */ + public function materializedViews() {} + + /** + * Get a function by name and signature + * + * @param string $name Function name + * @param string|\Cassandra\Type $params Function arguments + * + * @return \Cassandra\Function_|null A function or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-function + */ + public function function_($name, ...$params) {} + + /** + * Get all functions + * + * @return array An array of functions + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-functions + */ + public function functions() {} + + /** + * Get an aggregate by name and signature + * + * @param string $name Aggregate name + * @param string|\Cassandra\Type $params Aggregate arguments + * + * @return \Cassandra\Aggregate|null An aggregate or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-aggregate + */ + public function aggregate($name, ...$params) {} + + /** + * Get all aggregates + * + * @return array An array of aggregates + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultKeyspace/#method-aggregates + */ + public function aggregates() {} + } + + /** + * A PHP representation of the CQL `inet` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/ + */ + final class Inet implements Value + { + /** + * Creates a new IPv4 or IPv6 inet address. + * + * @param string $address any IPv4 or IPv6 address + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-__construct + */ + public function __construct($address) {} + + /** + * Returns the normalized string representation of the address. + * + * @return string address + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-__toString + */ + public function __toString() {} + + /** + * The type of this inet. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-type + */ + public function type() {} + + /** + * Returns the normalized string representation of the address. + * + * @return string address + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Inet/#method-address + */ + public function address() {} + } + + /** + * A PHP representation of the CQL `date` type. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/ + */ + final class Date implements Value + { + /** + * Creates a new Date object + * + * @param int $seconds Absolute seconds from epoch (1970, 1, 1), can be negative, defaults to current time. + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-__construct + */ + public function __construct($seconds) {} + + /** + * Creates a new Date object from a \DateTime object. + * + * @param \DateTime $datetime A \DateTime object to convert. + * + * @return \DateTime PHP representation + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-fromDateTime + */ + public static function fromDateTime($datetime) {} + + /** + * The type of this date. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-type + */ + public function type() {} + + /** + * @return int Absolute seconds from epoch (1970, 1, 1), can be negative + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-seconds + */ + public function seconds() {} + + /** + * Converts current date to PHP DateTime. + * + * @param \Cassandra\Time $time An optional Time object that is added to the DateTime object. + * + * @return \DateTime PHP representation + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-toDateTime + */ + public function toDateTime($time) {} + + /** + * @return string this date in string format: Date(seconds=$seconds) + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Date/#method-__toString + */ + public function __toString() {} + } + + /** + * A PHP representation of a column + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/ + */ + final class DefaultColumn implements Column + { + /** + * Returns the name of the column. + * + * @return string Name of the column or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-name + */ + public function name() {} + + /** + * Returns the type of the column. + * + * @return \Cassandra\Type Type of the column + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-type + */ + public function type() {} + + /** + * Returns whether the column is in descending or ascending order. + * + * @return bool Whether the column is stored in descending order. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isReversed + */ + public function isReversed() {} + + /** + * Returns true for static columns. + * + * @return bool Whether the column is static + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isStatic + */ + public function isStatic() {} + + /** + * Returns true for frozen columns. + * + * @return bool Whether the column is frozen + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-isFrozen + */ + public function isFrozen() {} + + /** + * Returns name of the index if defined. + * + * @return string Name of the index if defined or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-indexName + */ + public function indexName() {} + + /** + * Returns index options if present. + * + * @return string Index options if present or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultColumn/#method-indexOptions + */ + public function indexOptions() {} + } + + /** + * A PHP representation of the CQL `blob` datatype + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/ + */ + final class Blob implements Value + { + /** + * Creates a new bytes array. + * + * @param string $bytes any bytes + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-__construct + */ + public function __construct($bytes) {} + + /** + * Returns bytes as a hex string. + * + * @return string bytes as hexadecimal string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-__toString + */ + public function __toString() {} + + /** + * The type of this blob. + * + * @return \Cassandra\Type + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-type + */ + public function type() {} + + /** + * Returns bytes as a hex string. + * + * @return string bytes as hexadecimal string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-bytes + */ + public function bytes() {} + + /** + * Returns bytes as a binary string. + * + * @return string bytes as binary string + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Blob/#method-toBinaryString + */ + public function toBinaryString() {} + } + + /** + * A PHP representation of a table + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/ + */ + final class DefaultTable implements Table + { + /** + * Returns the name of this table + * + * @return string Name of the table + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-name + */ + public function name() {} + + /** + * Return a table's option by name + * + * @param string $name The name of the option + * + * @return \Cassandra\Value Value of an option by name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-option + */ + public function option($name) {} + + /** + * Returns all the table's options + * + * @return array A dictionary of `string` and `Value` pairs of the table's options. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-options + */ + public function options() {} + + /** + * Description of the table, if any + * + * @return string Table description or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-comment + */ + public function comment() {} + + /** + * Returns read repair chance + * + * @return float Read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-readRepairChance + */ + public function readRepairChance() {} + + /** + * Returns local read repair chance + * + * @return float Local read repair chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-localReadRepairChance + */ + public function localReadRepairChance() {} + + /** + * Returns GC grace seconds + * + * @return int GC grace seconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-gcGraceSeconds + */ + public function gcGraceSeconds() {} + + /** + * Returns caching options + * + * @return string Caching options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-caching + */ + public function caching() {} + + /** + * Returns bloom filter FP chance + * + * @return float Bloom filter FP chance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-bloomFilterFPChance + */ + public function bloomFilterFPChance() {} + + /** + * Returns memtable flush period in milliseconds + * + * @return int Memtable flush period in milliseconds + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-memtableFlushPeriodMs + */ + public function memtableFlushPeriodMs() {} + + /** + * Returns default TTL. + * + * @return int Default TTL. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-defaultTTL + */ + public function defaultTTL() {} + + /** + * Returns speculative retry. + * + * @return string Speculative retry. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-speculativeRetry + */ + public function speculativeRetry() {} + + /** + * Returns index interval + * + * @return int Index interval + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-indexInterval + */ + public function indexInterval() {} + + /** + * Returns compaction strategy class name + * + * @return string Compaction strategy class name + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compactionStrategyClassName + */ + public function compactionStrategyClassName() {} + + /** + * Returns compaction strategy options + * + * @return \Cassandra\Map Compaction strategy options + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compactionStrategyOptions + */ + public function compactionStrategyOptions() {} + + /** + * Returns compression parameters + * + * @return \Cassandra\Map Compression parameters + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-compressionParameters + */ + public function compressionParameters() {} + + /** + * Returns whether or not the `populate_io_cache_on_flush` is true + * + * @return bool Value of `populate_io_cache_on_flush` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-populateIOCacheOnFlush + */ + public function populateIOCacheOnFlush() {} + + /** + * Returns whether or not the `replicate_on_write` is true + * + * @return bool Value of `replicate_on_write` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-replicateOnWrite + */ + public function replicateOnWrite() {} + + /** + * Returns the value of `max_index_interval` + * + * @return int Value of `max_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-maxIndexInterval + */ + public function maxIndexInterval() {} + + /** + * Returns the value of `min_index_interval` + * + * @return int Value of `min_index_interval` or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-minIndexInterval + */ + public function minIndexInterval() {} + + /** + * Returns column by name + * + * @param string $name Name of the column + * + * @return \Cassandra\Column Column instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-column + */ + public function column($name) {} + + /** + * Returns all columns in this table + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-columns + */ + public function columns() {} + + /** + * Returns the partition key columns of the table + * + * @return array A list of `Column` instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-partitionKey + */ + public function partitionKey() {} + + /** + * Returns both the partition and clustering key columns of the table + * + * @return array A list of `Column` instance + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-primaryKey + */ + public function primaryKey() {} + + /** + * Returns the clustering key columns of the table + * + * @return array A list of `Column` instances + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-clusteringKey + */ + public function clusteringKey() {} + + /** + * @return array A list of cluster column orders ('asc' and 'desc') + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-clusteringOrder + */ + public function clusteringOrder() {} + + /** + * Get an index by name + * + * @param string $name Index name + * + * @return \Cassandra\Index|null An index or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-index + */ + public function index($name) {} + + /** + * Gets all indexes + * + * @return array An array of indexes + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-indexes + */ + public function indexes() {} + + /** + * Get materialized view by name + * + * @param string $name Materialized view name + * + * @return \Cassandra\MaterializedView|null A materialized view or null + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-materializedView + */ + public function materializedView($name) {} + + /** + * Gets all materialized views + * + * @return array An array of materialized views + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.DefaultTable/#method-materializedViews + */ + public function materializedViews() {} + } + + /** + * A future that always resolves in a value. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureValue/ + */ + final class FutureValue implements Future + { + /** + * Waits for a given future resource to resolve and throws errors if any. + * + * @param int|float|null $timeout A timeout in seconds + * + * @return mixed A value + * @throws \Cassandra\Exception\TimeoutException + * + * @throws \Cassandra\Exception\InvalidArgumentException + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.FutureValue/#method-get + */ + public function get($timeout) {} + } + + /** + * A PHP representation of the CQL `decimal` datatype + * + * The actual value of a decimal is `$value * pow(10, $scale * -1)` + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/class.Decimal/ + */ + final class Decimal implements Value, Numeric + { + /** + * Creates a decimal from a given decimal string: + * + * ~~~{.php} + * schema() will always return an empty object. This + * can be useful for reducing the startup overhead of short-lived sessions. + * + * @param bool $enabled whether the driver fetches and maintains schema metadata. + * + * @return \Cassandra\Cluster\Builder self + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withSchemaMetadata + */ + public function withSchemaMetadata($enabled) {} + + /** + * Enables/disables Hostname Resolution. + * + * If enabled the driver will resolve hostnames for IP addresses using + * reverse IP lookup. This is useful for authentication (Kerberos) or + * encryption SSL services that require a valid hostname for verification. + * + * Important: It's possible that the underlying C/C++ driver does not + * support hostname resolution. A PHP warning will be emitted if the driver + * does not support hostname resolution. + * + * @param bool $enabled whether the driver uses hostname resolution. + * + * @return \Cassandra\Cluster\Builder self + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withHostnameResolution + */ + public function withHostnameResolution($enabled) {} + + /** + * Enables/disables Randomized Contact Points. + * + * If enabled this allows the driver randomly use contact points in order + * to evenly spread the load across the cluster and prevent + * hotspots/load spikes during notifications (e.g. massive schema change). + * + * Note: This setting should only be disabled for debugging and testing. + * + * @param bool $enabled whether the driver uses randomized contact points. + * + * @return \Cassandra\Cluster\Builder self + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withRandomizedContactPoints + */ + public function withRandomizedContactPoints($enabled) {} + + /** + * Specify interval in seconds that the driver should wait before attempting + * to send heartbeat messages and control the amount of time the connection + * must be idle before sending heartbeat messages. This is useful for + * preventing intermediate network devices from dropping connections. + * + * @param float $interval interval in seconds (0 to disable heartbeat). + * + * @return \Cassandra\Cluster\Builder self + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Cluster/class.Builder/#method-withConnectionHeartbeatInterval + */ + public function withConnectionHeartbeatInterval($interval) {} + } +} + +/** + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/ + */ + +namespace Cassandra\TimestampGenerator { + /** + * A timestamp generator that allows the server-side to assign timestamps. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/class.ServerSide/ + */ + final class ServerSide implements \Cassandra\TimestampGenerator {} + + /** + * A timestamp generator that generates monotonically increasing timestamps + * client-side. The timestamps generated have a microsecond granularity with + * the sub-millisecond part generated using a counter. The implementation + * guarantees that no more than 1000 timestamps will be generated for a given + * clock tick even if shared by multiple session objects. If that rate is + * exceeded then a warning is logged and timestamps stop incrementing until + * the next clock tick. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/TimestampGenerator/class.Monotonic/ + */ + final class Monotonic implements \Cassandra\TimestampGenerator {} +} + +/** + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/ + */ + +namespace Cassandra\RetryPolicy { + /** + * The default retry policy. This policy retries a query, using the + * request's original consistency level, in the following cases: + * + * * On a read timeout, if enough replicas replied but the data was not received. + * * On a write timeout, if a timeout occurs while writing a distributed batch log. + * * On unavailable, it will move to the next host. + * + * In all other cases the error will be returned. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.DefaultPolicy/ + */ + final class DefaultPolicy implements \Cassandra\RetryPolicy {} + + /** + * A retry policy that will downgrade the consistency of a request in + * an attempt to save a request in cases where there is any chance of success. A + * write request will succeed if there is at least a single copy persisted and a + * read request will succeed if there is some data available even if it increases + * the risk of reading stale data. This policy will retry in the same scenarios as + * the default policy, and it will also retry in the following case: + * + * * On a read timeout, if some replicas responded but is lower than + * required by the current consistency level then retry with a lower + * consistency level + * * On a write timeout, Retry unlogged batches at a lower consistency level + * if at least one replica responded. For single queries and batch if any + * replicas responded then consider the request successful and swallow the + * error. + * * On unavailable, retry at a lower consistency if at lease one replica + * responded. + * + * Important: This policy may attempt to retry requests with a lower + * consistency level. Using this policy can break consistency guarantees. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.DowngradingConsistency/ + */ + final class DowngradingConsistency implements \Cassandra\RetryPolicy {} + + /** + * A retry policy that never retries and allows all errors to fallthrough. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Fallthrough/ + */ + final class Fallthrough implements \Cassandra\RetryPolicy {} + + /** + * A retry policy that logs the decisions of its child policy. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Logging/ + */ + final class Logging implements \Cassandra\RetryPolicy + { + /** + * Creates a new Logging retry policy. + * + * @param \Cassandra\RetryPolicy $childPolicy Any retry policy other than Logging + * + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/RetryPolicy/class.Logging/#method-__construct + */ + public function __construct($childPolicy) {} + } +} + +/** + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/ + */ + +namespace Cassandra\Type { + /** + * A class that represents the tuple type. The tuple type is able to represent + * a composite type of one or more types accessed by index. + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/ + */ + final class Tuple extends \Cassandra\Type + { + private function __construct() {} + + /** + * Returns "tuple" + * + * @return string "tuple" + * @link https://docs.datastax.com/en/developer/php-driver/latest/api/Cassandra/Type/class.Tuple/#method-name + */ + public function name() {} + + /** + * Returns type representation in CQL, e.g. `tuple+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * a letter from the current locale, FALSE otherwise. + */ +#[Pure] +function ctype_alpha(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for control character(s) + * @link https://php.net/manual/en/function.ctype-cntrl.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * a control character from the current locale, FALSE otherwise. + */ +#[Pure] +function ctype_cntrl(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for numeric character(s) + * @link https://php.net/manual/en/function.ctype-digit.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in the string + * text is a decimal digit, FALSE otherwise. + */ +#[Pure] +function ctype_digit(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for lowercase character(s) + * @link https://php.net/manual/en/function.ctype-lower.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * a lowercase letter in the current locale. + */ +#[Pure] +function ctype_lower(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for any printable character(s) except space + * @link https://php.net/manual/en/function.ctype-graph.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * printable and actually creates visible output (no white space), FALSE + * otherwise. + */ +#[Pure] +function ctype_graph(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for printable character(s) + * @link https://php.net/manual/en/function.ctype-print.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text + * will actually create output (including blanks). Returns FALSE if + * text contains control characters or characters + * that do not have any output or control function at all. + */ +#[Pure] +function ctype_print(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for any printable character which is not whitespace or an + * alphanumeric character + * @link https://php.net/manual/en/function.ctype-punct.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text + * is printable, but neither letter, digit or blank, FALSE otherwise. + */ +#[Pure] +function ctype_punct(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for whitespace character(s) + * @link https://php.net/manual/en/function.ctype-space.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text + * creates some sort of white space, FALSE otherwise. Besides the + * blank character this also includes tab, vertical tab, line feed, + * carriage return and form feed characters. + */ +#[Pure] +function ctype_space(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for uppercase character(s) + * @link https://php.net/manual/en/function.ctype-upper.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * an uppercase letter in the current locale. + */ +#[Pure] +function ctype_upper(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} + +/** + * Check for character(s) representing a hexadecimal digit + * @link https://php.net/manual/en/function.ctype-xdigit.php + * @param string $text+ * The tested string. + *
+ * @return bool TRUE if every character in text is + * a hexadecimal 'digit', that is a decimal digit or a character from + * [A-Fa-f] , FALSE otherwise. + */ +#[Pure] +function ctype_xdigit(#[LanguageLevelTypeAware(['8.1' => 'string'], default: 'mixed')] mixed $text): bool {} diff --git a/phpstorm-stubs/cubrid/cubrid.php b/phpstorm-stubs/cubrid/cubrid.php new file mode 100644 index 0000000..ff8b4cf --- /dev/null +++ b/phpstorm-stubs/cubrid/cubrid.php @@ -0,0 +1,1975 @@ + + * Open a connection to a CUBRID Server + * @link https://php.net/manual/en/function.cubrid-connect.php + * @param string $host+ * Host name or IP address of CUBRID CAS server. + *
+ * @param int $port+ * Port number of CUBRID CAS server (BROKER_PORT configured in + * $CUBRID/conf/cubrid_broker.conf). + *
+ * @param string $dbname+ * Name of database. + *
+ * @param string $userid [optional]+ * User name for the database. Default value is 'PUBLIC'. + *
+ * @param string $passwd [optional]+ * User password. Default value is empty string, i.e. no + * password is defined. + *
+ * @param bool $new_link [optional]+ * If a second call is made to cubrid_connect() + * with the same arguments, no new link will be established, + * but instead, the connection identifier of the already + * opened connection will be + * returned. The new_link parameter modifies this + * behavior and makes cubrid_connect() always open + * a new connection, even if cubrid_connect() was called + * before with the same parameters. + *
+ * @return resource|false+ * a CUBRID connection identifier on success or false on failure. + *
+ */ +function cubrid_connect($host, $port, $dbname, $userid = 'PUBLIC', $passwd = '', $new_link = false) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)
+ * A character string that contains server connection information.
+ * Syntax: 'CUBRID:>host<:>port<:>dbname<:>username<:>password<:?>params<'.
+ * E.g. CUBRID:127.0.0.1:33088:demodb:dba:123456:?autocommit=off&althost=10.34.63.132:33088&rctime=100
+ *
+ * User name for the database. Default value is 'PUBLIC'. + *
+ * @param string $passwd [optional]+ * User password. Default value is empty string, i.e. no + * password is defined. + *
+ * @param bool $new_link [optional]+ * If a second call is made to cubrid_connect() + * with the same arguments, no new link will be established, + * but instead, the connection identifier of the already + * opened connection will be + * returned. The new_link parameter modifies this + * behavior and makes cubrid_connect() always open + * a new connection, even if cubrid_connect() was called + * before with the same parameters. + *
+ * @return resource|false+ * a CUBRID connection identifier on success or false on failure. + *
+ */ +function cubrid_connect_with_url($conn_url, $userid = 'PUBLIC', $passwd = '', $new_link = false) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * Host name or IP address of CUBRID CAS server. + *
+ * @param int $port+ * Port number of CUBRID CAS server (BROKER_PORT configured in + * $CUBRID/conf/cubrid_broker.conf). + *
+ * @param string $dbname+ * Name of database. + *
+ * @param string $userid [optional]+ * User name for the database. Default value is 'PUBLIC'. + *
+ * @param string $passwd [optional]+ * User password. Default value is empty string, i.e. no + * password is defined. + *
+ * @return resource|false+ * Connection identifier, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_pconnect($host, $port, $dbname, $userid = 'PUBLIC', $passwd = '') {} + +/** + * (PHP 5, CUBRID >= 8.3.1)
+ * A character string that contains server connection information.
+ * Syntax: 'CUBRID:>host<:>port<:>dbname<:>username<:>password<:?>params<'.
+ * E.g. CUBRID:127.0.0.1:33088:demodb:dba:123456:?autocommit=off&althost=10.34.63.132:33088&rctime=100
+ *
+ * User name for the database. Default value is 'PUBLIC'. + *
+ * @param string $passwd [optional]+ * User password. Default value is empty string, i.e. no + * password is defined. + *
+ * @return resource|false+ * Connection identifier, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_pconnect_with_url($conn_url, $userid = 'PUBLIC', $passwd = '') {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The CUBRID connection identifier. If the connection + * identifier is not specified, the last connection + * opened by cubrid_connect() is assumed. + *
+ * @return bool+ * TRUE, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_close($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @return bool Returns true on success or false on failure. + */ +function cubrid_disconnect($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * A SQL query. Data inside the query should be properly escaped. + *
+ * @param resource $conn_identifier [optional]+ * The CUBRID connection. If the connection identifier + * is not specified, the last connection opened by + * cubrid_connect() is assumed. + *
+ * @return resource|bool+ * The returned result resource should be passed to + * cubrid_fetch_array(), and other functions for dealing + * with result tables, to access the returned data. + *
+ *+ * Use cubrid_num_rows() to find out how many rows + * were returned for a SELECT statement. + *
+ *+ * Use cubrid_affected_rows() to find out how many + * rows were affected by a DELETE, INSERT, REPLACE, or UPDATE + * statement. + *
+ *+ * Connection identifier. + *
+ * @param string $sql+ * SQL to be executed. + *
+ * @param int $option [optional]+ * Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, + * CUBRID_EXEC_QUERY_ALL. + *
+ * @return resource|bool+ * Request identifier, when process is successful, + * or FALSE, when process is unsuccessful. + *
+ */ +function cubrid_execute($conn_identifier, $sql, $option = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * cubrid_prepare() identifier. + *
+ * @param int $option [optional]+ * Query execution option CUBRID_INCLUDE_OID, CUBRID_ASYNC, + * CUBRID_EXEC_QUERY_ALL. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_execute($request_identifier, $option = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier as a result of cubrid_prepare(). + *
+ * @param int $bind_index+ * Location of binding parameters. It starts with 1. + *
+ * @param mixed $bind_value+ * Actual value for binding. + *
+ * @param string $bind_value_type [optional]+ * A type of the value to bind. (It is omitted by default. Thus, system + * internally use string by default. However, you need to specify the + * exact type of the value as an argument when + * they are NCHAR, BIT, or BLOB/CLOB). + *
+ *+ * The following bind types are supported: + * "STRING", "NCHAR", "BIT", "NUMERIC", "NUMBER", "FLOAT", "DOUBLE", + * "TIME", "DATE", "TIMESTAMP", "OBJECT", "BLOB", "CLOB", "NULL". + *
+ * @return bool TRUE, when process is successful, otherwise FALSE. + */ +function cubrid_bind($req_identifier, $bind_index, $bind_value, $bind_value_type = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @return bool TRUE, when process is successful, otherwise FALSE. + */ +function cubrid_close_prepare($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @return bool TRUE, when process is successful, or FALSE. + */ +function cubrid_close_request($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to read. + *
+ * @param string $attr_name+ * Attribute name that you want to read from the instance. + *
+ * @return array+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to read. + *
+ * @param string $attr_name+ * Attribute name that you want to read from the instance. + *
+ * @return int+ * Number of elements, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_col_size($conn_identifier, $oid, $attr_name) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The SQL query to execute. + *
+ * @param resource $conn_identifier [optional]+ * The CUBRID connection. If the connection identifier is not + * specified, the last connection opened by cubrid_connect() is assumed. + *
+ * @return resource|bool+ * For SELECT, SHOW, DESCRIBE or EXPLAIN statements, + * cubrid_unbuffered_query() returns a resource on success, or false on + * error. + *
+ *+ * For other type of SQL statements, UPDATE, DELETE, DROP, etc, + * cubrid_unbuffered_query returns true on success + * or false on error. + *
+ */ +function cubrid_unbuffered_query($query, $conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The CUBRID connection. + *
+ * @return array+ * a numeric array with all existing CUBRID databases on success, + * or false on failure. + *
+ */ +function cubrid_list_dbs($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * The CUBRID connection. + *
+ * @return string+ * Error message that occurred. + *
+ */ +function cubrid_error($connection = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Error message that occurred. + *
+ */ +function cubrid_error_msg() {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * The CUBRID connection identifier. If the connection + * identifier is not specified, the last connection + * opened by cubrid_connect() is assumed. + *
+ * @return int+ * the error number from the last CUBRID function, or + * 0 (zero) if no error occurred. + *
+ */ +function cubrid_errno($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Error code of the error that occurred, or + * 0 (zero) if no error occurred. + *
+ */ +function cubrid_error_code() {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The CUBRID connection. If the connection identifier is not + * specified, the last link opened by cubrid_connect() is assumed. + *
+ * @return int+ * the number of affected rows on success, + * or -1, when SQL statement is not INSERT, DELETE or UPDATE, + * or FALSE, when the request identifier is not specified, + * and there is no last request. + *
+ */ +function cubrid_affected_rows($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The connection identifier previously obtained by a call + * to cubrid_connect(). + *
+ * @return string+ * A string representing the ID generated for an AUTO_INCREMENT column + * by the previous query, on success. 0, if the previous query does + * not generate new rows. FALSE on failure. + *
+ */ +function cubrid_insert_id($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The row number from the result that's being retrieved. Row numbers + * start at 0. + *
+ * @param mixed $field [optional]+ * The name or offset of the field being retrieved. + *
+ *+ * It can be the field's offset, the field's name, or the field's table + * dot field name (tablename.fieldname). If the column name has been + * aliased ('select foo as bar from...'), use the alias instead of the + * column name. If undefined, the first field is retrieved. + *
+ * @return string+ * Value of a specific field, on success (NULL if value if null). + * FALSE on failure. + *
+ */ +function cubrid_result($result, $row, $field = 0) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute(), + * cubrid_query() and cubrid_prepare() + *
+ * @return int+ * Number of rows, when process is successful. + * 0 when the query was done in async mode. + * -1, if SQL statement is not SELECT. + * FALSE when process is unsuccessful. + *
+ */ +function cubrid_num_rows($result) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Result. + *
+ * @return int+ * Number of columns, when process is successful. + * FALSE, if SQL statement is not SELECT. + *
+ */ +function cubrid_num_cols($result) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute(), + * cubrid_query() and cubrid_prepare() + *
+ * @return int+ * Number of columns, on success. + * -1 if SQL sentence is not SELECT. + * FALSE when process is unsuccessful. + *
+ */ +function cubrid_num_fields($result) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $type [optional]+ * Array type of the fetched result CUBRID_NUM, + * CUBRID_ASSOC, CUBRID_BOTH, CUBRID_OBJECT. If you want to + * operate the lob object, you can use CUBRID_LOB. + *
+ * @return mixed + *+ * The result can be received either as an array or as an object, + * and you can decide which data type to use by setting the type + * argument. The type variable can be set to one of the following + * values: + *
+ *+ * When type argument is omitted, the result will be received using + * CUBRID_BOTH option as default. When you want to receive query + * result in object data type, the column name of the result must + * obey the naming rules for identifiers in PHP. For example, + * column name such as "count(*)" cannot be received in object type. + *
+ */ +function cubrid_fetch($result, $type = CUBRID_BOTH) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $type+ * Type can only be CUBRID_LOB, this parameter will be + * used only when you need to operate the lob object. + *
+ * @return array+ * A numerical array, when process is successful. + * FALSE, when there are no more rows; + * NULL, when process is unsuccessful. + *
+ */ +function cubrid_fetch_row($result, $type = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The type of array that is to be fetched. It's a constant and can + * take the following values: CUBRID_ASSOC, CUBRID_NUM, and CUBRID_BOTH. + *
+ * @return array+ * Returns an array of strings that corresponds to the fetched row, + * when process is successful. + * FALSE, when there are no more rows; + * NULL, when process is unsuccessful. + *
+ *+ * The type of returned array depends on how result_type is defined. + * By using CUBRID_BOTH (default), you'll get an array with both + * associative and number indices, and you can decide which data + * type to use by setting the type argument. The type variable can + * be set to one of the following values: + *
+ *+ * result comes from a call to cubrid_execute() + *
+ * @param int $type [optional]+ * Type can only be CUBRID_LOB, this parameter will be used + * only when you need to operate the lob object. + *
+ * @return array+ * Associative array, when process is successful. + * FALSE, when there are no more rows; + * NULL, when process is unsuccessful. + *
+ */ +function cubrid_fetch_assoc($result, $type = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param string $class_name [optional]+ * The name of the class to instantiate. If not specified, + * a stdClass (stdClass is PHP's generic empty class that's + * used when casting other types to objects) object is returned. + *
+ * @param array $params [optional]+ * An optional array of parameters to pass to the constructor + * for class_name objects. + *
+ * @param int $type [optional]+ * Type can only be CUBRID_LOB, this parameter will be used + * only when you need to operate the lob object. + *
+ * @return object+ * an object with string properties + * that correspond to the fetched row, or false if there + * are no more rows, or NULL, when process is unsuccessful. + *
+ */ +function cubrid_fetch_object($result, $class_name = null, $params = null, $type = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The result. + *
+ * @param int $row_number+ * The desired row number of the new result pointer. + *
+ * @return bool+ * Returns TRUE on success or FALSE on failure. + *
+ */ +function cubrid_data_seek($result, $row_number) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @return array+ * A numerical array of lengths on success, + * or false on failure. + *
+ */ +function cubrid_fetch_lengths($result) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset [optional]+ * The numerical field offset. If the field offset is not specified, the + * next field that was not yet retrieved by this function is retrieved. + * The field_offset starts at 0. + *
+ * @return object+ * an object containing field information. The properties + * of the object are: + *
+ *+ * Request identifier. + *
+ * @return array+ * Array of string which containing column names, + * when process is successful. FALSE, when process is unsuccessful. + *
+ */ +function cubrid_column_names($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @return array+ * Array of string which containing column types, + * when process is successful. FALSE, when process is unsuccessful. + *
+ */ +function cubrid_column_types($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The numerical field offset. The field_offset starts at 0. + * If field_offset does not exist, an error of level + * E_WARNING is also issued. + *
+ * @return bool+ * Returns true on success or false on failure. + *
+ */ +function cubrid_field_seek($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @return bool+ * Returns true on success or false on failure. + *
+ *+ * Note that it can only free the client fetch buffer now, + * and if you want to free all the memory, use function + * cubrid_close_request(). + *
+ */ +function cubrid_free_result($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The field_offset starts at 0. If field_offset does not exist, + * an error of level E_WARNING is also issued. + *
+ * @return string+ * The name of the specified field index on + * success or false on failure. + *
+ */ +function cubrid_field_name($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The field_offset starts at 0. If field_offset does not exist, + * an error of level E_WARNING is also issued. + *
+ * @return string+ * The name of the table on success, + * FALSE when field_offset value is invalid, or + * -1 if SQL sentence is not SELECT. + *
+ */ +function cubrid_field_table($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The field_offset starts at 0. If field_offset does not exist, + * an error of level E_WARNING is also issued. + *
+ * @return int+ * Maximum length, when process is successful. FALSE on failure. + *
+ */ +function cubrid_field_len($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The field_offset starts at 0. If field_offset does not exist, + * an error of level E_WARNING is also issued. + *
+ * @return string+ * On success the returned field type will be one of + * "int", "real", "string", "blob", and others as + * detailed in the CUBRID documentation. Otherwise, FALSE + * when invalid field_offset value, or -1 if SQL sentence + * is not SELECT. + *
+ */ +function cubrid_field_type($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * result comes from a call to cubrid_execute() + *
+ * @param int $field_offset+ * The numerical field offset. The field_offset starts at 0. + * If field_offset does not exist, an error of level + * E_WARNING is also issued. + *
+ * @return string+ * a string of flags associated with the result, + * or FALSE when invalid field_offset value, or -1 if SQL sentence + * is not SELECT. + *
+ *+ * The following flags are reported, if your version of CUBRID + * is current enough to support them: "not_null", "primary_key", + * "unique_key", "foreign_key", "auto_increment", "shared", + * "reverse_index", "reverse_unique", and "timestamp". + *
+ */ +function cubrid_field_flags($result, $field_offset) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The string that is to be escaped. + *
+ * @param resource $conn_identifier [optional]+ * The CUBRID connection. If the connection identifier is not + * specified, the last connection opened by cubrid_connect() is assumed. + *
+ * @return string+ * Escaped string version of the given string, on success. + * FALSE on failure. + *
+ */ +function cubrid_real_escape_string($unescaped_string, $conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * The CUBRID connection. If the connection identifier is not + * specified, the last link opened by cubrid_connect() is assumed. + *
+ * @return string+ * A string that represents the CUBRID connection charset; on success. + * FALSE on failure. + *
+ */ +function cubrid_client_encoding($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * The CUBRID connection identifier. If the connection identifier + * is not specified, the last connection opened by + * cubrid_connect() is assumed. + *
+ * @return bool+ * true if the connection to the server is working, + * otherwise false. + *
+ */ +function cubrid_ping($conn_identifier = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * A string that represents the client library version; on success. + * FALSE on failure. + *
+ */ +function cubrid_get_client_info() {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * A string that represents the CUBRID server version; on success. + * FALSE on failure. + *
+ */ +function cubrid_get_server_info($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @return array+ * An associative array with CUBRID database parameters; on success. + * FALSE on failure. + *
+ */ +function cubrid_get_db_parameter($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.0)+ * Connection identifier. + *
+ * @return bool+ * TRUE, if autocommit is set to true. FALSE otherwise. + * NULL on error. + *
+ */ +function cubrid_get_autocommit($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @return string+ * A string that represents the CUBRID connection charset; on success. + * FALSE on failure. + *
+ */ +function cubrid_get_charset($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.0)+ * Connection identifier. + *
+ * @param bool $mode+ * Auto-commit mode. The following constants can be used: + * CUBRID_AUTOCOMMIT_FALSE, CUBRID_AUTOCOMMIT_TRUE + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_set_autocommit($conn_identifier, $mode) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * The result pointer from a call to cubrid_list_dbs. + *
+ * @param int $index+ * The index into the result set. + *
+ * @return string+ * the database name on success, and false on failure. If false + * is returned, use cubrid_error() to determine the nature + * of the error. + *
+ */ +function cubrid_db_name($result, $index) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * The CUBRID connection. If the connection identifier is not specified, + * the last link opened by cubrid_connect() is assumed. + *
+ * @return array+ * An associative array with CUBRID database + * parameters; on success. FALSE on failure. + *
+ */ +function cubrid_db_parameter($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.0)+ * The CUBRID connection. If the connection identifier is not specified, + * the last link opened by cubrid_connect() is assumed. + *
+ * @param int $param_type+ * Database parameter type. Can be PARAM_ISOLATION_LEVEL, + * or PARAM_LOCK_TIMEOUT. + *
+ * @param int $param_value+ * Isolation level value (1-6) or lock timeout (in seconds) value. + *
+ * @return bool+ * TRUE on success. FALSE on failure. + *
+ */ +function cubrid_set_db_parameter($conn_identifier, $param_type, $param_value) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Request identifier. + *
+ * @return int+ * Success: the query timeout value of the current request. + * Units of msec. Failure: FALSE + *
+ */ +function cubrid_get_query_timeout($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Request identifier. + *
+ * @param int $timeout+ * Timeout time, unit of msec. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_set_query_timeout($req_identifier, $timeout) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to check the existence. + * To get the current OID of the request, use + * cubrid_current_oid() function. + *
+ * @return string+ * Class name when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_get_class_name($conn_identifier, $oid) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to read. + * To get the current OID of the request, use + * cubrid_current_oid() function. + *
+ * @param mixed $attr [optional]+ * Name of the attribute that you want to read. + *
+ * @return mixed+ * Content of the requested attribute, + * when process is successful; When attr is set with string + * data type, the result is returned as a string; when attr is + * set with array data type (0-based numerical array), then the + * result is returned in associative array. When attr is omitted, + * then all attributes are received in array form. + *
+ *+ * FALSE when process is unsuccessful or result is NULL + * (If error occurs to distinguish empty string from NULL, + * then it prints the warning message. You can check the + * error by using cubrid_error_code()). + *
+ */ +function cubrid_get($conn_identifier, $oid, $attr = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to check the existence. + * To get the current OID of the request, use + * cubrid_current_oid() function. + *
+ * @return int+ * 1, if such instance exists; 0, if such instance + * does not exist; -1, in case of error + *
+ */ +function cubrid_is_instance($conn_identifier, $oid) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_commit($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_rollback($conn_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @return string+ * OID of current cursor location, when process + * is successful. FALSE, when process is unsuccessful. + *
+ */ +function cubrid_current_oid($req_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to delete. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_drop($conn_identifier, $oid) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Facility code of the error code that occurred: + * CUBRID_FACILITY_DBMS, CUBRID_FACILITY_CAS, + * CUBRID_FACILITY_CCI, CUBRID_FACILITY_CLIENT + *
+ */ +function cubrid_error_code_facility() {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * LOB identifier array return from cubrid_lob_get(). + *
+ * @return bool+ * TRUE, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_lob_close($lob_identifier_array) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * Connection identifier. + *
+ * @param resource $lob_identifier+ * LOB identifier. + *
+ * @param string $path_name+ * Path name of the file. + *
+ * @return bool+ * TRUE, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_lob_export($conn_identifier, $lob_identifier, $path_name) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * Connection identifier. + *
+ * @param string $sql+ * SQL statement to be executed. + *
+ * @return array+ * Return an array of LOB resources, when process + * is successful. FALSE, when process is unsuccessful. + *
+ */ +function cubrid_lob_get($conn_identifier, $sql) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * Connection identifier. + *
+ * @param resource $lob_identifier+ * LOB identifier. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_lob_send($conn_identifier, $lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.1)+ * LOB identifier. + *
+ * @return string+ * A string representing LOB data size, when + * process is successful. FALSE, when process is unsuccessful. + *
+ */ +function cubrid_lob_size($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Reqeust identifier. + *
+ * @param int $bind_index+ * Location of binding parameters. It starts with 1. + *
+ * @param mixed $bind_value+ * Actual value for binding. + *
+ * @param string $bind_value_type [optional]+ * It must be "BLOB" or "CLOB" and it won't be case-sensitive. + * If it not be given, the default value is "BLOB". + *
+ * @return bool+ * TRUE, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_lob2_bind($req_identifier, $bind_index, $bind_value, $bind_value_type = null) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() + * or get from the result set. + *
+ * @return bool+ * TRUE, on success. + * FALSE, on failure. + *
+ */ +function cubrid_lob2_close($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @param string $file_name+ * File name you want to store BLOB/CLOB data. + * It also supports the path of the file. + *
+ * @return bool+ * TRUE if the process is successful and FALSE for failure. + *
+ */ +function cubrid_lob2_export($lob_identifier, $file_name) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @param string $file_name+ * File name you want to import BLOB/CLOB data. + * It also supports the path of the file. + *
+ * @return bool+ * TRUE if the process is successful and FALSE for failure. + *
+ */ +function cubrid_lob2_import($lob_identifier, $file_name) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Connection identifier. If the connection identifier is + * not specified, the last connection opened by + * cubrid_connect() or cubrid_connect_with_url() is assumed. + *
+ * @param string $type [optional]+ * It may be "BLOB" or "CLOB", it won't be case-sensitive. + * The default value is "BLOB". + *
+ * @return resource|false+ * Lob identifier when it is successful. FALSE on failure. + *
+ */ +function cubrid_lob2_new($conn_identifier = null, $type = "BLOB") {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @param int $len+ * Length from buffer you want to read from the lob data. + *
+ * @return string+ * Returns the contents as a string. + * FALSE when there is no more data. + * NULL on failure. + *
+ */ +function cubrid_lob2_read($lob_identifier, $len) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @param string $offset+ * Number of units you want to move the cursor. + *
+ * @param int $origin [optional]+ * This parameter can be the following values: + *
+ *+ * TRUE if the process is successful and FALSE for failure. + *
+ */ +function cubrid_lob2_seek64($lob_identifier, $offset, $origin = CUBRID_CURSOR_CURRENT) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @param int $offset+ * Number of units you want to move the cursor. + *
+ * @param int $origin [optional]+ * This parameter can be the following values: + *
+ *+ * TRUE if the process is successful and FALSE for failure. + *
+ */ +function cubrid_lob2_seek($lob_identifier, $offset, $origin = CUBRID_CURSOR_CURRENT) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @return string+ * It will return the size of the LOB object as a string + * when it processes successfully. FALSE on failure. + *
+ */ +function cubrid_lob2_size64($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @return int+ * It will return the size of the LOB object as a string + * when it processes successfully. FALSE on failure. + *
+ */ +function cubrid_lob2_size($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @return string+ * It will return the cursor position on the LOB object as a + * string when it processes successfully. FALSE on failure. + *
+ */ +function cubrid_lob2_tell64($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.4.1)+ * Lob identifier as a result of cubrid_lob2_new() or get + * from the result set. + *
+ * @return int+ * It will return the cursor position on the LOB object as a + * string when it processes successfully. FALSE on failure. + *
+ */ +function cubrid_lob2_tell($lob_identifier) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to put read lock on. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_lock_read($conn_identifier, $oid) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to put write lock on. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_lock_write($conn_identifier, $oid) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Request identifier. + *
+ * @param int $offset+ * Number of units you want to move the cursor. + *
+ * @param int $origin [optional]+ * Location where you want to move the cursor from + * CUBRID_CURSOR_FIRST, CUBRID_CURSOR_CURRENT, CUBRID_CURSOR_LAST. + *
+ * @return int+ * CUBRID_CURSOR_SUCCESS, when process is successful. + * CUBRID_NO_MORE_DATA, when it is not a valid cursor location. + * CUBRID_CURSOR_ERROR, in case of error. + *
+ */ +function cubrid_move_cursor($req_identifier, $offset, $origin = CUBRID_CURSOR_CURRENT) {} + +/** + * (PHP 5, CUBRID >= 8.4.0)+ * result comes from a call to cubrid_execute(). + *
+ * @return bool+ * TRUE, when process is successful. FALSE, when + * process is unsuccessful. + *
+ */ +function cubrid_next_result($result) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $prepare_stmt+ * Prepare query. + *
+ * @param int $option [optional]+ * OID return option CUBRID_INCLUDE_OID. + *
+ * @return resource|false+ * Request identifier, if process is successful; + * FALSE, if process is unsuccessful. + *
+ */ +function cubrid_prepare($conn_identifier, $prepare_stmt, $option = 0) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance that you want to update. + *
+ * @param string $attr [optional]+ * Name of the attribute that you want to update. + *
+ * @param mixed $value+ * New value that you want to assign to the attribute. + *
+ * @return bool+ * TRUE, when process is successful. + * FALSE, when process is unsuccessful. + *
+ */ +function cubrid_put($conn_identifier, $oid, $attr = null, $value) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param int $schema_type+ * Schema data that you want to know. + *
+ * @param string $class_name [optional]+ * Table you want to know the schema of. + *
+ * @param string $attr_name [optional]+ * Attribute you want to know the schema of. + *
+ * @return array+ * Array containing the schema information, + * when process is successful; FALSE, when process is + * unsuccessful. + *
+ */ +function cubrid_schema($conn_identifier, $schema_type, $class_name = null, $attr_name = null) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute that you want to delete an element from. + *
+ * @param int $index+ * Index of the element that you want to delete (1-based). + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_seq_drop($conn_identifier, $oid, $attr_name, $index) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute you want to insert an instance to. + *
+ * @param int $index+ * Location of the element, you want to insert the element to (1-based). + *
+ * @param string $seq_element+ * Content of the element that you want to insert. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_seq_insert($conn_identifier, $oid, $attr_name, $index, $seq_element) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute that you want to update an element. + *
+ * @param int $index+ * Index of the element that you want to delete (1-based). + *
+ * @param string $seq_element+ * New content that you want to use for the update. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_seq_put($conn_identifier, $oid, $attr_name, $index, $seq_element) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute you want to insert an element. + *
+ * @param string $seq_element+ * Content of the element that you want to insert. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_seq_add($conn_identifier, $oid, $attr_name, $seq_element) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute you want to insert an element. + *
+ * @param string $set_element+ * Content of the element you want to insert. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_set_add($conn_identifier, $oid, $attr_name, $set_element) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Connection identifier. + *
+ * @param string $oid+ * OID of the instance you want to work with. + *
+ * @param string $attr_name+ * Name of the attribute you want to delete an element from. + *
+ * @param string $set_element+ * Content of the element you want to delete. + *
+ * @return bool+ * TRUE, when process is successful. FALSE, + * when process is unsuccessful. + *
+ */ +function cubrid_set_drop($conn_identifier, $oid, $attr_name, $set_element) {} + +/** + * (PHP 5, CUBRID >= 8.3.0)+ * Version information (eg. "8.4.1.0001"). + *
+ */ +function cubrid_version() {} + +/** + * (PHP 5, CUBRID >= 8.4.0)+ * LOB identifier obtained by cubrid_lob2_new() or cubrid_lob2_import(). + *
+ * @param string $buf+ * The string to be written into the LOB. + *
+ * @return bool+ * Returns true on success, false on failure. + *
+ */ +function cubrid_lob2_write($lob_identifier, string $buf): bool {} + +/** + * Columns are returned into the array having a numerical index to the + * fields. This index starts with 0, the first field in the result. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_NUM', 1); + +/** + * Columns are returned into the array having the fieldname as the array + * index. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_ASSOC', 2); + +/** + * Columns are returned into the array having both a numerical index + * and the fieldname as the array index. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_BOTH', 3); + +/** + * Get query result as an object. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_OBJECT', 4); + +/** + * Determine whether to get OID during query execution. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_INCLUDE_OID', 1); + +/** + * Execute the query in asynchronous mode. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_ASYNC', 2); + +/** + * Execute the query in synchronous mode. + * This flag must be set when executing multiple SQL statements. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_EXEC_QUERY_ALL', 4); + +/** + * Returned value of cubrid_move_cursor() function + * in case of success. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_CURSOR_SUCCESS', 1); + +/** + * Returned value of cubrid_move_cursor() function in case + * of failure. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_NO_MORE_DATA', 0); + +/** + * Returned value of cubrid_move_cursor() function in case + * of failure. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_CURSOR_ERROR', -1); + +/** + * Enable the auto-commit mode. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_AUTOCOMMIT_TRUE', 1); + +/** + * Disable the auto-commit mode. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_AUTOCOMMIT_FALSE', 0); + +/** + * Move current cursor to the first position in the result. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_CURSOR_FIRST', 0); + +/** + * Move current cursor as a default value if the origin is + * not specified. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_CURSOR_CURRENT', 1); + +/** + * Move current cursor to the last position in the result. + * @link https://php.net/manual/en/cubrid.constants.php + */ +define('CUBRID_CURSOR_LAST', 2); + +// End of cubrid v.1.0 diff --git a/phpstorm-stubs/curl/CURLStringFile.php b/phpstorm-stubs/curl/CURLStringFile.php new file mode 100644 index 0000000..ea6d7b5 --- /dev/null +++ b/phpstorm-stubs/curl/CURLStringFile.php @@ -0,0 +1,13 @@ + 'string'], default: '')] + public $name; + + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $mime; + + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $postname; + + /** + * Create a CURLFile object + * @link https://secure.php.net/manual/en/curlfile.construct.php + * @param string $filenamePath to the file which will be uploaded.
+ * @param string $mime_type [optional]Mimetype of the file.
+ * @param string $posted_filename [optional]Name of the file.
+ * @since 5.5 + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $mime_type = null, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $posted_filename = null + ) {} + + /** + * Get file name + * @link https://secure.php.net/manual/en/curlfile.getfilename.php + * @return string Returns file name. + * @since 5.5 + */ + #[Pure] + #[TentativeType] + public function getFilename(): string {} + + /** + * Get MIME type + * @link https://secure.php.net/manual/en/curlfile.getmimetype.php + * @return string Returns MIME type. + * @since 5.5 + */ + #[Pure] + #[TentativeType] + public function getMimeType(): string {} + + /** + * Get file name for POST + * @link https://secure.php.net/manual/en/curlfile.getpostfilename.php + * @return string Returns file name for POST. + * @since 5.5 + */ + #[Pure] + #[TentativeType] + public function getPostFilename(): string {} + + /** + * Set MIME type + * @link https://secure.php.net/manual/en/curlfile.setmimetype.php + * @param string $mime_type + * @since 5.5 + */ + #[TentativeType] + public function setMimeType(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $mime_type): void {} + + /** + * Set file name for POST + * https://secure.php.net/manual/en/curlfile.setpostfilename.php + * @param string $posted_filename + * @since 5.5 + */ + #[TentativeType] + public function setPostFilename(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $posted_filename): void {} + + /** + * @link https://secure.php.net/manual/en/curlfile.wakeup.php + * Unserialization handler + * @since 5.5 + */ + public function __wakeup() {} +} + +/** + * Initialize a cURL session + * @link https://php.net/manual/en/function.curl-init.php + * @param string|null $url [optional]+ * If provided, the CURLOPT_URL option will be set + * to its value. You can manually set this using the + * curl_setopt function. + *
+ * @return resource|false|CurlHandle a cURL handle on success, false on errors. + */ +#[LanguageLevelTypeAware(['8.0' => 'CurlHandle|false'], default: 'resource|false')] +function curl_init(?string $url) {} + +/** + * Copy a cURL handle along with all of its preferences + * @link https://php.net/manual/en/function.curl-copy-handle.php + * @param CurlHandle|resource $handle + * @return CurlHandle|resource|false a new cURL handle. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.0' => 'CurlHandle|false'], default: 'resource|false')] +function curl_copy_handle(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle) {} + +/** + * Gets cURL version information + * @link https://php.net/manual/en/function.curl-version.php + * @param int $age [optional] Removed since version PHP 8.0. + * @return array|false an associative array with the following elements: + *+ * The CURLOPT_XXX option to set. + *
+ * @param mixed|callable $value+ * The value to be set on option. + *
+ *+ * value should be a bool for the + * following values of the option parameter:
+ *| Option | + *Set value to | + *Notes | + *
|---|---|---|
| CURLOPT_AUTOREFERER | + *+ * TRUE to automatically set the Referer: field in + * requests where it follows a Location: redirect. + * | + *+ * | + *
| CURLOPT_BINARYTRANSFER | + *+ * TRUE to return the raw output when + * CURLOPT_RETURNTRANSFER is used. + * | + *+ * From PHP 5.1.3, this option has no effect: the raw output will + * always be returned when + * CURLOPT_RETURNTRANSFER is used. + * | + *
| CURLOPT_COOKIESESSION | + *+ * TRUE to mark this as a new cookie "session". It will force libcurl + * to ignore all cookies it is about to load that are "session cookies" + * from the previous session. By default, libcurl always stores and + * loads all cookies, independent if they are session cookies or not. + * Session cookies are cookies without expiry date and they are meant + * to be alive and existing for this "session" only. + * | + *+ * | + *
| CURLOPT_CERTINFO | + *+ * TRUE to output SSL certification information to STDERR + * on secure transfers. + * | + *+ * Added in cURL 7.19.1. + * Available since PHP 5.3.2. + * Requires CURLOPT_VERBOSE to be on to have an effect. + * | + *
| CURLOPT_CONNECT_ONLY | + *+ * TRUE tells the library to perform all the required proxy authentication + * and connection setup, but no data transfer. This option is implemented for + * HTTP, SMTP and POP3. + * | + *+ * Added in 7.15.2. + * Available since PHP 5.5.0. + * | + *
| CURLOPT_CRLF | + *+ * TRUE to convert Unix newlines to CRLF newlines + * on transfers. + * | + *+ * | + *
| CURLOPT_DNS_USE_GLOBAL_CACHE | + *+ * TRUE to use a global DNS cache. This option is + * not thread-safe and is enabled by default. + * | + *+ * | + *
| CURLOPT_FAILONERROR | + *+ * TRUE to fail verbosely if the HTTP code returned + * is greater than or equal to 400. The default behavior is to return + * the page normally, ignoring the code. + * | + *+ * | + *
| CURLOPT_FILETIME | + *+ * TRUE to attempt to retrieve the modification + * date of the remote document. This value can be retrieved using + * the CURLINFO_FILETIME option with + * {@see curl_getinfo()}. + * | + *+ * | + *
| CURLOPT_FOLLOWLOCATION | + *+ * TRUE to follow any + * "Location: " header that the server sends as + * part of the HTTP header (note this is recursive, PHP will follow as + * many "Location: " headers that it is sent, + * unless CURLOPT_MAXREDIRS is set). + * | + *+ * | + *
| CURLOPT_FORBID_REUSE | + *+ * TRUE to force the connection to explicitly + * close when it has finished processing, and not be pooled for reuse. + * | + *+ * | + *
| CURLOPT_FRESH_CONNECT | + *+ * TRUE to force the use of a new connection + * instead of a cached one. + * | + *+ * | + *
| CURLOPT_FTP_USE_EPRT | + *+ * TRUE to use EPRT (and LPRT) when doing active + * FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT + * only. + * | + *+ * | + *
| CURLOPT_FTP_USE_EPSV | + *+ * TRUE to first try an EPSV command for FTP + * transfers before reverting back to PASV. Set to FALSE + * to disable EPSV. + * | + *+ * | + *
| CURLOPT_FTP_CREATE_MISSING_DIRS | + *+ * TRUE to create missing directories when an FTP operation + * encounters a path that currently doesn't exist. + * | + *+ * | + *
| CURLOPT_FTPAPPEND | + *+ * TRUE to append to the remote file instead of + * overwriting it. + * | + *+ * | + *
| CURLOPT_TCP_NODELAY | + *+ * TRUE to disable TCP's Nagle algorithm, which tries to minimize + * the number of small packets on the network. + * | + *+ * Available since PHP 5.2.1 for versions compiled with libcurl 7.11.2 or + * greater. + * | + *
| CURLOPT_FTPASCII | + *+ * An alias of + * CURLOPT_TRANSFERTEXT. Use that instead. + * | + *+ * | + *
| CURLOPT_FTPLISTONLY | + *+ * TRUE to only list the names of an FTP + * directory. + * | + *+ * | + *
| CURLOPT_HEADER | + *+ * TRUE to include the header in the output. + * | + *+ * | + *
| CURLINFO_HEADER_OUT | + *+ * TRUE to track the handle's request string. + * | + *+ * Available since PHP 5.1.3. The CURLINFO_ + * prefix is intentional. + * | + *
| CURLOPT_HTTPGET | + *+ * TRUE to reset the HTTP request method to GET. + * Since GET is the default, this is only necessary if the request + * method has been changed. + * | + *+ * | + *
| CURLOPT_HTTPPROXYTUNNEL | + *+ * TRUE to tunnel through a given HTTP proxy. + * | + *+ * | + *
| CURLOPT_MUTE | + *+ * TRUE to be completely silent with regards to + * the cURL functions. + * | + *+ * Removed in cURL 7.15.5 (You can use CURLOPT_RETURNTRANSFER instead) + * | + *
| CURLOPT_NETRC | + *+ * TRUE to scan the ~/.netrc + * file to find a username and password for the remote site that + * a connection is being established with. + * | + *+ * | + *
| CURLOPT_NOBODY | + *+ * TRUE to exclude the body from the output. + * Request method is then set to HEAD. Changing this to FALSE does + * not change it to GET. + * | + *+ * | + *
| CURLOPT_NOPROGRESS | + *+ * TRUE to disable the progress meter for cURL transfers. + * + * |
+ * + * | + *
| CURLOPT_NOSIGNAL | + *+ * TRUE to ignore any cURL function that causes a + * signal to be sent to the PHP process. This is turned on by default + * in multi-threaded SAPIs so timeout options can still be used. + * | + *+ * Added in cURL 7.10. + * | + *
| CURLOPT_POST | + *+ * TRUE to do a regular HTTP POST. This POST is the + * normal application/x-www-form-urlencoded kind, + * most commonly used by HTML forms. + * | + *+ * | + *
| CURLOPT_PUT | + *+ * TRUE to HTTP PUT a file. The file to PUT must + * be set with CURLOPT_INFILE and + * CURLOPT_INFILESIZE. + * | + *+ * | + *
| CURLOPT_RETURNTRANSFER | + *+ * TRUE to return the transfer as a string of the + * return value of {@see curl_exec()} instead of outputting + * it out directly. + * | + *+ * | + *
| CURLOPT_SAFE_UPLOAD | + *+ * TRUE to disable support for the @ prefix for + * uploading files in CURLOPT_POSTFIELDS, which + * means that values starting with @ can be safely + * passed as fields. {@see CURLFile} may be used for + * uploads instead. + * | + *+ * Added in PHP 5.5.0 with FALSE as the default value. PHP 5.6.0 + * changes the default value to TRUE. + * | + *
| CURLOPT_SSL_VERIFYPEER | + *+ * FALSE to stop cURL from verifying the peer's + * certificate. Alternate certificates to verify against can be + * specified with the CURLOPT_CAINFO option + * or a certificate directory can be specified with the + * CURLOPT_CAPATH option. + * | + *+ * TRUE by default as of cURL 7.10. Default bundle installed as of + * cURL 7.10. + * | + *
| CURLOPT_TRANSFERTEXT | + *+ * TRUE to use ASCII mode for FTP transfers. + * For LDAP, it retrieves data in plain text instead of HTML. On + * Windows systems, it will not set STDOUT to binary + * mode. + * | + *+ * | + *
| CURLOPT_UNRESTRICTED_AUTH | + *+ * TRUE to keep sending the username and password + * when following locations (using + * CURLOPT_FOLLOWLOCATION), even when the + * hostname has changed. + * | + *+ * | + *
| CURLOPT_UPLOAD | + *+ * TRUE to prepare for an upload. + * | + *+ * | + *
| CURLOPT_VERBOSE | + *+ * TRUE to output verbose information. Writes + * output to STDERR, or the file specified using + * CURLOPT_STDERR. + * | + *+ * | + *
| Option | + *Set value to | + *Notes | + *
|---|---|---|
| CURLOPT_BUFFERSIZE | + *+ * The size of the buffer to use for each read. There is no guarantee + * this request will be fulfilled, however. + * | + *+ * Added in cURL 7.10. + * | + *
| CURLOPT_CLOSEPOLICY | + *
+ * One of the CURLCLOSEPOLICY_* values.
+ * + * |
+ * + * Removed in PHP 5.6.0. + * | + *
| CURLOPT_CONNECTTIMEOUT | + *+ * The number of seconds to wait while trying to connect. Use 0 to + * wait indefinitely. + * | + *+ * | + *
| CURLOPT_CONNECTTIMEOUT_MS | + *+ * The number of milliseconds to wait while trying to connect. Use 0 to + * wait indefinitely. + * + * If libcurl is built to use the standard system name resolver, that + * portion of the connect will still use full-second resolution for + * timeouts with a minimum timeout allowed of one second. + * | + *+ * Added in cURL 7.16.2. Available since PHP 5.2.3. + * | + *
| CURLOPT_DNS_CACHE_TIMEOUT | + *+ * The number of seconds to keep DNS entries in memory. This + * option is set to 120 (2 minutes) by default. + * | + *+ * | + *
| CURLOPT_FTPSSLAUTH | + *+ * The FTP authentication method (when is activated): + * CURLFTPAUTH_SSL (try SSL first), + * CURLFTPAUTH_TLS (try TLS first), or + * CURLFTPAUTH_DEFAULT (let cURL decide). + * | + *+ * Added in cURL 7.12.2. + * | + *
| CURLOPT_HTTP_VERSION | + *
+ * CURL_HTTP_VERSION_NONE (default, lets CURL
+ * decide which version to use),
+ * CURL_HTTP_VERSION_1_0 (forces HTTP/1.0),
+ * or CURL_HTTP_VERSION_1_1 (forces HTTP/1.1).
+ * |
+ * + * | + *
| CURLOPT_HTTPAUTH | + *
+ *
+ * The HTTP authentication method(s) to use. The options are:
+ * + * The bitwise | (or) operator can be used to combine + * more than one method. If this is done, cURL will poll the server to see + * what methods it supports and pick the best one. + * + *
+ *
+ * |
+ * + * | + *
| CURLOPT_INFILESIZE | + *+ * The expected size, in bytes, of the file when uploading a file to + * a remote site. Note that using this option will not stop libcurl + * from sending more data, as exactly what is sent depends on + * CURLOPT_READFUNCTION. + * | + *+ * | + *
| CURLOPT_LOW_SPEED_LIMIT | + *+ * The transfer speed, in bytes per second, that the transfer should be + * below during the count of CURLOPT_LOW_SPEED_TIME + * seconds before PHP considers the transfer too slow and aborts. + * | + *+ * | + *
| CURLOPT_LOW_SPEED_TIME | + *+ * The number of seconds the transfer speed should be below + * CURLOPT_LOW_SPEED_LIMIT before PHP considers + * the transfer too slow and aborts. + * | + *+ * | + *
| CURLOPT_MAXCONNECTS | + *+ * The maximum amount of persistent connections that are allowed. + * When the limit is reached, + * CURLOPT_CLOSEPOLICY is used to determine + * which connection to close. + * | + *+ * | + *
| CURLOPT_MAXREDIRS | + *+ * The maximum amount of HTTP redirections to follow. Use this option + * alongside CURLOPT_FOLLOWLOCATION. + * | + *+ * | + *
| CURLOPT_PORT | + *+ * An alternative port number to connect to. + * | + *+ * | + *
| CURLOPT_POSTREDIR | + *+ * A bitmask of 1 (301 Moved Permanently), 2 (302 Found) + * vand 4 (303 See Other) if the HTTP POST method should be maintained + * when CURLOPT_FOLLOWLOCATION is set and a + * specific type of redirect occurs. + * | + *+ * Added in cURL 7.19.1. Available since PHP 5.3.2. + * | + *
| CURLOPT_PROTOCOLS | + *
+ * + * Bitmask of CURLPROTO_* values. If used, this bitmask + * limits what protocols libcurl may use in the transfer. This allows you to have + * a libcurl built to support a wide range of protocols but still limit specific + * transfers to only be allowed to use a subset of them. By default libcurl will + * accept all protocols it supports. + * See also CURLOPT_REDIR_PROTOCOLS. + * + *
+ * Valid protocol options are:
+ * |
+ * + * Added in cURL 7.19.4. + * | + *
| CURLOPT_PROXYAUTH | + *
+ * The HTTP authentication method(s) to use for the proxy connection.
+ * Use the same bitmasks as described in
+ * CURLOPT_HTTPAUTH. For proxy authentication,
+ * only CURLAUTH_BASIC and
+ * CURLAUTH_NTLM are currently supported.
+ * |
+ * + * Added in cURL 7.10.7. + * | + *
| CURLOPT_PROXYPORT | + *+ * The port number of the proxy to connect to. This port number can + * also be set in CURLOPT_PROXY. + * | + *+ * | + *
| CURLOPT_PROXYTYPE | + *+ * Either CURLPROXY_HTTP (default), + * CURLPROXY_SOCKS4, + * CURLPROXY_SOCKS5, + * CURLPROXY_SOCKS4A or + * CURLPROXY_SOCKS5_HOSTNAME. + * | + *+ * Added in cURL 7.10. + * | + *
| CURLOPT_REDIR_PROTOCOLS | + *+ * Bitmask of CURLPROTO_* values. If used, this bitmask + * limits what protocols libcurl may use in a transfer that it follows to in + * a redirect when CURLOPT_FOLLOWLOCATION is enabled. + * This allows you to limit specific transfers to only be allowed to use a subset + * of protocols in redirections. By default libcurl will allow all protocols + * except for FILE and SCP. This is a difference compared to pre-7.19.4 versions + * which unconditionally would follow to all protocols supported. + * See also CURLOPT_PROTOCOLS for protocol constant values. + * | + *+ * Added in cURL 7.19.4. + * | + *
| CURLOPT_RESUME_FROM | + *+ * The offset, in bytes, to resume a transfer from. + * | + *+ * | + *
| CURLOPT_SSL_VERIFYHOST | + *+ * 1 to check the existence of a common name in the + * SSL peer certificate. 2 to check the existence of + * a common name and also verify that it matches the hostname + * provided. In production environments the value of this option + * should be kept at 2 (default value). + * | + *+ * Support for value 1 removed in cURL 7.28.1 + * | + *
| CURLOPT_SSLVERSION | + *
+ * One of CURL_SSLVERSION_DEFAULT (0),
+ * CURL_SSLVERSION_TLSv1 (1),
+ * CURL_SSLVERSION_SSLv2 (2),
+ * CURL_SSLVERSION_SSLv3 (3),
+ * CURL_SSLVERSION_TLSv1_0 (4),
+ * CURL_SSLVERSION_TLSv1_1 (5) or
+ * CURL_SSLVERSION_TLSv1_2 (6).
+ * + * |
+ * + * | + *
| CURLOPT_TIMECONDITION | + *
+ * How CURLOPT_TIMEVALUE is treated.
+ * Use CURL_TIMECOND_IFMODSINCE to return the
+ * page only if it has been modified since the time specified in
+ * CURLOPT_TIMEVALUE. If it hasn't been modified,
+ * a "304 Not Modified" header will be returned
+ * assuming CURLOPT_HEADER is TRUE.
+ * Use CURL_TIMECOND_IFUNMODSINCE for the reverse
+ * effect. CURL_TIMECOND_IFMODSINCE is the
+ * default.
+ * |
+ * + * | + *
| CURLOPT_TIMEOUT | + *+ * The maximum number of seconds to allow cURL functions to execute. + * | + *+ * | + *
| CURLOPT_TIMEOUT_MS | + *+ * The maximum number of milliseconds to allow cURL functions to + * execute. + * + * If libcurl is built to use the standard system name resolver, that + * portion of the connect will still use full-second resolution for + * timeouts with a minimum timeout allowed of one second. + * | + *+ * Added in cURL 7.16.2. Available since PHP 5.2.3. + * | + *
| CURLOPT_TIMEVALUE | + *
+ * The time in seconds since January 1st, 1970. The time will be used
+ * by CURLOPT_TIMECONDITION. By default,
+ * CURL_TIMECOND_IFMODSINCE is used.
+ * |
+ * + * | + *
| CURLOPT_MAX_RECV_SPEED_LARGE | + *+ * If a download exceeds this speed (counted in bytes per second) on + * cumulative average during the transfer, the transfer will pause to + * keep the average rate less than or equal to the parameter value. + * Defaults to unlimited speed. + * | + *+ * Added in cURL 7.15.5. Available since PHP 5.4.0. + * | + *
| CURLOPT_MAX_SEND_SPEED_LARGE | + *+ * If an upload exceeds this speed (counted in bytes per second) on + * cumulative average during the transfer, the transfer will pause to + * keep the average rate less than or equal to the parameter value. + * Defaults to unlimited speed. + * | + *+ * Added in cURL 7.15.5. Available since PHP 5.4.0. + * | + *
| CURLOPT_SSH_AUTH_TYPES | + *+ * A bitmask consisting of one or more of + * CURLSSH_AUTH_PUBLICKEY, + * CURLSSH_AUTH_PASSWORD, + * CURLSSH_AUTH_HOST, + * CURLSSH_AUTH_KEYBOARD. Set to + * CURLSSH_AUTH_ANY to let libcurl pick one. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_IPRESOLVE | + *+ * Allows an application to select what kind of IP addresses to use when + * resolving host names. This is only interesting when using host names that + * resolve addresses using more than one version of IP, possible values are + * CURL_IPRESOLVE_WHATEVER, + * CURL_IPRESOLVE_V4, + * CURL_IPRESOLVE_V6, by default + * CURL_IPRESOLVE_WHATEVER. + * | + *+ * Added in cURL 7.10.8. + * | + *
| Option | + *Set value to |
+ * Notes | + *
|---|---|---|
| CURLOPT_CAINFO | + *+ * The name of a file holding one or more certificates to verify the + * peer with. This only makes sense when used in combination with + * CURLOPT_SSL_VERIFYPEER. + * | + *+ * Might require an absolute path. + * | + *
| CURLOPT_CAPATH | + *+ * A directory that holds multiple CA certificates. Use this option + * alongside CURLOPT_SSL_VERIFYPEER. + * | + *+ * | + *
| CURLOPT_COOKIE | + *+ * The contents of the "Cookie: " header to be + * used in the HTTP request. + * Note that multiple cookies are separated with a semicolon followed + * by a space (e.g., "fruit=apple; colour=red") + * | + *+ * | + *
| CURLOPT_COOKIEFILE | + *+ * The name of the file containing the cookie data. The cookie file can + * be in Netscape format, or just plain HTTP-style headers dumped into + * a file. + * If the name is an empty string, no cookies are loaded, but cookie + * handling is still enabled. + * | + *+ * | + *
| CURLOPT_COOKIEJAR | + *+ * The name of a file to save all internal cookies to when the handle is closed, + * e.g. after a call to curl_close. + * | + *+ * | + *
| CURLOPT_CUSTOMREQUEST | + *+ * A custom request method to use instead of + * "GET" or "HEAD" when doing + * a HTTP request. This is useful for doing + * "DELETE" or other, more obscure HTTP requests. + * Valid values are things like "GET", + * "POST", "CONNECT" and so on; + * i.e. Do not enter a whole HTTP request line here. For instance, + * entering "GET /index.html HTTP/1.0\r\n\r\n" + * would be incorrect. + * + * |
+ * + * | + *
| CURLOPT_EGDSOCKET | + *+ * Like CURLOPT_RANDOM_FILE, except a filename + * to an Entropy Gathering Daemon socket. + * | + *+ * | + *
| CURLOPT_ENCODING | + *+ * The contents of the "Accept-Encoding: " header. + * This enables decoding of the response. Supported encodings are + * "identity", "deflate", and + * "gzip". If an empty string, "", + * is set, a header containing all supported encoding types is sent. + * | + *+ * Added in cURL 7.10. + * | + *
| CURLOPT_FTPPORT | + *+ * The value which will be used to get the IP address to use + * for the FTP "PORT" instruction. The "PORT" instruction tells + * the remote server to connect to our specified IP address. The + * string may be a plain IP address, a hostname, a network + * interface name (under Unix), or just a plain '-' to use the + * systems default IP address. + * | + *+ * | + *
| CURLOPT_INTERFACE | + *+ * The name of the outgoing network interface to use. This can be an + * interface name, an IP address or a host name. + * | + *+ * | + *
| CURLOPT_KEYPASSWD | + *+ * The password required to use the CURLOPT_SSLKEY + * or CURLOPT_SSH_PRIVATE_KEYFILE private key. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_KRB4LEVEL | + *+ * The KRB4 (Kerberos 4) security level. Any of the following values + * (in order from least to most powerful) are valid: + * "clear", + * "safe", + * "confidential", + * "private".. + * If the string does not match one of these, + * "private" is used. Setting this option to NULL + * will disable KRB4 security. Currently KRB4 security only works + * with FTP transactions. + * | + *+ * | + *
| CURLOPT_POSTFIELDS | + *
+ *
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and
+ * use the full path. The filetype can be explicitly specified by
+ * following the filename with the type in the format
+ * ';type=mimetype'. This parameter can either be
+ * passed as a urlencoded string like 'para1=val1¶2=val2&...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the
+ * Content-Type header will be set to
+ * multipart/form-data.
+ *
+ *
+ * As of PHP 5.2.0, value must be an array if
+ * files are passed to this option with the @ prefix.
+ *
+ *
+ * As of PHP 5.5.0, the @ prefix is deprecated and
+ * files can be sent using CURLFile. The
+ * @ prefix can be disabled for safe passing of
+ * values beginning with @ by setting the
+ * CURLOPT_SAFE_UPLOAD option to TRUE.
+ *
+ * |
+ * + * | + *
| CURLOPT_PROXY | + *+ * The HTTP proxy to tunnel requests through. + * | + *+ * | + *
| CURLOPT_PROXYUSERPWD | + *+ * A username and password formatted as + * "[username]:[password]" to use for the + * connection to the proxy. + * | + *+ * | + *
| CURLOPT_RANDOM_FILE | + *+ * A filename to be used to seed the random number generator for SSL. + * | + *+ * | + *
| CURLOPT_RANGE | + *+ * Range(s) of data to retrieve in the format + * "X-Y" where X or Y are optional. HTTP transfers + * also support several intervals, separated with commas in the format + * "X-Y,N-M". + * | + *+ * | + *
| CURLOPT_REFERER | + *+ * The contents of the "Referer: " header to be used + * in a HTTP request. + * | + *+ * | + *
| CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | + *+ * A string containing 32 hexadecimal digits. The string should be the + * MD5 checksum of the remote host's public key, and libcurl will reject + * the connection to the host unless the md5sums match. + * This option is only for SCP and SFTP transfers. + * | + *+ * Added in cURL 7.17.1. + * | + *
| CURLOPT_SSH_PUBLIC_KEYFILE | + *+ * The file name for your public key. If not used, libcurl defaults to + * $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, + * and just "id_dsa.pub" in the current directory if HOME is not set. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_SSH_PRIVATE_KEYFILE | + *+ * The file name for your private key. If not used, libcurl defaults to + * $HOME/.ssh/id_dsa if the HOME environment variable is set, + * and just "id_dsa" in the current directory if HOME is not set. + * If the file is password-protected, set the password with + * CURLOPT_KEYPASSWD. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_SSL_CIPHER_LIST | + *+ * A list of ciphers to use for SSL. For example, + * RC4-SHA and TLSv1 are valid + * cipher lists. + * | + *+ * | + *
| CURLOPT_SSLCERT | + *+ * The name of a file containing a PEM formatted certificate. + * | + *+ * | + *
| CURLOPT_SSLCERTPASSWD | + *+ * The password required to use the + * CURLOPT_SSLCERT certificate. + * | + *+ * | + *
| CURLOPT_SSLCERTTYPE | + *+ * The format of the certificate. Supported formats are + * "PEM" (default), "DER", + * and "ENG". + * | + *+ * Added in cURL 7.9.3. + * | + *
| CURLOPT_SSLENGINE | + *+ * The identifier for the crypto engine of the private SSL key + * specified in CURLOPT_SSLKEY. + * | + *+ * | + *
| CURLOPT_SSLENGINE_DEFAULT | + *+ * The identifier for the crypto engine used for asymmetric crypto + * operations. + * | + *+ * | + *
| CURLOPT_SSLKEY | + *+ * The name of a file containing a private SSL key. + * | + *+ * | + *
| CURLOPT_SSLKEYPASSWD | + *+ * The secret password needed to use the private SSL key specified in + * CURLOPT_SSLKEY. + * + * |
+ * + * | + *
| CURLOPT_SSLKEYTYPE | + *+ * The key type of the private SSL key specified in + * CURLOPT_SSLKEY. Supported key types are + * "PEM" (default), "DER", + * and "ENG". + * | + *+ * | + *
| CURLOPT_URL | + *+ * The URL to fetch. This can also be set when initializing a + * session with {@see curl_init()}. + * | + *+ * | + *
| CURLOPT_USERAGENT | + *+ * The contents of the "User-Agent: " header to be + * used in a HTTP request. + * | + *+ * | + *
| CURLOPT_USERPWD | + *+ * A username and password formatted as + * "[username]:[password]" to use for the + * connection. + * | + *+ * | + *
| Option | + *Set value to |
+ * Notes | + *
|---|---|---|
| CURLOPT_CAINFO | + *+ * The name of a file holding one or more certificates to verify the + * peer with. This only makes sense when used in combination with + * CURLOPT_SSL_VERIFYPEER. + * | + *+ * Might require an absolute path. + * | + *
| CURLOPT_CAPATH | + *+ * A directory that holds multiple CA certificates. Use this option + * alongside CURLOPT_SSL_VERIFYPEER. + * | + *+ * | + *
| CURLOPT_COOKIE | + *+ * The contents of the "Cookie: " header to be + * used in the HTTP request. + * Note that multiple cookies are separated with a semicolon followed + * by a space (e.g., "fruit=apple; colour=red") + * | + *+ * | + *
| CURLOPT_COOKIEFILE | + *+ * The name of the file containing the cookie data. The cookie file can + * be in Netscape format, or just plain HTTP-style headers dumped into + * a file. + * If the name is an empty string, no cookies are loaded, but cookie + * handling is still enabled. + * | + *+ * | + *
| CURLOPT_COOKIEJAR | + *+ * The name of a file to save all internal cookies to when the handle is closed, + * e.g. after a call to curl_close. + * | + *+ * | + *
| CURLOPT_CUSTOMREQUEST | + *+ * A custom request method to use instead of + * "GET" or "HEAD" when doing + * a HTTP request. This is useful for doing + * "DELETE" or other, more obscure HTTP requests. + * Valid values are things like "GET", + * "POST", "CONNECT" and so on; + * i.e. Do not enter a whole HTTP request line here. For instance, + * entering "GET /index.html HTTP/1.0\r\n\r\n" + * would be incorrect. + * + * |
+ * + * | + *
| CURLOPT_EGDSOCKET | + *+ * Like CURLOPT_RANDOM_FILE, except a filename + * to an Entropy Gathering Daemon socket. + * | + *+ * | + *
| CURLOPT_ENCODING | + *+ * The contents of the "Accept-Encoding: " header. + * This enables decoding of the response. Supported encodings are + * "identity", "deflate", and + * "gzip". If an empty string, "", + * is set, a header containing all supported encoding types is sent. + * | + *+ * Added in cURL 7.10. + * | + *
| CURLOPT_FTPPORT | + *+ * The value which will be used to get the IP address to use + * for the FTP "PORT" instruction. The "PORT" instruction tells + * the remote server to connect to our specified IP address. The + * string may be a plain IP address, a hostname, a network + * interface name (under Unix), or just a plain '-' to use the + * systems default IP address. + * | + *+ * | + *
| CURLOPT_INTERFACE | + *+ * The name of the outgoing network interface to use. This can be an + * interface name, an IP address or a host name. + * | + *+ * | + *
| CURLOPT_KEYPASSWD | + *+ * The password required to use the CURLOPT_SSLKEY + * or CURLOPT_SSH_PRIVATE_KEYFILE private key. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_KRB4LEVEL | + *+ * The KRB4 (Kerberos 4) security level. Any of the following values + * (in order from least to most powerful) are valid: + * "clear", + * "safe", + * "confidential", + * "private".. + * If the string does not match one of these, + * "private" is used. Setting this option to NULL + * will disable KRB4 security. Currently KRB4 security only works + * with FTP transactions. + * | + *+ * | + *
| CURLOPT_POSTFIELDS | + *
+ *
+ * The full data to post in a HTTP "POST" operation.
+ * To post a file, prepend a filename with @ and
+ * use the full path. The filetype can be explicitly specified by
+ * following the filename with the type in the format
+ * ';type=mimetype'. This parameter can either be
+ * passed as a urlencoded string like 'para1=val1¶2=val2&...'
+ * or as an array with the field name as key and field data as value.
+ * If value is an array, the
+ * Content-Type header will be set to
+ * multipart/form-data.
+ *
+ *
+ * As of PHP 5.2.0, value must be an array if
+ * files are passed to this option with the @ prefix.
+ *
+ *
+ * As of PHP 5.5.0, the @ prefix is deprecated and
+ * files can be sent using CURLFile. The
+ * @ prefix can be disabled for safe passing of
+ * values beginning with @ by setting the
+ * CURLOPT_SAFE_UPLOAD option to TRUE.
+ *
+ * |
+ * + * | + *
| CURLOPT_PROXY | + *+ * The HTTP proxy to tunnel requests through. + * | + *+ * | + *
| CURLOPT_PROXYUSERPWD | + *+ * A username and password formatted as + * "[username]:[password]" to use for the + * connection to the proxy. + * | + *+ * | + *
| CURLOPT_RANDOM_FILE | + *+ * A filename to be used to seed the random number generator for SSL. + * | + *+ * | + *
| CURLOPT_RANGE | + *+ * Range(s) of data to retrieve in the format + * "X-Y" where X or Y are optional. HTTP transfers + * also support several intervals, separated with commas in the format + * "X-Y,N-M". + * | + *+ * | + *
| CURLOPT_REFERER | + *+ * The contents of the "Referer: " header to be used + * in a HTTP request. + * | + *+ * | + *
| CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 | + *+ * A string containing 32 hexadecimal digits. The string should be the + * MD5 checksum of the remote host's public key, and libcurl will reject + * the connection to the host unless the md5sums match. + * This option is only for SCP and SFTP transfers. + * | + *+ * Added in cURL 7.17.1. + * | + *
| CURLOPT_SSH_PUBLIC_KEYFILE | + *+ * The file name for your public key. If not used, libcurl defaults to + * $HOME/.ssh/id_dsa.pub if the HOME environment variable is set, + * and just "id_dsa.pub" in the current directory if HOME is not set. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_SSH_PRIVATE_KEYFILE | + *+ * The file name for your private key. If not used, libcurl defaults to + * $HOME/.ssh/id_dsa if the HOME environment variable is set, + * and just "id_dsa" in the current directory if HOME is not set. + * If the file is password-protected, set the password with + * CURLOPT_KEYPASSWD. + * | + *+ * Added in cURL 7.16.1. + * | + *
| CURLOPT_SSL_CIPHER_LIST | + *+ * A list of ciphers to use for SSL. For example, + * RC4-SHA and TLSv1 are valid + * cipher lists. + * | + *+ * | + *
| CURLOPT_SSLCERT | + *+ * The name of a file containing a PEM formatted certificate. + * | + *+ * | + *
| CURLOPT_SSLCERTPASSWD | + *+ * The password required to use the + * CURLOPT_SSLCERT certificate. + * | + *+ * | + *
| CURLOPT_SSLCERTTYPE | + *+ * The format of the certificate. Supported formats are + * "PEM" (default), "DER", + * and "ENG". + * | + *+ * Added in cURL 7.9.3. + * | + *
| CURLOPT_SSLENGINE | + *+ * The identifier for the crypto engine of the private SSL key + * specified in CURLOPT_SSLKEY. + * | + *+ * | + *
| CURLOPT_SSLENGINE_DEFAULT | + *+ * The identifier for the crypto engine used for asymmetric crypto + * operations. + * | + *+ * | + *
| CURLOPT_SSLKEY | + *+ * The name of a file containing a private SSL key. + * | + *+ * | + *
| CURLOPT_SSLKEYPASSWD | + *+ * The secret password needed to use the private SSL key specified in + * CURLOPT_SSLKEY. + * + * |
+ * + * | + *
| CURLOPT_SSLKEYTYPE | + *+ * The key type of the private SSL key specified in + * CURLOPT_SSLKEY. Supported key types are + * "PEM" (default), "DER", + * and "ENG". + * | + *+ * | + *
| CURLOPT_URL | + *+ * The URL to fetch. This can also be set when initializing a + * session with curl_init(). + * | + *+ * | + *
| CURLOPT_USERAGENT | + *+ * The contents of the "User-Agent: " header to be + * used in a HTTP request. + * | + *+ * | + *
| CURLOPT_USERPWD | + *+ * A username and password formatted as + * "[username]:[password]" to use for the + * connection. + * | + *+ * | + *
+ * value should be an array for the following values of the option parameter:
+ *| Option | + *Set value to |
+ * Notes | + *
|---|---|---|
| CURLOPT_HTTP200ALIASES | + *+ * An array of HTTP 200 responses that will be treated as valid + * responses and not as errors. + * | + *+ * Added in cURL 7.10.3. + * | + *
| CURLOPT_HTTPHEADER | + *
+ * An array of HTTP header fields to set, in the format
+ *
+ * array('Content-type: text/plain', 'Content-length: 100')
+ *
+ * |
+ * + * | + *
| CURLOPT_POSTQUOTE | + *+ * An array of FTP commands to execute on the server after the FTP + * request has been performed. + * | + *+ * | + *
| CURLOPT_QUOTE | + *+ * An array of FTP commands to execute on the server prior to the FTP + * request. + * | + *+ * | + *
| Option | + *Set value to |
+ *
|---|---|
| CURLOPT_FILE | + *+ * The file that the transfer should be written to. The default + * is STDOUT (the browser window). + * | + *
| CURLOPT_INFILE | + *+ * The file that the transfer should be read from when uploading. + * | + *
| CURLOPT_STDERR | + *+ * An alternative location to output errors to instead of + * STDERR. + * | + *
| CURLOPT_WRITEHEADER | + *+ * The file that the header part of the transfer is written to. + * | + *
| Option | + *Set value to |
+ *
|---|---|
| CURLOPT_HEADERFUNCTION | + *+ * A callback accepting two parameters. + * The first is the cURL resource, the second is a + * string with the header data to be written. The header data must + * be written by this callback. Return the number of + * bytes written. + * | + *
| CURLOPT_PASSWDFUNCTION | + *+ * A callback accepting three parameters. + * The first is the cURL resource, the second is a + * string containing a password prompt, and the third is the maximum + * password length. Return the string containing the password. + * | + *
| CURLOPT_PROGRESSFUNCTION | + *
+ * + * A callback accepting five parameters. + * The first is the cURL resource, the second is the total number of + * bytes expected to be downloaded in this transfer, the third is + * the number of bytes downloaded so far, the fourth is the total + * number of bytes expected to be uploaded in this transfer, and the + * fifth is the number of bytes uploaded so far. + * + *+ * + * Return a non-zero value to abort the transfer. In which case, the + * transfer will set a CURLE_ABORTED_BY_CALLBACK + * error. + * + * |
+ *
| CURLOPT_READFUNCTION | + *+ * A callback accepting three parameters. + * The first is the cURL resource, the second is a + * stream resource provided to cURL through the option + * CURLOPT_INFILE, and the third is the maximum + * amount of data to be read. The callback must return a string + * with a length equal or smaller than the amount of data requested, + * typically by reading it from the passed stream resource. It should + * return an empty string to signal EOF. + * | + *
| CURLOPT_WRITEFUNCTION | + *+ * A callback accepting two parameters. + * The first is the cURL resource, and the second is a + * string with the data to be written. The data must be saved by + * this callback. It must return the exact number of bytes written + * or the transfer will be aborted with an error. + * | + *
| Option | + *Set value to |
+ *
|---|---|
| CURLOPT_SHARE | + *+ * A result of {@see curl_share_init()}. Makes the cURL + * handle to use the data from the shared handle. + * | + *
+ * An array specifying which options to set and their values. + * The keys should be valid curl_setopt constants or + * their integer equivalents. + *
+ * @return bool true if all options were successfully set. If an option could + * not be successfully set, false is immediately returned, ignoring any + * future options in the options array. + * @since 5.1.3 + */ +function curl_setopt_array(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle, array $options): bool {} + +/** + * (PHP 5 >=5.5.0)+ * A cURL share handle returned by {@link https://secure.php.net/manual/en/function.curl-share-init.php curl_share_init()} + *
+ * @return void + * @since 5.5 + */ +function curl_share_close(#[LanguageLevelTypeAware(['8.0' => 'CurlShareHandle'], default: 'resource')] $share_handle): void {} + +/** + * (PHP 5 >=5.5.0)+ * A cURL share handle returned by {@link https://secure.php.net/manual/en/function.curl-share-init.php curl_share_init()}. + *
+ * @param int $option| Option | + *Description | + *
|---|---|
| CURLSHOPT_SHARE | + *+ * Specifies a type of data that should be shared. + * | + *
| CURLSHOPT_UNSHARE | + *+ * Specifies a type of data that will be no longer shared. + * | + *
| Value | + *Description | + *
|---|---|
| CURL_LOCK_DATA_COOKIE | + *+ * Shares cookie data. + * | + *
| CURL_LOCK_DATA_DNS | + *+ * Shares DNS cache. Note that when you use cURL multi handles, + * all handles added to the same multi handle will share DNS cache + * by default. + * | + *
| CURL_LOCK_DATA_SSL_SESSION | + *+ * Shares SSL session IDs, reducing the time spent on the SSL + * handshake when reconnecting to the same server. Note that SSL + * session IDs are reused within the same handle by default. + * | + *
+ * One of the {@link https://curl.haxx.se/libcurl/c/libcurl-errors.html cURL error codes} constants. + *
+ * @return string|null Returns error description or NULL for invalid error code. + * @since 5.5 + */ +#[Pure] +function curl_strerror(int $error_code): ?string {} + +/** + * (PHP 5 >=5.5.0)A cURL handle returned by + * {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @param string $string+ * The URL encoded string to be decoded. + *
+ * @return string|false Returns decoded string or FALSE on failure. + * @since 5.5 + */ +#[Pure] +function curl_unescape(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle, string $string): string|false {} + +/** + * Perform a cURL session + * @link https://php.net/manual/en/function.curl-exec.php + * @param CurlHandle|resource $handle + * @return string|bool true on success or false on failure. However, if the CURLOPT_RETURNTRANSFER + * option is set, it will return the result on success, false on failure. + */ +function curl_exec(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle): string|bool {} + +/** + * Get information regarding a specific transfer + * @link https://php.net/manual/en/function.curl-getinfo.php + * @param CurlHandle|resource $handle + * @param int|null $option [optional]+ * This may be one of the following constants: + *
CURLINFO_EFFECTIVE_URL - Last effective URL
+ * CURLINFO_HTTP_CODE - The last response code. As of cURL 7.10.8, this is a legacy alias of
+ * CURLINFO_RESPONSE_CODE
+ *
+ * CURLINFO_FILETIME - Remote time of the retrieved document, with the
+ * CURLOPT_FILETIME
+ * enabled; if -1 is returned the time of the document is unknown
+ * CURLINFO_TOTAL_TIME - Total transaction time in seconds for last transfer
+ * CURLINFO_NAMELOOKUP_TIME - Time in seconds until name resolving was complete
+ * CURLINFO_CONNECT_TIME - Time in seconds it took to establish the connection
+ * CURLINFO_PRETRANSFER_TIME - Time in seconds from start until just before file transfer begins
+ * CURLINFO_STARTTRANSFER_TIME - Time in seconds until the first byte is about to be transferred
+ * CURLINFO_REDIRECT_COUNT - Number of redirects, with the
+ * CURLOPT_FOLLOWLOCATION
+ * option enabled
+ * CURLINFO_REDIRECT_TIME - Time in seconds of all redirection steps before final transaction was started, with the
+ * CURLOPT_FOLLOWLOCATION
+ * option enabled
+ * CURLINFO_REDIRECT_URL - With the
+ * CURLOPT_FOLLOWLOCATION
+ * option disabled: redirect URL found in the last transaction, that should be requested manually next. With the
+ * CURLOPT_FOLLOWLOCATION
+ * option enabled: this is empty. The redirect URL in this case is available in
+ * CURLINFO_EFFECTIVE_URL
+ *
+ * CURLINFO_PRIMARY_IP - IP address of the most recent connection
+ * CURLINFO_PRIMARY_PORT - Destination port of the most recent connection
+ * CURLINFO_LOCAL_IP - Local (source) IP address of the most recent connection
+ * CURLINFO_LOCAL_PORT - Local (source) port of the most recent connection
+ * CURLINFO_SIZE_UPLOAD - Total number of bytes uploaded
+ * CURLINFO_SIZE_DOWNLOAD - Total number of bytes downloaded
+ * CURLINFO_SPEED_DOWNLOAD - Average download speed
+ * CURLINFO_SPEED_UPLOAD - Average upload speed
+ * CURLINFO_HEADER_SIZE - Total size of all headers received
+ * CURLINFO_HEADER_OUT - The request string sent. For this to work, add the
+ * CURLINFO_HEADER_OUT
+ * option to the handle by calling curl_setopt()
+ * CURLINFO_REQUEST_SIZE - Total size of issued requests, currently only for HTTP requests
+ * CURLINFO_SSL_VERIFYRESULT - Result of SSL certification verification requested by setting
+ * CURLOPT_SSL_VERIFYPEER
+ *
+ * CURLINFO_CONTENT_LENGTH_DOWNLOAD - Content length of download, read from
+ * Content-Length: field
+ * CURLINFO_CONTENT_LENGTH_UPLOAD - Specified size of upload
+ * CURLINFO_CONTENT_TYPE
+ * -
+ * Content-Type: of the requested document. NULL indicates server did not send valid
+ * Content-Type: header
+ * CURLINFO_PRIVATE - Private data associated with this cURL handle, previously set with the
+ * CURLOPT_PRIVATE
+ * option of curl_setopt()
+ * CURLINFO_RESPONSE_CODE - The last response code
+ * CURLINFO_HTTP_CONNECTCODE - The CONNECT response code
+ * CURLINFO_HTTPAUTH_AVAIL - Bitmask indicating the authentication method(s) available according to the previous response
+ * CURLINFO_PROXYAUTH_AVAIL - Bitmask indicating the proxy authentication method(s) available according to the previous response
+ * CURLINFO_OS_ERRNO - Errno from a connect failure. The number is OS and system specific.
+ * CURLINFO_NUM_CONNECTS - Number of connections curl had to create to achieve the previous transfer
+ * CURLINFO_SSL_ENGINES - OpenSSL crypto-engines supported
+ * CURLINFO_COOKIELIST - All known cookies
+ * CURLINFO_FTP_ENTRY_PATH - Entry path in FTP server
+ * CURLINFO_APPCONNECT_TIME - Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ * CURLINFO_CERTINFO - TLS certificate chain
+ * CURLINFO_CONDITION_UNMET - Info on unmet time conditional
+ * CURLINFO_RTSP_CLIENT_CSEQ - Next RTSP client CSeq
+ * CURLINFO_RTSP_CSEQ_RECV - Recently received CSeq
+ * CURLINFO_RTSP_SERVER_CSEQ - Next RTSP server CSeq
+ * CURLINFO_RTSP_SESSION_ID - RTSP session ID
+ * CURLINFO_CONTENT_LENGTH_DOWNLOAD_T - The content-length of the download. This is the value read from the
+ * Content-Type: field. -1 if the size isn't known
+ * CURLINFO_CONTENT_LENGTH_UPLOAD_T - The specified size of the upload. -1 if the size isn't known
+ * CURLINFO_HTTP_VERSION - The version used in the last HTTP connection. The return value will be one of the defined
+ * CURL_HTTP_VERSION_*
+ * constants or 0 if the version can't be determined
+ * CURLINFO_PROTOCOL - The protocol used in the last HTTP connection. The returned value will be exactly one of the
+ * CURLPROTO_*
+ * values
+ * CURLINFO_PROXY_SSL_VERIFYRESULT - The result of the certificate verification that was requested (using the
+ * CURLOPT_PROXY_SSL_VERIFYPEER
+ * option). Only used for HTTPS proxies
+ * CURLINFO_SCHEME - The URL scheme used for the most recent connection
+ * CURLINFO_SIZE_DOWNLOAD_T - Total number of bytes that were downloaded. The number is only for the latest transfer and will be reset again for each new transfer
+ * CURLINFO_SIZE_UPLOAD_T - Total number of bytes that were uploaded
+ * CURLINFO_SPEED_DOWNLOAD_T - The average download speed in bytes/second that curl measured for the complete download
+ * CURLINFO_SPEED_UPLOAD_T - The average upload speed in bytes/second that curl measured for the complete upload
+ * CURLINFO_APPCONNECT_TIME_T - Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed
+ * CURLINFO_CONNECT_TIME_T - Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed
+ * CURLINFO_FILETIME_T - Remote time of the retrieved document (as Unix timestamp), an alternative to
+ * CURLINFO_FILETIME
+ * to allow systems with 32 bit long variables to extract dates outside of the 32bit timestamp range
+ * CURLINFO_NAMELOOKUP_TIME_T - Time in microseconds from the start until the name resolving was completed
+ * CURLINFO_PRETRANSFER_TIME_T - Time taken from the start until the file transfer is just about to begin, in microseconds
+ * CURLINFO_REDIRECT_TIME_T - Total time, in microseconds, it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started
+ * CURLINFO_STARTTRANSFER_TIME_T - Time, in microseconds, it took from the start until the first byte is received
+ * CURLINFO_TOTAL_TIME_T - Total time in microseconds for the previous transfer, including name resolving, TCP connect etc.
+ * $option is given, returns its value as a string.
+ * Otherwise, returns an associative array with the following elements
+ * (which correspond to $option), or false on failure:
+ * CURLINFO_HEADER_OUT
+ * is set by a previous call to curl_setopt()
+ * + * A cURL handle returned by + * {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @param string $string+ * The string to be encoded.
+ * @return string|false Returns escaped string or FALSE on failure. + * @since 5.5 + */ +#[Pure] +function curl_escape(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle, string $string): string|false {} + +/** + * (PHP 5 >= 5.5.0)Path to the file which will be uploaded.
+ * @param string|null $mime_typeMimetype of the file.
+ * @param string|null $posted_filenameName of the file.
+ * @return CURLFile + * Returns a {@link https://secure.php.net/manual/en/class.curlfile.php CURLFile} object. + * @since 5.5 + */ +#[Pure] +function curl_file_create(string $filename, ?string $mime_type = null, ?string $posted_filename = null): CURLFile {} + +/** + * Close a cURL session + * @link https://php.net/manual/en/function.curl-close.php + * @param CurlHandle|resource $handle + * @return void + */ +function curl_close(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle): void {} + +/** + * Returns a new cURL multi handle + * @link https://php.net/manual/en/function.curl-multi-init.php + * @return resource|CurlMultiHandle a cURL multi handle resource or object depends on the php version + */ +#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] +function curl_multi_init(): CurlMultiHandle {} + +/** + * Add a normal cURL handle to a cURL multi handle + * @link https://php.net/manual/en/function.curl-multi-add-handle.php + * @param CurlMultiHandle|resource $multi_handle + * @param CurlHandle|resource $handle + * @return int 0 on success, or one of the CURLM_XXX errors + * code. + */ +function curl_multi_add_handle(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle, #[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle): int {} + +/** + * Remove a multi handle from a set of cURL handles + * @link https://php.net/manual/en/function.curl-multi-remove-handle.php + * @param CurlMultiHandle|resource $multi_handle + * @param CurlHandle|resource $handle + * @return int|false On success, returns one of the CURLM_XXX error codes, false on failure. + */ +#[LanguageLevelTypeAware(['8.0' => 'int'], default: 'int|false')] +function curl_multi_remove_handle(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle, #[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle) {} + +/** + * Wait for activity on any curl_multi connection + * @link https://php.net/manual/en/function.curl-multi-select.php + * @param CurlMultiHandle|resource $multi_handle + * @param float $timeout [optional]+ * Time, in seconds, to wait for a response. + *
+ * @return int On success, returns the number of descriptors contained in, + * the descriptor sets. On failure, this function will return -1 on a select failure or timeout (from the underlying select system call). + */ +function curl_multi_select(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle, float $timeout = 1.0): int {} + +/** + * (PHP 5 >=5.5.0)+ * One of the CURLMOPT_* constants. + *
+ * @param mixed $value+ * The value to be set on option. + *
+ *+ * value should be an {@link https://php.net/manual/en/language.types.integer.php int} for the + * following values of the option parameter: + *
| Option | + *Set value to |
+ *
|---|---|
| CURLMOPT_PIPELINING | + *+ * Pass 1 to enable or 0 to disable. Enabling pipelining on a multi + * handle will make it attempt to perform HTTP Pipelining as far as + * possible for transfers using this handle. This means that if you add + * a second request that can use an already existing connection, the + * second request will be "piped" on the same connection rather than + * being executed in parallel. + * | + *
| CURLMOPT_MAXCONNECTS | + *+ * Pass a number that will be used as the maximum amount of + * simultaneously open connections that libcurl may cache. Default is + * 10. When the cache is full, curl closes the oldest one in the cache + * to prevent the number of open connections from increasing. + * | + *
+ * One of the {@link https://curl.haxx.se/libcurl/c/libcurl-errors.html CURLM error codes} constants. + *
+ * @return string|null Returns error string for valid error code, NULL otherwise. + * @since 5.5 + */ +function curl_multi_strerror(int $error_code): ?string {} + +/** + * (PHP 5 >=5.5.0)A cURL handle returned by {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @param int $flagsOne of CURLPAUSE_* constants.
+ * @return int Returns an error code (CURLE_OK for no error). + * @since 5.5 + */ +function curl_pause(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle, int $flags): int {} + +/** + * (PHP 5 >=5.5.0)A cURL handle returned by + * {@link https://secure.php.net/manual/en/function.curl-init.php curl_init()}.
+ * @return void + * @since 5.5 + */ +function curl_reset(#[LanguageLevelTypeAware(['8.0' => 'CurlHandle'], default: 'resource')] $handle): void {} + +/** + * Run the sub-connections of the current cURL handle + * @link https://php.net/manual/en/function.curl-multi-exec.php + * @param CurlMultiHandle|resource $multi_handle + * @param int &$still_running+ * A reference to a flag to tell whether the operations are still running. + *
+ * @return int A cURL code defined in the cURL Predefined Constants. + *+ * This only returns errors regarding the whole multi stack. There might still have + * occurred problems on individual transfers even when this function returns + * CURLM_OK. + *
+ */ +function curl_multi_exec( + #[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] &$still_running = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] &$still_running +): int {} + +/** + * Return the content of a cURL handle if+ * Number of messages that are still in the queue + *
+ * @return array|false On success, returns an associative array for the message, false on failure. + */ +#[Pure] +#[ArrayShape(["msg" => "int", "result" => "int", "handle" => "resource"])] +function curl_multi_info_read(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle, &$queued_messages): array|false {} + +/** + * Close a set of cURL handles + * @link https://php.net/manual/en/function.curl-multi-close.php + * @param CurlMultiHandle|resource $multi_handle + * @return void + */ +function curl_multi_close(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle): void {} + +/** + * Return the last multi curl error number + * @param CurlMultiHandle|resource $multi_handle + * @return int + * @since 7.1 + */ +#[Pure(true)] +function curl_multi_errno(#[LanguageLevelTypeAware(['8.0' => 'CurlMultiHandle'], default: 'resource')] $multi_handle): int {} + +/** + * Return the last share curl error number + * @param CurlMultiHandle|resource $share_handle + * @return int + * @since 7.1 + */ +#[Pure(true)] +function curl_share_errno(#[LanguageLevelTypeAware(['8.0' => 'CurlShareHandle'], default: 'resource')] $share_handle): int {} + +/** + * Return string describing the given error code + * @param int $error_code + * @return string|null + * @since 7.1 + */ +#[Pure] +function curl_share_strerror(int $error_code): ?string {} + +/** + * @since 8.2 + */ +function curl_upkeep(CurlHandle $handle): bool {} +/** + * @since 8.0 + */ +final class CurlHandle +{ + /** + * Cannot directly construct CurlHandle, use curl_init() instead + * @see curl_init() + */ + private function __construct() {} +} + +/** + * @since 8.0 + */ +final class CurlMultiHandle +{ + /** + * Cannot directly construct CurlMultiHandle, use curl_multi_init() instead + * @see curl_multi_init() + */ + private function __construct() {} +} + +/** + * @since 8.0 + */ +final class CurlShareHandle +{ + /** + * Cannot directly construct CurlShareHandle, use curl_share_init() instead + * @see curl_share_init() + */ + private function __construct() {} +} diff --git a/phpstorm-stubs/curl/curl_d.php b/phpstorm-stubs/curl/curl_d.php new file mode 100644 index 0000000..52b15e8 --- /dev/null +++ b/phpstorm-stubs/curl/curl_d.php @@ -0,0 +1,4335 @@ +CURLSSH_AUTH_PUBLICKEY, + * CURLSSH_AUTH_PASSWORD, + * CURLSSH_AUTH_HOST, + * CURLSSH_AUTH_KEYBOARD. Set to + * CURLSSH_AUTH_ANY to let libcurl pick one. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSH_AUTH_TYPES', 151); + +/** + * TRUE tells the library to perform all the required proxy authentication + * and connection setup, but no data transfer. This option is implemented for + * HTTP, SMTP and POP3. + * @since 5.5 + * @link https://php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CONNECT_ONLY', 141); + +/** + * With the CURLOPT_FOLLOWLOCATION option disabled: + * redirect URL found in the last transaction, that should be requested manually next. + * With the CURLOPT_FOLLOWLOCATION option enabled: + * this is empty. The redirect URL in this case is available in CURLINFO_EFFECTIVE_URL + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.3.7 + */ +define('CURLINFO_REDIRECT_URL', 1048607); + +/** + * IP address of the most recent connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.4.7 + */ +define('CURLINFO_PRIMARY_IP', 1048608); +/** + * Destination port of the most recent connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.4.7 + */ +define('CURLINFO_PRIMARY_PORT', 2097192); +/** + * Local (source) IP address of the most recent connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.4.7 + */ +define('CURLINFO_LOCAL_IP', 1048617); +/** + * Local (source) port of the most recent connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.4.7 + */ +define('CURLINFO_LOCAL_PORT', 2097194); +/** + * A result of {@see curl_share_init()}. Makes the cURL handle to use the data from the shared handle. + * @link https://php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define('CURLOPT_SHARE', 10100); +/** + * Allows an application to select what kind of IP addresses to use when resolving host names. + * This is only interesting when using host names that resolve addresses using more than one version of IP, + * possible values are CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4, CURL_IPRESOLVE_V6, by default CURL_IPRESOLVE_WHATEVER. + * @link https://php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_IPRESOLVE', 113); +/** + * Value for the CURLOPT_IPRESOLVE option. + * Default, resolves addresses to all IP versions that your system allows. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html + */ +define('CURL_IPRESOLVE_WHATEVER', 0); +/** + * Value for the CURLOPT_IPRESOLVE option. + * Resolve to IPv4 addresses. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html + */ +define('CURL_IPRESOLVE_V4', 1); +/** + * Value for the CURLOPT_IPRESOLVE option. + * Resolve to IPv6 addresses. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_IPRESOLVE.html + */ +define('CURL_IPRESOLVE_V6', 2); +/** + * TRUE to use a global DNS cache. This option is not thread-safe. + * It is conditionally enabled by default if PHP is built for non-threaded use (CLI, FCGI, Apache2-Prefork, etc.). + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_DNS_USE_GLOBAL_CACHE', 91); + +/** + * The number of seconds to keep DNS entries in memory. + * This option is set to 120 (2 minutes) by default. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_DNS_CACHE_TIMEOUT', 92); +/** + * An alternative port number to connect to. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PORT', 3); +/** + * The file that the transfer should be written to. The default is STDOUT (the browser window). + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FILE', 10001); +/** + * Custom pointer passed to the read callback. + * If you use the CURLOPT_READFUNCTION option, this is the pointer you'll get as input in the 4th argument to the callback. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_READDATA.html + */ +define('CURLOPT_READDATA', 10009); +/** + * The file that the transfer should be read from when uploading. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_INFILE', 10009); +/** + * The expected size, in bytes, of the file when uploading a file to a remote site. + * Note that using this option will not stop libcurl from sending more data, as exactly what is sent depends on CURLOPT_READFUNCTION. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_INFILESIZE', 14); +/** + * The URL to fetch. This can also be set when initializing a session with {@see curl_init()}. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_URL', 10002); +/** + * The HTTP proxy to tunnel requests through. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PROXY', 10004); +/** + * TRUE to output verbose information. + * Writes output to STDERR, or the file specified using CURLOPT_STDERR. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_VERBOSE', 41); +/** + * TRUE to include the header in the output. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HEADER', 42); +/** + * An array of HTTP header fields to set, in the format array('Content-type: text/plain', 'Content-length: 100') + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTPHEADER', 10023); +/** + * TRUE to disable the progress meter for cURL transfers. + * (PHP automatically sets this option to TRUE, this should only be changed for debugging purposes.) + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_NOPROGRESS', 43); + +/** + * A callback accepting five parameters. + * The first is the cURL resource, + * the second is the total number of bytes expected to be downloaded in this transfer, + * the third is the number of bytes downloaded so far, + * the fourth is the total number of bytes expected to be uploaded in this transfer, + * and the fifth is the number of bytes uploaded so far. + * (The callback is only called when the CURLOPT_NOPROGRESS option is set to FALSE.) + * Return a non-zero value to abort the transfer. In which case, the transfer will set a CURLE_ABORTED_BY_CALLBACK error. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.3 + */ +define('CURLOPT_PROGRESSFUNCTION', 20056); +/** + * TRUE to exclude the body from the output. Request method is then set to HEAD. Changing this to FALSE does not change it to GET. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_NOBODY', 44); +/** + * TRUE to fail verbosely if the HTTP code returned is greater than or equal to 400. + * The default behavior is to return the page normally, ignoring the code. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FAILONERROR', 45); +/** + * TRUE to prepare for an upload. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_UPLOAD', 46); +/** + * TRUE to do a regular HTTP POST. + * This POST is the normal application/x-www-form-urlencoded kind, most commonly used by HTML forms. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_POST', 47); +/** + * TRUE to only list the names of an FTP directory. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTPLISTONLY', 48); +/** + * TRUE to append to the remote file instead of overwriting it. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTPAPPEND', 50); +/** + * TRUE to scan the ~/.netrc file to find a username and password for the remote site that a connection is being established with. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_NETRC', 51); +/** + * A bitmask of 1 (301 Moved Permanently), 2 (302 Found) and 4 (303 See Other) if the HTTP POST method should be maintained + * when CURLOPT_FOLLOWLOCATION is set and a specific type of redirect occurs. + * @link https://secure.php.net/manual/en/function.curl-setopt.php + * @since 5.3.2 + */ +define('CURLOPT_POSTREDIR', 161); +/** + * TRUE to output SSL certification information to STDERR on secure transfers. + * Requires CURLOPT_VERBOSE to be on to have an effect. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.3.2 + */ +define('CURLOPT_CERTINFO', 172); +/** + * An alias of CURLOPT_TRANSFERTEXT. Use that instead. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTPASCII', -1); +/** + * TRUE to be completely silent with regards to the cURL functions. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @deprecated use CURLOPT_RETURNTRANSFER instead since cURL 7.15.5 + */ +define('CURLOPT_MUTE', -1); +/** + * Bitmask of CURLPROTO_* values. If used, this bitmask limits what protocols libcurl may use in the transfer. + * This allows you to have a libcurl built to support a wide range of protocols but still limit specific transfers + * to only be allowed to use a subset of them. + * By default libcurl will accept all protocols it supports. See also CURLOPT_REDIR_PROTOCOLS. + * Valid protocol options are: + * CURLPROTO_HTTP, CURLPROTO_HTTPS, CURLPROTO_FTP, CURLPROTO_FTPS, CURLPROTO_SCP, CURLPROTO_SFTP, + * CURLPROTO_TELNET, CURLPROTO_LDAP, CURLPROTO_LDAPS, CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_TFTP, + * CURLPROTO_ALL + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.2.10 + */ +define('CURLOPT_PROTOCOLS', 181); +/** + * Bitmask of CURLPROTO_* values. If used, this bitmask limits what protocols libcurl may use in a transfer + * that it follows to in a redirect when CURLOPT_FOLLOWLOCATION is enabled. + * This allows you to limit specific transfers to only be allowed to use a subset of protocols in redirections. + * By default libcurl will allow all protocols except for FILE and SCP. + * This is a difference compared to pre-7.19.4 versions which unconditionally would follow to all protocols supported. + * See also CURLOPT_PROTOCOLS for protocol constant values. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.2.10 + */ +define('CURLOPT_REDIR_PROTOCOLS', 182); +/** + * If a download exceeds this speed (counted in bytes per second) on cumulative average during the transfer, + * the transfer will pause to keep the average rate less than or equal to the parameter value. + * Defaults to unlimited speed. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.4 + */ +define('CURLOPT_MAX_RECV_SPEED_LARGE', 30146); +/** + * If an upload exceeds this speed (counted in bytes per second) on cumulative average during the transfer, + * the transfer will pause to keep the average rate less than or equal to the parameter value. + * Defaults to unlimited speed. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.4 + */ +define('CURLOPT_MAX_SEND_SPEED_LARGE', 30145); +/** + * A callback accepting three parameters. + * The first is the cURL resource, the second is a string containing a password prompt, and the third is the maximum password length. + * Return the string containing the password. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PASSWDFUNCTION', -1); + +/** + * TRUE to follow any "Location: " header that the server sends as part of the HTTP header + * (note this is recursive, PHP will follow as many "Location: " headers that it is sent, unless CURLOPT_MAXREDIRS is set). + * This constant is not available when open_basedir + * or safe_mode are enabled. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FOLLOWLOCATION', 52); +/** + * TRUE to HTTP PUT a file. The file to PUT must be set with CURLOPT_INFILE and CURLOPT_INFILESIZE. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PUT', 54); +/** + * A username and password formatted as "[username]:[password]" to use for the connection. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_USERPWD', 10005); +/** + * A username and password formatted as "[username]:[password]" to use for the connection to the proxy. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PROXYUSERPWD', 10006); +/** + * Range(s) of data to retrieve in the format "X-Y" where X or Y are optional. + * HTTP transfers also support several intervals, separated with commas in the format "X-Y,N-M". + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_RANGE', 10007); +/** + * The maximum number of seconds to allow cURL functions to execute. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_TIMEOUT', 13); +/** + * The maximum number of milliseconds to allow cURL functions to execute. + * If libcurl is built to use the standard system name resolver, + * that portion of the connect will still use full-second resolution for timeouts with a minimum timeout allowed of one second. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.2 + */ +define('CURLOPT_TIMEOUT_MS', 155); +/** + * The full data to post in a HTTP "POST" operation. + * To post a file, prepend a filename with @ and use the full path. + * The filetype can be explicitly specified by following the filename with the type in the format ';type=mimetype'. + * This parameter can either be passed + * as a urlencoded string like 'para1=val1¶2=val2&...' + * or as an array with the field name as key and field data as value. + * If value is an array, the Content-Type header will be set to multipart/form-data. + * As of PHP 5.2.0, value must be an array if files are passed to this option with the @ prefix. + * As of PHP 5.5.0, the @ prefix is deprecated and files can be sent using CURLFile. + * The @ prefix can be disabled for safe passing of values beginning with @ by setting the CURLOPT_SAFE_UPLOAD option to TRUE. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_POSTFIELDS', 10015); +/** + * The contents of the "Referer: " header to be used in a HTTP request. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_REFERER', 10016); +/** + * A string containing 32 hexadecimal digits. + * The string should be the MD5 checksum of the remote host's public key, and libcurl will reject the connection to the host unless the md5sums match. + * This option is only for SCP and SFTP transfers. + * @link https://php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSH_HOST_PUBLIC_KEY_MD5', 10162); +/** + * The file name for your public key. If not used, libcurl defaults to $HOME/.ssh/id_dsa.pub + * if the HOME environment variable is set, and just "id_dsa.pub" in the current directory if HOME is not set. + * @link https://php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSH_PUBLIC_KEYFILE', 10152); +/** + * The file name for your private key. If not used, libcurl defaults to $HOME/.ssh/id_dsa + * if the HOME environment variable is set, and just "id_dsa" in the current directory if HOME is not set. + * If the file is password-protected, set the password with CURLOPT_KEYPASSWD. + * @link https://php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSH_PRIVATE_KEYFILE', 10153); +/** + * The contents of the "User-Agent: " header to be used in a HTTP request. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_USERAGENT', 10018); +/** + * The value which will be used to get the IP address to use for the FTP "PORT" instruction. + * The "PORT" instruction tells the remote server to connect to our specified IP address. + * The string may be a plain IP address, a hostname, a network interface name (under Unix), + * or just a plain '-' to use the systems default IP address. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTPPORT', 10017); +/** + * TRUE to first try an EPSV command for FTP transfers before reverting back to PASV. Set to FALSE to disable EPSV. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTP_USE_EPSV', 85); +/** + * The transfer speed, in bytes per second, that the transfer should be below during the count of CURLOPT_LOW_SPEED_TIME seconds + * before PHP considers the transfer too slow and aborts. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_LOW_SPEED_LIMIT', 19); +/** + * The number of seconds the transfer speed should be below CURLOPT_LOW_SPEED_LIMIT + * before PHP considers the transfer too slow and aborts. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_LOW_SPEED_TIME', 20); +/** + * The offset, in bytes, to resume a transfer from. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_RESUME_FROM', 21); +/** + * The contents of the "Cookie: " header to be used in the HTTP request. + * Note that multiple cookies are separated with a semicolon followed by a space (e.g., "fruit=apple; colour=red") + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_COOKIE', 10022); + +/** + * TRUE to mark this as a new cookie "session". + * It will force libcurl to ignore all cookies it is about to load that are "session cookies" from the previous session. + * By default, libcurl always stores and loads all cookies, independent if they are session cookies or not. + * Session cookies are cookies without expiry date and they are meant to be alive and existing for this "session" only. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_COOKIESESSION', 96); + +/** + * TRUE to automatically set the Referer: field in requests where it follows a Location: redirect. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_AUTOREFERER', 58); +/** + * The name of a file containing a PEM formatted certificate. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLCERT', 10025); +/** + * The password required to use the CURLOPT_SSLCERT certificate. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLCERTPASSWD', 10026); +/** + * The file that the header part of the transfer is written to. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_WRITEHEADER', 10029); +/** + * 1 to check the existence of a common name in the SSL peer certificate. (Deprecated) + * 2 to check the existence of a common name and also verify that it matches the hostname provided. + * 0 to not check the names. In production environments the value of this option should be kept at 2 (default value). + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSL_VERIFYHOST', 81); +/** + * The name of the file containing the cookie data. + * The cookie file can be in Netscape format, or just plain HTTP-style headers dumped into a file. + * If the name is an empty string, no cookies are loaded, but cookie handling is still enabled. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_COOKIEFILE', 10031); +/** + * One of CURL_SSLVERSION_DEFAULT (0), CURL_SSLVERSION_TLSv1 (1), CURL_SSLVERSION_SSLv2 (2), CURL_SSLVERSION_SSLv3 (3), + * CURL_SSLVERSION_TLSv1_0 (4), CURL_SSLVERSION_TLSv1_1 (5) or CURL_SSLVERSION_TLSv1_2 (6). + * The maximum TLS version can be set by using one of the CURL_SSLVERSION_MAX_* constants. + * It is also possible to OR one of the CURL_SSLVERSION_* constants with one of the CURL_SSLVERSION_MAX_* constants. + * CURL_SSLVERSION_MAX_DEFAULT (the maximum version supported by the library), CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, + * CURL_SSLVERSION_MAX_TLSv1_2, or CURL_SSLVERSION_MAX_TLSv1_3. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLVERSION', 32); +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURL_SSLVERSION_DEFAULT', 0); +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURL_SSLVERSION_TLSv1', 1); +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURL_SSLVERSION_SSLv2', 2); +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURL_SSLVERSION_SSLv3', 3); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.6.3 + * @since 5.5.19 + */ +define('CURL_SSLVERSION_TLSv1_0', 4); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.6.3 + * @since 5.5.19 + */ +define('CURL_SSLVERSION_TLSv1_1', 5); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.6.3 + * @since 5.5.19 + */ +define('CURL_SSLVERSION_TLSv1_2', 6); +/** + * How CURLOPT_TIMEVALUE is treated. + * Use CURL_TIMECOND_IFMODSINCE to return the page only if it has been modified since the time specified in CURLOPT_TIMEVALUE. + * If it hasn't been modified, a "304 Not Modified" header will be returned assuming CURLOPT_HEADER is TRUE. + * Use CURL_TIMECOND_IFUNMODSINCE for the reverse effect. + * CURL_TIMECOND_IFMODSINCE is the default. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_TIMECONDITION', 33); +/** + * The time in seconds since January 1st, 1970. + * The time will be used by CURLOPT_TIMECONDITION. By default, CURL_TIMECOND_IFMODSINCE is used. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_TIMEVALUE', 34); +/** + * A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request. + * This is useful for doing "DELETE" or other, more obscure HTTP requests. + * Valid values are things like "GET", "POST", "CONNECT" and so on; i.e. Do not enter a whole HTTP request line here. + * For instance, entering "GET /index.html HTTP/1.0\r\n\r\n" would be incorrect. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CUSTOMREQUEST', 10036); +/** + * An alternative location to output errors to instead of STDERR. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_STDERR', 10037); +/** + * TRUE to use ASCII mode for FTP transfers. + * For LDAP, it retrieves data in plain text instead of HTML. + * On Windows systems, it will not set STDOUT to binary mode. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_TRANSFERTEXT', 53); +/** + * TRUE to return the transfer as a string of the return value of {@see curl_exec()} instead of outputting it directly. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_RETURNTRANSFER', 19913); +/** + * An array of FTP commands to execute on the server prior to the FTP request. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_QUOTE', 10028); +/** + * An array of FTP commands to execute on the server after the FTP request has been performed. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_POSTQUOTE', 10039); +/** + * The name of the outgoing network interface to use. This can be an interface name, an IP address or a host name. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_INTERFACE', 10062); +/** + * The KRB4 (Kerberos 4) security level. + * Any of the following values (in order from least to most powerful) are valid: "clear", "safe", "confidential", "private". + * If the string does not match one of these, "private" is used. + * Setting this option to NULL will disable KRB4 security. Currently KRB4 security only works with FTP transactions. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_KRB4LEVEL', 10063); +/** + * TRUE to tunnel through a given HTTP proxy. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTPPROXYTUNNEL', 61); +/** + * TRUE to attempt to retrieve the modification date of the remote document. + * This value can be retrieved using the CURLINFO_FILETIME option with {@see curl_getinfo()}. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FILETIME', 69); +/** + * A callback accepting two parameters. The first is the cURL resource, and the second is a string with the data to be written. + * The data must be saved by this callback. It must return the exact number of bytes written or the transfer will be aborted with an error. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_WRITEFUNCTION', 20011); +/** + * A callback accepting three parameters. + * The first is the cURL resource, + * the second is a stream resource provided to cURL through the option CURLOPT_INFILE, + * and the third is the maximum amount of data to be read. + * The callback must return a string with a length equal or smaller than the amount of data requested, typically by reading it from the passed stream resource. + * It should return an empty string to signal EOF. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_READFUNCTION', 20012); +/** + * A callback accepting two parameters. The first is the cURL resource, the second is a string with the header data to be written. + * The header data must be written by this callback. Return the number of bytes written. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HEADERFUNCTION', 20079); +/** + * The maximum amount of HTTP redirections to follow. Use this option alongside CURLOPT_FOLLOWLOCATION. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_MAXREDIRS', 68); +/** + * The maximum amount of persistent connections that are allowed. + * When the limit is reached, CURLOPT_CLOSEPOLICY is used to determine which connection to close. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_MAXCONNECTS', 71); +/** + * This option is deprecated, as it was never implemented in cURL and never had any effect. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @removed 5.6 + */ +define('CURLOPT_CLOSEPOLICY', 72); +/** + * TRUE to force the use of a new connection instead of a cached one. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FRESH_CONNECT', 74); +/** + * TRUE to force the connection to explicitly close when it has finished processing, and not be pooled for reuse. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FORBID_REUSE', 75); +/** + * A filename to be used to seed the random number generator for SSL. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_RANDOM_FILE', 10076); +/** + * Like CURLOPT_RANDOM_FILE, except a filename to an Entropy Gathering Daemon socket. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_EGDSOCKET', 10077); + +/** + * The number of seconds to wait while trying to connect. Use 0 to wait indefinitely. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CONNECTTIMEOUT', 78); + +/** + * The number of milliseconds to wait while trying to connect. Use 0 to wait indefinitely. + * If libcurl is built to use the standard system name resolver, that portion of the connect + * will still use full-second resolution for timeouts with a minimum timeout allowed of one second. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.2.3 + */ +define('CURLOPT_CONNECTTIMEOUT_MS', 156); +/** + * FALSE to stop cURL from verifying the peer's certificate. + * Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or + * a certificate directory can be specified with the CURLOPT_CAPATH option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSL_VERIFYPEER', 64); +/** + * The name of a file holding one or more certificates to verify the peer with. + * This only makes sense when used in combination with CURLOPT_SSL_VERIFYPEER. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CAINFO', 10065); +/** + * A directory that holds multiple CA certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CAPATH', 10097); +/** + * The name of a file to save all internal cookies to when the handle is closed, e.g. after a call to curl_close. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_COOKIEJAR', 10082); +/** + * A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSL_CIPHER_LIST', 10083); +/** + * TRUE to return the raw output when CURLOPT_RETURNTRANSFER is used. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @deprecated 5.1.3 + */ +define('CURLOPT_BINARYTRANSFER', 19914); +/** + * TRUE to ignore any cURL function that causes a signal to be sent to the PHP process. + * This is turned on by default in multi-threaded SAPIs so timeout options can still be used. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_NOSIGNAL', 99); +/** + * Either CURLPROXY_HTTP (default), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A or CURLPROXY_SOCKS5_HOSTNAME. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PROXYTYPE', 101); +/** + * The size of the buffer to use for each read. There is no guarantee this request will be fulfilled, however. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_BUFFERSIZE', 98); +/** + * TRUE to reset the HTTP request method to GET. Since GET is the default, this is only necessary if the request method has been changed. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTPGET', 80); +/** + * CURL_HTTP_VERSION_NONE (default, lets CURL decide which version to use), + * CURL_HTTP_VERSION_1_0 (forces HTTP/1.0), CURL_HTTP_VERSION_1_1 (forces HTTP/1.1), CURL_HTTP_VERSION_2_0 (attempts HTTP 2), + * CURL_HTTP_VERSION_2 (alias of CURL_HTTP_VERSION_2_0), CURL_HTTP_VERSION_2TLS (attempts HTTP 2 over TLS (HTTPS) only) or + * CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE (issues non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade). + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTP_VERSION', 84); +/** + * The name of a file containing a private SSL key. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLKEY', 10087); +/** + * The key type of the private SSL key specified in CURLOPT_SSLKEY. + * Supported key types are "PEM" (default), "DER", and "ENG". + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLKEYTYPE', 10088); +/** + * The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY. + * (Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe) + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLKEYPASSWD', 10026); +/** + * The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLENGINE', 10089); +/** + * The identifier for the crypto engine used for asymmetric crypto operations. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLENGINE_DEFAULT', 90); +/** + * The format of the certificate. + * Supported formats are "PEM" (default), "DER", and "ENG". As of OpenSSL 0.9.3, "P12" (for PKCS#12-encoded files) is also supported. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_SSLCERTTYPE', 10086); +/** + * TRUE to convert Unix newlines to CRLF newlines on transfers. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_CRLF', 27); +/** + * The contents of the "Accept-Encoding: " header. This enables decoding of the response. + * Supported encodings are "identity", "deflate", and "gzip". + * If an empty string, "", is set, a header containing all supported encoding types is sent. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_ENCODING', 10102); +/** + * The port number of the proxy to connect to. This port number can also be set in CURLOPT_PROXY. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PROXYPORT', 59); +/** + * TRUE to keep sending the username and password when following locations + * (using CURLOPT_FOLLOWLOCATION), even when the hostname has changed. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_UNRESTRICTED_AUTH', 105); +/** + * TRUE to use EPRT (and LPRT) when doing active FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT only. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTP_USE_EPRT', 106); + +/** + * TRUE to disable TCP's Nagle algorithm, which tries to minimize the number of small packets on the network. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.2.1 + */ +define('CURLOPT_TCP_NODELAY', 121); +/** + * An array of HTTP 200 responses that will be treated as valid responses and not as errors. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTP200ALIASES', 10104); +/** + * Value for the CURLOPT_TIMECONDITION option. + * Return the page only if it has been modified since the time specified in CURLOPT_TIMEVALUE. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html + */ +define('CURL_TIMECOND_IFMODSINCE', 1); +/** + * Value for the CURLOPT_TIMECONDITION option. + * Return the page if it hasn't been modified since the time specified in CURLOPT_TIMEVALUE. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html + */ +define('CURL_TIMECOND_IFUNMODSINCE', 2); +/** + * Value for the CURLOPT_TIMECONDITION option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURL_TIMECOND_LASTMOD', 3); +/** + * The HTTP authentication method(s) to use. + * The options are: CURLAUTH_BASIC, CURLAUTH_DIGEST, CURLAUTH_GSSNEGOTIATE, CURLAUTH_NTLM, CURLAUTH_ANY, and CURLAUTH_ANYSAFE. + * The bitwise | (or) operator can be used to combine more than one method. + * If this is done, cURL will poll the server to see what methods it supports and pick the best one. + * CURLAUTH_ANY is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. + * CURLAUTH_ANYSAFE is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_HTTPAUTH', 107); +/** + * Value for the CURLOPT_HTTPAUTH option. + * Allows username/password authentication. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_BASIC', 1); +/** + * Value for the CURLOPT_HTTPAUTH option. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_DIGEST', 2); +/** + * Value for the CURLOPT_HTTPAUTH option. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_GSSNEGOTIATE', 4); +/** + * Value for the CURLOPT_HTTPAUTH option. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_NTLM', 8); +/** + * Value for the CURLOPT_HTTPAUTH option. + * Is an alias for CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_ANY', -17); +/** + * Value for the CURLOPT_HTTPAUTH option. + * Is an alias for CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM. + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define('CURLAUTH_ANYSAFE', -18); +/** + * The HTTP authentication method(s) to use for the proxy connection. + * Use the same bitmasks as described in CURLOPT_HTTPAUTH. + * For proxy authentication, only CURLAUTH_BASIC and CURLAUTH_NTLM are currently supported. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_PROXYAUTH', 111); +/** + * TRUE to create missing directories when an FTP operation encounters a path that currently doesn't exist. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_FTP_CREATE_MISSING_DIRS', 110); + +/** + * Any data that should be associated with this cURL handle. + * This data can subsequently be retrieved with the CURLINFO_PRIVATE option of {@see curl_getinfo()}. cURL does nothing with this data. + * When using a cURL multi handle, this private data is typically a unique key to identify a standard cURL handle. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.2.4 + */ +define('CURLOPT_PRIVATE', 10103); + +/** + * The last response code + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_RESPONSE_CODE', 2097154); +/** + * The CONNECT response code + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_HTTP_CONNECTCODE', 2097174); +/** + * Bitmask indicating the authentication method(s) available according to the previous response + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_HTTPAUTH_AVAIL', 2097175); +/** + * Bitmask indicating the proxy authentication method(s) available according to the previous response + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_PROXYAUTH_AVAIL', 2097176); +/** + * Errno from a connect failure. The number is OS and system specific. + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_OS_ERRNO', 2097177); +/** + * Number of connections curl had to create to achieve the previous transfer + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_NUM_CONNECTS', 2097178); +/** + * OpenSSL crypto-engines supported + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_SSL_ENGINES', 4194331); +/** + * All known cookies + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_COOKIELIST', 4194332); +/** + * Entry path in FTP server + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_FTP_ENTRY_PATH', 1048606); +/** + * Time in seconds it took from the start until the SSL/SSH connect/handshake to the remote host was completed + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_APPCONNECT_TIME', 3145761); +/** + * TLS certificate chain + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_CERTINFO', 4194338); +/** + * Info on unmet time conditional + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_CONDITION_UNMET', 2097187); +/** + * Next RTSP client CSeq + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_RTSP_CLIENT_CSEQ', 2097189); +/** + * Recently received CSeq + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_RTSP_CSEQ_RECV', 2097191); +/** + * Next RTSP server CSeq + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_RTSP_SERVER_CSEQ', 2097190); +/** + * RTSP session ID + * @link https://php.net/manual/en/function.curl-getinfo.php + * @since 5.5 + */ +define('CURLINFO_RTSP_SESSION_ID', 1048612); +/** + * Value for the CURLOPT_CLOSEPOLICY option. + * @link https://www.php.net/manual/en/curl.constants.php + * @removed 5.6 + */ +define('CURLCLOSEPOLICY_LEAST_RECENTLY_USED', 2); +/** + * Value for the CURLOPT_CLOSEPOLICY option. + * @link https://www.php.net/manual/en/curl.constants.php + * @removed 5.6 + */ +define('CURLCLOSEPOLICY_LEAST_TRAFFIC', 3); +/** + * Value for the CURLOPT_CLOSEPOLICY option. + * @link https://www.php.net/manual/en/curl.constants.php + * @removed 5.6 + */ +define('CURLCLOSEPOLICY_SLOWEST', 4); +/** + * Value for the CURLOPT_CLOSEPOLICY option. + * @link https://www.php.net/manual/en/curl.constants.php + * @removed 5.6 + */ +define('CURLCLOSEPOLICY_CALLBACK', 5); +/** + * Value for the CURLOPT_CLOSEPOLICY option. + * @link https://www.php.net/manual/en/curl.constants.php + * @removed 5.6 + */ +define('CURLCLOSEPOLICY_OLDEST', 1); +/** + * Last effective URL + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_EFFECTIVE_URL', 1048577); +/** + * As of PHP 5.5.0 and cURL 7.10.8, this is a legacy alias of CURLINFO_RESPONSE_CODE. + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_HTTP_CODE', 2097154); +/** + * Total size of all headers received + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_HEADER_SIZE', 2097163); +/** + * Total size of issued requests, currently only for HTTP requests + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_REQUEST_SIZE', 2097164); +/** + * Total transaction time in seconds for last transfer + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_TOTAL_TIME', 3145731); +/** + * Time in seconds until name resolving was complete + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_NAMELOOKUP_TIME', 3145732); +/** + * Time in seconds it took to establish the connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_CONNECT_TIME', 3145733); +/** + * Time in seconds from start until just before file transfer begins + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_PRETRANSFER_TIME', 3145734); +/** + * Total number of bytes uploaded + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_SIZE_UPLOAD', 3145735); +/** + * Total number of bytes downloaded + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_SIZE_DOWNLOAD', 3145736); +/** + * Average download speed + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_SPEED_DOWNLOAD', 3145737); +/** + * Average upload speed + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_SPEED_UPLOAD', 3145738); +/** + * Remote time of the retrieved document, with the CURLOPT_FILETIME enabled; + * if -1 is returned the time of the document is unknown + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_FILETIME', 2097166); +/** + * Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_SSL_VERIFYRESULT', 2097165); +/** + * Content length of download, read from Content-Length: field + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_CONTENT_LENGTH_DOWNLOAD', 3145743); +/** + * Specified size of upload + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_CONTENT_LENGTH_UPLOAD', 3145744); +/** + * Time in seconds until the first byte is about to be transferred + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_STARTTRANSFER_TIME', 3145745); +/** + * Content-Type: of the requested document. NULL indicates server did not send valid Content-Type: header + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_CONTENT_TYPE', 1048594); +/** + * Time in seconds of all redirection steps before final transaction was started, + * with the CURLOPT_FOLLOWLOCATION option enabled + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_REDIRECT_TIME', 3145747); +/** + * Number of redirects, with the CURLOPT_FOLLOWLOCATION option enabled + * @link https://www.php.net/manual/en/function.curl-getinfo.php + */ +define('CURLINFO_REDIRECT_COUNT', 2097172); + +/** + * TRUE to track the handle's request string + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.1.3 + */ +define('CURLINFO_HEADER_OUT', 2); + +/** + * Private data associated with this cURL handle, previously set with the CURLOPT_PRIVATE option of {@see curl_getinfo()} + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 5.2.4 + */ +define('CURLINFO_PRIVATE', 1048597); + +/** + * @since 8.3 + */ +define('CURLINFO_CAPATH', 1048638); + +/** + * @since 8.3 + */ +define('CURLINFO_CAINFO', 1048637); + +/** + * Supports IPv6 + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_VERSION_IPV6', 1); +/** + * Supports Kerberos V4 (when using FTP) + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_VERSION_KERBEROS4', 2); +/** + * Supports SSL (HTTPS/FTPS) + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_VERSION_SSL', 4); +/** + * Supports HTTP deflate using libz + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_VERSION_LIBZ', 8); +/** + * Will be the most recent age value for the libcurl. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLVERSION_NOW', 10); +/** + * All fine. Proceed as usual. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_OK', 0); + +/** + * @since 8.3 + */ +define('CURLKHMATCH_OK', 0); + +/** + * @since 8.3 + */ +define('CURLKHMATCH_MISMATCH', 1); + +/** + * @since 8.3 + */ +define('CURLKHMATCH_MISSING', 2); + +/** + * @since 8.3 + */ +define('CURLKHMATCH_LAST', 3); + +/** + * @since 8.3 + */ +define('CURLOPT_MIME_OPTIONS', 315); + +/** + * @since 8.3 + */ +define('CURLMIMEOPT_FORMESCAPE', 1); + +/** + * The URL you passed to libcurl used a protocol that this libcurl does not support. + * The support might be a compile-time option that you didn't use, + * it can be a misspelled protocol string or just a protocol libcurl has no code for. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_UNSUPPORTED_PROTOCOL', 1); +/** + * Very early initialization code failed. + * This is likely to be an internal error or problem, + * or a resource problem where something fundamental couldn't get done at init time. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FAILED_INIT', 2); +/** + * The URL was not properly formatted. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_URL_MALFORMAT', 3); +/** + * A requested feature, protocol or option was not found built-in in this libcurl due to a build-time decision. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_URL_MALFORMAT_USER', 4); +/** + * Couldn't resolve proxy. The given proxy host could not be resolved. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_COULDNT_RESOLVE_PROXY', 5); +/** + * Couldn't resolve host. The given remote host was not resolved. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_COULDNT_RESOLVE_HOST', 6); +/** + * Failed to connect to host or proxy. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_COULDNT_CONNECT', 7); +/** + * The server sent data libcurl couldn't parse. + * This error code was known as as CURLE_FTP_WEIRD_SERVER_REPLY before 7.51.0. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_WEIRD_SERVER_REPLY', 8); +/** + * We were denied access to the resource given in the URL. + * For FTP, this occurs while trying to change to the remote directory. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_ACCESS_DENIED', 9); +/** + * While waiting for the server to connect back when an active FTP session is used, + * an error code was sent over the control connection or similar. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_USER_PASSWORD_INCORRECT', 10); +/** + * After having sent the FTP password to the server, libcurl expects a proper reply. + * This error code indicates that an unexpected code was returned. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_WEIRD_PASS_REPLY', 11); +/** + * During an active FTP session while waiting for the server to connect, + * the CURLOPT_ACCEPTTIMEOUT_MS (or the internal default) timeout expired. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_WEIRD_USER_REPLY', 12); +/** + * Libcurl failed to get a sensible result back from the server as a response to either a PASV or a EPSV command. + * The server is flawed. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_WEIRD_PASV_REPLY', 13); +/** + * FTP servers return a 227-line as a response to a PASV command. + * If libcurl fails to parse that line, this return code is passed back. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_WEIRD_227_FORMAT', 14); +/** + * An internal failure to lookup the host used for the new connection. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_CANT_GET_HOST', 15); +/** + * A problem was detected in the HTTP2 framing layer. + * This is somewhat generic and can be one out of several problems, see the error buffer for details. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_CANT_RECONNECT', 16); +/** + * Received an error when trying to set the transfer mode to binary or ASCII. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_COULDNT_SET_BINARY', 17); +/** + * A file transfer was shorter or larger than expected. + * This happens when the server first reports an expected transfer size, and then delivers data + * that doesn't match the previously given size. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_PARTIAL_FILE', 18); +/** + * This was either a weird reply to a 'RETR' command or a zero byte transfer complete. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_COULDNT_RETR_FILE', 19); +/** + * After a completed file transfer, the FTP server did not respond a proper + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_FTP_WRITE_ERROR', 20); +/** + * When sending custom "QUOTE" commands to the remote server, + * one of the commands returned an error code that was 400 or higher (for FTP) or otherwise indicated unsuccessful completion of the command. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_QUOTE_ERROR', 21); +/** + * This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_HTTP_NOT_FOUND', 22); +/** + * An error occurred when writing received data to a local file, or an error was returned to libcurl from a write callback. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_WRITE_ERROR', 23); +/** + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_MALFORMAT_USER', 24); +/** + * Failed starting the upload. For FTP, the server typically denied the STOR command. + * The error buffer usually contains the server's explanation for this. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_COULDNT_STOR_FILE', 25); +/** + * There was a problem reading a local file or an error returned by the read callback. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_READ_ERROR', 26); +/** + * A memory allocation request failed. This is serious badness and things are severely screwed up if this ever occurs. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_OUT_OF_MEMORY', 27); +/** + * Operation timeout. The specified time-out period was reached according to the conditions. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_OPERATION_TIMEOUTED', 28); +/** + * libcurl failed to set ASCII transfer type (TYPE A). + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_FTP_COULDNT_SET_ASCII', 29); +/** + * The FTP PORT command returned error. + * This mostly happens when you haven't specified a good enough address for libcurl to use. See CURLOPT_FTPPORT. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_PORT_FAILED', 30); +/** + * The FTP REST command returned error. This should never happen if the server is sane. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_COULDNT_USE_REST', 31); +/** + * The FTP SIZE command returned error. SIZE is not a kosher FTP command, + * it is an extension and not all servers support it. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_FTP_COULDNT_GET_SIZE', 32); +/** + * The server does not support or accept range requests. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_HTTP_RANGE_ERROR', 33); +/** + * This is an odd error that mainly occurs due to internal confusion. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_HTTP_POST_ERROR', 34); +/** + * A problem occurred somewhere in the SSL/TLS handshake. + * You really want the error buffer and read the message there as it pinpoints the problem slightly more. + * Could be certificates (file formats, paths, permissions), passwords, and others. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_CONNECT_ERROR', 35); +/** + * The download could not be resumed because the specified offset was out of the file boundary. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_BAD_DOWNLOAD_RESUME', 36); +/** + * A file given with FILE:// couldn't be opened. + * Most likely because the file path doesn't identify an existing file. Did you check file permissions? + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FILE_COULDNT_READ_FILE', 37); +/** + * LDAP cannot bind. LDAP bind operation failed. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_LDAP_CANNOT_BIND', 38); +/** + * LDAP search failed. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_LDAP_SEARCH_FAILED', 39); +/** + * Library not found. The LDAP library was not found. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_LIBRARY_NOT_FOUND', 40); +/** + * Function not found. A required zlib function was not found. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FUNCTION_NOT_FOUND', 41); +/** + * Aborted by callback. A callback returned "abort" to libcurl. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_ABORTED_BY_CALLBACK', 42); +/** + * A function was called with a bad parameter. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_BAD_FUNCTION_ARGUMENT', 43); +/** + * This is never returned + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_BAD_CALLING_ORDER', 44); +/** + * Interface error. A specified outgoing interface could not be used. + * Set which interface to use for outgoing connections' source IP address with CURLOPT_INTERFACE. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_HTTP_PORT_FAILED', 45); +/** + * This is never returned + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_BAD_PASSWORD_ENTERED', 46); +/** + * Too many redirects. When following redirects, libcurl hit the maximum amount. + * Set your limit with CURLOPT_MAXREDIRS. + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_TOO_MANY_REDIRECTS', 47); +/** + * An option passed to libcurl is not recognized/known. Refer to the appropriate documentation. + * This is most likely a problem in the program that uses libcurl. + * The error buffer might contain more specific information about which exact option it concerns. + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_UNKNOWN_TELNET_OPTION', 48); +/** + * A telnet option string was Illegally formatted. + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_TELNET_OPTION_SYNTAX', 49); +/** + * Currently unused. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLE_OBSOLETE', 50); +/** + * The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK. + * This error code has been unified with CURLE_SSL_CACERT since 7.62.0. Its previous value was 51. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_PEER_CERTIFICATE', 60); +/** + * Nothing was returned from the server, and under the circumstances, getting nothing is considered an error. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_GOT_NOTHING', 52); +/** + * The specified crypto engine wasn't found. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_ENGINE_NOTFOUND', 53); +/** + * Failed setting the selected SSL crypto engine as default! + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_ENGINE_SETFAILED', 54); +/** + * Failed sending network data. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SEND_ERROR', 55); +/** + * Failure with receiving network data. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_RECV_ERROR', 56); +/** + * The share object is currently in use. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SHARE_IN_USE', 57); +/** + * Problem with the local client certificate. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_CERTPROBLEM', 58); +/** + * Couldn't use specified cipher. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_CIPHER', 59); +/** + * The remote server's SSL certificate or SSH md5 fingerprint was deemed not OK. + * This error code has been unified with CURLE_SSL_PEER_CERTIFICATE since 7.62.0. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_SSL_CACERT', 60); +/** + * Unrecognized transfer encoding. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_BAD_CONTENT_ENCODING', 61); +/** + * Invalid LDAP URL. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_LDAP_INVALID_URL', 62); +/** + * Maximum file size exceeded. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FILESIZE_EXCEEDED', 63); +/** + * Requested FTP SSL level failed. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLE_FTP_SSL_FAILED', 64); +/** + * Value for the CURLOPT_PROXYTYPE option. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLPROXY_HTTP', 0); +/** + * Value for the CURLOPT_PROXYTYPE option. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLPROXY_SOCKS4', 4); +/** + * Value for the CURLOPT_PROXYTYPE option. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLPROXY_SOCKS5', 5); +/** + * Value for the CURLOPT_NETRC option. + * The use of the ~/.netrc file is optional, and information in the URL is to be preferred. + * The file will be scanned for the host and user name (to find the password only) or for the host only, + * to find the first user name and password after that machine, which ever information is not specified. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html + */ +define('CURL_NETRC_OPTIONAL', 1); +/** + * Value for the CURLOPT_NETRC option. + * The library will ignore the ~/.netrc file. This is the default. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html + */ +define('CURL_NETRC_IGNORED', 0); +/** + * Value for the CURLOPT_NETRC option. + * The use of the ~/.netrc file is required, and information in the URL is to be ignored. + * The file will be scanned for the host and user name (to find the password only) or for the host only, + * to find the first user name and password after that machine, which ever information is not specified. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC.html + */ +define('CURL_NETRC_REQUIRED', 2); +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Let's CURL decide which version to use. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_HTTP_VERSION_NONE', 0); +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Forces HTTP/1.0. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_HTTP_VERSION_1_0', 1); +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Forces HTTP/1.1. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_HTTP_VERSION_1_1', 2); +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Attempts HTTP 2. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURL_HTTP_VERSION_2_0', 3); +/** + * This is not really an error. It means you should call {@see curl_multi_exec()} again without doing select() or similar in between. + * Before version 7.20.0 this could be returned by {@see curl_multi_exec()}, but in later versions this return code is never used. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_CALL_MULTI_PERFORM', -1); +/** + * Things are fine. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_OK', 0); +/** + * The passed-in handle is not a valid CURLM handle. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_BAD_HANDLE', 1); +/** + * An easy handle was not good/valid. It could mean that it isn't an easy handle at all, + * or possibly that the handle already is in use by this or another multi handle. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_BAD_EASY_HANDLE', 2); +/** + * Out of memory error. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_OUT_OF_MEMORY', 3); +/** + * libcurl' internal error. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define('CURLM_INTERNAL_ERROR', 4); +/** + * The message identifies a transfer that is done, and then result contains the return code for the easy handle that just completed. + * Other return values are currently not available. + * @link https://www.php.net/manual/en/function.curl-multi-info-read.php + * @link https://curl.haxx.se/libcurl/c/curl_multi_info_read.html + */ +define('CURLMSG_DONE', 1); + +/** + * The FTP authentication method (when is activated): + * CURLFTPAUTH_SSL (try SSL first), CURLFTPAUTH_TLS (try TLS first), or CURLFTPAUTH_DEFAULT (let cURL decide). + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLOPT_FTPSSLAUTH', 129); + +/** + * Value for the CURLOPT_FTPSSLAUTH option. + * Let cURL decide FTP authentication method. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPAUTH_DEFAULT', 0); + +/** + * Value for the CURLOPT_FTPSSLAUTH option. + * Try SSL first as FTP authentication method. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPAUTH_SSL', 1); + +/** + * Value for the CURLOPT_FTPSSLAUTH option. + * Try TLS first as FTP authentication method. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPAUTH_TLS', 2); + +/** + * @link https://php.net/manual/en/curl.constants.php + * @deprecated use CURLOPT_USE_SSL instead. + */ +define('CURLOPT_FTP_SSL', 119); + +/** + * Value for the CURLOPT_FTP_SSL option. + * Don't attempt to use SSL. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPSSL_NONE', 0); + +/** + * Value for the CURLOPT_FTP_SSL option. + * Try using SSL, proceed as normal otherwise. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPSSL_TRY', 1); + +/** + * Value for the CURLOPT_FTP_SSL option. + * Require SSL for the control connection or fail. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPSSL_CONTROL', 2); + +/** + * Value for the CURLOPT_FTP_SSL option. + * Require SSL for all communication or fail. + * @link https://php.net/manual/en/curl.constants.php + */ +define('CURLFTPSSL_ALL', 3); +/** + * Tell curl which method to use to reach a file on a FTP(S) server. + * Possible values are CURLFTPMETHOD_MULTICWD, CURLFTPMETHOD_NOCWD and CURLFTPMETHOD_SINGLECWD. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.3 + */ +define('CURLOPT_FTP_FILEMETHOD', 138); +/** + * Ignore the IP address in the PASV response + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SKIP_PASV_IP.html + */ +define('CURLOPT_FTP_SKIP_PASV_IP', 137); +/** + * TRUE to disable support for the @ prefix for uploading files in CURLOPT_POSTFIELDS, + * which means that values starting with @ can be safely passed as fields. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + * @deprecated 7.0 Use CURLFile for uploads instead. + */ +define('CURLOPT_SAFE_UPLOAD', -1); +/** + * Value for the CURLOPT_FTP_FILEMETHOD option. + * libcurl does a single CWD operation for each path part in the given URL. + * For deep hierarchies this means many commands. This is how RFC 1738 says it should be done. This is the default but the slowest behavior. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURLFTPMETHOD_MULTICWD', 1); +/** + * Value for the CURLOPT_FTP_FILEMETHOD option. + * libcurl does no CWD at all. + * libcurl will do SIZE, RETR, STOR etc and give a full path to the server for all these commands. This is the fastest behavior. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURLFTPMETHOD_NOCWD', 2); +/** + * Value for the CURLOPT_FTP_FILEMETHOD option. + * libcurl does one CWD with the full target directory and then operates on the file "normally" (like in the multicwd case). + * This is somewhat more standards compliant than 'nocwd' but without the full penalty of 'multicwd'. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define('CURLFTPMETHOD_SINGLECWD', 3); + + /** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ + define('CURLPROTO_HTTP', 1); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_HTTPS', 2); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_FTP', 4); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_FTPS', 8); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_SCP', 16); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_SFTP', 32); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_TELNET', 64); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_LDAP', 128); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_LDAPS', 256); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_DICT', 512); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_FILE', 1024); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_TFTP', 2048); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLPROTO_ALL', -1); + +/** + * As of cURL 7.43.0, the value is a bitmask. + * Pass 1 to enable or 0 to disable. + * Enabling pipelining on a multi handle will make it attempt to perform HTTP Pipelining as far as possible for transfers + * using this handle. This means that if you add a second request that can use an already existing connection, + * the second request will be "piped" on the same connection. + * Pass 2 to try to multiplex the new transfer over an existing HTTP/2 connection if possible. + * Pass 3 instructs cURL to ask for pipelining and multiplexing independently of each other. + * As of cURL 7.62.0, setting the pipelining bit has no effect. + * Instead of integer literals, you can also use the CURLPIPE_* constants if available. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 5.5 + */ +define('CURLMOPT_PIPELINING', 3); + +/** + * Pass a number that will be used as the maximum amount of simultaneously open connections that libcurl may cache. + * By default the size will be enlarged to fit four times the number of handles added via {@see curl_multi_add_handle()}. + * When the cache is full, curl closes the oldest one in the cache to prevent the number of open connections from increasing. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 5.5 + */ +define('CURLMOPT_MAXCONNECTS', 6); +/** + * Specifies a type of data that should be shared. + * @link https://www.php.net/manual/en/function.curl-share-setopt.php + */ +define('CURLSHOPT_SHARE', 1); +/** + * Specifies a type of data that will be no longer shared. + * @link https://www.php.net/manual/en/function.curl-share-setopt.php + */ +define('CURLSHOPT_UNSHARE', 2); +/** + * Value for the CURLSHOPT_SHARE option. + * Shares cookie data. + * @link https://www.php.net/manual/en/function.curl-share-setopt.php + */ +define('CURL_LOCK_DATA_COOKIE', 2); +/** + * Value for the CURLSHOPT_SHARE option. + * Shares DNS cache. Note that when you use cURL multi handles, + * all handles added to the same multi handle will share DNS cache by default. + * @link https://www.php.net/manual/en/function.curl-share-setopt.php + */ +define('CURL_LOCK_DATA_DNS', 3); +/** + * Value for the CURLSHOPT_SHARE option. + * Shares SSL session IDs, reducing the time spent on the SSL handshake when reconnecting to the same server. + * Note that SSL session IDs are reused within the same handle by default. + * @link https://www.php.net/manual/en/function.curl-share-setopt.php + */ +define('CURL_LOCK_DATA_SSL_SESSION', 4); +/** + * The password required to use the CURLOPT_SSLKEY or CURLOPT_SSH_PRIVATE_KEYFILE private key. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define('CURLOPT_KEYPASSWD', 10026); + +/** + * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option. + * libcurl will attempt to create any remote directory that it fails to "move" into. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html + * @since 7.0.7 + */ +define('CURLFTP_CREATE_DIR', 1); + +/** + * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option. + * libcurl will not attempt to create any remote directory that it fails to "move" into. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html + * @since 7.0.7 + */ +define('CURLFTP_CREATE_DIR_NONE', 0); + +/** + * Value for the CURLOPT_HTTPAUTH option. + * NTLM delegating to winbind helper. + * Authentication is performed by a separate binary application that is executed when needed. + * The name of the application is specified at compile time but is typically /usr/bin/ntlm_auth. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLAUTH_NTLM_WB', 32); + +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Alias of CURL_HTTP_VERSION_2_0 + * Attempts HTTP 2 + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_HTTP_VERSION_2', 3); + +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Attempts HTTP 2 over TLS (HTTPS) only + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_HTTP_VERSION_2TLS', 4); + +/** + * Value for the CURLOPT_HTTP_VERSION option. + * Issues non-TLS HTTP requests using HTTP/2 without HTTP/1.1 Upgrade + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE', 5); + +/** + * TRUE to enable sending the initial response in the first packet. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SASL_IR', 218); + +/** + * Set the name of the network interface that the DNS resolver should bind to. This must be an interface name (not an address). + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_DNS_INTERFACE', 10221); + +/** + * Set the local IPv4 address that the resolver should bind to. The argument should contain a single numerical IPv4 address as a string. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_DNS_LOCAL_IP4', 10222); + +/** + * Set the local IPv6 address that the resolver should bind to. The argument should contain a single numerical IPv6 address as a string. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_DNS_LOCAL_IP6', 10223); + +/** + * Specifies the OAuth 2.0 access token. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_XOAUTH2_BEARER', 10220); + +/** + * Can be used to set protocol specific login options, such as the preferred authentication mechanism via "AUTH=NTLM" or "AUTH=*", + * and should be used in conjunction with the CURLOPT_USERNAME option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_LOGIN_OPTIONS', 10224); + +/** + * The timeout for Expect: 100-continue responses in milliseconds. Defaults to 1000 milliseconds. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_EXPECT_100_TIMEOUT_MS', 227); + +/** + * FALSE to disable ALPN in the SSL handshake (if the SSL backend libcurl is built to use supports it), + * which can be used to negotiate http2. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SSL_ENABLE_ALPN', 226); + +/** + * FALSE to disable NPN in the SSL handshake (if the SSL backend libcurl is built to use supports it), + * which can be used to negotiate http2. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SSL_ENABLE_NPN', 225); + +/** + * Set the pinned public key. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". + * The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";". + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_PINNEDPUBLICKEY', 10230); + +/** + * Enables the use of Unix domain sockets as connection endpoint and sets the path to the given string. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_UNIX_SOCKET_PATH', 10231); + +/** + * TRUE to verify the certificate's status. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SSL_VERIFYSTATUS', 232); + +/** + * TRUE to not handle dot dot sequences. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_PATH_AS_IS', 234); + +/** + * TRUE to enable TLS false start. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SSL_FALSESTART', 233); + +/** + * TRUE to wait for pipelining/multiplexing. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_PIPEWAIT', 237); + +/** + * The proxy authentication service name. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_PROXY_SERVICE_NAME', 10235); + +/** + * The authentication service name. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_SERVICE_NAME', 10236); + +/** + * @since 8.3 + */ +define('CURLOPT_SSH_HOSTKEYFUNCTION', 20316); + +/** + * @since 8.3 + */ +define('CURLOPT_PROTOCOLS_STR', 10318); + +/** + * @since 8.3 + */ +define('CURLOPT_REDIR_PROTOCOLS_STR', 10319); + +/** + * @since 8.3 + */ +define('CURLOPT_WS_OPTIONS', 320); + +/** + * @since 8.3 + */ +define('CURLWS_RAW_MODE', 1); + +/** + * @since 8.3 + */ +define('CURLOPT_CA_CACHE_TIMEOUT', 321); + +/** + * @since 8.3 + */ +define('CURLOPT_QUICK_EXIT', 322); + +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * libcurl attempts to connect to ssh-agent or pageant and let the agent attempt the authentication. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLSSH_AUTH_AGENT', 16); + +/** + * Value for the CURLMOPT_PIPELINING option. + * Default, which means doing no attempts at pipelining or multiplexing. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html + * @since 7.0.7 + */ +define('CURLPIPE_NOTHING', 0); + +/** + * Value for the CURLMOPT_PIPELINING option. + * If this bit is set, libcurl will try to pipeline HTTP/1.1 requests on connections that are already established and in use to hosts. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html + * @deprecated 7.4 + * @since 7.0.7 + */ +define('CURLPIPE_HTTP1', 1); + +/** + * Value for the CURLMOPT_PIPELINING option. + * If this bit is set, libcurl will try to multiplex the new transfer over an existing connection if possible. This requires HTTP/2. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLMOPT_PIPELINING.html + * @since 7.0.7 + */ +define('CURLPIPE_MULTIPLEX', 2); + +/** + * Value for the CURLOPT_HEADEROPT option. + * Makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy. + * Proxy headers must be set with CURLOPT_PROXYHEADER to get used. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLHEADER_SEPARATE', 1); + +/** + * Value for the CURLOPT_HEADEROPT option. + * The headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies. + * With this option enabled, CURLOPT_PROXYHEADER will not have any effect. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLHEADER_UNIFIED', 0); + +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLPROTO_SMB', 67108864); + +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLPROTO_SMBS', 134217728); + +/** + * How to deal with headers. + * One of the following constants: + * CURLHEADER_UNIFIED: the headers specified in CURLOPT_HTTPHEADER will be used in requests both to servers and proxies. + * With this option enabled, CURLOPT_PROXYHEADER will not have any effect. + * CURLHEADER_SEPARATE: makes CURLOPT_HTTPHEADER headers only get sent to a server and not to a proxy. + * Proxy headers must be set with CURLOPT_PROXYHEADER to get used. + * Note that if a non-CONNECT request is sent to a proxy, libcurl will send both server headers and proxy headers. + * When doing CONNECT, libcurl will send CURLOPT_PROXYHEADER headers only to the proxy and then CURLOPT_HTTPHEADER headers only to the server. + * Defaults to CURLHEADER_SEPARATE as of cURL 7.42.1, and CURLHEADER_UNIFIED before. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_HEADEROPT', 229); + +/** + * An array of custom HTTP headers to pass to proxies. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define('CURLOPT_PROXYHEADER', 10228); + +/** + * Value for the CURLOPT_POSTREDIR option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_REDIR_POST_301', 1); + +/** + * Value for the CURLOPT_POSTREDIR option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_REDIR_POST_302', 2); + +/** + * Value for the CURLOPT_POSTREDIR option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_REDIR_POST_303', 4); + +/** + * Value for the CURLOPT_PROXYTYPE option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLPROXY_HTTP_1_0', 1); +/** + * Value for the CURLOPT_POSTREDIR option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_REDIR_POST_ALL', 7); + +/** + * Pass a number that specifies the chunk length threshold for pipelining in bytes. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.0.7 + */ +define('CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE', 30010); + +/** + * Pass a number that specifies the size threshold for pipelining penalty in bytes. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.0.7 + */ +define('CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE', 30009); + +/** + * Pass a number that specifies the maximum number of connections to a single host. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.0.7 + */ +define('CURLMOPT_MAX_HOST_CONNECTIONS', 7); + +/** + * Pass a number that specifies the maximum number of requests in a pipeline. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.0.7 + */ +define('CURLMOPT_MAX_PIPELINE_LENGTH', 8); + +/** + * Pass a number that specifies the maximum number of simultaneously open connections. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.0.7 + */ +define('CURLMOPT_MAX_TOTAL_CONNECTIONS', 13); + +/** + * Value for the CURLOPT_FTP_CREATE_MISSING_DIRS option. + * libcurl will not attempt to create any remote directory that it fails to "move" into. + * Tells libcurl to retry the CWD command again if the subsequent MKD command fails. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_CREATE_MISSING_DIRS.html + * @since 7.0.7 + */ +define('CURLFTP_CREATE_DIR_RETRY', 2); + +/** + * Value for the CURLOPT_HTTPAUTH option. + * HTTP Negotiate (SPNEGO) authentication + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURLAUTH_NEGOTIATE', 4); + +/** + * Pass a callable that will be registered to handle server pushes and should have the following signature: + * parent_ch + * The parent cURL handle (the request the client made). + * pushed_ch + * A new cURL handle for the pushed request. + * headers + * The push promise headers. + * The push function is supposed to return either CURL_PUSH_OK if it can handle the push, + * or CURL_PUSH_DENY to reject it. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.1 + */ +define('CURLMOPT_PUSHFUNCTION', 20014); + +/** + * Returned value from the push function - can handle the push. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.1 + */ +define('CURL_PUSH_OK', 0); + +/** + * Returned value from the push function - can't handle the push. + * @link https://www.php.net/manual/en/function.curl-multi-setopt.php + * @since 7.1 + */ +define('CURL_PUSH_DENY', 1); + +/** + * The default buffer size for CURLOPT_BUFFERSIZE + * @link https://php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_MAX_READ_SIZE', 10485760); + +/** + * Enables the use of an abstract Unix domain socket instead of establishing a TCP connection to a host and sets the path to the given string. + * This option shares the same semantics as CURLOPT_UNIX_SOCKET_PATH. + * These two options share the same storage and therefore only one of them can be set per handle. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_ABSTRACT_UNIX_SOCKET', 10264); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_DEFAULT', 65536); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_NONE', 0); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_TLSv1_0', 262144); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_TLSv1_1', 327680); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_TLSv1_2', 393216); + +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_MAX_TLSv1_3', 458752); + +/** + * TRUE to suppress proxy CONNECT response headers from the user callback functions + * CURLOPT_HEADERFUNCTION and CURLOPT_WRITEFUNCTION, + * when CURLOPT_HTTPPROXYTUNNEL is used and a CONNECT request is made. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_SUPPRESS_CONNECT_HEADERS', 265); + +/** + * Value for the CURLOPT_HTTPAUTH option. + * Allows GSS-API authentication. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURLAUTH_GSSAPI', 4); + +/** + * The content-length of the download. This is the value read from the Content-Type: field. -1 if the size isn't known + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_CONTENT_LENGTH_DOWNLOAD_T', 6291471); + +/** + * The specified size of the upload. -1 if the size isn't known + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_CONTENT_LENGTH_UPLOAD_T', 6291472); + +/** + * Total number of bytes that were downloaded. + * The number is only for the latest transfer and will be reset again for each new transfer + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_SIZE_DOWNLOAD_T', 6291464); + +/** + * Total number of bytes that were uploaded + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_SIZE_UPLOAD_T', 6291463); + +/** + * The average download speed in bytes/second that curl measured for the complete download + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_SPEED_DOWNLOAD_T', 6291465); + +/** + * The average upload speed in bytes/second that curl measured for the complete upload + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_SPEED_UPLOAD_T', 6291466); + +/** + * Specify an alternative target for this request + * @link https://www.php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/CURLOPT_REQUEST_TARGET.html + * @since 7.3 + */ +define('CURLOPT_REQUEST_TARGET', 10266); + +/** + * The SOCKS5 authentication method(s) to use. The options are: CURLAUTH_BASIC, CURLAUTH_GSSAPI, CURLAUTH_NONE. + * The bitwise | (or) operator can be used to combine more than one method. If this is done, + * cURL will poll the server to see what methods it supports and pick the best one. + * CURLAUTH_BASIC allows username/password authentication. + * CURLAUTH_GSSAPI allows GSS-API authentication. + * CURLAUTH_NONE allows no authentication. + * Defaults to CURLAUTH_BASIC|CURLAUTH_GSSAPI. + * Set the actual username and password with the CURLOPT_PROXYUSERPWD option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_SOCKS5_AUTH', 267); + +/** + * TRUE to enable built-in SSH compression. This is a request, not an order; the server may or may not do it. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_SSH_COMPRESSION', 268); + +/** + * libcurl was build with multiple ssh backends. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_MULTI_SSL', 4194304); + +/** + * Supports HTTP Brotli content encoding using libbrotlidec + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_BROTLI', 8388608); + +/** + * Value for the CURLSHOPT_SHARE option. + * Put the connection cache in the share object and make all easy handles using this share object share the connection cache. + * Using this, you can for example do multi-threaded libcurl use with one handle in each thread, and yet + * have a shared pool of unused connections and this way get way better connection re-use + * than if you use one separate pool in each thread. + * Connections that are used for HTTP/1.1 Pipelining or HTTP/2 multiplexing only get additional transfers + * added to them if the existing connection is held by the same multi or easy handle. + * libcurl does not support doing HTTP/2 streams in different threads using a shared connection. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/curl_share_setopt.html + * @since 7.3 + */ +define('CURL_LOCK_DATA_CONNECT', 5); + +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURLSSH_AUTH_GSSAPI', 32); + +/** + * Remote time of the retrieved document (as Unix timestamp), + * an alternative to CURLINFO_FILETIME to allow systems with 32 bit long variables to extract dates + * outside of the 32bit timestamp range + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_FILETIME_T', 6291470); + +/** + * Head start for ipv6 for the happy eyeballs algorithm. + * Happy eyeballs attempts to connect to both IPv4 and IPv6 addresses for dual-stack hosts, + * preferring IPv6 first for timeout milliseconds. + * Defaults to CURL_HET_DEFAULT, which is currently 200 milliseconds. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS', 271); + +/** + * The time in seconds since January 1st, 1970. + * The time will be used by CURLOPT_TIMECONDITION. Defaults to zero. + * The difference between this option and CURLOPT_TIMEVALUE is the type of the argument. + * On systems where 'long' is only 32 bit wide, this option has to be used to set dates beyond the year 2038. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_TIMEVALUE_LARGE', 30270); + +/** + * TRUE to shuffle the order of all returned addresses so that they will be used in a random order, + * when a name is resolved and more than one IP address is returned. + * This may cause IPv4 to be used before IPv6 or vice versa. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_DNS_SHUFFLE_ADDRESSES', 275); + +/** + * TRUE to send an HAProxy PROXY protocol v1 header at the start of the connection. + * The default action is not to send this header. + * @link https://php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURLOPT_HAPROXYPROTOCOL', 274); + +/** + * Value for the CURLSHOPT_SHARE option. + * The Public Suffix List stored in the share object is made available to all easy handle bound to the later. + * Since the Public Suffix List is periodically refreshed, this avoids updates in too many different contexts. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/curl_share_setopt.html + * @since 7.3 + */ +define('CURL_LOCK_DATA_PSL', 6); + +/** + * Value for the CURLOPT_HTTPAUTH option. + * HTTP Bearer token authentication, used primarily in OAuth 2.0 protocol. + * @link https://php.net/manual/en/curl.constants.php + * https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + * @since 7.3 + */ +define('CURLAUTH_BEARER', 64); + +/** + * Time, in microseconds, it took from the start until the SSL/SSH connect/handshake to the remote host was completed + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_APPCONNECT_TIME_T', 6291512); + +/** + * Total time taken, in microseconds, from the start until the connection to the remote host (or proxy) was completed + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_CONNECT_TIME_T', 6291508); + +/** + * Time in microseconds from the start until the name resolving was completed + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_NAMELOOKUP_TIME_T', 6291507); + +/** + * Time taken from the start until the file transfer is just about to begin, in microseconds + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_PRETRANSFER_TIME_T', 6291509); + +/** + * Total time, in microseconds, + * it took for all redirection steps include name lookup, connect, pretransfer and transfer before final transaction was started + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_REDIRECT_TIME_T', 6291511); + +/** + * Time, in microseconds, it took from the start until the first byte is received + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_STARTTRANSFER_TIME_T', 6291510); + +/** + * Total time in microseconds for the previous transfer, including name resolving, TCP connect etc. + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_TOTAL_TIME_T', 6291506); + +/** + * TRUE to not allow URLs that include a username. Usernames are allowed by default (0). + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_DISALLOW_USERNAME_IN_URL', 278); + +/** + * The list of cipher suites to use for the TLS 1.3 connection to a proxy. + * The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons. + * This option is currently used only when curl is built to use OpenSSL 1.1.1 or later. + * If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_PROXY_SSL_CIPHER_LIST option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_TLS13_CIPHERS', 10277); + +/** + * The list of cipher suites to use for the TLS 1.3 connection. + * The list must be syntactically correct, it consists of one or more cipher suite strings separated by colons. + * This option is currently used only when curl is built to use OpenSSL 1.1.1 or later. + * If you are using a different SSL backend you can try setting TLS 1.3 cipher suites by using the CURLOPT_SSL_CIPHER_LIST option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_TLS13_CIPHERS', 10276); + +/** + * Time allowed to wait for FTP response. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_RESPONSE_TIMEOUT.html + * @since 5.5 + */ +define('CURLOPT_FTP_RESPONSE_TIMEOUT', 112); + +/** + * Provide a custom address for a specific host and port pair. + * An array of hostname, port, and IP address strings, each element separated by a colon. + * In the format: array("example.com:80:127.0.0.1") + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define('CURLOPT_RESOLVE', 10203); + +/** + * Enable appending to the remote file + * @link https://curl.haxx.se/libcurl/c/CURLOPT_APPEND.html + * @since 5.5 + */ +define('CURLOPT_APPEND', 50); + +/** + * Ask for names only in a directory listing + * @link https://curl.haxx.se/libcurl/c/CURLOPT_DIRLISTONLY.html + * @since 5.5 + */ +define('CURLOPT_DIRLISTONLY', 48); + +/** + * Permissions for remotely created directories + * Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created directories on the remote server. + * The default value is 0755, but any valid value can be used. + * The only protocols that can use this are sftp://, scp://, and file://. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NEW_DIRECTORY_PERMS.html + * @since 5.5 + */ +define('CURLOPT_NEW_DIRECTORY_PERMS', 160); + +/** + * Permissions for remotely created files. + * Pass a long as a parameter, containing the value of the permissions that will be assigned to newly created files on the remote server. + * The default value is 0644, but any valid value can be used. + * The only protocols that can use this are sftp://, scp://, and file://. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NEW_FILE_PERMS.html + * @since 5.5 + */ +define('CURLOPT_NEW_FILE_PERMS', 159); + +/** + * TRUE to scan the ~/.netrc file to find a username and password for the remote site that a connection is being established with. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NETRC_FILE.html + * @since 5.5 + */ +define('CURLOPT_NETRC_FILE', 10118); + +/** + * Commands to run before an FTP transfer + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PREQUOTE.html + * @since 5.5 + */ +define('CURLOPT_PREQUOTE', 10093); + +/** + * Set FTP kerberos security level + * @link https://curl.haxx.se/libcurl/c/CURLOPT_KRBLEVEL.html + * @since 5.5 + */ +define('CURLOPT_KRBLEVEL', 10063); + +/** + * Maximum file size allowed to download (in bytes) + * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAXFILESIZE.html + * @since 5.5 + */ +define('CURLOPT_MAXFILESIZE', 114); + +/** + * Set account info for FTP + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ACCOUNT.html + * @since 5.5 + */ +define('CURLOPT_FTP_ACCOUNT', 10134); + +/** + * A cookie string (i.e. a single line in Netscape/Mozilla format, or a regular HTTP-style Set-Cookie header) adds that single cookie to the internal cookie store. + * "ALL" erases all cookies held in memory. + * "SESS" erases all session cookies held in memory. + * "FLUSH" writes all known cookies to the file specified by CURLOPT_COOKIEJAR. + * "RELOAD" loads all cookies from the files specified by CURLOPT_COOKIEFILE. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define('CURLOPT_COOKIELIST', 10135); + +/** + * Set local port number to use for socket + * @link https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORT.html + * @since 5.5 + */ +define('CURLOPT_LOCALPORT', 139); + +/** + * Number of additional local ports to try. + * Pass a long. The range argument is the number of attempts libcurl will make to find a working local port number. + * It starts with the given CURLOPT_LOCALPORT and adds one to the number for each retry. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_LOCALPORTRANGE.html + * @since 5.5 + */ +define('CURLOPT_LOCALPORTRANGE', 140); + +/** + * Command to use instead of USER with FTP. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_ALTERNATIVE_TO_USER.html + * @since 5.5 + */ +define('CURLOPT_FTP_ALTERNATIVE_TO_USER', 10147); + +/** + * Enable/disable use of the SSL session-ID cache. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_SSL_SESSIONID_CACHE.html + * @since 5.5 + */ +define('CURLOPT_SSL_SESSIONID_CACHE', 150); + +/** + * Switch off SSL again with FTP after auth. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html + * @since 5.5 + */ +define('CURLOPT_FTP_SSL_CCC', 154); + +/** + * FALSE to get the raw HTTP response body. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define('CURLOPT_HTTP_CONTENT_DECODING', 158); + +/** + * Enable/disable HTTP transfer decoding. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTP_TRANSFER_DECODING.html + * @since 5.5 + */ +define('CURLOPT_HTTP_TRANSFER_DECODING', 157); + +/** + * Append FTP transfer mode to URL for proxy. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROXY_TRANSFER_MODE.html + * @since 5.5 + */ +define('CURLOPT_PROXY_TRANSFER_MODE', 166); + +/** + * Set scope id for IPv6 addresses. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_ADDRESS_SCOPE.html + * @since 5.5 + */ +define('CURLOPT_ADDRESS_SCOPE', 171); + +/** + * Specify a Certificate Revocation List file. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_CRLFILE.html + * @since 5.5 + */ +define('CURLOPT_CRLFILE', 10169); + +/** + * Issuer SSL certificate filename. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_ISSUERCERT.html + * @since 5.5 + */ +define('CURLOPT_ISSUERCERT', 10170); + +/** + * The user name to use in authentication. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define('CURLOPT_USERNAME', 10173); + +/** + * Password to use in authentication. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PASSWORD.html + * @since 5.5 + */ +define('CURLOPT_PASSWORD', 10174); + +/** + * User name to use for proxy authentication. + * @since 5.5 + */ +define('CURLOPT_PROXYUSERNAME', 10175); + +/** + * Password to use for proxy authentication. + * @since 5.5 + */ +define('CURLOPT_PROXYPASSWORD', 10176); + +/** + * Disable proxy use for specific hosts. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_NOPROXY.html + * @since 5.5 + */ +define('CURLOPT_NOPROXY', 10177); + +/** + * Set socks proxy gssapi negotiation protection. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_NEC.html + * @since 5.5 + */ +define('CURLOPT_SOCKS5_GSSAPI_NEC', 180); + +/** + * SOCKS5 proxy authentication service name. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_SOCKS5_GSSAPI_SERVICE.html + * @deprecated Use CURLOPT_PROXY_SERVICE_NAME instead. + * @since 5.5 + */ +define('CURLOPT_SOCKS5_GSSAPI_SERVICE', 10179); + +/** + * Specify blocksize to use for TFTP data transmission. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TFTP_BLKSIZE.html + * @since 5.5 + */ +define('CURLOPT_TFTP_BLKSIZE', 178); + +/** + * File name holding the SSH known hosts. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_SSH_KNOWNHOSTS.html + * @since 5.5 + */ +define('CURLOPT_SSH_KNOWNHOSTS', 10183); + +/** + * Enable the PRET command. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_USE_PRET.html + * @since 5.5 + */ +define('CURLOPT_FTP_USE_PRET', 188); + +/** + * SMTP sender address. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_FROM.html + * @since 5.5 + */ +define('CURLOPT_MAIL_FROM', 10186); + +/** + * List of SMTP mail recipients. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_RCPT.html + * @since 5.5 + */ +define('CURLOPT_MAIL_RCPT', 10187); + +/** + * Set the RTSP client CSEQ number. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_CLIENT_CSEQ.html + * @since 5.5 + */ +define('CURLOPT_RTSP_CLIENT_CSEQ', 193); + +/** + * Set the RTSP server CSEQ number. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SERVER_CSEQ.html + * @since 5.5 + */ +define('CURLOPT_RTSP_SERVER_CSEQ', 194); + +/** + * Set RTSP session ID. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_SESSION_ID.html + * @since 5.5 + */ +define('CURLOPT_RTSP_SESSION_ID', 10190); + +/** + * Set RTSP stream URI. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_STREAM_URI.html + * @since 5.5 + */ +define('CURLOPT_RTSP_STREAM_URI', 10191); + +/** + * Set RTSP Transport: header. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_TRANSPORT.html + * @since 5.5 + */ +define('CURLOPT_RTSP_TRANSPORT', 10192); + +/** + * Specify RTSP request. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + * @since 5.5 + */ +define('CURLOPT_RTSP_REQUEST', 189); + +/** + * Ignore content length. + * If TRUE, ignore the Content-Length header in the HTTP response and ignore asking for or relying on it for FTP transfers. + * This is useful for HTTP with Apache 1.x (and similar servers) which will report incorrect content length for files over 2 gigabytes. + * If this option is used, curl will not be able to accurately report progress, and will simply stop the download when the server ends the connection. + * It is also useful with FTP when for example the file is growing while the transfer is in progress + * which otherwise will unconditionally cause libcurl to report error. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_IGNORE_CONTENT_LENGTH.html + * @since 5.5 + */ +define('CURLOPT_IGNORE_CONTENT_LENGTH', 136); +/** + * Enables automatic decompression of HTTP downloads + * @link https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPT_ENCODING.html + * @since 5.5 + */ +define('CURLOPT_ACCEPT_ENCODING', 10102); + +/** + * Ask for HTTP Transfer Encoding. + * Adds a request for compressed Transfer Encoding in the outgoing HTTP request. + * If the server supports this and so desires, it can respond with the HTTP response sent using a compressed Transfer-Encoding + * that will be automatically uncompressed by libcurl on reception. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TRANSFER_ENCODING.html + * @since 5.5 + */ +define('CURLOPT_TRANSFER_ENCODING', 207); + +/** + * Set preferred DNS servers: host[:port][,host[:port]]... + * @link https://curl.haxx.se/libcurl/c/CURLOPT_DNS_SERVERS.html + * @since 5.5 + */ +define('CURLOPT_DNS_SERVERS', 10211); + +/** + * Request using SSL / TLS for the transfer + * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html + * @since 5.5 + */ +define('CURLOPT_USE_SSL', 119); +/** + * Custom telnet options + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TELNETOPTIONS.html + */ +define("CURLOPT_TELNETOPTIONS", 10070); +/** + * The download could not be resumed because the specified offset was out of the file boundary. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_BAD_DOWNLOAD_RESUME", 36); +/** + * A file transfer was shorter or larger than expected. + * This happens when the server first reports an expected transfer size, and then delivers data + * that doesn't match the previously given size. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_FTP_PARTIAL_FILE", 18); +/** + * This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_HTTP_RETURNED_ERROR", 22); +/** + * Operation timeout. The specified time-out period was reached according to the conditions. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_OPERATION_TIMEDOUT", 28); +/** + * Failed to match the pinned key specified with CURLOPT_PINNEDPUBLICKEY. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_SSL_PINNEDPUBKEYNOTMATCH", 90); +/** + * @link https://php.net/manual/en/curl.constants.php + */ +define("CURLINFO_LASTONE", 64); +/** + * An easy handle already added to a multi handle was attempted to get added a second time. + * @link https://www.php.net/manual/en/function.curl-multi-exec.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLM_ADDED_ALREADY", 7); +/** + * @link https://curl.haxx.se/libcurl/c/symbols-in-versions.html + */ +define("CURLSHOPT_NONE", 0); +/** + * Default value for the CURLOPT_TIMECONDITION option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TIMECONDITION.html + */ +define("CURL_TIMECOND_NONE", 0); +/** + * Value for the CURLOPT_HTTPAUTH option. + * Allows no authentication. + * @link https://www.php.net/manual/en/function.curl-setopt.php + */ +define("CURLAUTH_NONE", 0); +/** + * Problem with reading the SSL CA cert (path? access rights?) + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_SSL_CACERT_BADFILE", 77); +/** + * An unspecified error occurred during the SSH session. + * @link https://php.net/manual/en/curl.constants.php + * @link https://curl.haxx.se/libcurl/c/libcurl-errors.html + */ +define("CURLE_SSH", 79); +/** + * Value for the CURLOPT_FTP_SSL_CCC option. + * Initiate the shutdown and wait for a reply. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html + */ +define("CURLFTPSSL_CCC_ACTIVE", 2); +/** + * Value for the CURLOPT_FTP_SSL_CCC option. + * Don't attempt to use CCC. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html + */ +define("CURLFTPSSL_CCC_NONE", 0); +/** + * Value for the CURLOPT_FTP_SSL_CCC option. + * Do not initiate the shutdown, but wait for the server to do it. Do not send a reply. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FTP_SSL_CCC.html + */ +define("CURLFTPSSL_CCC_PASSIVE", 1); +/** + * Value for the CURLOPT_USE_SSL option. + * Require SSL for all communication or fail. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html + */ +define("CURLUSESSL_ALL", 3); +/** + * Value for the CURLOPT_USE_SSL option. + * Require SSL for the control connection or fail. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html + */ +define("CURLUSESSL_CONTROL", 2); +/** + * Value for the CURLOPT_USE_SSL option. + * Don't attempt to use SSL. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html + */ +define("CURLUSESSL_NONE", 0); +/** + * Value for the CURLOPT_USE_SSL option. + * Try using SSL, proceed as normal otherwise. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_USE_SSL.html + */ +define("CURLUSESSL_TRY", 1); +/** + * Convenience define that pauses both directions. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_ALL", 5); +/** + * Convenience define that unpauses both directions. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_CONT", 0); +/** + * Pause receiving data. There will be no data received on this connection until this function is called again without this bit set. + * Thus, the write callback (CURLOPT_WRITEFUNCTION) won't be called. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_RECV", 1); +/** + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_RECV_CONT", 0); +/** + * Pause sending data. There will be no data sent on this connection until this function is called again without this bit set. + * Thus, the read callback (CURLOPT_READFUNCTION) won't be called. + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_SEND", 4); +/** + * @link https://php.net/manual/en/curl.constants.php + * @since 5.5 + */ +define("CURLPAUSE_SEND_CONT", 0); +/** + * Read callback for data uploads. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_READFUNCTION.html + */ +define("CURL_READFUNC_PAUSE", 268435457); +/** + * Set callback for writing received data. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_WRITEFUNCTION.html + */ +define("CURL_WRITEFUNC_PAUSE", 268435457); +/** + * Value for the CURLOPT_PROXYTYPE option. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.5.23 + */ +define("CURLPROXY_SOCKS4A", 6); +/** + * Value for the CURLOPT_PROXYTYPE option. + * Proxy resolves URL hostname. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.5.23 + */ +define("CURLPROXY_SOCKS5_HOSTNAME", 7); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_ANY", -1); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_DEFAULT", -1); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_HOST", 4); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_KEYBOARD", 8); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_NONE", 0); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_PASSWORD", 2); +/** + * Value for the CURLOPT_SSH_AUTH_TYPES option. + * @link https://www.php.net/manual/en/curl.constants.php + */ +define("CURLSSH_AUTH_PUBLICKEY", 1); +/** + * Value for the CURLOPT_HTTPAUTH option. + * HTTP Digest authentication with an IE flavor. + * Digest authentication is defined in RFC 2617 and is a more secure way to do authentication over public networks than + * the regular old-fashioned Basic method. + * The IE flavor is simply that libcurl will use a special "quirk" that IE is known to have used before version 7 + * and that some servers require the client to use. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define("CURLAUTH_DIGEST_IE", 16); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_IMAP", 4096); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_IMAPS", 8192); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_POP3", 16384); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_POP3S", 32768); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTSP", 262144); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_SMTP", 65536); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_SMTPS", 131072); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * When sent by a client, this method changes the description of the session. + * For example, if a client is using the server to record a meeting, + * the client can use Announce to inform the server of all the meta-information about the session. + * ANNOUNCE acts like an HTTP PUT or POST + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_ANNOUNCE", 3); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Used to get the low level description of a stream. + * The application should note what formats it understands in the 'Accept:' header. + * Unless set manually, libcurl will automatically fill in 'Accept: application/sdp'. + * Time-condition headers will be added to Describe requests if the CURLOPT_TIMECONDITION option is active. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_DESCRIBE", 2); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Retrieve a parameter from the server. + * By default, libcurl will automatically include a Content-Type: text/parameters header on all non-empty requests + * unless a custom one is set. GET_PARAMETER acts just like an HTTP PUT or POST + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_GET_PARAMETER", 8); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Used to retrieve the available methods of the server. + * The application is responsible for parsing and obeying the response. + * The session ID is not needed for this method. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_OPTIONS", 1); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Send a Pause command to the server. + * Use the CURLOPT_RANGE option with a single value to indicate when the stream should be halted. (e.g. npt='25') + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_PAUSE", 6); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Send a Play command to the server. + * Use the CURLOPT_RANGE option to modify the playback time (e.g. 'npt=10-15'). + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_PLAY", 5); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * This is a special request because it does not send any data to the server. + * The application may call this function in order to receive interleaved RTP data. + * It will return after processing one read buffer of data in order to give the application a chance to run. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_RECEIVE", 11); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Used to tell the server to record a session. Use the CURLOPT_RANGE option to modify the record time. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_RECORD", 10); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Set a parameter on the server. + * By default, libcurl will automatically include a Content-Type: text/parameters header unless a custom one is set. + * The interaction with SET_PARAMETER is much like an HTTP PUT or POST. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_SET_PARAMETER", 9); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * Setup is used to initialize the transport layer for the session. + * The application must set the desired Transport options for a session + * by using the CURLOPT_RTSP_TRANSPORT option prior to calling setup. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_SETUP", 4); +/** + * Value for the CURLOPT_RTSP_REQUEST option. + * This command terminates an RTSP session. + * Simply closing a connection does not terminate the RTSP session since it is valid to control an RTSP session over different connections. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_RTSP_REQUEST.html + */ +define("CURL_RTSPREQ_TEARDOWN", 7); +/** + * Wildcard matching function callback. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html + */ +define("CURLOPT_FNMATCH_FUNCTION", 20200); +/** + * Enable directory wildcard transfers. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_WILDCARDMATCH.html + */ +define("CURLOPT_WILDCARDMATCH", 197); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMP", 524288); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMPE", 2097152); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMPS", 8388608); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMPT", 1048576); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMPTE", 4194304); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_RTMPTS", 16777216); +/** + * Return value for the CURLOPT_FNMATCH_FUNCTION if an error was occurred. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html + */ +define("CURL_FNMATCHFUNC_FAIL", 2); +/** + * Return value for the CURLOPT_FNMATCH_FUNCTION if pattern matches the string. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html + */ +define("CURL_FNMATCHFUNC_MATCH", 0); +/** + * Return value for the CURLOPT_FNMATCH_FUNCTION if pattern not matches the string. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_FNMATCH_FUNCTION.html + */ +define("CURL_FNMATCHFUNC_NOMATCH", 1); +/** + * Value for the CURLOPT_PROTOCOLS option. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_PROTOCOLS.html + */ +define("CURLPROTO_GOPHER", 33554432); +/** + * Value for the CURLOPT_HTTPAUTH option. + * This is a meta symbol. + * OR this value together with a single specific auth value to force libcurl to probe for un-restricted auth and if not, + * only that single auth algorithm is acceptable. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_HTTPAUTH.html + */ +define("CURLAUTH_ONLY", 2147483648); +/** + * Password to use for TLS authentication. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_PASSWORD.html + */ +define("CURLOPT_TLSAUTH_PASSWORD", 10205); +/** + * Set TLS authentication methods. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_TYPE.html + */ +define("CURLOPT_TLSAUTH_TYPE", 10206); +/** + * User name to use for TLS authentication. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_USERNAME.html + */ +define("CURLOPT_TLSAUTH_USERNAME", 10204); +/** + * Value for the CURLOPT_TLSAUTH_TYPE option. + * TLS-SRP authentication. + * Secure Remote Password authentication for TLS is defined in RFC 5054 and provides mutual authentication if both sides have a shared secret. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_TLSAUTH_TYPE.html + */ +define("CURL_TLSAUTH_SRP", 1); +/** + * Value for the CURLOPT_GSSAPI_DELEGATION option. + * Allow unconditional GSSAPI credential delegation. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html + */ +define("CURLGSSAPI_DELEGATION_FLAG", 2); +/** + * Value for the CURLOPT_GSSAPI_DELEGATION option. + * Delegate only if the OK-AS-DELEGATE flag is set in the service ticket + * in case this feature is supported by the GSS-API implementation. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html + */ +define("CURLGSSAPI_DELEGATION_POLICY_FLAG", 1); +/** + * Set allowed GSS-API delegation. + * @link https://curl.haxx.se/libcurl/c/CURLOPT_GSSAPI_DELEGATION.html + */ +define("CURLOPT_GSSAPI_DELEGATION", 210); +/** + * Timeout waiting for FTP server to connect back + * @link https://curl.haxx.se/libcurl/c/CURLOPT_ACCEPTTIMEOUT_MS.html + */ +define("CURLOPT_ACCEPTTIMEOUT_MS", 212); +/** + * SMTP authentication address + * @link https://curl.haxx.se/libcurl/c/CURLOPT_MAIL_AUTH.html + */ +define("CURLOPT_MAIL_AUTH", 10217); +/** + * Set SSL behavior options, which is a bitmask of any of the following constants: + * CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. + * CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.6 + */ +define("CURLOPT_SSL_OPTIONS", 216); +/** + * If set to 1, TCP keepalive probes will be sent. + * The delay and frequency of these probes can be controlled by the CURLOPT_TCP_KEEPIDLE and CURLOPT_TCP_KEEPINTVL options, + * provided the operating system supports them. + * If set to 0 (default) keepalive probes are disabled. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define("CURLOPT_TCP_KEEPALIVE", 213); +/** + * Sets the delay, in seconds, that the operating system will wait while the connection is idle before sending keepalive probes, + * if CURLOPT_TCP_KEEPALIVE is enabled. Not all operating systems support this option. The default is 60. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define("CURLOPT_TCP_KEEPIDLE", 214); +/** + * Sets the interval, in seconds, that the operating system will wait between sending keepalive probes, + * if CURLOPT_TCP_KEEPALIVE is enabled. Not all operating systems support this option. The default is 60. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.5 + */ +define("CURLOPT_TCP_KEEPINTVL", 215); +/** + * Value for the CURLOPT_SSL_OPTIONS option. + * Do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 5.6 + */ +define("CURLSSLOPT_ALLOW_BEAST", 1); +/** + * Supports HTTP2. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 5.5.24 + */ +define("CURL_VERSION_HTTP2", 65536); +/** + * Value for the CURLOPT_SSL_OPTIONS option. + * Disable certificate revocation checks for those SSL backends where such behavior is present. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLSSLOPT_NO_REVOKE", 2); +/** + * The default protocol to use if the URL is missing a scheme name. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLOPT_DEFAULT_PROTOCOL", 10238); +/** + * Set the numerical stream weight (a number between 1 and 256). + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLOPT_STREAM_WEIGHT", 239); +/** + * TRUE to not send TFTP options requests. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLOPT_TFTP_NO_OPTIONS", 242); +/** + * Connect to a specific host and port instead of the URL's host and port. + * Accepts an array of strings with the format HOST:PORT:CONNECT-TO-HOST:CONNECT-TO-PORT. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLOPT_CONNECT_TO", 10243); +/** + * TRUE to enable TCP Fast Open. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.0.7 + */ +define("CURLOPT_TCP_FASTOPEN", 244); + +/** + * The server sent data libcurl couldn't parse. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURLE_WEIRD_SERVER_REPLY', 8); +/** + * TRUE to keep sending the request body if the HTTP code returned is equal to or larger than 300. + * The default action would be to stop sending and close the stream or connection. Suitable for manual NTLM authentication. + * Most applications do not need this option. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_KEEP_SENDING_ON_ERROR', 245); +/** + * Value for the CURLOPT_SSLVERSION option. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_SSLVERSION_TLSv1_3', 7); + +/** + * Supports HTTPS proxy. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_HTTPS_PROXY', 2097152); + +/** + * The protocol used in the last HTTP connection. The returned value will be exactly one of the CURLPROTO_* values + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_PROTOCOL', 2097200); + +/** + * Supports asynchronous name lookups. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_ASYNCHDNS', 128); + +/** + * Supports memory tracking debug capabilities. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3.6 + */ +define('CURL_VERSION_CURLDEBUG', 8192); + +/** + * Supports character conversions. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_CONV', 4096); + +/** + * libcurl was built with debug capabilities + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_DEBUG', 64); + +/** + * Supports HTTP GSS-Negotiate. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_GSSNEGOTIATE', 32); + +/** + * Supports the IDNA. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_IDN', 1024); + +/** + * Supports large files. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_LARGEFILE', 512); + +/** + * Supports HTTP NTLM. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_NTLM', 16); + +/** + * Supports the Mozilla's Public Suffix List. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_VERSION_PSL', 1048576); + +/** + * Supports for SPNEGO authentication (RFC 2478). + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_SPNEGO', 256); + +/** + * Supports SSPI. Windows-specific. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_SSPI', 2048); + +/** + * Supports the TLS-SRP. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_TLSAUTH_SRP', 16384); + +/** + * Supports the NTLM delegation to a winbind helper. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_NTLM_WB', 32768); + +/** + * Supports the GSSAPI. This makes libcurl use provided functions for Kerberos and SPNEGO authentication. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_GSSAPI', 131072); + +/** + * Supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 proxy. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURL_VERSION_KERBEROS5', 262144); + +/** + * The path to proxy Certificate Authority (CA) bundle. + * Set the path as a string naming a file holding one or more certificates to verify the HTTPS proxy with. + * This option is for connecting to an HTTPS proxy, not an HTTPS server. + * Defaults set to the system path where libcurl's cacert bundle is assumed to be stored. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_CAINFO', 10246); + +/** + * The directory holding multiple CA certificates to verify the HTTPS proxy with. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_CAPATH', 10247); + +/** + * Set the file name with the concatenation of CRL (Certificate Revocation List) in PEM format + * to use in the certificate validation that occurs during the SSL exchange. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_CRLFILE', 10260); + +/** + * Set the string be used as the password required to use the CURLOPT_PROXY_SSLKEY private key. + * You never needed a passphrase to load a certificate but you need one to load your private key. + * This option is for connecting to an HTTPS proxy, not an HTTPS server. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_KEYPASSWD', 10258); + +/** + * The format of your client certificate used when connecting to an HTTPS proxy. Supported formats are "PEM" and "DER", except with Secure Transport. + * OpenSSL (versions 0.9.3 and later) and Secure Transport (on iOS 5 or later, or OS X 10.7 or later) also support "P12" for PKCS#12-encoded files. + * Defaults to "PEM". + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSLCERTTYPE', 10255); + +/** + * The format of your private key. Supported formats are "PEM", "DER" and "ENG". + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSLKEYTYPE', 10257); + +/** + * One of CURL_SSLVERSION_DEFAULT, CURL_SSLVERSION_TLSv1, CURL_SSLVERSION_TLSv1_0, CURL_SSLVERSION_TLSv1_1, CURL_SSLVERSION_TLSv1_2, + * CURL_SSLVERSION_TLSv1_3, CURL_SSLVERSION_MAX_DEFAULT, CURL_SSLVERSION_MAX_TLSv1_0, CURL_SSLVERSION_MAX_TLSv1_1, + * CURL_SSLVERSION_MAX_TLSv1_2, CURL_SSLVERSION_MAX_TLSv1_3 or CURL_SSLVERSION_SSLv3. + * See also CURLOPT_SSLVERSION. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSLVERSION', 250); + +/** + * Tusername to use for the HTTPS proxy TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option. + * Requires that the CURLOPT_PROXY_TLSAUTH_PASSWORD option to also be set. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_TLSAUTH_USERNAME', 10251); +/** + * The password to use for the TLS authentication method specified with the CURLOPT_PROXY_TLSAUTH_TYPE option. + * Requires that the CURLOPT_PROXY_TLSAUTH_USERNAME option to also be set. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_TLSAUTH_PASSWORD', 10252); + +/** + * The method of the TLS authentication used for the HTTPS connection. Supported method is "SRP". + * Secure Remote Password (SRP) authentication for TLS provides mutual authentication if both sides have a shared secret. + * To use TLS-SRP, you must also set the CURLOPT_PROXY_TLSAUTH_USERNAME and CURLOPT_PROXY_TLSAUTH_PASSWORD options. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_TLSAUTH_TYPE', 10253); + +/** + * Value for the CURLOPT_PROXYTYPE option. + * Use HTTPS Proxy. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3 + */ +define('CURLPROXY_HTTPS', 2); + +/** + * Set the pinned public key for HTTPS proxy. The string can be the file name of your pinned public key. The file format expected is "PEM" or "DER". + * The string can also be any number of base64 encoded sha256 hashes preceded by "sha256//" and separated by ";" + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_PINNEDPUBLICKEY', 10263); + +/** + * The file name of your private key used for connecting to the HTTPS proxy. + * The default format is "PEM" and can be changed with CURLOPT_PROXY_SSLKEYTYPE. + * (iOS and Mac OS X only) This option is ignored if curl was built against Secure Transport. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSLKEY', 10256); + +/** + * The list of ciphers to use for the connection to the HTTPS proxy. + * The list must be syntactically correct, it consists of one or more cipher strings separated by colons. + * Commas or spaces are also acceptable separators but colons are normally used, !, - and + can be used as operators. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSL_CIPHER_LIST', 10259); + +/** + * Set proxy SSL behavior options, which is a bitmask of any of the following constants: + * CURLSSLOPT_ALLOW_BEAST: do not attempt to use any workarounds for a security flaw in the SSL3 and TLS1.0 protocols. + * CURLSSLOPT_NO_REVOKE: disable certificate revocation checks for those SSL backends where such behavior is present. (curl >= 7.44.0) + * CURLSSLOPT_NO_PARTIALCHAIN: do not accept "partial" certificate chains, which it otherwise does by default. (curl >= 7.68.0) + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSL_OPTIONS', 261); + +/** + * Set to 2 to verify in the HTTPS proxy's certificate name fields against the proxy name. + * When set to 0 the connection succeeds regardless of the names used in the certificate. + * Use that ability with caution! 1 treated as a debug option in curl 7.28.0 and earlier. + * From curl 7.28.1 to 7.65.3 CURLE_BAD_FUNCTION_ARGUMENT is returned. + * From curl 7.66.0 onwards 1 and 2 is treated as the same value. + * In production environments the value of this option should be kept at 2 (default value). + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSL_VERIFYHOST', 249); + +/** + * FALSE to stop cURL from verifying the peer's certificate. + * Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or + * a certificate directory can be specified with the CURLOPT_CAPATH option. + * When set to false, the peer certificate verification succeeds regardless. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSL_VERIFYPEER', 248); + +/** + * The file name of your client certificate used to connect to the HTTPS proxy. + * The default format is "P12" on Secure Transport and "PEM" on other engines, and can be changed with CURLOPT_PROXY_SSLCERTTYPE. + * With NSS or Secure Transport, this can also be the nickname of the certificate you wish to authenticate with as it is named in the security database. + * If you want to use a file from the current directory, please precede it with "./" prefix, in order to avoid confusion with a nickname. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PROXY_SSLCERT', 10254); + +/** + * The URL scheme used for the most recent connection + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_SCHEME', 1048625); + +/** + * Supports UNIX sockets. + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.0.7 + */ +define('CURL_VERSION_UNIX_SOCKETS', 524288); + +/** + * The version used in the last HTTP connection. The return value will be one of the defined + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_HTTP_VERSION', 2097198); +/** + * Set a string holding the host name or dotted numerical IP address to be used as the preproxy that curl connects to before + * it connects to the HTTP(S) proxy specified in the CURLOPT_PROXY option for the upcoming request. + * The preproxy can only be a SOCKS proxy and it should be prefixed with [scheme]:// to specify which kind of socks is used. + * A numerical IPv6 address must be written within [brackets]. Setting the preproxy to an empty string explicitly disables the use of a preproxy. + * To specify port number in this string, append :[port] to the end of the host name. + * The proxy's port number may optionally be specified with the separate option CURLOPT_PROXYPORT. + * Defaults to using port 1080 for proxies if a port is not specified. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_PRE_PROXY', 10262); +/** + * The result of the certificate verification that was requested (using the CURLOPT_PROXY_SSL_VERIFYPEER option). + * Only used for HTTPS proxies + * @link https://www.php.net/manual/en/function.curl-getinfo.php + * @since 7.3 + */ +define('CURLINFO_PROXY_SSL_VERIFYRESULT', 2097199); +/** + * Whether to allow HTTP/0.9 responses. + * Defaults to FALSE as of libcurl 7.66.0; formerly it defaulted to TRUE. + * @link https://www.php.net/manual/en/function.curl-setopt.php + * @since 7.3 + */ +define('CURLOPT_HTTP09_ALLOWED', 285); + +/** + * @link https://www.php.net/manual/en/curl.constants.php + * @since 7.3.6 + */ +define('CURL_VERSION_ALTSVC', 16777216); + +/** + * @since 8.1 + */ +define('CURLOPT_DOH_URL', 10279); + +/** + * @since 8.1 + */ +define('CURLOPT_ISSUERCERT_BLOB', 40295); + +/** + * @since 8.1 + */ +define('CURLOPT_PROXY_ISSUERCERT', 10296); + +/** + * @since 8.1 + */ +define('CURLOPT_PROXY_ISSUERCERT_BLOB', 40297); + +/** + * @since 8.1 + */ +define('CURLOPT_PROXY_SSLCERT_BLOB', 40293); + +/** + * @since 8.1 + */ +define('CURLOPT_PROXY_SSLKEY_BLOB', 40294); + +/** + * @since 8.1 + */ +define('CURLOPT_SSLCERT_BLOB', 40291); + +/** + * @since 8.1 + */ +define('CURLOPT_SSLKEY_BLOB', 40292); + +/** + * @since 8.2 + */ +define('CURLOPT_XFERINFOFUNCTION', 20219); + +/** + * @since 8.2 + */ +define('CURLINFO_EFFECTIVE_METHOD', 1048634); + +/** + * @since 8.2 + */ +define('CURLOPT_MAXFILESIZE_LARGE', 30117); + +/** + * @since 8.2 + */ +define('CURLFTPMETHOD_DEFAULT', 0); + +/** + * @since 8.2 + */ +define('CURLOPT_UPKEEP_INTERVAL_MS', 281); + +/** + * @since 8.2 + */ +define('CURLOPT_UPLOAD_BUFFERSIZE', 280); + +/** + * @since 8.2 + */ +define('CURLALTSVC_H1', 8); + +/** + * @since 8.2 + */ +define('CURLALTSVC_H2', 16); + +/** + * @since 8.2 + */ +define('CURLALTSVC_H3', 32); + +/** + * @since 8.2 + */ +define('CURLALTSVC_READONLYFILE', 4); + +/** + * @since 8.2 + */ +define('CURLOPT_ALTSVC', 10287); + +/** + * @since 8.2 + */ +define('CURLOPT_ALTSVC_CTRL', 286); + +/** + * @since 8.2 + */ +define('CURLOPT_MAXAGE_CONN', 288); + +/** + * @since 8.2 + */ +define('CURLOPT_SASL_AUTHZID', 10289); + +/** + * @since 8.2 + */ +define('CURL_VERSION_HTTP3', 33554432); + +/** + * @since 8.2 + */ +define('CURLINFO_RETRY_AFTER', 6291513); + +/** + * @since 8.2 + */ +define('CURLMOPT_MAX_CONCURRENT_STREAMS', 16); + +/** + * @since 8.2 + */ +define('CURLSSLOPT_NO_PARTIALCHAIN', 4); + +/** + * @since 8.2 + */ +define('CURLOPT_MAIL_RCPT_ALLLOWFAILS', 290); + +/** + * @since 8.2 + */ +define('CURLSSLOPT_REVOKE_BEST_EFFORT', 8); + +/** + * @since 8.2 + */ +define('CURLPROTO_MQTT', 268435456); + +/** + * @since 8.2 + */ +define('CURLSSLOPT_NATIVE_CA', 16); + +/** + * @since 8.2 + */ +define('CURL_VERSION_UNICODE', 134217728); + +/** + * @since 8.2 + */ +define('CURL_VERSION_ZSTD', 67108864); + +/** + * @since 8.2 + */ +define('CURLE_PROXY', 97); + +/** + * @since 8.2 + */ +define('CURLINFO_PROXY_ERROR', 2097211); + +/** + * @since 8.2 + */ +define('CURLOPT_SSL_EC_CURVES', 10298); + +/** + * @since 8.2 + */ +define('CURLPX_BAD_ADDRESS_TYPE', 1); + +/** + * @since 8.2 + */ +define('CURLPX_BAD_VERSION', 2); + +/** + * @since 8.2 + */ +define('CURLPX_CLOSED', 3); + +/** + * @since 8.2 + */ +define('CURLPX_GSSAPI', 4); + +/** + * @since 8.2 + */ +define('CURLPX_GSSAPI_PERMSG', 5); + +/** + * @since 8.2 + */ +define('CURLPX_GSSAPI_PROTECTION', 6); + +/** + * @since 8.2 + */ +define('CURLPX_IDENTD', 7); + +/** + * @since 8.2 + */ +define('CURLPX_IDENTD_DIFFER', 8); + +/** + * @since 8.2 + */ +define('CURLPX_LONG_HOSTNAME', 9); + +/** + * @since 8.2 + */ +define('CURLPX_LONG_PASSWD', 10); + +/** + * @since 8.2 + */ +define('CURLPX_LONG_USER', 11); + +/** + * @since 8.2 + */ +define('CURLPX_NO_AUTH', 12); + +/** + * @since 8.2 + */ +define('CURLPX_OK', 0); + +/** + * @since 8.2 + */ +define('CURLPX_RECV_ADDRESS', 13); + +/** + * @since 8.2 + */ +define('CURLPX_RECV_AUTH', 14); + +/** + * @since 8.2 + */ +define('CURLPX_RECV_CONNECT', 15); + +/** + * @since 8.2 + */ +define('CURLPX_RECV_REQACK', 16); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_ADDRESS_TYPE_NOT_SUPPORTED', 17); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_COMMAND_NOT_SUPPORTED', 18); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_CONNECTION_REFUSED', 19); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_GENERAL_SERVER_FAILURE', 20); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_HOST_UNREACHABLE', 21); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_NETWORK_UNREACHABLE', 22); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_NOT_ALLOWED', 23); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_TTL_EXPIRED', 24); + +/** + * @since 8.2 + */ +define('CURLPX_REPLY_UNASSIGNED', 25); + +/** + * @since 8.2 + */ +define('CURLPX_REQUEST_FAILED', 26); + +/** + * @since 8.2 + */ +define('CURLPX_RESOLVE_HOST', 27); + +/** + * @since 8.2 + */ +define('CURLPX_SEND_CONNECT', 29); + +/** + * @since 8.2 + */ +define('CURLPX_SEND_AUTH', 28); + +/** + * @since 8.2 + */ +define('CURLPX_SEND_REQUEST', 30); + +/** + * @since 8.2 + */ +define('CURLPX_UNKNOWN_FAIL', 31); + +/** + * @since 8.2 + */ +define('CURLPX_UNKNOWN_MODE', 32); + +/** + * @since 8.2 + */ +define('CURLPX_USER_REJECTED', 33); + +/** + * @since 8.2 + */ +define('CURLHSTS_ENABLE', 1); + +/** + * @since 8.2 + */ +define('CURLHSTS_READONLYFILE', 2); + +/** + * @since 8.2 + */ +define('CURLOPT_HSTS', 10300); + +/** + * @since 8.2 + */ +define('CURLOPT_HSTS_CTRL', 299); + +/** + * @since 8.2 + */ +define('CURL_VERSION_HSTS', 268435456); + +/** + * @since 8.2 + */ +define('CURLAUTH_AWS_SIGV4', 128); + +/** + * @since 8.2 + */ +define('CURLOPT_AWS_SIGV4', 10305); + +/** + * @since 8.2 + */ +define('CURLINFO_REFERER', 1048636); + +/** + * @since 8.2 + */ +define('CURLOPT_DOH_SSL_VERIFYHOST', 307); + +/** + * @since 8.2 + */ +define('CURLOPT_DOH_SSL_VERIFYPEER', 306); + +/** + * @since 8.2 + */ +define('CURLOPT_DOH_SSL_VERIFYSTATUS', 308); + +/** + * @since 8.2 + */ +define('CURL_VERSION_GSASL', 536870912); + +/** + * @since 8.2 + */ +define('CURLOPT_CAINFO_BLOB', 40309); + +/** + * @since 8.2 + */ +define('CURLOPT_PROXY_CAINFO_BLOB', 40310); + +/** + * @since 8.2 + */ +define('CURLSSLOPT_AUTO_CLIENT_CERT', 32); + +/** + * @since 8.2 + */ +define('CURLOPT_MAXLIFETIME_CONN', 314); + +/** + * @since 8.2 + */ +define('CURLOPT_SSH_HOST_PUBLIC_KEY_SHA256', 10311); diff --git a/phpstorm-stubs/date/date.php b/phpstorm-stubs/date/date.php new file mode 100644 index 0000000..c439801 --- /dev/null +++ b/phpstorm-stubs/date/date.php @@ -0,0 +1,1605 @@ + + * The string to parse. Before PHP 5.0.0, microseconds weren't allowed in + * the time, since PHP 5.0.0 they are allowed but ignored. + * + * @param int|null $baseTimestamp [optional]+ * Default value: null + * The timestamp which is used as a base for the calculation of relative + * dates. + *
+ * @return int|false a timestamp on success, false otherwise. Previous to PHP 5.1.0, + * this function would return -1 on failure. + */ +#[Pure(true)] +function strtotime(string $datetime, ?int $baseTimestamp): int|false {} + +/** + * Format a local time/date + * @link https://php.net/manual/en/function.date.php + * @param string $format+ * The format of the outputted date string. See the formatting + * options below. There are also several + * predefined date constants + * that may be used instead, so for example DATE_RSS + * contains the format string 'D, d M Y H:i:s'. + *
+ *
+ *
+ * The following characters are recognized in the
+ * format parameter string:
+ *
+ *
| format character | + *Description | + *Example returned values | + *
|---|---|---|
| Day | + *--- | + *--- | + *
| d | + *Day of the month, 2 digits with leading zeros | + *01 to 31 | + *
| D | + *A textual representation of a day, three letters | + *Mon through Sun | + *
| j | + *Day of the month without leading zeros | + *1 to 31 | + *
| l (lowercase 'L') | + *A full textual representation of the day of the week | + *Sunday through Saturday | + *
| N | + *ISO-8601 numeric representation of the day of the week (added in + * PHP 5.1.0) | + *1 (for Monday) through 7 (for Sunday) | + *
| S | + *English ordinal suffix for the day of the month, 2 characters | + *+ * st, nd, rd or + * th. Works well with j + * | + *
| w | + *Numeric representation of the day of the week | + *0 (for Sunday) through 6 (for Saturday) | + *
| z | + *The day of the year (starting from 0) | + *0 through 365 | + *
| Week | + *--- | + *--- | + *
| W | + *ISO-8601 week number of year, weeks starting on Monday (added in PHP 4.1.0) | + *Example: 42 (the 42nd week in the year) | + *
| Month | + *--- | + *--- | + *
| F | + *A full textual representation of a month, such as January or March | + *January through December | + *
| m | + *Numeric representation of a month, with leading zeros | + *01 through 12 | + *
| M | + *A short textual representation of a month, three letters | + *Jan through Dec | + *
| n | + *Numeric representation of a month, without leading zeros | + *1 through 12 | + *
| t | + *Number of days in the given month | + *28 through 31 | + *
| Year | + *--- | + *--- | + *
| L | + *Whether it's a leap year | + *1 if it is a leap year, 0 otherwise. | + *
| o | + *ISO-8601 year number. This has the same value as + * Y, except that if the ISO week number + * (W) belongs to the previous or next year, that year + * is used instead. (added in PHP 5.1.0) | + *Examples: 1999 or 2003 | + *
| Y | + *A full numeric representation of a year, 4 digits | + *Examples: 1999 or 2003 | + *
| y | + *A two digit representation of a year | + *Examples: 99 or 03 | + *
| Time | + *--- | + *--- | + *
| a | + *Lowercase Ante meridiem and Post meridiem | + *am or pm | + *
| A | + *Uppercase Ante meridiem and Post meridiem | + *AM or PM | + *
| B | + *Swatch Internet time | + *000 through 999 | + *
| g | + *12-hour format of an hour without leading zeros | + *1 through 12 | + *
| G | + *24-hour format of an hour without leading zeros | + *0 through 23 | + *
| h | + *12-hour format of an hour with leading zeros | + *01 through 12 | + *
| H | + *24-hour format of an hour with leading zeros | + *00 through 23 | + *
| i | + *Minutes with leading zeros | + *00 to 59 | + *
| s | + *Seconds, with leading zeros | + *00 through 59 | + *
| u | + *Microseconds (added in PHP 5.2.2) | + *Example: 654321 | + *
| Timezone | + *--- | + *--- | + *
| e | + *Timezone identifier (added in PHP 5.1.0) | + *Examples: UTC, GMT, Atlantic/Azores | + *
| I (capital i) | + *Whether or not the date is in daylight saving time | + *1 if Daylight Saving Time, 0 otherwise. | + *
| O | + *Difference to Greenwich time (GMT) in hours | + *Example: +0200 | + *
| P | + *Difference to Greenwich time (GMT) with colon between hours and minutes (added in PHP 5.1.3) | + *Example: +02:00 | + *
| T | + *Timezone abbreviation | + *Examples: EST, MDT ... | + *
| Z | + *Timezone offset in seconds. The offset for timezones west of UTC is always + * negative, and for those east of UTC is always positive. | + *-43200 through 50400 | + *
| Full Date/Time | + *--- | + *--- | + *
| c | + *ISO 8601 date (added in PHP 5) | + *2004-02-12T15:19:21+00:00 | + *
| r | + *RFC 2822 formatted date | + *Example: Thu, 21 Dec 2000 16:01:07 +0200 | + *
| U | + *Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | + *See also time | + *
+ * Unrecognized characters in the format string will be printed + * as-is. The Z format will always return + * 0 when using gmdate. + *
+ *+ * Since this function only accepts integer timestamps the + * u format character is only useful when using the + * date_format function with user based timestamps + * created with date_create. + *
+ * @param int|null $timestamp [optional] Default value: time(). The optional timestamp parameter is an integer Unix timestamp + * that defaults to the current local time if a timestamp is not given. + * @return string|false a formatted date string. If a non-numeric value is used for + * timestamp, false is returned and an + * E_WARNING level error is emitted. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function date(string $format, ?int $timestamp) {} + +/** + * Format a local time/date as integer + * @link https://php.net/manual/en/function.idate.php + * @param string $format+ *
| format character | + *Description | + *
| B | + *Swatch Beat/Internet Time | + *
| d | + *Day of the month | + *
| h | + *Hour (12 hour format) | + *
| H | + *Hour (24 hour format) | + *
| i | + *Minutes | + *
| I (uppercase i) | + *returns 1 if DST is activated, + * 0 otherwise | + *
| L (uppercase l) | + *returns 1 for leap year, + * 0 otherwise | + *
| m | + *Month number | + *
| s | + *Seconds | + *
| t | + *Days in current month | + *
| U | + *Seconds since the Unix Epoch - January 1 1970 00:00:00 UTC - + * this is the same as time | + *
| w | + *Day of the week (0 on Sunday) | + *
| W | + *ISO-8601 week number of year, weeks starting on + * Monday | + *
| y | + *Year (1 or 2 digits - check note below) | + *
| Y | + *Year (4 digits) | + *
| z | + *Day of the year | + *
| Z | + *Timezone offset in seconds | + *
+ * As idate always returns an integer and + * as they can't start with a "0", idate may return + * fewer digits than you would expect. See the example below. + *
+ */ +#[Pure(true)] +function idate(string $format, ?int $timestamp): int|false {} + +/** + * Format a GMT/UTC date/time + * @link https://php.net/manual/en/function.gmdate.php + * @param string $format+ * The format of the outputted date string. See the formatting + * options for the date function. + *
+ * @param int|null $timestamp [optional] Default value: time(). The optional timestamp parameter is an integer Unix timestamp + * that defaults to the current local time if a timestamp is not given. + * @return string|false a formatted date string. If a non-numeric value is used for + * timestamp, false is returned and an + * E_WARNING level error is emitted. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function gmdate(string $format, ?int $timestamp) {} + +/** + * Get Unix timestamp for a date + * @link https://php.net/manual/en/function.mktime.php + * @param int $hour+ * The number of the hour. + *
+ * @param int|null $minute+ * The number of the minute. + *
+ * @param int|null $second+ * The number of seconds past the minute. + *
+ * @param int|null $month+ * The number of the month. + *
+ * @param int|null $day+ * The number of the day. + *
+ * @param int|null $year [optional]+ * The number of the year, may be a two or four digit value, + * with values between 0-69 mapping to 2000-2069 and 70-100 to + * 1970-2000. On systems where time_t is a 32bit signed integer, as + * most common today, the valid range for year + * is somewhere between 1901 and 2038. However, before PHP 5.1.0 this + * range was limited from 1970 to 2038 on some systems (e.g. Windows). + *
+ * @param int $is_dst [optional]+ * This parameter can be set to 1 if the time is during daylight savings time (DST), + * 0 if it is not, or -1 (the default) if it is unknown whether the time is within + * daylight savings time or not. If it's unknown, PHP tries to figure it out itself. + * This can cause unexpected (but not incorrect) results. + * Some times are invalid if DST is enabled on the system PHP is running on or + * is_dst is set to 1. If DST is enabled in e.g. 2:00, all times + * between 2:00 and 3:00 are invalid and mktime returns an undefined + * (usually negative) value. + * Some systems (e.g. Solaris 8) enable DST at midnight so time 0:30 of the day when DST + * is enabled is evaluated as 23:30 of the previous day. + *
+ *+ * As of PHP 5.1.0, this parameter became deprecated. As a result, the + * new timezone handling features should be used instead. + *
+ *+ * This parameter has been removed in PHP 7.0.0. + *
+ * @return int|false mktime returns the Unix timestamp of the arguments + * given. + * If the arguments are invalid, the function returns false (before PHP 5.1 + * it returned -1). + */ +#[Pure(true)] +function mktime( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] int $hour = null, + #[PhpStormStubsElementAvailable(from: '8.0')] int $hour, + ?int $minute = null, + ?int $second = null, + ?int $month = null, + ?int $day = null, + ?int $year = null, + #[Deprecated('Use the new timezone handling functions instead', since: '5.3')] #[PhpStormStubsElementAvailable(from: '5.5', to: '5.6')] int $is_dst = -1 +): int|false {} + +/** + * Get Unix timestamp for a GMT date + * @link https://php.net/manual/en/function.gmmktime.php + * @param int $hour+ * The hour + *
+ * @param int $minute+ * The minute + *
+ * @param int $second+ * The second + *
+ * @param int $month+ * The month + *
+ * @param int $day+ * The day + *
+ * @param int $year+ * The year + *
+ * @param int $is_dst+ * Parameters always represent a GMT date so is_dst + * doesn't influence the result. + *
+ * @return int|false a integer Unix timestamp. + */ +#[Pure(true)] +function gmmktime( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] int $hour = null, + #[PhpStormStubsElementAvailable(from: '8.0')] int $hour, + ?int $minute = null, + ?int $second = null, + ?int $month = null, + ?int $day = null, + ?int $year = null, + #[PhpStormStubsElementAvailable(from: '5.5', to: '5.6')] $is_dst = null +): int|false {} + +/** + * Validate a Gregorian date + * @link https://php.net/manual/en/function.checkdate.php + * @param int $month+ * The month is between 1 and 12 inclusive. + *
+ * @param int $day+ * The day is within the allowed number of days for the given + * month. Leap years + * are taken into consideration. + *
+ * @param int $year+ * The year is between 1 and 32767 inclusive. + *
+ * @return bool true if the date given is valid; otherwise returns false. + */ +#[Pure(true)] +function checkdate(int $month, int $day, int $year): bool {} + +/** + * Format a local time/date according to locale settings + * The following characters are recognized in the + * format parameter string + *| format | + *Description | + *Example returned values | + *+ * Day | + *
|---|---|---|---|
| %a | + *An abbreviated textual representation of the day | + *Sun through Sat | + *|
| %A | + *A full textual representation of the day | + *Sunday through Saturday | + *|
| %d | + *Two-digit day of the month (with leading zeros) | + *01 to 31 | + *|
| %e | + *Day of the month, with a space preceding single digits | + *1 to 31 | + *|
| %j | + *Day of the year, 3 digits with leading zeros | + *001 to 366 | + *|
| %u | + *ISO-8601 numeric representation of the day of the week | + *1 (for Monday) though 7 (for Sunday) | + *|
| %w | + *Numeric representation of the day of the week | + *0 (for Sunday) through 6 (for Saturday) | + *|
| Week | + *|||
| %U | + *Week number of the given year, starting with the first + * Sunday as the first week | + *13 (for the 13th full week of the year) | + *|
| %V | + *ISO-8601:1988 week number of the given year, starting with + * the first week of the year with at least 4 weekdays, with Monday + * being the start of the week | + *01 through 53 (where 53 + * accounts for an overlapping week) | + *|
| %W | + *A numeric representation of the week of the year, starting + * with the first Monday as the first week | + *46 (for the 46th week of the year beginning + * with a Monday) | + *|
| Month | + *|||
| %b | + *Abbreviated month name, based on the locale | + *Jan through Dec | + *|
| %B | + *Full month name, based on the locale | + *January through December | + *|
| %h | + *Abbreviated month name, based on the locale (an alias of %b) | + *Jan through Dec | + *|
| %m | + *Two digit representation of the month | + *01 (for January) through 12 (for December) | + *|
| Year | + *|||
| %C | + *Two digit representation of the century (year divided by 100, truncated to an integer) | + *19 for the 20th Century | + *|
| %g | + *Two digit representation of the year going by ISO-8601:1988 standards (see %V) | + *Example: 09 for the week of January 6, 2009 | + *|
| %G | + *The full four-digit version of %g | + *Example: 2008 for the week of January 3, 2009 | + *|
| %y | + *Two digit representation of the year | + *Example: 09 for 2009, 79 for 1979 | + *|
| %Y | + *Four digit representation for the year | + *Example: 2038 | + *|
| Time | + *|||
| %H | + *Two digit representation of the hour in 24-hour format | + *00 through 23 | + *|
| %I | + *Two digit representation of the hour in 12-hour format | + *01 through 12 | + *|
| %l (lower-case 'L') | + *Hour in 12-hour format, with a space preceding single digits | + *1 through 12 | + *|
| %M | + *Two digit representation of the minute | + *00 through 59 | + *|
| %p | + *UPPER-CASE 'AM' or 'PM' based on the given time | + *Example: AM for 00:31, PM for 22:23 | + *|
| %P | + *lower-case 'am' or 'pm' based on the given time | + *Example: am for 00:31, pm for 22:23 | + *|
| %r | + *Same as "%I:%M:%S %p" | + *Example: 09:34:17 PM for 21:34:17 | + *|
| %R | + *Same as "%H:%M" | + *Example: 00:35 for 12:35 AM, 16:44 for 4:44 PM | + *|
| %S | + *Two digit representation of the second | + *00 through 59 | + *|
| %T | + *Same as "%H:%M:%S" | + *Example: 21:34:17 for 09:34:17 PM | + *|
| %X | + *Preferred time representation based on locale, without the date | + *Example: 03:59:16 or 15:59:16 | + *|
| %z | + *Either the time zone offset from UTC or the abbreviation (depends + * on operating system) | + *Example: -0500 or EST for Eastern Time | + *|
| %Z | + *The time zone offset/abbreviation option NOT given by %z (depends + * on operating system) | + *Example: -0500 or EST for Eastern Time | + *|
| Time and Date Stamps | + *|||
| %c | + *Preferred date and time stamp based on local | + *Example: Tue Feb 5 00:45:10 2009 for + * February 4, 2009 at 12:45:10 AM | + *|
| %D | + *Same as "%m/%d/%y" | + *Example: 02/05/09 for February 5, 2009 | + *|
| %F | + *Same as "%Y-%m-%d" (commonly used in database datestamps) | + *Example: 2009-02-05 for February 5, 2009 | + *|
| %s | + *Unix Epoch Time timestamp (same as the time + * function) | + *Example: 305815200 for September 10, 1979 08:40:00 AM | + *|
| %x | + *Preferred date representation based on locale, without the time | + *Example: 02/05/09 for February 5, 2009 | + *|
| Miscellaneous | + *|||
| %n | + *A newline character ("\n") | + *--- | + *|
| %t | + *A Tab character ("\t") | + *--- | + *|
| %% | + *A literal percentage character ("%") | + *--- | + *|
+ * Maximum length of this parameter is 1023 characters. + *
+ * Contrary to ISO-9899:1999, Sun Solaris starts with Sunday as 1. + * As a result, %u may not function as described in this manual. + * @link https://php.net/manual/en/function.strftime.php + * @param string $format + * @param int|null $timestamp [optional] defaults to the value of time() + * Unix timestamp that defaults to the current local time if a timestamp is not given.. + * @return string|false a string formatted according format + * using the given timestamp or the current + * local time if no timestamp is given. Month and weekday names and + * other language-dependent strings respect the current locale set + * with setlocale. + * @deprecated 8.1 + */ +#[Deprecated(since: '8.1')] +function strftime(string $format, ?int $timestamp): string|false {} + +/** + * Format a GMT/UTC time/date according to locale settings + * @link https://php.net/manual/en/function.gmstrftime.php + * @param string $format+ * See description in strftime. + *
+ * @param int|null $timestamp [optional] + * @return string|false a string formatted according to the given format string + * using the given timestamp or the current + * local time if no timestamp is given. Month and weekday names and + * other language dependent strings respect the current locale set + * with setlocale. + * @deprecated 8.1 + */ +#[Deprecated(since: '8.1')] +function gmstrftime(string $format, ?int $timestamp): string|false {} + +/** + * Return current Unix timestamp + * @link https://php.net/manual/en/function.time.php + * @return intReturns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
+ */ +function time(): int {} + +/** + * Get the local time + * @link https://php.net/manual/en/function.localtime.php + * @param int|null $timestamp [optional] + * @param bool $associative [optional]+ * If set to false or not supplied then the array is returned as a regular, + * numerically indexed array. If the argument is set to true then + * localtime returns an associative array containing + * all the different elements of the structure returned by the C + * function call to localtime. The names of the different keys of + * the associative array are as follows: + *
+ * "tm_sec" - seconds + * @return array + */ +#[Pure(true)] +#[ArrayShape([ + 'tm_sec' => 'int', + 'tm_min' => 'int', + 'tm_hour' => 'int', + 'tm_mday' => 'int', + 'tm_mon' => 'int', + 'tm_year' => 'int', + 'tm_wday' => 'int', + 'tm_yday' => 'int', + 'tm_isdst' => 'int', +])] +function localtime(?int $timestamp, bool $associative = false): array {} + +/** + * Get date/time information + * @link https://php.net/manual/en/function.getdate.php + * @param int|null $timestamp [optional] + * @return array an associative array of information related to + * the timestamp. Elements from the returned + * associative array are as follows: + * + *+ *
| Key | + *Description | + *Example returned values | + *
| "seconds" | + *Numeric representation of seconds | + *0 to 59 | + *
| "minutes" | + *Numeric representation of minutes | + *0 to 59 | + *
| "hours" | + *Numeric representation of hours | + *0 to 23 | + *
| "mday" | + *Numeric representation of the day of the month | + *1 to 31 | + *
| "wday" | + *Numeric representation of the day of the week | + *0 (for Sunday) through 6 (for Saturday) | + *
| "mon" | + *Numeric representation of a month | + *1 through 12 | + *
| "year" | + *A full numeric representation of a year, 4 digits | + *Examples: 1999 or 2003 | + *
| "yday" | + *Numeric representation of the day of the year | + *0 through 365 | + *
| "weekday" | + *A full textual representation of the day of the week | + *Sunday through Saturday | + *
| "month" | + *A full textual representation of a month, such as January or March | + *January through December | + *
| 0 | + *+ * Seconds since the Unix Epoch, similar to the values returned by + * time and used by date. + * | + *+ * System Dependent, typically -2147483648 through + * 2147483647. + * | + *
+ * String in a format accepted by strtotime. + *
+ * @param DateTimeZone|null $timezone [optional]+ * Time zone of the time. + *
+ * @return DateTime|false DateTime object on success or false on failure. + */ +#[Pure(true)] +function date_create(string $datetime = 'now', ?DateTimeZone $timezone): DateTime|false {} + +/** + * (PHP 5.5)+ * String in a format accepted by strtotime. + *
+ * @param DateTimeZone|null $timezone [optional]+ * Time zone of the time. + *
+ * @return DateTimeImmutable|false DateTime object on success or false on failure. + */ +#[Pure(true)] +function date_create_immutable(string $datetime = 'now', ?DateTimeZone $timezone): DateTimeImmutable|false {} + +/** + * Returns new DateTimeImmutable object formatted according to the specified format + * @link https://php.net/manual/en/function.date-create-immutable-from-format.php + * @param string $format + * @param string $datetime + * @param DateTimeZone|null $timezone [optional] + * @return DateTimeImmutable|false + */ +#[Pure(true)] +function date_create_immutable_from_format(string $format, string $datetime, ?DateTimeZone $timezone): DateTimeImmutable|false {} + +/** + * Alias: + * {@see DateTime::createFromFormat} + * @link https://php.net/manual/en/function.date-create-from-format.php + * @param string $format Format accepted by date(). + *If format does not contain the character ! then portions of the generated time which are not specified in format will be set to the current system time.
+ *If format contains the character !, then portions of the generated time not provided in format, as well as values to the left-hand side of the !, will be set to corresponding values from the Unix epoch.
+ *The Unix epoch is 1970-01-01 00:00:00 UTC.
+ * @param string $datetime String representing the time. + * @param DateTimeZone|null $timezone [optional] A DateTimeZone object representing the desired time zone. + * @return DateTime|falseReturns a new + * {@see DateTime} instance or FALSE on failure.
+ */ +#[Pure(true)] +function date_create_from_format(string $format, string $datetime, ?DateTimeZone $timezone): DateTime|false {} + +/** + * Returns associative array with detailed info about given date + * @link https://php.net/manual/en/function.date-parse.php + * @param string $datetime+ * Date in format accepted by strtotime. + *
+ * @return array|false array with information about the parsed date + * on success or false on failure. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")] +#[ArrayShape([ + "year" => "int", + "month" => "int", + "day" => "int", + "hour" => "int", + "minute" => "int", + "second" => "int", + "fraction" => "double", + "is_localtime" => "bool", + "zone_type" => "int", + "zone" => "int", + "is_dst" => "bool", + "tz_abbr" => "string", + "tz_id" => "string", + "relative" => "array", + "warning_count" => "int", + "warnings" => "array", + "error_count" => "int", + "errors" => "array" +])] +function date_parse(string $datetime): false|array {} + +/** + * Get info about given date formatted according to the specified format + * @link https://php.net/manual/en/function.date-parse-from-format.php + * @param string $format+ * Format accepted by date with some extras. + *
+ * @param string $datetime+ * String representing the date. + *
+ * @return array associative array with detailed info about given date. + */ +#[Pure(true)] +#[ArrayShape([ + 'year' => 'int', + 'month' => 'int', + 'day' => 'int', + 'hour' => 'int', + 'minute' => 'int', + 'second' => 'int', + 'fraction' => 'double', + 'is_localtime' => 'bool', + 'zone_type' => 'int', + 'zone' => 'int', + 'is_dst' => 'bool', + 'tz_abbr' => 'string', + 'tz_id' => 'string', + 'relative' => 'array', + 'warning_count' => 'int', + 'warnings' => 'array', + 'error_count' => 'int', + 'errors' => 'array' +])] +function date_parse_from_format(string $format, string $datetime): array {} + +/** + * Returns the warnings and errors + * Alias: + * {@see DateTime::getLastErrors} + * @link https://php.net/manual/en/function.date-get-last-errors.php + * @return array|falseReturns array containing info about warnings and errors.
+ */ +#[ArrayShape(["warning_count" => "int", "warnings" => "string[]", "error_count" => "int", "errors" => "string[]"])] +#[Pure(true)] +function date_get_last_errors(): array|false {} + +/** + * Alias: + * {@see DateTime::format} + * @link https://php.net/manual/en/function.date-format.php + * @param DateTimeInterface $object + * @param string $format + * @return string|false formatted date string on success or FALSE on failure. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function date_format(DateTimeInterface $object, string $format) {} + +/** + * Alter the timestamp of a DateTime object by incrementing or decrementing + * in a format accepted by strtotime(). + * Alias: + * {@see DateTime::modify} + * @link https://php.net/manual/en/function.date-modify.php + * @param DateTime $object A DateTime object returned by date_create(). The function modifies this object. + * @param string $modifier A date/time string. Valid formats are explained in {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}. + * @return DateTime|false Returns the DateTime object for method chaining or FALSE on failure. + */ +function date_modify(DateTime $object, string $modifier): DateTime|false {} + +/** + * Alias: + * {@see DateTime::add} + * @link https://php.net/manual/en/function.date-add.php + * @param DateTime $objectProcedural style only: A + * {@see DateTime} object returned by + * {@see date_create()}. The function modifies this object.
+ * @param DateInterval $intervalA + * {@see DateInterval} object
+ * @return DateTime|falseReturns the + * {@see DateTime} object for method chaining or FALSE on failure.
+ */ +#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")] +function date_add(DateTime $object, DateInterval $interval) {} + +/** + * Subtracts an amount of days, months, years, hours, minutes and seconds from a datetime object + * Alias: + * {@see DateTime::sub} + * @link https://php.net/manual/en/function.date-sub.php + * @param DateTime $object Procedural style only: A + * {@see DateTime} object returned by + * {@see date_create()}. The function modifies this object. + * @param DateInterval $intervalA + * {@see DateInterval} object
+ * @return DateTime|falseReturns the + * {@see DateTime} object for method chaining or FALSE on failure.
+ */ +#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")] +function date_sub(DateTime $object, DateInterval $interval) {} + +/** + * Alias: + * {@see DateTime::getTimezone} + * @link https://php.net/manual/en/function.date-timezone-get.php + * @param DateTimeInterface $objectProcedural style only: A + * {@see DateTime} object + * returned by + * {@see date_create()}
+ * @return DateTimeZone|false + *+ * Returns a + * {@see DateTimeZone} object on success + * or FALSE on failure. + *
+ */ +#[Pure(true)] +function date_timezone_get(DateTimeInterface $object): DateTimeZone|false {} + +/** + * Sets the time zone for the datetime object + * Alias: + * {@see DateTime::setTimezone} + * @link https://php.net/manual/en/function.date-timezone-set.php + * @param DateTime|DateTimeInterface $objectA + * {@see DateTime} object returned by + * {@see date_create()}. The function modifies this object.
+ * @param DateTimeZone $timezoneA + * {@see DateTimeZone} object representing the desired time zone.
+ * @return DateTime|falseReturns the + * {@see DateTime} object for method chaining or FALSE on failure.
+ */ +#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")] +function date_timezone_set(#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTimeInterface")] $object, DateTimeZone $timezone) {} + +/** + * Alias: + * {@see DateTime::getOffset} + * @link https://php.net/manual/en/function.date-offset-get.php + * @param DateTimeInterface $objectProcedural style only: A {@see DateTime} object + * returned by {@see date_create()}
+ * @return int|falseReturns the timezone offset in seconds from UTC on success or FALSE on failure.
+ */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")] +function date_offset_get(DateTimeInterface $object) {} + +/** + * Returns the difference between two datetime objects + * Alias: + * {@see DateTime::diff} + * @link https://php.net/manual/en/function.date-diff.php + * @param DateTimeInterface $baseObject + * @param DateTimeInterface $targetObject The date to compare to + * @param bool $absolute [optional] Whether to return absolute difference. + * @return DateInterval|false The DateInterval object representing the difference between the two dates or FALSE on failure. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "DateInterval"], default: "DateInterval|false")] +function date_diff(DateTimeInterface $baseObject, DateTimeInterface $targetObject, bool $absolute = false) {} + +/** + * Alias: + * {@see DateTime::setTime} + * @link https://php.net/manual/en/function.date-time-set.php + * @param DateTime $object + * @param int $hour + * @param int $minute + * @param int $second [optional] + * @param int $microsecond [optional] + * @return DateTimeReturns the + * {@see DateTime} object for method chaining or FALSE on failure.
+ */ +function date_time_set( + DateTime $object, + int $hour, + int $minute, + int $second = 0, + #[PhpStormStubsElementAvailable(from: '7.1')] int $microsecond = 0 +): DateTime {} + +/** + * Alias: + * {@see DateTime::setDate} + * @link https://php.net/manual/en/function.date-date-set.php + * @param DateTime $objectProcedural style only: A {@see DateTime} object + * returned by {@see date_create()}. + * The function modifies this object.
+ * @param int $yearYear of the date.
+ * @param int $monthMonth of the date.
+ * @param int $dayDay of the date.
+ * @return DateTime|false + *+ * Returns the + * {@see DateTime} object for method chaining or FALSE on failure. + *
+ */ +#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")] +function date_date_set(DateTime $object, int $year, int $month, int $day): DateTime|false {} + +/** + * Alias: + * {@see DateTime::setISODate} + * @link https://php.net/manual/en/function.date-isodate-set.php + * @param DateTime $object + * @param int $yearYear of the date
+ * @param int $weekWeek of the date.
+ * @param int $dayOfWeek [optional]Offset from the first day of the week.
+ * @return DateTime|false
+ * Returns the {@see DateTime} object for method chaining or FALSE on failure.
+ *
Procedural style only: A + * {@see DateTime} object returned by + * {@see date_create()}. The function modifies this object.
+ * @param int $timestampUnix timestamp representing the date.
+ * @return DateTime|false + * {@see DateTime} object for call chaining or FALSE on failure + */ +#[LanguageLevelTypeAware(["8.0" => "DateTime"], default: "DateTime|false")] +function date_timestamp_set(DateTime $object, int $timestamp): DateTime|false {} + +/** + * Gets the unix timestamp + * Alias: + * {@see DateTime::getTimestamp} + * @link https://php.net/manual/en/function.date-timestamp-get.php + * @param DateTimeInterface $object + * @return intReturns the Unix timestamp representing the date.
+ */ +#[Pure(true)] +function date_timestamp_get(DateTimeInterface $object): int {} + +/** + * Returns new DateTimeZone object + * @link https://php.net/manual/en/function.timezone-open.php + * @param string $timezone+ * Time zone identifier as full name (e.g. Europe/Prague) or abbreviation + * (e.g. CET). + *
+ * @return DateTimeZone|false DateTimeZone object on success or false on failure. + */ +#[Pure(true)] +function timezone_open(string $timezone): DateTimeZone|false {} + +/** + * Alias: + * {@see DateTimeZone::getName} + * @link https://php.net/manual/en/function.timezone-name-get.php + * @param DateTimeZone $objectThe + * {@see DateTimeZone} for which to get a name.
+ * @return string One of the timezone names in the list of timezones. + */ +#[Pure] +function timezone_name_get(DateTimeZone $object): string {} + +/** + * Returns the timezone name from abbreviation + * @link https://php.net/manual/en/function.timezone-name-from-abbr.php + * @param string $abbr+ * Time zone abbreviation. + *
+ * @param int $utcOffset [optional]+ * Offset from GMT in seconds. Defaults to -1 which means that first found + * time zone corresponding to abbr is returned. + * Otherwise exact offset is searched and only if not found then the first + * time zone with any offset is returned. + *
+ * @param int $isDST [optional]+ * Daylight saving time indicator. If abbr doesn't + * exist then the time zone is searched solely by + * offset and isdst. + *
+ * @return string|false time zone name on success or false on failure. + * @since 5.1.3 + */ +#[Pure(true)] +function timezone_name_from_abbr(string $abbr, int $utcOffset = -1, int $isDST = -1): string|false {} + +/** + * Alias: + * {@link DateTimeZone::getOffset} + * @link https://php.net/manual/en/function.timezone-offset-get.php + * @param DateTimeZone $objectProcedural style only: A + * {@see DateTimeZone} object + * returned by + * {@see timezone_open()}
+ * @param DateTimeInterface $datetimeDateTime that contains the date/time to compute the offset from.
+ * @return int|falseReturns time zone offset in seconds on success or FALSE on failure.
+ */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")] +function timezone_offset_get(DateTimeZone $object, DateTimeInterface $datetime) {} + +/** + * Returns all transitions for the timezone + * Alias: + * {@see DateTimeZone::getTransitions} + * @link https://php.net/manual/en/function.timezone-transitions-get.php + * @param DateTimeZone $objectProcedural style only: A + * {@see DateTimeZone} object returned by + * {@see timezone_open()}
+ * @param int $timestampBegin [optional]Begin timestamp
+ * @param int $timestampEnd [optional]End timestamp
+ * @return array|falseReturns numerically indexed array containing associative array with all transitions on success or FALSE on failure.
+ */ +#[Pure(true)] +function timezone_transitions_get(DateTimeZone $object, int $timestampBegin = PHP_INT_MIN, int $timestampEnd = PHP_INT_MAX): array|false {} + +/** + * Alias: + * {@see DateTimeZone::getLocation} + * @link https://php.net/manual/en/function.timezone-location-get.php + * @param DateTimeZone $objectProcedural style only: A {@see DateTimeZone} object returned by {@see timezone_open()}
+ * @return array|falseArray containing location information about timezone.
+ */ +#[Pure(true)] +#[ArrayShape([ + 'country_code' => 'string', + 'latitude' => 'double', + 'longitude' => 'double', + 'comments' => 'string', +])] +function timezone_location_get(DateTimeZone $object): array|false {} + +/** + * Returns a numerically indexed array containing all defined timezone identifiers + * Alias: + * {@see DateTimeZone::listIdentifiers()} + * @link https://php.net/manual/en/function.timezone-identifiers-list.php + * @param int $timezoneGroup [optional] One of DateTimeZone class constants. + * @param string|null $countryCode [optional] A two-letter ISO 3166-1 compatible country code. + * Note: This option is only used when $timezoneGroup is set to DateTimeZone::PER_COUNTRY. + * @return array|false Returns array on success or FALSE on failure. + */ +#[Pure(true)] +#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")] +function timezone_identifiers_list(int $timezoneGroup = DateTimeZone::ALL, ?string $countryCode) {} + +/** + * Returns associative array containing dst, offset and the timezone name + * Alias: + * {@see DateTimeZone::listAbbreviations} + * @link https://php.net/manual/en/function.timezone-abbreviations-list.php + * @return arrayA date with relative parts. Specifically, the relative formats supported by the parser used for + * {@see strtotime()} and + * {@see DateTime} will be used to construct the + * {@see DateInterval}.
+ * @return DateInterval|false + *Returns a new DateInterval instance.
+ */ +#[Pure(true)] +function date_interval_create_from_date_string(string $datetime): DateInterval|false {} + +/** + * Alias: + * {@see DateInterval::format} + * @link https://php.net/manual/en/function.date-interval-format.php + * @param DateInterval $object + * @param string $format + * @return string + */ +#[Pure(true)] +function date_interval_format(DateInterval $object, string $format): string {} + +/** + * Sets the default timezone used by all date/time functions in a script + * @link https://php.net/manual/en/function.date-default-timezone-set.php + * @param string $timezoneId+ * The timezone identifier, like UTC or + * Europe/Lisbon. The list of valid identifiers is + * available in the . + *
+ * @return bool This function returns false if the + * timezone_identifier isn't valid, or true + * otherwise. + */ +function date_default_timezone_set(string $timezoneId): bool {} + +/** + * Gets the default timezone used by all date/time functions in a script + * @link https://php.net/manual/en/function.date-default-timezone-get.php + * @return string a string. + */ +#[Pure] +function date_default_timezone_get(): string {} + +/** + * Returns time of sunrise for a given day and location + * @link https://php.net/manual/en/function.date-sunrise.php + * @param int $timestamp+ * The timestamp of the day from which the sunrise + * time is taken. + *
+ * @param int $returnFormat [optional]+ *
| constant | + *description | + *example | + *
| SUNFUNCS_RET_STRING | + *returns the result as string | + *16:46 | + *
| SUNFUNCS_RET_DOUBLE | + *returns the result as float | + *16.78243132 | + *
| SUNFUNCS_RET_TIMESTAMP | + *returns the result as integer (timestamp) | + *1095034606 | + *
+ * Defaults to North, pass in a negative value for South. + * See also: date.default_latitude + *
+ * @param float|null $longitude [optional]+ * Defaults to East, pass in a negative value for West. + * See also: date.default_longitude + *
+ * @param float|null $zenith [optional]+ * Default: date.sunrise_zenith + *
+ * @param float|null $utcOffset [optional] + * @return string|int|float|false the sunrise time in a specified format on + * success or false on failure. + * @deprecated in 8.1. Use {@link date_sun_info} instead + */ +#[Pure(true)] +#[Deprecated(reason: 'in 8.1. Use date_sun_info instead', since: '8.1')] +function date_sunrise(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, ?float $latitude, ?float $longitude, ?float $zenith, ?float $utcOffset): string|int|float|false {} + +/** + * Returns time of sunset for a given day and location + * @link https://php.net/manual/en/function.date-sunset.php + * @param int $timestamp+ * The timestamp of the day from which the sunset + * time is taken. + *
+ * @param int $returnFormat [optional]+ *
| constant | + *description | + *example | + *
| SUNFUNCS_RET_STRING | + *returns the result as string | + *16:46 | + *
| SUNFUNCS_RET_DOUBLE | + *returns the result as float | + *16.78243132 | + *
| SUNFUNCS_RET_TIMESTAMP | + *returns the result as integer (timestamp) | + *1095034606 | + *
+ * Defaults to North, pass in a negative value for South. + * See also: date.default_latitude + *
+ * @param float|null $longitude [optional]+ * Defaults to East, pass in a negative value for West. + * See also: date.default_longitude + *
+ * @param float|null $zenith [optional]+ * Default: date.sunset_zenith + *
+ * @param float|null $utcOffset [optional] + * @return string|int|float|false the sunset time in a specified format on + * success or false on failure. + * @deprecated in 8.1. Use {@link date_sun_info} instead + */ +#[Pure(true)] +#[Deprecated(reason: 'in 8.1. Use date_sun_info instead', since: '8.1')] +function date_sunset(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, ?float $latitude, ?float $longitude, ?float $zenith, ?float $utcOffset): string|int|float|false {} + +/** + * Returns an array with information about sunset/sunrise and twilight begin/end + * @link https://php.net/manual/en/function.date-sun-info.php + * @param int $timestamp+ * Timestamp. + *
+ * @param float $latitude+ * Latitude in degrees. + *
+ * @param float $longitude+ * Longitude in degrees. + *
+ * @return array{ + * sunrise: int|bool, + * sunset: int|bool, + * transit: int|bool, + * civil_twilight_begin: int|bool, + * civil_twilight_end: int|bool, + * nautical_twilight_begin: int|bool, + * nautical_twilight_end: int|bool, + * astronomical_twilight_begin: int|bool, + * astronomical_twilight_end: int|bool, + * }|false Returns array on success orfalse on failure. The structure of the array is detailed in the following list:
+ * | sunrise | The timestamp of the sunrise (zenith angle = 90°35'). |
| sunset | The timestamp of the sunset (zenith angle = 90°35'). |
| transit | The timestamp when the sun is at its zenith, i.e. has reached its topmost point. |
| civil_twilight_begin | The start of the civil dawn (zenith angle = 96°). It ends at sunrise. |
| civil_twilight_end | The end of the civil dusk (zenith angle = 96°). It starts at sunset. |
| nautical_twilight_begin | The start of the nautical dawn (zenith angle = 102°). It ends at civil_twilight_begin. |
| nautical_twilight_end | The end of the nautical dusk (zenith angle = 102°). It starts at civil_twilight_end. |
| astronomical_twilight_begin | The start of the astronomical dawn (zenith angle = 108°). It ends at nautical_twilight_begin. |
| astronomical_twilight_end | The end of the astronomical dusk (zenith angle = 108°). It starts at nautical_twilight_end. |
false if the
+ * sun is below the respective zenith for the whole day, or true if the sun is
+ * above the respective zenith for the whole day.
+ * @since 5.1.2
+ */
+#[Pure(true)]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+#[ArrayShape([
+ "sunrise" => "int",
+ "sunset" => "int",
+ "transit" => "int",
+ "civil_twilight_begin" => "int",
+ "civil_twilight_end" => "int",
+ "nautical_twilight_begin" => "int",
+ "nautical_twilight_end" => "int",
+ "astronomical_twilight_begin" => "int",
+ "astronomical_twilight_end" => "int"
+])]
+function date_sun_info(int $timestamp, float $latitude, float $longitude): array|false {}
+
+// End of date v.5.3.2-0.dotdeb.1
diff --git a/phpstorm-stubs/date/date_c.php b/phpstorm-stubs/date/date_c.php
new file mode 100644
index 0000000..9e2bd89
--- /dev/null
+++ b/phpstorm-stubs/date/date_c.php
@@ -0,0 +1,1153 @@
+
+ * Returns the difference between two DateTime objects
+ * @link https://secure.php.net/manual/en/datetime.diff.php
+ * @param DateTimeInterface $targetObject The date to compare to.
+ * @param bool $absoluteShould the interval be forced to be positive?
+ * @return DateInterval + * The https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object representing the + * difference between the two dates. + */ + #[TentativeType] + public function diff( + DateTimeInterface $targetObject, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $absolute = false + ): DateInterval; + + /** + * (PHP 5 >=5.5.0)+ * Format accepted by {@link https://secure.php.net/manual/en/function.date.php date()}. + *
+ * @return string + * Returns the formatted date string on success or FALSE on failure. + * Since PHP8, it always returns STRING. + */ + #[TentativeType] + public function format(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $format): string; + + /** + * (PHP 5 >=5.5.0)A date/time string. Valid formats are explained in {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ *Enter NULL here to obtain the current time when using the $timezone parameter.
+ * @param null|DateTimeZone $timezone [optional]+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the timezone of $datetime. + *
+ *If $timezone is omitted, the current timezone will be used.
+ *+ * @throws Exception Emits Exception in case of an error. + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $datetime = "now", + #[LanguageLevelTypeAware(['8.0' => 'DateTimeZone|null'], default: 'DateTimeZone')] $timezone = null + ) {} + + /** + * (PHP 5 >=5.5.0)Note:
+ * The $timezone parameter and the current timezone are ignored when the $datetime parameter either + * is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00). + *
A date/time string. Valid formats are explained in + * {@link https://secure.php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ * @return static|false Returns the newly created object or false on failure. + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function modify(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $modifier): DateTimeImmutable|false {} + + /** + * (PHP 5 >=5.5.0)Initialization array.
+ * @return DateTimeImmutable + * Returns a new instance of a {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object. + */ + public static function __set_state(array $array) {} + + /** + * (PHP 5 >=5.5.0)Year of the date.
+ * @param int $monthMonth of the date.
+ * @param int $dayDay of the date.
+ * @return static|false + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function setDate( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $year, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $month, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $day + ): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)Year of the date.
+ * @param int $weekWeek of the date.
+ * @param int $dayOfWeek [optional]Offset from the first day of the week.
+ * @return static|false + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function setISODate( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $year, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $week, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $dayOfWeek = 1 + ): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)Hour of the time.
+ * @param int $minuteMinute of the time.
+ * @param int $second [optional]Second of the time.
+ * @param int $microsecond [optional]Microseconds of the time. Added since 7.1
+ * @return static|false + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function setTime( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $hour, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $minute, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $second = 0, + #[PhpStormStubsElementAvailable(from: '7.1')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $microsecond = 0 + ): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)Unix timestamp representing the date.
+ * @return static + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function setTimestamp(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestamp): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the + * desired time zone. + *
+ * @return static + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function setTimezone(DateTimeZone $timezone): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)+ * A {@link https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object + *
+ * @return static + * Returns the {@link https://secure.php.net/manual/en/class.datetimeimmutable.php DateTimeImmutable} object for method chaining or FALSE on failure. + */ + #[TentativeType] + public function sub(DateInterval $interval): DateTimeImmutable {} + + /** + * (PHP 5 >=5.5.0)The date to compare to.
+ * @param bool $absolute [optional]Should the interval be forced to be positive?
+ * @return DateInterval|false + * The {@link https://secure.php.net/manual/en/class.dateinterval.php DateInterval} object representing the + * difference between the two dates or FALSE on failure. + */ + #[TentativeType] + public function diff( + #[LanguageLevelTypeAware(['8.0' => 'DateTimeInterface'], default: '')] $targetObject, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $absolute = false + ): DateInterval {} + + /** + * (PHP 5 >=5.5.0)+ * Format accepted by {@link https://secure.php.net/manual/en/function.date.php date()}. + *
+ * @return string + * Returns the formatted date string on success or FALSE on failure. + */ + #[TentativeType] + public function format(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $format): string {} + + /** + * (PHP 5 >=5.5.0)A date/time string. Valid formats are explained in {@link https://php.net/manual/en/datetime.formats.php Date and Time Formats}.
+ *+ * Enter now here to obtain the current time when using + * the $timezone parameter. + *
+ * @param null|DateTimeZone $timezone [optional]+ * A {@link https://php.net/manual/en/class.datetimezone.php DateTimeZone} object representing the + * timezone of $datetime. + *
+ *+ * If $timezone is omitted, + * the current timezone will be used. + *
+ *+ * @throws Exception Emits Exception in case of an error. + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $datetime = 'now', + #[LanguageLevelTypeAware(['8.0' => 'DateTimeZone|null'], default: 'DateTimeZone')] $timezone = null + ) {} + + /** + * @return void + * @link https://php.net/manual/en/datetime.wakeup.php + */ + #[TentativeType] + public function __wakeup(): void {} + + /** + * Returns date formatted according to given format. + * @param string $format + * @return string + * @link https://php.net/manual/en/datetime.format.php + */ + #[TentativeType] + public function format(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $format): string {} + + /** + * Alter the timestamp of a DateTime object by incrementing or decrementing + * in a format accepted by strtotime(). + * @param string $modifier A date/time string. Valid formats are explained in Date and Time Formats. + * @return static|false Returns the DateTime object for method chaining or FALSE on failure. + * @link https://php.net/manual/en/datetime.modify.php + */ + #[TentativeType] + public function modify(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $modifier): DateTime|false {} + + /** + * Adds an amount of days, months, years, hours, minutes and seconds to a DateTime object + * @param DateInterval $interval + * @return static + * @link https://php.net/manual/en/datetime.add.php + */ + #[TentativeType] + public function add(DateInterval $interval): DateTime {} + + /** + * @param DateTimeImmutable $object + * @return DateTime + * @since 7.3 + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.2' => 'static'], default: 'DateTime')] + public static function createFromImmutable(DateTimeImmutable $object) {} + + /** + * Subtracts an amount of days, months, years, hours, minutes and seconds from a DateTime object + * @param DateInterval $interval + * @return static + * @link https://php.net/manual/en/datetime.sub.php + */ + #[TentativeType] + public function sub(DateInterval $interval): DateTime {} + + /** + * Get the TimeZone associated with the DateTime + * @return DateTimeZone|false + * @link https://php.net/manual/en/datetime.gettimezone.php + */ + #[TentativeType] + public function getTimezone(): DateTimeZone|false {} + + /** + * Set the TimeZone associated with the DateTime + * @param DateTimeZone $timezone + * @return static + * @link https://php.net/manual/en/datetime.settimezone.php + */ + #[TentativeType] + public function setTimezone(#[LanguageLevelTypeAware(['8.0' => 'DateTimeZone'], default: '')] $timezone): DateTime {} + + /** + * Returns the timezone offset + * @return int + * @link https://php.net/manual/en/datetime.getoffset.php + */ + #[TentativeType] + public function getOffset(): int {} + + /** + * Sets the current time of the DateTime object to a different time. + * @param int $hour + * @param int $minute + * @param int $second + * @param int $microsecond Added since 7.1 + * @return static + * @link https://php.net/manual/en/datetime.settime.php + */ + #[TentativeType] + public function setTime( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $hour, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $minute, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $second = 0, + #[PhpStormStubsElementAvailable(from: '7.1')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $microsecond = 0 + ): DateTime {} + + /** + * Sets the current date of the DateTime object to a different date. + * @param int $year + * @param int $month + * @param int $day + * @return static + * @link https://php.net/manual/en/datetime.setdate.php + */ + #[TentativeType] + public function setDate( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $year, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $month, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $day + ): DateTime {} + + /** + * Set a date according to the ISO 8601 standard - using weeks and day offsets rather than specific dates. + * @param int $year + * @param int $week + * @param int $dayOfWeek + * @return static + * @link https://php.net/manual/en/datetime.setisodate.php + */ + #[TentativeType] + public function setISODate( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $year, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $week, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $dayOfWeek = 1 + ): DateTime {} + + /** + * Sets the date and time based on a Unix timestamp. + * @param int $timestamp + * @return static + * @link https://php.net/manual/en/datetime.settimestamp.php + */ + #[TentativeType] + public function setTimestamp(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestamp): DateTime {} + + /** + * Gets the Unix timestamp. + * @return int + * @link https://php.net/manual/en/datetime.gettimestamp.php + */ + #[TentativeType] + public function getTimestamp(): int {} + + /** + * Returns the difference between two DateTime objects represented as a DateInterval. + * @param DateTimeInterface $targetObject The date to compare to. + * @param bool $absolute [optional] Whether to return absolute difference. + * @return DateInterval|false The DateInterval object representing the difference between the two dates. + * @link https://php.net/manual/en/datetime.diff.php + */ + #[TentativeType] + public function diff( + #[LanguageLevelTypeAware(['8.0' => 'DateTimeInterface'], default: '')] $targetObject, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $absolute = false + ): DateInterval {} + + /** + * Parse a string into a new DateTime object according to the specified format + * @param string $format Format accepted by date(). + * @param string $datetime String representing the time. + * @param null|DateTimeZone $timezone A DateTimeZone object representing the desired time zone. + * @return DateTime|false + * @link https://php.net/manual/en/datetime.createfromformat.php + */ + #[TentativeType] + public static function createFromFormat( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $format, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $datetime, + #[LanguageLevelTypeAware(['8.0' => 'DateTimeZone|null'], default: 'DateTimeZone')] $timezone = null + ): DateTime|false {} + + /** + * Returns an array of warnings and errors found while parsing a date/time string + * @return array|false + * @link https://php.net/manual/en/datetime.getlasterrors.php + */ + #[ArrayShape(["warning_count" => "int", "warnings" => "string[]", "error_count" => "int", "errors" => "string[]"])] + #[TentativeType] + public static function getLastErrors(): array|false {} + + /** + * The __set_state handler + * @link https://php.net/manual/en/datetime.set-state.php + * @param array $arrayNote: + *
+ * The $timezone parameter + * and the current timezone are ignored when the + * $time parameter either + * is a UNIX timestamp (e.g. @946684800) + * or specifies a timezone + * (e.g. 2010-01-28T15:00:00+02:00). + *
Initialization array.
+ * @return DateTimeReturns a new instance of a DateTime object.
+ */ + public static function __set_state($array) {} + + /** + * @param DateTimeInterface $object + * @return DateTime + * @since 8.0 + */ + public static function createFromInterface(DateTimeInterface $object): DateTime {} + + #[PhpStormStubsElementAvailable(from: '8.2')] + public function __serialize(): array {} + + #[PhpStormStubsElementAvailable(from: '8.2')] + public function __unserialize(array $data): void {} +} + +/** + * Representation of time zone + * @link https://php.net/manual/en/class.datetimezone.php + */ +class DateTimeZone +{ + public const AFRICA = 1; + public const AMERICA = 2; + public const ANTARCTICA = 4; + public const ARCTIC = 8; + public const ASIA = 16; + public const ATLANTIC = 32; + public const AUSTRALIA = 64; + public const EUROPE = 128; + public const INDIAN = 256; + public const PACIFIC = 512; + public const UTC = 1024; + public const ALL = 2047; + public const ALL_WITH_BC = 4095; + public const PER_COUNTRY = 4096; + + /** + * @param string $timezone + * @link https://php.net/manual/en/datetimezone.construct.php + * @throws Exception Emits Exception in case of an error. + */ + public function __construct(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $timezone) {} + + /** + * Returns the name of the timezone + * @return string + * @link https://php.net/manual/en/datetimezone.getname.php + */ + #[TentativeType] + public function getName(): string {} + + /** + * Returns location information for a timezone + * @return array|false + * @link https://php.net/manual/en/datetimezone.getlocation.php + */ + #[TentativeType] + #[ArrayShape([ + 'country_code' => 'string', + 'latitude' => 'double', + 'longitude' => 'double', + 'comments' => 'string', + ])] + public function getLocation(): array|false {} + + /** + * Returns the timezone offset from GMT + * @param DateTimeInterface $datetime + * @return int + * @link https://php.net/manual/en/datetimezone.getoffset.php + */ + #[TentativeType] + public function getOffset(DateTimeInterface $datetime): int {} + + /** + * Returns all transitions for the timezone + * @param int $timestampBegin + * @param int $timestampEnd + * @return array|false + * @link https://php.net/manual/en/datetimezone.gettransitions.php + */ + #[TentativeType] + public function getTransitions( + #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $timestampBegin, + #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $timestampEnd, + #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestampBegin = PHP_INT_MIN, + #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestampEnd = PHP_INT_MAX + ): array|false {} + + /** + * Returns associative array containing dst, offset and the timezone name + * @return array+ * It is r for read access, w for + * read/write access to an already existing database, c + * for read/write access and database creation if it doesn't currently exist, + * and n for create, truncate and read/write access. + * The database is created in BTree mode, other modes (like Hash or Queue) + * are not supported. + *
+ *+ * Additionally you can set the database lock method with the next char. + * Use l to lock the database with a .lck + * file or d to lock the databasefile itself. It is + * important that all of your applications do this consistently. + *
+ *+ * If you want to test the access and do not want to wait for the lock + * you can add t as third character. When you are + * absolutely sure that you do not require database locking you can do + * so by using - instead of l or + * d. When none of d, + * l or - is used, dba will lock + * on the database file as it would with d. + *
+ *+ * There can only be one writer for one database file. When you use dba on + * a web server and more than one request requires write operations they can + * only be done one after another. Also read during write is not allowed. + * The dba extension uses locks to prevent this. See the following table: + *
| already open | + *mode = "rl" | + *mode = "rlt" | + *mode = "wl" | + *mode = "wlt" | + *mode = "rd" | + *mode = "rdt" | + *mode = "wd" | + *mode = "wdt" | + *
| not open | + *ok | + *ok | + *ok | + *ok | + *ok | + *ok | + *ok | + *ok | + *
| mode = "rl" | + *ok | + *ok | + *wait | + *false | + *illegal | + *illegal | + *illegal | + *illegal | + *
| mode = "wl" | + *wait | + *false | + *wait | + *false | + *illegal | + *illegal | + *illegal | + *illegal | + *
| mode = "rd" | + *illegal | + *illegal | + *illegal | + *illegal | + *ok | + *ok | + *wait | + *false | + *
| mode = "wd" | + *illegal | + *illegal | + *illegal | + *illegal | + *wait | + *false | + *wait | + *false | + *
+ * The name of the handler which + * shall be used for accessing path. It is passed + * all optional parameters given to dba_open and + * can act on behalf of them. + *
+ * @param mixed ...$handler_params [optional] + * @return resource|false a positive handle on success or FALSE on failure. + */ +#[PhpStormStubsElementAvailable(from: '5.3', to: '8.1')] +function dba_open($path, $mode, $handler, ...$handler_params) {} + +#[PhpStormStubsElementAvailable(from: '8.2')] +function dba_open(string $path, string $mode, ?string $handler = null, int $permission = 0o644, int $map_size = 0, ?int $flags = null) {} + +/** + * Open database persistently + * @link https://php.net/manual/en/function.dba-popen.php + * @param string $path+ * Commonly a regular path in your filesystem. + *
+ * @param string $mode+ * It is r for read access, w for + * read/write access to an already existing database, c + * for read/write access and database creation if it doesn't currently exist, + * and n for create, truncate and read/write access. + *
+ * @param string $handler [optional]+ * The name of the handler which + * shall be used for accessing path. It is passed + * all optional parameters given to dba_popen and + * can act on behalf of them. + *
+ * @param mixed ...$handler_params [optional] + * @return resource|false a positive handle on success or FALSE on failure. + */ +#[PhpStormStubsElementAvailable(from: '5.3', to: '8.1')] +function dba_popen($path, $mode, $handler, ...$handler_params) {} + +#[PhpStormStubsElementAvailable(from: '8.2')] +function dba_popen(string $path, string $mode, ?string $handler = null, int $permission = 0o644, int $map_size = 0, ?int $flags = null) {} + +/** + * Close a DBA database + * @link https://php.net/manual/en/function.dba-close.php + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return void No value is returned. + */ +function dba_close($dba): void {} + +/** + * Delete DBA entry specified by key + * @link https://php.net/manual/en/function.dba-delete.php + * @param string $key+ * The key of the entry which is deleted. + *
+ * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function dba_delete(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, $dba): bool {} + +/** + * Check whether key exists + * @link https://php.net/manual/en/function.dba-exists.php + * @param string $key+ * The key the check is performed for. + *
+ * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE if the key exists, FALSE otherwise. + */ +function dba_exists(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, $dba): bool {} + +/** + * Fetch data specified by key + * @link https://php.net/manual/en/function.dba-fetch.php + * @param string $key+ * The key the data is specified by. + *
+ *+ * When working with inifiles this function accepts arrays as keys + * where index 0 is the group and index 1 is the value name. See: + * dba_key_split. + *
+ * @param resource $handle+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return string|false the associated string if the key/data pair is found, FALSE + * otherwise. + */ +function dba_fetch($key, $handle): string|false {} + +/** + * Fetch data specified by key + * @link https://php.net/manual/en/function.dba-fetch.php + * @param string $key+ * The key the data is specified by. + *
+ *+ * When working with inifiles this function accepts arrays as keys + * where index 0 is the group and index 1 is the value name. See: + * dba_key_split. + *
+ * @param int $skip The number of key-value pairs to ignore when using cdb databases. This value is ignored for all other databases which do not support multiple keys with the same name. + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return string|false the associated string if the key/data pair is found, FALSE + * otherwise. + */ +#[Deprecated(since: 8.3)] +function dba_fetch($key, $skip, $dba): string|false {} + +/** + * Insert entry + * @link https://php.net/manual/en/function.dba-insert.php + * @param string $key+ * The key of the entry to be inserted. If this key already exist in the + * database, this function will fail. Use dba_replace + * if you need to replace an existent key. + *
+ * @param string $value+ * The value to be inserted. + *
+ * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function dba_insert(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, string $value, $dba): bool {} + +/** + * Replace or insert entry + * @link https://php.net/manual/en/function.dba-replace.php + * @param string $key+ * The key of the entry to be replaced. + *
+ * @param string $value+ * The value to be replaced. + *
+ * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function dba_replace(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, string $value, $dba): bool {} + +/** + * Fetch first key + * @link https://php.net/manual/en/function.dba-firstkey.php + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return string|false the key on success or FALSE on failure. + */ +function dba_firstkey($dba): string|false {} + +/** + * Fetch next key + * @link https://php.net/manual/en/function.dba-nextkey.php + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return string|false the key on success or FALSE on failure. + */ +function dba_nextkey($dba): string|false {} + +/** + * Optimize database + * @link https://php.net/manual/en/function.dba-optimize.php + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function dba_optimize($dba): bool {} + +/** + * Synchronize database + * @link https://php.net/manual/en/function.dba-sync.php + * @param resource $dba+ * The database handler, returned by dba_open or + * dba_popen. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function dba_sync($dba): bool {} + +/** + * List all the handlers available + * @link https://php.net/manual/en/function.dba-handlers.php + * @param bool $full_info [optional]+ * Turns on/off full information display in the result. + *
+ * @return array an array of database handlers. If full_info + * is set to TRUE, the array will be associative with the handlers names as + * keys, and their version information as value. Otherwise, the result will be + * an indexed array of handlers names. + * + *+ * When the internal cdb library is used you will see + * cdb and cdb_make. + */ +function dba_handlers(bool $full_info = false): array {} + +/** + * List all open database files + * @link https://php.net/manual/en/function.dba-list.php + * @return array An associative array, in the form resourceid => filename. + */ +function dba_list(): array {} + +/** + * Splits a key in string representation into array representation + * @link https://php.net/manual/en/function.dba-key-split.php + * @param string|false|null $key
+ * The key in string representation. + *
+ * @return array|false an array of the form array(0 => group, 1 => + * value_name). This function will return FALSE if + * key is NULL or FALSE. + */ +function dba_key_split(string|false|null $key): array|false {} + +// End of dba v. diff --git a/phpstorm-stubs/decimal/decimal.php b/phpstorm-stubs/decimal/decimal.php new file mode 100644 index 0000000..d07216d --- /dev/null +++ b/phpstorm-stubs/decimal/decimal.php @@ -0,0 +1,466 @@ +` operator. + * + * @param mixed $other + * + * @return int 0 if this decimal is considered is equal to $other, + * -1 if this decimal should be placed before $other, + * 1 if this decimal should be placed after $other. + */ + public function compareTo($other): int {} + + /** + * String representation. + * + * This method is equivalent to a cast to string, as well as `toString`. + * + * @return string the value of this decimal represented exactly, in either + * fixed or scientific form, depending on the value. + */ + public function __toString(): string {} + + /** + * JSON + * + * This method is only here to honour the interface, and is equivalent to + * `toString`. JSON does not have a decimal type so all decimals are encoded + * as strings in the same format as `toString`. + * + * @return string + */ + public function jsonSerialize() {} +} diff --git a/phpstorm-stubs/dio/dio.php b/phpstorm-stubs/dio/dio.php new file mode 100644 index 0000000..4bf112b --- /dev/null +++ b/phpstorm-stubs/dio/dio.php @@ -0,0 +1,215 @@ + + *+ * The SimpleXMLElement node. + *
+ * @return DOMElement|null The DOMElement node added or NULL if any errors occur. + */ +#[LanguageLevelTypeAware(['8.0' => 'DOMElement'], default: 'DOMElement|null')] +function dom_import_simplexml(object $node) {} + +/** + * Node is a DOMElement + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_ELEMENT_NODE', 1); + +/** + * Node is a DOMAttr + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_ATTRIBUTE_NODE', 2); + +/** + * Node is a DOMText + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_TEXT_NODE', 3); + +/** + * Node is a DOMCharacterData + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_CDATA_SECTION_NODE', 4); + +/** + * Node is a DOMEntityReference + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_ENTITY_REF_NODE', 5); + +/** + * Node is a DOMEntity + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_ENTITY_NODE', 6); + +/** + * Node is a DOMProcessingInstruction + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_PI_NODE', 7); + +/** + * Node is a DOMComment + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_COMMENT_NODE', 8); + +/** + * Node is a DOMDocument + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_DOCUMENT_NODE', 9); + +/** + * Node is a DOMDocumentType + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_DOCUMENT_TYPE_NODE', 10); + +/** + * Node is a DOMDocumentFragment + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_DOCUMENT_FRAG_NODE', 11); + +/** + * Node is a DOMNotation + * @link https://php.net/manual/en/dom.constants.php + */ +define('XML_NOTATION_NODE', 12); +define('XML_HTML_DOCUMENT_NODE', 13); +define('XML_DTD_NODE', 14); +define('XML_ELEMENT_DECL_NODE', 15); +define('XML_ATTRIBUTE_DECL_NODE', 16); +define('XML_ENTITY_DECL_NODE', 17); +define('XML_NAMESPACE_DECL_NODE', 18); +define('XML_LOCAL_NAMESPACE', 18); +define('XML_ATTRIBUTE_CDATA', 1); +define('XML_ATTRIBUTE_ID', 2); +define('XML_ATTRIBUTE_IDREF', 3); +define('XML_ATTRIBUTE_IDREFS', 4); +define('XML_ATTRIBUTE_ENTITY', 6); +define('XML_ATTRIBUTE_NMTOKEN', 7); +define('XML_ATTRIBUTE_NMTOKENS', 8); +define('XML_ATTRIBUTE_ENUMERATION', 9); +define('XML_ATTRIBUTE_NOTATION', 10); + +/** + * Error code not part of the DOM specification. Meant for PHP errors. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_PHP_ERR', 0); + +/** + * If index or size is negative, or greater than the allowed value. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INDEX_SIZE_ERR', 1); + +/** + * If the specified range of text does not fit into a + * DOMString. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOMSTRING_SIZE_ERR', 2); + +/** + * If any node is inserted somewhere it doesn't belong + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_HIERARCHY_REQUEST_ERR', 3); + +/** + * If a node is used in a different document than the one that created it. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_WRONG_DOCUMENT_ERR', 4); + +/** + * If an invalid or illegal character is specified, such as in a name. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INVALID_CHARACTER_ERR', 5); + +/** + * If data is specified for a node which does not support data. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_NO_DATA_ALLOWED_ERR', 6); + +/** + * If an attempt is made to modify an object where modifications are not allowed. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_NO_MODIFICATION_ALLOWED_ERR', 7); + +/** + * If an attempt is made to reference a node in a context where it does not exist. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_NOT_FOUND_ERR', 8); + +/** + * If the implementation does not support the requested type of object or operation. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_NOT_SUPPORTED_ERR', 9); + +/** + * If an attempt is made to add an attribute that is already in use elsewhere. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INUSE_ATTRIBUTE_ERR', 10); + +/** + * If an attempt is made to use an object that is not, or is no longer, usable. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INVALID_STATE_ERR', 11); + +/** + * If an invalid or illegal string is specified. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_SYNTAX_ERR', 12); + +/** + * If an attempt is made to modify the type of the underlying object. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INVALID_MODIFICATION_ERR', 13); + +/** + * If an attempt is made to create or change an object in a way which is + * incorrect with regard to namespaces. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_NAMESPACE_ERR', 14); + +/** + * If a parameter or an operation is not supported by the underlying object. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_INVALID_ACCESS_ERR', 15); + +/** + * If a call to a method such as insertBefore or removeChild would make the Node + * invalid with respect to "partial validity", this exception would be raised and + * the operation would not be done. + * @link https://php.net/manual/en/dom.constants.php + */ +define('DOM_VALIDATION_ERR', 16); + +// End of dom v.20031129 diff --git a/phpstorm-stubs/dom/dom_c.php b/phpstorm-stubs/dom/dom_c.php new file mode 100644 index 0000000..69cd4c4 --- /dev/null +++ b/phpstorm-stubs/dom/dom_c.php @@ -0,0 +1,2576 @@ + 'string'], default: '')] + public $nodeName; + + /** + * @var string|null + * The value of this node, depending on its type + * @link https://php.net/manual/en/class.domnode.php#domnode.props.nodevalue + */ + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $nodeValue; + + /** + * @var int + * Gets the type of the node. One of the predefined + * XML_xxx_NODE constants + * @link https://php.net/manual/en/class.domnode.php#domnode.props.nodetype + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $nodeType; + + /** + * @var DOMNode|null + * The parent of this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.parentnode + */ + #[LanguageLevelTypeAware(['8.1' => 'DOMNode|null'], default: '')] + public $parentNode; + + /** + * @var DOMNodeList + * A+ * The new node. + *
+ * @param null|DOMNode $child [optional]+ * The reference node. If not supplied, newnode is + * appended to the children. + *
+ * @return DOMNode The inserted node. + */ + public function insertBefore( + DOMNode $node, + #[LanguageLevelTypeAware(['8.0' => 'DOMNode|null'], default: 'DOMNode')] $child = null + ) {} + + /** + * Replaces a child + * @link https://php.net/manual/en/domnode.replacechild.php + * @param DOMNode $node+ * The new node. It must be a member of the target document, i.e. + * created by one of the DOMDocument->createXXX() methods or imported in + * the document by . + *
+ * @param DOMNode $child+ * The old node. + *
+ * @return DOMNode|false The old node or false if an error occur. + */ + public function replaceChild(DOMNode $node, DOMNode $child) {} + + /** + * Removes child from list of children + * @link https://php.net/manual/en/domnode.removechild.php + * @param DOMNode $child+ * The removed child. + *
+ * @return DOMNode If the child could be removed the functions returns the old child. + */ + public function removeChild(DOMNode $child) {} + + /** + * Adds new child at the end of the children + * @link https://php.net/manual/en/domnode.appendchild.php + * @param DOMNode $node+ * The appended child. + *
+ * @return DOMNode The node added. + */ + public function appendChild(DOMNode $node) {} + + /** + * Checks if node has children + * @link https://php.net/manual/en/domnode.haschildnodes.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function hasChildNodes(): bool {} + + /** + * Clones a node + * @link https://php.net/manual/en/domnode.clonenode.php + * @param bool $deep+ * Indicates whether to copy all descendant nodes. This parameter is + * defaulted to false. + *
+ * @return static The cloned node. + */ + public function cloneNode( + #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $deep, + #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $deep = false + ) {} + + /** + * Normalizes the node + * @link https://php.net/manual/en/domnode.normalize.php + * @return void + */ + #[TentativeType] + public function normalize(): void {} + + /** + * Checks if feature is supported for specified version + * @link https://php.net/manual/en/domnode.issupported.php + * @param string $feature+ * The feature to test. See the example of + * DOMImplementation::hasFeature for a + * list of features. + *
+ * @param string $version+ * The version number of the feature to test. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function isSupported( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $feature, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $version + ): bool {} + + /** + * Checks if node has attributes + * @link https://php.net/manual/en/domnode.hasattributes.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function hasAttributes(): bool {} + + /** + * @param DOMNode $other + * @removed 8.0 + */ + public function compareDocumentPosition(DOMNode $other) {} + + /** + * Indicates if two nodes are the same node + * @link https://php.net/manual/en/domnode.issamenode.php + * @param DOMNode $otherNode+ * The compared node. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function isSameNode(DOMNode $otherNode): bool {} + + /** + * Gets the namespace prefix of the node based on the namespace URI + * @link https://php.net/manual/en/domnode.lookupprefix.php + * @param string $namespace+ * The namespace URI. + *
+ * @return string The prefix of the namespace. + */ + #[TentativeType] + public function lookupPrefix(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace): ?string {} + + /** + * Checks if the specified namespaceURI is the default namespace or not + * @link https://php.net/manual/en/domnode.isdefaultnamespace.php + * @param string $namespace+ * The namespace URI to look for. + *
+ * @return bool Return true if namespaceURI is the default + * namespace, false otherwise. + */ + #[TentativeType] + public function isDefaultNamespace(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace): bool {} + + /** + * Gets the namespace URI of the node based on the prefix + * @link https://php.net/manual/en/domnode.lookupnamespaceuri.php + * @param string|null $prefix+ * The prefix of the namespace. + *
+ * @return string|null The namespace URI of the node. + */ + #[PhpStormStubsElementAvailable(from: '8.0')] + #[TentativeType] + public function lookupNamespaceURI(?string $prefix): ?string {} + + /** + * Gets the namespace URI of the node based on the prefix + * @link https://php.net/manual/en/domnode.lookupnamespaceuri.php + * @param string|null $prefix+ * The prefix of the namespace. + *
+ * @return string|null The namespace URI of the node. + */ + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] + public function lookupNamespaceUri($prefix) {} + + /** + * @param DOMNode|null $arg + * @return bool + */ + #[LanguageLevelTypeAware(['8.3' => 'bool'], default: '')] + public function isEqualNode(#[LanguageLevelTypeAware(['8.3' => 'DOMNode|null'], default: 'DOMNode')] $otherNode) {} + + public function getFeature($feature, $version) {} + + public function setUserData($key, $data, $handler) {} + + public function getUserData($key) {} + + /** + * Gets an XPath location path for the node + * @return string|null the XPath, or NULL in case of an error. + * @link https://secure.php.net/manual/en/domnode.getnodepath.php + */ + #[TentativeType] + public function getNodePath(): ?string {} + + /** + * Get line number for a node + * @link https://php.net/manual/en/domnode.getlineno.php + * @return int Always returns the line number where the node was defined in. + */ + #[TentativeType] + public function getLineNo(): int {} + + /** + * Canonicalize nodes to a string + * @param bool $exclusive [optional] Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes. + * @param bool $withComments [optional] Retain comments in output. + * @param null|array $xpath [optional] An array of xpaths to filter the nodes by. + * @param null|array $nsPrefixes [optional] An array of namespace prefixes to filter the nodes by. + * @return string|false Canonicalized nodes as a string or FALSE on failure + */ + #[TentativeType] + public function C14N( + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $exclusive = false, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $withComments = false, + #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: 'array')] $xpath = null, + #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: 'array')] $nsPrefixes = null + ): string|false {} + + /** + * Canonicalize nodes to a file. + * @link https://www.php.net/manual/en/domnode.c14nfile + * @param string $uri Number of bytes written or FALSE on failure + * @param bool $exclusive [optional] Enable exclusive parsing of only the nodes matched by the provided xpath or namespace prefixes. + * @param bool $withComments [optional] Retain comments in output. + * @param null|array $xpath [optional] An array of xpaths to filter the nodes by. + * @param null|array $nsPrefixes [optional] An array of namespace prefixes to filter the nodes by. + * @return int|false Number of bytes written or FALSE on failure + */ + #[TentativeType] + public function C14NFile( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $uri, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $exclusive = false, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $withComments = false, + #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: 'array')] $xpath = null, + #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: 'array')] $nsPrefixes = null + ): int|false {} + + /** + * @since 8.3 + */ + public function contains(DOMNode|DOMNameSpaceNode|null $other): bool {} + + /** + * @since 8.3 + */ + public function getRootNode(?array $options = null): DOMNode {} + + /** + * @since 8.1 + */ + public function __sleep(): array {} + + /** + * @since 8.1 + */ + public function __wakeup(): void {} +} + +/** + * DOM operations raise exceptions under particular circumstances, i.e., + * when an operation is impossible to perform for logical reasons. + * @link https://php.net/manual/en/class.domexception.php + */ +final class DOMException extends Exception +{ + /** + * @link https://php.net/manual/en/class.domexception.php#domexception.props.code + * @var int An integer indicating the type of error generated + */ + public $code; +} + +class DOMStringList +{ + /** + * @param $index + * @return mixed + */ + public function item($index) {} +} + +/** + * @link https://php.net/manual/en/ref.dom.php + * @removed 8.0 + */ +class DOMNameList +{ + /** + * @param $index + * @return mixed + */ + public function getName($index) {} + + /** + * @param $index + * @return mixed + */ + public function getNamespaceURI($index) {} +} + +/** + * @removed 8.0 + */ +class DOMImplementationList +{ + /** + * @param $index + * @return mixed + */ + public function item($index) {} +} + +/** + * @removed 8.0 + */ +class DOMImplementationSource +{ + /** + * @param $features + * @return mixed + */ + public function getDomimplementation($features) {} + + /** + * @param $features + * @return mixed + */ + public function getDomimplementations($features) {} +} + +/** + * The DOMImplementation interface provides a number + * of methods for performing operations that are independent of any + * particular instance of the document object model. + * @link https://php.net/manual/en/class.domimplementation.php + */ +class DOMImplementation +{ + /** + * @param string $feature + * @param string $version + * @return mixed + */ + #[TentativeType] + public function getFeature( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $feature, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $version + ): never {} + + /** + * Test if the DOM implementation implements a specific feature + * @link https://php.net/manual/en/domimplementation.hasfeature.php + * @param string $feature+ * The feature to test. + *
+ * @param string $version+ * The version number of the feature to test. In + * level 2, this can be either 2.0 or 1.0. + *
+ * @return bool true on success or false on failure. + */ + public function hasFeature($feature, $version) {} + + /** + * Creates an empty DOMDocumentType object + * @link https://php.net/manual/en/domimplementation.createdocumenttype.php + * @param string $qualifiedName+ * The qualified name of the document type to create. + *
+ * @param string $publicId+ * The external subset public identifier. + *
+ * @param string $systemId+ * The external subset system identifier. + *
+ * @return DOMDocumentType|false A new DOMDocumentType node with its + * ownerDocument set to null. + * @throws DOMException If there is an error with the namespace + */ + public function createDocumentType( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $publicId, + #[PhpStormStubsElementAvailable(from: '8.0')] string $publicId = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $systemId, + #[PhpStormStubsElementAvailable(from: '8.0')] string $systemId = '' + ) {} + + /** + * Creates a DOMDocument object of the specified type with its document element + * @link https://php.net/manual/en/domimplementation.createdocument.php + * @param string|null $namespace+ * The namespace URI of the document element to create. + *
+ * @param string $qualifiedName+ * The qualified name of the document element to create. + *
+ * @param DOMDocumentType|null $doctype+ * The type of document to create or null. + *
+ * @return DOMDocument|false A new DOMDocument object. If + * namespaceURI, qualifiedName, and doctype are null, the + * returned DOMDocument is empty with no document element. + * @throws DOMException If $doctype has already been used + * with adifferent document or was created from a different + * implementation. If there is an error with the namespace, + * as determined by $namespace and $qualifiedName. + */ + public function createDocument( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $namespace, + #[PhpStormStubsElementAvailable(from: '8.0')] ?string $namespace = null, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $qualifiedName, + #[PhpStormStubsElementAvailable(from: '8.0')] string $qualifiedName = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] DOMDocumentType $doctype, + #[PhpStormStubsElementAvailable(from: '7.4')] #[LanguageLevelTypeAware(['8.0' => 'DOMDocumentType|null'], default: 'DOMDocumentType')] $doctype = null + ) {} +} + +class DOMNameSpaceNode +{ + #[LanguageLevelTypeAware(['8.1' => 'DOMNode|null'], default: '')] + public $parentNode; + + #[LanguageLevelTypeAware(['8.1' => 'DOMDocument|null'], default: '')] + public $ownerDocument; + + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $namespaceURI; + + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $localName; + + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $prefix; + + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $nodeType; + + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $nodeValue; + + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $nodeName; + public ?DOMElement $parentElement; + public bool $isConnected; + + /** + * @since 8.1 + */ + public function __sleep(): array {} + + /** + * @since 8.1 + */ + public function __wakeup(): void {} +} + +/** + * The DOMDocumentFragment class + * @link https://php.net/manual/en/class.domdocumentfragment.php + */ +class DOMDocumentFragment extends DOMNode implements DOMParentNode +{ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $childElementCount; + + #[LanguageLevelTypeAware(['8.1' => 'DOMElement|null'], default: '')] + public $lastElementChild; + + #[LanguageLevelTypeAware(['8.1' => 'DOMElement|null'], default: '')] + public $firstElementChild; + + public function __construct() {} + + /** + * Append raw XML data + * @link https://php.net/manual/en/domdocumentfragment.appendxml.php + * @param string $data+ * XML to append. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function appendXML(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): bool {} + + /** + * {@inheritDoc} + */ + public function append(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function prepend(...$nodes): void {} + + /** + * @since 8.3 + * {@inheritDoc} + */ + public function replaceChildren(...$nodes): void {} +} + +/** + * The DOMDocument class represents an entire HTML or XML + * document; serves as the root of the document tree. + * @link https://php.net/manual/en/class.domdocument.php + */ +class DOMDocument extends DOMNode implements DOMParentNode +{ + /** + * @var string|null + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.actualencoding + */ + #[Deprecated("Actual encoding of the document, is a readonly equivalent to encoding.")] + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $actualEncoding; + + /** + * @var DOMConfiguration + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.config + * @see DOMDocument::normalizeDocument() + */ + #[Deprecated("Configuration used when DOMDocument::normalizeDocument() is invoked.")] + #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: '')] + public $config; + + /** + * @var DOMDocumentType + * The Document Type Declaration associated with this document. + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.doctype + */ + #[LanguageLevelTypeAware(['8.1' => 'DOMDocumentType|null'], default: '')] + public $doctype; + + /** + * @var DOMElement + * This is a convenience attribute that allows direct access to the child node + * that is the document element of the document. + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.documentelement + */ + #[LanguageLevelTypeAware(['8.1' => 'DOMElement|null'], default: '')] + public $documentElement; + + /** + * @var string|null + * The location of the document or NULL if undefined. + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.documenturi + */ + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $documentURI; + + /** + * @var string|null + * Encoding of the document, as specified by the XML declaration. This attribute is not present + * in the final DOM Level 3 specification, but is the only way of manipulating XML document + * encoding in this implementation. + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.encoding + */ + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $encoding; + + /** + * @var bool + * Nicely formats output with indentation and extra space. + * @link https://php.net/manual/en/class.domdocument.php#domdocument.props.formatoutput + */ + #[LanguageLevelTypeAware(['8.1' => 'bool'], default: '')] + public $formatOutput; + + /** + * @var DOMImplementation + * The+ * The tag name of the element. + *
+ * @param string $value [optional]+ * The value of the element. By default, an empty element will be created. + * You can also set the value later with DOMElement->nodeValue. + *
+ * @return DOMElement|false A new instance of class DOMElement or false + * if an error occurred. + * @throws DOMException If invalid $localName + */ + public function createElement( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value = '' + ) {} + + /** + * Create new document fragment + * @link https://php.net/manual/en/domdocument.createdocumentfragment.php + * @return DOMDocumentFragment|false The new DOMDocumentFragment or false if an error occurred. + */ + #[TentativeType] + public function createDocumentFragment(): DOMDocumentFragment {} + + /** + * Create new text node + * @link https://php.net/manual/en/domdocument.createtextnode.php + * @param string $data+ * The content of the text. + *
+ * @return DOMText|false The new DOMText or false if an error occurred. + */ + #[TentativeType] + public function createTextNode(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): DOMText {} + + /** + * Create new comment node + * @link https://php.net/manual/en/domdocument.createcomment.php + * @param string $data+ * The content of the comment. + *
+ * @return DOMComment|false The new DOMComment or false if an error occurred. + */ + #[TentativeType] + public function createComment(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data): DOMComment {} + + /** + * Create new cdata node + * @link https://php.net/manual/en/domdocument.createcdatasection.php + * @param string $data+ * The content of the cdata. + *
+ * @return DOMCDATASection|false The new DOMCDATASection or false if an error occurred. + */ + public function createCDATASection(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data) {} + + /** + * Creates new PI node + * @link https://php.net/manual/en/domdocument.createprocessinginstruction.php + * @param string $target+ * The target of the processing instruction. + *
+ * @param string $data+ * The content of the processing instruction. + *
+ * @return DOMProcessingInstruction|false The new DOMProcessingInstruction or false if an error occurred. + */ + public function createProcessingInstruction( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $target, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $data, + #[PhpStormStubsElementAvailable(from: '7.4')] #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data = '' + ) {} + + /** + * Create new attribute + * @link https://php.net/manual/en/domdocument.createattribute.php + * @param string $localName+ * The name of the attribute. + *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred. + * @throws DOMException If invalid $localName + */ + public function createAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName) {} + + /** + * Create new entity reference node + * @link https://php.net/manual/en/domdocument.createentityreference.php + * @param string $name+ * The content of the entity reference, e.g. the entity reference minus + * the leading & and the trailing + * ; characters. + *
+ * @return DOMEntityReference|false The new DOMEntityReference or false if an error + * occurred. + */ + public function createEntityReference(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name) {} + + /** + * Searches for all elements with given tag name + * @link https://php.net/manual/en/domdocument.getelementsbytagname.php + * @param string $qualifiedName+ * The name of the tag to match on. The special value * + * matches all tags. + *
+ * @return DOMNodeList A new DOMNodeList object containing all the matched + * elements. + */ + #[TentativeType] + public function getElementsByTagName(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): DOMNodeList {} + + /** + * Import node into current document + * @link https://php.net/manual/en/domdocument.importnode.php + * @param DOMNode $node+ * The node to import. + *
+ * @param bool $deep+ * If set to true, this method will recursively import the subtree under + * the importedNode. + *
+ *+ * To copy the nodes attributes deep needs to be set to true + *
+ * @return DOMNode|false The copied node or false, if it cannot be copied. + */ + public function importNode( + DOMNode $node, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $deep, + #[PhpStormStubsElementAvailable(from: '7.4')] #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $deep = false + ) {} + + /** + * Create new element node with an associated namespace + * @link https://php.net/manual/en/domdocument.createelementns.php + * @param string|null $namespace+ * The URI of the namespace. + *
+ * @param string $qualifiedName+ * The qualified name of the element, as prefix:tagname. + *
+ * @param string $value [optional]+ * The value of the element. By default, an empty element will be created. + * You can also set the value later with DOMElement->nodeValue. + *
+ * @return DOMElement|false The new DOMElement or false if an error occurred. + * @throws DOMException If invalid $namespace or $qualifiedName + */ + public function createElementNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value = '' + ) {} + + /** + * Create new attribute node with an associated namespace + * @link https://php.net/manual/en/domdocument.createattributens.php + * @param string|null $namespace+ * The URI of the namespace. + *
+ * @param string $qualifiedName+ * The tag name and prefix of the attribute, as prefix:tagname. + *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred. + * @throws DOMException If invalid $namespace or $qualifiedName + */ + public function createAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName + ) {} + + /** + * Searches for all elements with given tag name in specified namespace + * @link https://php.net/manual/en/domdocument.getelementsbytagnamens.php + * @param string $namespace+ * The namespace URI of the elements to match on. + * The special value * matches all namespaces. + *
+ * @param string $localName+ * The local name of the elements to match on. + * The special value * matches all local names. + *
+ * @return DOMNodeList A new DOMNodeList object containing all the matched + * elements. + */ + #[TentativeType] + public function getElementsByTagNameNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ): DOMNodeList {} + + /** + * Searches for an element with a certain id + * @link https://php.net/manual/en/domdocument.getelementbyid.php + * @param string $elementId+ * The unique id value for an element. + *
+ * @return DOMElement|null The DOMElement or null if the element is + * not found. + */ + #[TentativeType] + public function getElementById(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $elementId): ?DOMElement {} + + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'DOMNode|false'], default: '')] + public function adoptNode(DOMNode $node) {} + + /** + * {@inheritDoc} + */ + public function append(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function prepend(...$nodes): void {} + + /** + * @since 8.3 + * {@inheritDoc} + */ + public function replaceChildren(...$nodes): void {} + + /** + * Normalizes the document + * @link https://php.net/manual/en/domdocument.normalizedocument.php + * @return void + */ + #[TentativeType] + public function normalizeDocument(): void {} + + /** + * @param DOMNode $node + * @param $namespace + * @param $qualifiedName + */ + public function renameNode(DOMNode $node, $namespace, $qualifiedName) {} + + /** + * Load XML from a file + * @link https://php.net/manual/en/domdocument.load.php + * @param string $filename+ * The path to the XML document. + *
+ * @param int $options [optional]+ * Bitwise OR + * of the libxml option constants. + *
+ * @return DOMDocument|bool true on success or false on failure. Prior to PHP 8.3 if called statically, returns a + * DOMDocument and issues E_STRICT + * warning. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'bool'], default: 'DOMDocument|bool')] + public function load( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0 + ) {} + + /** + * Dumps the internal XML tree back into a file + * @link https://php.net/manual/en/domdocument.save.php + * @param string $filename+ * The path to the saved XML document. + *
+ * @param int $options [optional]+ * Additional Options. Currently only LIBXML_NOEMPTYTAG is supported. + *
+ * @return int|false the number of bytes written or false if an error occurred. + */ + public function save($filename, $options = null) {} + + /** + * Load XML from a string + * @link https://php.net/manual/en/domdocument.loadxml.php + * @param string $source+ * The string containing the XML. + *
+ * @param int $options [optional]+ * Bitwise OR + * of the libxml option constants. + *
+ * @return DOMDocument|bool true on success or false on failure. Prior to PHP 8.3 if called statically, returns a + * DOMDocument and issues E_STRICT + * warning. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'bool'], default: 'DOMDocument|bool')] + public function loadXML( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $source, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0 + ) {} + + /** + * Dumps the internal XML tree back into a string + * @link https://php.net/manual/en/domdocument.savexml.php + * @param null|DOMNode $node [optional]+ * Use this parameter to output only a specific node without XML declaration + * rather than the entire document. + *
+ * @param int $options [optional]+ * Additional Options. Currently only LIBXML_NOEMPTYTAG is supported. + *
+ * @return string|false the XML, or false if an error occurred. + */ + #[TentativeType] + public function saveXML( + ?DOMNode $node = null, + #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0 + ): string|false {} + + /** + * Creates a new DOMDocument object + * @link https://php.net/manual/en/domdocument.construct.php + * @param string $version [optional] The version number of the document as part of the XML declaration. + * @param string $encoding [optional] The encoding of the document as part of the XML declaration. + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $version = '1.0', + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $encoding = '' + ) {} + + /** + * Validates the document based on its DTD + * @link https://php.net/manual/en/domdocument.validate.php + * @return bool true on success or false on failure. + * If the document have no DTD attached, this method will return false. + */ + #[TentativeType] + public function validate(): bool {} + + /** + * Substitutes XIncludes in a DOMDocument Object + * @link https://php.net/manual/en/domdocument.xinclude.php + * @param int $options [optional]+ * libxml parameters. Available + * since PHP 5.1.0 and Libxml 2.6.7. + *
+ * @return int|false the number of XIncludes in the document. + */ + #[TentativeType] + public function xinclude(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0): int|false {} + + /** + * Load HTML from a string + * @link https://php.net/manual/en/domdocument.loadhtml.php + * @param string $source+ * The HTML string. + *
+ * @param int $options [optional]+ * Since PHP 5.4.0 and Libxml 2.6.0, you may also + * use the options parameter to specify additional Libxml parameters. + *
+ * @return DOMDocument|bool true on success or false on failure. Prior to PHP 8.3 if called statically, returns a + * DOMDocument and issues E_STRICT + * warning. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'bool'], default: 'DOMDocument|bool')] + public function loadHTML( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $source, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0 + ) {} + + /** + * Load HTML from a file + * @link https://php.net/manual/en/domdocument.loadhtmlfile.php + * @param string $filename+ * The path to the HTML file. + *
+ * @param int $options [optional]+ * Since PHP 5.4.0 and Libxml 2.6.0, you may also + * use the options parameter to specify additional Libxml parameters. + *
+ * @return DOMDocument|bool true on success or false on failure. Prior to PHP 8.3 if called statically, returns a + * DOMDocument and issues E_STRICT + * warning. + */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'bool'], default: 'DOMDocument|bool')] + public function loadHTMLFile( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0 + ) {} + + /** + * Dumps the internal document into a string using HTML formatting + * @link https://php.net/manual/en/domdocument.savehtml.php + * @param null|DOMNode $node [optional] parameter to output a subset of the document. + * @return string|false The HTML, or false if an error occurred. + */ + public function saveHTML(DOMNode $node = null) {} + + /** + * Dumps the internal document into a file using HTML formatting + * @link https://php.net/manual/en/domdocument.savehtmlfile.php + * @param string $filename+ * The path to the saved HTML document. + *
+ * @return int|false the number of bytes written or false if an error occurred. + */ + #[TentativeType] + public function saveHTMLFile(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename): int|false {} + + /** + * Validates a document based on a schema + * @link https://php.net/manual/en/domdocument.schemavalidate.php + * @param string $filename+ * The path to the schema. + *
+ * @param int $options [optional]+ * Bitwise OR + * of the libxml option constants. + *
+ * @return bool true on success or false on failure. + */ + public function schemaValidate($filename, $options = null) {} + + /** + * Validates a document based on a schema + * @link https://php.net/manual/en/domdocument.schemavalidatesource.php + * @param string $source+ * A string containing the schema. + *
+ * @param int $flags [optional]A bitmask of Libxml schema validation flags. Currently the only supported value is LIBXML_SCHEMA_CREATE. + * Available since PHP 5.5.2 and Libxml 2.6.14.
+ * @return bool true on success or false on failure. + */ + public function schemaValidateSource($source, $flags) {} + + /** + * Performs relaxNG validation on the document + * @link https://php.net/manual/en/domdocument.relaxngvalidate.php + * @param string $filename+ * The RNG file. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function relaxNGValidate(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename): bool {} + + /** + * Performs relaxNG validation on the document + * @link https://php.net/manual/en/domdocument.relaxngvalidatesource.php + * @param string $source+ * A string containing the RNG schema. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function relaxNGValidateSource(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $source): bool {} + + /** + * Register extended class used to create base node type + * @link https://php.net/manual/en/domdocument.registernodeclass.php + * @param string $baseClass+ * The DOM class that you want to extend. You can find a list of these + * classes in the chapter introduction. + *
+ * @param string $extendedClass+ * Your extended class name. If null is provided, any previously + * registered class extending baseclass will + * be removed. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function registerNodeClass( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $baseClass, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extendedClass + ): bool {} +} + +/** + * The DOMNodeList class + * @link https://php.net/manual/en/class.domnodelist.php + */ +class DOMNodeList implements IteratorAggregate, Countable +{ + /** + * @var int + * The number of nodes in the list. The range of valid child node indices is 0 to length - 1 inclusive. + * @link https://php.net/manual/en/class.domnodelist.php#domnodelist.props.length + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + #[Immutable] + public $length; + + /** + * Retrieves a node specified by index + * @link https://php.net/manual/en/domnodelist.item.php + * @param int $index+ * Index of the node into the collection. + * The range of valid child node indices is 0 to length - 1 inclusive. + *
+ * @return DOMNode|null The node at the indexth position in the + * DOMNodeList, or null if that is not a valid + * index. + */ + public function item(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index) {} + + /** + * @return int<0, max> + * @since 7.2 + */ + #[TentativeType] + public function count(): int {} + + /** + * @return Iterator + * @since 8.0 + */ + public function getIterator(): Iterator {} +} + +/** + * The DOMNamedNodeMap class + * @link https://php.net/manual/en/class.domnamednodemap.php + * @property-read int $length The number of nodes in the map. The range of valid child node indices is 0 to length - 1 inclusive. + */ +class DOMNamedNodeMap implements IteratorAggregate, Countable +{ + /** + * Retrieves a node specified by name + * @link https://php.net/manual/en/domnamednodemap.getnameditem.php + * @param string $qualifiedName+ * The nodeName of the node to retrieve. + *
+ * @return DOMNode|null A node (of any type) with the specified nodeName, or + * null if no node is found. + */ + #[TentativeType] + public function getNamedItem(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): ?DOMNode {} + + /** + * @param DOMNode $arg + */ + public function setNamedItem(DOMNode $arg) {} + + /** + * @param $name [optional] + */ + public function removeNamedItem($name) {} + + /** + * Retrieves a node specified by index + * @link https://php.net/manual/en/domnamednodemap.item.php + * @param int $index+ * Index into this map. + *
+ * @return DOMNode|null The node at the indexth position in the map, or null + * if that is not a valid index (greater than or equal to the number of nodes + * in this map). + */ + #[TentativeType] + public function item( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $index = 0, + #[PhpStormStubsElementAvailable(from: '7.1')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index + ): ?DOMNode {} + + /** + * Retrieves a node specified by local name and namespace URI + * @link https://php.net/manual/en/domnamednodemap.getnameditemns.php + * @param string $namespace+ * The namespace URI of the node to retrieve. + *
+ * @param string $localName+ * The local name of the node to retrieve. + *
+ * @return DOMNode|null A node (of any type) with the specified local name and namespace URI, or + * null if no node is found. + */ + #[TentativeType] + public function getNamedItemNS( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $namespaceURI = '', + #[PhpStormStubsElementAvailable(from: '8.0')] ?string $namespace, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $localName = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $localName + ): ?DOMNode {} + + /** + * @param DOMNode $arg [optional] + */ + public function setNamedItemNS(DOMNode $arg) {} + + /** + * @param $namespace [optional] + * @param $localName [optional] + */ + public function removeNamedItemNS($namespace, $localName) {} + + /** + * @return int<0,max> + * @since 7.2 + */ + #[TentativeType] + public function count(): int {} + + /** + * @return Iterator + * @since 8.0 + */ + public function getIterator(): Iterator {} +} + +/** + * The DOMCharacterData class represents nodes with character data. + * No nodes directly correspond to this class, but other nodes do inherit from it. + * @link https://php.net/manual/en/class.domcharacterdata.php + */ +class DOMCharacterData extends DOMNode implements DOMChildNode +{ + /** + * @var string + * The contents of the node. + * @link https://php.net/manual/en/class.domcharacterdata.php#domcharacterdata.props.data + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $data; + + /** + * @var int + * The length of the contents. + * @link https://php.net/manual/en/class.domcharacterdata.php#domcharacterdata.props.length + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $length; + + #[LanguageLevelTypeAware(['8.1' => 'DOMElement|null'], default: '')] + public $nextElementSibling; + + #[LanguageLevelTypeAware(['8.1' => 'DOMElement|null'], default: '')] + public $previousElementSibling; + + /** + * Extracts a range of data from the node + * @link https://php.net/manual/en/domcharacterdata.substringdata.php + * @param int $offset+ * Start offset of substring to extract. + *
+ * @param int $count+ * The number of characters to extract. + *
+ * @return string The specified substring. If the sum of offset + * and count exceeds the length, then all 16-bit units + * to the end of the data are returned. + */ + public function substringData( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $count + ) {} + + /** + * Append the string to the end of the character data of the node + * @link https://php.net/manual/en/domcharacterdata.appenddata.php + * @param string $data+ * The string to append. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function appendData(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data) {} + + /** + * Insert a string at the specified 16-bit unit offset + * @link https://php.net/manual/en/domcharacterdata.insertdata.php + * @param int $offset+ * The character offset at which to insert. + *
+ * @param string $data+ * The string to insert. + *
+ * @return bool + */ + #[TentativeType] + public function insertData( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data + ): bool {} + + /** + * Remove a range of characters from the node + * @link https://php.net/manual/en/domcharacterdata.deletedata.php + * @param int $offset+ * The offset from which to start removing. + *
+ * @param int $count+ * The number of characters to delete. If the sum of + * offset and count exceeds + * the length, then all characters to the end of the data are deleted. + *
+ * @return void + */ + #[TentativeType] + public function deleteData( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $count + ): bool {} + + /** + * Replace a substring within the DOMCharacterData node + * @link https://php.net/manual/en/domcharacterdata.replacedata.php + * @param int $offset+ * The offset from which to start replacing. + *
+ * @param int $count+ * The number of characters to replace. If the sum of + * offset and count exceeds + * the length, then all characters to the end of the data are replaced. + *
+ * @param string $data+ * The string with which the range must be replaced. + *
+ * @return bool + */ + #[TentativeType] + public function replaceData( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $count, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data + ): bool {} + + /** + * {@inheritDoc} + */ + public function remove(): void {} + + /** + * {@inheritDoc} + */ + public function before(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function after(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function replaceWith(...$nodes): void {} +} + +/** + * The DOMAttr interface represents an attribute in an DOMElement object. + * @link https://php.net/manual/en/class.domattr.php + */ +class DOMAttr extends DOMNode +{ + /** + * @var string + * (PHP5)The tag name of the attribute.
+ * @param string $value [optional]The value of the attribute.
+ * @throws DOMException If invalid $name + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value = '' + ) {} +} + +/** + * The DOMElement class + * @link https://php.net/manual/en/class.domelement.php + */ +class DOMElement extends DOMNode implements DOMParentNode, DOMChildNode +{ + /** + * @var DOMNode|null + * The parent of this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.parentnode + */ + public $parentNode; + + /** + * @var DOMNode|null + * The first child of this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.firstchild + */ + public $firstChild; + + /** + * @var DOMNode|null + * The last child of this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.lastchild + */ + public $lastChild; + + /** + * @var DOMNode|null + * The node immediately preceding this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.previoussibling + */ + public $previousSibling; + + /** + * @var DOMNode|null + * The node immediately following this node. If there is no such node, this returns NULL. + * @link https://php.net/manual/en/class.domnode.php#domnode.props.nextsibling + */ + public $nextSibling; + + /** + * @var DOMNamedNodeMap + * A+ * The name of the attribute. + *
+ * @return string The value of the attribute, or an empty string if no attribute with the + * given name is found. + */ + #[TentativeType] + public function getAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): string {} + + /** + * Adds new attribute + * @link https://php.net/manual/en/domelement.setattribute.php + * @param string $qualifiedName+ * The name of the attribute. + *
+ * @param string $value+ * The value of the attribute. + *
+ * @return DOMAttr|false The new DOMAttr or false if an error occurred. + */ + public function setAttribute( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value + ) {} + + /** + * Removes attribute + * @link https://php.net/manual/en/domelement.removeattribute.php + * @param string $qualifiedName+ * The name of the attribute. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function removeAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): bool {} + + /** + * Returns attribute node + * @link https://php.net/manual/en/domelement.getattributenode.php + * @param string $qualifiedName+ * The name of the attribute. + *
+ * @return DOMAttr The attribute node. + */ + public function getAttributeNode(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName) {} + + /** + * Adds new attribute node to element + * @link https://php.net/manual/en/domelement.setattributenode.php + * @param DOMAttr $attr+ * The attribute node. + *
+ * @return DOMAttr|null Old node if the attribute has been replaced or null. + */ + public function setAttributeNode(DOMAttr $attr) {} + + /** + * Removes attribute + * @link https://php.net/manual/en/domelement.removeattributenode.php + * @param DOMAttr $attr+ * The attribute node. + *
+ * @return bool true on success or false on failure. + */ + public function removeAttributeNode(DOMAttr $attr) {} + + /** + * Gets elements by tagname + * @link https://php.net/manual/en/domelement.getelementsbytagname.php + * @param string $qualifiedName+ * The tag name. Use * to return all elements within + * the element tree. + *
+ * @return DOMNodeList This function returns a new instance of the class + * DOMNodeList of all matched elements. + */ + #[TentativeType] + public function getElementsByTagName(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): DOMNodeList {} + + /** + * Returns value of attribute + * @link https://php.net/manual/en/domelement.getattributens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $localName+ * The local name. + *
+ * @return string The value of the attribute, or an empty string if no attribute with the + * given localName and namespaceURI + * is found. + */ + #[TentativeType] + public function getAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ): string {} + + /** + * Adds new attribute + * @link https://php.net/manual/en/domelement.setattributens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $qualifiedName+ * The qualified name of the attribute, as prefix:tagname. + *
+ * @param string $value+ * The value of the attribute. + *
+ * @return void + */ + #[TentativeType] + public function setAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value + ): void {} + + /** + * Removes attribute + * @link https://php.net/manual/en/domelement.removeattributens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $localName+ * The local name. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function removeAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ): void {} + + /** + * Returns attribute node + * @link https://php.net/manual/en/domelement.getattributenodens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $localName+ * The local name. + *
+ * @return DOMAttr The attribute node. + */ + public function getAttributeNodeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ) {} + + /** + * Adds new attribute node to element + * @link https://php.net/manual/en/domelement.setattributenodens.php + * @param DOMAttr $attr + * @return DOMAttr the old node if the attribute has been replaced. + */ + public function setAttributeNodeNS(DOMAttr $attr) {} + + /** + * Get elements by namespaceURI and localName + * @link https://php.net/manual/en/domelement.getelementsbytagnamens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $localName+ * The local name. Use * to return all elements within + * the element tree. + *
+ * @return DOMNodeList This function returns a new instance of the class + * DOMNodeList of all matched elements in the order in + * which they are encountered in a preorder traversal of this element tree. + */ + #[TentativeType] + public function getElementsByTagNameNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ): DOMNodeList {} + + /** + * Checks to see if attribute exists + * @link https://php.net/manual/en/domelement.hasattribute.php + * @param string $qualifiedName+ * The attribute name. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function hasAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): bool {} + + /** + * Checks to see if attribute exists + * @link https://php.net/manual/en/domelement.hasattributens.php + * @param string $namespace+ * The namespace URI. + *
+ * @param string $localName+ * The local name. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function hasAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName + ): bool {} + + /** + * Declares the attribute specified by name to be of type ID + * @link https://php.net/manual/en/domelement.setidattribute.php + * @param string $qualifiedName+ * The name of the attribute. + *
+ * @param bool $isId+ * Set it to true if you want name to be of type + * ID, false otherwise. + *
+ * @return void + */ + #[TentativeType] + public function setIdAttribute( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isId + ): void {} + + /** + * Declares the attribute specified by local name and namespace URI to be of type ID + * @link https://php.net/manual/en/domelement.setidattributens.php + * @param string $namespace+ * The namespace URI of the attribute. + *
+ * @param string $qualifiedName+ * The local name of the attribute, as prefix:tagname. + *
+ * @param bool $isId+ * Set it to true if you want name to be of type + * ID, false otherwise. + *
+ * @return void + */ + #[TentativeType] + public function setIdAttributeNS( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isId + ): void {} + + /** + * Declares the attribute specified by node to be of type ID + * @link https://php.net/manual/en/domelement.setidattributenode.php + * @param DOMAttr $attr+ * The attribute node. + *
+ * @param bool $isId+ * Set it to true if you want name to be of type + * ID, false otherwise. + *
+ * @return void + */ + #[TentativeType] + public function setIdAttributeNode(DOMAttr $attr, #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isId): void {} + + /** + * {@inheritDoc} + */ + public function remove(): void {} + + /** + * {@inheritDoc} + */ + public function before(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function after(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function replaceWith(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function append(...$nodes): void {} + + /** + * {@inheritDoc} + */ + public function prepend(...$nodes): void {} + + /** + * @since 8.3 + * {@inheritDoc} + */ + public function replaceChildren(...$nodes): void {} + + /** + * Creates a new DOMElement object + * @link https://php.net/manual/en/domelement.construct.php + * @param string $qualifiedName The tag name of the element. When also passing in namespaceURI, the element name may take a prefix to be associated with the URI. + * @param string|null $value [optional] The value of the element. + * @param string $namespace [optional] A namespace URI to create the element within a specific namespace. + * @throws DOMException If invalid $qualifiedName + */ + public function __construct( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $value = null, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace = '' + ) {} + + /** + * @since 8.3 + */ + public function getAttributeNames(): array {} + + /** + * @since 8.3 + */ + public function toggleAttribute(string $qualifiedName, ?bool $force = null): bool {} + + /** + * @since 8.3 + */ + public function insertAdjacentElement(string $where, DOMElement $element): ?DOMElement {} + + /** + * @since 8.3 + */ + public function insertAdjacentText(string $where, string $data): void {} +} + +/** + * The DOMText class inherits from+ * The offset at which to split, starting from 0. + *
+ * @return DOMText The new node of the same type, which contains all the content at and after the + * offset. + */ + public function splitText(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset) {} + + /** + * Indicates whether this text node contains whitespace + * @link https://php.net/manual/en/domtext.iswhitespaceinelementcontent.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function isWhitespaceInElementContent(): bool {} + + #[TentativeType] + public function isElementContentWhitespace(): bool {} + + /** + * @param $content + */ + public function replaceWholeText($content) {} + + /** + * Creates a new+ * The prefix. + *
+ * @param string $namespace+ * The URI of the namespace. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function registerNamespace( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $prefix, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace + ): bool {} + + /** + * Evaluates the given XPath expression + * @link https://php.net/manual/en/domxpath.query.php + * @param string $expression+ * The XPath expression to execute. + *
+ * @param DOMNode $contextNode [optional]+ * The optional contextnode can be specified for + * doing relative XPath queries. By default, the queries are relative to + * the root element. + *
+ * @param bool $registerNodeNS [optional]The optional registerNodeNS can be specified to + * disable automatic registration of the context node.
+ * @return DOMNodeList|false a DOMNodeList containing all nodes matching + * the given XPath expression. Any expression which does not return nodes + * will return an empty DOMNodeList. The return is false if the expression + * is malformed or the contextnode is invalid. + */ + #[TentativeType] + public function query( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] #[Language('XPath')] $expression, + #[LanguageLevelTypeAware(['8.0' => 'DOMNode|null'], default: '')] $contextNode = null, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $registerNodeNS = true + ): mixed {} + + /** + * Evaluates the given XPath expression and returns a typed result if possible. + * @link https://php.net/manual/en/domxpath.evaluate.php + * @param string $expression+ * The XPath expression to execute. + *
+ * @param DOMNode $contextNode [optional]+ * The optional contextnode can be specified for + * doing relative XPath queries. By default, the queries are relative to + * the root element. + *
+ * @param bool $registerNodeNS [optional] + *+ * The optional registerNodeNS can be specified to disable automatic registration of the context node. + *
+ * @return mixed a typed result if possible or a DOMNodeList + * containing all nodes matching the given XPath expression. + */ + #[TentativeType] + public function evaluate( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] #[Language('XPath')] $expression, + #[LanguageLevelTypeAware(['8.0' => 'DOMNode|null'], default: '')] $contextNode = null, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $registerNodeNS = true + ): mixed {} + + /** + * Register PHP functions as XPath functions + * @link https://php.net/manual/en/domxpath.registerphpfunctions.php + * @param string|string[] $restrict [optional]+ * Use this parameter to only allow certain functions to be called from XPath. + *
+ *+ * This parameter can be either a string (a function name) or + * an array of function names. + *
+ * @return void + */ + public function registerPhpFunctions($restrict = null) {} +} + +/** + * @property-read DOMElement|null $firstElementChild + * @property-read DOMElement|null $lastElementChild + * @property-read int $childElementCount + * + * @since 8.0 + */ +interface DOMParentNode +{ + /** + * Appends one or many nodes to the list of children behind the last + * child node. + * + * @param DOMNode|string|null ...$nodes + * @return void + * @since 8.0 + */ + public function append(...$nodes): void; + + /** + * Prepends one or many nodes to the list of children before the first + * child node. + * + * @param DOMNode|string|null ...$nodes + * @return void + * @since 8.0 + */ + public function prepend(...$nodes): void; + + /** + * @since 8.3 + */ + public function replaceChildren(...$nodes): void; +} + +/** + * @property-read DOMElement|null $previousElementSibling + * @property-read DOMElement|null $nextElementSibling + * + * @since 8.0 + */ +interface DOMChildNode +{ + /** + * Acts as a simpler version of {@see DOMNode::removeChild()}. + * + * @return void + * @since 8.0 + */ + public function remove(): void; + + /** + * Add passed node(s) before the current node + * + * @param DOMNode|string|null ...$nodes + * @return void + * @since 8.0 + */ + public function before(...$nodes): void; + + /** + * Add passed node(s) after the current node + * + * @param DOMNode|string|null ...$nodes + * @return void + * @since 8.0 + */ + public function after(...$nodes): void; + + /** + * Replace current node with new node(s), a combination + * of {@see DOMChildNode::remove()} + {@see DOMChildNode::append()}. + * + * @param DOMNode|string|null ...$nodes + * @return void + * @since 8.0 + */ + public function replaceWith(...$nodes): void; +} diff --git a/phpstorm-stubs/ds/ds.php b/phpstorm-stubs/ds/ds.php new file mode 100644 index 0000000..a303a0d --- /dev/null +++ b/phpstorm-stubs/ds/ds.php @@ -0,0 +1,2732 @@ + + * @copyright © 2019 PHP Documentation Group + * @license CC-BY 3.0, https://www.php.net/manual/en/cc.license.php + */ + +namespace Ds; + + use ArrayAccess; + use Countable; + use IteratorAggregate; + use JsonSerializable; + use OutOfBoundsException; + use OutOfRangeException; + use Traversable; + use UnderflowException; + + /** + * Collection is the base interface which covers functionality common to all + * the data structures in this library. It guarantees that all structures + * are traversable, countable, and can be converted to json using + * json_encode(). + * @package Ds + * + * @template-covariant TKey + * @template-covariant TValue + * @extends IteratorAggregateNote: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-collection.toarray.php + * @return arrayNote: Capacity will stay the same if this value is + * less than or equal to the current capacity.
+ * @link https://www.php.net/manual/en/ds-sequence.allocate.php + */ + public function allocate(int $capacity): void; + + /** + * Updates all values by applying a callback function to each value in + * the sequence. + * @param callable(TValue): TValue $callback A callable to apply to each value in the + * sequence. The callback should return what the value should be + * replaced by. + *callback ( mixed $value ) : mixed
+ * @link https://www.php.net/manual/en/ds-sequence.apply.php
+ */
+ public function apply(callable $callback): void;
+
+ /**
+ * Returns the current capacity.
+ * @return int The current capacity.
+ * @link https://www.php.net/manual/en/ds-sequence.capacity.php
+ */
+ public function capacity(): int;
+
+ /**
+ * Determines if the sequence contains all values.
+ * @param TValue ...$values Values to check.
+ * @return bool FALSE if any of the provided values are not in the
+ * sequence, TRUE otherwise.
+ * @link https://www.php.net/manual/en/ds-sequence.contains.php
+ */
+ public function contains(...$values): bool;
+
+ /**
+ * Creates a new sequence using a callable to determine which values
+ * to include.
+ * @param null|callable(TValue): bool $callback Optional callable which returns TRUE if the
+ * value should be included, FALSE otherwise. If a callback is not
+ * provided, only values which are TRUE (see converting to boolean) will
+ * be included.
+ * callback ( mixed $value ) : bool
+ * @return SequenceNote: You can insert at the index equal to the number of values.
+ * @param TValue ...$values The value or values to insert. + * @throws OutOfRangeException if the index is not valid. + * @link https://www.php.net/manual/en/ds-sequence.insert.php + */ + public function insert(int $index, ...$values): void; + + /** + * Joins all values together as a string using an optional separator + * between each value. + * @param string $glue An optional string to separate each value. + * @return string All values of the sequence joined together as a + * string. + * @link https://www.php.net/manual/en/ds-sequence.join.php + */ + public function join(string $glue = ''): string; + + /** + * Returns the last value in the sequence. + * @return TValue The last value in the sequence. + * @throws UnderflowException if empty. + * @link https://www.php.net/manual/en/ds-sequence.last.php + */ + public function last(); + + /** + * Returns the result of applying a callback function to each value in + * the sequence. + * @template TNewValue + * @param callable(TValue): TNewValue $callback A callable to apply to each value in the + * sequence. + * The callable should return what the new value will be in the new + * sequence. + *callback ( mixed $value ) : mixed
+ * @return SequenceNote: The values of the current instance won't be + * affected.
+ * @link https://www.php.net/manual/en/ds-sequence.map.php + */ + public function map(callable $callback): Sequence; + + /** + * Returns the result of adding all given values to the sequence. + * @template TValue2 + * @param iterable
+ *
+ * callback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if it's
+ * the first iteration.
+ * $value The value of the current iteration.
+ *
Note: The current instance is not affected.
+ */ + public function reversed(); + + /** + * Rotates the sequence by a given number of rotations, which is + * equivalent to successively calling + * $sequence->push($sequence->shift()) if the number of rotations is + * positive, or $sequence->unshift($sequence->pop()) if negative. + * @param int $rotations The number of times the sequence should be + * rotated. + * @link https://www.php.net/manual/en/ds-sequence.rotate.php + */ + public function rotate(int $rotations): void; + + /** + * Updates a value at a given index. + * @param int $index The index of the value to update. + * @param TValue $value The new value. + * @throws OutOfRangeException if the index is not valid. + * @link https://www.php.net/manual/en/ds-sequence.set.php + */ + public function set(int $index, $value): void; + + /** + * Removes and returns the first value. + * @return TValue + * @throws UnderflowException if empty. + * @link https://www.php.net/manual/en/ds-sequence.shift.php + */ + public function shift(); + + /** + * Creates a sub-sequence of a given range. + * @param int $index The index at which the sub-sequence starts. + * If positive, the sequence will start at that index in the sequence. + * If negative, the sequence will start that far from the end. + * @param int|null $length If a length is given and is positive, the + * resulting sequence will have up to that many values in it. If the + * length results in an overflow, only values up to the end of the + * sequence will be included. If a length is given and is negative, + * the sequence will stop that many values from the end. If a length + * is not provided, the resulting sequence will contain all values + * between the index and the end of the sequence. + * @return Sequence
+ * callback ( mixed $a, mixed $b ) : int
Caution: Returning non-integer values from the comparison + * function, such as float, will result in an internal cast to integer + * of the callback's return value. So values such as 0.99 and 0.1 will + * both be cast to an integer value of 0, which will compare such + * values as equal.
+ * @link https://www.php.net/manual/en/ds-sequence.sort.php + */ + public function sort(?callable $comparator = null): void; + + /** + * Returns a sorted copy, using an optional comparator function. + * @param callable(TValue, TValue): int|null $comparator The comparison function must return + * an integer less than, equal to, or greater than zero if the first + * argument is considered to be respectively less than, equal to, or + * greater than the second. Note that before PHP 7.0.0 this integer had + * to be in the range from -2147483648 to 2147483647.
+ * callback ( mixed $a, mixed $b ) : int
Caution: Returning non-integer values from the comparison + * function, such as float, will result in an internal cast to integer + * of the callback's return value. So values such as 0.99 and 0.1 will + * both be cast to an integer value of 0, which will compare such + * values as equal.
+ * @return SequenceNote: Arrays and objects are considered equal to zero when + * calculating the sum.
+ * @return float|int The sum of all the values in the sequence as + * either a float or int depending on the values in the sequence. + */ + public function sum(): float|int; + + /** + * Adds values to the front of the sequence, moving all the current + * values forward to make room for the new values. + * @param TValue ...$values The values to add to the front of the sequence. + *Note: Multiple values will be added in the same order that they + * are passed.
+ */ + public function unshift(...$values): void; + } + + /** + * A Vector is a sequence of values in a contiguous buffer that grows and + * shrinks automatically. It’s the most efficient sequential structure + * because a value’s index is a direct mapping to its index in the buffer, + * and the growth factor isn't bound to a specific multiple or exponent. + *+ *
Note: Capacity will stay the same if this value is less than or + * equal to the current capacity.
+ * @link https://www.php.net/manual/en/ds-vector.allocate.php + */ + public function allocate(int $capacity): void {} + + /** + * Updates all values by applying a callback function to each value in + * the vector. + * @param callable(TValue): TValue $callback + *callback ( mixed $value ) : mixed
+ * A callable to apply to each value in the vector. The callback should
+ * return what the value should be replaced by.
+ * @link https://www.php.net/manual/en/ds-vector.apply.php
+ */
+ public function apply(callable $callback): void {}
+
+ /**
+ * Returns the current capacity.
+ * @return int The current capacity.
+ * @link https://www.php.net/manual/en/ds-vector.capacity.php
+ */
+ public function capacity(): int {}
+
+ /**
+ * Removes all values from the vector.
+ * @link https://www.php.net/manual/en/ds-vector.clear.php
+ */
+ public function clear(): void {}
+
+ /**
+ * Determines if the vector contains all values.
+ * @param TValue ...$values Values to check.
+ * @return bool FALSE if any of the provided values are not in the
+ * vector, TRUE otherwise.
+ * @link https://www.php.net/manual/en/ds-vector.contains.php
+ */
+ public function contains(...$values): bool {}
+
+ /**
+ *Returns a shallow copy of the vector.
+ * @return Vectorcallback ( mixed $value ) : bool
+ * @return VectorNote: Values will be compared by value and by type.
+ * @link https://www.php.net/manual/en/ds-vector.find.php + */ + public function find($value) {} + + /** + * Returns the first value in the vector. + * @return TValue + * @throws UnderflowException if empty. + * @link https://www.php.net/manual/en/ds-vector.first.php + */ + public function first() {} + + /** + * Returns the value at a given index. + * @param int $index The index to access, starting at 0. + * @return TValue + * @link https://www.php.net/manual/en/ds-vector.get.php + */ + public function get(int $index) {} + + /** + * @return Traversablecallback ( mixed $carry , mixed $value ) : mixedcallback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an
+ * internal cast to integer of the callback's return value. So values
+ * such as 0.99 and 0.1 will both be cast to an integer value of 0,
+ * which will compare such values as equal.
+ */
+ public function sort(?callable $comparator = null): void {}
+
+ /**
+ * Returns a sorted copy, using an optional comparator function.
+ * @link https://www.php.net/manual/en/ds-vector.sorted.php
+ * @param callable(TValue, TValue): int|null $comparator The comparison function must return an integer less than, equal to, or
+ * greater than zero if the first argument is considered to be respectively less than, equal to, or greater
+ * than the second. Note that before PHP 7.0.0 this integer had to be in the range from -2147483648 to
+ * 2147483647.callback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison function, such as float, will result in an
+ * internal cast to integer of the callback's return value. So values such as 0.99 and 0.1 will both be cast to
+ * an integer value of 0, which will compare such values as equal.
+ * @return Vector+ * The return value is cast to an integer. + *
+ * @since 5.1 + */ + public function count(): int {} + + /** + * Returns whether the collection is empty. + * @link https://www.php.net/manual/en/ds-vector.isempty.php + * @return bool + */ + public function isEmpty(): bool {} + + /** + * Converts the collection to an array. + *Note: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-vector.toarray.php + * @return array+ * The return value is cast to an integer. + *
+ * @since 5.1 + */ + public function count(): int {} + + /** + * Removes all values from the deque. + * @link https://www.php.net/manual/en/ds-deque.clear.php + */ + public function clear(): void {} + + /** + * Returns a shallow copy of the deque. + * @link https://www.php.net/manual/en/ds-deque.copy.php + * @return DequeNote: Casting to an array is not supported yet.
+ * @link https://www.php.net/manual/en/ds-deque.toarray.php + * @return arrayNote: Capacity will stay the same if this value is + * less than or equal to the current capacity.
+ *Note: Capacity will always be rounded up to the nearest power of 2.
+ * @link https://www.php.net/manual/en/ds-deque.allocate.php + */ + public function allocate(int $capacity): void {} + + /** + * Updates all values by applying a callback function to each value in + * the deque. + * @param callable(TValue): TValue $callback A callable to apply to each value in the + * deque. The callback should return what the value should be + * replaced by.
+ * callback ( mixed $value ) : mixed
+ *
+ * callback ( mixed $value ) : bool
+ *
Note: You can insert at the index equal to the number of values.
+ * @param TValue ...$values The value or values to insert. + * @throws OutOfRangeException if the index is not valid. + * @link https://www.php.net/manual/en/ds-deque.insert.php + */ + public function insert(int $index, ...$values): void {} + + /** + * Joins all values together as a string using an optional separator + * between each value. + * @param string $glue An optional string to separate each value. + * @return string All values of the deque joined together as a + * string. + * @link https://www.php.net/manual/en/ds-deque.join.php + */ + public function join(string $glue = ''): string {} + + /** + * Returns the last value in the deque. + * @return TValue The last value in the deque. + * @throws UnderflowException if empty. + * @link https://www.php.net/manual/en/ds-deque.last.php + */ + public function last() {} + + /** + * Returns the result of applying a callback function to each value in + * the deque. + * + * @template TNewValue + * @param callable(TValue): TNewValue $callback A callable to apply to each value in the + * deque. + * The callable should return what the new value will be in the new + * deque. + *callback ( mixed $value ) : mixed
+ *
+ * @return DequeNote: The values of the current instance won't be + * affected.
+ * @link https://www.php.net/manual/en/ds-deque.map.php + */ + public function map(callable $callback): Deque {} + + /** + * Returns the result of adding all given values to the deque. + * @template TValue2 + * @param iterablecallback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if it's
+ * the first iteration.+ * $value The value of the current iteration. + *
+ * @param TCarry $initial The initial value of the carry value. Can be NULL. + * @return TCarry The return value of the final callback. + * @link https://www.php.net/manual/en/ds-deque.reduce.php + */ + public function reduce(callable $callback, $initial = null) {} + + /** + * Removes and returns a value by index. + * @param int $index The index of the value to remove. + * @return TValue The value that was removed. + * @link https://www.php.net/manual/en/ds-deque.remove.php + */ + public function remove(int $index) {} + + /** + * Reverses the deque in-place. + * @link https://www.php.net/manual/en/ds-deque.reverse.php + */ + public function reverse(): void {} + + /** + * Returns a reversed copy of the deque. + * @return DequeNote: The current instance is not affected.
+ */ + public function reversed(): Deque {} + + /** + * Rotates the deque by a given number of rotations, which is + * equivalent to successively calling + * $deque->push($deque->shift()) if the number of rotations is + * positive, or $deque->unshift($deque->pop()) if negative. + * @param int $rotations The number of times the deque should be + * rotated. + * @link https://www.php.net/manual/en/ds-deque.rotate.php + */ + public function rotate(int $rotations): void {} + + /** + * Updates a value at a given index. + * @param int $index The index of the value to update. + * @param TValue $value The new value. + * @throws OutOfRangeException if the index is not valid. + * @link https://www.php.net/manual/en/ds-deque.set.php + */ + public function set(int $index, $value): void {} + + /** + * Removes and returns the first value. + * @return TValue + * @throws UnderflowException if empty. + * @link https://www.php.net/manual/en/ds-deque.shift.php + */ + public function shift() {} + + /** + * Creates a sub-deque of a given range. + * @param int $index The index at which the sub-deque starts. + * If positive, the deque will start at that index in the deque. + * If negative, the deque will start that far from the end. + * @param int|null $length If a length is given and is positive, the + * resulting deque will have up to that many values in it. If the + * length results in an overflow, only values up to the end of the + * deque will be included. If a length is given and is negative, + * the deque will stop that many values from the end. If a length + * is not provided, the resulting deque will contain all values + * between the index and the end of the deque. + * @return Dequecallback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison + * function, such as float, will result in an internal cast to integer + * of the callback's return value. So values such as 0.99 and 0.1 will + * both be cast to an integer value of 0, which will compare such + * values as equal.
+ * @link https://www.php.net/manual/en/ds-deque.sort.php + */ + public function sort(?callable $comparator = null): void {} + + /** + * Returns a sorted copy, using an optional comparator function. + * @param callable(TValue, TValue): int|null $comparator The comparison function must return + * an integer less than, equal to, or greater than zero if the first + * argument is considered to be respectively less than, equal to, or + * greater than the second. Note that before PHP 7.0.0 this integer had + * to be in the range from -2147483648 to 2147483647. + *callback ( mixed $a, mixed $b ) : int
+ * Caution: Returning non-integer values from the comparison + * function, such as float, will result in an internal cast to integer + * of the callback's return value. So values such as 0.99 and 0.1 will + * both be cast to an integer value of 0, which will compare such + * values as equal.
+ * @return DequeNote: Arrays and objects are considered equal to zero when + * calculating the sum.
+ * @return float|int The sum of all the values in the deque as + * either a float or int depending on the values in the deque. + */ + public function sum(): float|int {} + + /** + * Adds values to the front of the deque, moving all the current + * values forward to make room for the new values. + * @param TValue ...$values The values to add to the front of the deque. + *Note: Multiple values will be added in the same order that they + * are passed.
+ */ + public function unshift(...$values): void {} + + /** + * Specify data which should be serialized to JSON + * @link https://php.net/manual/en/ds-vector.jsonserialize.php + * @return mixed data which can be serialized by json_encode, + * which is a value of any type other than a resource. + * @since 5.4 + */ + public function jsonSerialize() {} + + /** + * @param int $offset + */ + public function offsetExists(mixed $offset): bool {} + + /** + * @param int $offset + * + * @return TValue + */ + public function offsetGet(mixed $offset) {} + + /** + * @param int $offset + * @param TValue $value + */ + public function offsetSet(mixed $offset, mixed $value) {} + + /** + * @param int $offset + */ + public function offsetUnset(mixed $offset): void {} + } + + /** + * @template TKey + * @template TValue + * @implements CollectionNote: Capacity will stay the same if this value is less than or equal to the current capacity.
+ * Capacity will always be rounded up to the nearest power of 2. + * + * @link https://www.php.net/manual/en/ds-map.allocate.php + */ + public function allocate(int $capacity) {} + + /** + * Updates all values by applying a callback function to each value in the map. + * + * @param callable(TKey, TValue): TValue $callback A callable to apply to each value in the map. The callback should return what + * the value should be replaced by. + * + * @link https://www.php.net/manual/en/ds-map.apply.php + */ + public function apply(callable $callback) {} + + /** + * Returns the current capacity. + * + * @return int + * + * @link https://www.php.net/manual/en/ds-map.capacity.php + */ + public function capacity(): int {} + + /** + * Count elements of an object + * @link https://php.net/manual/en/countable.count.php + * @return int The custom count as an integer. + * + *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int {}
+
+ /**
+ * Removes all values from the collection.
+ * @link https://www.php.net/manual/en/ds-collection.clear.php
+ */
+ public function clear(): void {}
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-collection.copy.php
+ * @return Map
+ * Note: Keys of type object are supported. If an object implements Ds\Hashable, equality will be
+ * determined by the object's equals function. If an object does not implement Ds\Hashable, objects must be references to the same instance to be considered equal.
+ *
+ * Note: You can also use array syntax to access values by key, eg. $map["key"].
+ *
+ * Caution: Be careful when using array syntax. Scalar keys will be coerced to integers by the engine. For
+ * example, $map["1"] will attempt to access int(1), while $map->get("1") will correctly look up the string key.
+ * Note: Values from the current instance will be kept. Note: Casting to an array is not supported yet. Caution: Maps where non-scalar keys are can't be converted to an
+ * array.
+ * Caution: An array will treat all numeric keys as integers, eg.
+ * "1" and 1 as keys in the map will only result in 1 being included in
+ * the array.
+ * Caution: Returning non-integer values from the comparison function, such
+ * as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal. Caution: Returning non-integer values from the comparison function, such
+ * as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal. Note: The current instance is not affected. Note: Values of the current instance will be overwritten by those
+ * provided where keys are equal. Note: Casting to an array is not supported yet. Note: Values of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined by the object's equals
+ * function. If an object does not implement Ds\Hashable, objects must
+ * be references to the same instance to be considered equal.
+ *
+ * Caution: All comparisons are strict (type and value).
+ *
+ * @param TValue ...$values Values to add to the set.
+ *
+ * @link https://php.net/manual/en/ds-set.add.php
+ */
+ public function add(...$values) {}
+
+ /**
+ * Allocates enough memory for a required capacity.
+ *
+ * @param int $capacity The number of values for which capacity should
+ * be allocated.
+ *
+ * Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ *
+ * Capacity will always be rounded up to the nearest power of 2.
+ *
+ * @link https://php.net/manual/en/ds-set.allocate.php
+ */
+ public function allocate(int $capacity) {}
+
+ /**
+ * Determines if the set contains all values.
+ *
+ * Values of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined by the object's equals
+ * function. If an object does not implement Ds\Hashable, objects must
+ * be references to the same instance to be considered equal.
+ *
+ * Caution: All comparisons are strict (type and value).
+ *
+ * @param TValue ...$values Values to check.
+ *
+ * @return bool
+ *
+ * @link https://php.net/manual/en/ds-set.contains.php
+ */
+ public function contains(...$values): bool {}
+
+ /**
+ * Returns the current capacity.
+ * @link https://www.php.net/manual/en/ds-set.capacity.php
+ *
+ * @return int
+ */
+ public function capacity(): int {}
+
+ /**
+ * Removes all values from the set.
+ * @link https://www.php.net/manual/en/ds-set.clear.php
+ */
+ public function clear(): void {}
+
+ /**
+ * Count elements of an object
+ * @link https://php.net/manual/en/ds-set.count.php
+ * @return int The custom count as an integer.
+ *
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int {}
+
+ /**
+ * Returns a shallow copy of the set.
+ * @link https://www.php.net/manual/en/ds-set.copy.php
+ * @return Set Note: The values of the current instance won't be affected. Note: The current instance won't be affected. Note: The current instance is not affected. Caution: Returning non-integer values from the comparison
+ * function, such as float, will result in an
+ * internal cast to integer of the callback's return value. So values
+ * such as 0.99 and 0.1 will both be cast to an integer value of 0,
+ * which will compare such values as equal. Note: Arrays and objects are considered equal to zero when
+ * calculating the sum. Note: Casting to an array is not supported yet. Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int {}
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-stack.copy.php
+ * @return Stack Note: Casting to an array is not supported yet. Note: Capacity will stay the same if this value is less than or
+ * equal to the current capacity.
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int {}
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-queue.copy.php
+ * @return Queue Note: Casting to an array is not supported yet.
+ * The return value is cast to an integer.
+ * @since 5.1
+ */
+ public function count(): int {}
+
+ /**
+ * Allocates enough memory for a required capacity
+ * @link https://www.php.net/manual/en/ds-priorityqueue.allocate.php
+ *
+ * @param int $capacity
+ */
+ public function allocate(int $capacity): void {}
+
+ /**
+ * Returns the current capacity
+ * @link https://www.php.net/manual/en/ds-priorityqueue.capacity.php
+ *
+ * @return int
+ */
+ public function capacity(): int {}
+
+ /**
+ * Removes all values from the collection.
+ * @link https://www.php.net/manual/en/ds-collection.clear.php
+ */
+ public function clear(): void {}
+
+ /**
+ * Returns a shallow copy of the collection.
+ * @link https://www.php.net/manual/en/ds-collection.copy.php
+ * @return PriorityQueue Note: Casting to an array is not supported yet.
+ * Broker resource
+ *
+ * Broker resource.
+ *
+ * Broker resource
+ *
+ * Broker resource
+ *
+ * A tag describing the locale, for example en_US, de_DE
+ *
+ * Broker resource
+ *
+ * Path to the PWL file.
+ *
+ * Dictionary resource.
+ *
+ * Broker resource
+ *
+ * non-empty tag in the LOCALE format, ex: us_US, ch_DE, etc.
+ *
+ * Broker resource
+ *
+ * Language tag. The special "*" tag can be used as a language tag
+ * to declare a default ordering for any language that does not
+ * explicitly declare an ordering.
+ *
+ * Comma delimited list of provider names
+ *
+ * Broker resource
+ *
+ * Dictionary resource
+ *
+ * The word to check
+ *
+ * Dictionary resource
+ *
+ * Word to use for the suggestions.
+ *
+ * Dictionary resource
+ *
+ * The word to add
+ *
+ * Dictionary resource
+ *
+ * The word to add
+ *
+ * An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().
+ *
+ * The word to add
+ *
+ * Dictionary resource
+ *
+ * The word to lookup
+ *
+ * Dictionary resource
+ *
+ * The work to fix
+ *
+ * The correct word
+ *
+ * Dictinaray resource
+ *
+ * An Enchant dictionary returned by enchant_broker_request_dict() or enchant_broker_request_pwl_dict().
+ *
+ * The word to lookup
+ *
+ * Dictionary resource
+ *
+ * Dictionary resource
+ *
+ * The word to check
+ *
+ * If the word is not correctly spelled, this variable will
+ * contain an array of suggestions.
+ *
+ * Is a comma separated list of sections that need to be present in file
+ * to produce a result array. If none of the requested
+ * sections could be found the return value is FALSE.
+ * callback ( mixed $a, mixed $b ) : int
+ * callback ( mixed $a, mixed $b ) : int
+ * callback ( mixed $key , mixed $value ) : mixed
+ * @return Mapcallback ( mixed $carry , mixed $key , mixed $value ) : mixed
+ * carry The return value of the previous callback, or initial if
+ * it's the first iteration.
+ * key The key of the current iteration.
+ * value The value of the current iteration.
+ *
+ * @param TCarry $initial The initial value of the carry value. Can be
+ * NULL.
+ *
+ * @return TCarry
+ * @link https://www.php.net/manual/en/ds-map.reduce.php
+ */
+ public function reduce(callable $callback, $initial) {}
+
+ /**
+ * Removes and returns a value by key, or return an optional default
+ * value if the key could not be found.
+ *
+ * @template TDefault
+ * @param TKey $key The key to remove.
+ * @param TDefault $default The optional default value, returned if the key
+ * could not be found.
+ *
+ * Note: Keys of type object are supported. If an object implements
+ * Ds\Hashable, equality will be determined
+ * by the object's equals function. If an object does not implement
+ * Ds\Hashable, objects must be references to the same instance to be
+ * considered equal.
+ *
+ * Note: You can also use array syntax to access values by key, eg.
+ * $map["key"].
+ *
+ * Caution: Be careful when using array syntax. Scalar keys will be
+ * coerced to integers by the engine. For example, $map["1"] will
+ * attempt to access int(1), while $map->get("1") will correctly look up
+ * the string key.
+ *
+ * @return TValue|TDefault The value that was removed, or the default value if
+ * provided and the key could not be found in the map.
+ *
+ * @throws OutOfBoundsException if the key could not be found and a
+ * default value was not provided.
+ *
+ * @link https://www.php.net/manual/en/ds-map.remove.php
+ */
+ public function remove($key, $default = null) {}
+
+ /**
+ * Reverses the map in-place.
+ *
+ * @link https://www.php.net/manual/en/ds-map.reverse.php
+ */
+ public function reverse() {}
+
+ /**
+ * Returns a reversed copy of the map.
+ *
+ * @return Mapcallback ( mixed $a, mixed $b ) : int
+ *
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ *
+ * @link https://www.php.net/manual/en/ds-map.sort.php
+ */
+ public function sort(?callable $comparator = null) {}
+
+ /**
+ * Returns a copy, sorted by value using an optional comparator function.
+ *
+ * @param callable(TValue, TValue): int|null $comparator The comparison function must return
+ * an integer less than, equal to, or greater than zero if the first
+ * argument is considered to be respectively less than, equal to, or
+ * greater than the second. Note that before PHP 7.0.0 this integer had
+ * to be in the range from -2147483648 to 2147483647.
+ *
+ * callback ( mixed $a, mixed $b ) : int
+ *
+ * Caution: Returning non-integer values from the comparison function,
+ * such as float, will result in an internal cast to integer of the
+ * callback's return value. So values such as 0.99 and 0.1 will both be
+ * cast to an integer value of 0, which will compare such values as
+ * equal.
+ *
+ * @return Mapcallback ( mixed $value ) : mixed
+ * @return Setcallback ( mixed $carry , mixed $value ) : mixed
+ * $carry The return value of the previous callback, or initial if
+ * it's the first iteration.
+ * $value The value of the current iteration.
+ *
+ * @param TCarry $initial The initial value of the carry value. Can be
+ * NULL.
+ *
+ * @return TCarry The return value of the final callback.
+ */
+ public function reduce(callable $callback, $initial = null) {}
+
+ /**
+ * Removes all given values from the set, ignoring any that are not in
+ * the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.remove.php
+ *
+ * @param TValue ...$values The values to remove.
+ */
+ public function remove(...$values) {}
+
+ /**
+ * Reverses the set in-place.
+ *
+ * @link https://www.php.net/manual/en/ds-set.reverse.php
+ */
+ public function reverse() {}
+
+ /**
+ * Returns a reversed copy of the set.
+ *
+ * @link https://www.php.net/manual/en/ds-set.reversed.php
+ *
+ * callback ( mixed $a, mixed $b ) : int
+ * callback ( mixed $a, mixed $b ) : int
+ *
+ *
+ * Returns the last error of the broker
+ * @link https://php.net/manual/en/function.enchant-broker-get-error.php
+ * @param resource|EnchantBroker $broker
+ * Returns a list of available dictionaries
+ * @link https://php.net/manual/en/function.enchant-broker-list-dicts.php
+ * @param resource|EnchantBroker $broker
+ * create a new dictionary using a tag
+ * @link https://php.net/manual/en/function.enchant-broker-request-dict.php
+ * @param resource|EnchantBroker $broker
+ * creates a dictionary using a PWL file
+ * @link https://php.net/manual/en/function.enchant-broker-request-pwl-dict.php
+ * @param resource|EnchantBroker $broker
+ * Free a dictionary resource
+ * @link https://php.net/manual/en/function.enchant-broker-free-dict.php
+ * @param resource|EnchantDictionary $dict
+ * Whether a dictionary exists or not. Using non-empty tag
+ * @link https://php.net/manual/en/function.enchant-broker-dict-exists.php
+ * @param resource|EnchantBroker $broker
+ * Declares a preference of dictionaries to use for the language
+ * @link https://php.net/manual/en/function.enchant-broker-set-ordering.php
+ * @param resource|EnchantBroker $broker
+ * Enumerates the Enchant providers
+ * @link https://php.net/manual/en/function.enchant-broker-describe.php
+ * @param resource|EnchantBroker $broker
+ * Check whether a word is correctly spelled or not
+ * @link https://php.net/manual/en/function.enchant-dict-check.php
+ * @param resource|EnchantDictionary $dict
+ * Will return a list of values if any of those pre-conditions are not met
+ * @link https://php.net/manual/en/function.enchant-dict-suggest.php
+ * @param resource|EnchantDictionary $dict
+ * add a word to personal word list
+ * @link https://php.net/manual/en/function.enchant-dict-add-to-personal.php
+ * @param resource $dict
+ * add 'word' to this spell-checking session
+ * @link https://php.net/manual/en/function.enchant-dict-add-to-session.php
+ * @param resource|EnchantDictionary $dict
+ * Add a word to personal word list
+ * @link https://php.net/manual/en/function.enchant-dict-add.php
+ * @param EnchantDictionary $dictionary
+ * whether or not 'word' exists in this spelling-session
+ * @link https://php.net/manual/en/function.enchant-dict-is-in-session.php
+ * @param resource $dict
+ * Add a correction for a word
+ * @link https://php.net/manual/en/function.enchant-dict-store-replacement.php
+ * @param resource|EnchantDictionary $dict
+ * Returns the last error of the current spelling-session
+ * @link https://php.net/manual/en/function.enchant-dict-get-error.php
+ * @param resource|EnchantDictionary $dict
+ * Whether or not 'word' exists in this spelling-session
+ * @link https://php.net/manual/en/function.enchant-dict-is-added.php
+ * @param EnchantDictionary $dictionary
+ * Describes an individual dictionary
+ * @link https://php.net/manual/en/function.enchant-dict-describe.php
+ * @param resource|EnchantDictionary $dict
+ * Check the word is correctly spelled and provide suggestions
+ * @link https://php.net/manual/en/function.enchant-dict-quick-check.php
+ * @param resource|EnchantDictionary $dict
+ *
+ * FILE
+ * FileName, FileSize, FileDateTime, SectionsFound
+ *
+ *
+ * COMPUTED
+ *
+ * html, Width, Height, IsColor, and more if available. Height and
+ * Width are computed the same way getimagesize
+ * does so their values must not be part of any header returned.
+ * Also, html is a height/width text string to be used inside normal
+ * HTML.
+ *
+ *
+ *
+ * ANY_TAG
+ * Any information that has a Tag e.g. IFD0, EXIF, ...
+ *
+ *
+ * IFD0
+ *
+ * All tagged data of IFD0. In normal imagefiles this contains
+ * image size and so forth.
+ *
+ *
+ *
+ * THUMBNAIL
+ *
+ * A file is supposed to contain a thumbnail if it has a second IFD.
+ * All tagged information about the embedded thumbnail is stored in
+ * this section.
+ *
+ *
+ *
+ * COMMENT
+ * Comment headers of JPEG images.
+ *
+ *
+ * EXIF
+ *
+ * The EXIF section is a sub section of IFD0. It contains
+ * more detailed information about an image. Most of these entries
+ * are digital camera related.
+ *
+ *
+ * Specifies whether or not each section becomes an array. The + * sections COMPUTED, + * THUMBNAIL, and COMMENT + * always become arrays as they may contain values whose names conflict + * with other sections. + *
+ * @param bool $read_thumbnail [optional]+ * When set to TRUE the thumbnail itself is read. Otherwise, only the + * tagged data is read. + *
+ * @return array|false It returns an associative array where the array indexes are + * the header names and the array values are the values associated with + * those headers. If no data can be returned, + * exif_read_data will return FALSE. + */ +function exif_read_data($file, ?string $required_sections, bool $as_arrays = false, bool $read_thumbnail = false): array|false {} + +/** + * Alias of exif_read_data + * @link https://php.net/manual/en/function.read-exif-data.php + * @param $filename + * @param $sections [optional] + * @param $arrays [optional] + * @param $thumbnail [optional] + * @removed 8.0 + */ +#[Deprecated(replacement: "exif_read_data(%parametersList%)", since: "7.2")] +function read_exif_data($filename, $sections = null, $arrays = false, $thumbnail = false) {} + +/** + * Get the header name for an index + * @link https://php.net/manual/en/function.exif-tagname.php + * @param int $index+ * The Tag ID for which a Tag Name will be looked up. + *
+ * @return string|false the header name, or FALSE if index is + * not a defined EXIF tag id. + */ +function exif_tagname(int $index): string|false {} + +/** + * Retrieve the embedded thumbnail of a TIFF or JPEG image + * @link https://php.net/manual/en/function.exif-thumbnail.php + * @param string|resource $file+ * The location of the image file. This cannot be an URL. + * Since 7.2.0 this can either be a path to the file (stream wrappers are also supported as usual) + * or a stream resource. + *
+ * @param int &$width [optional]+ * The return width of the returned thumbnail. + *
+ * @param int &$height [optional]+ * The returned height of the returned thumbnail. + *
+ * @param int &$image_type [optional]+ * The returned image type of the returned thumbnail. This is either + * TIFF or JPEG. + *
+ * @return string|false the embedded thumbnail, or FALSE if the image contains no + * thumbnail. + */ +function exif_thumbnail($file, &$width, &$height, &$image_type): string|false {} + +/** + * Determine the type of an image + * @link https://php.net/manual/en/function.exif-imagetype.php + * @param string $filename The image being checked. + * @return int|false When a correct signature is found, the appropriate constant value will be + * returned otherwise the return value is FALSE. The return value is the + * same value that getimagesize returns in index 2 but + * exif_imagetype is much faster. + * + *+ * exif_imagetype will emit an E_NOTICE + * and return FALSE if it is unable to read enough bytes from the file to + * determine the image type. + */ +function exif_imagetype(string $filename): int|false {} + +define('EXIF_USE_MBSTRING', 1); + +// End of exif v.1.4 $Id$ diff --git a/phpstorm-stubs/expect/expect.php b/phpstorm-stubs/expect/expect.php new file mode 100644 index 0000000..8205276 --- /dev/null +++ b/phpstorm-stubs/expect/expect.php @@ -0,0 +1,99 @@ +expect_expectl(), when EOF is reached. + * @link https://www.php.net/manual/en/expect.constants.php + */ +const EXP_EOF = -11; +/** + * Value, returned by expect_expectl() upon timeout of seconds, specified in value of expect.timeout + * @link https://www.php.net/manual/en/expect.constants.php + */ +const EXP_TIMEOUT = -2; +/** + * Value, returned by expect_expectl() if no pattern have been matched. + * @link https://www.php.net/manual/en/expect.constants.php + */ +const EXP_FULLBUFFER = -5; + +/** + * Execute command via Bourne shell, and open the PTY stream to the process + * + * @param string $command Command to execute. + * @return resource|false Returns an open PTY stream to the processes stdio, stdout, and stderr. + * On failure this function returns FALSE. + * @since PECL expect >= 0.1.0 + * @link https://www.php.net/manual/en/function.expect-popen.php + */ +function expect_popen(string $command) +{ + unset($command); + return false; +} + +/** + * Waits until the output from a process matches one of the patterns, a specified time period has passed, + * or an EOF is seen. + * + * If match is provided, then it is filled with the result of search. The matched string can be found in match[0]. + * The match substrings (according to the parentheses) in the original pattern can be found in match[1], match[2], + * and so on, up to match[9] (the limitation of libexpect). + * + * @param resource $expect An Expect stream, previously opened with expect_popen() + * @param array $cases
An array of expect cases. Each expect case is an indexed array, as described in the following table:
+ *+ *
+ * One or disjunction of more Fileinfo + * constants. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function set_flags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags) {} + + /** + * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Name of a file to be checked. + *
+ * @param int $flags [optional]+ * One or disjunction of more Fileinfo + * constants. + *
+ * @param resource $context [optional]+ * For a description of contexts, refer to . + *
+ * @return string a textual description of the contents of the + * filename argument, or FALSE if an error occurred. + */ + #[Pure] + #[TentativeType] + public function file( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FILEINFO_NONE, + $context = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Content of a file to be checked. + *
+ * @param int $flags [optional]+ * One or disjunction of more Fileinfo + * constants. + *
+ * @param resource $context [optional] + * @return string a textual description of the string + * argument, or FALSE if an error occurred. + */ + #[Pure] + #[TentativeType] + public function buffer( + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = FILEINFO_NONE, + $context = null + ): string|false {} +} + +/** + * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)+ * One or disjunction of more Fileinfo + * constants. + *
+ * @param string|null $magic_database [optional]+ * Name of a magic database file, usually something like + * /path/to/magic.mime. If not specified, + * the MAGIC environment variable is used. If this variable + * is not set either, /usr/share/misc/magic is used by default. + * A .mime and/or .mgc suffix is added if + * needed. + *
+ * @return resource|false a magic database resource on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'finfo|false'], default: 'resource|false')] +function finfo_open(int $flags = 0, ?string $magic_database = null) {} + +/** + * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Fileinfo resource returned by finfo_open. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function finfo_close(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo): bool {} + +/** + * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Fileinfo resource returned by finfo_open. + *
+ * @param int $flags+ * One or disjunction of more Fileinfo + * constants. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function finfo_set_flags(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo, int $flags): bool {} + +/** + * (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Fileinfo resource returned by finfo_open. + *
+ * @param string $filename+ * Name of a file to be checked. + *
+ * @param int $flags+ * One or disjunction of more Fileinfo + * constants. + *
+ * @param resource $context [optional]+ * For a description of contexts, refer to . + *
+ * @return string|false a textual description of the contents of the + * filename argument, or FALSE if an error occurred. + */ +function finfo_file(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo, string $filename, int $flags = 0, $context): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL fileinfo >= 0.1.0)+ * Fileinfo resource returned by finfo_open. + *
+ * @param string $string+ * Content of a file to be checked. + *
+ * @param int $flags [optional] One or disjunction of more + * Fileinfo constants. + * @param resource $context [optional] + * @return string|false a textual description of the string + * argument, or FALSE if an error occurred. + */ +function finfo_buffer(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo, string $string, int $flags = FILEINFO_NONE, $context): string|false {} + +/** + * Detect MIME Content-type for a file + * @link https://php.net/manual/en/function.mime-content-type.php + * @param string $filename+ * Path to the tested file. + *
+ * @return string|false the content type in MIME format, like + * text/plain or application/octet-stream. + */ +function mime_content_type($filename): string|false {} + +/** + * No special handling. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_NONE', 0); + +/** + * Follow symlinks. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_SYMLINK', 2); + +/** + * Return the mime type and mime encoding as defined by RFC 2045. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_MIME', 1040); + +/** + * Return the mime type. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_MIME_TYPE', 16); + +/** + * Return the mime encoding of the file. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_MIME_ENCODING', 1024); + +/** + * Look at the contents of blocks or character special devices. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_DEVICES', 8); + +/** + * Return all matches, not just the first. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_CONTINUE', 32); + +/** + * If possible preserve the original access time. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_PRESERVE_ATIME', 128); + +/** + * Don't translate unprintable characters to a \ooo octal + * representation. + * @link https://php.net/manual/en/fileinfo.constants.php + */ +define('FILEINFO_RAW', 256); + +/** + * Returns the file extension appropriate for a the MIME type detected in the file. + * For types that commonly have multiple file extensions, such as JPEG images, then the return value is multiple extensions speparated by a forward slash e.g.: "jpeg/jpg/jpe/jfif". + * For unknown types not available in the magic.mime database, then return value is "???". Available since PHP 7.2.0. + * @since 7.2 + */ +define('FILEINFO_EXTENSION', 2097152); + +/** + * @since 8.2 + */ +define('FILEINFO_APPLE', 2048); + +// End of fileinfo v.1.0.5 diff --git a/phpstorm-stubs/filter/filter.php b/phpstorm-stubs/filter/filter.php new file mode 100644 index 0000000..c928e2d --- /dev/null +++ b/phpstorm-stubs/filter/filter.php @@ -0,0 +1,536 @@ + + * One of INPUT_GET, INPUT_POST, + * INPUT_COOKIE, INPUT_SERVER, or + * INPUT_ENV. + * + * @param string $var_name+ * Name of a variable to get. + *
+ * @param int $filter [optional]+ * The ID of the filter to apply. The + * manual page lists the available filters. + *
+ * @param array|int $options+ * Associative array of options or bitwise disjunction of flags. If filter + * accepts options, flags can be provided in "flags" field of array. + *
+ * @return mixed Value of the requested variable on success, FALSE if the filter fails, + * or NULL if the variable_name variable is not set. + * If the flag FILTER_NULL_ON_FAILURE is used, it + * returns FALSE if the variable is not set and NULL if the filter fails. + */ +#[Pure] +function filter_input(int $type, string $var_name, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed {} + +/** + * Filters a variable with a specified filter + * @link https://php.net/manual/en/function.filter-var.php + * @param mixed $value+ * Value to filter. + *
+ * @param int $filter [optional]+ * The ID of the filter to apply. The + * manual page lists the available filters. + *
+ * @param array|int $options+ * Associative array of options or bitwise disjunction of flags. If filter + * accepts options, flags can be provided in "flags" field of array. For + * the "callback" filter, callable type should be passed. The + * callback must accept one argument, the value to be filtered, and return + * the value after filtering/sanitizing it. + *
+ *
+ *
+ * // for filters that accept options, use this format
+ * $options = array(
+ * 'options' => array(
+ * 'default' => 3, // value to return if the filter fails
+ * // other options here
+ * 'min_range' => 0
+ * ),
+ * 'flags' => FILTER_FLAG_ALLOW_OCTAL,
+ * );
+ * $var = filter_var('0755', FILTER_VALIDATE_INT, $options);
+ * // for filter that only accept flags, you can pass them directly
+ * $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);
+ * // for filter that only accept flags, you can also pass as an array
+ * $var = filter_var('oops', FILTER_VALIDATE_BOOLEAN,
+ * array('flags' => FILTER_NULL_ON_FAILURE));
+ * // callback validate filter
+ * function foo($value)
+ * {
+ * // Expected format: Surname, GivenNames
+ * if (strpos($value, ", ") === false) return false;
+ * list($surname, $givennames) = explode(", ", $value, 2);
+ * $empty = (empty($surname) || empty($givennames));
+ * $notstrings = (!is_string($surname) || !is_string($givennames));
+ * if ($empty || $notstrings) {
+ * return false;
+ * } else {
+ * return $value;
+ * }
+ * }
+ * $var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));
+ *
+ *
+ * One of INPUT_GET, INPUT_POST, + * INPUT_COOKIE, INPUT_SERVER, or + * INPUT_ENV. + *
+ * @param array|int $options [optional]+ * An array defining the arguments. A valid key is a string + * containing a variable name and a valid value is either a filter type, or an array + * optionally specifying the filter, flags and options. If the value is an + * array, valid keys are filter which specifies the + * filter type, + * flags which specifies any flags that apply to the + * filter, and options which specifies any options that + * apply to the filter. See the example below for a better understanding. + *
+ *+ * This parameter can be also an integer holding a filter constant. Then all values in the + * input array are filtered by this filter. + *
+ * @param bool $add_empty [optional]+ * Add missing keys as NULL to the return value. + *
+ * @return array|false|null An array containing the values of the requested variables on success, or FALSE + * on failure. An array value will be FALSE if the filter fails, or NULL if + * the variable is not set. Or if the flag FILTER_NULL_ON_FAILURE + * is used, it returns FALSE if the variable is not set and NULL if the filter + * fails. + */ +#[Pure] +function filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null {} + +/** + * Gets multiple variables and optionally filters them + * @link https://php.net/manual/en/function.filter-var-array.php + * @param array $array+ * An array with string keys containing the data to filter. + *
+ * @param array|int $options [optional]+ * An array defining the arguments. A valid key is a string + * containing a variable name and a valid value is either a + * filter type, or an + * array optionally specifying the filter, flags and options. + * If the value is an array, valid keys are filter + * which specifies the filter type, + * flags which specifies any flags that apply to the + * filter, and options which specifies any options that + * apply to the filter. See the example below for a better understanding. + *
+ *+ * This parameter can be also an integer holding a filter constant. Then all values in the + * input array are filtered by this filter. + *
+ * @param bool $add_empty [optional]+ * Add missing keys as NULL to the return value. + *
+ * @return array|false|null An array containing the values of the requested variables on success, or FALSE + * on failure. An array value will be FALSE if the filter fails, or NULL if + * the variable is not set. + */ +#[Pure] +function filter_var_array(array $array, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null {} + +/** + * Returns a list of all supported filters + * @link https://php.net/manual/en/function.filter-list.php + * @return array an array of names of all supported filters, empty array if there + * are no such filters. Indexes of this array are not filter IDs, they can be + * obtained with filter_id from a name instead. + */ +#[Pure] +function filter_list(): array {} + +/** + * Checks if variable of specified type exists + * @link https://php.net/manual/en/function.filter-has-var.php + * @param int $input_type+ * One of INPUT_GET, INPUT_POST, + * INPUT_COOKIE, INPUT_SERVER, or + * INPUT_ENV. + *
+ * @param string $var_name+ * Name of a variable to check. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +#[Pure] +function filter_has_var(int $input_type, string $var_name): bool {} + +/** + * Returns the filter ID belonging to a named filter + * @link https://php.net/manual/en/function.filter-id.php + * @param string $name+ * Name of a filter to get. + *
+ * @return int|false ID of a filter on success or FALSE if filter doesn't exist. + */ +#[Pure] +function filter_id(string $name): int|false {} + +/** + * POST variables. + * @link https://php.net/manual/en/filter.constants.php + */ +define('INPUT_POST', 0); + +/** + * GET variables. + * @link https://php.net/manual/en/filter.constants.php + */ +define('INPUT_GET', 1); + +/** + * COOKIE variables. + * @link https://php.net/manual/en/filter.constants.php + */ +define('INPUT_COOKIE', 2); + +/** + * ENV variables. + * @link https://php.net/manual/en/filter.constants.php + */ +define('INPUT_ENV', 4); + +/** + * SERVER variables. + * @link https://php.net/manual/en/filter.constants.php + */ +define('INPUT_SERVER', 5); + +/** + * SESSION variables. + * (not implemented yet) + * @link https://php.net/manual/en/filter.constants.php + * @removed 8.0 + */ +define('INPUT_SESSION', 6); + +/** + * REQUEST variables. + * (not implemented yet) + * @link https://php.net/manual/en/filter.constants.php + * @removed 8.0 + */ +define('INPUT_REQUEST', 99); + +/** + * No flags. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_NONE', 0); + +/** + * Flag used to require scalar as input + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_REQUIRE_SCALAR', 33554432); + +/** + * Require an array as input. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_REQUIRE_ARRAY', 16777216); + +/** + * Always returns an array. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FORCE_ARRAY', 67108864); + +/** + * Use NULL instead of FALSE on failure. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_NULL_ON_FAILURE', 134217728); + +/** + * ID of "int" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_INT', 257); + +/** + * ID of "boolean" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_BOOLEAN', 258); +/** + * ID of "boolean" filter. + * @link https://php.net/manual/en/filter.constants.php + * @link https://php.net/manual/en/filter.filters.validate.php + * @since 8.0 Using `FILTER_VALIDATE_BOOL` is preferred. + */ +define('FILTER_VALIDATE_BOOL', 258); + +/** + * ID of "float" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_FLOAT', 259); + +/** + * ID of "validate_regexp" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_REGEXP', 272); + +define('FILTER_VALIDATE_DOMAIN', 277); + +/** + * ID of "validate_url" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_URL', 273); + +/** + * ID of "validate_email" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_EMAIL', 274); + +/** + * ID of "validate_ip" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_VALIDATE_IP', 275); +define('FILTER_VALIDATE_MAC', 276); + +/** + * ID of default ("string") filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_DEFAULT', 516); + +/** + * @since 7.3 + */ +define('FILTER_SANITIZE_ADD_SLASHES', 523); + +/** + * ID of "unsafe_raw" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_UNSAFE_RAW', 516); + +/** + * ID of "string" filter. + * @link https://php.net/manual/en/filter.constants.php + * @deprecated 8.1 + */ +define('FILTER_SANITIZE_STRING', 513); + +/** + * ID of "stripped" filter. + * @link https://php.net/manual/en/filter.constants.php + * @deprecated 8.1 + */ +define('FILTER_SANITIZE_STRIPPED', 513); + +/** + * ID of "encoded" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_ENCODED', 514); + +/** + * ID of "special_chars" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_SPECIAL_CHARS', 515); +define('FILTER_SANITIZE_FULL_SPECIAL_CHARS', 522); + +/** + * ID of "email" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_EMAIL', 517); + +/** + * ID of "url" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_URL', 518); + +/** + * ID of "number_int" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_NUMBER_INT', 519); + +/** + * ID of "number_float" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_SANITIZE_NUMBER_FLOAT', 520); + +/** + * ID of "magic_quotes" filter. + * @link https://php.net/manual/en/filter.constants.php + * @deprecated 7.4 + * @removed 8.0 + */ +define('FILTER_SANITIZE_MAGIC_QUOTES', 521); + +/** + * ID of "callback" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_CALLBACK', 1024); + +/** + * Allow octal notation (0[0-7]+) in "int" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ALLOW_OCTAL', 1); + +/** + * Allow hex notation (0x[0-9a-fA-F]+) in "int" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ALLOW_HEX', 2); + +/** + * Strip characters with ASCII value less than 32. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_STRIP_LOW', 4); + +/** + * Strip characters with ASCII value greater than 127. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_STRIP_HIGH', 8); +define('FILTER_FLAG_STRIP_BACKTICK', 512); + +/** + * Encode characters with ASCII value less than 32. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ENCODE_LOW', 16); + +/** + * Encode characters with ASCII value greater than 127. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ENCODE_HIGH', 32); + +/** + * Encode &. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ENCODE_AMP', 64); + +/** + * Don't encode ' and ". + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_NO_ENCODE_QUOTES', 128); + +/** + * (No use for now.) + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_EMPTY_STRING_NULL', 256); + +/** + * Allow fractional part in "number_float" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ALLOW_FRACTION', 4096); + +/** + * Allow thousand separator (,) in "number_float" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ALLOW_THOUSAND', 8192); + +/** + * Allow scientific notation (e, E) in + * "number_float" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_ALLOW_SCIENTIFIC', 16384); + +/** + * Require scheme in "validate_url" filter. + * @link https://php.net/manual/en/filter.constants.php + * @deprecated 7.3 + * @removed 8.0 + */ +define('FILTER_FLAG_SCHEME_REQUIRED', 65536); + +/** + * Require host in "validate_url" filter. + * @link https://php.net/manual/en/filter.constants.php + * @deprecated 7.3 + * @removed 8.0 + */ +define('FILTER_FLAG_HOST_REQUIRED', 131072); + +/** + * Require path in "validate_url" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_PATH_REQUIRED', 262144); + +/** + * Require query in "validate_url" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_QUERY_REQUIRED', 524288); + +/** + * Allow only IPv4 address in "validate_ip" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_IPV4', 1048576); + +/** + * Allow only IPv6 address in "validate_ip" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_IPV6', 2097152); + +/** + * Deny reserved addresses in "validate_ip" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_NO_RES_RANGE', 4194304); + +/** + * Deny private addresses in "validate_ip" filter. + * @link https://php.net/manual/en/filter.constants.php + */ +define('FILTER_FLAG_NO_PRIV_RANGE', 8388608); + +define('FILTER_FLAG_HOSTNAME', 1048576); +define('FILTER_FLAG_EMAIL_UNICODE', 1048576); + +/** + * filters Global IPs per RFC 6890 + * @since 8.2 + */ +define('FILTER_FLAG_GLOBAL_RANGE', 268435456); + +// End of filter v.0.11.0 diff --git a/phpstorm-stubs/fpm/fpm.php b/phpstorm-stubs/fpm/fpm.php new file mode 100644 index 0000000..4a6550c --- /dev/null +++ b/phpstorm-stubs/fpm/fpm.php @@ -0,0 +1,16 @@ + 'FTP\Connection'], default: 'resource')] $ftp, + string $remote_filename, + string $local_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY +): bool {} + +/** + * returns a list of files in the given directory + * @param resource $ftp + * @param string $directory + * @return array|false + * @since 7.2 + */ +function ftp_mlsd(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory): array|false {} + +/** + * Opens an FTP connection + * @link https://php.net/manual/en/function.ftp-connect.php + * @param string $hostname+ * The FTP server address. This parameter shouldn't have any trailing + * slashes and shouldn't be prefixed with ftp://. + *
+ * @param int $port [optional]+ * This parameter specifies an alternate port to connect to. If it is + * omitted or set to zero, then the default FTP port, 21, will be used. + *
+ * @param int $timeout [optional]+ * This parameter specifies the timeout for all subsequent network operations. + * If omitted, the default value is 90 seconds. The timeout can be changed and + * queried at any time with ftp_set_option and + * ftp_get_option. + *
+ * @return resource|false a FTP stream on success or FALSE on error. + */ +#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection|false'], default: 'resource|false')] +function ftp_connect(string $hostname, int $port = 21, int $timeout = 90) {} + +/** + * Opens a Secure SSL-FTP connection + * @link https://php.net/manual/en/function.ftp-ssl-connect.php + * @param string $hostname+ * The FTP server address. This parameter shouldn't have any trailing + * slashes and shouldn't be prefixed with ftp://. + *
+ * @param int $port [optional]+ * This parameter specifies an alternate port to connect to. If it is + * omitted or set to zero, then the default FTP port, 21, will be used. + *
+ * @param int $timeout [optional]+ * This parameter specifies the timeout for all subsequent network operations. + * If omitted, the default value is 90 seconds. The timeout can be changed and + * queried at any time with ftp_set_option and + * ftp_get_option. + *
+ * @return resource|false a SSL-FTP stream on success or FALSE on error. + */ +#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection|false'], default: 'resource|false')] +function ftp_ssl_connect(string $hostname, int $port = 21, int $timeout = 90) {} + +/** + * Logs in to an FTP connection + * @link https://php.net/manual/en/function.ftp-login.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $username+ * The username (USER). + *
+ * @param string $password+ * The password (PASS). + *
+ * @return bool TRUE on success or FALSE on failure. + * If login fails, PHP will also throw a warning. + */ +function ftp_login(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $username, string $password): bool {} + +/** + * Returns the current directory name + * @link https://php.net/manual/en/function.ftp-pwd.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @return string|false the current directory name or FALSE on error. + */ +function ftp_pwd(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): string|false {} + +/** + * Changes to the parent directory + * @link https://php.net/manual/en/function.ftp-cdup.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_cdup(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): bool {} + +/** + * Changes the current directory on a FTP server + * @link https://php.net/manual/en/function.ftp-chdir.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $directory+ * The target directory. + *
+ * @return bool TRUE on success or FALSE on failure. + * If changing directory fails, PHP will also throw a warning. + */ +function ftp_chdir(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory): bool {} + +/** + * Requests execution of a command on the FTP server + * @link https://php.net/manual/en/function.ftp-exec.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $command+ * The command to execute. + *
+ * @return bool TRUE if the command was successful (server sent response code: + * 200); otherwise returns FALSE. + */ +function ftp_exec(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $command): bool {} + +/** + * Sends an arbitrary command to an FTP server + * @link https://php.net/manual/en/function.ftp-raw.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $command+ * The command to execute. + *
+ * @return string[] the server's response as an array of strings. + * No parsing is performed on the response string, nor does + * ftp_raw determine if the command succeeded. + */ +#[LanguageLevelTypeAware(['8.0' => 'array|null'], default: 'array')] +function ftp_raw(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $command) {} + +/** + * Creates a directory + * @link https://php.net/manual/en/function.ftp-mkdir.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $directory+ * The name of the directory that will be created. + *
+ * @return string|false the newly created directory name on success or FALSE on error. + */ +function ftp_mkdir(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory): string|false {} + +/** + * Removes a directory + * @link https://php.net/manual/en/function.ftp-rmdir.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $directory+ * The directory to delete. This must be either an absolute or relative + * path to an empty directory. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_rmdir(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory): bool {} + +/** + * Set permissions on a file via FTP + * @link https://php.net/manual/en/function.ftp-chmod.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param int $permissions+ * The new permissions, given as an octal value. + *
+ * @param string $filename+ * The remote file. + *
+ * @return int|false the new file permissions on success or FALSE on error. + */ +function ftp_chmod(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, int $permissions, string $filename): int|false {} + +/** + * Allocates space for a file to be uploaded + * @link https://php.net/manual/en/function.ftp-alloc.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param int $size+ * The number of bytes to allocate. + *
+ * @param string &$response [optional]+ * A textual representation of the servers response will be returned by + * reference in result if a variable is provided. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_alloc(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, int $size, &$response): bool {} + +/** + * Returns a list of files in the given directory + * @link https://php.net/manual/en/function.ftp-nlist.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $directory+ * The directory to be listed. This parameter can also include arguments, eg. + * ftp_nlist($conn_id, "-la /your/dir"); + * Note that this parameter isn't escaped so there may be some issues with + * filenames containing spaces and other characters. + *
+ * @return string[]|false an array of filenames from the specified directory on success or + * FALSE on error. + */ +function ftp_nlist(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory): array|false {} + +/** + * Returns a detailed list of files in the given directory + * @link https://php.net/manual/en/function.ftp-rawlist.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $directory+ * The directory path. May include arguments for the LIST + * command. + *
+ * @param bool $recursive [optional]+ * If set to TRUE, the issued command will be LIST -R. + *
+ * @return string[]|false an array where each element corresponds to one line of text. + *+ * The output is not parsed in any way. The system type identifier returned by + * ftp_systype can be used to determine how the results + * should be interpreted. + *
+ */ +function ftp_rawlist(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $directory, bool $recursive = false): array|false {} + +/** + * Returns the system type identifier of the remote FTP server + * @link https://php.net/manual/en/function.ftp-systype.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @return string|false the remote system type, or FALSE on error. + */ +function ftp_systype(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): string|false {} + +/** + * Turns passive mode on or off + * @link https://php.net/manual/en/function.ftp-pasv.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param bool $enable+ * If TRUE, the passive mode is turned on, else it's turned off. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_pasv(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, bool $enable): bool {} + +/** + * Downloads a file from the FTP server + * @link https://php.net/manual/en/function.ftp-get.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $local_filename+ * The local file path (will be overwritten if the file already exists). + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]+ * The position in the remote file to start downloading from. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_get( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $local_filename, + string $remote_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): bool {} + +/** + * Downloads a file from the FTP server and saves to an open file + * @link https://php.net/manual/en/function.ftp-fget.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param resource $stream+ * An open file pointer in which we store the data. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Since PHP 7.3 parameter is optional + *
+ * @param int $offset [optional]+ * The position in the remote file to start downloading from. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_fget( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + $stream, + string $remote_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): bool {} + +/** + * Uploads a file to the FTP server + * @link https://php.net/manual/en/function.ftp-put.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param string $local_filename+ * The local file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start uploading to.
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_put( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $remote_filename, + string $local_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): bool {} + +/** + * Uploads from an open file to the FTP server + * @link https://php.net/manual/en/function.ftp-fput.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param resource $stream+ * An open file pointer on the local file. Reading stops at end of file. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start uploading to.
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_fput( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $remote_filename, + $stream, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): bool {} + +/** + * Returns the size of the given file + * @link https://php.net/manual/en/function.ftp-size.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $filename+ * The remote file. + *
+ * @return int the file size on success, or -1 on error. + */ +function ftp_size(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $filename): int {} + +/** + * Returns the last modified time of the given file + * @link https://php.net/manual/en/function.ftp-mdtm.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $filename+ * The file from which to extract the last modification time. + *
+ * @return int the last modified time as a Unix timestamp on success, or -1 on + * error. + */ +function ftp_mdtm(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $filename): int {} + +/** + * Renames a file or a directory on the FTP server + * @link https://php.net/manual/en/function.ftp-rename.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $from+ * The old file/directory name. + *
+ * @param string $to+ * The new name. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_rename(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $from, string $to): bool {} + +/** + * Deletes a file on the FTP server + * @link https://php.net/manual/en/function.ftp-delete.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $filename+ * The file to delete. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_delete(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $filename): bool {} + +/** + * Sends a SITE command to the server + * @link https://php.net/manual/en/function.ftp-site.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $command+ * The SITE command. Note that this parameter isn't escaped so there may + * be some issues with filenames containing spaces and other characters. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_site(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, string $command): bool {} + +/** + * Closes an FTP connection + * @link https://php.net/manual/en/function.ftp-close.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ftp_close(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): bool {} + +/** + * Set miscellaneous runtime FTP options + * @link https://php.net/manual/en/function.ftp-set-option.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param int $option+ * Currently, the following options are supported: + *
| FTP_TIMEOUT_SEC | + *+ * Changes the timeout in seconds used for all network related + * functions. value must be an integer that + * is greater than 0. The default timeout is 90 seconds. + * | + *
| FTP_AUTOSEEK | + *+ * When enabled, GET or PUT requests with a + * resumepos or startpos + * parameter will first seek to the requested position within the file. + * This is enabled by default. + * | + *
+ * This parameter depends on which option is chosen + * to be altered. + *
+ * @return bool TRUE if the option could be set; FALSE if not. A warning + * message will be thrown if the option is not + * supported or the passed value doesn't match the + * expected value for the given option. + */ +function ftp_set_option(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, #[EV(flags: [FTP_TIMEOUT_SEC, FTP_AUTOSEEK, FTP_USEPASVADDRESS])] int $option, $value): bool {} + +/** + * Retrieves various runtime behaviours of the current FTP stream + * @link https://php.net/manual/en/function.ftp-get-option.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param int $option+ * Currently, the following options are supported: + *
| FTP_TIMEOUT_SEC | + *+ * Returns the current timeout used for network related operations. + * | + *
| FTP_AUTOSEEK | + *+ * Returns TRUE if this option is on, FALSE otherwise. + * | + *
+ * The link identifier of the FTP connection. + *
+ * @param resource $stream+ * An open file pointer in which we store the data. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start downloading from.
+ * @return int FTP_FAILED or FTP_FINISHED + * or FTP_MOREDATA. + */ +#[EV([FTP_FAILED, FTP_FINISHED, FTP_MOREDATA])] +function ftp_nb_fget( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + $stream, + string $remote_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): int {} + +/** + * Retrieves a file from the FTP server and writes it to a local file (non-blocking) + * @link https://php.net/manual/en/function.ftp-nb-get.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $local_filename+ * The local file path (will be overwritten if the file already exists). + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start downloading from.
+ * @return int|false FTP_FAILED or FTP_FINISHED + * or FTP_MOREDATA. + */ +#[EV([FTP_FAILED, FTP_FINISHED, FTP_MOREDATA])] +#[LanguageLevelTypeAware(["8.1" => "int|false"], default: "int")] +function ftp_nb_get( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $local_filename, + string $remote_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +) {} + +/** + * Continues retrieving/sending a file (non-blocking) + * @link https://php.net/manual/en/function.ftp-nb-continue.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @return int FTP_FAILED or FTP_FINISHED + * or FTP_MOREDATA. + */ +#[EV([FTP_FAILED, FTP_FINISHED, FTP_MOREDATA])] +function ftp_nb_continue(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): int {} + +/** + * Stores a file on the FTP server (non-blocking) + * @link https://php.net/manual/en/function.ftp-nb-put.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param string $local_filename+ * The local file path. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start uploading to.
+ * @return int|false FTP_FAILED or FTP_FINISHED + * or FTP_MOREDATA. + */ +#[EV([FTP_FAILED, FTP_FINISHED, FTP_MOREDATA])] +function ftp_nb_put( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $remote_filename, + string $local_filename, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): int|false {} + +/** + * Stores a file from an open file to the FTP server (non-blocking) + * @link https://php.net/manual/en/function.ftp-nb-fput.php + * @param resource $ftp+ * The link identifier of the FTP connection. + *
+ * @param string $remote_filename+ * The remote file path. + *
+ * @param resource $stream+ * An open file pointer on the local file. Reading stops at end of file. + *
+ * @param int $mode+ * The transfer mode. Must be either FTP_ASCII or FTP_BINARY. Optional since PHP 7.3 + *
+ * @param int $offset [optional]The position in the remote file to start uploading to.
+ * @return int FTP_FAILED or FTP_FINISHED + * or FTP_MOREDATA. + */ +#[EV([FTP_FAILED, FTP_FINISHED, FTP_MOREDATA])] +function ftp_nb_fput( + #[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp, + string $remote_filename, + $stream, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] int $mode, + #[EV([FTP_ASCII, FTP_BINARY])] #[PhpStormStubsElementAvailable(from: '7.3')] int $mode = FTP_BINARY, + int $offset = 0 +): int {} + +/** + * Alias of ftp_close + * @link https://php.net/manual/en/function.ftp-quit.php + * @param resource $ftp + * @return bool TRUE on success or FALSE on failure. + */ +function ftp_quit(#[LanguageLevelTypeAware(['8.1' => 'FTP\Connection'], default: 'resource')] $ftp): bool {} + +/** + * + * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_ASCII', 1); + +/** + * + * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_TEXT', 1); + +/** + * + * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_BINARY', 2); + +/** + * + * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_IMAGE', 2); + +/** + *+ * Automatically determine resume position and start position for GET and PUT requests + * (only works if FTP_AUTOSEEK is enabled) + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_AUTORESUME', -1); + +/** + *+ * See ftp_set_option for information. + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_TIMEOUT_SEC', 0); + +/** + *+ * See ftp_set_option for information. + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_AUTOSEEK', 1); + +define('FTP_USEPASVADDRESS', 2); + +/** + *+ * Asynchronous transfer has failed + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_FAILED', 0); + +/** + *+ * Asynchronous transfer has finished + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_FINISHED', 1); + +/** + *+ * Asynchronous transfer is still active + *
+ * @link https://php.net/manual/en/ftp.constants.php + */ +define('FTP_MOREDATA', 2); + +// End of ftp v. diff --git a/phpstorm-stubs/gd/GdFont.php b/phpstorm-stubs/gd/GdFont.php new file mode 100644 index 0000000..3a8558f --- /dev/null +++ b/phpstorm-stubs/gd/GdFont.php @@ -0,0 +1,6 @@ + + *| Attribute | + *Meaning | + *
| GD Version | + *string value describing the installed + * libgd version. | + *
| FreeType Support | + *boolean value. TRUE + * if FreeType Support is installed. | + *
| FreeType Linkage | + *string value describing the way in which + * FreeType was linked. Expected values are: 'with freetype', + * 'with TTF library', and 'with unknown library'. This element will + * only be defined if FreeType Support evaluated to + * TRUE. | + *
| T1Lib Support | + *boolean value. TRUE + * if T1Lib support is included. | + *
| GIF Read Support | + *boolean value. TRUE + * if support for reading GIF + * images is included. | + *
| GIF Create Support | + *boolean value. TRUE + * if support for creating GIF + * images is included. | + *
| JPEG Support | + *boolean value. TRUE + * if JPEG support is included. | + *
| PNG Support | + *boolean value. TRUE + * if PNG support is included. | + *
| WBMP Support | + *boolean value. TRUE + * if WBMP support is included. | + *
| XBM Support | + *boolean value. TRUE + * if XBM support is included. | + *
| WebP Support | + *boolean value. TRUE + * if WebP support is included. | + *
+ * Previous to PHP 5.3.0, the JPEG Support attribute was named + * JPG Support. + *
+ */ +#[Pure] +#[ArrayShape([ + "GD Version" => "string", + "FreeType Support" => "bool", + "GIF Read Support" => "bool", + "GIF Create Support" => "bool", + "JPEG Support" => "bool", + "PNG Support" => "bool", + "WBMP Support" => "bool", + "XPM Support" => "bool", + "XBM Support" => "bool", + "WebP Support" => "bool", + "BMP Support" => "bool", + "TGA Read Support" => "bool", + "AVIF Support" => "bool", + "JIS-mapped Japanese Font Support" => "bool" +])] +function gd_info(): array {} + +/** + * Draws an arc + * @link https://php.net/manual/en/function.imagearc.php + * @param resource|GdImage $image + * @param int $center_x+ * x-coordinate of the center. + *
+ * @param int $center_y+ * y-coordinate of the center. + *
+ * @param int $width+ * The arc width. + *
+ * @param int $height+ * The arc height. + *
+ * @param int $start_angle+ * The arc start angle, in degrees. + *
+ * @param int $end_angle+ * The arc end angle, in degrees. + * 0° is located at the three-o'clock position, and the arc is drawn + * clockwise. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imagearc(GdImage $image, int $center_x, int $center_y, int $width, int $height, int $start_angle, int $end_angle, int $color): bool {} + +/** + * Draw an ellipse + * @link https://php.net/manual/en/function.imageellipse.php + * @param resource|GdImage $image + * @param int $center_x+ * x-coordinate of the center. + *
+ * @param int $center_y+ * y-coordinate of the center. + *
+ * @param int $width+ * The ellipse width. + *
+ * @param int $height+ * The ellipse height. + *
+ * @param int $color+ * The color of the ellipse. A color identifier created with + * imagecolorallocate. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imageellipse(GdImage $image, int $center_x, int $center_y, int $width, int $height, int $color): bool {} + +/** + * Draw a character horizontally + * @link https://php.net/manual/en/function.imagechar.php + * @param resource|GdImage $image + * @param int $font + * @param int $x+ * x-coordinate of the start. + *
+ * @param int $y+ * y-coordinate of the start. + *
+ * @param string $char+ * The character to draw. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imagechar( + GdImage $image, + #[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font, + int $x, + int $y, + string $char, + int $color +): bool {} + +/** + * Draw a character vertically + * @link https://php.net/manual/en/function.imagecharup.php + * @param resource|GdImage $image + * @param int $font + * @param int $x+ * x-coordinate of the start. + *
+ * @param int $y+ * y-coordinate of the start. + *
+ * @param string $char+ * The character to draw. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imagecharup( + GdImage $image, + #[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font, + int $x, + int $y, + string $char, + int $color +): bool {} + +/** + * Get the index of the color of a pixel + * @link https://php.net/manual/en/function.imagecolorat.php + * @param resource|GdImage $image + * @param int $x+ * x-coordinate of the point. + *
+ * @param int $y+ * y-coordinate of the point. + *
+ * @return int|false the index of the color or FALSE on failure + */ +#[Pure] +function imagecolorat(GdImage $image, int $x, int $y): int|false {} + +/** + * Allocate a color for an image + * @link https://php.net/manual/en/function.imagecolorallocate.php + * @param resource|GdImage $image + * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @return int|false A color identifier or FALSE if the allocation failed. + */ +function imagecolorallocate(GdImage $image, int $red, int $green, int $blue): int|false {} + +/** + * Copy the palette from one image to another + * @link https://php.net/manual/en/function.imagepalettecopy.php + * @param resource|GdImage $dst+ * The destination image resource. + *
+ * @param resource|GdImage $src+ * The source image resource. + *
+ * @return void No value is returned. + */ +function imagepalettecopy(GdImage $dst, GdImage $src): void {} + +/** + * Create a new image from the image stream in the string + * @link https://php.net/manual/en/function.imagecreatefromstring.php + * @param string $data+ * A string containing the image data. + *
+ * @return resource|GdImage|false An image resource will be returned on success. FALSE is returned if + * the image type is unsupported, the data is not in a recognised format, + * or the image is corrupt and cannot be loaded. + */ +#[Pure] +function imagecreatefromstring(string $data): GdImage|false {} + +/** + * Get the index of the closest color to the specified color + * @link https://php.net/manual/en/function.imagecolorclosest.php + * @param resource|GdImage $image + * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @return int|false the index of the closest color, in the palette of the image, to + * the specified one or FALSE on failure + */ +#[Pure] +function imagecolorclosest(GdImage $image, int $red, int $green, int $blue): int {} + +/** + * Get the index of the color which has the hue, white and blackness + * @link https://php.net/manual/en/function.imagecolorclosesthwb.php + * @param resource|GdImage $image + * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @return int|false an integer with the index of the color which has + * the hue, white and blackness nearest the given color or FALSE on failure + */ +#[Pure] +function imagecolorclosesthwb(GdImage $image, int $red, int $green, int $blue): int {} + +/** + * De-allocate a color for an image + * @link https://php.net/manual/en/function.imagecolordeallocate.php + * @param resource|GdImage $image + * @param int $color+ * The color identifier. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imagecolordeallocate(GdImage $image, int $color): bool {} + +/** + * Get the index of the specified color or its closest possible alternative + * @link https://php.net/manual/en/function.imagecolorresolve.php + * @param resource|GdImage $image + * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @return int|false a color index or FALSE on failure + */ +#[Pure] +function imagecolorresolve(GdImage $image, int $red, int $green, int $blue): int {} + +/** + * Get the index of the specified color + * @link https://php.net/manual/en/function.imagecolorexact.php + * @param resource|GdImage $image + * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @return int|false the index of the specified color in the palette, -1 if the + * color does not exist, or FALSE on failure + */ +#[Pure] +function imagecolorexact(GdImage $image, int $red, int $green, int $blue): int {} + +/** + * Set the color for the specified palette index + * @link https://php.net/manual/en/function.imagecolorset.php + * @param resource|GdImage $image + * @param int $color+ * An index in the palette. + *
+ * @param int $redValue of red component.
+ * @param int $greenValue of green component.
+ * @param int $blueValue of blue component.
+ * @param int $alpha [optional]+ * Value of alpha component. + *
+ * @return bool|null + */ +#[LanguageLevelTypeAware(['8.2' => 'null|false'], default: 'null|bool')] +function imagecolorset(GdImage $image, int $color, int $red, int $green, int $blue, int $alpha = 0): ?bool {} + +/** + * Define a color as transparent + * @link https://php.net/manual/en/function.imagecolortransparent.php + * @param resource|GdImage $image + * @param int $color [optional]+ * A color identifier created with + * imagecolorallocate. + *
+ * @return int The identifier of the new (or current, if none is specified) + * transparent color is returned. If color + * is not specified, and the image has no transparent color, the + * returned identifier will be -1. + */ +function imagecolortransparent(GdImage $image, ?int $color = null): int {} + +/** + * Find out the number of colors in an image's palette + * @link https://php.net/manual/en/function.imagecolorstotal.php + * @param resource|GdImage $image+ * An image resource, returned by one of the image creation functions, such + * as imagecreatefromgif. + *
+ * @return int|false the number of colors in the specified image's palette, 0 for + * truecolor images, or FALSE on failure + */ +#[Pure] +function imagecolorstotal(GdImage $image): int {} + +/** + * Get the colors for an index + * @link https://php.net/manual/en/function.imagecolorsforindex.php + * @param resource|GdImage $image + * @param int $color+ * The color index. + *
+ * @return array|false an associative array with red, green, blue and alpha keys that + * contain the appropriate values for the specified color index or FALSE on failure + */ +#[Pure] +#[LanguageLevelTypeAware(['8.0' => 'array'], default: 'array|false')] +#[ArrayShape(["red" => "int", "green" => "int", "blue" => "int", "alpha" => "int"])] +function imagecolorsforindex(GdImage $image, int $color) {} + +/** + * Copy part of an image + * @link https://php.net/manual/en/function.imagecopy.php + * @param resource|GdImage $dst_image+ * Destination image link resource. + *
+ * @param resource|GdImage $src_image+ * Source image link resource. + *
+ * @param int $dst_x+ * x-coordinate of destination point. + *
+ * @param int $dst_y+ * y-coordinate of destination point. + *
+ * @param int $src_x+ * x-coordinate of source point. + *
+ * @param int $src_y+ * y-coordinate of source point. + *
+ * @param int $src_width+ * Source width. + *
+ * @param int $src_height+ * Source height. + *
+ * @return bool true on success or false on failure. + */ +function imagecopy(GdImage $dst_image, GdImage $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height): bool {} + +/** + * Copy and merge part of an image + * @link https://php.net/manual/en/function.imagecopymerge.php + * @param resource|GdImage $dst_image+ * Destination image link resource. + *
+ * @param resource|GdImage $src_image+ * Source image link resource. + *
+ * @param int $dst_x+ * x-coordinate of destination point. + *
+ * @param int $dst_y+ * y-coordinate of destination point. + *
+ * @param int $src_x+ * x-coordinate of source point. + *
+ * @param int $src_y+ * y-coordinate of source point. + *
+ * @param int $src_width+ * Source width. + *
+ * @param int $src_height+ * Source height. + *
+ * @param int $pct+ * The two images will be merged according to pct + * which can range from 0 to 100. When pct = 0, + * no action is taken, when 100 this function behaves identically + * to imagecopy for pallete images, while it + * implements alpha transparency for true colour images. + *
+ * @return bool true on success or false on failure. + */ +function imagecopymerge(GdImage $dst_image, GdImage $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height, int $pct): bool {} + +/** + * Copy and merge part of an image with gray scale + * @link https://php.net/manual/en/function.imagecopymergegray.php + * @param resource|GdImage $dst_image+ * Destination image link resource. + *
+ * @param resource|GdImage $src_image+ * Source image link resource. + *
+ * @param int $dst_x+ * x-coordinate of destination point. + *
+ * @param int $dst_y+ * y-coordinate of destination point. + *
+ * @param int $src_x+ * x-coordinate of source point. + *
+ * @param int $src_y+ * y-coordinate of source point. + *
+ * @param int $src_width+ * Source width. + *
+ * @param int $src_height+ * Source height. + *
+ * @param int $pct+ * The src_im will be changed to grayscale according + * to pct where 0 is fully grayscale and 100 is + * unchanged. When pct = 100 this function behaves + * identically to imagecopy for pallete images, while + * it implements alpha transparency for true colour images. + *
+ * @return bool true on success or false on failure. + */ +function imagecopymergegray(GdImage $dst_image, GdImage $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $src_width, int $src_height, int $pct): bool {} + +/** + * Copy and resize part of an image + * @link https://php.net/manual/en/function.imagecopyresized.php + * @param resource|GdImage $dst_image + * @param resource|GdImage $src_image + * @param int $dst_x+ * x-coordinate of destination point. + *
+ * @param int $dst_y+ * y-coordinate of destination point. + *
+ * @param int $src_x+ * x-coordinate of source point. + *
+ * @param int $src_y+ * y-coordinate of source point. + *
+ * @param int $dst_width+ * Destination width. + *
+ * @param int $dst_height+ * Destination height. + *
+ * @param int $src_width+ * Source width. + *
+ * @param int $src_height+ * Source height. + *
+ * @return bool true on success or false on failure. + */ +function imagecopyresized(GdImage $dst_image, GdImage $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_width, int $dst_height, int $src_width, int $src_height): bool {} + +/** + * Create a new palette based image + * @link https://php.net/manual/en/function.imagecreate.php + * @param int $width+ * The image width. + *
+ * @param int $height+ * The image height. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +#[Pure] +function imagecreate(int $width, int $height): GdImage|false {} + +/** + * Create a new true color image + * @link https://php.net/manual/en/function.imagecreatetruecolor.php + * @param int $width+ * Image width. + *
+ * @param int $height+ * Image height. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +#[Pure] +function imagecreatetruecolor(int $width, int $height): GdImage|false {} + +/** + * Finds whether an image is a truecolor image + * @link https://php.net/manual/en/function.imageistruecolor.php + * @param resource|GdImage $image + * @return bool true if the image is truecolor, false + * otherwise. + */ +#[Pure] +function imageistruecolor(GdImage $image): bool {} + +/** + * Convert a true color image to a palette image + * @link https://php.net/manual/en/function.imagetruecolortopalette.php + * @param resource|GdImage $image + * @param bool $dither+ * Indicates if the image should be dithered - if it is true then + * dithering will be used which will result in a more speckled image but + * with better color approximation. + *
+ * @param int $num_colors+ * Sets the maximum number of colors that should be retained in the palette. + *
+ * @return bool true on success or false on failure. + */ +function imagetruecolortopalette(GdImage $image, bool $dither, int $num_colors): bool {} + +/** + * Set the thickness for line drawing + * @link https://php.net/manual/en/function.imagesetthickness.php + * @param resource|GdImage $image + * @param int $thickness+ * Thickness, in pixels. + *
+ * @return bool true on success or false on failure. + */ +function imagesetthickness(GdImage $image, int $thickness): bool {} + +/** + * Draw a partial arc and fill it + * @link https://php.net/manual/en/function.imagefilledarc.php + * @param resource|GdImage $image + * @param int $center_x+ * x-coordinate of the center. + *
+ * @param int $center_y+ * y-coordinate of the center. + *
+ * @param int $width+ * The arc width. + *
+ * @param int $height+ * The arc height. + *
+ * @param int $start_angle+ * The arc start angle, in degrees. + *
+ * @param int $end_angle+ * The arc end angle, in degrees. + * 0° is located at the three-o'clock position, and the arc is drawn + * clockwise. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @param int $style+ * A bitwise OR of the following possibilities: + * IMG_ARC_PIE
+ * @return bool true on success or false on failure. + */ +function imagefilledarc(GdImage $image, int $center_x, int $center_y, int $width, int $height, int $start_angle, int $end_angle, int $color, int $style): bool {} + +/** + * Draw a filled ellipse + * @link https://php.net/manual/en/function.imagefilledellipse.php + * @param resource|GdImage $image + * @param int $center_x+ * x-coordinate of the center. + *
+ * @param int $center_y+ * y-coordinate of the center. + *
+ * @param int $width+ * The ellipse width. + *
+ * @param int $height+ * The ellipse height. + *
+ * @param int $color+ * The fill color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagefilledellipse(GdImage $image, int $center_x, int $center_y, int $width, int $height, int $color): bool {} + +/** + * Set the blending mode for an image + * @link https://php.net/manual/en/function.imagealphablending.php + * @param resource|GdImage $image + * @param bool $enable+ * Whether to enable the blending mode or not. On true color images + * the default value is true otherwise the default value is false + *
+ * @return bool true on success or false on failure. + */ +function imagealphablending(GdImage $image, bool $enable): bool {} + +/** + * Set the flag to save full alpha channel information (as opposed to single-color transparency) when saving PNG images + * @link https://php.net/manual/en/function.imagesavealpha.php + * @param resource|GdImage $image + * @param bool $enable+ * Whether to save the alpha channel or not. Default to false. + *
+ * @return bool true on success or false on failure. + */ +function imagesavealpha(GdImage $image, bool $enable): bool {} + +/** + * Allocate a color for an image + * @link https://php.net/manual/en/function.imagecolorallocatealpha.php + * @param resource|GdImage $image + * @param int $red+ * Value of red component. + *
+ * @param int $green+ * Value of green component. + *
+ * @param int $blue+ * Value of blue component. + *
+ * @param int $alpha+ * A value between 0 and 127. + * 0 indicates completely opaque while + * 127 indicates completely transparent. + *
+ * @return int|false A color identifier or false if the allocation failed. + */ +function imagecolorallocatealpha(GdImage $image, int $red, int $green, int $blue, int $alpha): int|false {} + +/** + * Get the index of the specified color + alpha or its closest possible alternative + * @link https://php.net/manual/en/function.imagecolorresolvealpha.php + * @param resource|GdImage $image + * @param int $red+ * Value of red component. + *
+ * @param int $green+ * Value of green component. + *
+ * @param int $blue+ * Value of blue component. + *
+ * @param int $alpha+ * A value between 0 and 127. + * 0 indicates completely opaque while + * 127 indicates completely transparent. + *
+ * @return int|false a color index or FALSE on failure + */ +#[Pure] +function imagecolorresolvealpha(GdImage $image, int $red, int $green, int $blue, int $alpha): int {} + +/** + * Get the index of the closest color to the specified color + alpha + * @link https://php.net/manual/en/function.imagecolorclosestalpha.php + * @param resource|GdImage $image + * @param int $red+ * Value of red component. + *
+ * @param int $green+ * Value of green component. + *
+ * @param int $blue+ * Value of blue component. + *
+ * @param int $alpha+ * A value between 0 and 127. + * 0 indicates completely opaque while + * 127 indicates completely transparent. + *
+ * @return int|false the index of the closest color in the palette or + * FALSE on failure + */ +#[Pure] +function imagecolorclosestalpha(GdImage $image, int $red, int $green, int $blue, int $alpha): int {} + +/** + * Get the index of the specified color + alpha + * @link https://php.net/manual/en/function.imagecolorexactalpha.php + * @param resource|GdImage $image + * @param int $red+ * Value of red component. + *
+ * @param int $green+ * Value of green component. + *
+ * @param int $blue+ * Value of blue component. + *
+ * @param int $alpha+ * A value between 0 and 127. + * 0 indicates completely opaque while + * 127 indicates completely transparent. + *
+ * @return int|false the index of the specified color+alpha in the palette of the + * image, -1 if the color does not exist in the image's palette, or FALSE + * on failure + */ +#[Pure] +#[LanguageLevelTypeAware(['8.0' => 'int'], default: 'int|false')] +function imagecolorexactalpha(GdImage $image, int $red, int $green, int $blue, int $alpha) {} + +/** + * Copy and resize part of an image with resampling + * @link https://php.net/manual/en/function.imagecopyresampled.php + * @param resource|GdImage $dst_image + * @param resource|GdImage $src_image + * @param int $dst_x+ * x-coordinate of destination point. + *
+ * @param int $dst_y+ * y-coordinate of destination point. + *
+ * @param int $src_x+ * x-coordinate of source point. + *
+ * @param int $src_y+ * y-coordinate of source point. + *
+ * @param int $dst_width+ * Destination width. + *
+ * @param int $dst_height+ * Destination height. + *
+ * @param int $src_width+ * Source width. + *
+ * @param int $src_height+ * Source height. + *
+ * @return bool true on success or false on failure. + */ +function imagecopyresampled(GdImage $dst_image, GdImage $src_image, int $dst_x, int $dst_y, int $src_x, int $src_y, int $dst_width, int $dst_height, int $src_width, int $src_height): bool {} + +/** + * Rotate an image with a given angle + * @link https://php.net/manual/en/function.imagerotate.php + * @param resource|GdImage $image + * @param float $angle+ * Rotation angle, in degrees. + *
+ * @param int $background_color+ * Specifies the color of the uncovered zone after the rotation + *
+ * @param bool $ignore_transparent [optional]+ * Prior to PHP 8.3 if set and non-zero, transparent colors are ignored (otherwise kept). + *
+ * @return resource|GdImage|false the rotated image or FALSE on failure + */ +function imagerotate( + GdImage $image, + float $angle, + int $background_color, + #[PhpStormStubsElementAvailable(to: '8.2')] bool $ignore_transparent = false +): GdImage|false {} + +/** + * Should antialias functions be used or not.+ * Whether to enable antialiasing or not. + *
+ * @return bool true on success or false on failure. + */ +function imageantialias(GdImage $image, bool $enable): bool {} + +/** + * Set the tile image for filling + * @link https://php.net/manual/en/function.imagesettile.php + * @param resource|GdImage $image + * @param resource|GdImage $tile+ * The image resource to be used as a tile. + *
+ * @return bool true on success or false on failure. + */ +function imagesettile(GdImage $image, GdImage $tile): bool {} + +/** + * Set the brush image for line drawing + * @link https://php.net/manual/en/function.imagesetbrush.php + * @param resource|GdImage $image + * @param resource|GdImage $brush+ * An image resource. + *
+ * @return bool true on success or false on failure. + */ +function imagesetbrush(GdImage $image, GdImage $brush): bool {} + +/** + * Set the style for line drawing + * @link https://php.net/manual/en/function.imagesetstyle.php + * @param resource|GdImage $image + * @param int[] $style+ * An array of pixel colors. You can use the + * IMG_COLOR_TRANSPARENT constant to add a + * transparent pixel. + *
+ * @return bool true on success or false on failure. + */ +function imagesetstyle(GdImage $image, array $style): bool {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefrompng.php + * @param string $filename+ * Path to the PNG image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefrompng(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://www.php.net/manual/function.imagecreatefromavif.php + * @param string $filename Path to the AVIF raster image. + * @return GdImage|false returns an image object representing the image obtained from the given filename + * @since 8.1 + */ +function imagecreatefromavif(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromgif.php + * @param string $filename+ * Path to the GIF image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromgif(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromjpeg.php + * @param string $filename+ * Path to the JPEG image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromjpeg(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromwbmp.php + * @param string $filename+ * Path to the WBMP image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromwbmp(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromwebp.php + * @param string $filename+ * Path to the WebP image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + * @since 5.4 + */ +function imagecreatefromwebp(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromxbm.php + * @param string $filename+ * Path to the XBM image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromxbm(string $filename): GdImage|false {} + +/** + * Create a new image from file or URL + * @link https://php.net/manual/en/function.imagecreatefromxpm.php + * @param string $filename+ * Path to the XPM image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromxpm(string $filename): GdImage|false {} + +/** + * Create a new image from GD file or URL + * @link https://php.net/manual/en/function.imagecreatefromgd.php + * @param string $filename+ * Path to the GD file. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromgd(string $filename): GdImage|false {} + +/** + * Create a new image from GD2 file or URL + * @link https://php.net/manual/en/function.imagecreatefromgd2.php + * @param string $filename+ * Path to the GD2 image. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromgd2(string $filename): GdImage|false {} + +/** + * Create a new image from a given part of GD2 file or URL + * @link https://php.net/manual/en/function.imagecreatefromgd2part.php + * @param string $filename+ * Path to the GD2 image. + *
+ * @param int $x+ * x-coordinate of source point. + *
+ * @param int $y+ * y-coordinate of source point. + *
+ * @param int $width+ * Source width. + *
+ * @param int $height+ * Source height. + *
+ * @return resource|GdImage|false an image resource identifier on success, false on errors. + */ +function imagecreatefromgd2part(string $filename, int $x, int $y, int $width, int $height): GdImage|false {} + +/** + * Output a PNG image to either the browser or a file + * @link https://php.net/manual/en/function.imagepng.php + * @param resource|GdImage $image + * @param string $file [optional]+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ *+ * null is invalid if the quality and + * filters arguments are not used. + *
+ * @param int $quality [optional]+ * Compression level: from 0 (no compression) to 9. + *
+ * @param int $filters [optional]+ * Allows reducing the PNG file size. It is a bitmask field which may be + * set to any combination of the PNG_FILTER_XXX + * constants. PNG_NO_FILTER or + * PNG_ALL_FILTERS may also be used to respectively + * disable or activate all filters. + *
+ * @return bool true on success or false on failure. + */ +function imagepng(GdImage $image, $file = null, int $quality = -1, int $filters = -1): bool {} + +/** + * Output a WebP image to browser or file + * @link https://php.net/manual/en/function.imagewebp.php + * @param resource|GdImage $image + * @param resource|string|null $file [optional]+ * The path or an open stream resource (which is automatically closed after this function returns) + * to save the file to. If not set or null, the raw image stream will be output directly. + *
+ * @param int $quality [optional]+ * quality ranges from 0 (worst quality, smaller file) to 100 (best quality, biggest file). + *
+ * @return bool true on success or false on failure. + * @since 5.4 + */ +function imagewebp(GdImage $image, $file = null, int $quality = -1): bool {} + +/** + * Output image to browser or file + * @link https://php.net/manual/en/function.imagegif.php + * @param resource|GdImage $image + * @param string $file [optional]+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ * @return bool true on success or false on failure. + */ +function imagegif(GdImage $image, $file = null): bool {} + +/** + * Output image to browser or file + * @link https://php.net/manual/en/function.imagejpeg.php + * @param resource|GdImage $image + * @param string $file [optional]+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ *+ * To skip this argument in order to provide the + * quality parameter, use null. + *
+ * @param int $quality [optional]+ * quality is optional, and ranges from 0 (worst + * quality, smaller file) to 100 (best quality, biggest file). The + * default is the default IJG quality value (about 75). + *
+ * @return bool true on success or false on failure. + */ +function imagejpeg(GdImage $image, $file = null, int $quality = -1): bool {} + +/** + * Output image to browser or file + * @link https://php.net/manual/en/function.imagewbmp.php + * @param resource|GdImage $image + * @param string $file [optional]+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ * @param int $foreground_color [optional]+ * You can set the foreground color with this parameter by setting an + * identifier obtained from imagecolorallocate. + * The default foreground color is black. + *
+ * @return bool true on success or false on failure. + */ +function imagewbmp(GdImage $image, $file = null, ?int $foreground_color = null): bool {} + +/** + * Output GD image to browser or file.+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ * @return bool true on success or false on failure. + */ +function imagegd(GdImage $image, ?string $file = null): bool {} + +/** + * Output GD2 image to browser or file + * @link https://php.net/manual/en/function.imagegd2.php + * @param resource|GdImage $image + * @param string|null $file [optional]+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ * @param int $chunk_size [optional]+ * Chunk size. + *
+ * @param int $mode [optional]+ * Either IMG_GD2_RAW or + * IMG_GD2_COMPRESSED. Default is + * IMG_GD2_RAW. + *
+ * @return bool true on success or false on failure. + */ +function imagegd2(GdImage $image, ?string $file = null, int $chunk_size = 128, int $mode = IMG_GD2_RAW): bool {} + +/** + * Destroy an image + * @link https://php.net/manual/en/function.imagedestroy.php + * @param resource|GdImage $image + * @return bool true on success or false on failure. + */ +function imagedestroy(GdImage $image): bool {} + +/** + * Apply a gamma correction to a GD image + * @link https://php.net/manual/en/function.imagegammacorrect.php + * @param resource|GdImage $image + * @param float $input_gamma+ * The input gamma. + *
+ * @param float $output_gamma+ * The output gamma. + *
+ * @return bool true on success or false on failure. + */ +function imagegammacorrect(GdImage $image, float $input_gamma, float $output_gamma): bool {} + +/** + * Flood fill + * @link https://php.net/manual/en/function.imagefill.php + * @param resource|GdImage $image + * @param int $x+ * x-coordinate of start point. + *
+ * @param int $y+ * y-coordinate of start point. + *
+ * @param int $color+ * The fill color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagefill(GdImage $image, int $x, int $y, int $color): bool {} + +/** + * Draw a filled polygon + * @link https://php.net/manual/en/function.imagefilledpolygon.php + * @param resource|GdImage $image + * @param int[] $points+ * An array containing the x and y + * coordinates of the polygons vertices consecutively. + *
+ * @param int $num_points_or_color+ * Total number of vertices, which must be at least 3. + *
+ * @param int|null $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagefilledpolygon( + GdImage $image, + array $points, + #[Deprecated(since: "8.1")] int $num_points_or_color, + ?int $color +): bool {} + +/** + * Draw a filled polygon + * @link https://php.net/manual/en/function.imagefilledpolygon.php + * @param GdImage $image + * @param int[] $points+ * An array containing the x and y + * coordinates of the polygons vertices consecutively. + *
+ * @param int|null $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +#[PhpStormStubsElementAvailable(from: '8.0')] +function imagefilledpolygon( + GdImage $image, + array $points, + ?int $color +): bool {} + +/** + * Draw a filled rectangle + * @link https://php.net/manual/en/function.imagefilledrectangle.php + * @param resource|GdImage $image + * @param int $x1+ * x-coordinate for point 1. + *
+ * @param int $y1+ * y-coordinate for point 1. + *
+ * @param int $x2+ * x-coordinate for point 2. + *
+ * @param int $y2+ * y-coordinate for point 2. + *
+ * @param int $color+ * The fill color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagefilledrectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color): bool {} + +/** + * Flood fill to specific color + * @link https://php.net/manual/en/function.imagefilltoborder.php + * @param resource|GdImage $image + * @param int $x+ * x-coordinate of start. + *
+ * @param int $y+ * y-coordinate of start. + *
+ * @param int $border_color+ * The border color. A color identifier created with + * imagecolorallocate. + *
+ * @param int $color+ * The fill color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagefilltoborder(GdImage $image, int $x, int $y, int $border_color, int $color): bool {} + +/** + * Get font width + * @link https://php.net/manual/en/function.imagefontwidth.php + * @param int $font + * @return int the width of the pixel + */ +#[Pure] +function imagefontwidth(#[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font): int {} + +/** + * Get font height + * @link https://php.net/manual/en/function.imagefontheight.php + * @param int $font + * @return int the height of the pixel. + */ +#[Pure] +function imagefontheight(#[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font): int {} + +/** + * Enable or disable interlace + * @link https://php.net/manual/en/function.imageinterlace.php + * @param resource|GdImage $image + * @param bool|null $enable [optional]+ * If non-zero, the image will be interlaced, else the interlace bit is + * turned off. + *
+ * @return bool 1 if the interlace bit is set for the image, + * 0 if it is not + */ +function imageinterlace(GdImage $image, ?bool $enable = null): bool {} + +/** + * Draw a line + * @link https://php.net/manual/en/function.imageline.php + * @param resource|GdImage $image + * @param int $x1+ * x-coordinate for first point. + *
+ * @param int $y1+ * y-coordinate for first point. + *
+ * @param int $x2+ * x-coordinate for second point. + *
+ * @param int $y2+ * y-coordinate for second point. + *
+ * @param int $color+ * The line color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imageline(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color): bool {} + +/** + * Load a new font + * @link https://php.net/manual/en/function.imageloadfont.php + * @param string $filename+ * The font file format is currently binary and architecture + * dependent. This means you should generate the font files on the + * same type of CPU as the machine you are running PHP on. + *
+ *+ *
| byte position | + *C data type | + *description | + *
| byte 0-3 | + *int | + *number of characters in the font | + *
| byte 4-7 | + *int | + *+ * value of first character in the font (often 32 for space) + * | + *
| byte 8-11 | + *int | + *pixel width of each character | + *
| byte 12-15 | + *int | + *pixel height of each character | + *
| byte 16- | + *char | + *+ * array with character data, one byte per pixel in each + * character, for a total of (nchars*width*height) bytes. + * | + *
+ * An array containing the polygon's vertices, e.g.: + *
+ * Total number of points (vertices). + *
+ * @param int|null $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagepolygon( + GdImage $image, + array $points, + int $num_points_or_color, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] ?int $color, + #[PhpStormStubsElementAvailable(from: '8.0')] ?int $color = null +): bool {} + +/** + * Draw a rectangle + * @link https://php.net/manual/en/function.imagerectangle.php + * @param resource|GdImage $image + * @param int $x1+ * Upper left x coordinate. + *
+ * @param int $y1+ * Upper left y coordinate + * 0, 0 is the top left corner of the image. + *
+ * @param int $x2+ * Bottom right x coordinate. + *
+ * @param int $y2+ * Bottom right y coordinate. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagerectangle(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color): bool {} + +/** + * Set a single pixel + * @link https://php.net/manual/en/function.imagesetpixel.php + * @param resource|GdImage $image + * @param int $x+ * x-coordinate. + *
+ * @param int $y+ * y-coordinate. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagesetpixel(GdImage $image, int $x, int $y, int $color): bool {} + +/** + * Draw a string horizontally + * @link https://php.net/manual/en/function.imagestring.php + * @param resource|GdImage $image + * @param int $font+ * Can be 1, 2, 3, 4, 5 for built-in fonts in latin2 encoding (where higher numbers corresponding to larger fonts) or (since 8.1) GdFont instance + *
+ * @param int $x+ * x-coordinate of the upper left corner. + *
+ * @param int $y+ * y-coordinate of the upper left corner. + *
+ * @param string $string+ * The string to be written. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagestring( + GdImage $image, + #[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font, + int $x, + int $y, + string $string, + int $color +): bool {} + +/** + * Draw a string vertically + * @link https://php.net/manual/en/function.imagestringup.php + * @param resource|GdImage $image + * @param int $font + * @param int $x+ * x-coordinate of the upper left corner. + *
+ * @param int $y+ * y-coordinate of the upper left corner. + *
+ * @param string $string+ * The string to be written. + *
+ * @param int $color+ * A color identifier created with + * imagecolorallocate. + *
+ * @return bool true on success or false on failure. + */ +function imagestringup( + GdImage $image, + #[LanguageLevelTypeAware(['8.1' => 'GdFont|int'], default: 'int')] $font, + int $x, + int $y, + string $string, + int $color +): bool {} + +/** + * Get image width + * @link https://php.net/manual/en/function.imagesx.php + * @param resource|GdImage $image + * @return int|false Return the width of the image or false on + * errors. + */ +#[Pure] +function imagesx(GdImage $image): int {} + +/** + * Get image height + * @link https://php.net/manual/en/function.imagesy.php + * @param resource|GdImage $image + * @return int|false Return the height of the image or false on + * errors. + */ +#[Pure] +function imagesy(GdImage $image): int {} + +/** + * Draw a dashed line + * @link https://php.net/manual/en/function.imagedashedline.php + * @param resource|GdImage $image + * @param int $x1+ * Upper left x coordinate. + *
+ * @param int $y1+ * Upper left y coordinate 0, 0 is the top left corner of the image. + *
+ * @param int $x2+ * Bottom right x coordinate. + *
+ * @param int $y2+ * Bottom right y coordinate. + *
+ * @param int $color+ * The fill color. A color identifier created with + * imagecolorallocate. + *
+ * @return bool TRUE on success or FALSE on failure. + * @see imagesetstyle() + * @see imageline() + */ +#[Deprecated("Use combination of imagesetstyle() and imageline() instead")] +function imagedashedline(GdImage $image, int $x1, int $y1, int $x2, int $y2, int $color): bool {} + +/** + * Give the bounding box of a text using TrueType fonts + * @link https://php.net/manual/en/function.imagettfbbox.php + * @param float $size+ * The font size. Depending on your version of GD, this should be + * specified as the pixel size (GD1) or point size (GD2). + *
+ * @param float $angle+ * Angle in degrees in which text will be measured. + *
+ * @param string $font_filename+ * The name of the TrueType font file (can be a URL). Depending on + * which version of the GD library that PHP is using, it may attempt to + * search for files that do not begin with a leading '/' by appending + * '.ttf' to the filename and searching along a library-defined font path. + *
+ * @param string $string+ * The string to be measured. + *
+ * @param array $options [optional] + * @return array|false imagettfbbox returns an array with 8 + * elements representing four points making the bounding box of the + * text on success and false on error. + *+ * The points are relative to the text regardless of the + * angle, so "upper left" means in the top left-hand + * corner seeing the text horizontally. + */ +#[Pure] +function imagettfbbox(float $size, float $angle, string $font_filename, string $string, #[PhpStormStubsElementAvailable(from: '8.0')] array $options = []): array|false {} + +/** + * Write text to the image using TrueType fonts + * @link https://php.net/manual/en/function.imagettftext.php + * @param resource|GdImage $image + * @param float $size
+ * The font size. Depending on your version of GD, this should be + * specified as the pixel size (GD1) or point size (GD2). + *
+ * @param float $angle+ * The angle in degrees, with 0 degrees being left-to-right reading text. + * Higher values represent a counter-clockwise rotation. For example, a + * value of 90 would result in bottom-to-top reading text. + *
+ * @param int $x+ * The coordinates given by x and + * y will define the basepoint of the first + * character (roughly the lower-left corner of the character). This + * is different from the imagestring, where + * x and y define the + * upper-left corner of the first character. For example, "top left" + * is 0, 0. + *
+ * @param int $y+ * The y-ordinate. This sets the position of the fonts baseline, not the + * very bottom of the character. + *
+ * @param int $color+ * The color index. Using the negative of a color index has the effect of + * turning off antialiasing. See imagecolorallocate. + *
+ * @param string $font_filename+ * The path to the TrueType font you wish to use. + *
+ *+ * Depending on which version of the GD library PHP is using, when + * font_filename does not begin with a leading + * / then .ttf will be appended + * to the filename and the library will attempt to search for that + * filename along a library-defined font path. + *
+ *+ * When using versions of the GD library lower than 2.0.18, a space character, + * rather than a semicolon, was used as the 'path separator' for different font files. + * Unintentional use of this feature will result in the warning message: + * Warning: Could not find/open font. For these affected versions, the + * only solution is moving the font to a path which does not contain spaces. + *
+ *+ * In many cases where a font resides in the same directory as the script using it + * the following trick will alleviate any include problems. + *
+ *+ * + *+ *
+ * Note:
+ * open_basedir does not apply to font_filename.
+ *
+ * The text string in UTF-8 encoding. + *
+ *+ * May include decimal numeric character references (of the form: + * €) to access characters in a font beyond position 127. + * The hexadecimal format (like ©) is supported. + * Strings in UTF-8 encoding can be passed directly. + *
+ *+ * Named entities, such as ©, are not supported. Consider using + * html_entity_decode + * to decode these named entities into UTF-8 strings (html_entity_decode() + * supports this as of PHP 5.0.0). + *
+ *+ * If a character is used in the string which is not supported by the + * font, a hollow rectangle will replace the character. + *
+ * @param array $options [optional] + * @return array|false an array with 8 elements representing four points making the + * bounding box of the text. The order of the points is lower left, lower + * right, upper right, upper left. The points are relative to the text + * regardless of the angle, so "upper left" means in the top left-hand + * corner when you see the text horizontally. + * Returns false on error. + */ +function imagettftext(GdImage $image, float $size, float $angle, int $x, int $y, int $color, string $font_filename, string $text, #[PhpStormStubsElementAvailable(from: '8.0')] array $options = []): array|false {} + +/** + * Give the bounding box of a text using fonts via freetype2 + * @link https://php.net/manual/en/function.imageftbbox.php + * @param float $size+ * The font size. Depending on your version of GD, this should be + * specified as the pixel size (GD1) or point size (GD2). + *
+ * @param float $angle+ * Angle in degrees in which text will be + * measured. + *
+ * @param string $font_filename+ * The name of the TrueType font file (can be a URL). Depending on + * which version of the GD library that PHP is using, it may attempt to + * search for files that do not begin with a leading '/' by appending + * '.ttf' to the filename and searching along a library-defined font path. + *
+ * @param string $string+ * The string to be measured. + *
+ * @param array $options [optional]+ *
| Key | + *Type | + *Meaning | + *
| linespacing | + *float | + *Defines drawing linespacing | + *
+ * The points are relative to the text regardless of the + * angle, so "upper left" means in the top left-hand + * corner seeing the text horizontally. + * Returns false on error. + */ +#[Pure] +function imageftbbox(float $size, float $angle, string $font_filename, string $string, array $options = []): array|false {} + +/** + * Write text to the image using fonts using FreeType 2 + * @link https://php.net/manual/en/function.imagefttext.php + * @param resource|GdImage $image + * @param float $size
+ * The font size to use in points. + *
+ * @param float $angle+ * The angle in degrees, with 0 degrees being left-to-right reading text. + * Higher values represent a counter-clockwise rotation. For example, a + * value of 90 would result in bottom-to-top reading text. + *
+ * @param int $x+ * The coordinates given by x and + * y will define the basepoint of the first + * character (roughly the lower-left corner of the character). This + * is different from the imagestring, where + * x and y define the + * upper-left corner of the first character. For example, "top left" + * is 0, 0. + *
+ * @param int $y+ * The y-ordinate. This sets the position of the fonts baseline, not the + * very bottom of the character. + *
+ * @param int $color+ * The index of the desired color for the text, see + * imagecolorexact. + *
+ * @param string $font_filename+ * The path to the TrueType font you wish to use. + *
+ *+ * Depending on which version of the GD library PHP is using, when + * font_filename does not begin with a leading + * / then .ttf will be appended + * to the filename and the library will attempt to search for that + * filename along a library-defined font path. + *
+ *+ * When using versions of the GD library lower than 2.0.18, a space character, + * rather than a semicolon, was used as the 'path separator' for different font files. + * Unintentional use of this feature will result in the warning message: + * Warning: Could not find/open font. For these affected versions, the + * only solution is moving the font to a path which does not contain spaces. + *
+ *+ * In many cases where a font resides in the same directory as the script using it + * the following trick will alleviate any include problems. + *
+ *+ * + *+ *
+ * Note:
+ * open_basedir does not apply to font_filename.
+ *
+ * Text to be inserted into image. + *
+ * @param array $options [optional]+ *
| Key | + *Type | + *Meaning | + *
| linespacing | + *float | + *Defines drawing linespacing | + *
+ * Path to the Postscript font file. + *
+ * @return resource|GdImage|false In the case everything went right, a valid font index will be returned and + * can be used for further purposes. Otherwise the function returns false. + * @removed 7.0 This function was REMOVED in PHP 7.0.0. + */ +function imagepsloadfont($filename) {} + +/** + * Free memory used by a PostScript Type 1 font + * @link https://php.net/manual/en/function.imagepsfreefont.php + * @param resource|GdImage $font_index+ * A font resource, returned by imagepsloadfont. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function imagepsfreefont($font_index) {} + +/** + * Change the character encoding vector of a font + * @link https://php.net/manual/en/function.imagepsencodefont.php + * @param resource|GdImage $font_index+ * A font resource, returned by imagepsloadfont. + *
+ * @param string $encodingfile+ * The exact format of this file is described in T1libs documentation. + * T1lib comes with two ready-to-use files, + * IsoLatin1.enc and + * IsoLatin2.enc. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function imagepsencodefont($font_index, $encodingfile) {} + +/** + * Extend or condense a font + * @link https://php.net/manual/en/function.imagepsextendfont.php + * @param resource|GdImage $font_index+ * A font resource, returned by imagepsloadfont. + *
+ * @param float $extend+ * Extension value, must be greater than 0. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function imagepsextendfont($font_index, $extend) {} + +/** + * Slant a font + * @link https://php.net/manual/en/function.imagepsslantfont.php + * @param resource|GdImage $font_index+ * A font resource, returned by imagepsloadfont. + *
+ * @param float $slant+ * Slant level. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 This function was REMOVED in PHP 7.0.0. + */ +function imagepsslantfont($font_index, $slant) {} + +/** + * Draws a text over an image using PostScript Type1 fonts + * @link https://php.net/manual/en/function.imagepstext.php + * @param resource|GdImage $image + * @param string $text+ * The text to be written. + *
+ * @param resource|GdImage $font_index+ * A font resource, returned by imagepsloadfont. + *
+ * @param int $size+ * size is expressed in pixels. + *
+ * @param int $foreground+ * The color in which the text will be painted. + *
+ * @param int $background+ * The color to which the text will try to fade in with antialiasing. + * No pixels with the color background are + * actually painted, so the background image does not need to be of solid + * color. + *
+ * @param int $x+ * x-coordinate for the lower-left corner of the first character. + *
+ * @param int $y+ * y-coordinate for the lower-left corner of the first character. + *
+ * @param int $space [optional]+ * Allows you to change the default value of a space in a font. This + * amount is added to the normal value and can also be negative. + * Expressed in character space units, where 1 unit is 1/1000th of an + * em-square. + *
+ * @param int $tightness [optional]+ * tightness allows you to control the amount + * of white space between characters. This amount is added to the + * normal character width and can also be negative. + * Expressed in character space units, where 1 unit is 1/1000th of an + * em-square. + *
+ * @param float $angle [optional]+ * angle is in degrees. + *
+ * @param int $antialias_steps [optional]+ * Allows you to control the number of colours used for antialiasing + * text. Allowed values are 4 and 16. The higher value is recommended + * for text sizes lower than 20, where the effect in text quality is + * quite visible. With bigger sizes, use 4. It's less computationally + * intensive. + *
+ * @return array|false This function returns an array containing the following elements: + *+ * The text to be written. + *
+ * @param resource|GdImage $font + * @param int $size+ * size is expressed in pixels. + *
+ * @return array|false an array containing the following elements: + *+ * Path to JPEG file. + *
+ * @param string $wbmpname+ * Path to destination WBMP file. + *
+ * @param int $dest_height+ * Destination image height. + *
+ * @param int $dest_width+ * Destination image width. + *
+ * @param int $threshold+ * Threshold value, between 0 and 8 (inclusive). + *
+ * @return bool true on success or false on failure. + * @removed 8.0 + * @see imagecreatefromjpeg() + */ +#[Deprecated(reason: "Use imagecreatefromjpeg() and imagewbmp() instead", since: "7.2")] +function jpeg2wbmp($jpegname, $wbmpname, $dest_height, $dest_width, $threshold) {} + +/** + * Convert PNG image file to WBMP image file + * @link https://php.net/manual/en/function.png2wbmp.php + * @param string $pngname+ * Path to PNG file. + *
+ * @param string $wbmpname+ * Path to destination WBMP file. + *
+ * @param int $dest_height+ * Destination image height. + *
+ * @param int $dest_width+ * Destination image width. + *
+ * @param int $threshold+ * Threshold value, between 0 and 8 (inclusive). + *
+ * @return bool true on success or false on failure. + * @removed 8.0 + * @see imagecreatefrompng() + * @see imagewbmp() + */ +#[Deprecated("Use imagecreatefrompng() and imagewbmp() instead", since: "7.2")] +function png2wbmp($pngname, $wbmpname, $dest_height, $dest_width, $threshold) {} + +/** + * Output image to browser or file + * @link https://php.net/manual/en/function.image2wbmp.php + * @param resource|GdImage $image + * @param string $filename [optional]+ * Path to the saved file. If not given, the raw image stream will be + * outputted directly. + *
+ * @param int $threshold [optional]+ * Threshold value, between 0 and 255 (inclusive). + *
+ * @return bool true on success or false on failure. + * @removed 8.0 + * @see imagewbmp() + */ +#[Deprecated(replacement: "imagewbmp(%parametersList%)", since: "7.3")] +function image2wbmp($image, $filename = null, $threshold = null) {} + +/** + * Set the alpha blending flag to use the bundled libgd layering effects + * @link https://php.net/manual/en/function.imagelayereffect.php + * @param resource|GdImage $image + * @param int $effect+ * One of the following constants: + * IMG_EFFECT_REPLACE + * Use pixel replacement (equivalent of passing true to + * imagealphablending)
+ * @return bool true on success or false on failure. + */ +function imagelayereffect(GdImage $image, int $effect): bool {} + +/** + * Makes the colors of the palette version of an image more closely match the true color version + * @link https://php.net/manual/en/function.imagecolormatch.php + * @param resource|GdImage $image1+ * A truecolor image link resource. + *
+ * @param resource|GdImage $image2+ * A palette image link resource pointing to an image that has the same + * size as image1. + *
+ * @return bool true on success or false on failure. + */ +function imagecolormatch(GdImage $image1, GdImage $image2): bool {} + +/** + * Output XBM image to browser or file + * @link https://php.net/manual/en/function.imagexbm.php + * @param resource|GdImage $image + * @param string|null $filename+ * The path to save the file to. If not set or null, the raw image stream + * will be outputted directly. + *
+ * @param int|null $foreground_color [optional]+ * You can set the foreground color with this parameter by setting an + * identifier obtained from imagecolorallocate. + * The default foreground color is black. + *
+ * @return bool true on success or false on failure. + */ +function imagexbm(GdImage $image, ?string $filename, ?int $foreground_color = null): bool {} + +/** + * Applies a filter to an image + * @link https://php.net/manual/en/function.imagefilter.php + * @param resource|GdImage $image + * @param int $filter+ * filtertype can be one of the following: + * IMG_FILTER_NEGATE: Reverses all colors of + * the image.
+ * @param int ...$args + * @return bool true on success or false on failure. + */ +function imagefilter( + GdImage $image, + int $filter, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arg1 = null, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arg2 = null, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arg3 = null, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arg4 = null, + #[PhpStormStubsElementAvailable(from: '8.0')] ...$args +): bool {} + +/** + * Apply a 3x3 convolution matrix, using coefficient and offset + * @link https://php.net/manual/en/function.imageconvolution.php + * @param resource|GdImage $image + * @param array $matrix+ * A 3x3 matrix: an array of three arrays of three floats. + *
+ * @param float $divisor+ * The divisor of the result of the convolution, used for normalization. + *
+ * @param float $offset+ * Color offset. + *
+ * @return bool true on success or false on failure. + */ +function imageconvolution(GdImage $image, array $matrix, float $divisor, float $offset): bool {} + +/** + * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}. + * @param int|null $resolution_x The horizontal resolution in DPI. + * @param int|null $resolution_y The vertical resolution in DPI. + * @return array|bool When used as getter (that is without the optional parameters), it returns TRUE on success, or FALSE on failure. When used as setter (that is with one or both optional parameters given), it returns an indexed array of the horizontal and vertical resolution on success, or FALSE on failure. + * @link https://php.net/manual/en/function.imageresolution.php + * @since 7.2 + */ +#[LanguageLevelTypeAware(['8.2' => 'array|true'], default: 'array|bool')] +function imageresolution(GdImage $image, ?int $resolution_x = null, ?int $resolution_y = null): array|bool {} + +/** + * imagesetclip() sets the current clipping rectangle, i.e. the area beyond which no pixels will be drawn. + * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}. + * @param int $x1 The x-coordinate of the upper left corner. + * @param int $y1 The y-coordinate of the upper left corner. + * @param int $x2 The x-coordinate of the lower right corner. + * @param int $y2 The y-coordinate of the lower right corner. + * @return bool Returns TRUE on success or FALSE on failure. + * @link https://php.net/manual/en/function.imagesetclip.php + * @see imagegetclip() + * @since 7.2 + */ +function imagesetclip(GdImage $image, int $x1, int $y1, int $x2, int $y2): bool {} + +/** + * imagegetclip() retrieves the current clipping rectangle, i.e. the area beyond which no pixels will be drawn. + * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()} + * @return array|false an indexed array with the coordinates of the clipping rectangle which has the following entries: + *+ * points[0] = x0 + * points[1] = y0 + * points[2] = x1 + * points[3] = y1 + *+ * @param int $num_points_or_color Total number of points (vertices). + * @param int|null $color A color identifier created with {@see imagecolorallocate()}. + * @return bool Returns TRUE on success or FALSE on failure. + * @link https://php.net/manual/en/function.imageopenpolygon.php + * @since 7.2 + * @see imageplygon() + */ +function imageopenpolygon( + GdImage $image, + array $points, + #[Deprecated(since: "8.1")] int $num_points_or_color, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] ?int $color, + #[PhpStormStubsElementAvailable(from: '8.0')] ?int $color = null +): bool {} + +/** + * imagecreatefrombmp() returns an image identifier representing the image obtained from the given filename. + * TIP A URL can be used as a filename with this function if the fopen wrappers have been enabled. See {@see fopen()} for more details on how to specify the filename. See the Supported Protocols and Wrappers for links to information about what abilities the various wrappers have, notes on their usage, and information on any predefined variables they may provide. + * @param string $filename Path to the BMP image. + * @return resource|GdImage|false Returns an image resource identifier on success, FALSE on errors. + * @link https://php.net/manual/en/function.imagecreatefrombmp.php + * @since 7.2 + */ +function imagecreatefrombmp(string $filename): GdImage|false {} + +/** + * Outputs or saves a BMP version of the given image. + * @param resource|GdImage $image An image resource, returned by one of the image creation functions, such as {@see imagecreatetruecolor()}. + * @param mixed $file The path or an open stream resource (which is automatically being closed after this function returns) to save the file to. If not set or NULL, the raw image stream will be outputted directly. + *
+ * This constant has the same value as {@see IMG_JPG} + *
+ * @link https://php.net/manual/en/image.constants.php#constant.img-jpeg + */ +define('IMG_JPEG', 2); + +/** + * Used as a return value by {@see imagetypes()} + * @link https://php.net/manual/en/image.constants.php#constant.img-png + */ +define('IMG_PNG', 4); + +/** + * Used as a return value by {@see imagetypes()} + * @link https://php.net/manual/en/image.constants.php#constant.img-wbmp + */ +define('IMG_WBMP', 8); + +/** + * Used as a return value by {@see imagetypes()} + * @link https://php.net/manual/en/image.constants.php#constant.img-xpm + */ +define('IMG_XPM', 16); + +/** + * Used as a return value by {@see imagetypes()} + * @since 5.6.25 + * @since 7.0.10 + * @link https://php.net/manual/en/image.constants.php#constant.img-webp + */ +define('IMG_WEBP', 32); + +/** + * Used as a return value by {@see imagetypes()} + * @since 7.2 + * @link https://php.net/manual/en/image.constants.php#constant.img-bmp + */ +define('IMG_BMP', 64); + +/** + * Special color option which can be used instead of color allocated with + * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()} + * @link https://php.net/manual/en/image.constants.php#constant.img-color-tiled + */ +define('IMG_COLOR_TILED', -5); + +/** + * Special color option which can be used instead of color allocated with + * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()} + * @link https://php.net/manual/en/image.constants.php#constant.img-color-styled + */ +define('IMG_COLOR_STYLED', -2); + +/** + * Special color option which can be used instead of color allocated with + * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()} + * @link https://php.net/manual/en/image.constants.php#constant.img-color-brushed + */ +define('IMG_COLOR_BRUSHED', -3); + +/** + * Special color option which can be used instead of color allocated with + * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()} + * @link https://php.net/manual/en/image.constants.php#constant.img-color-styledbrushed + */ +define('IMG_COLOR_STYLEDBRUSHED', -4); + +/** + * Special color option which can be used instead of color allocated with + * {@see imagecolorallocate()} or {@see imagecolorallocatealpha()} + * @link https://php.net/manual/en/image.constants.php#constant.img-color-transparent + */ +define('IMG_COLOR_TRANSPARENT', -6); + +/** + * A style constant used by the {@see imagefilledarc()} function. + *+ * This constant has the same value as {@see IMG_ARC_PIE} + *
+ * @link https://php.net/manual/en/image.constants.php#constant.img-arc-rounded + */ +define('IMG_ARC_ROUNDED', 0); + +/** + * A style constant used by the {@see imagefilledarc()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-arc-pie + */ +define('IMG_ARC_PIE', 0); + +/** + * A style constant used by the {@see imagefilledarc()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-arc-chord + */ +define('IMG_ARC_CHORD', 1); + +/** + * A style constant used by the {@see imagefilledarc()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-arc-nofill + */ +define('IMG_ARC_NOFILL', 2); + +/** + * A style constant used by the {@see imagefilledarc()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-arc-edged + */ +define('IMG_ARC_EDGED', 4); + +/** + * A type constant used by the {@see imagegd2()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-gd2-raw + */ +define('IMG_GD2_RAW', 1); + +/** + * A type constant used by the {@see imagegd2()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-gd2-compressed + */ +define('IMG_GD2_COMPRESSED', 2); + +/** + * Alpha blending effect used by the {@see imagelayereffect()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-effect-replace + */ +define('IMG_EFFECT_REPLACE', 0); + +/** + * Alpha blending effect used by the {@see imagelayereffect()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-effect-alphablend + */ +define('IMG_EFFECT_ALPHABLEND', 1); + +/** + * Alpha blending effect used by the {@see imagelayereffect()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-effect-normal + */ +define('IMG_EFFECT_NORMAL', 2); + +/** + * Alpha blending effect used by the {@see imagelayereffect()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-effect-overlay + */ +define('IMG_EFFECT_OVERLAY', 3); + +/** + * Alpha blending effect used by the {@see imagelayereffect()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-effect-multiply + * @since 7.2 + */ +define('IMG_EFFECT_MULTIPLY', 4); + +/** + * When the bundled version of GD is used this is 1 otherwise + * it's set to 0. + * @link https://php.net/manual/en/image.constants.php + */ +define('GD_BUNDLED', 1); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-negate + */ +define('IMG_FILTER_NEGATE', 0); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-grayscale + */ +define('IMG_FILTER_GRAYSCALE', 1); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-brightness + */ +define('IMG_FILTER_BRIGHTNESS', 2); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-contrast + */ +define('IMG_FILTER_CONTRAST', 3); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-colorize + */ +define('IMG_FILTER_COLORIZE', 4); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-edgedetect + */ +define('IMG_FILTER_EDGEDETECT', 5); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-gaussian-blur + */ +define('IMG_FILTER_GAUSSIAN_BLUR', 7); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-selective-blur + */ +define('IMG_FILTER_SELECTIVE_BLUR', 8); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-emboss + */ +define('IMG_FILTER_EMBOSS', 6); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-mean-removal + */ +define('IMG_FILTER_MEAN_REMOVAL', 9); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-smooth + */ +define('IMG_FILTER_SMOOTH', 10); + +/** + * Special GD filter used by the {@see imagefilter()} function. + * @link https://php.net/manual/en/image.constants.php#constant.img-filter-pixelate + */ +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 + * @link https://php.net/manual/en/image.constants.php#constant.gd-version + */ +define('GD_VERSION', "2.0.35"); + +/** + * The GD major version PHP was compiled against. + * @since 5.2.4 + * @link https://php.net/manual/en/image.constants.php#constant.gd-major-version + */ +define('GD_MAJOR_VERSION', 2); + +/** + * The GD minor version PHP was compiled against. + * @since 5.2.4 + * @link https://php.net/manual/en/image.constants.php#constant.gd-minor-version + */ +define('GD_MINOR_VERSION', 0); + +/** + * The GD release version PHP was compiled against. + * @since 5.2.4 + * @link https://php.net/manual/en/image.constants.php#constant.gd-release-version + */ +define('GD_RELEASE_VERSION', 35); + +/** + * The GD "extra" version (beta/rc..) PHP was compiled against. + * @since 5.2.4 + * @link https://php.net/manual/en/image.constants.php#constant.gd-extra-version + */ +define('GD_EXTRA_VERSION', ""); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-no-filter + */ +define('PNG_NO_FILTER', 0); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-filter-none + */ +define('PNG_FILTER_NONE', 8); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-filter-sub + */ +define('PNG_FILTER_SUB', 16); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-filter-up + */ +define('PNG_FILTER_UP', 32); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-filter-avg + */ +define('PNG_FILTER_AVG', 64); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-filter-paeth + */ +define('PNG_FILTER_PAETH', 128); + +/** + * A special PNG filter, used by the {@see imagepng()} function. + * @link https://php.net/manual/en/image.constants.php#constant.png-all-filters + */ +define('PNG_ALL_FILTERS', 248); + +/** + * An affine transformation type constant used by the {@see imageaffinematrixget()} function. + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-affine-translate + */ +define('IMG_AFFINE_TRANSLATE', 0); + +/** + * An affine transformation type constant used by the {@see imageaffinematrixget()} function. + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-affine-scale + */ +define('IMG_AFFINE_SCALE', 1); + +/** + * An affine transformation type constant used by the {@see imageaffinematrixget()} function. + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-affine-rotate + */ +define('IMG_AFFINE_ROTATE', 2); + +/** + * An affine transformation type constant used by the {@see imageaffinematrixget()} function. + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-affine-shear-horizontal + */ +define('IMG_AFFINE_SHEAR_HORIZONTAL', 3); + +/** + * An affine transformation type constant used by the {@see imageaffinematrixget()} function. + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-affine-shear-vertical + */ +define('IMG_AFFINE_SHEAR_VERTICAL', 4); + +/** + * Same as {@see IMG_CROP_TRANSPARENT}. Before PHP 7.4.0, the bundled libgd fell back to + * {@see IMG_CROP_SIDES}, if the image had no transparent color. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_DEFAULT', 0); + +/** + * Crops out a transparent background. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_TRANSPARENT', 1); + +/** + * Crops out a black background. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_BLACK', 2); + +/** + * Crops out a white background. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_WHITE', 3); + +/** + * Uses the 4 corners of the image to attempt to detect the background to crop. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_SIDES', 4); + +/** + * Crops an image using the given threshold and color. + * Used together with {@see imagecropauto()}. + * @since 5.5 + */ +define('IMG_CROP_THRESHOLD', 5); + +/** + * Used together with {@see imageflip()} + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-flip-both + */ +define('IMG_FLIP_BOTH', 3); + +/** + * Used together with {@see imageflip()} + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-flip-horizontal + */ +define('IMG_FLIP_HORIZONTAL', 1); + +/** + * Used together with {@see imageflip()} + * @since 5.5 + * @link https://php.net/manual/en/image.constants.php#constant.img-flip-vertical + */ +define('IMG_FLIP_VERTICAL', 2); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bell + * @since 5.5 + */ +define('IMG_BELL', 1); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bessel + * @since 5.5 + */ +define('IMG_BESSEL', 2); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bicubic + * @since 5.5 + */ +define('IMG_BICUBIC', 4); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bicubic-fixed + * @since 5.5 + */ +define('IMG_BICUBIC_FIXED', 5); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bilinear-fixed + * @since 5.5 + */ +define('IMG_BILINEAR_FIXED', 3); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-blackman + * @since 5.5 + */ +define('IMG_BLACKMAN', 6); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-box + * @since 5.5 + */ +define('IMG_BOX', 7); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-bspline + * @since 5.5 + */ +define('IMG_BSPLINE', 8); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-catmullrom + * @since 5.5 + */ +define('IMG_CATMULLROM', 9); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-gaussian + * @since 5.5 + */ +define('IMG_GAUSSIAN', 10); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-generalized-cubic + * @since 5.5 + */ +define('IMG_GENERALIZED_CUBIC', 11); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-hermite + * @since 5.5 + */ +define('IMG_HERMITE', 12); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-hamming + * @since 5.5 + */ +define('IMG_HAMMING', 13); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-hanning + * @since 5.5 + */ +define('IMG_HANNING', 14); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-mitchell + * @since 5.5 + */ +define('IMG_MITCHELL', 15); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-power + * @since 5.5 + */ +define('IMG_POWER', 17); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-quadratic + * @since 5.5 + */ +define('IMG_QUADRATIC', 18); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-sinc + * @since 5.5 + */ +define('IMG_SINC', 19); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-nearest-neighbour + * @since 5.5 + */ +define('IMG_NEAREST_NEIGHBOUR', 16); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-weighted4 + * @since 5.5 + */ +define('IMG_WEIGHTED4', 21); + +/** + * Used together with {@see imagesetinterpolation()}. + * @link https://php.net/manual/en/image.constants.php#constant.img-triangle + * @since 5.5 + */ +define('IMG_TRIANGLE', 20); + +define('IMG_TGA', 128); + +/** + * @since 8.1 + */ +define('IMG_AVIF', 256); + +/** + * @since 8.1 + */ +define('IMG_WEBP_LOSSLESS', 101); + +/** + * Outputs or saves a AVIF Raster image from the given image + * @link https://www.php.net/manual/function.imageavif.php + * @param GdImage $image A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor(). + * @param resource|string|null $file The path or an open stream resource (which is automatically closed after this function returns) to save the file to. If not set or null, the raw image stream will be output directly. + * @param int $quality quality is optional, and ranges from 0 (worst quality, smaller file) to 100 (best quality, larger file). If -1 is provided, the default value 30 is used. + * @param int $speed speed is optional, and ranges from 0 (slow, smaller file) to 10 (fast, larger file). If -1 is provided, the default value 6 is used. + * @return bool Returns true on success or false on failure. However, if libgd fails to output the image, this function returns true. + * @since 8.1 + */ +function imageavif(GdImage $image, string|null $file = null, int $quality = -1, int $speed = -1): bool {} + +/** + * Return an image containing the affine tramsformed src image, using an optional clipping area + * @link https://secure.php.net/manual/en/function.imageaffine.php + * @param resource|GdImage $imageAn image resource, returned by one of the image creation functions, + * such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}.
+ * @param array $affineArray with keys 0 to 5.
+ * @param array|null $clip [optional]Array with keys "x", "y", "width" and "height".
+ * @return resource|GdImage|false Return affined image resource on success or FALSE on failure. + */ +function imageaffine(GdImage $image, array $affine, ?array $clip = null): GdImage|false {} + +/** + * Concat two matrices (as in doing many ops in one go) + * @link https://secure.php.net/manual/en/function.imageaffinematrixconcat.php + * @param array $matrix1Array with keys 0 to 5.
+ * @param array $matrix2Array with keys 0 to 5.
+ * @return float[]|false Array with keys 0 to 5 and float values or FALSE on failure. + * @since 5.5 + */ +function imageaffinematrixconcat(array $matrix1, array $matrix2): array|false {} + +/** + * Return an image containing the affine tramsformed src image, using an optional clipping area + * @link https://secure.php.net/manual/en/function.imageaffinematrixget.php + * @param int $typeOne of IMG_AFFINE_* constants.
+ * @param mixed $options + * @return float[]|false Array with keys 0 to 5 and float values or FALSE on failure. + * @since 5.5 + */ +function imageaffinematrixget( + int $type, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $options = null, + #[PhpStormStubsElementAvailable(from: '8.0')] $options +): array|false {} + +/** + * Crop an image using the given coordinates and size, x, y, width and height + * @link https://secure.php.net/manual/en/function.imagecrop.php + * @param resource|GdImage $image+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @param array $rectangleArray with keys "x", "y", "width" and "height".
+ * @return resource|GdImage|false Return cropped image resource on success or FALSE on failure. + * @since 5.5 + */ +function imagecrop(GdImage $image, array $rectangle): GdImage|false {} + +/** + * Crop an image automatically using one of the available modes + * @link https://secure.php.net/manual/en/function.imagecropauto.php + * @param resource|GdImage $image+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @param int $mode [optional]+ * One of IMG_CROP_* constants. + *
+ * @param float $threshold [optional]+ * Used IMG_CROP_THRESHOLD mode. + *
+ * @param int $color [optional] + *+ * Used in IMG_CROP_THRESHOLD mode. + *
+ * @return resource|GdImage|false Return cropped image resource on success or FALSE on failure. + * @since 5.5 + */ +function imagecropauto(GdImage $image, int $mode = IMG_CROP_DEFAULT, float $threshold = .5, int $color = -1): GdImage|false {} + +/** + * Flips an image using a given mode + * @link https://secure.php.net/manual/en/function.imageflip.php + * @param resource|GdImage $image+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @param int $mode+ * Flip mode, this can be one of the IMG_FLIP_* constants: + *
+ *| Constant | + *Meaning | + *
|---|---|
| IMG_FLIP_HORIZONTAL | + *+ * Flips the image horizontally. + * | + *
| IMG_FLIP_VERTICAL | + *+ * Flips the image vertically. + * | + *
| IMG_FLIP_BOTH | + *+ * Flips the image both horizontally and vertically. + * | + *
+ * An image resource, returnd by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @return bool Returns TRUE if the convertion was complete, or if the source image already is a true color image, otherwise FALSE is returned. + * @since 5.5 + */ +function imagepalettetotruecolor(GdImage $image): bool {} + +/** + * @param resource|GdImage $image+ * An image resource, returnd by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @param int $width + * @param int $height [optional] + * @param int $mode [optional] One of IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED or anything else (will use two pass). + * @return resource|GdImage|false Return scaled image resource on success or FALSE on failure. + *@link https://secure.php.net/manual/en/function.imagescale.php + * @since 5.5 + * Scale an image using the given new width and height + */ +function imagescale(GdImage $image, int $width, int $height = -1, int $mode = IMG_BILINEAR_FIXED): GdImage|false {} + +/** + * Set the interpolation method + * @link https://secure.php.net/manual/en/function.imagesetinterpolation.php + * @param resource|GdImage $image+ * An image resource, returned by one of the image creation functions, such as {@link https://secure.php.net/manual/en/function.imagecreatetruecolor.php imagecreatetruecolor()}. + *
+ * @param int $method+ * The interpolation method, which can be one of the following: + *
+ * The database type as an integer. You can use the + * various constants defined with + * this extension (ie: GEOIP_*_EDITION). + *
+ * @return string|null the corresponding database version, or NULL on error. + */ +#[Pure] +function geoip_database_info($database = GEOIP_COUNTRY_EDITION) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose location is to be looked-up. + *
+ * @return string|false the two letter ISO country code on success, or FALSE + * if the address cannot be found in the database. + */ +#[Pure] +function geoip_country_code_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose location is to be looked-up. + *
+ * @return string|false the three letter country code on success, or FALSE + * if the address cannot be found in the database. + */ +#[Pure] +function geoip_country_code3_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose location is to be looked-up. + *
+ * @return string|false the country name on success, or FALSE if the address cannot + * be found in the database. + */ +#[Pure] +function geoip_country_name_by_name($hostname) {} + +/** + * (PECL geoip >= 1.0.3)+ * The hostname or IP address whose location is to be looked-up. + *
+ * @return string|false the two letter continent code on success, or FALSE if the + * address cannot be found in the database. + */ +#[Pure] +function geoip_continent_code_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address. + *
+ * @return string|false the organization name on success, or FALSE if the address + * cannot be found in the database. + */ +#[Pure] +function geoip_org_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose record is to be looked-up. + *
+ * @return array|false the associative array on success, or FALSE if the address + * cannot be found in the database. + */ +#[Pure] +function geoip_record_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose connection type is to be looked-up. + *
+ * @return int the connection type. + */ +#[Pure] +function geoip_id_by_name($hostname) {} + +/** + * (PECL geoip >= 0.2.0)+ * The hostname or IP address whose region is to be looked-up. + *
+ * @return array|false the associative array on success, or FALSE if the address + * cannot be found in the database. + */ +#[Pure] +function geoip_region_by_name($hostname) {} + +/** + * (PECL geoip >= 1.0.2)+ * The hostname or IP address. + *
+ * @return string|false the ISP name on success, or FALSE if the address + * cannot be found in the database. + */ +#[Pure] +function geoip_isp_by_name($hostname) {} + +/** + * (PECL geoip >= 1.0.1)+ * The database type as an integer. You can use the + * various constants defined with + * this extension (ie: GEOIP_*_EDITION). + *
+ * @return bool|null TRUE is database exists, FALSE if not found, or NULL on error. + */ +#[Pure] +function geoip_db_avail($database) {} + +/** + * (PECL geoip >= 1.0.1)+ * The database type as an integer. You can use the + * various constants defined with + * this extension (ie: GEOIP_*_EDITION). + *
+ * @return string|null the filename of the corresponding database, or NULL on error. + */ +#[Pure] +function geoip_db_filename($database) {} + +/** + * (PECL geoip >= 1.0.4)+ * The two-letter country code (see + * geoip_country_code_by_name) + *
+ * @param string $region_code+ * The two-letter (or digit) region code (see + * geoip_region_by_name) + *
+ * @return string|false the region name on success, or FALSE if the country and region code + * combo cannot be found. + */ +#[Pure] +function geoip_region_name_by_code($country_code, $region_code) {} + +/** + * (PECL geoip >= 1.0.4)+ * The two-letter country code (see + * geoip_country_code_by_name) + *
+ * @param string $region_code [optional]+ * The two-letter (or digit) region code (see + * geoip_region_by_name) + *
+ * @return string|false the time zone on success, or FALSE if the country and region code + * combo cannot be found. + */ +#[Pure] +function geoip_time_zone_by_country_and_region($country_code, $region_code = null) {} + +define('GEOIP_COUNTRY_EDITION', 1); +define('GEOIP_REGION_EDITION_REV0', 7); +define('GEOIP_CITY_EDITION_REV0', 6); +define('GEOIP_ORG_EDITION', 5); +define('GEOIP_ISP_EDITION', 4); +define('GEOIP_CITY_EDITION_REV1', 2); +define('GEOIP_REGION_EDITION_REV1', 3); +define('GEOIP_PROXY_EDITION', 8); +define('GEOIP_ASNUM_EDITION', 9); +define('GEOIP_NETSPEED_EDITION', 10); +define('GEOIP_DOMAIN_EDITION', 11); +define('GEOIP_UNKNOWN_SPEED', 0); +define('GEOIP_DIALUP_SPEED', 1); +define('GEOIP_CABLEDSL_SPEED', 2); +define('GEOIP_CORPORATE_SPEED', 3); + +/** + * (PECL geoip >= 1.1.0)+ * The geoip_asnum_by_name() function will return the Autonomous System Numbers (ASN) associated with an IP address. + *
+ * @link https://secure.php.net/manual/en/function.geoip-asnum-by-name.php + * @param string $hostname The hostname or IP address + * + * @return string|false Returns the ASN on success, or FALSE if the address cannot be found in the database. + * @since 1.1.0 + */ +function geoip_asnum_by_name($hostname) {} + +/** + * (PECL geoip >= 1.1.0)
+ * The geoip_netspeedcell_by_name() function will return the Internet connection type and speed corresponding to a hostname or an IP address.
+ *
+ * This function is only available if using GeoIP Library version 1.4.8 or newer.
+ *
+ * This function is currently only available to users who have bought a commercial GeoIP NetSpeedCell Edition. A warning will be issued if the proper database cannot be located.
+ *
+ * The return value is a string, common values are:
+ * - Cable/DSL
+ * - Dialup
+ * - Cellular
+ * - Corporate
+ *
+ * The geoip_setup_custom_directory() function will change the default directory of the GeoIP database. This is equivalent to changing geoip.custom_directory + *
+ * @link https://secure.php.net/manual/en/function.geoip-setup-custom-directory.php + * @param string $path The full path of where the GeoIP database is on disk. + * + * @return void + * @since 1.1.0 + */ +function geoip_setup_custom_directory($path) {} + +// End of geoip v.1.1.0 diff --git a/phpstorm-stubs/geos/geos.php b/phpstorm-stubs/geos/geos.php new file mode 100644 index 0000000..8050ed8 --- /dev/null +++ b/phpstorm-stubs/geos/geos.php @@ -0,0 +1,734 @@ + 8, + 'endcap' => GEOSBUF_CAP_ROUND, + 'join' => GEOSBUF_JOIN_ROUND, + 'mitre_limit' => 5.0, + 'single_sided' => false + ]): GEOSGeometry {} + + /** + * @param float $distance + * @param array $styleArray + * Keys supported: + * 'quad_segs' + * Type: int + * Number of segments used to approximate + * a quarter circle (defaults to 8). + * 'join' + * Type: long + * Join style (defaults to GEOSBUF_JOIN_ROUND) + * 'mitre_limit' + * Type: double + * mitre ratio limit (only affects joins with GEOSBUF_JOIN_MITRE style) + * 'miter_limit' is also accepted as a synonym for 'mitre_limit'. + * @return GEOSGeometry + * @throws Exception + */ + public function offsetCurve(float $distance, array $styleArray = [ + 'quad_segs' => 8, + 'join' => GEOSBUF_JOIN_ROUND, + 'mitre_limit' => 5.0 + ]): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function envelope(): GEOSGeometry {} + + /** + * @param GEOSGeometry $geom + * @return GEOSGeometry + * @throws Exception + */ + public function intersection(GEOSGeometry $geom): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function convexHull(): GEOSGeometry {} + + /** + * @param GEOSGeometry $geom + * @return GEOSGeometry + * @throws Exception + */ + public function difference(GEOSGeometry $geom): GEOSGeometry {} + + /** + * @param GEOSGeometry $geom + * @return GEOSGeometry + * @throws Exception + */ + public function symDifference(GEOSGeometry $geom): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function boundary(): GEOSGeometry {} + + /** + * @param GEOSGeometry|null $geom + * @return GEOSGeometry + * @throws Exception + */ + public function union(GEOSGeometry $geom = null): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function pointOnSurface(): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function centroid(): GEOSGeometry {} + + /** + * @param GEOSGeometry $geom + * @param string|null $pattern + * @return bool|string + * @throws Exception + */ + public function relate(GEOSGeometry $geom, string $pattern = null) {} + + /** + * @param GEOSGeometry $geom + * @param int $rule + * @return string + * @throws Exception + */ + public function relateBoundaryNodeRule(GEOSGeometry $geom, int $rule = GEOSRELATE_BNR_OGC): string {} + + /** + * @param float $tolerance + * @param bool $preserveTopology + * @return GEOSGeometry + * @throws Exception + */ + public function simplify(float $tolerance, bool $preserveTopology = false): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function normalize(): GEOSGeometry {} + + /** + * @param float $gridSize + * @param int $flags + * @return GEOSGeometry + * @throws Exception + */ + public function setPrecision(float $gridSize, int $flags = 0): GEOSGeometry {} + + /** + * @return float + */ + public function getPrecision(): float {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function extractUniquePoints(): GEOSGeometry {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function disjoint(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function touches(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function intersects(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function crosses(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function within(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function contains(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function overlaps(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function covers(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function coveredBy(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @return bool + * @throws Exception + */ + public function equals(GEOSGeometry $geom): bool {} + + /** + * @param GEOSGeometry $geom + * @param float $tolerance + * @return bool + * @throws Exception + */ + public function equalsExact(GEOSGeometry $geom, float $tolerance = 0): bool {} + + /** + * @return bool + * @throws Exception + */ + public function isEmpty(): bool {} + + /** + * @return array + * @throws Exception + */ + public function checkValidity(): array {} + + /** + * @return bool + * @throws Exception + */ + public function isSimple(): bool {} + + /** + * @return bool + * @throws Exception + */ + public function isRing(): bool {} + + /** + * @return bool + * @throws Exception + */ + public function hasZ(): bool {} + + /** + * @return bool + * @throws Exception + */ + public function isClosed(): bool {} + + /** + * @return string + * @throws Exception + */ + public function typeName(): string {} + + /** + * @return int + * @throws Exception + */ + public function typeId(): int {} + + /** + * @return int + */ + public function getSRID(): int {} + + /** + * @param int $srid + * @throws Exception + */ + public function setSRID(int $srid): void {} + + /** + * @return int + * @throws Exception + */ + public function numGeometries(): int {} + + /** + * @param int $n + * @return GEOSGeometry + * @throws Exception + */ + public function geometryN(int $n): GEOSGeometry {} + + /** + * @return int + * @throws Exception + */ + public function numInteriorRings(): int {} + + /** + * @return int + * @throws Exception + */ + public function numPoints(): int {} + + /** + * @return float + * @throws Exception + */ + public function getX(): float {} + + /** + * @return float + * @throws Exception + */ + public function getY(): float {} + + /** + * @param int $n + * @return GEOSGeometry + * @throws Exception + */ + public function interiorRingN(int $n): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function exteriorRing(): GEOSGeometry {} + + /** + * @return int + * @throws Exception + */ + public function numCoordinates(): int {} + + /** + * @return int + * @throws Exception + */ + public function dimension(): int {} + + /** + * @return int + * @throws Exception + */ + public function coordinateDimension(): int {} + + /** + * @param int $n + * @return GEOSGeometry + * @throws Exception + */ + public function pointN(int $n): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function startPoint(): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function endPoint(): GEOSGeometry {} + + /** + * @return float + * @throws Exception + */ + public function area(): float {} + + /** + * @return float + * @throws Exception + */ + public function length(): float {} + + /** + * @param GEOSGeometry $geom + * @return float + * @throws Exception + */ + public function distance(GEOSGeometry $geom): float {} + + /** + * @param GEOSGeometry $geom + * @return float + * @throws Exception + */ + public function hausdorffDistance(GEOSGeometry $geom): float {} + + /** + * @param GEOSGeometry $geom + * @param float $tolerance + * @return GEOSGeometry + */ + public function snapTo(GEOSGeometry $geom, float $tolerance): GEOSGeometry {} + + /** + * @return GEOSGeometry + * @throws Exception + */ + public function node(): GEOSGeometry {} + + /** + * @param float $tolerance Snapping tolerance to use for improved robustness + * @param bool $onlyEdges if true, will return a MULTILINESTRING, + * otherwise (the default) it will return a GEOMETRYCOLLECTION containing triangular POLYGONs. + * @return GEOSGeometry + * @throws Exception + */ + public function delaunayTriangulation(float $tolerance = 0.0, bool $onlyEdges = false): GEOSGeometry {} + + /** + * @param float $tolerance Snapping tolerance to use for improved robustness + * @param bool $onlyEdges If true will return a MULTILINESTRING, + * otherwise (the default) it will return a GEOMETRYCOLLECTION containing POLYGONs. + * @param GEOSGeometry|null $extent Clip returned diagram by the extent of the given geometry + * @return GEOSGeometry + * @throws Exception + */ + public function voronoiDiagram(float $tolerance = 0.0, bool $onlyEdges = false, GEOSGeometry $extent = null): GEOSGeometry {} + + /** + * @param float $xmin + * @param float $ymin + * @param float $xmax + * @param float $ymax + * @return GEOSGeometry + * @throws Exception + */ + public function clipByRect(float $xmin, float $ymin, float $xmax, float $ymax): GEOSGeometry {} +} + +/** + * Class GEOSWKBWriter + * @see https://github.com/libgeos/php-geos/blob/master/tests/004_WKBWriter.phpt + */ +class GEOSWKBWriter +{ + /** + * GEOSWKBWriter constructor. + */ + public function __construct() {} + + /** + * @return int + */ + public function getOutputDimension(): int {} + + /** + * @param int $dimension + * @throws Exception + */ + public function setOutputDimension(int $dimension): void {} + + /** + * @return int + */ + public function getByteOrder(): int {} + + /** + * @param int $byteOrder + * @throws Exception + */ + public function setByteOrder(int $byteOrder): void {} + + /** + * @return int + */ + public function getIncludeSRID(): int {} + + /** + * @param int $srid + * @throws Exception + */ + public function setIncludeSRID(int $srid): void {} + + /** + * @param GEOSGeometry $geom + * @return string + * @throws Exception + */ + public function write(GEOSGeometry $geom): string {} + + /** + * @param GEOSGeometry $geom + * @return string + * @throws Exception + */ + public function writeHEX(GEOSGeometry $geom): string {} +} + +/** + * Class GEOSWKBReader + * @see https://github.com/libgeos/php-geos/blob/master/tests/005_WKBReader.phpt + */ +class GEOSWKBReader +{ + /** + * GEOSWKBReader constructor. + */ + public function __construct() {} + + /** + * @param string $wkb + * @return GEOSGeometry + * @throws Exception + */ + public function read(string $wkb): GEOSGeometry {} + + /** + * @param string $wkb + * @return GEOSGeometry + * @throws Exception + */ + public function readHEX(string $wkb): GEOSGeometry {} +} diff --git a/phpstorm-stubs/gettext/gettext.php b/phpstorm-stubs/gettext/gettext.php new file mode 100644 index 0000000..8e79d39 --- /dev/null +++ b/phpstorm-stubs/gettext/gettext.php @@ -0,0 +1,140 @@ + + * The new message domain, or NULL to get the current setting without + * changing it + * + * @return string If successful, this function returns the current message + * domain, after possibly changing it. + */ +function textdomain(?string $domain): string {} + +/** + * Lookup a message in the current domain + * @link https://php.net/manual/en/function.gettext.php + * @param string $message+ * The message being translated. + *
+ * @return string a translated string if one is found in the + * translation table, or the submitted message if not found. + */ +#[Pure] +function _(string $message): string {} + +/** + * Lookup a message in the current domain + * @link https://php.net/manual/en/function.gettext.php + * @param string $message+ * The message being translated. + *
+ * @return string a translated string if one is found in the + * translation table, or the submitted message if not found. + */ +#[Pure] +function gettext(string $message): string {} + +/** + * Override the current domain + * @link https://php.net/manual/en/function.dgettext.php + * @param string $domain+ * The domain + *
+ * @param string $message+ * The message + *
+ * @return string A string on success. + */ +function dgettext(string $domain, string $message): string {} + +/** + * Overrides the domain for a single lookup + * @link https://php.net/manual/en/function.dcgettext.php + * @param string $domain+ * The domain + *
+ * @param string $message+ * The message + *
+ * @param int $category+ * The category + *
+ * @return string A string on success. + */ +function dcgettext(string $domain, string $message, int $category): string {} + +/** + * Sets the path for a domain + * @link https://php.net/manual/en/function.bindtextdomain.php + * @param string $domain+ * The domain + *
+ * @param string|null $directory+ * The directory path. Since PHP 8.0.3 directory is nullable. If null is passed, the currently set directory is returned. + *
+ * @return string|false The full pathname for the domain currently being set. + */ +function bindtextdomain(string $domain, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $directory): string|false {} + +/** + * Plural version of gettext + * @link https://php.net/manual/en/function.ngettext.php + * @param string $singular + * @param string $plural + * @param int $count + * @return string correct plural form of message identified by + * msgid1 and msgid2 + * for count n. + */ +#[Pure] +function ngettext(string $singular, string $plural, int $count): string {} + +/** + * Plural version of dgettext + * @link https://php.net/manual/en/function.dngettext.php + * @param string $domain+ * The domain + *
+ * @param string $singular + * @param string $plural + * @param int $count + * @return string A string on success. + */ +#[Pure] +function dngettext(string $domain, string $singular, string $plural, int $count): string {} + +/** + * Plural version of dcgettext + * @link https://php.net/manual/en/function.dcngettext.php + * @param string $domain+ * The domain + *
+ * @param string $singular + * @param string $plural + * @param int $count + * @param int $category + * @return string A string on success. + */ +#[Pure] +function dcngettext(string $domain, string $singular, string $plural, int $count, int $category): string {} + +/** + * Specify the character encoding in which the messages from the DOMAIN message catalog will be returned + * @link https://php.net/manual/en/function.bind-textdomain-codeset.php + * @param string $domain+ * The domain + *
+ * @param string|null $codeset+ * The code set. Since 8.0.3 is nullable. If null is passed, the currently set encoding is returned. + *
+ * @return string|false A string on success. + */ +function bind_textdomain_codeset(string $domain, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $codeset): string|false {} + +// End of gettext v. diff --git a/phpstorm-stubs/gmagick/gmagick.php b/phpstorm-stubs/gmagick/gmagick.php new file mode 100644 index 0000000..9431e34 --- /dev/null +++ b/phpstorm-stubs/gmagick/gmagick.php @@ -0,0 +1,2751 @@ + + * An integer or a string. The string representation can be decimal, + * hexadecimal or octal. + * + * @param int $base [optional]+ * The base. + *
+ *+ * The base may vary from 2 to 36. If base is 0 (default value), the + * actual base is determined from the leading characters: if the first + * two characters are 0x or 0X, + * hexadecimal is assumed, otherwise if the first character is "0", + * octal is assumed, otherwise decimal is assumed. + *
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_init(string|int $num, int $base = 0): GMP {} + +/** + * Convert GMP number to integer + * @link https://php.net/manual/en/function.gmp-intval.php + * @param resource|int|string|GMP $num+ * A GMP number. + *
+ * @return int An integer value of gmpnumber. + */ +#[Pure] +function gmp_intval(GMP|string|int $num): int {} + +/** + * Sets the RNG seed + * @param resource|string|int|GMP $seed+ * The seed to be set for the {@see gmp_random()}, {@see gmp_random_bits()}, and {@see gmp_random_range()} functions. + *
+ * Either a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 and later, or a numeric string provided that it is possible to convert the latter to a number. + * @return void|null|false Returns NULL on success. + * @since 7.0 + */ +function gmp_random_seed(GMP|string|int $seed): void {} +/** + * Convert GMP number to string + * @link https://php.net/manual/en/function.gmp-strval.php + * @param resource|int|string|GMP $num+ * The GMP number that will be converted to a string. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $base [optional]+ * The base of the returned number. The default base is 10. + * Allowed values for the base are from 2 to 62 and -2 to -36. + *
+ * @return string The number, as a string. + */ +#[Pure] +function gmp_strval(GMP|string|int $num, int $base = 10): string {} + +/** + * Add numbers + * @link https://php.net/manual/en/function.gmp-add.php + * @param resource|int|string|GMP $num1+ * A number that will be added. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * A number that will be added. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number representing the sum of the arguments. + */ +#[Pure] +function gmp_add(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Subtract numbers + * @link https://php.net/manual/en/function.gmp-sub.php + * @param resource|string|GMP $num1+ * The number being subtracted from. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number subtracted from a. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_sub(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Multiply numbers + * @link https://php.net/manual/en/function.gmp-mul.php + * @param resource|string|GMP $num1+ * A number that will be multiplied by b. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * A number that will be multiplied by a. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_mul(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Divide numbers and get quotient and remainder + * @link https://php.net/manual/en/function.gmp-div-qr.php + * @param resource|string|GMP $num1+ * The number being divided. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number that n is being divided by. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $rounding_mode [optional]+ * See the gmp_div_q function for description + * of the round argument. + *
+ * @return array an array, with the first + * element being [n/d] (the integer result of the + * division) and the second being (n - [n/d] * d) + * (the remainder of the division). + */ +#[Pure] +function gmp_div_qr(GMP|string|int $num1, GMP|string|int $num2, int $rounding_mode = GMP_ROUND_ZERO): array {} + +/** + * Divide numbers + * @link https://php.net/manual/en/function.gmp-div-q.php + * @param resource|string|GMP $num1+ * The number being divided. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number that a is being divided by. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $rounding_mode [optional]+ * The result rounding is defined by the + * round, which can have the following + * values: + * GMP_ROUND_ZERO: The result is truncated + * towards 0.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_div_q(GMP|string|int $num1, GMP|string|int $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP {} + +/** + * Remainder of the division of numbers + * @link https://php.net/manual/en/function.gmp-div-r.php + * @param resource|string|GMP $num1+ * The number being divided. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number that n is being divided by. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $rounding_mode [optional]+ * See the gmp_div_q function for description + * of the round argument. + *
+ * @return resource|GMP The remainder, as a GMP number. + */ +#[Pure] +function gmp_div_r(GMP|string|int $num1, GMP|string|int $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP {} + +/** + * Divide numbers + * @link https://php.net/manual/en/function.gmp-div-q.php + * @param resource|string|GMP $num1+ * The number being divided. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number that a is being divided by. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $rounding_mode [optional]+ * The result rounding is defined by the + * round, which can have the following + * values: + * GMP_ROUND_ZERO: The result is truncated + * towards 0.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_div(GMP|string|int $num1, GMP|string|int $num2, int $rounding_mode = GMP_ROUND_ZERO): GMP {} + +/** + * Modulo operation + * @link https://php.net/manual/en/function.gmp-mod.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The modulo that is being evaluated. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_mod(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Exact division of numbers + * @link https://php.net/manual/en/function.gmp-divexact.php + * @param resource|string|GMP $num1+ * The number being divided. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2+ * The number that a is being divided by. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_divexact(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Negate number + * @link https://php.net/manual/en/function.gmp-neg.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP -a, as a GMP number. + */ +#[Pure] +function gmp_neg(GMP|string|int $num): GMP {} + +/** + * Absolute value + * @link https://php.net/manual/en/function.gmp-abs.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP the absolute value of a, as a GMP number. + */ +#[Pure] +function gmp_abs(GMP|string|int $num): GMP {} + +/** + * Factorial + * @link https://php.net/manual/en/function.gmp-fact.php + * @param resource|string|GMP $num+ * The factorial number. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_fact(GMP|string|int $num): GMP {} + +/** + * Calculate square root + * @link https://php.net/manual/en/function.gmp-sqrt.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP The integer portion of the square root, as a GMP number. + */ +#[Pure] +function gmp_sqrt(GMP|string|int $num): GMP {} + +/** + * Square root with remainder + * @link https://php.net/manual/en/function.gmp-sqrtrem.php + * @param resource|string|GMP $num+ * The number being square rooted. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return array array where first element is the integer square root of + * a and the second is the remainder + * (i.e., the difference between a and the + * first element squared). + */ +#[Pure] +function gmp_sqrtrem(GMP|string|int $num): array {} + +/** + * Raise number into power + * @link https://php.net/manual/en/function.gmp-pow.php + * @param resource|string|GMP $num+ * The base number. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param positive-int $exponent+ * The positive power to raise the base. + *
+ * @return resource|GMP The new (raised) number, as a GMP number. The case of + * 0^0 yields 1. + */ +#[Pure] +function gmp_pow(GMP|string|int $num, int $exponent): GMP {} + +/** + * Raise number into power with modulo + * @link https://php.net/manual/en/function.gmp-powm.php + * @param resource|string|GMP $num+ * The base number. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $exponent+ * The positive power to raise the base. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $modulus+ * The modulo. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP The new (raised) number, as a GMP number. + */ +#[Pure] +function gmp_powm(GMP|string|int $num, GMP|string|int $exponent, GMP|string|int $modulus): GMP {} + +/** + * Perfect square check + * @link https://php.net/manual/en/function.gmp-perfect-square.php + * @param resource|string|GMP $num+ * The number being checked as a perfect square. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return bool TRUE if a is a perfect square, + * FALSE otherwise. + */ +#[Pure] +function gmp_perfect_square(GMP|string|int $num): bool {} + +/** + * Check if number is "probably prime" + * @link https://php.net/manual/en/function.gmp-prob-prime.php + * @param resource|string|GMP $num+ * The number being checked as a prime. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $repetitions [optional]+ * Reasonable values + * of reps vary from 5 to 10 (default being + * 10); a higher value lowers the probability for a non-prime to + * pass as a "probable" prime. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return int If this function returns 0, a is + * definitely not prime. If it returns 1, then + * a is "probably" prime. If it returns 2, + * then a is surely prime. + */ +#[Pure] +function gmp_prob_prime(GMP|string|int $num, int $repetitions = 10): int {} + +/** + * Random number + * @link https://php.net/manual/en/function.gmp-random-bits.php + * @param int $bitsThe number of bits. Either a GMP number resource in PHP 5.5 and earlier, + * a GMP object in PHP 5.6 and later, + * or a numeric string provided that it is possible to convert the latter to a number.
+ * @return GMP A random GMP number. + */ +function gmp_random_bits(int $bits): GMP {} + +/** + * Random number + * @link https://php.net/manual/en/function.gmp-random-range.php + * @param GMP|string|int $minA GMP number representing the lower bound for the random number
+ * @param GMP|string|int $maxA GMP number representing the upper bound for the random number
+ * @return GMP A random GMP number. + */ +function gmp_random_range(GMP|string|int $min, GMP|string|int $max): GMP {} + +/** + * Calculate GCD + * @link https://php.net/manual/en/function.gmp-gcd.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A positive GMP number that divides into both + * a and b. + */ +#[Pure] +function gmp_gcd(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Calculate GCD and multipliers + * @link https://php.net/manual/en/function.gmp-gcdext.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return array An array of GMP numbers. + */ +#[Pure] +#[ArrayShape(["g" => "mixed", "s" => "mixed", "t" => "mixed"])] +function gmp_gcdext(GMP|string|int $num1, GMP|string|int $num2): array {} + +/** + * Inverse by modulo + * @link https://php.net/manual/en/function.gmp-invert.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP|false A GMP number on success or FALSE if an inverse does not exist. + */ +#[Pure] +function gmp_invert(GMP|string|int $num1, GMP|string|int $num2): GMP|false {} + +/** + * Jacobi symbol + * @link https://php.net/manual/en/function.gmp-jacobi.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ *+ * Should be odd and must be positive. + *
+ * @return int A GMP number resource. + */ +#[Pure] +function gmp_jacobi(GMP|string|int $num1, GMP|string|int $num2): int {} + +/** + * Legendre symbol + * @link https://php.net/manual/en/function.gmp-legendre.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ *+ * Should be odd and must be positive. + *
+ * @return int A GMP number resource. + */ +#[Pure] +function gmp_legendre(GMP|string|int $num1, GMP|string|int $num2): int {} + +/** + * Compare numbers + * @link https://php.net/manual/en/function.gmp-cmp.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return int a positive value if a > b, zero if + * a = b and a negative value if a < + * b. + */ +#[Pure] +function gmp_cmp(GMP|string|int $num1, GMP|string|int $num2): int {} + +/** + * Sign of number + * @link https://php.net/manual/en/function.gmp-sign.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return int 1 if a is positive, + * -1 if a is negative, + * and 0 if a is zero. + */ +#[Pure] +function gmp_sign(GMP|string|int $num): int {} + +/** + * Random number + * @link https://php.net/manual/en/function.gmp-random.php + * @param int $limiter [optional]+ * The limiter. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A random GMP number. + * @see gmp_random_bits() + * @see gmp_random_range() + * @removed 8.0 + */ +#[Deprecated(reason: "Use see gmp_random_bits() or see gmp_random_range() instead", since: "7.2")] +function gmp_random($limiter = 20) {} + +/** + * Bitwise AND + * @link https://php.net/manual/en/function.gmp-and.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number representing the bitwise AND comparison. + */ +#[Pure] +function gmp_and(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Bitwise OR + * @link https://php.net/manual/en/function.gmp-or.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_or(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Calculates one's complement + * @link https://php.net/manual/en/function.gmp-com.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP the one's complement of a, as a GMP number. + */ +#[Pure] +function gmp_com(GMP|string|int $num): GMP {} + +/** + * Bitwise XOR + * @link https://php.net/manual/en/function.gmp-xor.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP A GMP number resource. + */ +#[Pure] +function gmp_xor(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Set bit + * @link https://php.net/manual/en/function.gmp-setbit.php + * @param resource|string|GMP $num+ * The number being set to. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $index+ * The set bit. + *
+ * @param bool $value [optional]+ * Defines if the bit is set to 0 or 1. By default the bit is set to + * 1. Index starts at 0. + *
+ * @return void A GMP number resource. + */ +function gmp_setbit(GMP $num, int $index, bool $value = true): void {} + +/** + * Clear bit + * @link https://php.net/manual/en/function.gmp-clrbit.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $indexIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return void A GMP number resource. + */ +function gmp_clrbit(GMP $num, int $index): void {} + +/** + * Scan for 0 + * @link https://php.net/manual/en/function.gmp-scan0.php + * @param resource|string|GMP $num1+ * The number to scan. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $start+ * The starting bit. + *
+ * @return int the index of the found bit, as an integer. The + * index starts from 0. + */ +#[Pure] +function gmp_scan0(GMP|string|int $num1, int $start): int {} + +/** + * Scan for 1 + * @link https://php.net/manual/en/function.gmp-scan1.php + * @param resource|string|GMP $num1+ * The number to scan. + *
+ *It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $start+ * The starting bit. + *
+ * @return int the index of the found bit, as an integer. + * If no set bit is found, -1 is returned. + */ +#[Pure] +function gmp_scan1(GMP|string|int $num1, int $start): int {} + +/** + * Tests if a bit is set + * @link https://php.net/manual/en/function.gmp-testbit.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @param int $index+ * The bit to test + *
+ * @return bool TRUE on success or FALSE on failure. + */ +#[Pure] +function gmp_testbit(GMP|string|int $num, int $index): bool {} + +/** + * Population count + * @link https://php.net/manual/en/function.gmp-popcount.php + * @param resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return int The population count of a, as an integer. + */ +#[Pure] +function gmp_popcount(GMP|string|int $num): int {} + +/** + * Hamming distance + * @link https://php.net/manual/en/function.gmp-hamdist.php + * @param resource|string|GMP $num1It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ *+ * It should be positive. + *
+ * @param resource|string|GMP $num2It can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ *+ * It should be positive. + *
+ * @return int A GMP number resource. + */ +#[Pure] +function gmp_hamdist(GMP|string|int $num1, GMP|string|int $num2): int {} + +/** + * Import from a binary string + * @link https://php.net/manual/en/function.gmp-import.php + * @param string $data The binary string being imported + * @param int $word_sizeDefault value is 1. The number of bytes in each chunk of binary + * data. This is mainly used in conjunction with the options parameter.
+ * @param int $flags Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN. + * @return GMP|false Returns a GMP number or FALSE on failure. + * @since 5.6.1 + */ +#[Pure] +function gmp_import(string $data, int $word_size = 1, int $flags = GMP_MSW_FIRST|GMP_NATIVE_ENDIAN): GMP {} + +/** + * Export to a binary string + * @link https://php.net/manual/en/function.gmp-export.php + * @param GMP|string|int $num The GMP number being exported + * @param int $word_sizeDefault value is 1. The number of bytes in each chunk of binary + * data. This is mainly used in conjunction with the options parameter.
+ * @param int $flags Default value is GMP_MSW_FIRST | GMP_NATIVE_ENDIAN. + * @return string|false Returns a string or FALSE on failure. + * @since 5.6.1 + */ +#[Pure] +function gmp_export(GMP|string|int $num, int $word_size = 1, int $flags = GMP_MSW_FIRST|GMP_NATIVE_ENDIAN): string {} + +/** + * Takes the nth root of a and returns the integer component of the result. + * @link https://php.net/manual/en/function.gmp-root.php + * @param GMP|string|int $numEither a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 + * and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @param positive-int $nth The positive root to take of a num. + * @return GMP The integer component of the resultant root, as a GMP number. + * @since 5.6 + */ +#[Pure] +function gmp_root(GMP|string|int $num, int $nth): GMP {} + +/** + * Takes the nth root of a and returns the integer component and remainder of the result. + * @link https://php.net/manual/en/function.gmp-rootrem.php + * @param GMP|string|int $numEither a GMP number resource in PHP 5.5 and earlier, a GMP object in PHP 5.6 + * and later, or a numeric string provided that it is possible to convert the latter to a number.
+ * @param positive-int $nth The positive root to take of a num. + * @return array|GMP[]A two element array, where the first element is the integer component of + * the root, and the second element is the remainder, both represented as GMP numbers.
+ * @since 5.6 + */ +#[Pure] +function gmp_rootrem(GMP|string|int $num, int $nth): array {} + +/** + * Find next prime number + * @link https://php.net/manual/en/function.gmp-nextprime.php + * @param int|resource|string|GMP $numIt can be either a GMP number resource, or a + * numeric string given that it is possible to convert the latter to a number.
+ * @return resource|GMP Return the next prime number greater than a, + * as a GMP number. + */ +#[Pure] +function gmp_nextprime(GMP|string|int $num): GMP {} + +/** + * Calculates binomial coefficient + * + * @link https://www.php.net/manual/en/function.gmp-binomial.php + * + * @param GMP|string|float|int $n + * @param int $k + * @return GMP|false + * + * @since 7.3 + */ +#[Pure] +function gmp_binomial(GMP|string|int $n, int $k): GMP {} + +/** + * Computes the Kronecker symbol + * + * @link https://www.php.net/manual/en/function.gmp-kronecker.php + * + * @param GMP|string|float|int $num1 + * @param GMP|string|float|int $num2 + * @return int + * + * @since 7.3 + */ +#[Pure] +function gmp_kronecker(GMP|string|int $num1, GMP|string|int $num2): int {} + +/** + * Computes the least common multiple of A and B + * + * @link https://www.php.net/manual/en/function.gmp-lcm.php + * + * @param GMP|string|float|int $num1 + * @param GMP|string|float|int $num2 + * @return GMP + * + * @since 7.3 + */ +#[Pure] +function gmp_lcm(GMP|string|int $num1, GMP|string|int $num2): GMP {} + +/** + * Perfect power check + * + * @link https://www.php.net/manual/en/function.gmp-perfect-power.php + * + * @param GMP|string|float|int $num + * @return bool + * + * @since 7.3 + */ +#[Pure] +function gmp_perfect_power(GMP|string|int $num): bool {} + +define('GMP_ROUND_ZERO', 0); +define('GMP_ROUND_PLUSINF', 1); +define('GMP_ROUND_MINUSINF', 2); +define('GMP_MSW_FIRST', 1); +define('GMP_LSW_FIRST', 2); +define('GMP_LITTLE_ENDIAN', 4); +define('GMP_BIG_ENDIAN', 8); +define('GMP_NATIVE_ENDIAN', 16); + +/** + * The GMP library version + * @link https://php.net/manual/en/gmp.constants.php + */ +define('GMP_VERSION', "6.3.0"); + +define('GMP_MPIR_VERSION', '3.0.0'); + +class GMP implements Serializable +{ + /** + * @since 8.2 + */ + public function __construct(int|string $num = 0, int $base = 0) {} + + /** + * String representation of object + * @link https://php.net/manual/en/serializable.serialize.php + * @return string the string representation of the object or null + */ + public function serialize() {} + + public function __serialize(): array {} + + /** + * Constructs the object + * @link https://php.net/manual/en/serializable.unserialize.php + * @param string $data+ * The string representation of the object. + *
+ * @return void + */ + public function unserialize($data) {} + + public function __unserialize(array $data): void {} +} +// End of gmp v. diff --git a/phpstorm-stubs/gnupg/gnupg.php b/phpstorm-stubs/gnupg/gnupg.php new file mode 100644 index 0000000..3c37da9 --- /dev/null +++ b/phpstorm-stubs/gnupg/gnupg.php @@ -0,0 +1,533 @@ + + * @link https://github.com/iMega/grpc-phpdoc + */ +/** + * Grpc + * @see https://grpc.io + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + +namespace Grpc; + + /** + * Register call error constants + */ + + /** + * everything went ok + */ + const CALL_OK = 0; + + /** + * something failed, we don't know what + */ + const CALL_ERROR = 1; + + /** + * this method is not available on the server + */ + const CALL_ERROR_NOT_ON_SERVER = 2; + + /** + * this method is not available on the client + */ + const CALL_ERROR_NOT_ON_CLIENT = 3; + + /** + * this method must be called before server_accept + */ + const CALL_ERROR_ALREADY_ACCEPTED = 4; + + /** + * this method must be called before invoke + */ + const CALL_ERROR_ALREADY_INVOKED = 5; + + /** + * this method must be called after invoke + */ + const CALL_ERROR_NOT_INVOKED = 6; + + /** + * this call is already finished + * (writes_done or write_status has already been called) + */ + const CALL_ERROR_ALREADY_FINISHED = 7; + + /** + * there is already an outstanding read/write operation on the call + */ + const CALL_ERROR_TOO_MANY_OPERATIONS = 8; + + /** + * the flags value was illegal for this call + */ + const CALL_ERROR_INVALID_FLAGS = 9; + + /** + * invalid metadata was passed to this call + */ + const CALL_ERROR_INVALID_METADATA = 10; + + /** + * invalid message was passed to this call + */ + const CALL_ERROR_INVALID_MESSAGE = 11; + + /** + * completion queue for notification has not been registered with the + * server + */ + const CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE = 12; + + /** + * this batch of operations leads to more operations than allowed + */ + const CALL_ERROR_BATCH_TOO_BIG = 13; + + /** + * payload type requested is not the type registered + */ + const CALL_ERROR_PAYLOAD_TYPE_MISMATCH = 14; + + /* + * Register write flags + */ + + /** + * Hint that the write may be buffered and need not go out on the wire + * immediately. GRPC is free to buffer the message until the next non-buffered + * write, or until writes_done, but it need not buffer completely or at all. + */ + const WRITE_BUFFER_HINT = 1; + + /** + * Force compression to be disabled for a particular write + * (start_write/add_metadata). Illegal on invoke/accept. + */ + const WRITE_NO_COMPRESS = 2; + + /* + * Register status constants + */ + + /** + * Not an error; returned on success + */ + const STATUS_OK = 0; + + /** + * The operation was cancelled (typically by the caller). + */ + const STATUS_CANCELLED = 1; + + /** + * Unknown error. An example of where this error may be returned is + * if a Status value received from another address space belongs to + * an error-space that is not known in this address space. Also + * errors raised by APIs that do not return enough error information + * may be converted to this error. + */ + const STATUS_UNKNOWN = 2; + + /** + * Client specified an invalid argument. Note that this differs + * from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments + * that are problematic regardless of the state of the system + * (e.g., a malformed file name). + */ + const STATUS_INVALID_ARGUMENT = 3; + + /** + * Deadline expired before operation could complete. For operations + * that change the state of the system, this error may be returned + * even if the operation has completed successfully. For example, a + * successful response from a server could have been delayed long + * enough for the deadline to expire. + */ + const STATUS_DEADLINE_EXCEEDED = 4; + + /** + * Some requested entity (e.g., file or directory) was not found. + */ + const STATUS_NOT_FOUND = 5; + + /* Some entity that we attempted to create (e.g., file or directory) + * already exists. + */ + const STATUS_ALREADY_EXISTS = 6; + + /** + * The caller does not have permission to execute the specified + * operation. PERMISSION_DENIED must not be used for rejections + * caused by exhausting some resource (use RESOURCE_EXHAUSTED + * instead for those errors). PERMISSION_DENIED must not be + * used if the caller can not be identified (use UNAUTHENTICATED + * instead for those errors). + */ + const STATUS_PERMISSION_DENIED = 7; + + /** + * The request does not have valid authentication credentials for the + * operation. + */ + const STATUS_UNAUTHENTICATED = 16; + + /** + * Some resource has been exhausted, perhaps a per-user quota, or + * perhaps the entire file system is out of space. + */ + const STATUS_RESOURCE_EXHAUSTED = 8; + + /** + * Operation was rejected because the system is not in a state + * required for the operation's execution. For example, directory + * to be deleted may be non-empty, an rmdir operation is applied to + * a non-directory, etc. + * + * A litmus test that may help a service implementor in deciding + * between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE: + * (a) Use UNAVAILABLE if the client can retry just the failing call. + * (b) Use ABORTED if the client should retry at a higher-level + * (e.g., restarting a read-modify-write sequence). + * (c) Use FAILED_PRECONDITION if the client should not retry until + * the system state has been explicitly fixed. E.g., if an "rmdir" + * fails because the directory is non-empty, FAILED_PRECONDITION + * should be returned since the client should not retry unless + * they have first fixed up the directory by deleting files from it. + * (d) Use FAILED_PRECONDITION if the client performs conditional + * REST Get/Update/Delete on a resource and the resource on the + * server does not match the condition. E.g., conflicting + * read-modify-write on the same resource. + */ + const STATUS_FAILED_PRECONDITION = 9; + + /** + * The operation was aborted, typically due to a concurrency issue + * like sequencer check failures, transaction aborts, etc. + * + * See litmus test above for deciding between FAILED_PRECONDITION, + * ABORTED, and UNAVAILABLE. + */ + const STATUS_ABORTED = 10; + + /** + * Operation was attempted past the valid range. E.g., seeking or + * reading past end of file. + * + * Unlike INVALID_ARGUMENT, this error indicates a problem that may + * be fixed if the system state changes. For example, a 32-bit file + * system will generate INVALID_ARGUMENT if asked to read at an + * offset that is not in the range [0,2^32-1], but it will generate + * OUT_OF_RANGE if asked to read from an offset past the current + * file size. + * + * There is a fair bit of overlap between FAILED_PRECONDITION and + * OUT_OF_RANGE. We recommend using OUT_OF_RANGE (the more specific + * error) when it applies so that callers who are iterating through + * a space can easily look for an OUT_OF_RANGE error to detect when + * they are done. + */ + const STATUS_OUT_OF_RANGE = 11; + + /** + * Operation is not implemented or not supported/enabled in this service. + */ + const STATUS_UNIMPLEMENTED = 12; + + /** + * Internal errors. Means some invariants expected by underlying + * system has been broken. If you see one of these errors, + * something is very broken. + */ + const STATUS_INTERNAL = 13; + + /** + * The service is currently unavailable. This is a most likely a + * transient condition and may be corrected by retrying with + * a backoff. + * + * See litmus test above for deciding between FAILED_PRECONDITION, + * ABORTED, and UNAVAILABLE. + */ + const STATUS_UNAVAILABLE = 14; + + /** + * Unrecoverable data loss or corruption. + */ + const STATUS_DATA_LOSS = 15; + + /* + * Register op type constants + */ + + /** + * Send initial metadata: one and only one instance MUST be sent for each + * call, unless the call was cancelled - in which case this can be skipped. + * This op completes after all bytes of metadata have been accepted by + * outgoing flow control. + */ + const OP_SEND_INITIAL_METADATA = 0; + + /** + * Send a message: 0 or more of these operations can occur for each call. + * This op completes after all bytes for the message have been accepted by + * outgoing flow control. + */ + const OP_SEND_MESSAGE = 1; + + /** Send a close from the client: one and only one instance MUST be sent from + * the client, unless the call was cancelled - in which case this can be + * skipped. + * This op completes after all bytes for the call (including the close) + * have passed outgoing flow control. + */ + const OP_SEND_CLOSE_FROM_CLIENT = 2; + + /** + * Send status from the server: one and only one instance MUST be sent from + * the server unless the call was cancelled - in which case this can be + * skipped. + * This op completes after all bytes for the call (including the status) + * have passed outgoing flow control. + */ + const OP_SEND_STATUS_FROM_SERVER = 3; + + /** + * Receive initial metadata: one and only one MUST be made on the client, + * must not be made on the server. + * This op completes after all initial metadata has been read from the + * peer. + */ + const OP_RECV_INITIAL_METADATA = 4; + + /** + * Receive a message: 0 or more of these operations can occur for each call. + * This op completes after all bytes of the received message have been + * read, or after a half-close has been received on this call. + */ + const OP_RECV_MESSAGE = 5; + + /** + * Receive status on the client: one and only one must be made on the client. + * This operation always succeeds, meaning ops paired with this operation + * will also appear to succeed, even though they may not have. In that case + * the status will indicate some failure. + * This op completes after all activity on the call has completed. + */ + const OP_RECV_STATUS_ON_CLIENT = 6; + + /** + * Receive close on the server: one and only one must be made on the + * server. + * This op completes after the close has been received by the server. + * This operation always succeeds, meaning ops paired with this operation + * will also appear to succeed, even though they may not have. + */ + const OP_RECV_CLOSE_ON_SERVER = 7; + + /* + * Register connectivity state constants + */ + + /** + * channel is idle + */ + const CHANNEL_IDLE = 0; + + /** + * channel is connecting + */ + const CHANNEL_CONNECTING = 1; + + /** + * channel is ready for work + */ + const CHANNEL_READY = 2; + + /** + * channel has seen a failure but expects to recover + */ + const CHANNEL_TRANSIENT_FAILURE = 3; + + /** + * channel has seen a failure that it cannot recover from + */ + const CHANNEL_SHUTDOWN = 4; + const CHANNEL_FATAL_FAILURE = 4; + + /** + * Class Server + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class Server + { + /** + * Constructs a new instance of the Server class + * + * @param array $args The arguments to pass to the server (optional) + */ + public function __construct(array $args) {} + + /** + * Request a call on a server. Creates a single GRPC_SERVER_RPC_NEW event. + * + * @param int $tag_new The tag to associate with the new request + * @param int $tag_cancel The tag to use if the call is cancelled + */ + public function requestCall($tag_new, $tag_cancel) {} + + /** + * Add a http2 over tcp listener. + * + * @param string $addr The address to add + * + * @return bool true on success, false on failure + */ + public function addHttp2Port($addr) {} + + /** + * Add a secure http2 over tcp listener. + * + * @param string $addr The address to add + * @param ServerCredentials $creds_obj + * + * @return bool true on success, false on failure + */ + public function addSecureHttp2Port($addr, $creds_obj) {} + + /** + * Start a server - tells all listeners to start listening + */ + public function start() {} + } + + /** + * Class ServerCredentials + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class ServerCredentials + { + /** + * Create SSL credentials. + * + * @param string $pem_root_certs PEM encoding of the server root certificates + * @param string $pem_private_key PEM encoding of the client's private key + * @param string $pem_cert_chain PEM encoding of the client's certificate chain + * + * @return object Credentials The new SSL credentials object + * @throws \InvalidArgumentException + */ + public static function createSsl( + $pem_root_certs, + $pem_private_key, + $pem_cert_chain + ) {} + } + + /** + * Class Channel + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class Channel + { + /** + * Construct an instance of the Channel class. If the $args array contains a + * "credentials" key mapping to a ChannelCredentials object, a secure channel + * will be created with those credentials. + * + * @param string $target The hostname to associate with this channel + * @param array $args The arguments to pass to the Channel (optional) + * + * @throws \InvalidArgumentException + */ + public function __construct($target, $args = []) {} + + /** + * Get the endpoint this call/stream is connected to + * + * @return string The URI of the endpoint + */ + public function getTarget() {} + + /** + * Get the connectivity state of the channel + * + * @param bool $try_to_connect try to connect on the channel + * + * @return int The grpc connectivity state + * @throws \InvalidArgumentException + */ + public function getConnectivityState($try_to_connect = false) {} + + /** + * Watch the connectivity state of the channel until it changed + * + * @param int $last_state The previous connectivity state of the channel + * @param Timeval $deadline_obj The deadline this function should wait until + * + * @return bool If the connectivity state changes from last_state + * before deadline + * @throws \InvalidArgumentException + */ + public function watchConnectivityState($last_state, Timeval $deadline_obj) {} + + /** + * Close the channel + */ + public function close() {} + } + + /** + * Class ChannelCredentials + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class ChannelCredentials + { + /** + * Set default roots pem. + * + * @param string $pem_roots PEM encoding of the server root certificates + * + * @throws \InvalidArgumentException + */ + public static function setDefaultRootsPem($pem_roots) {} + + /** + * Create a default channel credentials object. + * + * @return ChannelCredentials The new default channel credentials object + */ + public static function createDefault() {} + + /** + * Create SSL credentials. + * + * @param string|null $pem_root_certs PEM encoding of the server root certificates + * @param string|null $pem_private_key PEM encoding of the client's private key + * @param string|null $pem_cert_chain PEM encoding of the client's certificate chain + * + * @return ChannelCredentials The new SSL credentials object + * @throws \InvalidArgumentException + */ + public static function createSsl( + string $pem_root_certs = null, + string $pem_private_key = null, + string $pem_cert_chain = null + ) {} + + /** + * Create composite credentials from two existing credentials. + * + * @param ChannelCredentials $cred1 The first credential + * @param CallCredentials $cred2 The second credential + * + * @return ChannelCredentials The new composite credentials object + * @throws \InvalidArgumentException + */ + public static function createComposite( + ChannelCredentials $cred1, + CallCredentials $cred2 + ) {} + + /** + * Create insecure channel credentials + * + * @return null + */ + public static function createInsecure() {} + } + + /** + * Class Call + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class Call + { + /** + * Constructs a new instance of the Call class. + * + * @param Channel $channel The channel to associate the call with. + * Must not be closed. + * @param string $method The method to call + * @param Timeval $absolute_deadline The deadline for completing the call + * @param null|string $host_override The host is set by user (optional) + * + * @throws \InvalidArgumentException + */ + public function __construct( + Channel $channel, + $method, + Timeval $absolute_deadline, + $host_override = null + ) {} + + /** + * Start a batch of RPC actions. + * + * @param array $batch Array of actions to take + * + * @return object Object with results of all actions + * @throws \InvalidArgumentException + * @throws \LogicException + */ + public function startBatch(array $batch) {} + + /** + * Set the CallCredentials for this call. + * + * @param CallCredentials $creds_obj The CallCredentials object + * + * @return int The error code + * @throws \InvalidArgumentException + */ + public function setCredentials(CallCredentials $creds_obj) {} + + /** + * Get the endpoint this call/stream is connected to + * + * @return string The URI of the endpoint + */ + public function getPeer() {} + + /** + * Cancel the call. This will cause the call to end with STATUS_CANCELLED if it + * has not already ended with another status. + */ + public function cancel() {} + } + + /** + * Class CallCredentials + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class CallCredentials + { + /** + * Create composite credentials from two existing credentials. + * + * @param CallCredentials $cred1 The first credential + * @param CallCredentials $cred2 The second credential + * + * @return CallCredentials The new composite credentials object + * @throws \InvalidArgumentException + */ + public static function createComposite( + CallCredentials $cred1, + CallCredentials $cred2 + ) {} + + /** + * Create a call credentials object from the plugin API + * + * @param \Closure $callback The callback function + * + * @return CallCredentials The new call credentials object + * @throws \InvalidArgumentException + */ + public static function createFromPlugin(\Closure $callback) {} + } + + /** + * Class Timeval + * + * @see https://github.com/grpc/grpc/tree/master/src/php/ext/grpc + */ + class Timeval + { + /** + * Constructs a new instance of the Timeval class + * + * @param int $usec The number of microseconds in the interval + */ + public function __construct($usec) {} + + /** + * Adds another Timeval to this one and returns the sum. Calculations saturate + * at infinities. + * + * @param Timeval $other The other Timeval object to add + * + * @return Timeval A new Timeval object containing the sum + * @throws \InvalidArgumentException + */ + public function add(Timeval $other) {} + + /** + * Return negative, 0, or positive according to whether a < b, a == b, or a > b + * respectively. + * + * @param Timeval $a The first time to compare + * @param Timeval $b The second time to compare + * + * @return int + * @throws \InvalidArgumentException + */ + public static function compare(Timeval $a, Timeval $b) {} + + /** + * Returns the infinite future time value as a timeval object + * + * @return Timeval Infinite future time value + */ + public static function infFuture() {} + + /** + * Returns the infinite past time value as a timeval object + * + * @return Timeval Infinite past time value + */ + public static function infPast() {} + + /** + * Returns the current time as a timeval object + * + * @return Timeval The current time + */ + public static function now() {} + + /** + * Checks whether the two times are within $threshold of each other + * + * @param Timeval $a The first time to compare + * @param Timeval $b The second time to compare + * @param Timeval $threshold The threshold to check against + * + * @return bool True if $a and $b are within $threshold, False otherwise + * @throws \InvalidArgumentException + */ + public static function similar(Timeval $a, Timeval $b, Timeval $threshold) {} + + /** + * Sleep until this time, interpreted as an absolute timeout + */ + public function sleepUntil() {} + + /** + * Subtracts another Timeval from this one and returns the difference. + * Calculations saturate at infinities. + * + * @param Timeval $other The other Timeval object to subtract + * + * @return Timeval A new Timeval object containing the sum + * @throws \InvalidArgumentException + */ + public function subtract(Timeval $other) {} + + /** + * Returns the zero time interval as a timeval object + * + * @return Timeval Zero length time interval + */ + public static function zero() {} + } diff --git a/phpstorm-stubs/hash/hash.php b/phpstorm-stubs/hash/hash.php new file mode 100644 index 0000000..1ba1003 --- /dev/null +++ b/phpstorm-stubs/hash/hash.php @@ -0,0 +1,475 @@ + + * Generate a hash value (message digest) + * @link https://php.net/manual/en/function.hash.php + * @param string $algo+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) + *
+ * @param string $data+ * Message to be hashed. + *
+ * @param bool $binary [optional]+ * When set to TRUE, outputs raw binary data. + * FALSE outputs lowercase hexits. + *
+ * @return string a string containing the calculated message digest as lowercase hexits + * unless raw_output is set to true in which case the raw + * binary representation of the message digest is returned. + */ +#[Pure] +function hash(string $algo, string $data, bool $binary = false, #[PhpStormStubsElementAvailable('8.1')] array $options = []): string {} + +/** + * Timing attack safe string comparison + * @link https://php.net/manual/en/function.hash-equals.php + * @param string $known_stringThe string of known length to compare against
+ * @param string $user_stringThe user-supplied string
+ * @return boolReturns TRUE when the two strings are equal, FALSE otherwise.
+ * @since 5.6 + */ +#[Pure] +function hash_equals(string $known_string, string $user_string): bool {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) + *
+ * @param string $filename+ * URL describing location of file to be hashed; Supports fopen wrappers. + *
+ * @param bool $binary [optional]+ * When set to TRUE, outputs raw binary data. + * FALSE outputs lowercase hexits. + *
+ * @return string|false a string containing the calculated message digest as lowercase hexits + * unless raw_output is set to true in which case the raw + * binary representation of the message digest is returned. + */ +#[Pure] +function hash_file(string $algo, string $filename, bool $binary = false, #[PhpStormStubsElementAvailable('8.1')] array $options = []): string|false {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * Message to be hashed. + *
+ * @param string $key+ * Shared secret key used for generating the HMAC variant of the message digest. + *
+ * @param bool $binary [optional]+ * When set to TRUE, outputs raw binary data. + * FALSE outputs lowercase hexits. + *
+ * @return string a string containing the calculated message digest as lowercase hexits + * unless raw_output is set to true in which case the raw + * binary representation of the message digest is returned. + */ +#[Pure] +function hash_hmac(string $algo, string $data, string $key, bool $binary = false): string {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * URL describing location of file to be hashed; Supports fopen wrappers. + *
+ * @param string $key+ * Shared secret key used for generating the HMAC variant of the message digest. + *
+ * @param bool $binary [optional]+ * When set to TRUE, outputs raw binary data. + * FALSE outputs lowercase hexits. + *
+ * @return string|false a string containing the calculated message digest as lowercase hexits + * unless raw_output is set to true in which case the raw + * binary representation of the message digest is returned. + */ +#[Pure] +function hash_hmac_file(string $algo, string $filename, string $key, bool $binary = false): string|false {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..). For a list of supported algorithms see hash_algos.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * Optional settings for hash generation, currently supports only one option: + * HASH_HMAC. When specified, the key + * must be specified. + *
+ * @param string $key+ * When HASH_HMAC is specified for options, + * a shared secret key to be used with the HMAC hashing method must be supplied in this + * parameter. + *
+ * @return HashContext|resource a Hashing Context resource for use with hash_update, + * hash_update_stream, hash_update_file, + * and hash_final. + */ +#[Pure] +#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] +function hash_init(string $algo, int $flags = 0, string $key = "", #[PhpStormStubsElementAvailable('8.1')] array $options = []) {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ * Hashing context returned by {@see hash_init}. + *
+ * @param string $data+ * Message to be included in the hash digest. + *
+ * @return bool TRUE. + */ +function hash_update(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, string $data): bool {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ * Hashing context returned by {@see hash_init}. + *
+ * @param resource $stream+ * Open file handle as returned by any stream creation function. + *
+ * @param int $length [optional]+ * Maximum number of characters to copy from handle + * into the hashing context. + *
+ * @return int Actual number of bytes added to the hashing context from handle. + */ +function hash_update_stream(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, $stream, int $length = -1): int {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ * Hashing context returned by hash_init. + *
+ * @param string $filename+ * URL describing location of file to be hashed; Supports fopen wrappers. + *
+ * @param resource $stream_context [optional]+ * Stream context as returned by stream_context_create. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function hash_update_file(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, string $filename, $stream_context): bool {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ * Hashing context returned by {@see hash_init}. + *
+ * @param bool $binary [optional]+ * When set to TRUE, outputs raw binary data. + * FALSE outputs lowercase hexits. + *
+ * @return string a string containing the calculated message digest as lowercase hexits + * unless raw_output is set to true in which case the raw + * binary representation of the message digest is returned. + */ +function hash_final(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, bool $binary = false): string {} + +/** + * Copy hashing context + * @link https://php.net/manual/en/function.hash-copy.php + * @param HashContext|resource $context+ * Hashing context returned by {@see hash_init}. + *
+ * @return HashContext|resource a copy of Hashing Context resource. + */ +#[Pure] +#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] +function hash_copy(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context) {} + +/** + * (PHP 5 >= 5.1.2, PECL hash >= 1.1)+ *+ * @param string $keyNote
+ *+ * Non-cryptographic hash functions are not allowed. + *
+ *
Input keying material (raw binary). Cannot be empty.
+ * @param int $length [optional]Desired output length in bytes. Cannot be greater than 255 times the chosen hash function size. + * If length is 0, the output length will default to the chosen hash function size.
+ * @param string $info [optional]Application/context-specific info string.
+ * @param string $salt [optional]Salt to use during derivation. While optional, adding random salt significantly improves the strength of HKDF.
+ * @return string|falseReturns a string containing a raw binary representation of the derived key (also known as output keying material - OKM); or FALSE on failure.
+ * @since 7.1.2 + * Generate a HKDF key derivation of a supplied key input + * @link https://php.net/manual/en/function.hash-hkdf.php + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function hash_hkdf(string $algo, string $key, int $length = 0, string $info = '', string $salt = '') {} + +/** + * Return a list of registered hashing algorithms suitable for hash_hmac + * @since 7.2 + * Return a list of registered hashing algorithms suitable for hash_hmac + * @return string[] Returns a numerically indexed array containing the list of supported hashing algorithms suitable for {@see hash_hmac()}. + */ +#[Pure] +function hash_hmac_algos(): array {} + +/** + * Generate a PBKDF2 key derivation of a supplied password + * @link https://php.net/manual/en/function.hash-pbkdf2.php + * @param string $algo
+ * Name of selected hashing algorithm (i.e. "md5", "sha256", "haval160,4", etc..) See hash_algos for a list of supported algorithms.
+ * Since 7.2.0 usage of non-cryptographic hash functions (adler32, crc32, crc32b, fnv132, fnv1a32, fnv164, fnv1a64, joaat) was disabled.
+ *
+ * The password to use for the derivation. + *
+ * @param string $salt+ * The salt to use for the derivation. This value should be generated randomly. + *
+ * @param int $iterations+ * The number of internal iterations to perform for the derivation. + *
+ * @param int $length [optional]
+ * The length of the output string. If raw_output is TRUE this corresponds to the byte-length of the derived key,
+ * if raw_output is FALSE this corresponds to twice the byte-length of the derived key (as every byte of the key is returned as two hexits).
+ * If 0 is passed, the entire output of the supplied algorithm is used.
+ *
+ * When set to TRUE, outputs raw binary data. FALSE outputs lowercase hexits. + *
+ * @param array $options [optional]+ * Additional options. This parameter was added for PHP 8.1 only. + *
+ * @return string a string containing the derived key as lowercase hexits unless + * raw_output is set to TRUE in which case the raw + * binary representation of the derived key is returned. + * @since 5.5 + */ +#[Pure] +function hash_pbkdf2( + string $algo, + string $password, + string $salt, + int $iterations, + int $length = 0, + bool $binary = false, + #[PhpStormStubsElementAvailable(from: '8.1')] array $options = [] +): string {} + +/** + * Generates a key + * @link https://php.net/manual/en/function.mhash-keygen-s2k.php + * @param int $algo+ * The hash ID used to create the key. + * One of the MHASH_hashname constants. + *
+ * @param string $password+ * An user supplied password. + *
+ * @param string $salt+ * Must be different and random enough for every key you generate in + * order to create different keys. Because salt + * must be known when you check the keys, it is a good idea to append + * the key to it. Salt has a fixed length of 8 bytes and will be padded + * with zeros if you supply less bytes. + *
+ * @param int $length+ * The key length, in bytes. + *
+ * @return string|false the generated key as a string, or FALSE on error. + * @deprecated 8.1 + */ +#[Pure] +#[Deprecated(since: '8.1')] +function mhash_keygen_s2k(int $algo, string $password, string $salt, int $length): string|false {} + +/** + * Gets the block size of the specified hash + * @link https://php.net/manual/en/function.mhash-get-block-size.php + * @param int $algo+ * The hash ID. One of the MHASH_hashname constants. + *
+ * @return int|false the size in bytes or FALSE, if the hash + * does not exist. + * @deprecated 8.1 + */ +#[Pure] +#[Deprecated(since: '8.1')] +function mhash_get_block_size(int $algo): int|false {} + +/** + * Gets the name of the specified hash + * @link https://php.net/manual/en/function.mhash-get-hash-name.php + * @param int $algo+ * The hash ID. One of the MHASH_hashname constants. + *
+ * @return string|false the name of the hash or FALSE, if the hash does not exist. + * @deprecated 8.1 + */ +#[Pure] +#[Deprecated(since: '8.1')] +function mhash_get_hash_name(int $algo): string|false {} + +/** + * Gets the highest available hash ID + * @link https://php.net/manual/en/function.mhash-count.php + * @return int<0, max> the highest available hash ID. Hashes are numbered from 0 to this + * hash ID. + * @deprecated 8.1 + */ +#[Pure] +#[Deprecated(since: '8.1')] +function mhash_count(): int {} + +/** + * Computes hash + * @link https://php.net/manual/en/function.mhash.php + * @param int $algo+ * The hash ID. One of the MHASH_hashname constants. + *
+ * @param string $data+ * The user input, as a string. + *
+ * @param string|null $key [optional]+ * If specified, the function will return the resulting HMAC instead. + * HMAC is keyed hashing for message authentication, or simply a message + * digest that depends on the specified key. Not all algorithms + * supported in mhash can be used in HMAC mode. + *
+ * @return string|false the resulting hash (also called digest) or HMAC as a string, or + * FALSE on error. + * @deprecated 8.1 + */ +#[Pure] +#[Deprecated(since: '8.1')] +function mhash(int $algo, string $data, ?string $key): string|false {} + +/** + * Optional flag for hash_init. + * Indicates that the HMAC digest-keying algorithm should be + * applied to the current hashing context. + * @link https://php.net/manual/en/hash.constants.php + */ +define('HASH_HMAC', 1); +define('MHASH_CRC32', 0); +/** + * @since 7.4 + */ +define('MHASH_CRC32C', 34); +define('MHASH_MD5', 1); +define('MHASH_SHA1', 2); +define('MHASH_HAVAL256', 3); +define('MHASH_RIPEMD160', 5); +define('MHASH_TIGER', 7); +define('MHASH_GOST', 8); +define('MHASH_CRC32B', 9); +define('MHASH_HAVAL224', 10); +define('MHASH_HAVAL192', 11); +define('MHASH_HAVAL160', 12); +define('MHASH_HAVAL128', 13); +define('MHASH_TIGER128', 14); +define('MHASH_TIGER160', 15); +define('MHASH_MD4', 16); +define('MHASH_SHA256', 17); +define('MHASH_ADLER32', 18); +define('MHASH_SHA224', 19); +define('MHASH_SHA512', 20); +define('MHASH_SHA384', 21); +define('MHASH_WHIRLPOOL', 22); +define('MHASH_RIPEMD128', 23); +define('MHASH_RIPEMD256', 24); +define('MHASH_RIPEMD320', 25); +define('MHASH_SNEFRU256', 27); +define('MHASH_MD2', 28); +define('MHASH_FNV132', 29); +define('MHASH_FNV1A32', 30); +define('MHASH_FNV164', 31); +define('MHASH_FNV1A64', 32); +define('MHASH_JOAAT', 33); +/** + * @since 8.1 + */ +define('MHASH_MURMUR3A', 35); +/** + * @since 8.1 + */ +define('MHASH_MURMUR3C', 36); +/** + * @since 8.1 + */ +define('MHASH_MURMUR3F', 37); +/** + * @since 8.1 + */ +define('MHASH_XXH32', 38); +/** + * @since 8.1 + */ +define('MHASH_XXH64', 39); +/** + * @since 8.1 + */ +define('MHASH_XXH3', 40); +/** + * @since 8.1 + */ +define('MHASH_XXH128', 41); + +/** + * @since 7.2 + */ +final class HashContext +{ + private function __construct() {} + + public function __serialize(): array {} + + /** + * @param array $data + */ + public function __unserialize(#[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $data): void {} +} +// End of hash v.1.0 diff --git a/phpstorm-stubs/http/http.php b/phpstorm-stubs/http/http.php new file mode 100644 index 0000000..2d65391 --- /dev/null +++ b/phpstorm-stubs/http/http.php @@ -0,0 +1,3289 @@ + + * HttpDeflateStream class constructor + * @link https://php.net/manual/en/function.httpdeflatestream-construct.php + * @param int $flags [optional]+ * initialization flags + *
+ */ + public function __construct($flags = null) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * data to deflate + *
+ * @return string|false deflated data on success or false on failure. + */ + public function update($data) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * more data to deflate + *
+ * @return string|false some deflated data as string on success or false on failure. + */ + public function flush($data = null) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * data to deflate + *
+ * @return string the final part of deflated data. + */ + public function finish($data = null) {} + + /** + * (PECL pecl_http >= 1.4.0)+ * initialization flags + *
+ * @param string $class_name [optional]+ * name of a subclass of HttpDeflateStream + *
+ * @return HttpDeflateStream + */ + public static function factory($flags = null, $class_name = null) {} +} + +/** + * @link https://php.net/manual/en/class.httpinflatestream.php + */ +class HttpInflateStream +{ + public const FLUSH_NONE = 0; + public const FLUSH_SYNC = 1048576; + public const FLUSH_FULL = 2097152; + + /** + * (PECL pecl_http >= 1.0.0)+ * initialization flags + *
+ */ + public function __construct($flags = null) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * data to inflate + *
+ * @return string|false inflated data on success or false on failure. + */ + public function update($data) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * more data to inflate + *
+ * @return string|false some inflated data as string on success or false on failure. + */ + public function flush($data = null) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * data to inflate + *
+ * @return string the final part of inflated data. + */ + public function finish($data = null) {} + + /** + * (PECL pecl_http >= 1.4.0)+ * initialization flags + *
+ * @param string $class_name [optional]+ * name of a subclass of HttpInflateStream + *
+ * @return HttpInflateStream + */ + public static function factory($flags = null, $class_name = null) {} +} + +/** + * @link https://php.net/manual/en/class.httpmessage.php + */ +class HttpMessage implements Countable, Serializable, Iterator +{ + public const TYPE_NONE = 0; + public const TYPE_REQUEST = 1; + public const TYPE_RESPONSE = 2; + protected $type; + protected $body; + protected $requestMethod; + protected $requestUrl; + protected $responseStatus; + protected $responseCode; + protected $httpVersion; + protected $headers; + protected $parentMessage; + + /** + * (PECL pecl_http >= 0.10.0)+ * a single or several consecutive HTTP messages + *
+ */ + public function __construct($message = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the new body of the message + *
+ * @return void + */ + public function setBody($body) {} + + /** + * (PECL pecl_http >= 1.1.0)+ * header name + *
+ * @return string|null the header value on success or NULL if the header does not exist. + */ + #[Pure] + public function getHeader($header) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * associative array containing the new HTTP headers, which will replace all previous HTTP headers of the message + *
+ * @return void + */ + public function setHeaders(array $header) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * associative array containing the additional HTTP headers to add to the messages existing headers + *
+ * @param bool $append [optional]+ * if true, and a header with the same name of one to add exists already, this respective + * header will be converted to an array containing both header values, otherwise + * it will be overwritten with the new header value + *
+ * @return void + */ + public function addHeaders(array $headers, $append = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the HttpMessage::TYPE + *
+ * @return void + */ + public function setType($type) {} + + #[Pure] + public function getInfo() {} + + /** + * @param $http_info + */ + public function setInfo($http_info) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * HTTP response code + *
+ * @return bool TRUE on success, or FALSE if the message is not of type + * HttpMessage::TYPE_RESPONSE or the response code is out of range (100-510). + */ + public function setResponseCode($code) {} + + /** + * (PECL pecl_http >= 0.23.0)+ * the response status text + *
+ * @return bool TRUE on success or FALSE if the message is not of type + * HttpMessage::TYPE_RESPONSE. + */ + public function setResponseStatus($status) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the request method name + *
+ * @return bool TRUE on success, or FALSE if the message is not of type + * HttpMessage::TYPE_REQUEST or an invalid request method was supplied. + */ + public function setRequestMethod($method) {} + + /** + * (PECL pecl_http >= 0.21.0)+ * the request URL + *
+ * @return bool TRUE on success, or FALSE if the message is not of type + * HttpMessage::TYPE_REQUEST or supplied URL was empty. + */ + public function setRequestUrl($url) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the HTTP protocol version + *
+ * @return bool TRUE on success, or FALSE if supplied version is out of range (1.0/1.1). + */ + public function setHttpVersion($version) {} + + /** + * (PECL pecl_http >= 1.0.0)+ * the magic.mime database to use + *
+ * @param int $magic_mode [optional]+ * flags for libmagic + *
+ * @return string|false the guessed content type on success or false on failure. + */ + public function guessContentType($magic_file, $magic_mode = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * specifies whether the returned string should also contain any parent messages + *
+ * @return string the message as string. + */ + public function toString($include_parent = null) {} + + /** + * (PECL pecl_http >= 0.22.0)+ * a single or several consecutive HTTP messages + *
+ * @param string $class_name [optional]+ * a class extending HttpMessage + *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure. + */ + public static function factory($raw_message = null, $class_name = null) {} + + /** + * (PECL pecl_http 0.10.0-1.3.3)+ * a single or several consecutive HTTP messages + *
+ * @param string $class_name [optional]+ * a class extending HttpMessage + *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure. + */ + public static function fromString($raw_message = null, $class_name = null) {} + + /** + * (PECL pecl_http >= 1.5.0)+ * The message type. See HttpMessage type constants. + *
+ * @param string $class_name [optional]+ * a class extending HttpMessage + *
+ * @return HttpMessage|null an HttpMessage object on success or NULL on failure. + */ + public static function fromEnv($message_type, $class_name = null) {} + + /** + * (PECL pecl_http >= 0.22.0)+ * HttpMessage object to prepend + *
+ * @param bool $top [optional]+ * whether to prepend to the top most or right this message + *
+ * @return void + */ + public function prepend(HttpMessage $message, $top = null) {} + + /** + * (PECL pecl_http >= 0.23.0)+ * whether to operate on $_GET and + * $_SERVER['QUERY_STRING'] + *
+ * @param mixed $add [optional]+ * additional/initial query string parameters + *
+ */ + final public function __construct($global = null, $add = null) {} + + /** + * (PECL pecl_http >= 0.22.0)+ * key of the query string param to retrieve + *
+ * @param mixed $type [optional]+ * which variable type to enforce + *
+ * @param mixed $defval [optional]+ * default value if key does not exist + *
+ * @param bool $delete [optional]+ * whether to remove the key/value pair from the query string + *
+ * @return mixed the value of the query string param or the whole query string if no key was specified on success or defval if key does not exist. + */ + #[Pure] + public function get($key = null, $type = null, $defval = null, $delete = null) {} + + /** + * (PECL pecl_http >= 0.22.0)+ * query string params to add + *
+ * @return string the current query string. + */ + public function set($params) {} + + /** + * (PECL pecl_http >= 1.1.0)+ * query string params to add + *
+ * @return HttpQueryString a new HttpQueryString object + */ + public function mod($params) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getBool($name, $defval, $delete) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getInt($name, $defval, $delete) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getFloat($name, $defval, $delete) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getString($name, $defval, $delete) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getArray($name, $defval, $delete) {} + + /** + * @param $name + * @param $defval [optional] + * @param $delete [optional] + */ + #[Pure] + public function getObject($name, $defval, $delete) {} + + /** + * @param $global [optional] + * @param $params [optional] + * @param $class_name [optional] + */ + public static function factory($global, $params, $class_name) {} + + /** + * (PECL pecl_http >= 0.25.0)+ * whether to operate on $_GET and + * $_SERVER['QUERY_STRING'] + *
+ * @return HttpQueryString always the same HttpQueryString instance regarding the global setting. + */ + public static function singleton($global = null) {} + + /** + * (PECL pecl_http >= 0.25.0)+ * input encoding + *
+ * @param string $oe+ * output encoding + *
+ * @return bool true on success or false on failure. + */ + public function xlate($ie, $oe) {} + + /** + * String representation of object + * @link https://php.net/manual/en/serializable.serialize.php + * @return string the string representation of the object or null + * @since 5.1.0 + */ + public function serialize() {} + + /** + * Offset to retrieve + * @link https://php.net/manual/en/arrayaccess.offsetget.php + * @param mixed $offset+ * The offset to retrieve. + *
+ * @return mixed Can return all value types. + * @since 5.0.0 + */ + public function offsetGet($offset) {} + + /** + * Constructs the object + * @link https://php.net/manual/en/serializable.unserialize.php + * @param string $serialized+ * The string representation of the object. + *
+ * @return void + * @since 5.1.0 + */ + public function unserialize($serialized) {} + + /** + * Whether a offset exists + * @link https://php.net/manual/en/arrayaccess.offsetexists.php + * @param mixed $offset+ * An offset to check for. + *
+ * @return bool true on success or false on failure. + * + *+ * The return value will be casted to boolean if non-boolean was returned. + * @since 5.0.0 + */ + public function offsetExists($offset) {} + + /** + * Offset to set + * @link https://php.net/manual/en/arrayaccess.offsetset.php + * @param mixed $offset
+ * The offset to assign the value to. + *
+ * @param mixed $value+ * The value to set. + *
+ * @return void + * @since 5.0.0 + */ + public function offsetSet($offset, $value) {} + + /** + * Offset to unset + * @link https://php.net/manual/en/arrayaccess.offsetunset.php + * @param mixed $offset+ * The offset to unset. + *
+ * @return void + * @since 5.0.0 + */ + public function offsetUnset($offset) {} +} + +/** + * @link https://php.net/manual/en/class.httprequest.php + */ +class HttpRequest +{ + public const METH_GET = 1; + public const METH_HEAD = 2; + public const METH_POST = 3; + public const METH_PUT = 4; + public const METH_DELETE = 5; + public const METH_OPTIONS = 6; + public const METH_TRACE = 7; + public const METH_CONNECT = 8; + public const METH_PROPFIND = 9; + public const METH_PROPPATCH = 10; + public const METH_MKCOL = 11; + public const METH_COPY = 12; + public const METH_MOVE = 13; + public const METH_LOCK = 14; + public const METH_UNLOCK = 15; + public const METH_VERSION_CONTROL = 16; + public const METH_REPORT = 17; + public const METH_CHECKOUT = 18; + public const METH_CHECKIN = 19; + public const METH_UNCHECKOUT = 20; + public const METH_MKWORKSPACE = 21; + public const METH_UPDATE = 22; + public const METH_LABEL = 23; + public const METH_MERGE = 24; + public const METH_BASELINE_CONTROL = 25; + public const METH_MKACTIVITY = 26; + public const METH_ACL = 27; + public const VERSION_1_0 = 1; + public const VERSION_1_1 = 2; + public const VERSION_NONE = 0; + public const VERSION_ANY = 0; + public const SSL_VERSION_TLSv1 = 1; + public const SSL_VERSION_SSLv2 = 2; + public const SSL_VERSION_SSLv3 = 3; + public const SSL_VERSION_ANY = 0; + public const IPRESOLVE_V4 = 1; + public const IPRESOLVE_V6 = 2; + public const IPRESOLVE_ANY = 0; + public const AUTH_BASIC = 1; + public const AUTH_DIGEST = 2; + public const AUTH_NTLM = 8; + public const AUTH_GSSNEG = 4; + public const AUTH_ANY = -1; + public const PROXY_SOCKS4 = 4; + public const PROXY_SOCKS5 = 5; + public const PROXY_HTTP = 0; + private $options; + private $postFields; + private $postFiles; + private $responseInfo; + private $responseMessage; + private $responseCode; + private $responseStatus; + private $method; + private $url; + private $contentType; + private $requestBody; + private $queryData; + private $putFile; + private $putData; + private $history; + public $recordHistory; + + /** + * (PECL pecl_http >= 0.10.0)+ * the target request url + *
+ * @param int $request_method [optional]+ * the request method to use + *
+ * @param null|array $options [optional]+ * an associative array with request options + *
+ */ + public function __construct($url = null, $request_method = null, ?array $options = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array, which values will overwrite the + * currently set request options; + * if empty or omitted, the options of the HttpRequest object will be reset + *
+ * @return bool true on success or false on failure. + */ + public function setOptions(?array $options = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array containing any SSL specific options; + * if empty or omitted, the SSL options will be reset + *
+ * @return bool true on success or false on failure. + */ + public function setSslOptions(?array $options = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing additional SSL specific options + *
+ * @return bool true on success or false on failure. + */ + public function addSslOptions(array $option) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing additional header name/value pairs + *
+ * @return bool true on success or false on failure. + */ + public function addHeaders(array $headers) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing header name/value pairs; + * if empty or omitted, all previously set headers will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setHeaders(?array $headers = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array containing any cookie name/value pairs to add + *
+ * @return bool true on success or false on failure. + */ + public function addCookies(array $cookies) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing cookie name/value pairs; + * if empty or omitted, all previously set cookies will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setCookies(?array $cookies = null) {} + + /** + * (PECL pecl_http >= 1.0.0)+ * whether only session cookies should be reset (needs libcurl >= v7.15.4, else libcurl >= v7.14.1) + *
+ * @return bool true on success or false on failure. + */ + public function resetCookies($session_only = null) {} + + public function flushCookies() {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the request method to use + *
+ * @return bool true on success or false on failure. + */ + public function setMethod($request_method) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the request url + *
+ * @return bool true on success or false on failure. + */ + public function setUrl($url) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the content type of the request (primary/secondary) + *
+ * @return bool TRUE on success, or FALSE if the content type does not seem to + * contain a primary and a secondary part. + */ + public function setContentType($content_type) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * a string or associative array parameter containing the pre-encoded + * query string or to be encoded query fields; + * if empty, the query data will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setQueryData($query_data) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing the query fields to add + *
+ * @return bool true on success or false on failure. + */ + public function addQueryData(array $query_params) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array containing the post fields; + * if empty, the post data will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setPostFields(array $post_data) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an associative array as parameter containing the post fields + *
+ * @return bool true on success or false on failure. + */ + public function addPostFields(array $post_data) {} + + /** + * @param $request_body_data [optional] + */ + public function setBody($request_body_data) {} + + #[Pure] + public function getBody() {} + + /** + * @param $request_body_data + */ + public function addBody($request_body_data) {} + + /** + * (PECL pecl_http 0.14.0-1.4.1)+ * raw post data + *
+ * @return bool true on success or false on failure. + */ + public function setRawPostData($raw_post_data = null) {} + + /** + * (PECL pecl_http 0.14.0-1.4.1)+ * the raw post data to concatenate + *
+ * @return bool true on success or false on failure. + */ + public function addRawPostData($raw_post_data) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an array containing the files to post; + * if empty, the post files will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setPostFiles(array $post_files) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the form element name + *
+ * @param string $file+ * the path to the file + *
+ * @param string $content_type [optional]+ * the content type of the file + *
+ * @return bool TRUE on success, or FALSE if the content type seems not to contain a + * primary and a secondary content type part. + */ + public function addPostFile($name, $file, $content_type = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the path to the file to send; + * if empty or omitted the put file will be unset + *
+ * @return bool true on success or false on failure. + */ + public function setPutFile($file = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the data to upload + *
+ * @return bool true on success or false on failure. + */ + public function setPutData($put_data = null) {} + + /** + * (PECL pecl_http >= 0.25.0)+ * the data to concatenate + *
+ * @return bool true on success or false on failure. + */ + public function addPutData($put_data) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * header to read; if empty, all response headers will be returned + *
+ * @return mixed either a string with the value of the header matching name if requested, + * FALSE on failure, or an associative array containing all response headers. + */ + #[Pure] + public function getResponseHeader($name = null) {} + + /** + * (PECL pecl_http >= 0.23.0)+ * http_parse_cookie flags + *
+ * @param null|array $allowed_extras [optional]+ * allowed keys treated as extra information instead of cookie names + *
+ * @return stdClass[] an array of stdClass objects like http_parse_cookie would return. + */ + #[Pure] + public function getResponseCookies($flags = null, ?array $allowed_extras = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the info to read; if empty or omitted, an associative array containing + * all available info will be returned + *
+ * @return mixed either a scalar containing the value of the info matching name if + * requested, FALSE on failure, or an associative array containing all + * available info. + */ + #[Pure] + public function getResponseInfo($name = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * HttpRequest object to attach + *
+ */ + public function __construct(?HttpRequest $request = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an HttpRequest object not already attached to any HttpRequestPool object + *
+ * @return bool true on success or false on failure. + */ + public function attach(HttpRequest $request) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * an HttpRequest object attached to this HttpRequestPool object + *
+ * @return bool true on success or false on failure. + */ + public function detach(HttpRequest $request) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the name of the header + *
+ * @param mixed $value [optional]+ * the value of the header; + * if not set, no header with this name will be sent + *
+ * @param bool $replace [optional]+ * whether an existing header should be replaced + *
+ * @return bool true on success or false on failure. + */ + public static function setHeader($name, $value = null, $replace = null) {} + + /** + * (PECL pecl_http >= 0.12.0)+ * specifies the name of the header to read; + * if empty or omitted, an associative array with all headers will be returned + *
+ * @return mixed either a string containing the value of the header matching name, + * false on failure, or an associative array with all headers. + */ + public static function getHeader($name = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * unquoted string as parameter containing the ETag + *
+ * @return bool true on success or false on failure. + */ + public static function setETag($etag) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * Unix timestamp representing the last modification time of the sent entity + *
+ * @return bool true on success or false on failure. + */ + public static function setLastModified($timestamp) {} + + /** + * (PECL pecl_http >= 0.12.0)+ * the file name the "Save as..." dialog should display + *
+ * @param bool $inline [optional]+ * if set to true and the user agent knows how to handle the content type, + * it will probably not cause the popup window to be shown + *
+ * @return bool true on success or false on failure. + */ + public static function setContentDisposition($filename, $inline = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the content type of the sent entity (primary/secondary) + *
+ * @return bool true on success, or false if the content type does not seem to + * contain a primary and secondary content type part. + */ + public static function setContentType($content_type) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * specifies the magic.mime database to use + *
+ * @param int $magic_mode [optional]+ * flags for libmagic + *
+ * @return string|false the guessed content type on success or false on failure. + */ + public static function guessContentType($magic_file, $magic_mode = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * whether caching should be attempted + *
+ * @return bool true on success or false on failure. + */ + public static function setCache($cache) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the primary cache control setting + *
+ * @param int $max_age [optional]+ * the max-age in seconds, suggesting how long the cache entry is valid on the client side + *
+ * @param bool $must_revalidate [optional]+ * whether the cached entity should be revalidated by the client for every request + *
+ * @return bool true on success, or false if control does not match one of public, private or no-cache. + */ + public static function setCacheControl($control, $max_age = null, $must_revalidate = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * whether GZip compression should be enabled + *
+ * @return bool true on success or false on failure. + */ + public static function setGzip($gzip) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * seconds to sleep after each chunk sent + *
+ * @return bool true on success or false on failure. + */ + public static function setThrottleDelay($seconds) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the chunk size in bytes + *
+ * @return bool true on success or false on failure. + */ + public static function setBufferSize($bytes) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * data to send + *
+ * @return bool true on success or false on failure. + */ + public static function setData($data) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * the path to the file to send + *
+ * @return bool true on success or false on failure. + */ + public static function setFile($file) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * already opened stream from which the data to send will be read + *
+ * @return bool true on success or false on failure. + */ + public static function setStream($stream) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * whether to destroy all previously started output handlers and their buffers + *
+ * @return bool true on success or false on failure. + */ + public static function send($clean_ob = null) {} + + /** + * (PECL pecl_http >= 0.10.0)+ * Unix timestamp; current time if omitted + *
+ * @return string the HTTP date as string. + */ +#[Pure] +function http_date($timestamp = null) {} + +/** + * (PECL pecl_http >= 0.21.0)+ * (part(s) of) an URL in form of a string or associative array like parse_url returns + *
+ * @param mixed $parts [optional]+ * same as the first argument + *
+ * @param null|int $flags [optional]+ * a bitmask of binary or'ed HTTP_URL constants; + * HTTP_URL_REPLACE is the default + *
+ * @param null|array &$new_url [optional]+ * if set, it will be filled with the parts of the composed url like parse_url would return + *
+ * @return string|false the new URL as string on success or false on failure. + */ +function http_build_url($url = null, $parts = null, $flags = null, ?array &$new_url = null) {} + +/** + * (PECL pecl_http >= 0.23.0)+ * associative array of query string parameters + *
+ * @param string $prefix [optional]+ * top level prefix + *
+ * @param string $arg_separator [optional]+ * argument separator to use (by default the INI setting arg_separator.output will be used, or "&" if neither is set + *
+ * @return string|false the built query as string on success or false on failure. + */ +#[Pure] +function http_build_str(array $query, $prefix = null, $arg_separator = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * array containing the supported languages as values + *
+ * @param null|array &$result [optional]+ * will be filled with an array containing the negotiation results + *
+ * @return string the negotiated language or the default language (i.e. first array entry) if none match. + */ +function http_negotiate_language(array $supported, ?array &$result = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * array containing the supported charsets as values + *
+ * @param null|array &$result [optional]+ * will be filled with an array containing the negotiation results + *
+ * @return string the negotiated charset or the default charset (i.e. first array entry) if none match. + */ +function http_negotiate_charset(array $supported, ?array &$result = null) {} + +/** + * (PECL pecl_http >= 0.19.0)+ * array containing the supported content types as values + *
+ * @param null|array &$result [optional]+ * will be filled with an array containing the negotiation results + *
+ * @return string the negotiated content type or the default content type (i.e. first array entry) if none match. + */ +function http_negotiate_content_type(array $supported, ?array &$result = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * the URL to redirect to + *
+ * @param null|array $params [optional]+ * associative array of query parameters + *
+ * @param null|bool $session [optional]+ * whether to append session information + *
+ * @param null|int $status [optional]+ * custom response status code + *
+ * @return void|false returns false or exits with the specified redirection status code + */ +function http_redirect($url = null, ?array $params = null, $session = null, $status = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * seconds to sleep after each chunk sent + *
+ * @param int $bytes [optional]+ * the chunk size in bytes + *
+ * @return void + */ +function http_throttle($sec = null, $bytes = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * HTTP status code (100-599) + *
+ * @return bool true on success or false on failure. + */ +function http_send_status($status) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * a Unix timestamp, converted to a valid HTTP date; + * if omitted, the current time will be sent + *
+ * @return bool true on success or false on failure. + */ +function http_send_last_modified($timestamp = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * the desired content type (primary/secondary) + *
+ * @return bool true on success or false on failure. + */ +function http_send_content_type($content_type = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * the file name the "Save as..." dialog should display + *
+ * @param bool $inline [optional]+ * if set to true and the user agent knows how to handle the content type, + * it will probably not cause the popup window to be shown + *
+ * @return bool true on success or false on failure. + */ +function http_send_content_disposition($filename, $inline = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * Unix timestamp; current time, if omitted + *
+ * @param bool $for_range [optional]+ * if set to true, the header usually used to validate HTTP ranges will be checked + *
+ * @return bool true if timestamp represents an earlier date than the header, else false. + */ +#[Pure] +function http_match_modified($timestamp = null, $for_range = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * the ETag to match + *
+ * @param bool $for_range [optional]+ * if set to true, the header usually used to validate HTTP ranges will be checked + *
+ * @return bool true if ETag matches or the header contained the asterisk ("*"), else false. + */ +#[Pure] +function http_match_etag($etag, $for_range = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * Unix timestamp + *
+ * @return bool with 304 Not Modified if the entity is cached. + * &see.http.configuration.force_exit; + */ +#[Pure] +function http_cache_last_modified($timestamp_or_expires = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * custom ETag + *
+ * @return bool with 304 Not Modified if the entity is cached. + * &see.http.configuration.force_exit; + */ +#[Pure] +function http_cache_etag($etag = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * data to send + *
+ * @return bool true on success or false on failure. + */ +function http_send_data($data) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * the file to send + *
+ * @return bool true on success or false on failure. + */ +function http_send_file($file) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * stream to read from (must be seekable) + *
+ * @return bool true on success or false on failure. + */ +function http_send_stream($stream) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * chunked encoded string + *
+ * @return string|false the decoded string on success or false on failure. + */ +#[Pure] +function http_chunked_decode($encoded) {} + +/** + * (PECL pecl_http >= 0.12.0)+ * string containing a single HTTP message or several consecutive HTTP messages + *
+ * @return object a hierarchical object structure of the parsed messages. + */ +#[Pure] +function http_parse_message($message) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * string containing HTTP headers + *
+ * @return array|false an array on success or false on failure. + */ +#[Pure] +function http_parse_headers($header) {} + +/** + * (PECL pecl_http >= 0.20.0)+ * string containing the value of a Set-Cookie response header + *
+ * @param int $flags [optional]+ * parse flags (HTTP_COOKIE_PARSE_RAW) + *
+ * @param null|array $allowed_extras [optional]+ * array containing recognized extra keys; + * by default all unknown keys will be treated as cookie names + *
+ * @return stdClass|false a stdClass object on success or false on failure. + */ +#[Pure] +function http_parse_cookie($cookie, $flags = null, ?array $allowed_extras = null) {} + +/** + * (PECL pecl_http >= 1.2.0)+ * a cookie list like returned from http_parse_cookie + *
+ * @return string the cookie(s) as string. + */ +#[Pure] +function http_build_cookie(array $cookie) {} + +/** + * (PECL pecl_http >= 1.0.0)+ * Parameters + *
+ * @param int $flags [optional]+ * Parse flags + *
+ * @return stdClass parameter list as stdClass object. + */ +#[Pure] +function http_parse_params($param, $flags = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * the header name (case-insensitive) + *
+ * @param string $value+ * the header value that should be compared + *
+ * @param bool $match_case [optional]+ * whether the value should be compared case sensitively + *
+ * @return bool true if header value matches, else false. + */ +#[Pure] +function http_match_request_header($header, $value, $match_case = null) {} + +/** + * (PECL pecl_http >= 1.5.0)+ * the identification string + *
+ * @return string|false the prior ident as string on success or false on failure. + */ +function http_persistent_handles_ident($ident) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * URL + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ * Will be filled with request/response information + *
+ * @return string + */ +function http_get($url, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * URL + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_head($url = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.1.0)+ * URL + *
+ * @param string $data [optional]+ * String containing the pre-encoded post data + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_post_data($url, $data = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * URL + *
+ * @param null|array $data [optional]+ * Associative array of POST values + *
+ * @param null|array $files [optional]+ * Array of files to post + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_post_fields($url, ?array $data = null, ?array $files = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.25.0)+ * URL + *
+ * @param null|string $data [optional]+ * PUT request body + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_put_data($url, $data = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * URL + *
+ * @param null|string $file [optional]+ * The file to put + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_put_file($url, $file = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * URL + *
+ * @param null|resource $stream [optional]+ * The stream to read the PUT request body from + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_put_stream($url, $stream = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 1.0.0)+ * Request method + *
+ * @param null|string $url [optional]+ * URL + *
+ * @param null|string $body [optional]+ * Request body + *
+ * @param null|array $options [optional]+ *
+ * @param null|array &$info [optional]+ *
+ * @return string + */ +function http_request($method, $url = null, $body = null, ?array $options = null, ?array &$info = null) {} + +/** + * (PECL pecl_http >= 1.0.0)+ * POST fields + *
+ * @param array $files+ * POST files + *
+ * @return string|false encoded string on success or false on failure. + */ +#[Pure] +function http_request_body_encode(array $fields, array $files) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * the request method name to register + *
+ * @return int|false the ID of the request method on success or false on failure. + */ +function http_request_method_register($method) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * The request method name or ID + *
+ * @return bool true on success or false on failure. + */ +function http_request_method_unregister($method) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * request method name or ID + *
+ * @return bool true if the request method is known, else false. + */ +#[Pure] +function http_request_method_exists($method) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * request method ID + *
+ * @return string|false the request method name as string on success or false on failure. + */ +#[Pure] +function http_request_method_name($method) {} + +/** + * (PECL pecl_http >= 0.10.0)+ * String containing the data that should be encoded + *
+ * @param int $flags [optional]+ * deflate options + *
+ * @return string|null the encoded string on success, or NULL on failure. + */ +#[Pure] +function http_deflate($data, $flags = null) {} + +/** + * (PECL pecl_http >= 0.15.0)+ * string containing the compressed data + *
+ * @return string|null the decoded string on success, or NULL on failure. + */ +#[Pure] +function http_inflate($data) {} + +/** + * (PECL pecl_http >= 0.21.0)+ * feature to probe for + *
+ * @return int integer, whether requested feature is supported, + * or a bitmask with all supported features if feature was omitted. + */ +#[Pure] +function http_support($feature = null) {} + +/** + * don't urldecode values + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_COOKIE_PARSE_RAW', 1); + +/** + * whether "secure" was found in the cookie's parameters list + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_COOKIE_SECURE', 16); + +/** + * whether "httpOnly" was found in the cookie's parameter list + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_COOKIE_HTTPONLY', 32); +define('HTTP_DEFLATE_LEVEL_DEF', 0); +define('HTTP_DEFLATE_LEVEL_MIN', 1); +define('HTTP_DEFLATE_LEVEL_MAX', 9); +define('HTTP_DEFLATE_TYPE_ZLIB', 0); +define('HTTP_DEFLATE_TYPE_GZIP', 16); +define('HTTP_DEFLATE_TYPE_RAW', 32); +define('HTTP_DEFLATE_STRATEGY_DEF', 0); +define('HTTP_DEFLATE_STRATEGY_FILT', 256); +define('HTTP_DEFLATE_STRATEGY_HUFF', 512); +define('HTTP_DEFLATE_STRATEGY_RLE', 768); +define('HTTP_DEFLATE_STRATEGY_FIXED', 1024); + +/** + * don't flush + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_ENCODING_STREAM_FLUSH_NONE', 0); + +/** + * synchronized flush only + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_ENCODING_STREAM_FLUSH_SYNC', 1048576); + +/** + * full data flush + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_ENCODING_STREAM_FLUSH_FULL', 2097152); + +/** + * use "basic" authentication + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_AUTH_BASIC', 1); + +/** + * use "digest" authentication + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_AUTH_DIGEST', 2); + +/** + * use "NTLM" authentication + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_AUTH_NTLM', 8); + +/** + * use "GSS-NEGOTIATE" authentication + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_AUTH_GSSNEG', 4); + +/** + * try any authentication scheme + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_AUTH_ANY', -1); +define('HTTP_VERSION_NONE', 0); + +/** + * HTTP version 1.0 + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_VERSION_1_0', 1); + +/** + * HTTP version 1.1 + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_VERSION_1_1', 2); + +/** + * no specific HTTP protocol version + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_VERSION_ANY', 0); + +/** + * use TLSv1 only + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SSL_VERSION_TLSv1', 1); + +/** + * use SSLv2 only + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SSL_VERSION_SSLv2', 2); + +/** + * use SSLv3 only + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SSL_VERSION_SSLv3', 3); + +/** + * no specific SSL protocol version + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SSL_VERSION_ANY', 0); + +/** + * use IPv4 only for name lookups + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_IPRESOLVE_V4', 1); + +/** + * use IPv6 only for name lookups + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_IPRESOLVE_V6', 2); + +/** + * use any IP mechanism only for name lookups + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_IPRESOLVE_ANY', 0); + +/** + * the proxy is a SOCKS4 type proxy + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PROXY_SOCKS4', 4); + +/** + * the proxy is a SOCKS5 type proxy + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PROXY_SOCKS5', 5); + +/** + * standard HTTP proxy + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PROXY_HTTP', 0); +define('HTTP_METH_GET', 1); +define('HTTP_METH_HEAD', 2); +define('HTTP_METH_POST', 3); +define('HTTP_METH_PUT', 4); +define('HTTP_METH_DELETE', 5); +define('HTTP_METH_OPTIONS', 6); +define('HTTP_METH_TRACE', 7); +define('HTTP_METH_CONNECT', 8); +define('HTTP_METH_PROPFIND', 9); +define('HTTP_METH_PROPPATCH', 10); +define('HTTP_METH_MKCOL', 11); +define('HTTP_METH_COPY', 12); +define('HTTP_METH_MOVE', 13); +define('HTTP_METH_LOCK', 14); +define('HTTP_METH_UNLOCK', 15); +define('HTTP_METH_VERSION_CONTROL', 16); +define('HTTP_METH_REPORT', 17); +define('HTTP_METH_CHECKOUT', 18); +define('HTTP_METH_CHECKIN', 19); +define('HTTP_METH_UNCHECKOUT', 20); +define('HTTP_METH_MKWORKSPACE', 21); +define('HTTP_METH_UPDATE', 22); +define('HTTP_METH_LABEL', 23); +define('HTTP_METH_MERGE', 24); +define('HTTP_METH_BASELINE_CONTROL', 25); +define('HTTP_METH_MKACTIVITY', 26); +define('HTTP_METH_ACL', 27); + +/** + * guess applicable redirect method + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT', 0); + +/** + * permanent redirect (301 Moved permanently) + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT_PERM', 301); + +/** + * standard redirect (302 Found) + * RFC 1945 and RFC 2068 specify that the client is not allowed + * to change the method on the redirected request. However, most + * existing user agent implementations treat 302 as if it were a 303 + * response, performing a GET on the Location field-value regardless + * of the original request method. The status codes 303 and 307 have + * been added for servers that wish to make unambiguously clear which + * kind of reaction is expected of the client. + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT_FOUND', 302); + +/** + * redirect applicable to POST requests (303 See other) + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT_POST', 303); + +/** + * proxy redirect (305 Use proxy) + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT_PROXY', 305); + +/** + * temporary redirect (307 Temporary Redirect) + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_REDIRECT_TEMP', 307); + +/** + * querying for this constant will always return true + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SUPPORT', 1); + +/** + * whether support to issue HTTP requests is given, ie. libcurl support was compiled in + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SUPPORT_REQUESTS', 2); + +/** + * whether support to guess the Content-Type of HTTP messages is given, ie. libmagic support was compiled in + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SUPPORT_MAGICMIME', 4); + +/** + * whether support for zlib encodings is given, ie. libz support was compiled in + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SUPPORT_ENCODINGS', 8); + +/** + * whether support to issue HTTP requests over SSL is given, ie. linked libcurl was built with SSL support + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_SUPPORT_SSLREQUESTS', 32); +define('HTTP_SUPPORT_EVENTS', 128); + +/** + * allow commands additionally to semicolons as separator + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PARAMS_ALLOW_COMMA', 1); + +/** + * continue parsing after an error occurred + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PARAMS_ALLOW_FAILURE', 2); + +/** + * raise PHP warnings on parse errors + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PARAMS_RAISE_ERROR', 4); + +/** + * all three values above, bitwise or'ed + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_PARAMS_DEFAULT', 7); + +/** + * replace every part of the first URL when there's one of the second URL + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_REPLACE', 0); + +/** + * join relative paths + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_JOIN_PATH', 1); + +/** + * join query strings + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_JOIN_QUERY', 2); + +/** + * strip any user authentication information + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_USER', 4); + +/** + * strip any password authentication information + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_PASS', 8); + +/** + * strip any authentication information + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_AUTH', 12); + +/** + * strip explicit port numbers + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_PORT', 32); + +/** + * strip complete path + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_PATH', 64); + +/** + * strip query string + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_QUERY', 128); + +/** + * strip any fragments (#identifier) + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_FRAGMENT', 256); + +/** + * strip anything but scheme and host + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_URL_STRIP_ALL', 492); +define('HTTP_URL_FROM_ENV', 4096); + +/** + * runtime error + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_RUNTIME', 1); + +/** + * an invalid parameter was passed + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_INVALID_PARAM', 2); + +/** + * header() or similar operation failed + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_HEADER', 3); + +/** + * HTTP header parse error + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_MALFORMED_HEADERS', 4); + +/** + * unknown/invalid request method + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_REQUEST_METHOD', 5); + +/** + * with operation incompatible message type + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_MESSAGE_TYPE', 6); + +/** + * encoding/decoding error + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_ENCODING', 7); + +/** + * request failure + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_REQUEST', 8); + +/** + * request pool failure + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_REQUEST_POOL', 9); + +/** + * socket exception + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_SOCKET', 10); + +/** + * response failure + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_RESPONSE', 11); + +/** + * invalid URL + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_URL', 12); + +/** + * querystring operation failure + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_E_QUERYSTRING', 13); + +/** + * the message is of no specific type + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_MSG_NONE', 0); + +/** + * request style message + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_MSG_REQUEST', 1); + +/** + * response style message + * @link https://php.net/manual/en/http.constants.php + */ +define('HTTP_MSG_RESPONSE', 2); +define('HTTP_QUERYSTRING_TYPE_BOOL', 3); +define('HTTP_QUERYSTRING_TYPE_INT', 1); +define('HTTP_QUERYSTRING_TYPE_FLOAT', 2); +define('HTTP_QUERYSTRING_TYPE_STRING', 6); +define('HTTP_QUERYSTRING_TYPE_ARRAY', 4); +define('HTTP_QUERYSTRING_TYPE_OBJECT', 5); diff --git a/phpstorm-stubs/http/http3.php b/phpstorm-stubs/http/http3.php new file mode 100644 index 0000000..1951e1b --- /dev/null +++ b/phpstorm-stubs/http/http3.php @@ -0,0 +1,3673 @@ + "value"]. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function addCookies(array $cookies) {} + + /** + * Add an extra attribute to the cookie list. + * See http\Cookie::setExtra(). + * + * @param string $extra_name The key of the extra attribute. + * @param string $extra_value The value of the extra attribute. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function addExtra(string $extra_name, string $extra_value) {} + + /** + * Add several extra attributes. + * See http\Cookie::addExtra(). + * + * @param array $extras A list of extra attributes of the form ["key" => "value"]. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function addExtras(array $extras) {} + + /** + * Retrieve a specific cookie value. + * See http\Cookie::setCookie(). + * + * @param string $cookie_name The key of the cookie to look up. + * @return string|null string the cookie value. + * or NULL if $cookie_name could not be found. + */ + public function getCookie(string $cookie_name) {} + + /** + * Get the list of cookies. + * See http\Cookie::setCookies(). + * + * @return array the list of cookies of form ["name" => "value"]. + */ + public function getCookies() {} + + /** + * Retrieve the effective domain of the cookie list. + * See http\Cookie::setDomain(). + * + * @return string the effective domain. + */ + public function getDomain() {} + + /** + * Get the currently set expires attribute. + * See http\Cookie::setExpires(). + * + * ***NOTE:*** + * A return value of -1 means that the attribute is not set. + * + * @return int the currently set expires attribute as seconds since the epoch. + */ + public function getExpires() {} + + /** + * Retrieve an extra attribute. + * See http\Cookie::setExtra(). + * + * @param string $name The key of the extra attribute. + * @return string the value of the extra attribute. + */ + public function getExtra(string $name) {} + + /** + * Retrieve the list of extra attributes. + * See http\Cookie::setExtras(). + * + * @return array the list of extra attributes of the form ["key" => "value"]. + */ + public function getExtras() {} + + /** + * Get the currently set flags. + * See http\Cookie::SECURE and http\Cookie::HTTPONLY constants. + * + * @return int the currently set flags bitmask. + */ + public function getFlags() {} + + /** + * Get the currently set max-age attribute of the cookie list. + * See http\Cookie::setMaxAge(). + * + * ***NOTE:*** + * A return value of -1 means that the attribute is not set. + * + * @return int the currently set max-age. + */ + public function getMaxAge() {} + + /** + * Retrieve the path the cookie(s) of this cookie list are effective at. + * See http\Cookie::setPath(). + * + * @return string the effective path. + */ + public function getPath() {} + + /** + * (Re)set a cookie. + * See http\Cookie::addCookie() and http\Cookie::setCookies(). + * + * ***NOTE:*** + * The cookie will be deleted from the list if $cookie_value is NULL. + * + * @param string $cookie_name The key of the cookie. + * @param string $cookie_value The value of the cookie. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setCookie(string $cookie_name, string $cookie_value) {} + + /** + * (Re)set the cookies. + * See http\Cookie::addCookies(). + * + * @param array $cookies Set the cookies to this array. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setCookies(array $cookies = null) {} + + /** + * Set the effective domain of the cookie list. + * See http\Cookie::setPath(). + * + * @param string $value The domain the cookie(s) belong to. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setDomain(string $value = null) {} + + /** + * Set the traditional expires timestamp. + * See http\Cookie::setMaxAge() for a safer alternative. + * + * @param int $value The expires timestamp as seconds since the epoch. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setExpires(int $value = -1) {} + + /** + * (Re)set an extra attribute. + * See http\Cookie::addExtra(). + * + * ***NOTE:*** + * The attribute will be removed from the extras list if $extra_value is NULL. + * + * @param string $extra_name The key of the extra attribute. + * @param string $extra_value The value of the extra attribute. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setExtra(string $extra_name, string $extra_value = null) {} + + /** + * (Re)set the extra attributes. + * See http\Cookie::addExtras(). + * + * @param array $extras Set the extra attributes to this array. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setExtras(array $extras = null) {} + + /** + * Set the flags to specified $value. + * See http\Cookie::SECURE and http\Cookie::HTTPONLY constants. + * + * @param int $value The new flags bitmask. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setFlags(int $value = 0) {} + + /** + * Set the maximum age the cookie may have on the client side. + * This is a client clock departure safe alternative to the "expires" attribute. + * See http\Cookie::setExpires(). + * + * @param int $value The max-age in seconds. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setMaxAge(int $value = -1) {} + + /** + * Set the path the cookie(s) of this cookie list should be effective at. + * See http\Cookie::setDomain(). + * + * @param string $path The URL path the cookie(s) should take effect within. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Cookie self. + */ + public function setPath(string $path = null) {} + + /** + * Get the cookie list as array. + * + * @return array the cookie list as array. + */ + public function toArray() {} + + /** + * Retrieve the string representation of the cookie list. + * See http\Cookie::toArray(). + * + * @return string the cookie list as string. + */ + public function toString() {} +} + +namespace http\Encoding; + +namespace http; + +/** + * The http\Env class provides static methods to manipulate and inspect the server's current request's HTTP environment. + */ +class Env +{ + /** + * Retrieve the current HTTP request's body. + * + * @param string $body_class_name A user class extending http\Message\Body. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Message\Body instance representing the request body + */ + public function getRequestBody(string $body_class_name = null) {} + + /** + * Retrieve one or all headers of the current HTTP request. + * + * @param string $header_name The key of a header to retrieve. + * @return string|null|array NULL if $header_name was not found + * or string the compound header when $header_name was found + * or array of all headers if $header_name was not specified + */ + public function getRequestHeader(string $header_name = null) {} + + /** + * Get the HTTP response code to send. + * + * @return int the HTTP response code. + */ + public function getResponseCode() {} + + /** + * Get one or all HTTP response headers to be sent. + * + * @param string $header_name The name of the response header to retrieve. + * @return string|array|null string the compound value of the response header to send + * or NULL if the header was not found + * or array of all response headers, if $header_name was not specified + */ + public function getResponseHeader(string $header_name = null) {} + + /** + * Retrieve a list of all known HTTP response status. + * + * @return array mapping of the form \[ + * ... + * int $code => string $status + * ... + * \] + */ + public function getResponseStatusForAllCodes() {} + + /** + * Retrieve the string representation of specified HTTP response code. + * + * @param int $code The HTTP response code to get the string representation for. + * @return string the HTTP response status message (may be empty, if no message for this code was found) + */ + public function getResponseStatusForCode(int $code) {} + + /** + * Generic negotiator. For specific client negotiation see http\Env::negotiateContentType() and related methods. + * + * ***NOTE:*** + * The first element of $supported serves as a default if no operand matches. + * + * @param string $params HTTP header parameter's value to negotiate. + * @param array $supported List of supported negotiation operands. + * @param string $prim_typ_sep A "primary type separator", i.e. that would be a hyphen for content language negotiation (en-US, de-DE, etc.). + * @param array &$result Out parameter recording negotiation results. + * @return string|null NULL if negotiation fails. + * or string the closest match negotiated, or the default (first entry of $supported). + */ + public function negotiate(string $params, array $supported, string $prim_typ_sep = null, array &$result = null) {} + + /** + * Negotiate the client's preferred character set. + * + * ***NOTE:*** + * The first element of $supported character sets serves as a default if no character set matches. + * + * @param array $supported List of supported content character sets. + * @param array &$result Out parameter recording negotiation results. + * @return string|null NULL if negotiation fails. + * or string the negotiated character set. + */ + public function negotiateCharset(array $supported, array &$result = null) {} + + /** + * Negotiate the client's preferred MIME content type. + * + * ***NOTE:*** + * The first element of $supported content types serves as a default if no content-type matches. + * + * @param array $supported List of supported MIME content types. + * @param array &$result Out parameter recording negotiation results. + * @return string|null NULL if negotiation fails. + * or string the negotiated content type. + */ + public function negotiateContentType(array $supported, array &$result = null) {} + + /** + * Negotiate the client's preferred encoding. + * + * ***NOTE:*** + * The first element of $supported encodings serves as a default if no encoding matches. + * + * @param array $supported List of supported content encodings. + * @param array &$result Out parameter recording negotiation results. + * @return string|null NULL if negotiation fails. + * or string the negotiated encoding. + */ + public function negotiateEncoding(array $supported, array &$result = null) {} + + /** + * Negotiate the client's preferred language. + * + * ***NOTE:*** + * The first element of $supported languages serves as a default if no language matches. + * + * @param array $supported List of supported content languages. + * @param array &$result Out parameter recording negotiation results. + * @return string|null NULL if negotiation fails. + * or string the negotiated language. + */ + public function negotiateLanguage(array $supported, array &$result = null) {} + + /** + * Set the HTTP response code to send. + * + * @param int $code The HTTP response status code. + * @return bool Success. + */ + public function setResponseCode(int $code) {} + + /** + * Set a response header, either replacing a prior set header, or appending the new header value, depending on $replace. + * + * If no $header_value is specified, or $header_value is NULL, then a previously set header with the same key will be deleted from the list. + * + * If $response_code is not 0, the response status code is updated accordingly. + * + * @param string $header_name + * @param mixed $header_value + * @param int $response_code + * @param bool $replace + * @return bool Success. + */ + public function setResponseHeader(string $header_name, $header_value = null, int $response_code = null, bool $replace = null) {} +} +/** + * The http extension's Exception interface. + * + * Use it to catch any Exception thrown by pecl/http. + * + * The individual exception classes extend their equally named native PHP extensions, if such exist, and implement this empty interface. For example the http\Exception\BadMethodCallException extends SPL's BadMethodCallException. + */ +interface Exception {} +/** + * The http\Header class provides methods to manipulate, match, negotiate and serialize HTTP headers. + */ +class Header implements \Serializable +{ + /** + * None of the following match constraints applies. + */ + public const MATCH_LOOSE = 0; + + /** + * Perform case sensitive matching. + */ + public const MATCH_CASE = 1; + + /** + * Match only on word boundaries (according by CType alpha-numeric). + */ + public const MATCH_WORD = 16; + + /** + * Match the complete string. + */ + public const MATCH_FULL = 32; + + /** + * Case sensitively match the full string (same as MATCH_CASE|MATCH_FULL). + */ + public const MATCH_STRICT = 33; + + /** + * The name of the HTTP header. + * + * @var string + */ + public $name = null; + + /** + * The value of the HTTP header. + * + * @var mixed + */ + public $value = null; + + /** + * Create an http\Header instance for use of simple matching or negotiation. If the value of the header is an array it may be compounded to a single comma separated string. + * + * @param string $name The HTTP header name. + * @param mixed $value The value of the header. + * + * # Throws: + */ + public function __construct(string $name = null, $value = null) {} + + /** + * String cast handler. Alias of http\Header::serialize(). + * + * @return string the serialized form of the HTTP header (i.e. "Name: value"). + */ + public function __toString() {} + + /** + * Create a parameter list out of the HTTP header value. + * + * @param mixed $ps The parameter separator(s). + * @param mixed $as The argument separator(s). + * @param mixed $vs The value separator(s). + * @param int $flags The modus operandi. See http\Params constants. + * @return \http\Params instance + */ + public function getParams($ps = null, $as = null, $vs = null, int $flags = null) {} + + /** + * Match the HTTP header's value against provided $value according to $flags. + * + * @param string $value The comparison value. + * @param int $flags The modus operandi. See http\Header constants. + * @return bool whether $value matches the header value according to $flags. + */ + public function match(string $value, int $flags = null) {} + + /** + * Negotiate the header's value against a list of supported values in $supported. + * Negotiation operation is adopted according to the header name, i.e. if the + * header being negotiated is Accept, then a slash is used as primary type + * separator, and if the header is Accept-Language respectively, a hyphen is + * used instead. + * + * ***NOTE:*** + * The first element of $supported serves as a default if no operand matches. + * + * @param array $supported The list of supported values to negotiate. + * @param array &$result Out parameter recording the negotiation results. + * @return string|null NULL if negotiation fails. + * or string the closest match negotiated, or the default (first entry of $supported). + */ + public function negotiate(array $supported, array &$result = null) {} + + /** + * Parse HTTP headers. + * See also http\Header\Parser. + * + * @param string $header The complete string of headers. + * @param string $header_class A class extending http\Header. + * @return array|false array of parsed headers, where the elements are instances of $header_class if specified. + * or false if parsing fails. + */ + public function parse(string $header, string $header_class = null) {} + + /** + * Implements Serializable. + * + * @return string serialized representation of HTTP header (i.e. "Name: value") + */ + public function serialize() {} + + /** + * Convenience method. Alias of http\Header::serialize(). + * + * @return string the serialized form of the HTTP header (i.e. "Name: value"). + */ + public function toString() {} + + /** + * Implements Serializable. + * + * @param string $serialized The serialized HTTP header (i.e. "Name: value") + */ + public function unserialize($serialized) {} +} +/** + * The message class builds the foundation for any request and response message. + * + * See http\Client\Request and http\Client\Response, as well as http\Env\Request and http\Env\Response. + */ +class Message implements \Countable, \Serializable, \Iterator +{ + /** + * No specific type of message. + */ + public const TYPE_NONE = 0; + + /** + * A request message. + */ + public const TYPE_REQUEST = 1; + + /** + * A response message. + */ + public const TYPE_RESPONSE = 2; + + /** + * The message type. See http\Message::TYPE_* constants. + * + * @var int + */ + protected $type = \http\Message::TYPE_NONE; + + /** + * The message's body. + * + * @var \http\Message\Body + */ + protected $body = null; + + /** + * The request method if the message is of type request. + * + * @var string + */ + protected $requestMethod = ""; + + /** + * The request url if the message is of type request. + * + * @var string + */ + protected $requestUrl = ""; + + /** + * The response status phrase if the message is of type response. + * + * @var string + */ + protected $responseStatus = ""; + + /** + * The response code if the message is of type response. + * + * @var int + */ + protected $responseCode = 0; + + /** + * A custom HTTP protocol version. + * + * @var string + */ + protected $httpVersion = null; + + /** + * Any message headers. + * + * @var array + */ + protected $headers = null; + + /** + * Any parent message. + * + * @var \http\Message + */ + protected $parentMessage; + + /** + * Create a new HTTP message. + * + * @param mixed $message Either a resource or a string, representing the HTTP message. + * @param bool $greedy Whether to read from a $message resource until EOF. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMessageException + */ + public function __construct($message = null, bool $greedy = true) {} + + /** + * Retrieve the message serialized to a string. + * Alias of http\Message::toString(). + * + * @return string the single serialized HTTP message. + */ + public function __toString() {} + + /** + * Append the data of $body to the message's body. + * See http\Message::setBody() and http\Message\Body::append(). + * + * @param \http\Message\Body $body The message body to add. + * @return \http\Message self. + */ + public function addBody(Message\Body $body) {} + + /** + * Add an header, appending to already existing headers. + * See http\Message::addHeaders() and http\Message::setHeader(). + * + * @param string $name The header name. + * @param mixed $value The header value. + * @return \http\Message self. + */ + public function addHeader(string $name, $value) {} + + /** + * Add headers, optionally appending values, if header keys already exist. + * See http\Message::addHeader() and http\Message::setHeaders(). + * + * @param array $headers The HTTP headers to add. + * @param bool $append Whether to append values for existing headers. + * @return \http\Message self. + */ + public function addHeaders(array $headers, bool $append = false) {} + + /** + * Implements Countable. + * + * @return int the count of messages in the chain above the current message. + */ + public function count() {} + + /** + * Implements iterator. + * See http\Message::valid() and http\Message::rewind(). + * + * @return \http\Message the current message in the iterated message chain. + */ + public function current() {} + + /** + * Detach a clone of this message from any message chain. + * + * @throws \http\Exception\InvalidArgumentException + * @return \http\Message clone. + */ + public function detach() {} + + /** + * Retrieve the message's body. + * See http\Message::setBody(). + * + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Message\Body the message body. + */ + public function getBody() {} + + /** + * Retrieve a single header, optionally hydrated into a http\Header extending class. + * + * @param string $header The header's name. + * @param string $into_class The name of a class extending http\Header. + * @return mixed|\http\Header mixed the header value if $into_class is NULL. + * or \http\Header descendant. + */ + public function getHeader(string $header, string $into_class = null) {} + + /** + * Retrieve all message headers. + * See http\Message::setHeaders() and http\Message::getHeader(). + * + * @return array the message's headers. + */ + public function getHeaders() {} + + /** + * Retrieve the HTTP protocol version of the message. + * See http\Message::setHttpVersion(). + * + * @return string the HTTP protocol version, e.g. "1.0"; defaults to "1.1". + */ + public function getHttpVersion() {} + + /** + * Retrieve the first line of a request or response message. + * See http\Message::setInfo and also: + * + * * http\Message::getType() + * * http\Message::getHttpVersion() + * * http\Message::getResponseCode() + * * http\Message::getResponseStatus() + * * http\Message::getRequestMethod() + * * http\Message::getRequestUrl() + * + * @return string|null string the HTTP message information. + * or NULL if the message is neither of type request nor response. + */ + public function getInfo() {} + + /** + * Retrieve any parent message. + * See http\Message::reverse(). + * + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @return \http\Message the parent message. + */ + public function getParentMessage() {} + + /** + * Retrieve the request method of the message. + * See http\Message::setRequestMethod() and http\Message::getRequestUrl(). + * + * @return string|false string the request method. + * or false if the message was not of type request. + */ + public function getRequestMethod() {} + + /** + * Retrieve the request URL of the message. + * See http\Message::setRequestUrl(). + * + * @return string|false string the request URL; usually the path and the querystring. + * or false if the message was not of type request. + */ + public function getRequestUrl() {} + + /** + * Retrieve the response code of the message. + * See http\Message::setResponseCode() and http\Message::getResponseStatus(). + * + * @return int|false int the response status code. + * or false if the message is not of type response. + */ + public function getResponseCode() {} + + /** + * Retrieve the response status of the message. + * See http\Message::setResponseStatus() and http\Message::getResponseCode(). + * + * @return string|false string the response status phrase. + * or false if the message is not of type response. + */ + public function getResponseStatus() {} + + /** + * Retrieve the type of the message. + * See http\Message::setType() and http\Message::getInfo(). + * + * @return int the message type. See http\Message::TYPE_* constants. + */ + public function getType() {} + + /** + * Check whether this message is a multipart message based on it's content type. + * If the message is a multipart message and a reference $boundary is given, the boundary string of the multipart message will be stored in $boundary. + * + * See http\Message::splitMultipartBody(). + * + * @param string &$boundary A reference where the boundary string will be stored. + * @return bool whether this is a message with a multipart "Content-Type". + */ + public function isMultipart(string &$boundary = null) {} + + /** + * Implements Iterator. + * See http\Message::current() and http\Message::rewind(). + * + * @return int a non-sequential integer key. + */ + public function key() {} + + /** + * Implements Iterator. + * See http\Message::valid() and http\Message::rewind(). + */ + public function next() {} + + /** + * Prepend message(s) $message to this message, or the top most message of this message chain. + * + * ***NOTE:*** + * The message chains must not overlap. + * + * @param \http\Message $message The message (chain) to prepend as parent messages. + * @param bool $top Whether to prepend to the top-most parent message. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Message self. + */ + public function prepend(Message $message, bool $top = true) {} + + /** + * Reverse the message chain and return the former top-most message. + * + * ***NOTE:*** + * Message chains are ordered in reverse-parsed order by default, i.e. the last parsed message is the message you'll receive from any call parsing HTTP messages. + * + * This call re-orders the messages of the chain and returns the message that was parsed first with any later parsed messages re-parentized. + * + * @throws \http\Exception\InvalidArgumentException + * @return \http\Message the other end of the message chain. + */ + public function reverse() {} + + /** + * Implements Iterator. + */ + public function rewind() {} + + /** + * Implements Serializable. + * + * @return string the serialized HTTP message. + */ + public function serialize() {} + + /** + * Set the message's body. + * See http\Message::getBody() and http\Message::addBody(). + * + * @param \http\Message\Body $body The new message body. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Message self. + */ + public function setBody(Message\Body $body) {} + + /** + * Set a single header. + * See http\Message::getHeader() and http\Message::addHeader(). + * + * ***NOTE:*** + * Prior to v2.5.6/v3.1.0 headers with the same name were merged into a single + * header with values concatenated by comma. + * + * @param string $header The header's name. + * @param mixed $value The header's value. Removes the header if NULL. + * @return \http\Message self. + */ + public function setHeader(string $header, $value = null) {} + + /** + * Set the message headers. + * See http\Message::getHeaders() and http\Message::addHeaders(). + * + * ***NOTE:*** + * Prior to v2.5.6/v3.1.0 headers with the same name were merged into a single + * header with values concatenated by comma. + * + * @param array $headers The message's headers. + * @return \http\Message null. + */ + public function setHeaders(array $headers = null) {} + + /** + * Set the HTTP protocol version of the message. + * See http\Message::getHttpVersion(). + * + * @param string $http_version The protocol version, e.g. "1.1", optionally prefixed by "HTTP/". + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadHeaderException + * @return \http\Message self. + */ + public function setHttpVersion(string $http_version) {} + + /** + * Set the complete message info, i.e. type and response resp. request information, at once. + * See http\Message::getInfo(). + * + * @param string $http_info The message info (first line of an HTTP message). + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadHeaderException + * @return \http\Message self. + */ + public function setInfo(string $http_info) {} + + /** + * Set the request method of the message. + * See http\Message::getRequestMethod() and http\Message::setRequestUrl(). + * + * @param string $method The request method. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @return \http\Message self. + */ + public function setRequestMethod(string $method) {} + + /** + * Set the request URL of the message. + * See http\Message::getRequestUrl() and http\Message::setRequestMethod(). + * + * @param string $url The request URL. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @return \http\Message self. + */ + public function setRequestUrl(string $url) {} + + /** + * Set the response status code. + * See http\Message::getResponseCode() and http\Message::setResponseStatus(). + * + * ***NOTE:*** + * This method also resets the response status phrase to the default for that code. + * + * @param int $response_code The response code. + * @param bool $strict Whether to check that the response code is between 100 and 599 inclusive. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @return \http\Message self. + */ + public function setResponseCode(int $response_code, bool $strict = true) {} + + /** + * Set the response status phrase. + * See http\Message::getResponseStatus() and http\Message::setResponseCode(). + * + * @param string $response_status The status phrase. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @return \http\Message self. + */ + public function setResponseStatus(string $response_status) {} + + /** + * Set the message type and reset the message info. + * See http\Message::getType() and http\Message::setInfo(). + * + * @param int $type The desired message type. See the http\Message::TYPE_* constants. + * @return \http\Message self. + */ + public function setType(int $type) {} + + /** + * Splits the body of a multipart message. + * See http\Message::isMultipart() and http\Message\Body::addPart(). + * + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @throws \http\Exception\BadMessageException + * @return \http\Message a message chain of all messages of the multipart body. + */ + public function splitMultipartBody() {} + + /** + * Stream the message through a callback. + * + * @param callable $callback The callback of the form function(http\Message $from, string $data). + * @return \http\Message self. + */ + public function toCallback(callable $callback) {} + + /** + * Stream the message into stream $stream, starting from $offset, streaming $maxlen at most. + * + * @param resource $stream The resource to write to. + * @return \http\Message self. + */ + public function toStream($stream) {} + + /** + * Retrieve the message serialized to a string. + * + * @param bool $include_parent Whether to include all parent messages. + * @return string the HTTP message chain serialized to a string. + */ + public function toString(bool $include_parent = false) {} + + /** + * Implements Serializable. + * + * @param string $data The serialized message. + */ + public function unserialize($data) {} + + /** + * Implements Iterator. + * See http\Message::current() and http\Message::rewind(). + * + * @return bool whether http\Message::current() would not return NULL. + */ + public function valid() {} +} +/** + * Parse, interpret and compose HTTP (header) parameters. + */ +class Params implements \ArrayAccess +{ + /** + * The default parameter separator (","). + */ + public const DEF_PARAM_SEP = ','; + + /** + * The default argument separator (";"). + */ + public const DEF_ARG_SEP = ';'; + + /** + * The default value separator ("="). + */ + public const DEF_VAL_SEP = '='; + + /** + * Empty param separator to parse cookies. + */ + public const COOKIE_PARAM_SEP = ''; + + /** + * Do not interpret the parsed parameters. + */ + public const PARSE_RAW = 0; + + /** + * Interpret input as default formatted parameters. + */ + public const PARSE_DEFAULT = 17; + + /** + * Parse backslash escaped (quoted) strings. + */ + public const PARSE_ESCAPED = 1; + + /** + * Urldecode single units of parameters, arguments and values. + */ + public const PARSE_URLENCODED = 4; + + /** + * Parse sub dimensions indicated by square brackets. + */ + public const PARSE_DIMENSION = 8; + + /** + * Parse URL querystring (same as http\Params::PARSE_URLENCODED|http\Params::PARSE_DIMENSION). + */ + public const PARSE_QUERY = 12; + + /** + * Parse [RFC5987](http://tools.ietf.org/html/rfc5987) style encoded character set and language information embedded in HTTP header params. + */ + public const PARSE_RFC5987 = 16; + + /** + * Parse [RFC5988](http://tools.ietf.org/html/rfc5988) (Web Linking) tags of Link headers. + */ + public const PARSE_RFC5988 = 32; + + /** + * The (parsed) parameters. + * + * @var array + */ + public $params = null; + + /** + * The parameter separator(s). + * + * @var array + */ + public $param_sep = \http\Params::DEF_PARAM_SEP; + + /** + * The argument separator(s). + * + * @var array + */ + public $arg_sep = \http\Params::DEF_ARG_SEP; + + /** + * The value separator(s). + * + * @var array + */ + public $val_sep = \http\Params::DEF_VAL_SEP; + + /** + * The modus operandi of the parser. See http\Params::PARSE_* constants. + * + * @var int + */ + public $flags = \http\Params::PARSE_DEFAULT; + + /** + * Instantiate a new HTTP (header) parameter set. + * + * @param mixed $params Pre-parsed parameters or a string to be parsed. + * @param mixed $ps The parameter separator(s). + * @param mixed $as The argument separator(s). + * @param mixed $vs The value separator(s). + * @param int $flags The modus operandi. See http\Params::PARSE_* constants. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\RuntimeException + */ + public function __construct($params = null, $ps = null, $as = null, $vs = null, int $flags = null) {} + + /** + * String cast handler. Alias of http\Params::toString(). + * Returns a stringified version of the parameters. + * + * @return string version of the parameters. + */ + public function __toString() {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to look after. + * @return bool Existence. + */ + public function offsetExists($name) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to retrieve. + * @return mixed contents at offset. + */ + public function offsetGet($name) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to modify. + * @param mixed $value The value to set. + */ + public function offsetSet($name, $value) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to delete. + */ + public function offsetUnset($name) {} + + /** + * Convenience method that simply returns http\Params::$params. + * + * @return array of parameters. + */ + public function toArray() {} + + /** + * Returns a stringified version of the parameters. + * + * @return string version of the parameters. + */ + public function toString() {} +} +/** + * The http\QueryString class provides versatile facilities to retrieve, use and manipulate query strings and form data. + */ +class QueryString implements \Serializable, \ArrayAccess, \IteratorAggregate +{ + /** + * Cast requested value to bool. + */ + public const TYPE_BOOL = 16; + + /** + * Cast requested value to int. + */ + public const TYPE_INT = 4; + + /** + * Cast requested value to float. + */ + public const TYPE_FLOAT = 5; + + /** + * Cast requested value to string. + */ + public const TYPE_STRING = 6; + + /** + * Cast requested value to an array. + */ + public const TYPE_ARRAY = 7; + + /** + * Cast requested value to an object. + */ + public const TYPE_OBJECT = 8; + + /** + * The global instance. See http\QueryString::getGlobalInstance(). + * + * @var \http\QueryString + */ + private $instance = null; + + /** + * The data. + * + * @var array + */ + private $queryArray = null; + + /** + * Create an independent querystring instance. + * + * @param mixed $params The query parameters to use or parse. + * @throws \http\Exception\BadQueryStringException + */ + public function __construct($params = null) {} + + /** + * Get the string representation of the querystring (x-www-form-urlencoded). + * + * @return string the x-www-form-urlencoded querystring. + */ + public function __toString() {} + + /** + * Retrieve an querystring value. + * + * See http\QueryString::TYPE_* constants. + * + * @param string $name The key to retrieve the value for. + * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants. + * @param mixed $defval The default value to return if the key $name does not exist. + * @param bool $delete Whether to delete the entry from the querystring after retrieval. + * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments. + * or string the whole querystring if $name is of zero length. + * or mixed $defval if the key $name does not exist. + * or mixed the querystring value cast to $type if $type was specified and the key $name exists. + * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING. + */ + public function get(string $name = null, $type = null, $defval = null, bool $delete = false) {} + + /** + * Retrieve an array value with at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return array|mixed array the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getArray(string $name, $defval = null, bool $delete = false) {} + + /** + * Retrieve a boolean value at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return bool|mixed bool the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getBool(string $name, $defval = null, bool $delete = false) {} + + /** + * Retrieve a float value at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return float|mixed float the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getFloat(string $name, $defval = null, bool $delete = false) {} + + /** + * Retrieve the global querystring instance referencing $_GET. + * + * @throws \http\Exception\UnexpectedValueException + * @return \http\QueryString the http\QueryString::$instance + */ + public function getGlobalInstance() {} + + /** + * Retrieve a int value at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return int|mixed int the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getInt(string $name, $defval = null, bool $delete = false) {} + + /** + * Implements IteratorAggregate. + * + * @throws \http\Exception\InvalidArgumentException + * @throws \InvalidArgumentException + */ + public function getIterator() {} + + /** + * Retrieve a object value with at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return object|mixed object the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getObject(string $name, $defval = null, bool $delete = false) {} + + /** + * Retrieve a string value with at offset $name. + * + * @param string $name The key to look up. + * @param mixed $defval The default value to return if the offset $name does not exist. + * @param bool $delete Whether to remove the key and value from the querystring after retrieval. + * @return string|mixed string the (casted) value. + * or mixed $defval if offset $name does not exist. + */ + public function getString(string $name, $defval = null, bool $delete = false) {} + + /** + * Set additional $params to a clone of this instance. + * See http\QueryString::set(). + * + * ***NOTE:*** + * This method returns a clone (copy) of this instance. + * + * @param mixed $params Additional params as object, array or string to parse. + * @throws \http\Exception\BadQueryStringException + * @return \http\QueryString clone. + */ + public function mod($params = null) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to look up. + * @return bool whether the key $name isset. + */ + public function offsetExists($name) {} + + /** + * Implements ArrayAccess. + * + * @param mixed $offset The offset to look up. + * @return mixed|null mixed the value locate at offset $name. + * or NULL if key $name could not be found. + */ + public function offsetGet($offset) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The key to set the value for. + * @param mixed $data The data to place at offset $name. + */ + public function offsetSet($name, $data) {} + + /** + * Implements ArrayAccess. + * + * @param string $name The offset to look up. + */ + public function offsetUnset($name) {} + + /** + * Implements Serializable. + * See http\QueryString::toString(). + * + * @return string the x-www-form-urlencoded querystring. + */ + public function serialize() {} + + /** + * Set additional querystring entries. + * + * @param mixed $params Additional params as object, array or string to parse. + * @return \http\QueryString self. + */ + public function set($params) {} + + /** + * Simply returns http\QueryString::$queryArray. + * + * @return array the $queryArray property. + */ + public function toArray() {} + + /** + * Get the string representation of the querystring (x-www-form-urlencoded). + * + * @return string the x-www-form-urlencoded querystring. + */ + public function toString() {} + + /** + * Implements Serializable. + * + * @param string $serialized The x-www-form-urlencoded querystring. + * @throws \http\Exception + */ + public function unserialize($serialized) {} + + /** + * Translate character encodings of the querystring with ext/iconv. + * + * ***NOTE:*** + * This method is only available when ext/iconv support was enabled at build time. + * + * @param string $from_enc The encoding to convert from. + * @param string $to_enc The encoding to convert to. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadConversionException + * @return \http\QueryString self. + */ + public function xlate(string $from_enc, string $to_enc) {} +} +/** + * The http\Url class provides versatile means to parse, construct and manipulate URLs. + */ +class Url +{ + /** + * Replace parts of the old URL with parts of the new. + */ + public const REPLACE = 0; + + /** + * Whether a relative path should be joined into the old path. + */ + public const JOIN_PATH = 1; + + /** + * Whether the querystrings should be joined. + */ + public const JOIN_QUERY = 2; + + /** + * Strip the user information from the URL. + */ + public const STRIP_USER = 4; + + /** + * Strip the password from the URL. + */ + public const STRIP_PASS = 8; + + /** + * Strip user and password information from URL (same as STRIP_USER|STRIP_PASS). + */ + public const STRIP_AUTH = 12; + + /** + * Do not include the port. + */ + public const STRIP_PORT = 32; + + /** + * Do not include the URL path. + */ + public const STRIP_PATH = 64; + + /** + * Do not include the URL querystring. + */ + public const STRIP_QUERY = 128; + + /** + * Strip the fragment (hash) from the URL. + */ + public const STRIP_FRAGMENT = 256; + + /** + * Strip everything except scheme and host information. + */ + public const STRIP_ALL = 492; + + /** + * Import initial URL parts from the SAPI environment. + */ + public const FROM_ENV = 4096; + + /** + * Whether to sanitize the URL path (consolidate double slashes, directory jumps etc.) + */ + public const SANITIZE_PATH = 8192; + + /** + * Parse UTF-8 encoded multibyte sequences. + */ + public const PARSE_MBUTF8 = 131072; + + /** + * Parse locale encoded multibyte sequences (on systems with wide character support). + */ + public const PARSE_MBLOC = 65536; + + /** + * Parse and convert multibyte hostnames according to IDNA (with IDNA support). + */ + public const PARSE_TOIDN = 1048576; + + /** + * Explicitly request IDNA2003 implementation if available (libidn, idnkit or ICU). + */ + public const PARSE_TOIDN_2003 = 9437184; + + /** + * Explicitly request IDNA2008 implementation if available (libidn2, idnkit2 or ICU). + */ + public const PARSE_TOIDN_2008 = 5242880; + + /** + * Percent encode multibyte sequences in the userinfo, path, query and fragment parts of the URL. + */ + public const PARSE_TOPCT = 2097152; + + /** + * Continue parsing when encountering errors. + */ + public const IGNORE_ERRORS = 268435456; + + /** + * Suppress errors/exceptions. + */ + public const SILENT_ERRORS = 536870912; + + /** + * Standard flags used by default internally for e.g. http\Message::setRequestUrl(). + * Enables joining path and query, sanitizing path, multibyte/unicode, international domain names and transient percent encoding. + */ + public const STDFLAGS = 3350531; + + /** + * The URL's scheme. + * + * @var string + */ + public $scheme = null; + + /** + * Authenticating user. + * + * @var string + */ + public $user = null; + + /** + * Authentication password. + * + * @var string + */ + public $pass = null; + + /** + * Hostname/domain. + * + * @var string + */ + public $host = null; + + /** + * Port. + * + * @var string + */ + public $port = null; + + /** + * URL path. + * + * @var string + */ + public $path = null; + + /** + * URL querystring. + * + * @var string + */ + public $query = null; + + /** + * URL fragment (hash). + * + * @var string + */ + public $fragment = null; + + /** + * Create an instance of an http\Url. + * + * ***NOTE:*** + * Prior to v3.0.0, the default for the $flags parameter was http\Url::FROM_ENV. + * + * See also http\Env\Url. + * + * @param mixed $old_url Initial URL parts. Either an array, object, http\Url instance or string to parse. + * @param mixed $new_url Overriding URL parts. Either an array, object, http\Url instance or string to parse. + * @param int $flags The modus operandi of constructing the url. See http\Url constants. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadUrlException + */ + public function __construct($old_url = null, $new_url = null, int $flags = 0) {} + + /** + * String cast handler. Alias of http\Url::toString(). + * + * @return string the URL as string. + */ + public function __toString() {} + + /** + * Clone this URL and apply $parts to the cloned URL. + * + * ***NOTE:*** + * This method returns a clone (copy) of this instance. + * + * @param mixed $parts New URL parts. + * @param int $flags Modus operandi of URL construction. See http\Url constants. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadUrlException + * @return \http\Url clone. + */ + public function mod($parts, int $flags = \http\Url::JOIN_PATH|\http\Url::JOIN_QUERY|\http\Url::SANITIZE_PATH) {} + + /** + * Retrieve the URL parts as array. + * + * @return array the URL parts. + */ + public function toArray() {} + + /** + * Get the string prepresentation of the URL. + * + * @return string the URL as string. + */ + public function toString() {} +} +/** + * The http\Client\Curl namespace holds option value constants specific to the curl driver of the http\Client. + */ + +namespace http\Client\Curl; + +/** + * Bitmask of available libcurl features. + * See http\Client\Curl\Features namespace. + */ +const FEATURES = 4179869; +/** + * List of library versions of or linked into libcurl, + * e.g. "libcurl/7.50.0 OpenSSL/1.0.2h zlib/1.2.8 libidn/1.32 nghttp2/1.12.0". + * See http\Client\Curl\Versions namespace. + */ +const VERSIONS = 'libcurl/7.64.0 OpenSSL/1.1.1b zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3'; +/** + * Use HTTP/1.0 protocol version. + */ +const HTTP_VERSION_1_0 = 1; +/** + * Use HTTP/1.1 protocol version. + */ +const HTTP_VERSION_1_1 = 2; +/** + * Attempt to use HTTP/2 protocol version. Available if libcurl is v7.33.0 or more recent and was built with nghttp2 support. + */ +const HTTP_VERSION_2_0 = 3; +/** + * Attempt to use version 2 for HTTPS, version 1.1 for HTTP. Available if libcurl is v7.47.0 or more recent and was built with nghttp2 support. + */ +const HTTP_VERSION_2TLS = 4; +/** + * Use any HTTP protocol version. + */ +const HTTP_VERSION_ANY = 0; +/** + * Use TLS v1.0 encryption. + */ +const SSL_VERSION_TLSv1_0 = 4; +/** + * Use TLS v1.1 encryption. + */ +const SSL_VERSION_TLSv1_1 = 5; +/** + * Use TLS v1.2 encryption. + */ +const SSL_VERSION_TLSv1_2 = 6; +/** + * Use any TLS v1 encryption. + */ +const SSL_VERSION_TLSv1 = 1; +/** + * Use SSL v2 encryption. + */ +const SSL_VERSION_SSLv2 = 2; +/** + * Use SSL v3 encryption. + */ +const SSL_VERSION_SSLv3 = 3; +/** + * Use any encryption. + */ +const SSL_VERSION_ANY = 0; +/** + * Use TLS SRP authentication. Available if libcurl is v7.21.4 or more recent and was built with gnutls or openssl with TLS-SRP support. + */ +const TLSAUTH_SRP = 1; +/** + * Use IPv4 resolver. + */ +const IPRESOLVE_V4 = 1; +/** + * Use IPv6 resolver. + */ +const IPRESOLVE_V6 = 2; +/** + * Use any resolver. + */ +const IPRESOLVE_ANY = 0; +/** + * Use Basic authentication. + */ +const AUTH_BASIC = 1; +/** + * Use Digest authentication. + */ +const AUTH_DIGEST = 2; +/** + * Use IE (lower v7) quirks with Digest authentication. Available if libcurl is v7.19.3 or more recent. + */ +const AUTH_DIGEST_IE = 16; +/** + * Use NTLM authentication. + */ +const AUTH_NTLM = 8; +/** + * Use GSS-Negotiate authentication. + */ +const AUTH_GSSNEG = 4; +/** + * Use HTTP Netgotiate authentication (SPNEGO, RFC4559). Available if libcurl is v7.38.0 or more recent. + */ +const AUTH_SPNEGO = 4; +/** + * Use any authentication. + */ +const AUTH_ANY = -17; +/** + * Use SOCKSv4 proxy protocol. + */ +const PROXY_SOCKS4 = 4; +/** + * Use SOCKSv4a proxy protocol. + */ +const PROXY_SOCKS4A = 5; +/** + * Use SOCKS5h proxy protocol. + */ +const PROXY_SOCKS5_HOSTNAME = 5; +/** + * Use SOCKS5 proxy protoccol. + */ +const PROXY_SOCKS5 = 5; +/** + * Use HTTP/1.1 proxy protocol. + */ +const PROXY_HTTP = 0; +/** + * Use HTTP/1.0 proxy protocol. Available if libcurl is v7.19.4 or more recent. + */ +const PROXY_HTTP_1_0 = 1; +/** + * Keep POSTing on 301 redirects. Available if libcurl is v7.19.1 or more recent. + */ +const POSTREDIR_301 = 1; +/** + * Keep POSTing on 302 redirects. Available if libcurl is v7.19.1 or more recent. + */ +const POSTREDIR_302 = 2; +/** + * Keep POSTing on 303 redirects. Available if libcurl is v7.19.1 or more recent. + */ +const POSTREDIR_303 = 4; +/** + * Keep POSTing on any redirect. Available if libcurl is v7.19.1 or more recent. + */ +const POSTREDIR_ALL = 7; + +namespace http\Client; + +/** + * The http\Client\Request class provides an HTTP message implementation tailored to represent a request message to be sent by the client. + * + * See http\Client::enqueue(). + */ +class Request extends \http\Message +{ + /** + * Array of options for this request, which override client options. + * + * @var array + */ + protected $options = null; + + /** + * Create a new client request message to be enqueued and sent by http\Client. + * + * @param string $meth The request method. + * @param string $url The request URL. + * @param array $headers HTTP headers. + * @param \http\Message\Body $body Request body. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + */ + public function __construct(string $meth = null, string $url = null, array $headers = null, http\Message\Body $body = null) {} + + /** + * Add querystring data. + * See http\Client\Request::setQuery() and http\Message::setRequestUrl(). + * + * @param mixed $query_data Additional querystring data. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadQueryStringException + * @return \http\Client\Request self. + */ + public function addQuery($query_data) {} + + /** + * Add specific SSL options. + * See http\Client\Request::setSslOptions(), http\Client\Request::setOptions() and http\Client\Curl\$ssl options. + * + * @param array $ssl_options Add this SSL options. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Client\Request self. + */ + public function addSslOptions(array $ssl_options = null) {} + + /** + * Extract the currently set "Content-Type" header. + * See http\Client\Request::setContentType(). + * + * @return string|null string the currently set content type. + * or NULL if no "Content-Type" header is set. + */ + public function getContentType() {} + + /** + * Get priorly set options. + * See http\Client\Request::setOptions(). + * + * @return array options. + */ + public function getOptions() {} + + /** + * Retrieve the currently set querystring. + * + * @return string|null string the currently set querystring. + * or NULL if no querystring is set. + */ + public function getQuery() {} + + /** + * Retrieve priorly set SSL options. + * See http\Client\Request::getOptions() and http\Client\Request::setSslOptions(). + * + * @return array SSL options. + */ + public function getSslOptions() {} + + /** + * Set the MIME content type of the request message. + * + * @param string $content_type The MIME type used as "Content-Type". + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Client\Request self. + */ + public function setContentType(string $content_type) {} + + /** + * Set client options. + * See http\Client::setOptions() and http\Client\Curl. + * + * Request specific options override general options which were set in the client. + * + * ***NOTE:*** + * Only options specified prior enqueueing a request are applied to the request. + * + * @param array $options The options to set. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Client\Request self. + */ + public function setOptions(array $options = null) {} + + /** + * (Re)set the querystring. + * See http\Client\Request::addQuery() and http\Message::setRequestUrl(). + * + * @param mixed $query_data + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadQueryStringException + * @return \http\Client\Request self. + */ + public function setQuery($query_data) {} + + /** + * Specifically set SSL options. + * See http\Client\Request::setOptions() and http\Client\Curl\$ssl options. + * + * @param array $ssl_options Set SSL options to this array. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Client\Request self. + */ + public function setSslOptions(array $ssl_options = null) {} +} +/** + * The http\Client\Response class represents an HTTP message the client returns as answer from a server to an http\Client\Request. + */ +class Response extends \http\Message +{ + /** + * Extract response cookies. + * Parses any "Set-Cookie" response headers into an http\Cookie list. See http\Cookie::__construct(). + * + * @param int $flags Cookie parser flags. + * @param array $allowed_extras List of keys treated as extras. + * @return array list of http\Cookie instances. + */ + public function getCookies(int $flags = 0, array $allowed_extras = null) {} + + /** + * Retrieve transfer related information after the request has completed. + * See http\Client::getTransferInfo(). + * + * @param string $name A key to retrieve out of the transfer info. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\BadMethodCallException + * @throws \http\Exception\UnexpectedValueException + * @return object|mixed object stdClass instance with all transfer info if $name was not given. + * or mixed the specific transfer info for $name. + */ + public function getTransferInfo(string $name = null) {} +} + +namespace http\Client\Curl; + +/** + * Interface to an user event loop implementation for http\Client::configure()'s $use_eventloop option. + * + * ***NOTE:*** + * This interface was added in v2.6.0, resp. v3.1.0. + */ +interface User +{ + /** + * No action. + */ + public const POLL_NONE = 0; + + /** + * Poll for read readiness. + */ + public const POLL_IN = 1; + + /** + * Poll for write readiness. + */ + public const POLL_OUT = 2; + + /** + * Poll for read/write readiness. + */ + public const POLL_INOUT = 3; + + /** + * Stop polling for activity on this descriptor. + */ + public const POLL_REMOVE = 4; + + /** + * Initialize the event loop. + * + * @param callable $run as function(http\Client $c, resource $s = null, int $action = http\Client\Curl\User::POLL_NONE) : int + * Internal callback returning the number of unfinished requests pending. + * + * + * ***NOTE***: + * The callback should be run when a timeout occurs or a watched socket needs action. + */ + public function init(callable $run); + + /** + * Run the loop as long as it does not block. + * + * ***NOTE:*** + * This method is called by http\Client::once(), so it does not need to have an actual implementation if http\Client::once() is never called. + */ + public function once(); + + /** + * Run the loop. + * + * ***NOTE:*** + * This method is called by http\Client::send(), so it does not need to have an actual implementation if http\Client::send() is never called. + */ + public function send(); + + /** + * Register (or deregister) a socket watcher. + * + * @param resource $socket The socket descriptor to watch. + * @param int $poll http\Client\Curl\User::POLL_* constant. + */ + public function socket($socket, int $poll); + + /** + * Register a timeout watcher. + * + * @param int $timeout_ms Desired maximum timeout in milliseconds. + */ + public function timer(int $timeout_ms); + + /** + * Wait/poll/select (block the loop) until events fire. + * + * ***NOTE:*** + * This method is called by http\Client::wait(), so it does not need to have an actual implementation if http\Client::wait() is never called. + * + * @param int $timeout_ms Block for at most this milliseconds. + */ + public function wait(int $timeout_ms = null); +} +/** + * CURL feature constants. + * + * ***NOTE:*** + * These constants have been added in v2.6.0, resp. v3.1.0. + */ + +namespace http\Client\Curl\Features; + +/** + * Whether libcurl supports asynchronous domain name resolution. + */ +const ASYNCHDNS = 128; +/** + * Whether libcurl supports the Generic Security Services Application Program Interface. Available if libcurl is v7.38.0 or more recent. + */ +const GSSAPI = 131072; +/** + * Whether libcurl supports HTTP Generic Security Services negotiation. + */ +const GSSNEGOTIATE = 32; +/** + * Whether libcurl supports the HTTP/2 protocol. Available if libcurl is v7.33.0 or more recent. + */ +const HTTP2 = 65536; +/** + * Whether libcurl supports international domain names. + */ +const IDN = 1024; +/** + * Whether libcurl supports IPv6. + */ +const IPV6 = 1; +/** + * Whether libcurl supports the old Kerberos protocol. + */ +const KERBEROS4 = 2; +/** + * Whether libcurl supports the more recent Kerberos v5 protocol. Available if libcurl is v7.40.0 or more recent. + */ +const KERBEROS5 = 262144; +/** + * Whether libcurl supports large files. + */ +const LARGEFILE = 512; +/** + * Whether libcurl supports gzip/deflate compression. + */ +const LIBZ = 8; +/** + * Whether libcurl supports the NT Lan Manager authentication. + */ +const NTLM = 16; +/** + * Whether libcurl supports NTLM delegation to a winbind helper. Available if libcurl is v7.22.0 or more recent. + */ +const NTLM_WB = 32768; +/** + * Whether libcurl supports the Public Suffix List for cookie host handling. Available if libcurl is v7.47.0 or more recent. + */ +const PSL = 1048576; +/** + * Whether libcurl supports the Simple and Protected GSSAPI Negotiation Mechanism. + */ +const SPNEGO = 256; +/** + * Whether libcurl supports SSL/TLS protocols. + */ +const SSL = 4; +/** + * Whether libcurl supports the Security Support Provider Interface. + */ +const SSPI = 2048; +/** + * Whether libcurl supports TLS Secure Remote Password authentication. Available if libcurl is v7.21.4 or more recent. + */ +const TLSAUTH_SRP = 16384; +/** + * Whether libcurl supports connections to unix sockets. Available if libcurl is v7.40.0 or more recent. + */ +const UNIX_SOCKETS = 524288; +/** + * CURL version constants. + * + * ***NOTE:*** + * These constants have been added in v2.6.0, resp. v3.1.0. + */ + +namespace http\Client\Curl\Versions; + +/** + * Version string of libcurl, e.g. "7.50.0". + */ +const CURL = '7.64.0'; +/** + * Version string of the SSL/TLS library, e.g. "OpenSSL/1.0.2h". + */ +const SSL = 'OpenSSL/1.1.1b'; +/** + * Version string of the zlib compression library, e.g. "1.2.8". + */ +const LIBZ = '1.2.11'; +/** + * Version string of the c-ares library, e.g. "1.11.0". + */ +const ARES = null; +/** + * Version string of the IDN library, e.g. "1.32". + */ +const IDN = null; + +namespace http\Encoding; + +/** + * Base class for encoding stream implementations. + */ +abstract class Stream +{ + /** + * Do no intermittent flushes. + */ + public const FLUSH_NONE = 0; + + /** + * Flush at appropriate transfer points. + */ + public const FLUSH_SYNC = 1048576; + + /** + * Flush at each IO operation. + */ + public const FLUSH_FULL = 2097152; + + /** + * Base constructor for encoding stream implementations. + * + * @param int $flags See http\Encoding\Stream and implementation specific constants. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\RuntimeException + */ + public function __construct(int $flags = 0) {} + + /** + * Check whether the encoding stream is already done. + * + * @return bool whether the encoding stream is completed. + */ + public function done() {} + + /** + * Finish and reset the encoding stream. + * Returns any pending data. + * + * @return string any pending data. + */ + public function finish() {} + + /** + * Flush the encoding stream. + * Returns any pending data. + * + * @return string any pending data. + */ + public function flush() {} + + /** + * Update the encoding stream with more input. + * + * @param string $data The data to pass through the stream. + * @return string processed data. + */ + public function update(string $data) {} +} + +namespace http\Encoding\Stream; + +/** + * A [brotli](https://brotli.org) decoding stream. + * + * ***NOTE:*** + * This class has been added in v3.2.0. + */ +class Debrotli extends \http\Encoding\Stream +{ + /** + * Decode brotli encoded data. + * + * @param string $data The data to uncompress. + * @return string the uncompressed data. + */ + public function decode(string $data) {} +} +/** + * A stream decoding data encoded with chunked transfer encoding. + */ +class Dechunk extends \http\Encoding\Stream +{ + /** + * Decode chunked encoded data. + * + * @param string $data The data to decode. + * @param int &$decoded_len Out parameter with the length of $data that's been decoded. + * Should be ```strlen($data)``` if not truncated. + * @return string|string|string|false string the decoded data. + * or string the unencoded data. + * or string the truncated decoded data. + * or false if $data cannot be decoded. + */ + public function decode(string $data, int &$decoded_len = 0) {} +} +/** + * A deflate stream supporting deflate, zlib and gzip encodings. + */ +class Deflate extends \http\Encoding\Stream +{ + /** + * Gzip encoding. RFC1952 + */ + public const TYPE_GZIP = 16; + + /** + * Zlib encoding. RFC1950 + */ + public const TYPE_ZLIB = 0; + + /** + * Deflate encoding. RFC1951 + */ + public const TYPE_RAW = 32; + + /** + * Default compression level. + */ + public const LEVEL_DEF = 0; + + /** + * Least compression level. + */ + public const LEVEL_MIN = 1; + + /** + * Greatest compression level. + */ + public const LEVEL_MAX = 9; + + /** + * Default compression strategy. + */ + public const STRATEGY_DEF = 0; + + /** + * Filtered compression strategy. + */ + public const STRATEGY_FILT = 256; + + /** + * Huffman strategy only. + */ + public const STRATEGY_HUFF = 512; + + /** + * Run-length encoding strategy. + */ + public const STRATEGY_RLE = 768; + + /** + * Encoding with fixed Huffman codes only. + * + * > **A note on the compression strategy:** + * > + * > The strategy parameter is used to tune the compression algorithm. + * > + * > Use the value DEFAULT_STRATEGY for normal data, FILTERED for data produced by a filter (or predictor), HUFFMAN_ONLY to force Huffman encoding only (no string match), or RLE to limit match distances to one (run-length encoding). + * > + * > Filtered data consists mostly of small values with a somewhat random distribution. In this case, the compression algorithm is tuned to compress them better. The effect of FILTERED is to force more Huffman coding and less string matching; it is somewhat intermediate between DEFAULT_STRATEGY and HUFFMAN_ONLY. + * > + * > RLE is designed to be almost as fast as HUFFMAN_ONLY, but give better compression for PNG image data. + * > + * > FIXED prevents the use of dynamic Huffman codes, allowing for a simpler decoder for special applications. + * > + * > The strategy parameter only affects the compression ratio but not the correctness of the compressed output even if it is not set appropriately. + * > + * >_Source: [zlib Manual](http://www.zlib.net/manual.html)_ + */ + public const STRATEGY_FIXED = 1024; + + /** + * Encode data with deflate/zlib/gzip encoding. + * + * @param string $data The data to compress. + * @param int $flags Any compression tuning flags. See http\Encoding\Stream\Deflate and http\Encoding\Stream constants. + * @return string the compressed data. + */ + public function encode(string $data, int $flags = 0) {} +} +/** + * A [brotli](https://brotli.org) encoding stream. + * + * ***NOTE:*** + * This class has been added in v3.2.0. + */ +class Enbrotli extends \http\Encoding\Stream +{ + /** + * Default compression level. + */ + public const LEVEL_DEF = null; + + /** + * Least compression level. + */ + public const LEVEL_MIN = null; + + /** + * Greatest compression level. + */ + public const LEVEL_MAX = null; + + /** + * Default window bits. + */ + public const WBITS_DEF = null; + + /** + * Minimum window bits. + */ + public const WBITS_MIN = null; + + /** + * Maximum window bits. + */ + public const WBITS_MAX = null; + + /** + * Default compression mode. + */ + public const MODE_GENERIC = null; + + /** + * Compression mode for UTF-8 formatted text. + */ + public const MODE_TEXT = null; + + /** + * Compression mode used in WOFF 2.0. + */ + public const MODE_FONT = null; + + /** + * Encode data with brotli encoding. + * + * @param string $data The data to compress. + * @param int $flags Any compression tuning flags. See http\Encoding\Stream\Enbrotli and http\Encoding\Stream constants. + * @return string the compressed data. + */ + public function encode(string $data, int $flags = 0) {} +} +/** + * A inflate stream supporting deflate, zlib and gzip encodings. + */ +class Inflate extends \http\Encoding\Stream +{ + /** + * Decode deflate/zlib/gzip encoded data. + * + * @param string $data The data to uncompress. + * @return string the uncompressed data. + */ + public function decode(string $data) {} +} + +namespace http\Env; + +/** + * The http\Env\Request class' instances represent the server's current HTTP request. + * + * See http\Message for inherited members. + */ +class Request extends \http\Message +{ + /** + * The request's query parameters. ($_GET) + * + * @var \http\QueryString + */ + protected $query = null; + + /** + * The request's form parameters. ($_POST) + * + * @var \http\QueryString + */ + protected $form = null; + + /** + * The request's form uploads. ($_FILES) + * + * @var array + */ + protected $files = null; + + /** + * The request's cookies. ($_COOKIE) + * + * @var array + */ + protected $cookie = null; + + /** + * Create an instance of the server's current HTTP request. + * + * Upon construction, the http\Env\Request acquires http\QueryString instances of query parameters ($\_GET) and form parameters ($\_POST). + * + * It also compiles an array of uploaded files ($\_FILES) more comprehensive than the original $\_FILES array, see http\Env\Request::getFiles() for that matter. + * + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + */ + public function __construct() {} + + /** + * Retrieve an URL query value ($_GET). + * + * See http\QueryString::get() and http\QueryString::TYPE_* constants. + * + * @param string $name The key to retrieve the value for. + * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants. + * @param mixed $defval The default value to return if the key $name does not exist. + * @param bool $delete Whether to delete the entry from the querystring after retrieval. + * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments. + * or string the whole querystring if $name is of zero length. + * or mixed $defval if the key $name does not exist. + * or mixed the querystring value cast to $type if $type was specified and the key $name exists. + * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING. + */ + public function getCookie(string $name = null, $type = null, $defval = null, bool $delete = false) {} + + /** + * Retrieve the uploaded files list ($_FILES). + * + * @return array the consolidated upload files array. + */ + public function getFiles() {} + + /** + * Retrieve a form value ($_POST). + * + * See http\QueryString::get() and http\QueryString::TYPE_* constants. + * + * @param string $name The key to retrieve the value for. + * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants. + * @param mixed $defval The default value to return if the key $name does not exist. + * @param bool $delete Whether to delete the entry from the querystring after retrieval. + * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments. + * or string the whole querystring if $name is of zero length. + * or mixed $defval if the key $name does not exist. + * or mixed the querystring value cast to $type if $type was specified and the key $name exists. + * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING. + */ + public function getForm(string $name = null, $type = null, $defval = null, bool $delete = false) {} + + /** + * Retrieve an URL query value ($_GET). + * + * See http\QueryString::get() and http\QueryString::TYPE_* constants. + * + * @param string $name The key to retrieve the value for. + * @param mixed $type The type to cast the value to. See http\QueryString::TYPE_* constants. + * @param mixed $defval The default value to return if the key $name does not exist. + * @param bool $delete Whether to delete the entry from the querystring after retrieval. + * @return \http\QueryString|string|mixed|mixed|string \http\QueryString if called without arguments. + * or string the whole querystring if $name is of zero length. + * or mixed $defval if the key $name does not exist. + * or mixed the querystring value cast to $type if $type was specified and the key $name exists. + * or string the querystring value if the key $name exists and $type is not specified or equals http\QueryString::TYPE_STRING. + */ + public function getQuery(string $name = null, $type = null, $defval = null, bool $delete = false) {} +} +/** + * The http\Env\Response class' instances represent the server's current HTTP response. + * + * See http\Message for inherited members. + */ +class Response extends \http\Message +{ + /** + * Do not use content encoding. + */ + public const CONTENT_ENCODING_NONE = 0; + + /** + * Support "Accept-Encoding" requests with gzip and deflate encoding. + */ + public const CONTENT_ENCODING_GZIP = 1; + + /** + * No caching info available. + */ + public const CACHE_NO = 0; + + /** + * The cache was hit. + */ + public const CACHE_HIT = 1; + + /** + * The cache was missed. + */ + public const CACHE_MISS = 2; + + /** + * A request instance which overrides the environments default request. + * + * @var \http\Env\Request + */ + protected $request = null; + + /** + * The response's MIME content type. + * + * @var string + */ + protected $contentType = null; + + /** + * The response's MIME content disposition. + * + * @var string + */ + protected $contentDisposition = null; + + /** + * See http\Env\Response::CONTENT_ENCODING_* constants. + * + * @var int + */ + protected $contentEncoding = null; + + /** + * How the client should treat this response in regards to caching. + * + * @var string + */ + protected $cacheControl = null; + + /** + * A custom ETag. + * + * @var string + */ + protected $etag = null; + + /** + * A "Last-Modified" time stamp. + * + * @var int + */ + protected $lastModified = null; + + /** + * Any throttling delay. + * + * @var int + */ + protected $throttleDelay = null; + + /** + * The chunk to send every $throttleDelay seconds. + * + * @var int + */ + protected $throttleChunk = null; + + /** + * The response's cookies. + * + * @var array + */ + protected $cookies = null; + + /** + * Create a new env response message instance. + * + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + */ + public function __construct() {} + + /** + * Output buffer handler. + * Appends output data to the body. + * + * @param string $data The data output. + * @param int $ob_flags Output buffering flags passed from the output buffering control layer. + * @return bool success. + */ + public function __invoke(string $data, int $ob_flags = 0) {} + + /** + * Manually test the header $header_name of the environment's request for a cache hit. + * http\Env\Response::send() checks that itself, though. + * + * @param string $header_name The request header to test. + * @return int a http\Env\Response::CACHE_* constant. + */ + public function isCachedByEtag(string $header_name = "If-None-Match") {} + + /** + * Manually test the header $header_name of the environment's request for a cache hit. + * http\Env\Response::send() checks that itself, though. + * + * @param string $header_name The request header to test. + * @return int a http\Env\Response::CACHE_* constant. + */ + public function isCachedByLastModified(string $header_name = "If-Modified-Since") {} + + /** + * Send the response through the SAPI or $stream. + * Flushes all output buffers. + * + * @param resource $stream A writable stream to send the response through. + * @return bool success. + */ + public function send($stream = null) {} + + /** + * Make suggestions to the client how it should cache the response. + * + * @param string $cache_control (A) "Cache-Control" header value(s). + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setCacheControl(string $cache_control) {} + + /** + * Set the response's content disposition parameters. + * + * @param array $disposition_params MIME content disposition as http\Params array. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setContentDisposition(array $disposition_params) {} + + /** + * Enable support for "Accept-Encoding" requests with deflate or gzip. + * The response will be compressed if the client indicates support and wishes that. + * + * @param int $content_encoding See http\Env\Response::CONTENT_ENCODING_* constants. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setContentEncoding(int $content_encoding) {} + + /** + * Set the MIME content type of the response. + * + * @param string $content_type The response's content type. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setContentType(string $content_type) {} + + /** + * Add cookies to the response to send. + * + * @param mixed $cookie The cookie to send. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return \http\Env\Response self. + */ + public function setCookie($cookie) {} + + /** + * Override the environment's request. + * + * @param \http\Message $env_request The overriding request message. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setEnvRequest(http\Message $env_request) {} + + /** + * Set a custom ETag. + * + * ***NOTE:*** + * This will be used for caching and pre-condition checks. + * + * @param string $etag A ETag. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setEtag(string $etag) {} + + /** + * Set a custom last modified time stamp. + * + * ***NOTE:*** + * This will be used for caching and pre-condition checks. + * + * @param int $last_modified A unix timestamp. + * @throws \http\Exception\InvalidArgumentException + * @return \http\Env\Response self. + */ + public function setLastModified(int $last_modified) {} + + /** + * Enable throttling. + * Send $chunk_size bytes every $delay seconds. + * + * ***NOTE:*** + * If you need throttling by regular means, check for other options in your stack, because this method blocks the executing process/thread until the response has completely been sent. + * + * @param int $chunk_size Bytes to send. + * @param float $delay Seconds to sleep. + * @return \http\Env\Response self. + */ + public function setThrottleRate(int $chunk_size, float $delay = 1) {} +} +/** + * URL class using the HTTP environment by default. + * + * ***NOTE:*** + * This class has been added in v3.0.0. + * + * Always adds http\Url::FROM_ENV to the $flags constructor argument. See also http\Url. + */ +class Url extends \http\Url {} + +namespace http\Exception; + +/** + * A bad conversion (e.g. character conversion) was encountered. + */ +class BadConversionException extends \DomainException implements \http\Exception {} +/** + * A bad HTTP header was encountered. + */ +class BadHeaderException extends \DomainException implements \http\Exception {} +/** + * A bad HTTP message was encountered. + */ +class BadMessageException extends \DomainException implements \http\Exception {} +/** + * A method was called on an object, which was in an invalid or unexpected state. + */ +class BadMethodCallException extends \BadMethodCallException implements \http\Exception {} +/** + * A bad querystring was encountered. + */ +class BadQueryStringException extends \DomainException implements \http\Exception {} +/** + * A bad HTTP URL was encountered. + */ +class BadUrlException extends \DomainException implements \http\Exception {} +/** + * One or more invalid arguments were passed to a method. + */ +class InvalidArgumentException extends \InvalidArgumentException implements \http\Exception {} +/** + * A generic runtime exception. + */ +class RuntimeException extends \RuntimeException implements \http\Exception {} +/** + * An unexpected value was encountered. + */ +class UnexpectedValueException extends \UnexpectedValueException implements \http\Exception {} + +namespace http\Header; + +/** + * The parser which is underlying http\Header and http\Message. + * + * ***NOTE:*** + * This class has been added in v2.3.0. + */ +class Parser +{ + /** + * Finish up parser at end of (incomplete) input. + */ + public const CLEANUP = 1; + + /** + * Parse failure. + */ + public const STATE_FAILURE = -1; + + /** + * Expecting HTTP info (request/response line) or headers. + */ + public const STATE_START = 0; + + /** + * Expecting a key or already parsing a key. + */ + public const STATE_KEY = 1; + + /** + * Expecting a value or already parsing the value. + */ + public const STATE_VALUE = 2; + + /** + * At EOL of an header, checking whether a folded header line follows. + */ + public const STATE_VALUE_EX = 3; + + /** + * A header was completed. + */ + public const STATE_HEADER_DONE = 4; + + /** + * Finished parsing the headers. + * + * ***NOTE:*** + * Most of this states won't be returned to the user, because the parser immediately jumps to the next expected state. + */ + public const STATE_DONE = 5; + + /** + * Retrieve the current state of the parser. + * See http\Header\Parser::STATE_* constants. + * + * @throws \http\Exception\InvalidArgumentException + * @return int http\Header\Parser::STATE_* constant. + */ + public function getState() {} + + /** + * Parse a string. + * + * @param string $data The (part of the) header to parse. + * @param int $flags Any combination of [parser flags](http/Header/Parser#Parser.flags:). + * @param array &$header Successfully parsed headers. + * @throws \http\Exception\InvalidArgumentException + * @return int http\Header\Parser::STATE_* constant. + */ + public function parse(string $data, int $flags, array &$header = null) {} + + /** + * Parse a stream. + * + * @param resource $stream The header stream to parse from. + * @param int $flags Any combination of [parser flags](http/Header/Parser#Parser.flags:). + * @param array &$headers The headers parsed. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return int http\Header\Parser::STATE_* constant. + */ + public function stream($stream, int $flags, array &$headers) {} +} + +namespace http\Message; + +/** + * The message body, represented as a PHP (temporary) stream. + * + * ***NOTE:*** + * Currently, http\Message\Body::addForm() creates multipart/form-data bodies. + */ +class Body implements \Serializable +{ + /** + * Create a new message body, optionally referencing $stream. + * + * @param resource $stream A stream to be used as message body. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + */ + public function __construct($stream = null) {} + + /** + * String cast handler. + * + * @return string the message body. + */ + public function __toString() {} + + /** + * Add form fields and files to the message body. + * + * ***NOTE:*** + * Currently, http\Message\Body::addForm() creates "multipart/form-data" bodies. + * + * @param array $fields List of form fields to add. + * @param array $files List of form files to add. + * + * $fields must look like: + * + * [ + * "field_name" => "value", + * "multi_field" => [ + * "value1", + * "value2" + * ] + * ] + * + * $files must look like: + * + * [ + * [ + * "name" => "field_name", + * "type" => "content/type", + * "file" => "/path/to/file.ext" + * ], [ + * "name" => "field_name2", + * "type" => "text/plain", + * "file" => "file.ext", + * "data" => "string" + * ], [ + * "name" => "field_name3", + * "type" => "image/jpeg", + * "file" => "file.ext", + * "data" => fopen("/home/mike/Pictures/mike.jpg","r") + * ] + * + * As you can see, a file structure must contain a "file" entry, which holds a file path, and an optional "data" entry, which may either contain a resource to read from or the actual data as string. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\RuntimeException + * @return \http\Message\Body self. + */ + public function addForm(array $fields = null, array $files = null) {} + + /** + * Add a part to a multipart body. + * + * @param \http\Message $part The message part. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\RuntimeException + * @return \http\Message\Body self. + */ + public function addPart(http\Message $part) {} + + /** + * Append plain bytes to the message body. + * + * @param string $data The data to append to the body. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\RuntimeException + * @return \http\Message\Body self. + */ + public function append(string $data) {} + + /** + * Retrieve the ETag of the body. + * + * @return string|string|false string an Apache style ETag of inode, mtime and size in hex concatenated by hyphens if the message body stream is stat-able. + * or string a content hash (which algorithm is determined by INI http.etag.mode) if the stream is not stat-able. + * or false if http.etag.mode is not a known hash algorithm. + */ + public function etag() {} + + /** + * Retrieve any boundary of the message body. + * See http\Message::splitMultipartBody(). + * + * @return string|null string the message body boundary. + * or NULL if this message body has no boundary. + */ + public function getBoundary() {} + + /** + * Retrieve the underlying stream resource. + * + * @return resource the underlying stream. + */ + public function getResource() {} + + /** + * Implements Serializable. + * Alias of http\Message\Body::__toString(). + * + * @return string serialized message body. + */ + public function serialize() {} + + /** + * Stat size, atime, mtime and/or ctime. + * + * @param string $field A single stat field to retrieve. + * @return int|object int the requested stat field. + * or object stdClass instance holding all four stat fields. + */ + public function stat(string $field = null) {} + + /** + * Stream the message body through a callback. + * + * @param callable $callback The callback of the form function(http\Message\Body $from, string $data). + * @param int $offset Start to stream from this offset. + * @param int $maxlen Stream at most $maxlen bytes, or all if $maxlen is less than 1. + * @return \http\Message\Body self. + */ + public function toCallback(callable $callback, int $offset = 0, int $maxlen = 0) {} + + /** + * Stream the message body into another stream $stream, starting from $offset, streaming $maxlen at most. + * + * @param resource $stream The resource to write to. + * @param int $offset The starting offset. + * @param int $maxlen The maximum amount of data to stream. All content if less than 1. + * @return \http\Message\Body self. + */ + public function toStream($stream, int $offset = 0, int $maxlen = 0) {} + + /** + * Retrieve the message body serialized to a string. + * Alias of http\Message\Body::__toString(). + * + * @return string message body. + */ + public function toString() {} + + /** + * Implements Serializable. + * + * @param string $serialized The serialized message body. + */ + public function unserialize($serialized) {} +} +/** + * The parser which is underlying http\Message. + * + * ***NOTE:*** + * This class was added in v2.2.0. + */ +class Parser +{ + /** + * Finish up parser at end of (incomplete) input. + */ + public const CLEANUP = 1; + + /** + * Soak up the rest of input if no entity length is deducible. + */ + public const DUMB_BODIES = 2; + + /** + * Redirect messages do not contain any body despite of indication of such. + */ + public const EMPTY_REDIRECTS = 4; + + /** + * Continue parsing while input is available. + */ + public const GREEDY = 8; + + /** + * Parse failure. + */ + public const STATE_FAILURE = -1; + + /** + * Expecting HTTP info (request/response line) or headers. + */ + public const STATE_START = 0; + + /** + * Parsing headers. + */ + public const STATE_HEADER = 1; + + /** + * Completed parsing headers. + */ + public const STATE_HEADER_DONE = 2; + + /** + * Parsing the body. + */ + public const STATE_BODY = 3; + + /** + * Soaking up all input as body. + */ + public const STATE_BODY_DUMB = 4; + + /** + * Reading body as indicated by `Content-Length` or `Content-Range`. + */ + public const STATE_BODY_LENGTH = 5; + + /** + * Parsing `chunked` encoded body. + */ + public const STATE_BODY_CHUNKED = 6; + + /** + * Finished parsing the body. + */ + public const STATE_BODY_DONE = 7; + + /** + * Updating Content-Length based on body size. + */ + public const STATE_UPDATE_CL = 8; + + /** + * Finished parsing the message. + * + * ***NOTE:*** + * Most of this states won't be returned to the user, because the parser immediately jumps to the next expected state. + */ + public const STATE_DONE = 9; + + /** + * Retrieve the current state of the parser. + * See http\Message\Parser::STATE_* constants. + * + * @throws \http\Exception\InvalidArgumentException + * @return int http\Message\Parser::STATE_* constant. + */ + public function getState() {} + + /** + * Parse a string. + * + * @param string $data The (part of the) message to parse. + * @param int $flags Any combination of [parser flags](http/Message/Parser#Parser.flags:). + * @param \http\Message $message The current state of the message parsed. + * @throws \http\Exception\InvalidArgumentException + * @return int http\Message\Parser::STATE_* constant. + */ + public function parse(string $data, int $flags, http\Message $message) {} + + /** + * Parse a stream. + * + * @param resource $stream The message stream to parse from. + * @param int $flags Any combination of [parser flags](http/Message/Parser#Parser.flags:). + * @param \http\Message $message The current state of the message parsed. + * @throws \http\Exception\InvalidArgumentException + * @throws \http\Exception\UnexpectedValueException + * @return int http\Message\Parser::STATE_* constant. + */ + public function stream($stream, int $flags, http\Message $message) {} +} diff --git a/phpstorm-stubs/ibm_db2/ibm_db2.php b/phpstorm-stubs/ibm_db2/ibm_db2.php new file mode 100644 index 0000000..c451bf0 --- /dev/null +++ b/phpstorm-stubs/ibm_db2/ibm_db2.php @@ -0,0 +1,1879 @@ + + * For a cataloged connection to a database, this parameter + * represents the connection alias in the DB2 client catalog. + * + *+ * For an uncataloged connection to a database, + * this parameter represents a complete DSN in the following format: + * DRIVER=driver;DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; + *
+ * @param string|null $username+ * The username with which you are connecting to the database, or null if + * the $database parameter contains a DSN which already provides the username for + * the connection. + *
+ * @param string|null $password+ * The password with which you are connecting to the database, or null if + * the $database parameter contains a DSN which already provides the password for + * the connection. + *
+ * @param array $options+ * An associative array of connection options that affect the behavior + * of the connection, where valid array keys include: + * autocommit + *
+ * Passing the DB2_AUTOCOMMIT_ON value turns + * autocommit on for this connection handle. + *
+ *+ * Passing the DB2_AUTOCOMMIT_OFF value turns + * autocommit off for this connection handle. + *
+ * @return resource|false A connection handle resource if the connection attempt is + * successful. If the connection attempt fails, db2_connect + * returns false. + */ +function db2_connect(#[\SensitiveParameter] string $database, ?string $username, #[\SensitiveParameter] ?string $password, array $options = []) {} + +/** + * Commits a transaction + * @link https://php.net/manual/en/function.db2-commit.php + * @param resource $connection+ * A valid database connection resource variable as returned from + * db2_connect or db2_pconnect. + *
+ * @return bool true on success or false on failure. + */ +function db2_commit($connection): bool {} + +/** + * Returns a persistent connection to a database + * @link https://php.net/manual/en/function.db2-pconnect.php + * @param string $database+ * For a cataloged connection to a database, this parameter + * represents the connection alias in the DB2 client catalog. + *
+ *+ * For an uncataloged connection to a database, + * this parameter represents a complete DSN in the following format: + * DRIVER=driver;DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password; + *
+ * @param string|null $username+ * The username with which you are connecting to the database, or null if + * the $database parameter contains a DSN which already provides the username for + * the connection. + *
+ * @param string|null $password+ * The password with which you are connecting to the database, or null if + * the $database parameter contains a DSN which already provides the password for + * the connection. + *
+ * @param array $options+ * An associative array of connection options that affect the behavior + * of the connection, where valid array keys include: + * autocommit + *
+ *+ * Passing the DB2_AUTOCOMMIT_ON value turns + * autocommit on for this connection handle. + *
+ *+ * Passing the DB2_AUTOCOMMIT_OFF value turns + * autocommit off for this connection handle. + *
+ * @return resource|false A connection handle resource if the connection attempt is + * successful. db2_pconnect tries to reuse an existing + * connection resource that exactly matches the + * database, username, and + * password parameters. If the connection attempt fails, + * db2_pconnect returns false. + */ +function db2_pconnect(#[\SensitiveParameter] string $database, ?string $username, #[\SensitiveParameter] ?string $password, array $options = []) {} + +/** + * Closes a persistent database connection + * + * This function closes a persistent DB2 client connection. + * + * @link https://php.net/manual/en/function.db2-pclose.php + * + * @param resource $connection Specifies a persistent DB2 client connection. + * + * @return bool Returns true on success or false on failure. + */ +function db2_pclose($connection): bool {} + +/** + * Returns or sets the AUTOCOMMIT state for a database connection + * @link https://php.net/manual/en/function.db2-autocommit.php + * @param resource $connection+ * A valid database connection resource variable as returned from + * db2_connect or db2_pconnect. + *
+ * @param int $value+ * One of the following constants:
+ *+ * DB2_AUTOCOMMIT_OFF + * Turns AUTOCOMMIT off. + *
+ *+ * DB2_AUTOCOMMIT_ON + * Turns AUTOCOMMIT on. + *
+ * @return int|boolWhen db2_autocommit receives only the + * connection parameter, it returns the current state + * of AUTOCOMMIT for the requested connection as an integer value. A value of + * 0 indicates that AUTOCOMMIT is off, while a value of 1 indicates that + * AUTOCOMMIT is on. + *
+ *+ * When db2_autocommit receives both the + * connection parameter and + * autocommit parameter, it attempts to set the + * AUTOCOMMIT state of the requested connection to the corresponding state. + * true on success or false on failure.
+ */ +function db2_autocommit($connection, int $value = null): int|bool {} + +/** + * Binds a PHP variable to an SQL statement parameter + * @link https://php.net/manual/en/function.db2-bind-param.php + * @param resource $stmt+ * A prepared statement returned from db2_prepare. + *
+ * @param int $parameter_number + * @param string $variable_name + * @param int $parameter_type + * @param int $data_type + * @param int $precision+ * Specifies the precision with which the variable should be bound to the + * database. This parameter can also be used for retrieving XML output values + * from stored procedures. A non-negative value specifies the maximum size of + * the XML data that will be retrieved from the database. If this parameter + * is not used, a default of 1MB will be assumed for retrieving the XML + * output value from the stored procedure. + *
+ * @param int $scale+ * Specifies the scale with which the variable should be bound to the + * database. + *
+ * @return bool true on success or false on failure. + */ +function db2_bind_param($stmt, int $parameter_number, string $variable_name, int $parameter_type = DB2_PARAM_IN, int $data_type = 0, int $precision = -1, int $scale = 0): bool {} + +/** + * Closes a database connection + * @link https://php.net/manual/en/function.db2-close.php + * @param resource $connection+ * Specifies an active DB2 client connection. + *
+ * @return bool true on success or false on failure. + */ +function db2_close($connection): bool {} + +/** + * Returns a result set listing the columns and associated privileges for a table + * @link https://php.net/manual/en/function.db2-column-privileges.php + * @param resource $connection+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema which contains the tables. To match all schemas, pass null + * or an empty string. + *
+ * @param string|null $table_name + * @param string|null $column_name + * @return resource|false a statement resource with a result set containing rows describing + * the column privileges for columns matching the specified parameters. The + * rows are composed of the following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string $schema+ * The schema which contains the tables. To match all schemas, pass + * '%'. + *
+ * @param string $table_name + * @param string $column_name + * @return resource|false A statement resource with a result set containing rows describing + * the columns matching the specified parameters. The rows are composed of + * the following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema which contains the tables. If schema + * is null, db2_foreign_keys matches the schema for + * the current connection. + *
+ * @param string $table_name + * @return resource|false A statement resource with a result set containing rows describing + * the foreign keys for the specified table. The result set is composed of the + * following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema which contains the tables. If schema + * is null, db2_primary_keys matches the schema for + * the current connection. + *
+ * @param string $table_name + * @return resource|false A statement resource with a result set containing rows describing + * the primary keys for the specified table. The result set is composed of the + * following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string $schema+ * The schema which contains the procedures. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @param string $procedure+ * The name of the procedure. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @param string|null $parameter+ * The name of the parameter. This parameter accepts a search pattern + * containing _ and % as wildcards. + * If this parameter is null, all parameters for the specified stored + * procedures are returned. + *
+ * @return resource|false A statement resource with a result set containing rows describing + * the parameters for the stored procedures matching the specified parameters. + * The rows are composed of the following columns: + *+ * An integer value representing the type of the parameter: + *
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string $schema+ * The schema which contains the procedures. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @param string $procedure+ * The name of the procedure. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @return resource|false A statement resource with a result set containing rows describing + * the stored procedures matching the specified parameters. The rows are + * composed of the following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string $schema+ * The schema which contains the tables. + *
+ * @param string $table_name+ * The name of the table. + *
+ * @param int $scope+ * Integer value representing the minimum duration for which the + * unique row identifier is valid. This can be one of the following + * values: + *
+ *
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema that contains the targeted table. If this parameter is + * null, the statistics and indexes are returned for the schema of the + * current user. + *
+ * @param string $table_name+ * The name of the table. + *
+ * @param bool $unique+ * Whether to return the only the unique indexes or all the indexes in the table. + *
+ *+ * Return only the information for unique indexes on the table. + *
+ * @return resource|false A statement resource with a result set containing rows describing + * the statistics and indexes for the base tables matching the specified + * parameters. The rows are composed of the following columns: + *| Column name | + *Description | + *||||||||||
| TABLE_CAT | + *The catalog that contains the table. The value is null if + * this table does not have catalogs. | + *||||||||||
| TABLE_SCHEM | + *Name of the schema that contains the table. | + *||||||||||
| TABLE_NAME | + *Name of the table. | + *||||||||||
| NON_UNIQUE | + *
+ *
|
+ * ||||||||||
| INDEX_QUALIFIER | + *A string value representing the qualifier that would have to be + * prepended to INDEX_NAME to fully qualify the index. | + *||||||||||
| INDEX_NAME | + *A string representing the name of the index. | + *||||||||||
| TYPE | + *
+ * + * An integer value representing the type of information contained in + * this row of the result set: + *
|
+ * ||||||||||
| ORDINAL_POSITION | + *The 1-indexed position of the column in the index. null if + * the row contains statistics information about the table itself. | + *||||||||||
| COLUMN_NAME | + *The name of the column in the index. null if the row + * contains statistics information about the table itself. | + *||||||||||
| ASC_OR_DESC | + *+ * A if the column is sorted in ascending order, + * D if the column is sorted in descending order, + * null if the row contains statistics information about the table + * itself. + * | + *||||||||||
| CARDINALITY | + *
+ * + * If the row contains information about an index, this column contains + * an integer value representing the number of unique values in the + * index. + * + *+ * If the row contains information about the table itself, this column + * contains an integer value representing the number of rows in the + * table. + * + * |
+ * ||||||||||
| PAGES | + *
+ * + * If the row contains information about an index, this column contains + * an integer value representing the number of pages used to store the + * index. + * + *+ * If the row contains information about the table itself, this column + * contains an integer value representing the number of pages used to + * store the table. + * + * |
+ * ||||||||||
| FILTER_CONDITION | + *Always returns null. | + *
+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema which contains the tables. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @param string|null $table_name+ * The name of the table. This parameter accepts a search pattern + * containing _ and % as wildcards. + *
+ * @return resource|false A statement resource with a result set containing rows describing + * the privileges for the tables that match the specified parameters. The rows + * are composed of the following columns: + *+ * A valid connection to an IBM DB2, Cloudscape, or Apache Derby database. + *
+ * @param string|null $qualifier+ * A qualifier for DB2 databases running on OS/390 or z/OS servers. For + * other databases, pass null or an empty string. + *
+ * @param string|null $schema+ * The schema which contains the tables. This parameter accepts a + * search pattern containing _ and % + * as wildcards. + *
+ * @param string|null $table_name + * @param string|null $table_type + * @return resource|false A statement resource with a result set containing rows describing + * the tables that match the specified parameters. The rows are composed of + * the following columns: + *+ * A valid database connection resource variable as returned from + * db2_connect or db2_pconnect. + *
+ * @param string $statement+ * An SQL statement. The statement cannot contain any parameter markers. + *
+ * @param array $options+ * An associative array containing statement options. You can use this + * parameter to request a scrollable cursor on database servers that + * support this functionality. + * cursor + *
+ *+ * Passing the DB2_FORWARD_ONLY value requests a + * forward-only cursor for this SQL statement. This is the default + * type of cursor, and it is supported by all database servers. It is + * also much faster than a scrollable cursor. + *
+ *+ * Passing the DB2_SCROLLABLE value requests a + * scrollable cursor for this SQL statement. This type of cursor + * enables you to fetch rows non-sequentially from the database + * server. However, it is only supported by DB2 servers, and is much + * slower than forward-only cursors. + *
+ * @return resource|false A statement resource if the SQL statement was issued successfully, + * or false if the database failed to execute the SQL statement. + */ +function db2_exec($connection, string $statement, array $options = []) {} + +/** + * Prepares an SQL statement to be executed + * @link https://php.net/manual/en/function.db2-prepare.php + * @param resource $connection+ * A valid database connection resource variable as returned from + * db2_connect or db2_pconnect. + *
+ * @param string $statement+ * An SQL statement, optionally containing one or more parameter markers.. + *
+ * @param array $options+ * An associative array containing statement options. You can use this + * parameter to request a scrollable cursor on database servers that + * support this functionality. + * cursor + *
+ * + * Passing the DB2_FORWARD_ONLY value requests a + * forward-only cursor for this SQL statement. This is the default + * type of cursor, and it is supported by all database servers. It is + * also much faster than a scrollable cursor. + * + *+ * Passing the DB2_SCROLLABLE value requests a + * scrollable cursor for this SQL statement. This type of cursor + * enables you to fetch rows non-sequentially from the database + * server. However, it is only supported by DB2 servers, and is much + * slower than forward-only cursors. + *
+ * @return resource|false A statement resource if the SQL statement was successfully parsed and + * prepared by the database server. Returns false if the database server + * returned an error. You can determine which error was returned by calling + * db2_stmt_error or db2_stmt_errormsg. + */ +function db2_prepare($connection, string $statement, array $options = []) {} + +/** + * Executes a prepared SQL statement + * @link https://php.net/manual/en/function.db2-execute.php + * @param resource $stmt+ * A prepared statement returned from db2_prepare. + *
+ * @param array $parameters+ * An array of input parameters matching any parameter markers contained + * in the prepared statement. + *
+ * @return bool true on success or false on failure. + */ +function db2_execute($stmt, array $parameters = []): bool {} + +/** + * Returns a string containing the last SQL statement error message + * @link https://php.net/manual/en/function.db2-stmt-errormsg.php + * @param resource|null $stmt+ * A valid statement resource or NULL. + *
+ * @return string a string containing the error message and SQLCODE value for the + * last error that occurred issuing an SQL statement. + */ +function db2_stmt_errormsg($stmt = null) {} + +/** + * Returns the last connection error message and SQLCODE value + * @link https://php.net/manual/en/function.db2-conn-errormsg.php + * @param resource|null $connection+ * A connection resource associated with a connection that initially + * succeeded, but which over time became invalid. + *
+ * @return string a string containing the error message and SQLCODE value resulting + * from a failed connection attempt. If there is no error associated with the last + * connection attempt, db2_conn_errormsg returns an empty + * string. + */ +function db2_conn_errormsg($connection = null) {} + +/** + * Returns a string containing the SQLSTATE returned by the last connection attempt + * @link https://php.net/manual/en/function.db2-conn-error.php + * @param resource|null $connection+ * A connection resource associated with a connection that initially + * succeeded, but which over time became invalid. + *
+ * @return string the SQLSTATE value resulting from a failed connection attempt. + * Returns an empty string if there is no error associated with the last + * connection attempt. + */ +function db2_conn_error($connection = null) {} + +/** + * Returns a string containing the SQLSTATE returned by an SQL statement + * @link https://php.net/manual/en/function.db2-stmt-error.php + * @param resource|null $stmt+ * A valid statement resource or NULL. + *
+ * @return string a string containing an SQLSTATE value. + */ +function db2_stmt_error($stmt = null) {} + +/** + * Requests the next result set from a stored procedure + * @link https://php.net/manual/en/function.db2-next-result.php + * @param resource $stmt+ * A prepared statement returned from db2_exec or + * db2_execute. + *
+ * @return resource|false A new statement resource containing the next result set if the + * stored procedure returned another result set. Returns false if the stored + * procedure did not return another result set. + */ +function db2_next_result($stmt) {} + +/** + * Returns the number of fields contained in a result set + * @link https://php.net/manual/en/function.db2-num-fields.php + * @param resource $stmt+ * A valid statement resource containing a result set. + *
+ * @return int|false An integer value representing the number of fields in the result + * set associated with the specified statement resource. Returns false if + * the statement resource is not a valid input value. + */ +function db2_num_fields($stmt): int|false {} + +/** + * Returns the number of rows affected by an SQL statement + * @link https://php.net/manual/en/function.db2-num-rows.php + * @param resource $stmt+ * A valid stmt resource containing a result set. + *
+ * @return int|false the number of rows affected by the last SQL statement issued by + * the specified statement handle, or false in case of failure. + */ +function db2_num_rows($stmt): int|false {} + +/** + * Returns the name of the column in the result set + * @link https://php.net/manual/en/function.db2-field-name.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return string|false A string containing the name of the specified column. If the + * specified column does not exist in the result + * set, db2_field_name returns false. + */ +function db2_field_name($stmt, int|string $column): string|false {} + +/** + * Returns the maximum number of bytes required to display a column + * @link https://php.net/manual/en/function.db2-field-display-size.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return int|false An integer value with the maximum number of bytes required to + * display the specified column. If the column does not exist in the result + * set, db2_field_display_size returns false. + */ +function db2_field_display_size($stmt, int|string $column): int|false {} + +/** + * Returns the position of the named column in a result set + * @link https://php.net/manual/en/function.db2-field-num.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return int|false An integer containing the 0-indexed position of the named column in + * the result set. If the specified column does not exist in the result set, + * db2_field_num returns false. + */ +function db2_field_num($stmt, int|string $column): int|false {} + +/** + * Returns the precision of the indicated column in a result set + * @link https://php.net/manual/en/function.db2-field-precision.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return int|false An integer containing the precision of the specified column. If the + * specified column does not exist in the result set, + * db2_field_precision returns false. + */ +function db2_field_precision($stmt, int|string $column): int|false {} + +/** + * Returns the scale of the indicated column in a result set + * @link https://php.net/manual/en/function.db2-field-scale.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return int|false An integer containing the scale of the specified column. If the + * specified column does not exist in the result set, + * db2_field_scale returns false. + */ +function db2_field_scale($stmt, int|string $column): int|false {} + +/** + * Returns the data type of the indicated column in a result set + * @link https://php.net/manual/en/function.db2-field-type.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return string|false A string containing the defined data type of the specified column. + * If the specified column does not exist in the result set, + * db2_field_type returns false. + */ +function db2_field_type($stmt, int|string $column): string|false {} + +/** + * Returns the width of the current value of the indicated column in a result set + * @link https://php.net/manual/en/function.db2-field-width.php + * @param resource $stmt+ * Specifies a statement resource containing a result set. + *
+ * @param int|string $column+ * Specifies the column in the result set. This can either be an integer + * representing the 0-indexed position of the column, or a string + * containing the name of the column. + *
+ * @return int|false An integer containing the width of the specified character or + * binary data type column in a result set. If the specified column does not + * exist in the result set, db2_field_width returns + * false. + */ +function db2_field_width($stmt, int|string $column): int|false {} + +/** + * Returns the cursor type used by a statement resource + * @link https://php.net/manual/en/function.db2-cursor-type.php + * @param resource $stmt+ * A valid statement resource. + *
+ * @return int either DB2_FORWARD_ONLY if the statement + * resource uses a forward-only cursor or DB2_SCROLLABLE if + * the statement resource uses a scrollable cursor. + */ +function db2_cursor_type($stmt): int {} + +/** + * Rolls back a transaction + * @link https://php.net/manual/en/function.db2-rollback.php + * @param resource $connection+ * A valid database connection resource variable as returned from + * db2_connect or db2_pconnect. + *
+ * @return bool true on success or false on failure. + */ +function db2_rollback($connection): bool {} + +/** + * Frees resources associated with the indicated statement resource + * @link https://php.net/manual/en/function.db2-free-stmt.php + * @param resource $stmt+ * A valid statement resource. + *
+ * @return bool true on success or false on failure. + */ +function db2_free_stmt($stmt): bool {} + +/** + * Returns a single column from a row in the result set + * @link https://php.net/manual/en/function.db2-result.php + * @param resource $stmt+ * A valid stmt resource. + *
+ * @param int|string $column+ * Either an integer mapping to the 0-indexed field in the result set, or + * a string matching the name of the column. + *
+ * @return mixed the value of the requested field if the field exists in the result + * set. Returns NULL if the field does not exist, and issues a warning. + */ +function db2_result($stmt, int|string $column): mixed {} + +/** + * Sets the result set pointer to the next row or requested row + * @link https://php.net/manual/en/function.db2-fetch-row.php + * @param resource $stmt+ * A valid stmt resource. + *
+ * @param int $row_number+ * With scrollable cursors, you can request a specific row number in the + * result set. Row numbering is 1-indexed. + *
+ * @return bool true if the requested row exists in the result set. Returns + * false if the requested row does not exist in the result set. + */ +function db2_fetch_row($stmt, int $row_number = null) {} + +/** + * Returns an array, indexed by column name, representing a row in a result set + * @link https://php.net/manual/en/function.db2-fetch-assoc.php + * @param resource $stmt+ * A valid stmt resource containing a result set. + *
+ * @param int $row_number+ * Requests a specific 1-indexed row from the result set. Passing this + * parameter results in a PHP warning if the result set uses a + * forward-only cursor. + *
+ * @return array|false An associative array with column values indexed by the column name + * representing the next or requested row in the result set. Returns false if + * there are no rows left in the result set, or if the row requested by + * row_number does not exist in the result set. + */ +function db2_fetch_assoc($stmt, int $row_number = null): array|false {} + +/** + * Returns an array, indexed by column position, representing a row in a result set + * @link https://php.net/manual/en/function.db2-fetch-array.php + * @param resource $stmt+ * A valid stmt resource containing a result set. + *
+ * @param int $row_number+ * Requests a specific 1-indexed row from the result set. Passing this + * parameter results in a PHP warning if the result set uses a + * forward-only cursor. + *
+ * @return array|false A 0-indexed array with column values indexed by the column position + * representing the next or requested row in the result set. Returns false if + * there are no rows left in the result set, or if the row requested by + * row_number does not exist in the result set. + */ +function db2_fetch_array($stmt, int $row_number = null): array|false {} + +/** + * Returns an array, indexed by both column name and position, representing a row in a result set + * @link https://php.net/manual/en/function.db2-fetch-both.php + * @param resource $stmt+ * A valid stmt resource containing a result set. + *
+ * @param int $row_number+ * Requests a specific 1-indexed row from the result set. Passing this + * parameter results in a PHP warning if the result set uses a + * forward-only cursor. + *
+ * @return array|false An associative array with column values indexed by both the column + * name and 0-indexed column number. The array represents the next or + * requested row in the result set. Returns false if there are no rows left + * in the result set, or if the row requested by + * row_number does not exist in the result set. + */ +function db2_fetch_both($stmt, int $row_number = null): array|false {} + +/** + * Frees resources associated with a result set + * @link https://php.net/manual/en/function.db2-free-result.php + * @param resource $stmt+ * A valid statement resource. + *
+ * @return bool true on success or false on failure. + */ +function db2_free_result($stmt): bool {} + +/** + * Set options for connection or statement resources + * @link https://php.net/manual/en/function.db2-set-option.php + * @param resource $resource+ * A valid statement resource as returned from + * db2_prepare or a valid connection resource as + * returned from db2_connect or + * db2_pconnect. + *
+ * @param array $options+ * An associative array containing valid statement or connection + * options. This parameter can be used to change autocommit values, + * cursor types (scrollable or forward), and to specify the case of + * the column names (lower, upper, or natural) that will appear in a + * result set. + * autocommit + *
+ * Passing DB2_AUTOCOMMIT_ON turns + * autocommit on for the specified connection resource. + *
+ *+ * Passing DB2_AUTOCOMMIT_OFF turns + * autocommit off for the specified connection resource. + *
+ * @param int $type+ * An integer value that specifies the type of resource that was + * passed into the function. The type of resource and this value + * must correspond. + *
+ * Passing 1 as the value specifies that + * a connection resource has been passed into the function. + *
+ *+ * Passing any integer not equal to 1 as + * the value specifies that a statement resource has been + * passed into the function. + *
+ * @return bool true on success or false on failure. + */ +function db2_set_option($resource, array $options, int $type): bool {} + +function db2_setoption(): bool {} + +/** + * Returns an object with properties representing columns in the fetched row + * @link https://php.net/manual/en/function.db2-fetch-object.php + * @param resource $stmt+ * A valid stmt resource containing a result set. + *
+ * @param int $row_number+ * Requests a specific 1-indexed row from the result set. Passing this + * parameter results in a PHP warning if the result set uses a + * forward-only cursor. + *
+ * @return stdClass|false An object representing a single row in the result set. The + * properties of the object map to the names of the columns in the result set. + * + *+ * The IBM DB2, Cloudscape, and Apache Derby database servers typically fold + * column names to upper-case, so the object properties will reflect that case. + *
+ *+ * If your SELECT statement calls a scalar function to modify the value + * of a column, the database servers return the column number as the name of + * the column in the result set. If you prefer a more descriptive column name + * and object property, you can use the AS clause to assign a name to the + * column in the result set. + *
+ *+ * Returns false if no row was retrieved. + */ +function db2_fetch_object($stmt, int $row_number = null): stdClass|false {} + +/** + * Returns an object with properties that describe the DB2 database server + * @link https://php.net/manual/en/function.db2-server-info.php + * @param resource $connection
+ * Specifies an active DB2 client connection. + *
+ * @return stdClass|false An object on a successful call. Returns false on failure. + */ +function db2_server_info($connection): stdClass|false {} + +/** + * Returns an object with properties that describe the DB2 database client + * @link https://php.net/manual/en/function.db2-client-info.php + * @param resource $connection+ * Specifies an active DB2 client connection. + *
+ * @return stdClass|false An object on a successful call. Returns false on failure. + */ +function db2_client_info($connection): stdClass|false {} + +/** + * Used to escape certain characters + * @link https://php.net/manual/en/function.db2-escape-string.php + * @param string $string_literal+ * The string that contains special characters that need to be modified. + * Characters that are prepended with a backslash are \x00, + * \n, \r, \, + * ', " and \x1a. + *
+ * @return string string_literal with the special characters + * noted above prepended with backslashes. + */ +function db2_escape_string(string $string_literal): string {} + +/** + * Gets a user defined size of LOB files with each invocation + * @link https://php.net/manual/en/function.db2-lob-read.php + * @param resource $stmt+ * A valid stmt resource containing LOB data. + *
+ * @param int $colnum+ * A valid column number in the result set of the stmt resource. + *
+ * @param int $length+ * The size of the LOB data to be retrieved from the stmt resource. + *
+ * @return string|false The amount of data the user specifies. Returns + * false if the data cannot be retrieved. + */ +function db2_lob_read($stmt, int $colnum, int $length): string|false {} + +/** + * Retrieves an option value for a statement resource or a connection resource + * @link https://php.net/manual/en/function.db2-get-option.php + * @param resource $resource+ * A valid statement resource as returned from + * db2_prepare or a valid connection resource as + * returned from db2_connect or + * db2_pconnect. + *
+ * @param string $option+ * A valid statement or connection options. The following new options are available + * as of ibm_db2 version 1.6.0. They provide useful tracking information + * that can be set during execution with db2_get_option. + *
+ *+ * Note: Prior versions of ibm_db2 do not support these new options. + *
+ *+ * When the value in each option is being set, some servers might not handle + * the entire length provided and might truncate the value. + *
+ *+ * To ensure that the data specified in each option is converted correctly + * when transmitted to a host system, use only the characters A through Z, + * 0 through 9, and the underscore (_) or period (.). + *
+ *+ * SQL_ATTR_INFO_USERID - A pointer to a null-terminated + * character string used to identify the client user ID sent to the host + * database server when using DB2 Connect. + *
+ *+ * Note: DB2 for z/OS and OS/390 servers support up to a length of 16 characters. + * This user-id is not to be confused with the authentication user-id, it is for + * identification purposes only and is not used for any authorization. + *
+ * @return string|false The current setting of the connection attribute provided on success + * or false on failure. + */ +function db2_get_option($resource, string $option): string|false {} + +/** + * Returns the auto generated ID of the last insert query that successfully executed on this connection. + * @link https://php.net/manual/en/function.db2-last-insert-id.php + * The result of this function is not affected by any of the following: + *+ * The output charset. + *
+ *+ * If you append the string //TRANSLIT to + * out_charset transliteration is activated. This + * means that when a character can't be represented in the target charset, + * it can be approximated through one or several similarly looking + * characters. If you append the string //IGNORE, + * characters that cannot be represented in the target charset are silently + * discarded. Otherwise, str is cut from the first + * illegal character and an E_NOTICE is generated. + *
+ * @param string $string+ * The string to be converted. + *
+ * @return string|false the converted string or FALSE on failure. + */ +#[Pure] +function iconv(string $from_encoding, string $to_encoding, string $string): string|false {} + +/** + * Convert character encoding as output buffer handler + * @link https://php.net/manual/en/function.ob-iconv-handler.php + * @param string $contents + * @param int $status + * @return string See ob_start for information about this handler + * return values. + */ +#[Pure] +function ob_iconv_handler(string $contents, int $status): string {} + +/** + * Retrieve internal configuration variables of iconv extension + * @link https://php.net/manual/en/function.iconv-get-encoding.php + * @param string $type [optional]+ * The value of the optional type can be: + * all + * input_encoding + * output_encoding + * internal_encoding + *
+ * @return string|string[]|false the current value of the internal configuration variable if + * successful or FALSE on failure. + *+ * If type is omitted or set to "all", + * iconv_get_encoding returns an array that + * stores all these variables. + *
+ */ +#[Pure] +#[ArrayShape(["input_encoding" => "string", "output_encoding" => "string", "internal_encoding" => "string"])] +function iconv_get_encoding(string $type = "all"): array|string|false {} + +/** + * Set current setting for character encoding conversion + * @link https://php.net/manual/en/function.iconv-set-encoding.php + * @param string $type+ * The value of type can be any one of these: + * input_encoding + * output_encoding + * internal_encoding + *
+ * @param string $encoding+ * The character set. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function iconv_set_encoding(string $type, string $encoding): bool {} + +/** + * Returns the character count of string + * @link https://php.net/manual/en/function.iconv-strlen.php + * @param string $string+ * The string. + *
+ * @param string|null $encoding+ * If charset parameter is omitted, + * str is assumed to be encoded in + * iconv.internal_encoding. + *
+ * @return int|false the character count of str, as an integer. False on error. + */ +#[Pure] +function iconv_strlen(string $string, ?string $encoding = null): int|false {} + +/** + * Cut out part of a string + * @link https://php.net/manual/en/function.iconv-substr.php + * @param string $string+ * The original string. + *
+ * @param int $offset+ * If offset is non-negative, + * iconv_substr cuts the portion out of + * str beginning at offset'th + * character, counting from zero. + *
+ *+ * If offset is negative, + * iconv_substr cuts out the portion beginning + * at the position, offset characters + * away from the end of str. + *
+ * @param int|null $length [optional]+ * If length is given and is positive, the return + * value will contain at most length characters + * of the portion that begins at offset + * (depending on the length of string). + *
+ *+ * If negative length is passed, + * iconv_substr cuts the portion out of + * str from the offset'th + * character up to the character that is + * length characters away from the end of the string. + * In case offset is also negative, the start position + * is calculated beforehand according to the rule explained above. + *
+ * @param string|null $encoding+ * If charset parameter is omitted, + * string are assumed to be encoded in + * iconv.internal_encoding. + *
+ *+ * Note that offset and length + * parameters are always deemed to represent offsets that are + * calculated on the basis of the character set determined by + * charset, whilst the counterpart + * substr always takes these for byte offsets. + *
+ * @return string|false the portion of str specified by the + * offset and length parameters. + *+ * If str is shorter than offset + * characters long, FALSE will be returned. + *
+ */ +#[Pure] +function iconv_substr(string $string, int $offset, ?int $length, ?string $encoding = null): string|false {} + +/** + * Finds position of first occurrence of a needle within a haystack + * @link https://php.net/manual/en/function.iconv-strpos.php + * @param string $haystack+ * The entire string. + *
+ * @param string $needle+ * The searched substring. + *
+ * @param int $offset [optional]+ * The optional offset parameter specifies + * the position from which the search should be performed. + *
+ * @param string|null $encoding+ * If charset parameter is omitted, + * string are assumed to be encoded in + * iconv.internal_encoding. + *
+ * @return int<0,max>|false the numeric position of the first occurrence of + * needle in haystack. + *+ * If needle is not found, + * iconv_strpos will return FALSE. + *
+ */ +#[Pure] +function iconv_strpos(string $haystack, string $needle, int $offset = 0, ?string $encoding = null): int|false {} + +/** + * Finds the last occurrence of a needle within a haystack + * @link https://php.net/manual/en/function.iconv-strrpos.php + * @param string $haystack+ * The entire string. + *
+ * @param string $needle+ * The searched substring. + *
+ * @param string|null $encoding+ * If charset parameter is omitted, + * string are assumed to be encoded in + * iconv.internal_encoding. + *
+ * @return int|false the numeric position of the last occurrence of + * needle in haystack. + *+ * If needle is not found, + * iconv_strrpos will return FALSE. + *
+ */ +#[Pure] +function iconv_strrpos(string $haystack, string $needle, ?string $encoding = null): int|false {} + +/** + * Composes a MIME header field + * @link https://php.net/manual/en/function.iconv-mime-encode.php + * @param string $field_name+ * The field name. + *
+ * @param string $field_value+ * The field value. + *
+ * @param array $options+ * You can control the behaviour of iconv_mime_encode + * by specifying an associative array that contains configuration items + * to the optional third parameter preferences. + * The items supported by iconv_mime_encode are + * listed below. Note that item names are treated case-sensitive. + *
| Item | + *Type | + *Description | + *Default value | + *Example | + *
| scheme | + *string | + *+ * Specifies the method to encode a field value by. The value of + * this item may be either "B" or "Q", where "B" stands for + * base64 encoding scheme and "Q" stands for + * quoted-printable encoding scheme. + * | + *B | + *B | + *
| input-charset | + *string | + *+ * Specifies the character set in which the first parameter + * field_name and the second parameter + * field_value are presented. If not given, + * iconv_mime_encode assumes those parameters + * are presented to it in the + * iconv.internal_encoding + * ini setting. + * | + *+ * iconv.internal_encoding + * | + *ISO-8859-1 | + *
| output-charset | + *string | + *+ * Specifies the character set to use to compose the + * MIME header. + * | + *+ * iconv.internal_encoding + * | + *UTF-8 | + *
| line-length | + *integer | + *+ * Specifies the maximum length of the header lines. The resulting + * header is "folded" to a set of multiple lines in case + * the resulting header field would be longer than the value of this + * parameter, according to + * RFC2822 - Internet Message Format. + * If not given, the length will be limited to 76 characters. + * | + *76 | + *996 | + *
| line-break-chars | + *string | + *+ * Specifies the sequence of characters to append to each line + * as an end-of-line sign when "folding" is performed on a long header + * field. If not given, this defaults to "\r\n" + * (CR LF). Note that + * this parameter is always treated as an ASCII string regardless + * of the value of input-charset. + * | + *\r\n | + *\n | + *
+ * The encoded header, as a string. + *
+ * @param int $mode [optional]+ * mode determines the behaviour in the event + * iconv_mime_decode encounters a malformed + * MIME header field. You can specify any combination + * of the following bitmasks. + *
| Value | + *Constant | + *Description | + *
| 1 | + *ICONV_MIME_DECODE_STRICT | + *+ * If set, the given header is decoded in full conformance with the + * standards defined in RFC2047. + * This option is disabled by default because there are a lot of + * broken mail user agents that don't follow the specification and don't + * produce correct MIME headers. + * | + *
| 2 | + *ICONV_MIME_DECODE_CONTINUE_ON_ERROR | + *+ * If set, iconv_mime_decode_headers + * attempts to ignore any grammatical errors and continue to process + * a given header. + * | + *
+ * The optional charset parameter specifies the + * character set to represent the result by. If omitted, + * iconv.internal_encoding + * will be used. + *
+ * @return string|false a decoded MIME field on success, + * or FALSE if an error occurs during the decoding. + */ +#[Pure] +function iconv_mime_decode(string $string, int $mode = 0, ?string $encoding = null): string|false {} + +/** + * Decodes multiple MIME header fields at once + * @link https://php.net/manual/en/function.iconv-mime-decode-headers.php + * @param string $headers+ * The encoded headers, as a string. + *
+ * @param int $mode [optional]
+ * mode determines the behaviour in the event
+ * iconv_mime_decode_headers encounters a malformed
+ * MIME header field. You can specify any combination
+ * of the following bitmasks.
+ *
+ * Bitmasks acceptable to iconv_mime_decode_headers
| Value | + *Constant | + *Description | + *
| 1 | + *ICONV_MIME_DECODE_STRICT | + *+ * If set, the given header is decoded in full conformance with the + * standards defined in RFC2047. + * This option is disabled by default because there are a lot of + * broken mail user agents that don't follow the specification and don't + * produce correct MIME headers. + * | + *
| 2 | + *ICONV_MIME_DECODE_CONTINUE_ON_ERROR | + *+ * If set, iconv_mime_decode_headers + * attempts to ignore any grammatical errors and continue to process + * a given header. + * | + *
+ * The optional charset parameter specifies the + * character set to represent the result by. If omitted, + * iconv.internal_encoding + * will be used. + *
+ * @return array|false an associative array that holds a whole set of + * MIME header fields specified by + * encoded_headers on success, or FALSE + * if an error occurs during the decoding. + *+ * Each key of the return value represents an individual + * field name and the corresponding element represents a field value. + * If more than one field of the same name are present, + * iconv_mime_decode_headers automatically incorporates + * them into a numerically indexed array in the order of occurrence. + *
+ */ +#[Pure] +function iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $encoding = null): array|false {} + +/** + * string + * @link https://php.net/manual/en/iconv.constants.php + */ +define('ICONV_IMPL', "libiconv"); + +/** + * string + * @link https://php.net/manual/en/iconv.constants.php + */ +define('ICONV_VERSION', 2.17); + +/** + * integer + * @link https://php.net/manual/en/iconv.constants.php + */ +define('ICONV_MIME_DECODE_STRICT', 1); + +/** + * integer + * @link https://php.net/manual/en/iconv.constants.php + */ +define('ICONV_MIME_DECODE_CONTINUE_ON_ERROR', 2); + +// End of iconv v. diff --git a/phpstorm-stubs/igbinary/igbinary.php b/phpstorm-stubs/igbinary/igbinary.php new file mode 100644 index 0000000..c0c39c4 --- /dev/null +++ b/phpstorm-stubs/igbinary/igbinary.php @@ -0,0 +1,40 @@ +NULL on error. + * @link https://secure.php.net/serialize PHP default serialize + */ +function igbinary_serialize($value) {} + +/** Creates a PHP value from a stored representation. + * igbinary_unserialize() takes a single serialized variable and converts it back into a PHP value. + * + * If the variable being unserialized is an object, after successfully reconstructing the object + * PHP will automatically attempt to call the __wakeup() member function (if it exists). + * In case the passed string is not unserializeable, NULL is returned and E_WARNING is issued. + * + * @param string $str The serialized string. + * @return mixed|false The converted value is returned, and can be a boolean, integer, float, string, array, object or false by empty string input. + * @link https://secure.php.net/manual/en/function.unserialize.php PHP default unserialize + * @link https://secure.php.net/~helly/php/ext/spl/interfaceSerializable.html Serializable + */ +function igbinary_unserialize($str) {} + +// End of igbinary v.1.0.0 diff --git a/phpstorm-stubs/imagick/imagick.php b/phpstorm-stubs/imagick/imagick.php new file mode 100644 index 0000000..af8db68 --- /dev/null +++ b/phpstorm-stubs/imagick/imagick.php @@ -0,0 +1,7331 @@ +Makes an exact copy of the Imagick object + * @link https://php.net/manual/en/class.imagick.php + */ +class Imagick implements Iterator, Countable +{ + public const COLOR_BLACK = 11; + public const COLOR_BLUE = 12; + public const COLOR_CYAN = 13; + public const COLOR_GREEN = 14; + public const COLOR_RED = 15; + public const COLOR_YELLOW = 16; + public const COLOR_MAGENTA = 17; + public const COLOR_OPACITY = 18; + public const COLOR_ALPHA = 19; + public const COLOR_FUZZ = 20; + public const IMAGICK_EXTNUM = 30403; + public const IMAGICK_EXTVER = "3.4.3"; + public const QUANTUM_RANGE = 65535; + public const USE_ZEND_MM = 0; + public const COMPOSITE_DEFAULT = 40; + public const COMPOSITE_UNDEFINED = 0; + public const COMPOSITE_NO = 1; + public const COMPOSITE_ADD = 2; + public const COMPOSITE_ATOP = 3; + public const COMPOSITE_BLEND = 4; + public const COMPOSITE_BUMPMAP = 5; + public const COMPOSITE_CLEAR = 7; + public const COMPOSITE_COLORBURN = 8; + public const COMPOSITE_COLORDODGE = 9; + public const COMPOSITE_COLORIZE = 10; + public const COMPOSITE_COPYBLACK = 11; + public const COMPOSITE_COPYBLUE = 12; + public const COMPOSITE_COPY = 13; + public const COMPOSITE_COPYCYAN = 14; + public const COMPOSITE_COPYGREEN = 15; + public const COMPOSITE_COPYMAGENTA = 16; + public const COMPOSITE_COPYOPACITY = 17; + public const COMPOSITE_COPYRED = 18; + public const COMPOSITE_COPYYELLOW = 19; + public const COMPOSITE_DARKEN = 20; + public const COMPOSITE_DSTATOP = 21; + public const COMPOSITE_DST = 22; + public const COMPOSITE_DSTIN = 23; + public const COMPOSITE_DSTOUT = 24; + public const COMPOSITE_DSTOVER = 25; + public const COMPOSITE_DIFFERENCE = 26; + public const COMPOSITE_DISPLACE = 27; + public const COMPOSITE_DISSOLVE = 28; + public const COMPOSITE_EXCLUSION = 29; + public const COMPOSITE_HARDLIGHT = 30; + public const COMPOSITE_HUE = 31; + public const COMPOSITE_IN = 32; + public const COMPOSITE_LIGHTEN = 33; + public const COMPOSITE_LUMINIZE = 35; + public const COMPOSITE_MINUS = 36; + public const COMPOSITE_MODULATE = 37; + public const COMPOSITE_MULTIPLY = 38; + public const COMPOSITE_OUT = 39; + public const COMPOSITE_OVER = 40; + public const COMPOSITE_OVERLAY = 41; + public const COMPOSITE_PLUS = 42; + public const COMPOSITE_REPLACE = 43; + public const COMPOSITE_SATURATE = 44; + public const COMPOSITE_SCREEN = 45; + public const COMPOSITE_SOFTLIGHT = 46; + public const COMPOSITE_SRCATOP = 47; + public const COMPOSITE_SRC = 48; + public const COMPOSITE_SRCIN = 49; + public const COMPOSITE_SRCOUT = 50; + public const COMPOSITE_SRCOVER = 51; + public const COMPOSITE_SUBTRACT = 52; + public const COMPOSITE_THRESHOLD = 53; + public const COMPOSITE_XOR = 54; + public const COMPOSITE_CHANGEMASK = 6; + public const COMPOSITE_LINEARLIGHT = 34; + public const COMPOSITE_DIVIDE = 55; + public const COMPOSITE_DISTORT = 56; + public const COMPOSITE_BLUR = 57; + public const COMPOSITE_PEGTOPLIGHT = 58; + public const COMPOSITE_VIVIDLIGHT = 59; + public const COMPOSITE_PINLIGHT = 60; + public const COMPOSITE_LINEARDODGE = 61; + public const COMPOSITE_LINEARBURN = 62; + public const COMPOSITE_MATHEMATICS = 63; + public const COMPOSITE_MODULUSADD = 2; + public const COMPOSITE_MODULUSSUBTRACT = 52; + public const COMPOSITE_MINUSDST = 36; + public const COMPOSITE_DIVIDEDST = 55; + public const COMPOSITE_DIVIDESRC = 64; + public const COMPOSITE_MINUSSRC = 65; + public const COMPOSITE_DARKENINTENSITY = 66; + public const COMPOSITE_LIGHTENINTENSITY = 67; + public const MONTAGEMODE_FRAME = 1; + public const MONTAGEMODE_UNFRAME = 2; + public const MONTAGEMODE_CONCATENATE = 3; + public const STYLE_NORMAL = 1; + public const STYLE_ITALIC = 2; + public const STYLE_OBLIQUE = 3; + public const STYLE_ANY = 4; + public const FILTER_UNDEFINED = 0; + public const FILTER_POINT = 1; + public const FILTER_BOX = 2; + public const FILTER_TRIANGLE = 3; + public const FILTER_HERMITE = 4; + public const FILTER_HANNING = 5; + public const FILTER_HAMMING = 6; + public const FILTER_BLACKMAN = 7; + public const FILTER_GAUSSIAN = 8; + public const FILTER_QUADRATIC = 9; + public const FILTER_CUBIC = 10; + public const FILTER_CATROM = 11; + public const FILTER_MITCHELL = 12; + public const FILTER_LANCZOS = 22; + public const FILTER_BESSEL = 13; + public const FILTER_SINC = 14; + public const FILTER_KAISER = 16; + public const FILTER_WELSH = 17; + public const FILTER_PARZEN = 18; + public const FILTER_LAGRANGE = 21; + public const FILTER_SENTINEL = 31; + public const FILTER_BOHMAN = 19; + public const FILTER_BARTLETT = 20; + public const FILTER_JINC = 13; + public const FILTER_SINCFAST = 15; + public const FILTER_ROBIDOUX = 26; + public const FILTER_LANCZOSSHARP = 23; + public const FILTER_LANCZOS2 = 24; + public const FILTER_LANCZOS2SHARP = 25; + public const FILTER_ROBIDOUXSHARP = 27; + public const FILTER_COSINE = 28; + public const FILTER_SPLINE = 29; + public const FILTER_LANCZOSRADIUS = 30; + public const IMGTYPE_UNDEFINED = 0; + public const IMGTYPE_BILEVEL = 1; + public const IMGTYPE_GRAYSCALE = 2; + public const IMGTYPE_GRAYSCALEMATTE = 3; + public const IMGTYPE_PALETTE = 4; + public const IMGTYPE_PALETTEMATTE = 5; + public const IMGTYPE_TRUECOLOR = 6; + public const IMGTYPE_TRUECOLORMATTE = 7; + public const IMGTYPE_COLORSEPARATION = 8; + public const IMGTYPE_COLORSEPARATIONMATTE = 9; + public const IMGTYPE_OPTIMIZE = 10; + public const IMGTYPE_PALETTEBILEVELMATTE = 11; + public const RESOLUTION_UNDEFINED = 0; + public const RESOLUTION_PIXELSPERINCH = 1; + public const RESOLUTION_PIXELSPERCENTIMETER = 2; + public const COMPRESSION_UNDEFINED = 0; + public const COMPRESSION_NO = 1; + public const COMPRESSION_BZIP = 2; + public const COMPRESSION_FAX = 6; + public const COMPRESSION_GROUP4 = 7; + public const COMPRESSION_JPEG = 8; + public const COMPRESSION_JPEG2000 = 9; + public const COMPRESSION_LOSSLESSJPEG = 10; + public const COMPRESSION_LZW = 11; + public const COMPRESSION_RLE = 12; + public const COMPRESSION_ZIP = 13; + public const COMPRESSION_DXT1 = 3; + public const COMPRESSION_DXT3 = 4; + public const COMPRESSION_DXT5 = 5; + public const COMPRESSION_ZIPS = 14; + public const COMPRESSION_PIZ = 15; + public const COMPRESSION_PXR24 = 16; + public const COMPRESSION_B44 = 17; + public const COMPRESSION_B44A = 18; + public const COMPRESSION_LZMA = 19; + public const COMPRESSION_JBIG1 = 20; + public const COMPRESSION_JBIG2 = 21; + public const PAINT_POINT = 1; + public const PAINT_REPLACE = 2; + public const PAINT_FLOODFILL = 3; + public const PAINT_FILLTOBORDER = 4; + public const PAINT_RESET = 5; + public const GRAVITY_NORTHWEST = 1; + public const GRAVITY_NORTH = 2; + public const GRAVITY_NORTHEAST = 3; + public const GRAVITY_WEST = 4; + public const GRAVITY_CENTER = 5; + public const GRAVITY_EAST = 6; + public const GRAVITY_SOUTHWEST = 7; + public const GRAVITY_SOUTH = 8; + public const GRAVITY_SOUTHEAST = 9; + public const GRAVITY_FORGET = 0; + public const GRAVITY_STATIC = 10; + public const STRETCH_NORMAL = 1; + public const STRETCH_ULTRACONDENSED = 2; + public const STRETCH_EXTRACONDENSED = 3; + public const STRETCH_CONDENSED = 4; + public const STRETCH_SEMICONDENSED = 5; + public const STRETCH_SEMIEXPANDED = 6; + public const STRETCH_EXPANDED = 7; + public const STRETCH_EXTRAEXPANDED = 8; + public const STRETCH_ULTRAEXPANDED = 9; + public const STRETCH_ANY = 10; + public const ALIGN_UNDEFINED = 0; + public const ALIGN_LEFT = 1; + public const ALIGN_CENTER = 2; + public const ALIGN_RIGHT = 3; + public const DECORATION_NO = 1; + public const DECORATION_UNDERLINE = 2; + public const DECORATION_OVERLINE = 3; + public const DECORATION_LINETROUGH = 4; + public const DECORATION_LINETHROUGH = 4; + public const NOISE_UNIFORM = 1; + public const NOISE_GAUSSIAN = 2; + public const NOISE_MULTIPLICATIVEGAUSSIAN = 3; + public const NOISE_IMPULSE = 4; + public const NOISE_LAPLACIAN = 5; + public const NOISE_POISSON = 6; + public const NOISE_RANDOM = 7; + public const CHANNEL_UNDEFINED = 0; + public const CHANNEL_RED = 1; + public const CHANNEL_GRAY = 1; + public const CHANNEL_CYAN = 1; + public const CHANNEL_GREEN = 2; + public const CHANNEL_MAGENTA = 2; + public const CHANNEL_BLUE = 4; + public const CHANNEL_YELLOW = 4; + public const CHANNEL_ALPHA = 8; + public const CHANNEL_OPACITY = 8; + public const CHANNEL_MATTE = 8; + public const CHANNEL_BLACK = 32; + public const CHANNEL_INDEX = 32; + public const CHANNEL_ALL = 134217727; + public const CHANNEL_DEFAULT = 134217719; + public const CHANNEL_RGBA = 15; + public const CHANNEL_TRUEALPHA = 64; + public const CHANNEL_RGBS = 128; + public const CHANNEL_GRAY_CHANNELS = 128; + public const CHANNEL_SYNC = 256; + public const CHANNEL_COMPOSITES = 47; + public const METRIC_UNDEFINED = 0; + public const METRIC_ABSOLUTEERRORMETRIC = 1; + public const METRIC_MEANABSOLUTEERROR = 2; + public const METRIC_MEANERRORPERPIXELMETRIC = 3; + public const METRIC_MEANSQUAREERROR = 4; + public const METRIC_PEAKABSOLUTEERROR = 5; + public const METRIC_PEAKSIGNALTONOISERATIO = 6; + public const METRIC_ROOTMEANSQUAREDERROR = 7; + public const METRIC_NORMALIZEDCROSSCORRELATIONERRORMETRIC = 8; + public const METRIC_FUZZERROR = 9; + public const PIXEL_CHAR = 1; + public const PIXEL_DOUBLE = 2; + public const PIXEL_FLOAT = 3; + public const PIXEL_INTEGER = 4; + public const PIXEL_LONG = 5; + public const PIXEL_QUANTUM = 6; + public const PIXEL_SHORT = 7; + public const EVALUATE_UNDEFINED = 0; + public const EVALUATE_ADD = 1; + public const EVALUATE_AND = 2; + public const EVALUATE_DIVIDE = 3; + public const EVALUATE_LEFTSHIFT = 4; + public const EVALUATE_MAX = 5; + public const EVALUATE_MIN = 6; + public const EVALUATE_MULTIPLY = 7; + public const EVALUATE_OR = 8; + public const EVALUATE_RIGHTSHIFT = 9; + public const EVALUATE_SET = 10; + public const EVALUATE_SUBTRACT = 11; + public const EVALUATE_XOR = 12; + public const EVALUATE_POW = 13; + public const EVALUATE_LOG = 14; + public const EVALUATE_THRESHOLD = 15; + public const EVALUATE_THRESHOLDBLACK = 16; + public const EVALUATE_THRESHOLDWHITE = 17; + public const EVALUATE_GAUSSIANNOISE = 18; + public const EVALUATE_IMPULSENOISE = 19; + public const EVALUATE_LAPLACIANNOISE = 20; + public const EVALUATE_MULTIPLICATIVENOISE = 21; + public const EVALUATE_POISSONNOISE = 22; + public const EVALUATE_UNIFORMNOISE = 23; + public const EVALUATE_COSINE = 24; + public const EVALUATE_SINE = 25; + public const EVALUATE_ADDMODULUS = 26; + public const EVALUATE_MEAN = 27; + public const EVALUATE_ABS = 28; + public const EVALUATE_EXPONENTIAL = 29; + public const EVALUATE_MEDIAN = 30; + public const EVALUATE_SUM = 31; + public const COLORSPACE_UNDEFINED = 0; + public const COLORSPACE_RGB = 1; + public const COLORSPACE_GRAY = 2; + public const COLORSPACE_TRANSPARENT = 3; + public const COLORSPACE_OHTA = 4; + public const COLORSPACE_LAB = 5; + public const COLORSPACE_XYZ = 6; + public const COLORSPACE_YCBCR = 7; + public const COLORSPACE_YCC = 8; + public const COLORSPACE_YIQ = 9; + public const COLORSPACE_YPBPR = 10; + public const COLORSPACE_YUV = 11; + public const COLORSPACE_CMYK = 12; + public const COLORSPACE_SRGB = 13; + public const COLORSPACE_HSB = 14; + public const COLORSPACE_HSL = 15; + public const COLORSPACE_HWB = 16; + public const COLORSPACE_REC601LUMA = 17; + public const COLORSPACE_REC709LUMA = 19; + public const COLORSPACE_LOG = 21; + public const COLORSPACE_CMY = 22; + public const COLORSPACE_LUV = 23; + public const COLORSPACE_HCL = 24; + public const COLORSPACE_LCH = 25; + public const COLORSPACE_LMS = 26; + public const COLORSPACE_LCHAB = 27; + public const COLORSPACE_LCHUV = 28; + public const COLORSPACE_SCRGB = 29; + public const COLORSPACE_HSI = 30; + public const COLORSPACE_HSV = 31; + public const COLORSPACE_HCLP = 32; + public const COLORSPACE_YDBDR = 33; + public const COLORSPACE_REC601YCBCR = 18; + public const COLORSPACE_REC709YCBCR = 20; + public const VIRTUALPIXELMETHOD_UNDEFINED = 0; + public const VIRTUALPIXELMETHOD_BACKGROUND = 1; + public const VIRTUALPIXELMETHOD_CONSTANT = 2; + public const VIRTUALPIXELMETHOD_EDGE = 4; + public const VIRTUALPIXELMETHOD_MIRROR = 5; + public const VIRTUALPIXELMETHOD_TILE = 7; + public const VIRTUALPIXELMETHOD_TRANSPARENT = 8; + public const VIRTUALPIXELMETHOD_MASK = 9; + public const VIRTUALPIXELMETHOD_BLACK = 10; + public const VIRTUALPIXELMETHOD_GRAY = 11; + public const VIRTUALPIXELMETHOD_WHITE = 12; + public const VIRTUALPIXELMETHOD_HORIZONTALTILE = 13; + public const VIRTUALPIXELMETHOD_VERTICALTILE = 14; + public const VIRTUALPIXELMETHOD_HORIZONTALTILEEDGE = 15; + public const VIRTUALPIXELMETHOD_VERTICALTILEEDGE = 16; + public const VIRTUALPIXELMETHOD_CHECKERTILE = 17; + public const PREVIEW_UNDEFINED = 0; + public const PREVIEW_ROTATE = 1; + public const PREVIEW_SHEAR = 2; + public const PREVIEW_ROLL = 3; + public const PREVIEW_HUE = 4; + public const PREVIEW_SATURATION = 5; + public const PREVIEW_BRIGHTNESS = 6; + public const PREVIEW_GAMMA = 7; + public const PREVIEW_SPIFF = 8; + public const PREVIEW_DULL = 9; + public const PREVIEW_GRAYSCALE = 10; + public const PREVIEW_QUANTIZE = 11; + public const PREVIEW_DESPECKLE = 12; + public const PREVIEW_REDUCENOISE = 13; + public const PREVIEW_ADDNOISE = 14; + public const PREVIEW_SHARPEN = 15; + public const PREVIEW_BLUR = 16; + public const PREVIEW_THRESHOLD = 17; + public const PREVIEW_EDGEDETECT = 18; + public const PREVIEW_SPREAD = 19; + public const PREVIEW_SOLARIZE = 20; + public const PREVIEW_SHADE = 21; + public const PREVIEW_RAISE = 22; + public const PREVIEW_SEGMENT = 23; + public const PREVIEW_SWIRL = 24; + public const PREVIEW_IMPLODE = 25; + public const PREVIEW_WAVE = 26; + public const PREVIEW_OILPAINT = 27; + public const PREVIEW_CHARCOALDRAWING = 28; + public const PREVIEW_JPEG = 29; + public const RENDERINGINTENT_UNDEFINED = 0; + public const RENDERINGINTENT_SATURATION = 1; + public const RENDERINGINTENT_PERCEPTUAL = 2; + public const RENDERINGINTENT_ABSOLUTE = 3; + public const RENDERINGINTENT_RELATIVE = 4; + public const INTERLACE_UNDEFINED = 0; + public const INTERLACE_NO = 1; + public const INTERLACE_LINE = 2; + public const INTERLACE_PLANE = 3; + public const INTERLACE_PARTITION = 4; + public const INTERLACE_GIF = 5; + public const INTERLACE_JPEG = 6; + public const INTERLACE_PNG = 7; + public const FILLRULE_UNDEFINED = 0; + public const FILLRULE_EVENODD = 1; + public const FILLRULE_NONZERO = 2; + public const PATHUNITS_UNDEFINED = 0; + public const PATHUNITS_USERSPACE = 1; + public const PATHUNITS_USERSPACEONUSE = 2; + public const PATHUNITS_OBJECTBOUNDINGBOX = 3; + public const LINECAP_UNDEFINED = 0; + public const LINECAP_BUTT = 1; + public const LINECAP_ROUND = 2; + public const LINECAP_SQUARE = 3; + public const LINEJOIN_UNDEFINED = 0; + public const LINEJOIN_MITER = 1; + public const LINEJOIN_ROUND = 2; + public const LINEJOIN_BEVEL = 3; + public const RESOURCETYPE_UNDEFINED = 0; + public const RESOURCETYPE_AREA = 1; + public const RESOURCETYPE_DISK = 2; + public const RESOURCETYPE_FILE = 3; + public const RESOURCETYPE_MAP = 4; + public const RESOURCETYPE_MEMORY = 5; + public const RESOURCETYPE_TIME = 7; + public const RESOURCETYPE_THROTTLE = 8; + public const RESOURCETYPE_THREAD = 6; + public const DISPOSE_UNRECOGNIZED = 0; + public const DISPOSE_UNDEFINED = 0; + public const DISPOSE_NONE = 1; + public const DISPOSE_BACKGROUND = 2; + public const DISPOSE_PREVIOUS = 3; + public const INTERPOLATE_UNDEFINED = 0; + public const INTERPOLATE_AVERAGE = 1; + public const INTERPOLATE_BICUBIC = 2; + public const INTERPOLATE_BILINEAR = 3; + public const INTERPOLATE_FILTER = 4; + public const INTERPOLATE_INTEGER = 5; + public const INTERPOLATE_MESH = 6; + public const INTERPOLATE_NEARESTNEIGHBOR = 7; + public const INTERPOLATE_SPLINE = 8; + public const LAYERMETHOD_UNDEFINED = 0; + public const LAYERMETHOD_COALESCE = 1; + public const LAYERMETHOD_COMPAREANY = 2; + public const LAYERMETHOD_COMPARECLEAR = 3; + public const LAYERMETHOD_COMPAREOVERLAY = 4; + public const LAYERMETHOD_DISPOSE = 5; + public const LAYERMETHOD_OPTIMIZE = 6; + public const LAYERMETHOD_OPTIMIZEPLUS = 8; + public const LAYERMETHOD_OPTIMIZETRANS = 9; + public const LAYERMETHOD_COMPOSITE = 12; + public const LAYERMETHOD_OPTIMIZEIMAGE = 7; + public const LAYERMETHOD_REMOVEDUPS = 10; + public const LAYERMETHOD_REMOVEZERO = 11; + public const LAYERMETHOD_TRIMBOUNDS = 16; + public const ORIENTATION_UNDEFINED = 0; + public const ORIENTATION_TOPLEFT = 1; + public const ORIENTATION_TOPRIGHT = 2; + public const ORIENTATION_BOTTOMRIGHT = 3; + public const ORIENTATION_BOTTOMLEFT = 4; + public const ORIENTATION_LEFTTOP = 5; + public const ORIENTATION_RIGHTTOP = 6; + public const ORIENTATION_RIGHTBOTTOM = 7; + public const ORIENTATION_LEFTBOTTOM = 8; + public const DISTORTION_UNDEFINED = 0; + public const DISTORTION_AFFINE = 1; + public const DISTORTION_AFFINEPROJECTION = 2; + public const DISTORTION_ARC = 9; + public const DISTORTION_BILINEAR = 6; + public const DISTORTION_PERSPECTIVE = 4; + public const DISTORTION_PERSPECTIVEPROJECTION = 5; + public const DISTORTION_SCALEROTATETRANSLATE = 3; + public const DISTORTION_POLYNOMIAL = 8; + public const DISTORTION_POLAR = 10; + public const DISTORTION_DEPOLAR = 11; + public const DISTORTION_BARREL = 14; + public const DISTORTION_SHEPARDS = 16; + public const DISTORTION_SENTINEL = 18; + public const DISTORTION_BARRELINVERSE = 15; + public const DISTORTION_BILINEARFORWARD = 6; + public const DISTORTION_BILINEARREVERSE = 7; + public const DISTORTION_RESIZE = 17; + public const DISTORTION_CYLINDER2PLANE = 12; + public const DISTORTION_PLANE2CYLINDER = 13; + public const LAYERMETHOD_MERGE = 13; + public const LAYERMETHOD_FLATTEN = 14; + public const LAYERMETHOD_MOSAIC = 15; + public const ALPHACHANNEL_ACTIVATE = 1; + public const ALPHACHANNEL_RESET = 7; + public const ALPHACHANNEL_SET = 8; + public const ALPHACHANNEL_UNDEFINED = 0; + public const ALPHACHANNEL_COPY = 3; + public const ALPHACHANNEL_DEACTIVATE = 4; + public const ALPHACHANNEL_EXTRACT = 5; + public const ALPHACHANNEL_OPAQUE = 6; + public const ALPHACHANNEL_SHAPE = 9; + public const ALPHACHANNEL_TRANSPARENT = 10; + public const SPARSECOLORMETHOD_UNDEFINED = 0; + public const SPARSECOLORMETHOD_BARYCENTRIC = 1; + public const SPARSECOLORMETHOD_BILINEAR = 7; + public const SPARSECOLORMETHOD_POLYNOMIAL = 8; + public const SPARSECOLORMETHOD_SPEPARDS = 16; + public const SPARSECOLORMETHOD_VORONOI = 18; + public const SPARSECOLORMETHOD_INVERSE = 19; + public const DITHERMETHOD_UNDEFINED = 0; + public const DITHERMETHOD_NO = 1; + public const DITHERMETHOD_RIEMERSMA = 2; + public const DITHERMETHOD_FLOYDSTEINBERG = 3; + public const FUNCTION_UNDEFINED = 0; + public const FUNCTION_POLYNOMIAL = 1; + public const FUNCTION_SINUSOID = 2; + public const ALPHACHANNEL_BACKGROUND = 2; + public const FUNCTION_ARCSIN = 3; + public const FUNCTION_ARCTAN = 4; + public const ALPHACHANNEL_FLATTEN = 11; + public const ALPHACHANNEL_REMOVE = 12; + public const STATISTIC_GRADIENT = 1; + public const STATISTIC_MAXIMUM = 2; + public const STATISTIC_MEAN = 3; + public const STATISTIC_MEDIAN = 4; + public const STATISTIC_MINIMUM = 5; + public const STATISTIC_MODE = 6; + public const STATISTIC_NONPEAK = 7; + public const STATISTIC_STANDARD_DEVIATION = 8; + public const MORPHOLOGY_CONVOLVE = 1; + public const MORPHOLOGY_CORRELATE = 2; + public const MORPHOLOGY_ERODE = 3; + public const MORPHOLOGY_DILATE = 4; + public const MORPHOLOGY_ERODE_INTENSITY = 5; + public const MORPHOLOGY_DILATE_INTENSITY = 6; + public const MORPHOLOGY_DISTANCE = 7; + public const MORPHOLOGY_OPEN = 8; + public const MORPHOLOGY_CLOSE = 9; + public const MORPHOLOGY_OPEN_INTENSITY = 10; + public const MORPHOLOGY_CLOSE_INTENSITY = 11; + public const MORPHOLOGY_SMOOTH = 12; + public const MORPHOLOGY_EDGE_IN = 13; + public const MORPHOLOGY_EDGE_OUT = 14; + public const MORPHOLOGY_EDGE = 15; + public const MORPHOLOGY_TOP_HAT = 16; + public const MORPHOLOGY_BOTTOM_HAT = 17; + public const MORPHOLOGY_HIT_AND_MISS = 18; + public const MORPHOLOGY_THINNING = 19; + public const MORPHOLOGY_THICKEN = 20; + public const MORPHOLOGY_VORONOI = 21; + public const MORPHOLOGY_ITERATIVE = 22; + public const KERNEL_UNITY = 1; + public const KERNEL_GAUSSIAN = 2; + public const KERNEL_DIFFERENCE_OF_GAUSSIANS = 3; + public const KERNEL_LAPLACIAN_OF_GAUSSIANS = 4; + public const KERNEL_BLUR = 5; + public const KERNEL_COMET = 6; + public const KERNEL_LAPLACIAN = 7; + public const KERNEL_SOBEL = 8; + public const KERNEL_FREI_CHEN = 9; + public const KERNEL_ROBERTS = 10; + public const KERNEL_PREWITT = 11; + public const KERNEL_COMPASS = 12; + public const KERNEL_KIRSCH = 13; + public const KERNEL_DIAMOND = 14; + public const KERNEL_SQUARE = 15; + public const KERNEL_RECTANGLE = 16; + public const KERNEL_OCTAGON = 17; + public const KERNEL_DISK = 18; + public const KERNEL_PLUS = 19; + public const KERNEL_CROSS = 20; + public const KERNEL_RING = 21; + public const KERNEL_PEAKS = 22; + public const KERNEL_EDGES = 23; + public const KERNEL_CORNERS = 24; + public const KERNEL_DIAGONALS = 25; + public const KERNEL_LINE_ENDS = 26; + public const KERNEL_LINE_JUNCTIONS = 27; + public const KERNEL_RIDGES = 28; + public const KERNEL_CONVEX_HULL = 29; + public const KERNEL_THIN_SE = 30; + public const KERNEL_SKELETON = 31; + public const KERNEL_CHEBYSHEV = 32; + public const KERNEL_MANHATTAN = 33; + public const KERNEL_OCTAGONAL = 34; + public const KERNEL_EUCLIDEAN = 35; + public const KERNEL_USER_DEFINED = 36; + public const KERNEL_BINOMIAL = 37; + public const DIRECTION_LEFT_TO_RIGHT = 2; + public const DIRECTION_RIGHT_TO_LEFT = 1; + public const NORMALIZE_KERNEL_NONE = 0; + public const NORMALIZE_KERNEL_VALUE = 8192; + public const NORMALIZE_KERNEL_CORRELATE = 65536; + public const NORMALIZE_KERNEL_PERCENT = 4096; + + /** + * (PECL imagick 2.0.0)+ * One of the layer method constants. + *
+ * @return Imagick TRUE on success. + * @throws ImagickException on error. + */ + public function compareImageLayers($method) {} + + /** + * (PECL imagick 2.0.0)+ * A string containing the image. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function pingImageBlob($image) {} + + /** + * (PECL imagick 2.0.0)+ * An open filehandle to the image. + *
+ * @param string $fileName [optional]+ * Optional filename for this image. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function pingImageFile($filehandle, $fileName = null) {} + + /** + * (PECL imagick 2.0.0)+ * By default target must match a particular pixel color exactly. + * However, in many cases two colors may differ by a small amount. + * The fuzz member of image defines how much tolerance is acceptable + * to consider two colors as the same. This parameter represents the variation + * on the quantum range. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function trimImage($fuzz) {} + + /** + * (PECL imagick 2.0.0)+ * The amplitude of the wave. + *
+ * @param float $length+ * The length of the wave. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function waveImage($amplitude, $length) {} + + /** + * (PECL imagick 2.0.0)+ * The black point. + *
+ * @param float $whitePoint+ * The white point + *
+ * @param int $x+ * X offset of the ellipse + *
+ * @param int $y+ * Y offset of the ellipse + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function vignetteImage($blackPoint, $whitePoint, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * True activates the matte channel and false disables it. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageMatte($matte) {} + + /** + * Adaptively resize image with data dependent triangulation + * + * If legacy is true, the calculations are done with the small rounding bug that existed in Imagick before 3.4.0.+ * The radius of the Gaussian, in pixels, not counting the center pixel + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels. + *
+ * @param float $angle+ * Apply the effect along this angle. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function sketchImage($radius, $sigma, $angle) {} + + /** + * (PECL imagick 2.0.0)+ * A value other than zero shades the intensity of each pixel. + *
+ * @param float $azimuth+ * Defines the light source direction. + *
+ * @param float $elevation+ * Defines the light source direction. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function shadeImage($gray, $azimuth, $elevation) {} + + /** + * (PECL imagick 2.0.0)+ * The width in pixels. + *
+ * @param int $rows+ * The height in pixels. + *
+ * @param int $offset+ * The image offset. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setSizeOffset($columns, $rows, $offset) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the Gaussian, in pixels, not counting the center pixel. + * Provide a value of 0 and the radius will be chosen automagically. + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function adaptiveBlurImage($radius, $sigma, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)+ * The black point. + *
+ * @param float $white_point+ * The white point. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Imagick::CHANNEL_ALL. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function contrastStretchImage($black_point, $white_point, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the Gaussian, in pixels, not counting the center pixel. Use 0 for auto-select. + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function adaptiveSharpenImage($radius, $sigma, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)+ * The low point + *
+ * @param float $high+ * The high point + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function randomThresholdImage($low, $high, $channel = Imagick::CHANNEL_ALL) {} + + /** + * @param $xRounding + * @param $yRounding + * @param $strokeWidth [optional] + * @param $displace [optional] + * @param $sizeCorrection [optional] + * @throws ImagickException on error. + */ + public function roundCornersImage($xRounding, $yRounding, $strokeWidth, $displace, $sizeCorrection) {} + + /** + * (PECL imagick 2.0.0)+ * x rounding + *
+ * @param float $y_rounding+ * y rounding + *
+ * @param float $stroke_width [optional]+ * stroke width + *
+ * @param float $displace [optional]+ * image displace + *
+ * @param float $size_correction [optional]+ * size correction + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated(replacement: "%class%->roundCornersImage(%parametersList%)")] + public function roundCorners($x_rounding, $y_rounding, $stroke_width = 10.0, $displace = 5.0, $size_correction = -6.0) {} + + /** + * (PECL imagick 2.0.0)+ * The position to set the iterator to + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setIteratorIndex($index) {} + + /** + * (PECL imagick 2.0.0)+ * A crop geometry string. This geometry defines a subregion of the image to crop. + *
+ * @param string $geometry+ * An image geometry string. This geometry defines the final size of the image. + *
+ * @return Imagick TRUE on success. + * @throws ImagickException on error. + */ + public function transformImage($crop, $geometry) {} + + /** + * (PECL imagick 2.0.0)+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageOpacity($opacity) {} + + /** + * (PECL imagick 2.2.2)+ * A string containing the name of the threshold dither map to use + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function orderedPosterizeImage($threshold_map, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The polaroid properties + *
+ * @param float $angle+ * The polaroid angle + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function polaroidImage(ImagickDraw $properties, $angle) {} + + /** + * (PECL imagick 2.0.0)+ * name of the property (for example Exif:DateTime) + *
+ * @return string|false a string containing the image property, false if a + * property with the given name does not exist. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageProperty($name) {} + + /** + * (PECL imagick 2.0.0)+ * The method is one of the Imagick::INTERPOLATE_* constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageInterpolateMethod($method) {} + + /** + * (PECL imagick 2.0.0)+ * The image black point + *
+ * @param float $whitePoint+ * The image white point + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function linearStretchImage($blackPoint, $whitePoint) {} + + /** + * (PECL imagick 2.0.0)+ * The new width + *
+ * @param int $height+ * The new height + *
+ * @param int $x+ * X position for the new size + *
+ * @param int $y+ * Y position for the new size + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function extentImage($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * One of the orientation constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageOrientation($orientation) {} + + /** + * (PECL imagick 2.1.0)+ * ImagickPixel object or a string containing the fill color + *
+ * @param float $fuzz+ * The amount of fuzz. For example, set fuzz to 10 and the color red at + * intensities of 100 and 102 respectively are now interpreted as the + * same color for the purposes of the floodfill. + *
+ * @param mixed $bordercolor+ * ImagickPixel object or a string containing the border color + *
+ * @param int $x+ * X start position of the floodfill + *
+ * @param int $y+ * Y start position of the floodfill + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function paintFloodfillImage($fill, $fuzz, $bordercolor, $x, $y, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * Imagick object containing the color lookup table + *
+ * @param int $channel [optional]+ * The Channeltype + * constant. When not supplied, default channels are replaced. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + * @since 2.0.0 + */ + public function clutImage(Imagick $lookup_table, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)+ * The pattern for property names. + *
+ * @param bool $only_names [optional]+ * Whether to return only property names. If FALSE then also the values are returned + *
+ * @return array an array containing the image properties or property names. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageProperties($pattern = "*", $only_names = true) {} + + /** + * (PECL imagick 2.2.0)+ * The pattern for profile names. + *
+ * @param bool $include_values [optional]+ * Whether to return only profile names. If FALSE then only profile names will be returned. + *
+ * @return array an array containing the image profiles or profile names. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageProfiles($pattern = "*", $include_values = true) {} + + /** + * (PECL imagick 2.0.1)+ * The method of image distortion. See distortion constants + *
+ * @param array $arguments+ * The arguments for this distortion method + *
+ * @param bool $bestfit+ * Attempt to resize destination to fit distorted source + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function distortImage($method, array $arguments, $bestfit) {} + + /** + * (No version information available, might only be in SVN)+ * Filehandle where to write the image + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function writeImageFile($filehandle) {} + + /** + * (No version information available, might only be in SVN)+ * Filehandle where to write the images + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function writeImagesFile($filehandle) {} + + /** + * (No version information available, might only be in SVN)+ * The page definition. For example 7168x5147+0+0 + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function resetImagePage($page) {} + + /** + * (No version information available, might only be in SVN)+ * The Imagick object containing the clip mask + *
+ * @return bool TRUE on success. + */ + public function setImageClipMask(Imagick $clip_mask) {} + + /** + * (No version information available, might only be in SVN)+ * X server address + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function animateImages($x_server) {} + + /** + * (No version information available, might only be in SVN)+ * The matrix containing the color values + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function recolorImage(array $matrix) {} + + /** + * (PECL imagick 2.1.0)+ * Font name or a filename + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setFont($font) {} + + /** + * (PECL imagick 2.1.0)+ * Point size + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setPointSize($point_size) {} + + /** + * (No version information available, might only be in SVN)+ * One of the Imagick::LAYERMETHOD_* constants + *
+ * @return Imagick Returns an Imagick object containing the merged image. + * @throws ImagickException + */ + public function mergeImageLayers($layer_method) {} + + /** + * (No version information available, might only be in SVN)+ * One of the Imagick::ALPHACHANNEL_* constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageAlphaChannel($mode) {} + + /** + * (No version information available, might only be in SVN)+ * ImagickPixel object or a string containing the fill color + *
+ * @param float $fuzz+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *
+ * @param mixed $target+ * ImagickPixel object or a string containing the target color to paint + *
+ * @param int $x+ * X start position of the floodfill + *
+ * @param int $y+ * Y start position of the floodfill + *
+ * @param bool $invert+ * If TRUE paints any pixel that does not match the target color. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function floodFillPaintImage($fill, $fuzz, $target, $x, $y, $invert, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)+ * ImagickPixel object or a string containing the color to change + *
+ * @param mixed $fill+ * The replacement color + *
+ * @param float $fuzz+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *
+ * @param bool $invert+ * If TRUE paints any pixel that does not match the target color. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function opaquePaintImage($target, $fill, $fuzz, $invert, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)+ * The target color to paint + *
+ * @param float $alpha+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully transparent. + *
+ * @param float $fuzz+ * The amount of fuzz. For example, set fuzz to 10 and the color red at intensities of 100 and 102 respectively are now interpreted as the same color. + *
+ * @param bool $invert+ * If TRUE paints any pixel that does not match the target color. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function transparentPaintImage($target, $alpha, $fuzz, $invert) {} + + /** + * (No version information available, might only be in SVN)+ * The width of the target size + *
+ * @param int $height+ * The height of the target size + *
+ * @param float $delta_x+ * How much the seam can traverse on x-axis. + * Passing 0 causes the seams to be straight. + *
+ * @param float $rigidity+ * Introduces a bias for non-straight seams. This parameter is + * typically 0. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function liquidRescaleImage($width, $height, $delta_x, $rigidity) {} + + /** + * (No version information available, might only be in SVN)+ * The passphrase + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function encipherImage($passphrase) {} + + /** + * (No version information available, might only be in SVN)+ * The passphrase + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function decipherImage($passphrase) {} + + /** + * (No version information available, might only be in SVN)+ * The gravity property. Refer to the list of + * gravity constants. + *
+ * @return bool No value is returned. + * @throws ImagickException on error. + */ + public function setGravity($gravity) {} + + /** + * (No version information available, might only be in SVN)+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return float[] an array containing minima and maxima values of the channel(s). + * @throws ImagickException on error. + */ + #[ArrayShape(["minima" => "float", "maxima" => "float"])] + #[Pure] + public function getImageChannelRange($channel) {} + + /** + * (No version information available, might only be in SVN)+ * Imagick object containing the reference image + *
+ * @param int $metric+ * Refer to this list of metric type constants. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return float a float describing the channel distortion. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageChannelDistortions(Imagick $reference, $metric, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)+ * The gravity property. Refer to the list of + * gravity constants. + *
+ * @return bool No value is returned. + * @throws ImagickException on error. + */ + public function setImageGravity($gravity) {} + + /** + * (No version information available, might only be in SVN)+ * The image x position + *
+ * @param int $y+ * The image y position + *
+ * @param int $width+ * The image width + *
+ * @param int $height+ * The image height + *
+ * @param string $map+ * Map of pixel ordering as a string. This can be for example RGB. + * The value can be any combination or order of R = red, G = green, B = blue, A = alpha (0 is transparent), + * O = opacity (0 is opaque), C = cyan, Y = yellow, M = magenta, K = black, I = intensity (for grayscale), P = pad. + *
+ * @param int $storage+ * The pixel storage method. + * Refer to this list of pixel constants. + *
+ * @param array $pixels+ * The array of pixels + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function importImagePixels($x, $y, $width, $height, $map, $storage, array $pixels) {} + + /** + * (No version information available, might only be in SVN)+ * Deskew threshold + *
+ * @return bool + * @throws ImagickException on error. + */ + public function deskewImage($threshold) {} + + /** + * (No version information available, might only be in SVN)+ * One of the COLORSPACE constants. + *
+ * @param float $cluster_threshold+ * A percentage describing minimum number of pixels + * contained in hexedra before it is considered valid. + *
+ * @param float $smooth_threshold+ * Eliminates noise from the histogram. + *
+ * @param bool $verbose [optional]+ * Whether to output detailed information about recognised classes. + *
+ * @return bool + * @throws ImagickException on error. + */ + public function segmentImage($COLORSPACE, $cluster_threshold, $smooth_threshold, $verbose = false) {} + + /** + * (No version information available, might only be in SVN)+ * Refer to this list of sparse method constants + *
+ * @param array $arguments+ * An array containing the coordinates. + * The array is in format array(1,1, 2,45) + *
+ * @param int $channel [optional] + * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function sparseColorImage($SPARSE_METHOD, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)+ * An Imagick object containing the replacement colors + *
+ * @param int $DITHER+ * Refer to this list of dither method constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function remapImage(Imagick $replacement, $DITHER) {} + + /** + * (No version information available, might only be in SVN)+ * X-coordinate of the exported area + *
+ * @param int $y+ * Y-coordinate of the exported area + *
+ * @param int $width+ * Width of the exported aread + *
+ * @param int $height+ * Height of the exported area + *
+ * @param string $map+ * Ordering of the exported pixels. For example "RGB". + * Valid characters for the map are R, G, B, A, O, C, Y, M, K, I and P. + *
+ * @param int $STORAGE+ * Refer to this list of pixel type constants + *
+ * @return int[] an array containing the pixels values. + * @throws ImagickException on error. + */ + public function exportImagePixels($x, $y, $width, $height, $map, $STORAGE) {} + + /** + * (No version information available, might only be in SVN)+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return float[] an array with kurtosis and skewness + * members. + * @throws ImagickException on error. + */ + #[ArrayShape(["kurtosis" => "float", "skewness" => "float"])] + #[Pure] + public function getImageChannelKurtosis($channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (No version information available, might only be in SVN)+ * Refer to this list of function constants + *
+ * @param array $arguments+ * Array of arguments to pass to this function. + *
+ * @param int $channel [optional] + * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function functionImage($function, array $arguments, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * Transform image colorspace + * @param $COLORSPACE + * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function transformImageColorspace($COLORSPACE) {} + + /** + * (No version information available, might only be in SVN)+ * Imagick object containing the Hald lookup image. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function haldClutImage(Imagick $clut, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * Adjusts the levels of a particular image channel by scaling the minimum and maximum values to the full quantum range. + * @param $CHANNEL [optional] + * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function autoLevelImage($CHANNEL) {} + + /** + * @link https://www.php.net/manual/en/imagick.blueshiftimage.php + * @param float $factor [optional] + * @return bool + * @throws ImagickException on error. + */ + public function blueShiftImage($factor) {} + + /** + * (No version information available, might only be in SVN)+ * The name of the artifact + *
+ * @return string the artifact value on success. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageArtifact($artifact) {} + + /** + * (No version information available, might only be in SVN)+ * The name of the artifact + *
+ * @param string $value+ * The value of the artifact + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageArtifact($artifact, $value) {} + + /** + * (No version information available, might only be in SVN)+ * The name of the artifact to delete + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function deleteImageArtifact($artifact) {} + + /** + * (PECL imagick 0.9.10-0.9.9)+ * One of the COLORSPACE constants + *
+ * @return bool TRUE on success. + */ + public function setColorspace($COLORSPACE) {} + + /** + * @param $CHANNEL [optional] + * @throws ImagickException on error. + */ + public function clampImage($CHANNEL) {} + + /** + * @param bool $stack + * @param int $offset + * @return Imagick + * @throws ImagickException on error. + */ + public function smushImages($stack, $offset) {} + + /** + * (PECL imagick 2.0.0)+ * The path to an image to load or an array of paths. Paths can include + * wildcards for file names, or can be URLs. + *
+ * @throws ImagickException Throws ImagickException on error. + */ + public function __construct($files = null) {} + + /** + * @return string + */ + public function __toString() {} + + public function count() {} + + /** + * (PECL imagick 2.0.0)+ * The x-coordinate of the region. + *
+ * @param int $y+ * The y-coordinate of the region. + *
+ * @param int $columns+ * The width of the region. + *
+ * @param int $rows+ * The height of the region. + *
+ * @return ImagickPixelIterator an ImagickPixelIterator for an image section. + * @throws ImagickException on error. + * @throws ImagickPixelIteratorException on error. + */ + #[Pure] + public function getPixelRegionIterator($x, $y, $columns, $rows) {} + + /** + * (PECL imagick 0.9.0-0.9.9)+ * String presentation of the image format. Format support + * depends on the ImageMagick installation. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageFormat($format) {} + + /** + * Scales the size of an image to the given dimensions. Passing zero as either of the arguments will preserve dimension while scaling.+ * Filename where to write the image. The extension of the filename + * defines the type of the file. + * Format can be forced regardless of file extension using format: prefix, + * for example "jpg:test.png". + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function writeImage($filename = null) {} + + /** + * (PECL imagick 0.9.0-0.9.9)+ * Blur radius + *
+ * @param float $sigma+ * Standard deviation + *
+ * @param int $channel [optional]+ * The Channeltype + * constant. When not supplied, all channels are blurred. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function blurImage($radius, $sigma, $channel = null) {} + + /** + * Changes the size of an image to the given dimensions and removes any associated profiles.+ * Image width + *
+ * @param int $rows+ * Image height + *
+ * @param bool $bestfit [optional]+ * Whether to force maximum values + *
+ * The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given. + * @param bool $fill [optional] + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success. + * @throws ImagickException on error. + * @since 2.0.0 + */ + public function thumbnailImage($columns, $rows, $bestfit = false, $fill = false, $legacy = false) {} + + /** + * Creates a cropped thumbnail at the requested size. + * If legacy is true, uses the incorrect behaviour that was present until Imagick 3.4.0. + * If false it uses the correct behaviour. + * @link https://php.net/manual/en/imagick.cropthumbnailimage.php + * @param int $width The width of the thumbnail + * @param int $height The Height of the thumbnail + * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on succes + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function cropThumbnailImage($width, $height, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)+ * The position to set the iterator to + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function setImageIndex($index) {} + + /** + * (PECL imagick 2.0.0)+ * The comment to add + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function commentImage($comment) {} + + /** + * (PECL imagick 2.0.0)+ * The width of the crop + *
+ * @param int $height+ * The height of the crop + *
+ * @param int $x+ * The X coordinate of the cropped region's top left corner + *
+ * @param int $y+ * The Y coordinate of the cropped region's top left corner + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function cropImage($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The label to add + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function labelImage($label) {} + + /** + * (PECL imagick 2.0.0)+ * The drawing operations to render on the image. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function drawImage(ImagickDraw $draw) {} + + /** + * (No version information available, might only be in SVN)+ * The image compression quality as an integer + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageCompressionQuality($quality) {} + + /** + * (PECL imagick 2.2.2)+ * The ImagickDraw object that contains settings for drawing the text + *
+ * @param float $x+ * Horizontal offset in pixels to the left of text + *
+ * @param float $y+ * Vertical offset in pixels to the baseline of text + *
+ * @param float $angle+ * The angle at which to write the text + *
+ * @param string $text+ * The string to draw + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function annotateImage(ImagickDraw $draw_settings, $x, $y, $angle, $text) {} + + /** + * (PECL imagick 2.0.0)+ * Imagick object which holds the composite image + *
+ * @param int $composite Composite operator + * @param int $x+ * The column offset of the composited image + *
+ * @param int $y+ * The row offset of the composited image + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function compositeImage(Imagick $composite_object, $composite, $x, $y, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The font name, size, and color are obtained from this object. + *
+ * @param string $tile_geometry+ * The number of tiles per row and page (e.g. 6x4+0+0). + *
+ * @param string $thumbnail_geometry+ * Preferred image size and border size of each thumbnail + * (e.g. 120x120+4+3>). + *
+ * @param int $mode+ * Thumbnail framing mode, see Montage Mode constants. + *
+ * @param string $frame+ * Surround the image with an ornamental border (e.g. 15x15+3+3). The + * frame color is that of the thumbnail's matte color. + *
+ * @return Imagick TRUE on success. + * @throws ImagickException on error. + */ + public function montageImage(ImagickDraw $draw, $tile_geometry, $thumbnail_geometry, $mode, $frame) {} + + /** + * (PECL imagick 2.0.0)+ * Width of the local neighborhood. + *
+ * @param int $height+ * Height of the local neighborhood. + *
+ * @param int $offset+ * The mean offset + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function adaptiveThresholdImage($width, $height, $offset) {} + + /** + * (PECL imagick 2.0.0)+ * The threshold below which everything turns black + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function blackThresholdImage($threshold) {} + + /** + * (PECL imagick 2.0.0)+ * Whether to stack the images vertically. + * By default (or if FALSE is specified) images are stacked left-to-right. + * If stack is TRUE, images are stacked top-to-bottom. + *
+ * @return Imagick Imagick instance on success. + * @throws ImagickException on error. + */ + public function appendImages($stack = false) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the Gaussian, in pixels, not counting the center pixel + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function charcoalImage($radius, $sigma) {} + + /** + * (PECL imagick 2.0.0)+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function normalizeImage($channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the circular neighborhood. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function oilPaintImage($radius) {} + + /** + * (PECL imagick 2.0.0)+ * The X offset. + *
+ * @param int $y+ * The Y offset. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function rollImage($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The background color + *
+ * @param float $degrees+ * The number of degrees to rotate the image + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function rotateImage($background, $degrees) {} + + /** + * (PECL imagick 2.0.0)+ * One of the COMPRESSION constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageCompression($compression) {} + + /** + * (PECL imagick 2.0.0)+ * The amount of time expressed in 'ticks' that the image should be + * displayed for. For animated GIFs there are 100 ticks per second, so a + * value of 20 would be 20/100 of a second aka 1/5th of a second. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageDelay($delay) {} + + /** + * (PECL imagick 2.0.0)+ * The number of iterations the image should loop over. Set to '0' to loop + * continuously. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageIterations($iterations) {} + + /** + * (PECL imagick 2.0.0)+ * The duration for which an image should be displayed expressed in ticks + * per second. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageTicksPerSecond($ticks_per_second) {} + + /** + * (PECL imagick 2.0.0)+ * The background color + *
+ * @param float $x_shear+ * The number of degrees to shear on the x axis + *
+ * @param float $y_shear+ * The number of degrees to shear on the y axis + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function shearImage($background, $x_shear, $y_shear) {} + + /** + * (PECL imagick 2.0.0)+ * The filename to read the information from. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function pingImage($filename) {} + + /** + * (PECL imagick 2.0.0)+ * The X server name + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function displayImage($servername) {} + + /** + * (PECL imagick 2.0.0)+ * The X server name + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function displayImages($servername) {} + + /** + * (PECL imagick 2.0.0)+ * The query pattern + *
+ * @return array an array containing the configured fonts. + */ + public static function queryFonts($pattern = "*") {} + + /** + * (PECL imagick 2.0.0)+ * ImagickDraw object containing font properties + *
+ * @param string $text+ * The text + *
+ * @param bool $multiline [optional]+ * Multiline parameter. If left empty it is autodetected + *
+ * @return array a multi-dimensional array representing the font metrics. + * @throws ImagickException on error. + */ + public function queryFontMetrics(ImagickDraw $properties, $text, $multiline = null) {} + + /** + * (PECL imagick 2.0.0)+ * The type of the noise. Refer to this list of + * noise constants. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function addNoiseImage($noise_type, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the Gaussian, in pixels, not counting the center pixel. + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels. + *
+ * @param float $angle+ * Apply the effect along this angle. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + * The channel argument affects only if Imagick is compiled against ImageMagick version + * 6.4.4 or greater. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function motionBlurImage($radius, $sigma, $angle, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * (PECL imagick 2.0.0)+ * The number of in-between images to generate. + *
+ * @return Imagick This method returns a new Imagick object on success. + * Throw an ImagickException on error. + * @throws ImagickException on error + * @throws ImagickException on error. + */ + public function morphImages($number_frames) {} + + /** + * (PECL imagick 2.0.0)+ * The affine matrix + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function affineTransformImage(ImagickDraw $matrix) {} + + /** + * (PECL imagick 2.0.0)+ * ImagickPixel object or a string containing the border color + *
+ * @param int $width+ * Border width + *
+ * @param int $height+ * Border height + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function borderImage($bordercolor, $width, $height) {} + + /** + * (PECL imagick 2.0.0)+ * Width of the chopped area + *
+ * @param int $height+ * Height of the chopped area + *
+ * @param int $x+ * X origo of the chopped area + *
+ * @param int $y+ * Y origo of the chopped area + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function chopImage($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The name of the path + *
+ * @param bool $inside+ * If TRUE later operations take effect inside clipping path. + * Otherwise later operations take effect outside clipping path. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function clipPathImage($pathname, $inside) {} + + /** + * Alias to {@see Imagick::clipPathImage} + * @param string $pathname + * @param string $inside + * @throws ImagickException on error. + */ + public function clipImagePath($pathname, $inside) {} + + /** + * (PECL imagick 2.0.0)+ * ImagickPixel object containing the fill color + *
+ * @param float $fuzz+ * The amount of fuzz. For example, set fuzz to 10 and the color red at + * intensities of 100 and 102 respectively are now interpreted as the + * same color for the purposes of the floodfill. + *
+ * @param mixed $bordercolor+ * ImagickPixel object containing the border color + *
+ * @param int $x+ * X start position of the floodfill + *
+ * @param int $y+ * Y start position of the floodfill + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function colorFloodfillImage($fill, $fuzz, $bordercolor, $x, $y) {} + + /** + * Blends the fill color with each pixel in the image. The 'opacity' color is a per channel strength factor for how strongly the color should be applied.+ * ImagickPixel object or a string containing the colorize color + *
+ * @param mixed $opacity+ * ImagickPixel object or an float containing the opacity value. + * 1.0 is fully opaque and 0.0 is fully transparent. + *
+ * @param bool $legacy [optional] Added since 3.4.0. Default value FALSE + * @return bool TRUE on success. + * @throws ImagickException Throws ImagickException on error + * @since 2.0.0 + */ + public function colorizeImage($colorize, $opacity, $legacy = false) {} + + /** + * (PECL imagick 2.0.0)+ * Imagick object containing the image to compare. + *
+ * @param int $channelType+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @param int $metricType+ * One of the metric type constants. + *
+ * @return array Array consisting of new_wand and + * distortion. + * @throws ImagickException on error. + */ + public function compareImageChannels(Imagick $image, $channelType, $metricType) {} + + /** + * (PECL imagick 2.0.0)+ * An image to compare to. + *
+ * @param int $metric+ * Provide a valid metric type constant. Refer to this + * list of metric constants. + *
+ * @return array Array consisting of an Imagick object of the + * reconstructed image and a float representing the difference. + * @throws ImagickException Throws ImagickException on error. + */ + public function compareImages(Imagick $compare, $metric) {} + + /** + * (PECL imagick 2.0.0)+ * The sharpen value + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function contrastImage($sharpen) {} + + /** + * (PECL imagick 2.0.0)+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return Imagick TRUE on success. + * @throws ImagickException on error. + */ + public function combineImages($channelType) {} + + /** + * (PECL imagick 2.0.0)+ * The convolution kernel + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function convolveImage(array $kernel, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The amount to displace the colormap. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function cycleColormapImage($displace) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the operation. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function edgeImage($radius) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the effect + *
+ * @param float $sigma+ * The sigma of the effect + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function embossImage($radius, $sigma) {} + + /** + * (PECL imagick 2.0.0)+ * The evaluation operator + *
+ * @param float $constant+ * The value of the operator + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function evaluateImage($op, $constant, $channel = Imagick::CHANNEL_ALL) {} + + /** + * Merges a sequence of images. This is useful for combining Photoshop layers into a single image. + * This is replaced by: + *+ * $im = $im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN) + *+ * @link https://php.net/manual/en/imagick.flattenimages.php + * @return Imagick Returns an Imagick object containing the merged image. + * @throws ImagickException Throws ImagickException on error. + * @since 2.0.0 + */ + #[Deprecated] + public function flattenImages() {} + + /** + * (PECL imagick 2.0.0)
+ * ImagickPixel object or a string representing the matte color + *
+ * @param int $width+ * The width of the border + *
+ * @param int $height+ * The height of the border + *
+ * @param int $inner_bevel+ * The inner bevel width + *
+ * @param int $outer_bevel+ * The outer bevel width + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function frameImage($matte_color, $width, $height, $inner_bevel, $outer_bevel) {} + + /** + * (PECL imagick 2.0.0)+ * The expression. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return Imagick TRUE on success. + * @throws ImagickException on error. + */ + public function fxImage($expression, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The amount of gamma-correction. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function gammaImage($gamma, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the Gaussian, in pixels, not counting the center pixel. + *
+ * @param float $sigma+ * The standard deviation of the Gaussian, in pixels. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function gaussianBlurImage($radius, $sigma, $channel = Imagick::CHANNEL_ALL) {} + + /** + * @link https://www.php.net/manual/en/imagick.getimageattribute.php + * @param string $keyThe key of the attribute to get.
+ * @return string + */ + #[Deprecated] + #[Pure] + public function getImageAttribute($key) {} + + /** + * (PECL imagick 2.0.0)+ * Provide any channel constant that is valid for your channel mode. To apply to more than one channel, combine channel constants using bitwise operators. Defaults to Imagick::CHANNEL_DEFAULT. Refer to this list of channel constants + *
+ * @return int TRUE on success. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageChannelDepth($channel) {} + + /** + * (PECL imagick 2.0.0)+ * Imagick object to compare to. + *
+ * @param int $channel+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @param int $metric+ * One of the metric type constants. + *
+ * @return float TRUE on success. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageChannelDistortion(Imagick $reference, $channel, $metric) {} + + /** + * (PECL imagick 2.0.0)+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return int[] + * @throws ImagickException on error. + */ + #[ArrayShape(["minima" => "int", "maxima" => "int"])] + #[Deprecated] + #[Pure] + public function getImageChannelExtrema($channel) {} + + /** + * (PECL imagick 2.0.0)+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return float[] + * @throws ImagickException on error. + */ + #[ArrayShape(["mean" => "float", "standardDeviation" => "float"])] + #[Pure] + public function getImageChannelMean($channel) {} + + /** + * (PECL imagick 2.0.0)+ * The offset into the image colormap. + *
+ * @return ImagickPixel TRUE on success. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageColormapColor($index) {} + + /** + * (PECL imagick 2.0.0)+ * Imagick object to compare to. + *
+ * @param int $metric+ * One of the metric type constants. + *
+ * @return float the distortion metric used on the image (or the best guess + * thereof). + * @throws ImagickException on error. + */ + #[Pure] + public function getImageDistortion(Imagick $reference, $metric) {} + + /** + * (PECL imagick 2.0.0)+ * The x-coordinate of the pixel + *
+ * @param int $y+ * The y-coordinate of the pixel + *
+ * @return ImagickPixel an ImagickPixel instance for the color at the coordinates given. + * @throws ImagickException on error. + */ + #[Pure] + public function getImagePixelColor($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The name of the profile to return. + *
+ * @return string a string containing the image profile. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageProfile($name) {} + + /** + * (PECL imagick 2.0.0)+ * The width of the extracted region. + *
+ * @param int $height+ * The height of the extracted region. + *
+ * @param int $x+ * X-coordinate of the top-left corner of the extracted region. + *
+ * @param int $y+ * Y-coordinate of the top-left corner of the extracted region. + *
+ * @return Imagick Extracts a region of the image and returns it as a new wand. + * @throws ImagickException on error. + */ + #[Pure] + public function getImageRegion($width, $height, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the implode + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function implodeImage($radius) {} + + /** + * (PECL imagick 2.0.0)+ * The image black point + *
+ * @param float $gamma+ * The gamma value + *
+ * @param float $whitePoint+ * The image white point + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function levelImage($blackPoint, $gamma, $whitePoint, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *
+ * @param float $fuzz+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *
+ * @param mixed $bordercolor+ * An ImagickPixel object or string representing the border color. + *
+ * @param int $x+ * The starting x coordinate of the operation. + *
+ * @param int $y+ * The starting y coordinate of the operation. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function matteFloodfillImage($alpha, $fuzz, $bordercolor, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * The radius of the pixel neighborhood. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function medianFilterImage($radius) {} + + /** + * (PECL imagick 2.0.0)+ * Whether to only negate grayscale pixels within the image. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function negateImage($gray, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * Change this target color to the fill color within the image. An + * ImagickPixel object or a string representing the target color. + *
+ * @param mixed $fill+ * An ImagickPixel object or a string representing the fill color. + *
+ * @param float $fuzz+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *
+ * @param int $channel [optional]+ * Provide any channel constant that is valid for your channel mode. To + * apply to more than one channel, combine channeltype constants using + * bitwise operators. Refer to this + * list of channel constants. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function paintOpaqueImage($target, $fill, $fuzz, $channel = Imagick::CHANNEL_ALL) {} + + /** + * (PECL imagick 2.0.0)+ * Change this target color to specified opacity value within the image. + *
+ * @param float $alpha+ * The level of transparency: 1.0 is fully opaque and 0.0 is fully + * transparent. + *
+ * @param float $fuzz+ * The fuzz member of image defines how much tolerance is acceptable to + * consider two colors as the same. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + #[Deprecated] + public function paintTransparentImage($target, $alpha, $fuzz) {} + + /** + * (PECL imagick 2.0.0)+ * Preview type. See Preview type constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function previewImages($preview) {} + + /** + * (PECL imagick 2.0.0)+ * The border color + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageBorderColor($border) {} + + /** + * (PECL imagick 2.0.0)+ * One of the COLORSPACE constants + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImageColorspace($colorspace) {} + + /** + * (PECL imagick 2.0.0)+ * The source Imagick object + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function addImage(Imagick $source) {} + + /** + * (PECL imagick 2.0.0)+ * The replace Imagick object + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setImage(Imagick $replace) {} + + /** + * (PECL imagick 2.0.0)+ * Columns in the new image + *
+ * @param int $rows+ * Rows in the new image + *
+ * @param mixed $background+ * The background color used for this image + *
+ * @param string $format [optional]+ * Image format. This parameter was added in Imagick version 2.0.1. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function newImage($cols, $rows, $background, $format = null) {} + + /** + * (PECL imagick 2.0.0)+ * columns in the new image + *
+ * @param int $rows+ * rows in the new image + *
+ * @param string $pseudoString+ * string containing pseudo image definition. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function newPseudoImage($columns, $rows, $pseudoString) {} + + /** + * (PECL imagick 2.0.0)+ * The name of the option + *
+ * @return string a value associated with a wand and the specified key. + */ + #[Pure] + public function getOption($key) {} + + /** + * (PECL imagick 2.0.0)+ * Refer to the list of resourcetype constants. + *
+ * @return int the specified resource's memory usage in megabytes. + */ + public static function getResource($type) {} + + /** + * (PECL imagick 2.0.0)+ * Refer to the list of resourcetype constants. + *
+ * @return int the specified resource limit in megabytes. + */ + public static function getResourceLimit($type) {} + + /** + * (PECL imagick 2.0.0)+ * Refer to the list of resourcetype constants. + *
+ * @param int $limit+ * The resource limit. The unit depends on the type of the resource being limited. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public static function setResourceLimit($type, $limit) {} + + /** + * (PECL imagick 2.0.0)+ * The horizontal resolution. + *
+ * @param float $y_resolution+ * The vertical resolution. + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function setResolution($x_resolution, $y_resolution) {} + + /** + * (PECL imagick 2.0.0)bool callback ( mixed $offset , mixed $span )+ * Caution + * The values passed to the callback function are not consistent. In particular the span parameter can increase during image processing. Because of this calculating the percentage complete of an image operation is not trivial. + * @return void + * @throws ImagickException on error. + * @since 3.3.0 + */ + public function setProgressMonitor($callback) {} + + /** + * Sets the ImageMagick registry entry named key to value. This is most useful for setting "temporary-path" which controls where ImageMagick creates temporary images e.g. while processing PDFs. + * @link https://php.net/manual/en/imagick.setregistry.php + * @param string $key + * @param string $value + * @return void + * @since 3.3.0 + */ + public static function setRegistry($key, $value) {} + + /** + * Replace each pixel with corresponding statistic from the neighborhood of the specified width and height. + * @link https://php.net/manual/en/imagick.statisticimage.php + * @param int $type + * @param int $width + * @param int $height + * @param int $channel [optional] + * @return void + * @throws ImagickException on error. + * @since 3.3.0 + */ + public function statisticImage($type, $width, $height, $channel = Imagick::CHANNEL_DEFAULT) {} + + /** + * Searches for a subimage in the current image and returns a similarity image such that an exact match location is + * completely white and if none of the pixels match, black, otherwise some gray level in-between. + * You can also pass in the optional parameters bestMatch and similarity. After calling the function similarity will + * be set to the 'score' of the similarity between the subimage and the matching position in the larger image, + * bestMatch will contain an associative array with elements x, y, width, height that describe the matching region. + * + * @link https://php.net/manual/en/imagick.subimagematch.php + * @param Imagick $imagick + * @param array &$bestMatch [optional] + * @param float &$similarity [optional] A new image that displays the amount of similarity at each pixel. + * @param float $similarity_threshold [optional] Only used if compiled with ImageMagick (library) > 7 + * @param int $metric [optional] Only used if compiled with ImageMagick (library) > 7 + * @return Imagick + * @throws ImagickException on error. + * @since 3.3.0 + */ + public function subImageMatch(Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) {} + + /** + * Is an alias of Imagick::subImageMatch + * + * @param Imagick $imagick + * @param array &$bestMatch [optional] + * @param float &$similarity [optional] A new image that displays the amount of similarity at each pixel. + * @param float $similarity_threshold [optional] + * @param int $metric [optional] + * @return Imagick + * @throws ImagickException on error. + * @see Imagick::subImageMatch() This function is an alias of subImageMatch() + * @since 3.4.0 + */ + public function similarityImage(Imagick $imagick, array &$bestMatch, &$similarity, $similarity_threshold, $metric) {} + + /** + * Returns any ImageMagick configure options that match the specified pattern (e.g. "*" for all). Options include NAME, VERSION, LIB_VERSION, etc. + * @return string + * @since 3.4.0 + */ + #[Pure] + public function getConfigureOptions() {} + + /** + * GetFeatures() returns the ImageMagick features that have been compiled into the runtime. + * @return string + * @since 3.4.0 + */ + #[Pure] + public function getFeatures() {} + + /** + * @return int + * @since 3.4.0 + */ + #[Pure] + public function getHDRIEnabled() {} + + /** + * Sets the image channel mask. Returns the previous set channel mask. + * Only works with Imagick >= 7 + * @param int $channel + * @throws ImagickException on error. + * @since 3.4.0 + */ + public function setImageChannelMask($channel) {} + + /** + * Merge multiple images of the same size together with the selected operator. https://www.imagemagick.org/Usage/layers/#evaluate-sequence + * @param int $EVALUATE_CONSTANT + * @return bool + * @see https://www.imagemagick.org/Usage/layers/#evaluate-sequence + * @throws ImagickException on error. + * @since 3.4.0 + */ + public function evaluateImages($EVALUATE_CONSTANT) {} + + /** + * Extracts the 'mean' from the image and adjust the image to try make set its gamma appropriately. + * @param int $channel [optional] Default value Imagick::CHANNEL_ALL + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function autoGammaImage($channel = Imagick::CHANNEL_ALL) {} + + /** + * Adjusts an image so that its orientation is suitable $ for viewing (i.e. top-left orientation). + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function autoOrient() {} + + /** + * Composite one image onto another using the specified gravity. + * + * @param Imagick $imagick + * @param int $COMPOSITE_CONSTANT + * @param int $GRAVITY_CONSTANT + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function compositeImageGravity(Imagick $imagick, $COMPOSITE_CONSTANT, $GRAVITY_CONSTANT) {} + + /** + * Attempts to increase the appearance of large-scale light-dark transitions. + * + * @param float $radius + * @param float $strength + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function localContrastImage($radius, $strength) {} + + /** + * Identifies the potential image type, returns one of the Imagick::IMGTYPE_* constants + * @return int + * @throws ImagickException on error. + * @since 3.4.3 + */ + public function identifyImageType() {} + + /** + * Sets the image to the specified alpha level. Will replace ImagickDraw::setOpacity() + * + * @param float $alpha + * @return bool + * @throws ImagickException on error. + * @since 3.4.3 + */ + public function setImageAlpha($alpha) {} +} + +/** + * @method ImagickDraw clone() (PECL imagick 2.0.0)
+ * ImagickPixel to use to set the color + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function setFillColor(ImagickPixel $fill_pixel) {} + + /** + * (PECL imagick 2.0.0)+ * fill alpha + *
+ * @return bool No value is returned. + */ + #[Deprecated] + public function setFillAlpha($opacity) {} + + /** + * Sets the image resolution + * @param float $x_resolutionThe horizontal resolution.
+ * @param float $y_resolutionThe vertical resolution.
+ * @return bool + * @throws ImagickDrawException on error. + */ + public function setResolution($x_resolution, $y_resolution) {} + + /** + * (PECL imagick 2.0.0)+ * the stroke color + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function setStrokeColor(ImagickPixel $stroke_pixel) {} + + /** + * (PECL imagick 2.0.0)+ * opacity + *
+ * @return bool No value is returned. + */ + #[Deprecated] + public function setStrokeAlpha($opacity) {} + + /** + * (PECL imagick 2.0.0)+ * stroke width + *
+ * @return bool No value is returned. + */ + public function setStrokeWidth($stroke_width) {} + + /** + * (PECL imagick 2.0.0)+ * origin x coordinate + *
+ * @param float $oy+ * origin y coordinate + *
+ * @param float $px+ * perimeter x coordinate + *
+ * @param float $py+ * perimeter y coordinate + *
+ * @return bool No value is returned. + */ + public function circle($ox, $oy, $px, $py) {} + + /** + * (PECL imagick 2.0.0)+ * The x coordinate where text is drawn + *
+ * @param float $y+ * The y coordinate where text is drawn + *
+ * @param string $text+ * The text to draw on the image + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function annotation($x, $y, $text) {} + + /** + * (PECL imagick 2.0.0)+ * the encoding name + *
+ * @return bool No value is returned. + */ + public function setTextEncoding($encoding) {} + + /** + * (PECL imagick 2.0.0)+ * the font family + *
+ * @return bool TRUE on success. + * @throws ImagickDrawException on error. + * @throws ImagickException on error. + */ + public function setFontFamily($font_family) {} + + /** + * (PECL imagick 2.0.0)+ * the point size + *
+ * @return bool No value is returned. + */ + public function setFontSize($pointsize) {} + + /** + * (PECL imagick 2.0.0)+ * STYLETYPE_ constant + *
+ * @return bool No value is returned. + */ + public function setFontStyle($style) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the top left corner + *
+ * @param float $y1+ * y coordinate of the top left corner + *
+ * @param float $x2+ * x coordinate of the bottom right corner + *
+ * @param float $y2+ * y coordinate of the bottom right corner + *
+ * @return bool No value is returned. + */ + public function rectangle($x1, $y1, $x2, $y2) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the top left corner + *
+ * @param float $y1+ * y coordinate of the top left corner + *
+ * @param float $x2+ * x coordinate of the bottom right + *
+ * @param float $y2+ * y coordinate of the bottom right + *
+ * @param float $rx+ * x rounding + *
+ * @param float $ry+ * y rounding + *
+ * @return bool No value is returned. + */ + public function roundRectangle($x1, $y1, $x2, $y2, $rx, $ry) {} + + /** + * (PECL imagick 2.0.0)+ * degrees to skew + *
+ * @return bool No value is returned. + */ + public function skewX($degrees) {} + + /** + * (PECL imagick 2.0.0)+ * degrees to skew + *
+ * @return bool No value is returned. + */ + public function skewY($degrees) {} + + /** + * (PECL imagick 2.0.0)+ * horizontal translation + *
+ * @param float $y+ * vertical translation + *
+ * @return bool No value is returned. + */ + public function translate($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * starting x coordinate + *
+ * @param float $sy+ * starting y coordinate + *
+ * @param float $ex+ * ending x coordinate + *
+ * @param float $ey+ * ending y coordinate + *
+ * @return bool No value is returned. + */ + public function line($sx, $sy, $ex, $ey) {} + + /** + * (PECL imagick 2.0.0)+ * Starting x ordinate of bounding rectangle + *
+ * @param float $sy+ * starting y ordinate of bounding rectangle + *
+ * @param float $ex+ * ending x ordinate of bounding rectangle + *
+ * @param float $ey+ * ending y ordinate of bounding rectangle + *
+ * @param float $sd+ * starting degrees of rotation + *
+ * @param float $ed+ * ending degrees of rotation + *
+ * @return bool No value is returned. + */ + public function arc($sx, $sy, $ex, $ey, $sd, $ed) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the matte + *
+ * @param float $y+ * y coordinate of the matte + *
+ * @param int $paintMethod+ * PAINT_ constant + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function matte($x, $y, $paintMethod) {} + + /** + * (PECL imagick 2.0.0)+ * multidimensional array like array( array( 'x' => 3, 'y' => 4 ), array( 'x' => 2, 'y' => 6 ) ); + *
+ * @return bool TRUE on success. + * @throws ImagickDrawException on error. + */ + public function polygon(array $coordinates) {} + + /** + * (PECL imagick 2.0.0)+ * point's x coordinate + *
+ * @param float $y+ * point's y coordinate + *
+ * @return bool No value is returned. + */ + public function point($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * STRETCH_ constant + *
+ * @return bool No value is returned. + */ + public function setFontStretch($fontStretch) {} + + /** + * (PECL imagick 2.0.0)+ * the antialias setting + *
+ * @return bool No value is returned. + */ + public function setStrokeAntialias($stroke_antialias) {} + + /** + * (PECL imagick 2.0.0)+ * ALIGN_ constant + *
+ * @return bool No value is returned. + */ + public function setTextAlignment($alignment) {} + + /** + * (PECL imagick 2.0.0)+ * DECORATION_ constant + *
+ * @return bool No value is returned. + */ + public function setTextDecoration($decoration) {} + + /** + * (PECL imagick 2.0.0)+ * the under color + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function setTextUnderColor(ImagickPixel $under_color) {} + + /** + * (PECL imagick 2.0.0)+ * left x coordinate + *
+ * @param int $y1+ * left y coordinate + *
+ * @param int $x2+ * right x coordinate + *
+ * @param int $y2+ * right y coordinate + *
+ * @return bool No value is returned. + */ + public function setViewbox($x1, $y1, $x2, $y2) {} + + /** + * (PECL imagick 2.0.0)+ * Affine matrix parameters + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function affine(array $affine) {} + + /** + * (PECL imagick 2.0.0)+ * Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), + * array( 'x' => 3, 'y' => 4 ) ) + *
+ * @return bool No value is returned. + * @throws ImagickDrawException on error. + */ + public function bezier(array $coordinates) {} + + /** + * (PECL imagick 2.0.0)+ * composition operator. One of COMPOSITE_ constants + *
+ * @param float $x+ * x coordinate of the top left corner + *
+ * @param float $y+ * y coordinate of the top left corner + *
+ * @param float $width+ * width of the composition image + *
+ * @param float $height+ * height of the composition image + *
+ * @param Imagick $compositeWand+ * the Imagick object where composition image is taken from + *
+ * @return bool TRUE on success. + * @throws ImagickException on error. + */ + public function composite($compose, $x, $y, $width, $height, Imagick $compositeWand) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the paint + *
+ * @param float $y+ * y coordinate of the paint + *
+ * @param int $paintMethod+ * one of the PAINT_ constants + *
+ * @return bool No value is returned. + */ + public function color($x, $y, $paintMethod) {} + + /** + * (PECL imagick 2.0.0)+ * The comment string to add to vector output stream + *
+ * @return bool No value is returned. + */ + public function comment($comment) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the first control point + *
+ * @param float $y1+ * y coordinate of the first control point + *
+ * @param float $x2+ * x coordinate of the second control point + *
+ * @param float $y2+ * y coordinate of the first control point + *
+ * @param float $x+ * x coordinate of the curve end + *
+ * @param float $y+ * y coordinate of the curve end + *
+ * @return bool No value is returned. + */ + public function pathCurveToAbsolute($x1, $y1, $x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of starting control point + *
+ * @param float $y1+ * y coordinate of starting control point + *
+ * @param float $x2+ * x coordinate of ending control point + *
+ * @param float $y2+ * y coordinate of ending control point + *
+ * @param float $x+ * ending x coordinate + *
+ * @param float $y+ * ending y coordinate + *
+ * @return bool No value is returned. + */ + public function pathCurveToRelative($x1, $y1, $x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the control point + *
+ * @param float $y1+ * y coordinate of the control point + *
+ * @param float $x+ * x coordinate of the end point + *
+ * @param float $y+ * y coordinate of the end point + *
+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierAbsolute($x1, $y1, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * starting x coordinate + *
+ * @param float $y1+ * starting y coordinate + *
+ * @param float $x+ * ending x coordinate + *
+ * @param float $y+ * ending y coordinate + *
+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierRelative($x1, $y1, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * ending x coordinate + *
+ * @param float $y+ * ending y coordinate + *
+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierSmoothAbsolute($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * ending x coordinate + *
+ * @param float $y+ * ending y coordinate + *
+ * @return bool No value is returned. + */ + public function pathCurveToQuadraticBezierSmoothRelative($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the second control point + *
+ * @param float $y2+ * y coordinate of the second control point + *
+ * @param float $x+ * x coordinate of the ending point + *
+ * @param float $y+ * y coordinate of the ending point + *
+ * @return bool No value is returned. + */ + public function pathCurveToSmoothAbsolute($x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the second control point + *
+ * @param float $y2+ * y coordinate of the second control point + *
+ * @param float $x+ * x coordinate of the ending point + *
+ * @param float $y+ * y coordinate of the ending point + *
+ * @return bool No value is returned. + */ + public function pathCurveToSmoothRelative($x2, $y2, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x radius + *
+ * @param float $ry+ * y radius + *
+ * @param float $x_axis_rotation+ * x axis rotation + *
+ * @param bool $large_arc_flag+ * large arc flag + *
+ * @param bool $sweep_flag+ * sweep flag + *
+ * @param float $x+ * x coordinate + *
+ * @param float $y+ * y coordinate + *
+ * @return bool No value is returned. + */ + public function pathEllipticArcAbsolute($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x radius + *
+ * @param float $ry+ * y radius + *
+ * @param float $x_axis_rotation+ * x axis rotation + *
+ * @param bool $large_arc_flag+ * large arc flag + *
+ * @param bool $sweep_flag+ * sweep flag + *
+ * @param float $x+ * x coordinate + *
+ * @param float $y+ * y coordinate + *
+ * @return bool No value is returned. + */ + public function pathEllipticArcRelative($rx, $ry, $x_axis_rotation, $large_arc_flag, $sweep_flag, $x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * starting x coordinate + *
+ * @param float $y+ * ending x coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToAbsolute($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * starting x coordinate + *
+ * @param float $y+ * starting y coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToRelative($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToHorizontalAbsolute($x) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToHorizontalRelative($x) {} + + /** + * (PECL imagick 2.0.0)+ * y coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToVerticalAbsolute($y) {} + + /** + * (PECL imagick 2.0.0)+ * y coordinate + *
+ * @return bool No value is returned. + */ + public function pathLineToVerticalRelative($y) {} + + /** + * (PECL imagick 2.0.0)+ * x coordinate of the starting point + *
+ * @param float $y+ * y coordinate of the starting point + *
+ * @return bool No value is returned. + */ + public function pathMoveToAbsolute($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * target x coordinate + *
+ * @param float $y+ * target y coordinate + *
+ * @return bool No value is returned. + */ + public function pathMoveToRelative($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * array of x and y coordinates: array( array( 'x' => 4, 'y' => 6 ), array( 'x' => 8, 'y' => 10 ) ) + *
+ * @return bool TRUE on success. + * @throws ImagickDrawException on error. + */ + public function polyline(array $coordinates) {} + + /** + * (PECL imagick 2.0.0)+ * Clip mask Id + *
+ * @return bool No value is returned. + */ + public function pushClipPath($clip_mask_id) {} + + /** + * (PECL imagick 2.0.0)+ * the pattern Id + *
+ * @param float $x+ * x coordinate of the top-left corner + *
+ * @param float $y+ * y coordinate of the top-left corner + *
+ * @param float $width+ * width of the pattern + *
+ * @param float $height+ * height of the pattern + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function pushPattern($pattern_id, $x, $y, $width, $height) {} + + /** + * (PECL imagick 2.0.0)+ * degrees to rotate + *
+ * @return bool No value is returned. + */ + public function rotate($degrees) {} + + /** + * (PECL imagick 2.0.0)+ * horizontal factor + *
+ * @param float $y+ * vertical factor + *
+ * @return bool No value is returned. + */ + public function scale($x, $y) {} + + /** + * (PECL imagick 2.0.0)+ * the clipping path name + *
+ * @return bool No value is returned. + * @throws ImagickException on error. + */ + public function setClipPath($clip_mask) {} + + /** + * (PECL imagick 2.0.0)+ * FILLRULE_ constant + *
+ * @return bool No value is returned. + */ + public function setClipRule($fill_rule) {} + + /** + * (PECL imagick 2.0.0)+ * the number of clip units + *
+ * @return bool No value is returned. + */ + public function setClipUnits($clip_units) {} + + /** + * (PECL imagick 2.0.0)+ * the fill opacity + *
+ * @return bool No value is returned. + */ + public function setFillOpacity($fillOpacity) {} + + /** + * (PECL imagick 2.0.0)+ * URL to use to obtain fill pattern. + *
+ * @return bool TRUE on success or FALSE on failure. + * @throws ImagickException on error. + */ + public function setFillPatternURL($fill_url) {} + + /** + * (PECL imagick 2.0.0)+ * FILLRULE_ constant + *
+ * @return bool No value is returned. + */ + public function setFillRule($fill_rule) {} + + /** + * (PECL imagick 2.0.0)+ * GRAVITY_ constant + *
+ * @return bool No value is returned. + */ + public function setGravity($gravity) {} + + /** + * (PECL imagick 2.0.0)+ * stroke URL + *
+ * @return bool imagick.imagickdraw.return.success; + * @throws ImagickException on error. + */ + public function setStrokePatternURL($stroke_url) {} + + /** + * (PECL imagick 2.0.0)+ * dash offset + *
+ * @return bool No value is returned. + */ + public function setStrokeDashOffset($dash_offset) {} + + /** + * (PECL imagick 2.0.0)+ * LINECAP_ constant + *
+ * @return bool No value is returned. + */ + public function setStrokeLineCap($linecap) {} + + /** + * (PECL imagick 2.0.0)+ * LINEJOIN_ constant + *
+ * @return bool No value is returned. + */ + public function setStrokeLineJoin($linejoin) {} + + /** + * (PECL imagick 2.0.0)+ * the miter limit + *
+ * @return bool No value is returned. + */ + public function setStrokeMiterLimit($miterlimit) {} + + /** + * (PECL imagick 2.0.0)+ * stroke opacity. 1.0 is fully opaque + *
+ * @return bool No value is returned. + */ + public function setStrokeOpacity($stroke_opacity) {} + + /** + * (PECL imagick 2.0.0)+ * xml containing the vector graphics + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function setVectorGraphics($xml) {} + + /** + * (PECL imagick 2.0.0)+ * array of floats + *
+ * @return bool TRUE on success. + */ + public function setStrokeDashArray(array $dashArray) {} + + /** + * Sets the opacity to use when drawing using the fill or stroke color or texture. Fully opaque is 1.0. + * + * @param float $opacity + * @return void + * @since 3.4.1 + */ + public function setOpacity($opacity) {} + + /** + * Returns the opacity used when drawing with the fill or stroke color or texture. Fully opaque is 1.0. + * + * @return float + * @since 3.4.1 + */ + #[Pure] + public function getOpacity() {} + + /** + * Sets the image font resolution. + * + * @param float $x + * @param float $y + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function setFontResolution($x, $y) {} + + /** + * Gets the image X and Y resolution. + * + * @return array + * @throws ImagickException on error. + * @since 3.4.1 + */ + #[Pure] + public function getFontResolution() {} + + /** + * Returns the direction that will be used when annotating with text. + * @return bool + * @since 3.4.1 + */ + #[Pure] + public function getTextDirection() {} + + /** + * Sets the font style to use when annotating with text. The AnyStyle enumeration acts as a wild-card "don't care" option. + * + * @param int $direction + * @return bool + * @since 3.4.1 + */ + public function setTextDirection($direction) {} + + /** + * Returns the border color used for drawing bordered objects. + * + * @return ImagickPixel + * @since 3.4.1 + */ + #[Pure] + public function getBorderColor() {} + + /** + * Sets the border color to be used for drawing bordered objects. + * @param ImagickPixel $color + * @return bool + * @throws ImagickDrawException on error. + * @since 3.4.1 + */ + public function setBorderColor(ImagickPixel $color) {} + + /** + * Obtains the vertical and horizontal resolution. + * + * @return string|null + * @since 3.4.1 + */ + #[Pure] + public function getDensity() {} + + /** + * Sets the vertical and horizontal resolution. + * @param string $density_string + * @return bool + * @throws ImagickException on error. + * @since 3.4.1 + */ + public function setDensity($density_string) {} +} + +/** + * @link https://php.net/manual/en/class.imagickpixeliterator.php + */ +class ImagickPixelIterator implements Iterator +{ + /** + * (PECL imagick 2.0.0)+ * The normalized value for hue, described as a fractional arc + * (between 0 and 1) of the hue circle, where the zero value is + * red. + *
+ * @param float $saturation+ * The normalized value for saturation, with 1 as full saturation. + *
+ * @param float $luminosity+ * The normalized value for luminosity, on a scale from black at + * 0 to white at 1, with the full HS value at 0.5 luminosity. + *
+ * @return bool TRUE on success. + * @throws ImagickPixelException on failure + */ + public function setHSL($hue, $saturation, $luminosity) {} + + /** + * @throws ImagickPixelException on failure + */ + #[Pure] + public function getColorValueQuantum() {} + + /** + * @param $color_value + * @throws ImagickPixelException on failure + */ + public function setColorValueQuantum($color_value) {} + + /** + * Gets the colormap index of the pixel wand. + * @throws ImagickPixelException on failure + */ + #[Pure] + public function getIndex() {} + + /** + * @param int $index + * @throws ImagickPixelException on failure + */ + public function setIndex($index) {} + + /** + * (PECL imagick 2.0.0)+ * The optional color string to use as the initial value of this object. + *
+ * @throws ImagickPixelException on failure + */ + public function __construct($color = null) {} + + /** + * (PECL imagick 2.0.0)+ * The color definition to use in order to initialise the + * ImagickPixel object. + *
+ * @return bool TRUE if the specified color was set, FALSE otherwise. + * @throws ImagickPixelException on failure + */ + public function setColor($color) {} + + /** + * (PECL imagick 2.0.0)+ * One of the Imagick color constants e.g. \Imagick::COLOR_GREEN or \Imagick::COLOR_ALPHA. + *
+ * @param float $value+ * The value to set this channel to, ranging from 0 to 1. + *
+ * @return bool TRUE on success. + * @throws ImagickPixelException on failure + */ + public function setColorValue($color, $value) {} + + /** + * (PECL imagick 2.0.0)+ * The color to get the value of, specified as one of the Imagick color + * constants. This can be one of the RGB colors, CMYK colors, alpha and + * opacity e.g (Imagick::COLOR_BLUE, Imagick::COLOR_MAGENTA). + *
+ * @return float The value of the channel, as a normalized floating-point number, throwing + * ImagickPixelException on error. + * @throws ImagickPixelException on error + */ + #[Pure] + public function getColorValue($color) {} + + /** + * (PECL imagick 2.0.0)+ * The ImagickPixel object to compare this object against. + *
+ * @param float $fuzz+ * The maximum distance within which to consider these colors as similar. + * The theoretical maximum for this value is the square root of three + * (1.732). + *
+ * @return bool TRUE on success. + * @throws ImagickPixelException on failure + */ + public function isSimilar(ImagickPixel $color, $fuzz) {} + + /** + * (No version information available, might only be in SVN)+ * The ImagickPixel object to compare this object against. + *
+ * @param float $fuzz+ * The maximum distance within which to consider these colors as similar. + * The theoretical maximum for this value is the square root of three + * (1.732). + *
+ * @return bool TRUE on success. + * @throws ImagickPixelException on failure + */ + public function isPixelSimilar(ImagickPixel $color, $fuzz) {} + + /** + * (PECL imagick 2.0.0)+ * Normalize the color values + *
+ * @return array An array of channel values, each normalized if TRUE is given as param. Throws + * ImagickPixelException on error. + * @throws ImagickPixelException on error. + */ + #[ArrayShape(["r" => "int|float", "g" => "int|float", "b" => "int|float", "a" => "int|float"])] + #[Pure] + public function getColor($normalized = 0) {} + + /** + * (PECL imagick 2.1.0)+ * The server part, which is enclosed in '{' and '}', consists of the servers + * name or ip address, an optional port (prefixed by ':'), and an optional + * protocol specification (prefixed by '/'). + *
+ *+ * The server part is mandatory in all mailbox + * parameters. + *
+ *+ * All names which start with { are remote names, and are + * in the form "{" remote_system_name [":" port] [flags] "}" + * [mailbox_name] where: + * remote_system_name - Internet domain name or + * bracketed IP address of server.
+ * @param string $user+ * The user name + *
+ * @param string $password+ * The password associated with the username + *
+ * @param int $flags [optional]+ * The options are a bit mask with one or more of + * the following: + * OP_READONLY - Open mailbox read-only
+ * @param int $retries [optional]+ * Number of maximum connect attempts + *
+ * @param null|array $options+ * Connection parameters, the following (string) keys maybe used + * to set one or more connection parameters: + * DISABLE_AUTHENTICATOR - Disable authentication properties
+ * @return resource|false an IMAP stream on success or FALSE on error. + */ +#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection|false'], default: 'resource|false')] +function imap_open(string $mailbox, string $user, string $password, int $flags = 0, int $retries = 0, array $options = []) {} + +/** + * Reopen IMAP stream to new mailbox + * @link https://php.net/manual/en/function.imap-reopen.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param int $flags [optional]+ * The options are a bit mask with one or more of + * the following: + * OP_READONLY - Open mailbox read-only
+ * @param int $retries [optional]+ * Number of maximum connect attempts + *
+ * @return bool TRUE if the stream is reopened, FALSE otherwise. + */ +function imap_reopen( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + string $mailbox, + int $flags = 0, + int $retries = 0 +): bool {} + +/** + * Close an IMAP stream + * @link https://php.net/manual/en/function.imap-close.php + * @param resource $imap + * @param int $flags [optional]+ * If set to CL_EXPUNGE, the function will silently + * expunge the mailbox before closing, removing all messages marked for + * deletion. You can achieve the same thing by using + * imap_expunge + *
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_close(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $flags = 0) {} + +/** + * Gets the number of messages in the current mailbox + * @link https://php.net/manual/en/function.imap-num-msg.php + * @param resource $imap + * @return int|false Return the number of messages in the current mailbox, as an integer. + */ +function imap_num_msg(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): int|false {} + +/** + * Gets the number of recent messages in current mailbox + * @link https://php.net/manual/en/function.imap-num-recent.php + * @param resource $imap + * @return int the number of recent messages in the current mailbox, as an + * integer. + */ +function imap_num_recent(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): int {} + +/** + * Returns headers for all messages in a mailbox + * @link https://php.net/manual/en/function.imap-headers.php + * @param resource $imap + * @return array|false an array of string formatted with header info. One + * element per mail message. + */ +function imap_headers(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): array|false {} + +/** + * Read the header of the message + * @link https://php.net/manual/en/function.imap-headerinfo.php + * @param resource|IMAP\Connection $imap An IMAP stream returned by imap_open(). + * @param int $message_num The message number + * @param int $from_length [optional] Number of characters for the fetchfrom property. Must be greater than or equal to zero. + * @param int $subject_length [optional] Number of characters for the fetchsubject property Must be greater than or equal to zero. + * @param $default_host [optional] + * @return stdClass|false Returns the information in an object with following properties: + *+ * The parsed headers data + *
+ * @param string $default_hostname [optional]+ * The default host name + *
+ * @return object|stdClass an object similar to the one returned by + * imap_header, except for the flags and other + * properties that come from the IMAP server. + */ +function imap_rfc822_parse_headers(string $headers, string $default_hostname = "UNKNOWN"): stdClass {} + +/** + * Returns a properly formatted email address given the mailbox, host, and personal info + * @link https://php.net/manual/en/function.imap-rfc822-write-address.php + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param string $hostname+ * The email host part + *
+ * @param string $personal+ * The name of the account owner + *
+ * @return string|false a string properly formatted email address as defined in RFC2822. + */ +function imap_rfc822_write_address(string $mailbox, string $hostname, string $personal): string|false {} + +/** + * Parses an address string + * @link https://php.net/manual/en/function.imap-rfc822-parse-adrlist.php + * @param string $string+ * A string containing addresses + *
+ * @param string $default_hostname+ * The default host name + *
+ * @return array an array of objects. The objects properties are: + *+ * mailbox - the mailbox name (username) + * host - the host name + * personal - the personal name + * adl - at domain source route + *
+ */ +function imap_rfc822_parse_adrlist(string $string, string $default_hostname): array {} + +/** + * Read the message body + * @link https://php.net/manual/en/function.imap-body.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param int $flags [optional]+ * The optional options are a bit mask + * with one or more of the following: + * FT_UID - The msg_number is a UID
+ * @return string|false the body of the specified message, as a string. + */ +function imap_body( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + int $message_num, + int $flags = 0 +): string|false {} + +/** + * Read the structure of a specified body section of a specific message + * @link https://php.net/manual/en/function.imap-bodystruct.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param string $section+ * The body section to read + *
+ * @return object the information in an object, for a detailed description + * of the object structure and properties see + * imap_fetchstructure. + */ +#[LanguageLevelTypeAware(['8.1' => 'stdClass|false'], default: 'object')] +function imap_bodystruct(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $message_num, string $section) {} + +/** + * Fetch a particular section of the body of the message + * @link https://php.net/manual/en/function.imap-fetchbody.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param string $section+ * The part number. It is a string of integers delimited by period which + * index into a body part list as per the IMAP4 specification + *
+ * @param int $flags [optional]+ * A bitmask with one or more of the following: + * FT_UID - The msg_number is a UID
+ * @return string|false a particular section of the body of the specified messages as a + * text string. + */ +function imap_fetchbody( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + int $message_num, + string $section, + int $flags = 0 +): string|false {} + +/** + * Fetch MIME headers for a particular section of the message + * @link https://php.net/manual/en/function.imap-fetchmime.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param string $section+ * The part number. It is a string of integers delimited by period which + * index into a body part list as per the IMAP4 specification + *
+ * @param int $flags [optional]+ * A bitmask with one or more of the following: + * FT_UID - The msg_number is a UID
+ * @return string|false the MIME headers of a particular section of the body of the specified messages as a + * text string. + * @since 5.3.6 + */ +function imap_fetchmime( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + int $message_num, + string $section, + int $flags = 0 +): string|false {} + +/** + * Save a specific body section to a file + * @link https://php.net/manual/en/function.imap-savebody.php + * @param resource $imap + * @param mixed $file+ * The path to the saved file as a string, or a valid file descriptor + * returned by fopen. + *
+ * @param int $message_num+ * The message number + *
+ * @param string $section [optional]+ * The part number. It is a string of integers delimited by period which + * index into a body part list as per the IMAP4 specification + *
+ * @param int $flags [optional]+ * A bitmask with one or more of the following: + * FT_UID - The msg_number is a UID
+ * @return bool TRUE on success or FALSE on failure. + * @since 5.1.3 + */ +function imap_savebody( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + $file, + int $message_num, + string $section = "", + int $flags = 0 +): bool {} + +/** + * Returns header for a message + * @link https://php.net/manual/en/function.imap-fetchheader.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param int $flags [optional]+ * The possible options are: + * FT_UID - The msgno + * argument is a UID
+ * @return string|false the header of the specified message as a text string. + */ +function imap_fetchheader( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + int $message_num, + int $flags = 0 +): string|false {} + +/** + * Read the structure of a particular message + * @link https://php.net/manual/en/function.imap-fetchstructure.php + * @param resource $imap + * @param int $message_num+ * The message number + *
+ * @param int $flags [optional]+ * This optional parameter only has a single option, + * FT_UID, which tells the function to treat the + * msg_number argument as a + * UID. + *
+ * @return object|stdClass|false an object includes the envelope, internal date, size, flags and + * body structure along with a similar object for each mime attachment. The + * structure of the returned objects is as follows: + * + *+ *
| type | + *Primary body type | + *
| encoding | + *Body transfer encoding | + *
| ifsubtype | + *TRUE if there is a subtype string | + *
| subtype | + *MIME subtype | + *
| ifdescription | + *TRUE if there is a description string | + *
| description | + *Content description string | + *
| ifid | + *TRUE if there is an identification string | + *
| id | + *Identification string | + *
| lines | + *Number of lines | + *
| bytes | + *Number of bytes | + *
| ifdisposition | + *TRUE if there is a disposition string | + *
| disposition | + *Disposition string | + *
| ifdparameters | + *TRUE if the dparameters array exists | + *
| dparameters | + *An array of objects where each object has an + * "attribute" and a "value" + * property corresponding to the parameters on the + * Content-disposition MIME + * header. | + *
| ifparameters | + *TRUE if the parameters array exists | + *
| parameters | + *An array of objects where each object has an + * "attribute" and a "value" + * property. | + *
| parts | + *An array of objects identical in structure to the top-level + * object, each of which corresponds to a MIME body + * part. | + *
+ *
| 0 | text |
| 1 | multipart |
| 2 | message |
| 3 | application |
| 4 | audio |
| 5 | image |
| 6 | video |
| 7 | other |
+ *
| 0 | 7BIT |
| 1 | 8BIT |
| 2 | BINARY |
| 3 | BASE64 |
| 4 | QUOTED-PRINTABLE |
| 5 | OTHER |
+ * Specifies the cache to purge. It may one or a combination + * of the following constants: + * IMAP_GC_ELT (message cache elements), + * IMAP_GC_ENV (enveloppe and bodies), + * IMAP_GC_TEXTS (texts). + *
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_gc( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] int $flags = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] int $flags +) {} + +/** + * Delete all messages marked for deletion + * @link https://php.net/manual/en/function.imap-expunge.php + * @param resource $imap + */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_expunge(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap) {} + +/** + * Mark a message for deletion from current mailbox + * @link https://php.net/manual/en/function.imap-delete.php + * @param resource $imap + * @param string $message_nums+ * The message number + *
+ * @param int $flags [optional]+ * You can set the FT_UID which tells the function + * to treat the msg_number argument as an + * UID. + *
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_delete(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $message_nums, int $flags = 0) {} + +/** + * Unmark the message which is marked deleted + * @link https://php.net/manual/en/function.imap-undelete.php + * @param resource $imap + * @param string $message_nums+ * The message number + *
+ * @param int $flags [optional] + */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_undelete(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $message_nums, int $flags = 0) {} + +/** + * Check current mailbox + * @link https://php.net/manual/en/function.imap-check.php + * @param resource $imap + * @return object|stdClass|false the information in an object with following properties: + * Date - current system time formatted according to RFC2822 + * Driver - protocol used to access this mailbox: + * POP3, IMAP, NNTP + * Mailbox - the mailbox name + * Nmsgs - number of messages in the mailbox + * Recent - number of recent messages in the mailbox + * + *+ * Returns FALSE on failure. + */ +function imap_check(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): stdClass|false {} + +/** + * Returns the list of mailboxes that matches the given text + * @link https://php.net/manual/en/function.imap-listscan.php + * @param resource $imap + * @param string $reference
+ * ref should normally be just the server + * specification as described in imap_open + *
+ * @param string $pattern Specifies where in the mailbox hierarchy + * to start searching.There are two special characters you can + * pass as part of the pattern: + * '*' and '%'. + * '*' means to return all mailboxes. If you pass + * pattern as '*', you will + * get a list of the entire mailbox hierarchy. + * '%' + * means to return the current level only. + * '%' as the pattern + * parameter will return only the top level + * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. + * @param string $content+ * The searched string + *
+ * @return array|false an array containing the names of the mailboxes that have + * content in the text of the mailbox. + */ +function imap_listscan(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern, string $content): array|false {} + +/** + * Copy specified messages to a mailbox + * @link https://php.net/manual/en/function.imap-mail-copy.php + * @param resource $imap + * @param string $message_nums+ * msglist is a range not just message + * numbers (as described in RFC2060). + *
+ * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param int $flags [optional]+ * options is a bitmask of one or more of + * CP_UID - the sequence numbers contain UIDS
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_mail_copy(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $message_nums, string $mailbox, int $flags = 0): bool {} + +/** + * Move specified messages to a mailbox + * @link https://php.net/manual/en/function.imap-mail-move.php + * @param resource $imap + * @param string $message_nums+ * msglist is a range not just message numbers + * (as described in RFC2060). + *
+ * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param int $flags [optional]+ * options is a bitmask and may contain the single option: + * CP_UID - the sequence numbers contain UIDS
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_mail_move(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $message_nums, string $mailbox, int $flags = 0): bool {} + +/** + * Create a MIME message based on given envelope and body sections + * @link https://php.net/manual/en/function.imap-mail-compose.php + * @param array $envelope+ * An associative array of headers fields. Valid keys are: "remail", + * "return_path", "date", "from", "reply_to", "in_reply_to", "subject", + * "to", "cc", "bcc", "message_id" and "custom_headers" (which contains + * associative array of other headers). + *
+ * @param array $bodies+ * An indexed array of bodies + *
+ *+ * A body is an associative array which can consist of the following keys: + * "type", "encoding", "charset", "type.parameters", "subtype", "id", + * "description", "disposition.type", "disposition", "contents.data", + * "lines", "bytes" and "md5". + *
+ * @return string|false the MIME message. + */ +function imap_mail_compose(array $envelope, array $bodies): string|false {} + +/** + * Create a new mailbox + * @link https://php.net/manual/en/function.imap-createmailbox.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information. Names containing international characters should be + * encoded by imap_utf7_encode + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_createmailbox(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): bool {} + +/** + * Rename an old mailbox to new mailbox + * @link https://php.net/manual/en/function.imap-renamemailbox.php + * @param resource $imap + * @param string $from+ * The old mailbox name, see imap_open for more + * information + *
+ * @param string $to+ * The new mailbox name, see imap_open for more + * information + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_renamemailbox(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $from, string $to): bool {} + +/** + * Delete a mailbox + * @link https://php.net/manual/en/function.imap-deletemailbox.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_deletemailbox(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): bool {} + +/** + * Subscribe to a mailbox + * @link https://php.net/manual/en/function.imap-subscribe.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_subscribe(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): bool {} + +/** + * Unsubscribe from a mailbox + * @link https://php.net/manual/en/function.imap-unsubscribe.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_unsubscribe(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): bool {} + +/** + * Append a string message to a specified mailbox + * @link https://php.net/manual/en/function.imap-append.php + * @param resource $imap + * @param string $folder+ * The mailbox name, see imap_open for more + * information + *
+ * @param string $message+ * The message to be append, as a string + *
+ *+ * When talking to the Cyrus IMAP server, you must use "\r\n" as + * your end-of-line terminator instead of "\n" or the operation will + * fail + *
+ * @param string $options [optional]+ * If provided, the options will also be written + * to the mailbox + *
+ * @param string $internal_date [optional]+ * If this parameter is set, it will set the INTERNALDATE on the appended message. The parameter should be a date string that conforms to the rfc2060 specifications for a date_time value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_append(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $folder, string $message, ?string $options = null, ?string $internal_date = null): bool {} + +/** + * Check if the IMAP stream is still active + * @link https://php.net/manual/en/function.imap-ping.php + * @param resource $imap + * @return bool TRUE if the stream is still alive, FALSE otherwise. + */ +function imap_ping(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): bool {} + +/** + * Decode BASE64 encoded text + * @link https://php.net/manual/en/function.imap-base64.php + * @param string $string+ * The encoded text + *
+ * @return string|false the decoded message as a string. + */ +function imap_base64(string $string): string|false {} + +/** + * Convert a quoted-printable string to an 8 bit string + * @link https://php.net/manual/en/function.imap-qprint.php + * @param string $string+ * A quoted-printable string + *
+ * @return string|false an 8 bits string. + */ +function imap_qprint(string $string): string|false {} + +/** + * Convert an 8bit string to a quoted-printable string + * @link https://php.net/manual/en/function.imap-8bit.php + * @param string $string+ * The 8bit string to convert + *
+ * @return string|false a quoted-printable string. + */ +function imap_8bit(string $string): string|false {} + +/** + * Convert an 8bit string to a base64 string + * @link https://php.net/manual/en/function.imap-binary.php + * @param string $string+ * The 8bit string + *
+ * @return string|false a base64 encoded string. + */ +function imap_binary(string $string): string|false {} + +/** + * Converts MIME-encoded text to UTF-8 + * @link https://php.net/manual/en/function.imap-utf8.php + * @param string $mime_encoded_text+ * A MIME encoded string. MIME encoding method and the UTF-8 + * specification are described in RFC2047 and RFC2044 respectively. + *
+ * @return string an UTF-8 encoded string. + */ +function imap_utf8(string $mime_encoded_text): string {} + +/** + * Returns status information on a mailbox + * @link https://php.net/manual/en/function.imap-status.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param int $flags+ * Valid flags are: + * SA_MESSAGES - set $status->messages to the + * number of messages in the mailbox + * @return object This function returns an object containing status information. + * The object has the following properties: messages, + * recent, unseen, + * uidnext, and uidvalidity. + *
+ *+ * flags is also set, which contains a bitmask which can + * be checked against any of the above constants.
+ */ +#[LanguageLevelTypeAware(['8.1' => 'stdClass|false'], default: 'object')] +function imap_status(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox, int $flags) {} + +/** + * @param $stream_id + * @param $options + */ +function imap_status_current($stream_id, $options) {} + +/** + * Get information about the current mailbox + * @link https://php.net/manual/en/function.imap-mailboxmsginfo.php + * @param resource $imap + * @return object|stdClass|false the information in an object with following properties: + *| Date | + *date of last change (current datetime) | + *
| Driver | + *driver | + *
| Mailbox | + *name of the mailbox | + *
| Nmsgs | + *number of messages | + *
| Recent | + *number of recent messages | + *
| Unread | + *number of unread messages | + *
| Deleted | + *number of deleted messages | + *
| Size | + *mailbox size | + *
+ * Returns FALSE on failure. + */ +function imap_mailboxmsginfo(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap): stdClass {} + +/** + * Sets flags on messages + * @link https://php.net/manual/en/function.imap-setflag-full.php + * @param resource $imap + * @param string $sequence
+ * A sequence of message numbers. You can enumerate desired messages + * with the X,Y syntax, or retrieve all messages + * within an interval with the X:Y syntax + *
+ * @param string $flag+ * The flags which you can set are \Seen, + * \Answered, \Flagged, + * \Deleted, and \Draft as + * defined by RFC2060. + *
+ * @param int $options [optional]+ * A bit mask that may contain the single option: + * ST_UID - The sequence argument contains UIDs + * instead of sequence numbers
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_setflag_full(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $sequence, string $flag, int $options = NIL) {} + +/** + * Clears flags on messages + * @link https://php.net/manual/en/function.imap-clearflag-full.php + * @param resource $imap + * @param string $sequence+ * A sequence of message numbers. You can enumerate desired messages + * with the X,Y syntax, or retrieve all messages + * within an interval with the X:Y syntax + *
+ * @param string $flag+ * The flags which you can unset are "\\Seen", "\\Answered", "\\Flagged", + * "\\Deleted", and "\\Draft" (as defined by RFC2060) + *
+ * @param int $options [optional]+ * options are a bit mask and may contain + * the single option: + * ST_UID - The sequence argument contains UIDs + * instead of sequence numbers
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function imap_clearflag_full(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $sequence, string $flag, int $options = 0) {} + +/** + * Gets and sort messages + * @link https://php.net/manual/en/function.imap-sort.php + * @param resource $imap + * @param int $criteria+ * Criteria can be one (and only one) of the following: + * SORTDATE - message Date
+ * @param bool $reverse+ * Set this to 1 for reverse sorting + *
+ * @param int $flags [optional]+ * The options are a bitmask of one or more of the + * following: + * SE_UID - Return UIDs instead of sequence numbers
+ * @param string|null $search_criteria [optional] + * @param string|null $charset [optional] + * @return array|false an array of message numbers sorted by the given + * parameters. + */ +function imap_sort( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + int $criteria, + #[LanguageLevelTypeAware(['8.0' => 'bool'], default: 'int')] $reverse, + int $flags = 0, + ?string $search_criteria = null, + ?string $charset = null +): array|false {} + +/** + * This function returns the UID for the given message sequence number + * @link https://php.net/manual/en/function.imap-uid.php + * @param resource $imap + * @param int $message_num+ * The message number. + *
+ * @return int|false The UID of the given message. + */ +function imap_uid(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $message_num): int|false {} + +/** + * Gets the message sequence number for the given UID + * @link https://php.net/manual/en/function.imap-msgno.php + * @param resource $imap + * @param int $message_uid+ * The message UID + *
+ * @return int the message sequence number for the given + * uid. + */ +function imap_msgno(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $message_uid): int {} + +/** + * Read the list of mailboxes + * @link https://php.net/manual/en/function.imap-list.php + * @param resource $imap + * @param string $reference+ * ref should normally be just the server + * specification as described in imap_open. + *
+ * @param string $pattern Specifies where in the mailbox hierarchy + * to start searching.There are two special characters you can + * pass as part of the pattern: + * '*' and '%'. + * '*' means to return all mailboxes. If you pass + * pattern as '*', you will + * get a list of the entire mailbox hierarchy. + * '%' + * means to return the current level only. + * '%' as the pattern + * parameter will return only the top level + * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. + * @return array|false an array containing the names of the mailboxes. + */ +function imap_list(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern): array|false {} + +/** + * List all the subscribed mailboxes + * @link https://php.net/manual/en/function.imap-lsub.php + * @param resource $imap + * @param string $reference+ * ref should normally be just the server + * specification as described in imap_open + *
+ * @param string $pattern Specifies where in the mailbox hierarchy + * to start searching.There are two special characters you can + * pass as part of the pattern: + * '*' and '%'. + * '*' means to return all mailboxes. If you pass + * pattern as '*', you will + * get a list of the entire mailbox hierarchy. + * '%' + * means to return the current level only. + * '%' as the pattern + * parameter will return only the top level + * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. + * @return array|false an array of all the subscribed mailboxes. + */ +function imap_lsub(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern): array|false {} + +/** + * Read an overview of the information in the headers of the given message + * @link https://php.net/manual/en/function.imap-fetch-overview.php + * @param resource $imap + * @param string $sequence+ * A message sequence description. You can enumerate desired messages + * with the X,Y syntax, or retrieve all messages + * within an interval with the X:Y syntax + *
+ * @param int $flags [optional]+ * sequence will contain a sequence of message + * indices or UIDs, if this parameter is set to + * FT_UID. + *
+ * @return array|false an array of objects describing one message header each. + * The object will only define a property if it exists. The possible + * properties are: + * subject - the messages subject + * from - who sent it + * to - recipient + * date - when was it sent + * message_id - Message-ID + * references - is a reference to this message id + * in_reply_to - is a reply to this message id + * size - size in bytes + * uid - UID the message has in the mailbox + * msgno - message sequence number in the mailbox + * recent - this message is flagged as recent + * flagged - this message is flagged + * answered - this message is flagged as answered + * deleted - this message is flagged for deletion + * seen - this message is flagged as already read + * draft - this message is flagged as being a draft + */ +function imap_fetch_overview(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $sequence, int $flags = 0): array|false {} + +/** + * Returns all IMAP alert messages that have occurred + * @link https://php.net/manual/en/function.imap-alerts.php + * @return array|false an array of all of the IMAP alert messages generated or FALSE if + * no alert messages are available. + */ +function imap_alerts(): array|false {} + +/** + * Returns all of the IMAP errors that have occurred + * @link https://php.net/manual/en/function.imap-errors.php + * @return array|false This function returns an array of all of the IMAP error messages + * generated since the last imap_errors call, + * or the beginning of the page. Returns FALSE if no error messages are + * available. + */ +function imap_errors(): array|false {} + +/** + * Gets the last IMAP error that occurred during this page request + * @link https://php.net/manual/en/function.imap-last-error.php + * @return string|false the full text of the last IMAP error message that occurred on the + * current page. Returns FALSE if no error messages are available. + */ +function imap_last_error(): string|false {} + +/** + * This function returns an array of messages matching the given search criteria + * @link https://php.net/manual/en/function.imap-search.php + * @param resource $imap + * @param string $criteria+ * A string, delimited by spaces, in which the following keywords are + * allowed. Any multi-word arguments (e.g. + * FROM "joey smith") must be quoted. Results will match + * all criteria entries. + * ALL - return all messages matching the rest of the criteria
+ * @param int $flags [optional]+ * Valid values for options are + * SE_UID, which causes the returned array to + * contain UIDs instead of messages sequence numbers. + *
+ * @param string $charset + * @return array|false an array of message numbers or UIDs. + *+ * Return FALSE if it does not understand the search + * criteria or no messages have been found. + *
+ */ +function imap_search( + #[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, + string $criteria, + int $flags = SE_FREE, + string $charset = "" +): array|false {} + +/** + * Decodes a modified UTF-7 encoded string + * @link https://php.net/manual/en/function.imap-utf7-decode.php + * @param string $string+ * A modified UTF-7 encoding string, as defined in RFC 2060, section 5.1.3 (original UTF-7 + * was defined in RFC1642). + *
+ * @return string|false a string that is encoded in ISO-8859-1 and consists of the same + * sequence of characters in text, or FALSE + * if text contains invalid modified UTF-7 sequence + * or text contains a character that is not part of + * ISO-8859-1 character set. + */ +function imap_utf7_decode(string $string): string|false {} + +/** + * Converts ISO-8859-1 string to modified UTF-7 text + * @link https://php.net/manual/en/function.imap-utf7-encode.php + * @param string $string+ * An ISO-8859-1 string. + *
+ * @return string data encoded with the modified UTF-7 + * encoding as defined in RFC 2060, + * section 5.1.3 (original UTF-7 was defined in RFC1642). + */ +function imap_utf7_encode(string $string): string {} + +/** + * Decode MIME header elements + * @link https://php.net/manual/en/function.imap-mime-header-decode.php + * @param string $string+ * The MIME text + *
+ * @return array|false The decoded elements are returned in an array of objects, where each + * object has two properties, charset and + * text. + * + *+ * If the element hasn't been encoded, and in other words is in + * plain US-ASCII, the charset property of that element is + * set to default. + */ +function imap_mime_header_decode(string $string): array|false {} + +/** + * Returns a tree of threaded message + * @link https://php.net/manual/en/function.imap-thread.php + * @param resource $imap + * @param int $flags [optional] + * @return array|false imap_thread returns an associative array containing + * a tree of messages threaded by REFERENCES, or FALSE + * on error. + *
+ *+ * Every message in the current mailbox will be represented by three entries + * in the resulting array: + *
+ * $thread["XX.num"] - current message number + *
+ *+ * $thread["XX.next"] + *
+ *+ * $thread["XX.branch"] + *
+ */ +function imap_thread(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $flags = SE_FREE): array|false {} + +/** + * Set or fetch imap timeout + * @link https://php.net/manual/en/function.imap-timeout.php + * @param int $timeout_type+ * One of the following: + * IMAP_OPENTIMEOUT, + * IMAP_READTIMEOUT, + * IMAP_WRITETIMEOUT, or + * IMAP_CLOSETIMEOUT. + *
+ * @param int $timeout [optional]+ * The timeout, in seconds. + *
+ * @return int|bool If the timeout parameter is set, this function + * returns TRUE on success and FALSE on failure. + * + *+ * If timeout is not provided or evaluates to -1, + * the current timeout value of timeout_type is + * returned as an integer. + */ +function imap_timeout(int $timeout_type, int $timeout = -1): int|bool {} + +/** + * Retrieve the quota level settings, and usage statics per mailbox + * @link https://php.net/manual/en/function.imap-get-quota.php + * @param resource $imap + * @param string $quota_root
+ * quota_root should normally be in the form of + * user.name where name is the mailbox you wish to + * retrieve information about. + *
+ * @return array|false an array with integer values limit and usage for the given + * mailbox. The value of limit represents the total amount of space + * allowed for this mailbox. The usage value represents the mailboxes + * current level of capacity. Will return FALSE in the case of failure. + * + *+ * As of PHP 4.3, the function more properly reflects the + * functionality as dictated by the RFC2087. + * The array return value has changed to support an unlimited number of returned + * resources (i.e. messages, or sub-folders) with each named resource receiving + * an individual array key. Each key value then contains an another array with + * the usage and limit values within it. + *
+ *+ * For backwards compatibility reasons, the original access methods are + * still available for use, although it is suggested to update. + */ +#[ArrayShape(["usage" => "int", "limit" => "int"])] +function imap_get_quota(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $quota_root): array|false {} + +/** + * Retrieve the quota settings per user + * @link https://php.net/manual/en/function.imap-get-quotaroot.php + * @param resource $imap + * @param string $mailbox
+ * quota_root should normally be in the form of + * which mailbox (i.e. INBOX). + *
+ * @return array|false an array of integer values pertaining to the specified user + * mailbox. All values contain a key based upon the resource name, and a + * corresponding array with the usage and limit values within. + * + *+ * This function will return FALSE in the case of call failure, and an + * array of information about the connection upon an un-parsable response + * from the server. + */ +function imap_get_quotaroot(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): array|false {} + +/** + * Sets a quota for a given mailbox + * @link https://php.net/manual/en/function.imap-set-quota.php + * @param resource $imap + * @param string $quota_root
+ * The mailbox to have a quota set. This should follow the IMAP standard + * format for a mailbox: user.name. + *
+ * @param int $mailbox_size+ * The maximum size (in KB) for the quota_root + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_set_quota(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $quota_root, int $mailbox_size): bool {} + +/** + * Sets the ACL for a given mailbox + * @link https://php.net/manual/en/function.imap-setacl.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @param string $user_id+ * The user to give the rights to. + *
+ * @param string $rights+ * The rights to give to the user. Passing an empty string will delete + * acl. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_setacl(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox, string $user_id, string $rights): bool {} + +/** + * Gets the ACL for a given mailbox + * @link https://php.net/manual/en/function.imap-getacl.php + * @param resource $imap + * @param string $mailbox+ * The mailbox name, see imap_open for more + * information + *
+ * @return array|false an associative array of "folder" => "acl" pairs. + */ +function imap_getacl(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): array|false {} + +/** + * @param $stream_id + * @param $mailbox + */ +function imap_myrights($stream_id, $mailbox) {} + +/** + * @param $stream_id + * @param $mailbox + * @param $entry + * @param $attr + * @param $value + */ +function imap_setannotation($stream_id, $mailbox, $entry, $attr, $value) {} + +/** + * @param $stream_id + * @param $mailbox + * @param $entry + * @param $attr + */ +function imap_getannotation($stream_id, $mailbox, $entry, $attr) {} + +/** + * Send an email message + * @link https://php.net/manual/en/function.imap-mail.php + * @param string $to+ * The receiver + *
+ * @param string $subject+ * The mail subject + *
+ * @param string $message+ * The mail body, see imap_mail_compose + *
+ * @param string $additional_headers [optional]+ * As string with additional headers to be set on the mail + *
+ * @param string $cc [optional] + * @param string $bcc [optional]+ * The receivers specified in bcc will get the + * mail, but are excluded from the headers. + *
+ * @param string $return_path [optional]+ * Use this parameter to specify return path upon mail delivery failure. + * This is useful when using PHP as a mail client for multiple users. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function imap_mail(string $to, string $subject, string $message, ?string $additional_headers = null, ?string $cc = null, ?string $bcc = null, ?string $return_path = null): bool {} + +/** + * Alias of imap_headerinfo + * @link https://php.net/manual/en/function.imap-header.php + * @param resource $stream_id An IMAP stream returned by imap_open(). + * @param int $msg_no The message number + * @param int $from_length [optional] Number of characters for the fetchfrom property. Must be greater than or equal to zero. + * @param int $subject_length [optional] Number of characters for the fetchsubject property Must be greater than or equal to zero. + * @param $default_host [optional] + * @return object Returns the information in an object with following properties: + *+ * ref should normally be just the server + * specification as described in imap_open + *
+ * @param string $pattern Specifies where in the mailbox hierarchy + * to start searching.There are two special characters you can + * pass as part of the pattern: + * '*' and '%'. + * '*' means to return all mailboxes. If you pass + * pattern as '*', you will + * get a list of the entire mailbox hierarchy. + * '%' + * means to return the current level only. + * '%' as the pattern + * parameter will return only the top level + * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. + * @return array|false an array of objects containing mailbox information. Each + * object has the attributes name, specifying + * the full name of the mailbox; delimiter, + * which is the hierarchy delimiter for the part of the hierarchy + * this mailbox is in; and + * attributes. Attributes + * is a bitmask that can be tested against: + *+ * LATT_NOINFERIORS - This mailbox contains, and may not contain any + * "children" (there are no mailboxes below this one). Calling + * imap_createmailbox will not work on this mailbox. + *
+ *+ * LATT_NOSELECT - This is only a container, + * not a mailbox - you cannot open it. + *
+ *+ * LATT_MARKED - This mailbox is marked. This means that it may + * contain new messages since the last time it was checked. Not provided by all IMAP + * servers. + *
+ *+ * LATT_UNMARKED - This mailbox is not marked, does not contain new + * messages. If either MARKED or UNMARKED is + * provided, you can assume the IMAP server supports this feature for this mailbox. + *
+ */ +function imap_getmailboxes(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern): array|false {} + +/** + * Alias of imap_listscan + * @link https://php.net/manual/en/function.imap-scanmailbox.php + * @param $imap + * @param $reference + * @param $pattern + * @param $content + */ +function imap_scanmailbox(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern, string $content): array|false {} + +/** + * Alias of imap_lsub + * @link https://php.net/manual/en/function.imap-listsubscribed.php + * @param resource $imap + * @param string $reference + * @param string $pattern + * @return array|false + */ +function imap_listsubscribed(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern): array|false {} + +/** + * List all the subscribed mailboxes + * @link https://php.net/manual/en/function.imap-getsubscribed.php + * @param resource $imap + * @param string $reference+ * ref should normally be just the server + * specification as described in imap_open + *
+ * @param string $pattern Specifies where in the mailbox hierarchy + * to start searching.There are two special characters you can + * pass as part of the pattern: + * '*' and '%'. + * '*' means to return all mailboxes. If you pass + * pattern as '*', you will + * get a list of the entire mailbox hierarchy. + * '%' + * means to return the current level only. + * '%' as the pattern + * parameter will return only the top level + * mailboxes; '~/mail/%' on UW_IMAPD will return every mailbox in the ~/mail directory, but none in subfolders of that directory. + * @return array|false an array of objects containing mailbox information. Each + * object has the attributes name, specifying + * the full name of the mailbox; delimiter, + * which is the hierarchy delimiter for the part of the hierarchy + * this mailbox is in; and + * attributes. Attributes + * is a bitmask that can be tested against: + * LATT_NOINFERIORS - This mailbox has no + * "children" (there are no mailboxes below this one). + * LATT_NOSELECT - This is only a container, + * not a mailbox - you cannot open it. + * LATT_MARKED - This mailbox is marked. + * Only used by UW-IMAPD. + * LATT_UNMARKED - This mailbox is not marked. + * Only used by UW-IMAPD. + */ +function imap_getsubscribed(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern): array|false {} + +/** + * (PHP 4, PHP 5)+ * @return string|false body of the specified message + */ +function imap_fetchtext(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, int $message_num, int $flags = 0): string|false {} + +/** + * Alias of imap_listscan + * @link https://php.net/manual/en/function.imap-scan.php + * @param $imap + * @param $reference + * @param $pattern + * @param $content + */ +function imap_scan(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $reference, string $pattern, string $content): array|false {} + +/** + * Alias of imap_createmailbox + * @link https://php.net/manual/en/function.imap-create.php + * @param $imap + * @param $mailbox + */ +function imap_create(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $mailbox): bool {} + +/** + * Alias of imap_renamemailbox + * @link https://php.net/manual/en/function.imap-rename.php + * @param $imap + * @param $from + * @param $to + */ +function imap_rename(#[LanguageLevelTypeAware(['8.1' => 'IMAP\Connection'], default: 'resource')] $imap, string $from, string $to): bool {} + +/** + * Decode a modified UTF-7 string to UTF-8 + * + * @link https://www.php.net/manual/en/function.imap-mutf7-to-utf8.php + * + * @param string $string + * @return string|false + */ +function imap_mutf7_to_utf8(string $string): string|false {} + +/** + * Encode a UTF-8 string to modified UTF-7 + * + * @link https://www.php.net/manual/en/function.imap-utf8-to-mutf7.php + * + * @param string $string + * @return string|false + */ +function imap_utf8_to_mutf7(string $string): string|false {} + +/** + * @since 8.2 + */ +function imap_is_open(IMAP\Connection $imap): bool {} + +/** + * @deprecated 8.1 + */ +define('NIL', 0); +define('IMAP_OPENTIMEOUT', 1); +define('IMAP_READTIMEOUT', 2); +define('IMAP_WRITETIMEOUT', 3); +define('IMAP_CLOSETIMEOUT', 4); +define('OP_DEBUG', 1); + +/** + * Open mailbox read-only + * @link https://php.net/manual/en/imap.constants.php + */ +define('OP_READONLY', 2); + +/** + * Don't use or update a .newsrc for news + * (NNTP only) + * @link https://php.net/manual/en/imap.constants.php + */ +define('OP_ANONYMOUS', 4); +define('OP_SHORTCACHE', 8); +define('OP_SILENT', 16); +define('OP_PROTOTYPE', 32); + +/** + * For IMAP and NNTP + * names, open a connection but don't open a mailbox. + * @link https://php.net/manual/en/imap.constants.php + */ +define('OP_HALFOPEN', 64); +define('OP_EXPUNGE', 128); +define('OP_SECURE', 256); + +/** + * silently expunge the mailbox before closing when + * calling imap_close + * @link https://php.net/manual/en/imap.constants.php + */ +define('CL_EXPUNGE', 32768); + +/** + * The parameter is a UID + * @link https://php.net/manual/en/imap.constants.php + */ +define('FT_UID', 1); + +/** + * Do not set the \Seen flag if not already set + * @link https://php.net/manual/en/imap.constants.php + */ +define('FT_PEEK', 2); +define('FT_NOT', 4); + +/** + * The return string is in internal format, will not canonicalize to CRLF. + * @link https://php.net/manual/en/imap.constants.php + */ +define('FT_INTERNAL', 8); +define('FT_PREFETCHTEXT', 32); + +/** + * The sequence argument contains UIDs instead of sequence numbers + * @link https://php.net/manual/en/imap.constants.php + */ +define('ST_UID', 1); +define('ST_SILENT', 2); +define('ST_SET', 4); + +/** + * the sequence numbers contain UIDS + * @link https://php.net/manual/en/imap.constants.php + */ +define('CP_UID', 1); + +/** + * Delete the messages from the current mailbox after copying + * with imap_mail_copy + * @link https://php.net/manual/en/imap.constants.php + */ +define('CP_MOVE', 2); + +/** + * Return UIDs instead of sequence numbers + * @link https://php.net/manual/en/imap.constants.php + */ +define('SE_UID', 1); +define('SE_FREE', 2); + +/** + * Don't prefetch searched messages + * @link https://php.net/manual/en/imap.constants.php + */ +define('SE_NOPREFETCH', 4); +define('SO_FREE', 8); +define('SO_NOSERVER', 8); +define('SA_MESSAGES', 1); +define('SA_RECENT', 2); +define('SA_UNSEEN', 4); +define('SA_UIDNEXT', 8); +define('SA_UIDVALIDITY', 16); +define('SA_ALL', 31); + +/** + * This mailbox has no "children" (there are no + * mailboxes below this one). + * @link https://php.net/manual/en/imap.constants.php + */ +define('LATT_NOINFERIORS', 1); + +/** + * This is only a container, not a mailbox - you + * cannot open it. + * @link https://php.net/manual/en/imap.constants.php + */ +define('LATT_NOSELECT', 2); + +/** + * This mailbox is marked. Only used by UW-IMAPD. + * @link https://php.net/manual/en/imap.constants.php + */ +define('LATT_MARKED', 4); + +/** + * This mailbox is not marked. Only used by + * UW-IMAPD. + * @link https://php.net/manual/en/imap.constants.php + */ +define('LATT_UNMARKED', 8); +define('LATT_REFERRAL', 16); +define('LATT_HASCHILDREN', 32); +define('LATT_HASNOCHILDREN', 64); + +/** + * Sort criteria for imap_sort: + * message Date + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTDATE', 0); + +/** + * Sort criteria for imap_sort: + * arrival date + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTARRIVAL', 1); + +/** + * Sort criteria for imap_sort: + * mailbox in first From address + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTFROM', 2); + +/** + * Sort criteria for imap_sort: + * message subject + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTSUBJECT', 3); + +/** + * Sort criteria for imap_sort: + * mailbox in first To address + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTTO', 4); + +/** + * Sort criteria for imap_sort: + * mailbox in first cc address + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTCC', 5); + +/** + * Sort criteria for imap_sort: + * size of message in octets + * @link https://php.net/manual/en/imap.constants.php + */ +define('SORTSIZE', 6); +define('TYPETEXT', 0); +define('TYPEMULTIPART', 1); +define('TYPEMESSAGE', 2); +define('TYPEAPPLICATION', 3); +define('TYPEAUDIO', 4); +define('TYPEIMAGE', 5); +define('TYPEVIDEO', 6); +define('TYPEMODEL', 7); +define('TYPEOTHER', 8); +define('ENC7BIT', 0); +define('ENC8BIT', 1); +define('ENCBINARY', 2); +define('ENCBASE64', 3); +define('ENCQUOTEDPRINTABLE', 4); +define('ENCOTHER', 5); + +/** + * Garbage collector, clear message cache elements. + * @link https://php.net/manual/en/imap.constants.php + */ +define('IMAP_GC_ELT', 1); + +/** + * Garbage collector, clear envelopes and bodies. + * @link https://php.net/manual/en/imap.constants.php + */ +define('IMAP_GC_ENV', 2); + +/** + * Garbage collector, clear texts. + * @link https://php.net/manual/en/imap.constants.php + */ +define('IMAP_GC_TEXTS', 4); diff --git a/phpstorm-stubs/inotify/inotify.php b/phpstorm-stubs/inotify/inotify.php new file mode 100644 index 0000000..116d4fe --- /dev/null +++ b/phpstorm-stubs/inotify/inotify.php @@ -0,0 +1,169 @@ + + * Add a watch to an initialized inotify instance + * + * @link https://php.net/manual/en/function.inotify-add-watch.php + * + * @param resource $inotify_instance
resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ * @param string $pathnameFile or directory to watch
+ * @param int $maskEvents to watch for. See {@link https://php.net/manual/en/inotify.constants.php Predefined Constants}.
+ * + * @return int a unique (inotify instance-wide) watch descriptor. + */ +function inotify_add_watch($inotify_instance, $pathname, $mask) {} + +/** + * (PHP >= 5.2.0, PECL inotify >= 0.1.2)resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ * + * @return int a number greater than zero if events are pending, otherwise zero. + */ +function inotify_queue_len($inotify_instance) {} + +/** + * (PHP >= 5.2.0, PECL inotify >= 0.1.2)resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ * + * @return array|false an array of inotify events or FALSE if no events + * were pending and inotify_instance is non-blocking. Each event + * is an array with the following keys: + * + *resource returned by {@link https://php.net/manual/en/function.inotify-init.php inotify_init()}
+ * @param int $maskwatch to remove from the instance
+ * + * @return bool TRUE on success or FALSE on failure. + */ +function inotify_rm_watch($inotify_instance, $mask) {} + +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ACCESS = 1; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MODIFY = 2; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ATTRIB = 4; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_CLOSE_WRITE = 8; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_CLOSE_NOWRITE = 16; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_OPEN = 32; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MOVED_FROM = 64; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MOVED_TO = 128; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_CREATE = 256; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_DELETE = 512; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_DELETE_SELF = 1024; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MOVE_SELF = 2048; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_UNMOUNT = 8192; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_Q_OVERFLOW = 16384; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_IGNORED = 32768; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_CLOSE = 24; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MOVE = 192; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ALL_EVENTS = 4095; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ONLYDIR = 16777216; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_DONT_FOLLOW = 33554432; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_MASK_ADD = 536870912; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ISDIR = 1073741824; +/** + * @link https://php.net/manual/en/inotify.constants.php + */ +const IN_ONESHOT = 2147483648; + +// End of inotify v.0.1.6 diff --git a/phpstorm-stubs/interbase/interbase.php b/phpstorm-stubs/interbase/interbase.php new file mode 100644 index 0000000..3dedfd8 --- /dev/null +++ b/phpstorm-stubs/interbase/interbase.php @@ -0,0 +1,1612 @@ + + * The database argument has to be a valid path to + * database file on the server it resides on. If the server is not local, + * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' + * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection + * protocol used. + * + * @param string $username [optional]+ * The user name. Can be set with the + * ibase.default_user &php.ini; directive. + *
+ * @param string $password [optional]+ * The password for username. Can be set with the + * ibase.default_password &php.ini; directive. + *
+ * @param string $charset [optional]+ * charset is the default character set for a + * database. + *
+ * @param int $buffers [optional]+ * buffers is the number of database buffers to + * allocate for the server-side cache. If 0 or omitted, server chooses + * its own default. + *
+ * @param int $dialect [optional]+ * dialect selects the default SQL dialect for any + * statement executed within a connection, and it defaults to the highest + * one supported by client libraries. Functional only with InterBase 6 + * and up. + *
+ * @param string $role [optional]+ * Functional only with InterBase 5 and up. + *
+ * @param int $sync [optional]+ *
+ * @return resource|false an InterBase link identifier on success, or false on error. + */ +function ibase_connect($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {} + +/** + * Open a persistent connection to an InterBase database + * @link https://php.net/manual/en/function.ibase-pconnect.php + * @param string $database [optional]+ * The database argument has to be a valid path to + * database file on the server it resides on. If the server is not local, + * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' + * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection + * protocol used. + *
+ * @param string $username [optional]+ * The user name. Can be set with the + * ibase.default_user &php.ini; directive. + *
+ * @param string $password [optional]+ * The password for username. Can be set with the + * ibase.default_password &php.ini; directive. + *
+ * @param string $charset [optional]+ * charset is the default character set for a + * database. + *
+ * @param int $buffers [optional]+ * buffers is the number of database buffers to + * allocate for the server-side cache. If 0 or omitted, server chooses + * its own default. + *
+ * @param int $dialect [optional]+ * dialect selects the default SQL dialect for any + * statement executed within a connection, and it defaults to the highest + * one supported by client libraries. Functional only with InterBase 6 + * and up. + *
+ * @param string $role [optional]+ * Functional only with InterBase 5 and up. + *
+ * @param int $sync [optional]+ *
+ * @return resource|false an InterBase link identifier on success, or false on error. + */ +function ibase_pconnect($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {} + +/** + * Close a connection to an InterBase database + * @link https://php.net/manual/en/function.ibase-close.php + * @param resource $connection_id [optional]+ * An InterBase link identifier returned from + * ibase_connect. If omitted, the last opened link + * is assumed. + *
+ * @return bool true on success or false on failure. + */ +function ibase_close($connection_id = null) {} + +/** + * Drops a database + * @link https://php.net/manual/en/function.ibase-drop-db.php + * @param resource $connection [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return bool true on success or false on failure. + */ +function ibase_drop_db($connection = null) {} + +/** + * Execute a query on an InterBase database + * @link https://php.net/manual/en/function.ibase-query.php + * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $query+ * An InterBase query. + *
+ * @param int $bind_args [optional]+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and + * there is a (possibly empty) result set (such as with a SELECT query), + * returns a result identifier. If the query was successful and there were + * no results, returns true. + * + *+ * In PHP 5.0.0 and up, this function will return the number of rows + * affected by the query for INSERT, UPDATE and DELETE statements. In order + * to retain backward compatibility, it will return true for these + * statements if the query succeeded without affecting any rows. + */ +function ibase_query($link_identifier = null, $query, $bind_args = null) {} + +/** + * Fetch a row from an InterBase database + * @link https://php.net/manual/en/function.ibase-fetch-row.php + * @param resource $result_identifier
+ * An InterBase result identifier. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return array|false an array that corresponds to the fetched row, or false if there + * are no more rows. Each result column is stored in an array offset, + * starting at offset 0. + */ +function ibase_fetch_row($result_identifier, $fetch_flag = null) {} + +/** + * Fetch a result row from a query as an associative array + * @link https://php.net/manual/en/function.ibase-fetch-assoc.php + * @param resource $result+ * The result handle. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return array|false an associative array that corresponds to the fetched row. + * Subsequent calls will return the next row in the result set, or false if + * there are no more rows. + */ +function ibase_fetch_assoc($result, $fetch_flag = null) {} + +/** + * Get an object from a InterBase database + * @link https://php.net/manual/en/function.ibase-fetch-object.php + * @param resource $result_id+ * An InterBase result identifier obtained either by + * ibase_query or ibase_execute. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return object|false an object with the next row information, or false if there are + * no more rows. + */ +function ibase_fetch_object($result_id, $fetch_flag = null) {} + +/** + * Free a result set + * @link https://php.net/manual/en/function.ibase-free-result.php + * @param resource $result_identifier+ * A result set created by ibase_query or + * ibase_execute. + *
+ * @return bool true on success or false on failure. + */ +function ibase_free_result($result_identifier) {} + +/** + * Assigns a name to a result set + * @link https://php.net/manual/en/function.ibase-name-result.php + * @param resource $result+ * An InterBase result set. + *
+ * @param string $name+ * The name to be assigned. + *
+ * @return bool true on success or false on failure. + */ +function ibase_name_result($result, $name) {} + +/** + * Prepare a query for later binding of parameter placeholders and execution + * @link https://php.net/manual/en/function.ibase-prepare.php + * @param string $query+ * An InterBase query. + *
+ * @return resource|false a prepared query handle, or false on error. + */ +function ibase_prepare($query) {} + +/** + * Execute a previously prepared query + * @link https://php.net/manual/en/function.ibase-execute.php + * @param resource $query+ * An InterBase query prepared by ibase_prepare. + *
+ * @param mixed ...$bind_arg [optional]+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and + * there is a (possibly empty) result set (such as with a SELECT query), + * returns a result identifier. If the query was successful and there were + * no results, returns true. + * + *+ * In PHP 5.0.0 and up, this function returns the number of rows affected by + * the query (if > 0 and applicable to the statement type). A query that + * succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent + * record) will return true. + */ +function ibase_execute($query, ...$bind_arg) {} + +/** + * Free memory allocated by a prepared query + * @link https://php.net/manual/en/function.ibase-free-query.php + * @param resource $query
+ * A query prepared with ibase_prepare. + *
+ * @return bool true on success or false on failure. + */ +function ibase_free_query($query) {} + +/** + * Increments the named generator and returns its new value + * @link https://php.net/manual/en/function.ibase-gen-id.php + * @param string $generator + * @param int $increment [optional] + * @param resource $link_identifier [optional] + * @return mixed new generator value as integer, or as string if the value is too big. + */ +function ibase_gen_id($generator, $increment = null, $link_identifier = null) {} + +/** + * Get the number of fields in a result set + * @link https://php.net/manual/en/function.ibase-num-fields.php + * @param resource $result_id+ * An InterBase result identifier. + *
+ * @return int the number of fields as an integer. + */ +function ibase_num_fields($result_id) {} + +/** + * Return the number of parameters in a prepared query + * @link https://php.net/manual/en/function.ibase-num-params.php + * @param resource $query+ * The prepared query handle. + *
+ * @return int the number of parameters as an integer. + */ +function ibase_num_params($query) {} + +/** + * Return the number of rows that were affected by the previous query + * @link https://php.net/manual/en/function.ibase-affected-rows.php + * @param resource $link_identifier [optional]+ * A transaction context. If link_identifier is a + * connection resource, its default transaction is used. + *
+ * @return int the number of rows as an integer. + */ +function ibase_affected_rows($link_identifier = null) {} + +/** + * Get information about a field + * @link https://php.net/manual/en/function.ibase-field-info.php + * @param resource $result+ * An InterBase result identifier. + *
+ * @param int $field_number+ * Field offset. + *
+ * @return array an array with the following keys: name, + * alias, relation, + * length and type. + */ +function ibase_field_info($result, $field_number) {} + +/** + * Return information about a parameter in a prepared query + * @link https://php.net/manual/en/function.ibase-param-info.php + * @param resource $query+ * An InterBase prepared query handle. + *
+ * @param int $param_number+ * Parameter offset. + *
+ * @return array an array with the following keys: name, + * alias, relation, + * length and type. + */ +function ibase_param_info($query, $param_number) {} + +/** + * Begin a transaction + * @link https://php.net/manual/en/function.ibase-trans.php + * @param int $trans_args [optional]+ * trans_args can be a combination of + * IBASE_READ, + * IBASE_WRITE, + * IBASE_COMMITTED, + * IBASE_CONSISTENCY, + * IBASE_CONCURRENCY, + * IBASE_REC_VERSION, + * IBASE_REC_NO_VERSION, + * IBASE_WAIT and + * IBASE_NOWAIT. + *
+ * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return resource|false a transaction handle, or false on error. + */ +function ibase_trans($trans_args = null, $link_identifier = null) {} + +/** + * Commit a transaction + * @link https://php.net/manual/en/function.ibase-commit.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function commits the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be committed. If the argument is a transaction identifier, the + * corresponding transaction will be committed. + *
+ * @return bool true on success or false on failure. + */ +function ibase_commit($link_or_trans_identifier = null) {} + +/** + * Roll back a transaction + * @link https://php.net/manual/en/function.ibase-rollback.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function rolls back the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be rolled back. If the argument is a transaction identifier, the + * corresponding transaction will be rolled back. + *
+ * @return bool true on success or false on failure. + */ +function ibase_rollback($link_or_trans_identifier = null) {} + +/** + * Commit a transaction without closing it + * @link https://php.net/manual/en/function.ibase-commit-ret.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function commits the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be committed. If the argument is a transaction identifier, the + * corresponding transaction will be committed. The transaction context + * will be retained, so statements executed from within this transaction + * will not be invalidated. + *
+ * @return bool true on success or false on failure. + */ +function ibase_commit_ret($link_or_trans_identifier = null) {} + +/** + * Roll back a transaction without closing it + * @link https://php.net/manual/en/function.ibase-rollback-ret.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function rolls back the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be rolled back. If the argument is a transaction identifier, the + * corresponding transaction will be rolled back. The transaction context + * will be retained, so statements executed from within this transaction + * will not be invalidated. + *
+ * @return bool true on success or false on failure. + */ +function ibase_rollback_ret($link_or_trans_identifier = null) {} + +/** + * Return blob length and other useful info + * @link https://php.net/manual/en/function.ibase-blob-info.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $blob_id+ * A BLOB id. + *
+ * @return array an array containing information about a BLOB. The information returned + * consists of the length of the BLOB, the number of segments it contains, the size + * of the largest segment, and whether it is a stream BLOB or a segmented BLOB. + */ +function ibase_blob_info($link_identifier, $blob_id) {} + +/** + * Create a new blob for adding data + * @link https://php.net/manual/en/function.ibase-blob-create.php + * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return resource|false a BLOB handle for later use with + * ibase_blob_add or false on failure. + */ +function ibase_blob_create($link_identifier = null) {} + +/** + * Add data into a newly created blob + * @link https://php.net/manual/en/function.ibase-blob-add.php + * @param resource $blob_handle+ * A blob handle opened with ibase_blob_create. + *
+ * @param string $data+ * The data to be added. + *
+ * @return void + */ +function ibase_blob_add($blob_handle, $data) {} + +/** + * Cancel creating blob + * @link https://php.net/manual/en/function.ibase-blob-cancel.php + * @param resource $blob_handle+ * A BLOB handle opened with ibase_blob_create. + *
+ * @return bool true on success or false on failure. + */ +function ibase_blob_cancel($blob_handle) {} + +/** + * Close blob + * @link https://php.net/manual/en/function.ibase-blob-close.php + * @param resource $blob_handle+ * A BLOB handle opened with ibase_blob_create or + * ibase_blob_open. + *
+ * @return mixed If the BLOB was being read, this function returns true on success, if + * the BLOB was being written to, this function returns a string containing + * the BLOB id that has been assigned to it by the database. On failure, this + * function returns false. + */ +function ibase_blob_close($blob_handle) {} + +/** + * Open blob for retrieving data parts + * @link https://php.net/manual/en/function.ibase-blob-open.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $blob_id+ * A BLOB id. + *
+ * @return resource|false a BLOB handle for later use with + * ibase_blob_get or false on failure. + */ +function ibase_blob_open($link_identifier, $blob_id) {} + +/** + * Get len bytes data from open blob + * @link https://php.net/manual/en/function.ibase-blob-get.php + * @param resource $blob_handle+ * A BLOB handle opened with ibase_blob_open. + *
+ * @param int $len+ * Size of returned data. + *
+ * @return string|false at most len bytes from the BLOB, or false + * on failure. + */ +function ibase_blob_get($blob_handle, $len) {} + +/** + * Output blob contents to browser + * @link https://php.net/manual/en/function.ibase-blob-echo.php + * @param string $blob_id+ *
+ * @return bool true on success or false on failure. + */ +function ibase_blob_echo($blob_id) {} + +/** + * Create blob, copy file in it, and close it + * @link https://php.net/manual/en/function.ibase-blob-import.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param resource $file_handle+ * The file handle is a handle returned by fopen. + *
+ * @return string|false the BLOB id on success, or false on error. + */ +function ibase_blob_import($link_identifier, $file_handle) {} + +/** + * Return error messages + * @link https://php.net/manual/en/function.ibase-errmsg.php + * @return string|false the error message as a string, or false if no error occurred. + */ +function ibase_errmsg() {} + +/** + * Return an error code + * @link https://php.net/manual/en/function.ibase-errcode.php + * @return int|false the error code as an integer, or false if no error occurred. + */ +function ibase_errcode() {} + +/** + * Add a user to a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.ibase-add-user.php + * @param resource $service_handle + * @param string $user_name + * @param string $password + * @param string $first_name [optional] + * @param string $middle_name [optional] + * @param string $last_name [optional] + * @return bool true on success or false on failure. + */ +function ibase_add_user($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {} + +/** + * Modify a user to a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.ibase-modify-user.php + * @param resource $service_handle + * @param string $user_name + * @param string $password + * @param string $first_name [optional] + * @param string $middle_name [optional] + * @param string $last_name [optional] + * @return bool true on success or false on failure. + */ +function ibase_modify_user($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {} + +/** + * Delete a user from a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.ibase-delete-user.php + * @param resource $service_handle + * @param string $user_name + * @return bool true on success or false on failure. + */ +function ibase_delete_user($service_handle, $user_name) {} + +/** + * Connect to the service manager + * @link https://php.net/manual/en/function.ibase-service-attach.php + * @param string $host + * @param string $dba_username + * @param string $dba_password + * @return resource|false + */ +function ibase_service_attach($host, $dba_username, $dba_password) {} + +/** + * Disconnect from the service manager + * @link https://php.net/manual/en/function.ibase-service-detach.php + * @param resource $service_handle + * @return bool true on success or false on failure. + */ +function ibase_service_detach($service_handle) {} + +/** + * Initiates a backup task in the service manager and returns immediately + * @link https://php.net/manual/en/function.ibase-backup.php + * @param resource $service_handle + * @param string $source_db + * @param string $dest_file + * @param int $options [optional] + * @param bool $verbose [optional] + * @return mixed + */ +function ibase_backup($service_handle, $source_db, $dest_file, $options = null, $verbose = null) {} + +/** + * Initiates a restore task in the service manager and returns immediately + * @link https://php.net/manual/en/function.ibase-restore.php + * @param resource $service_handle + * @param string $source_file + * @param string $dest_db + * @param int $options [optional] + * @param bool $verbose [optional] + * @return mixed + */ +function ibase_restore($service_handle, $source_file, $dest_db, $options = null, $verbose = null) {} + +/** + * Execute a maintenance command on the database server + * @link https://php.net/manual/en/function.ibase-maintain-db.php + * @param resource $service_handle + * @param string $db + * @param int $action + * @param int $argument [optional] + * @return bool true on success or false on failure. + */ +function ibase_maintain_db($service_handle, $db, $action, $argument = null) {} + +/** + * Request statistics about a database + * @link https://php.net/manual/en/function.ibase-db-info.php + * @param resource $service_handle + * @param string $db + * @param int $action + * @param int $argument [optional] + * @return string + */ +function ibase_db_info($service_handle, $db, $action, $argument = null) {} + +/** + * Request information about a database server + * @link https://php.net/manual/en/function.ibase-server-info.php + * @param resource $service_handle + * @param int $action + * @return string + */ +function ibase_server_info($service_handle, $action) {} + +/** + * Wait for an event to be posted by the database + * @link https://php.net/manual/en/function.ibase-wait-event.php + * @param string $event_name1+ * The event name. + *
+ * @param string $event_name2 [optional]+ *
+ * @param string ...$_ [optional] + * @return string the name of the event that was posted. + */ +function ibase_wait_event($event_name1, $event_name2 = null, ...$_) {} + +/** + * Register a callback function to be called when events are posted + * @link https://php.net/manual/en/function.ibase-set-event-handler.php + * @param callable $event_handler+ * The callback is called with the event name and the link resource as + * arguments whenever one of the specified events is posted by the + * database. + *
+ *+ * The callback must return false if the event handler should be + * canceled. Any other return value is ignored. This function accepts up + * to 15 event arguments. + *
+ * @param string $event_name1+ * An event name. + *
+ * @param string $event_name2 [optional]+ * At most 15 events allowed. + *
+ * @param string ...$_ [optional] + * @return resource The return value is an event resource. This resource can be used to free + * the event handler using ibase_free_event_handler. + */ +function ibase_set_event_handler($event_handler, $event_name1, $event_name2 = null, ...$_) {} + +/** + * Cancels a registered event handler + * @link https://php.net/manual/en/function.ibase-free-event-handler.php + * @param resource $event+ * An event resource, created by + * ibase_set_event_handler. + *
+ * @return bool true on success or false on failure. + */ +function ibase_free_event_handler($event) {} + +/** + * This is an alias of ibase_connect + * Open a connection to an InterBase database + * @link https://php.net/manual/en/function.fbird-connect.php + * @param string $database [optional]+ * The database argument has to be a valid path to + * database file on the server it resides on. If the server is not local, + * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' + * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection + * protocol used. + *
+ * @param string $username [optional]+ * The user name. Can be set with the + * fbird.default_user &php.ini; directive. + *
+ * @param string $password [optional]+ * The password for username. Can be set with the + * fbird.default_password &php.ini; directive. + *
+ * @param string $charset [optional]+ * charset is the default character set for a + * database. + *
+ * @param int $buffers [optional]+ * buffers is the number of database buffers to + * allocate for the server-side cache. If 0 or omitted, server chooses + * its own default. + *
+ * @param int $dialect [optional]+ * dialect selects the default SQL dialect for any + * statement executed within a connection, and it defaults to the highest + * one supported by client libraries. Functional only with InterBase 6 + * and up. + *
+ * @param string $role [optional]+ * Functional only with InterBase 5 and up. + *
+ * @param int $sync [optional]+ *
+ * @return resource|false an InterBase link identifier on success, or false on error. + */ +function fbird_connect($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {} + +/** + * This is an alias of ibase_pconnect + * Open a persistent connection to an InterBase database + * @link https://php.net/manual/en/function.fbird-pconnect.php + * @param string $database [optional]+ * The database argument has to be a valid path to + * database file on the server it resides on. If the server is not local, + * it must be prefixed with either 'hostname:' (TCP/IP), '//hostname/' + * (NetBEUI) or 'hostname@' (IPX/SPX), depending on the connection + * protocol used. + *
+ * @param string $username [optional]+ * The user name. Can be set with the + * fbird.default_user &php.ini; directive. + *
+ * @param string $password [optional]+ * The password for username. Can be set with the + * fbird.default_password &php.ini; directive. + *
+ * @param string $charset [optional]+ * charset is the default character set for a + * database. + *
+ * @param int $buffers [optional]+ * buffers is the number of database buffers to + * allocate for the server-side cache. If 0 or omitted, server chooses + * its own default. + *
+ * @param int $dialect [optional]+ * dialect selects the default SQL dialect for any + * statement executed within a connection, and it defaults to the highest + * one supported by client libraries. Functional only with InterBase 6 + * and up. + *
+ * @param string $role [optional]+ * Functional only with InterBase 5 and up. + *
+ * @param int $sync [optional]+ *
+ * @return resource|false an InterBase link identifier on success, or false on error. + */ +function fbird_pconnect($database = null, $username = null, $password = null, $charset = null, $buffers = null, $dialect = null, $role = null, $sync = null) {} + +/** + * This is an alias of ibase_close + * Close a connection to an InterBase database + * @link https://php.net/manual/en/function.fbird-close.php + * @param resource $connection_id [optional]+ * An InterBase link identifier returned from + * fbird_connect. If omitted, the last opened link + * is assumed. + *
+ * @return bool true on success or false on failure. + */ +function fbird_close($connection_id = null) {} + +/** + * This is an alias of ibase_drop_db + * Drops a database + * @link https://php.net/manual/en/function.fbird-drop-db.php + * @param resource $connection [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return bool true on success or false on failure. + */ +function fbird_drop_db($connection = null) {} + +/** + * This is an alias of ibase_query + * Execute a query on an InterBase database + * @link https://php.net/manual/en/function.fbird-query.php + * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $query+ * An InterBase query. + *
+ * @param int $bind_args [optional]+ *
+ * @return resource|bool If the query raises an error, returns false. If it is successful and + * there is a (possibly empty) result set (such as with a SELECT query), + * returns a result identifier. If the query was successful and there were + * no results, returns true. + * + *+ * In PHP 5.0.0 and up, this function will return the number of rows + * affected by the query for INSERT, UPDATE and DELETE statements. In order + * to retain backward compatibility, it will return true for these + * statements if the query succeeded without affecting any rows. + */ +function fbird_query($link_identifier = null, $query, $bind_args = null) {} + +/** + * This is an alias of ibase_fetch_row + * Fetch a row from an InterBase database + * @link https://php.net/manual/en/function.fbird-fetch-row.php + * @param resource $result_identifier
+ * An InterBase result identifier. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return array|false an array that corresponds to the fetched row, or false if there + * are no more rows. Each result column is stored in an array offset, + * starting at offset 0. + */ +function fbird_fetch_row($result_identifier, $fetch_flag = null) {} + +/** + * This is an alias of ibase_fetch_assoc + * Fetch a result row from a query as an associative array + * @link https://php.net/manual/en/function.fbird-fetch-assoc.php + * @param resource $result+ * The result handle. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return array|false an associative array that corresponds to the fetched row. + * Subsequent calls will return the next row in the result set, or false if + * there are no more rows. + */ +function fbird_fetch_assoc($result, $fetch_flag = null) {} + +/** + * This is an alias of ibase_fetch_object + * Get an object from a InterBase database + * @link https://php.net/manual/en/function.fbird-fetch-object.php + * @param resource $result_id+ * An InterBase result identifier obtained either by + * fbird_query or fbird_execute. + *
+ * @param int $fetch_flag [optional]+ * fetch_flag is a combination of the constants + * IBASE_TEXT and IBASE_UNIXTIME + * ORed together. Passing IBASE_TEXT will cause this + * function to return BLOB contents instead of BLOB ids. Passing + * IBASE_UNIXTIME will cause this function to return + * date/time values as Unix timestamps instead of as formatted strings. + *
+ * @return object|false an object with the next row information, or false if there are + * no more rows. + */ +function fbird_fetch_object($result_id, $fetch_flag = null) {} + +/** + * This is an alias of ibase_free_result + * Free a result set + * @link https://php.net/manual/en/function.fbird-free-result.php + * @param resource $result_identifier+ * A result set created by fbird_query or + * fbird_execute. + *
+ * @return bool true on success or false on failure. + */ +function fbird_free_result($result_identifier) {} + +/** + * This is an alias of ibase_name_result + * Assigns a name to a result set + * @link https://php.net/manual/en/function.fbird-name-result.php + * @param resource $result+ * An InterBase result set. + *
+ * @param string $name+ * The name to be assigned. + *
+ * @return bool true on success or false on failure. + */ +function fbird_name_result($result, $name) {} + +/** + * This is an alias of ibase_prepare + * Prepare a query for later binding of parameter placeholders and execution + * @link https://php.net/manual/en/function.fbird-prepare.php + * @param string $query+ * An InterBase query. + *
+ * @return resource|false a prepared query handle, or false on error. + */ +function fbird_prepare($query) {} + +/** + * This is an alias of ibase_execute + * Execute a previously prepared query + * @link https://php.net/manual/en/function.fbird-execute.php + * @param resource $query+ * An InterBase query prepared by fbird_prepare. + *
+ * @param mixed ...$bind_arg [optional] + * @return resource|boolIf the query raises an error, returns false. If it is successful and + * there is a (possibly empty) result set (such as with a SELECT query), + * returns a result identifier. If the query was successful and there were + * no results, returns true. + *
+ *+ * In PHP 5.0.0 and up, this function returns the number of rows affected by + * the query (if > 0 and applicable to the statement type). A query that + * succeeded, but did not affect any rows (e.g. an UPDATE of a non-existent + * record) will return true.
+ */ +function fbird_execute($query, ...$bind_arg) {} + +/** + * This is an alias of ibase_free_query + * Free memory allocated by a prepared query + * @link https://php.net/manual/en/function.fbird-free-query.php + * @param resource $query+ * A query prepared with fbird_prepare. + *
+ * @return bool true on success or false on failure. + */ +function fbird_free_query($query) {} + +/** + * This is an alias of ibase_gen_id + * Increments the named generator and returns its new value + * @link https://php.net/manual/en/function.fbird-gen-id.php + * @param string $generator + * @param int $increment [optional] + * @param resource $link_identifier [optional] + * @return mixed new generator value as integer, or as string if the value is too big. + */ +function fbird_gen_id($generator, $increment = null, $link_identifier = null) {} + +/** + * This is an alias of ibase_num_fields + * Get the number of fields in a result set + * @link https://php.net/manual/en/function.fbird-num-fields.php + * @param resource $result_id+ * An InterBase result identifier. + *
+ * @return int the number of fields as an integer. + */ +function fbird_num_fields($result_id) {} + +/** + * This is an alias of ibase_num_params + * Return the number of parameters in a prepared query + * @link https://php.net/manual/en/function.fbird-num-params.php + * @param resource $query+ * The prepared query handle. + *
+ * @return int the number of parameters as an integer. + */ +function fbird_num_params($query) {} + +/** + * This is an alias of ibase_affected_rows + * Return the number of rows that were affected by the previous query + * @link https://php.net/manual/en/function.fbird-affected-rows.php + * @param resource $link_identifier [optional]+ * A transaction context. If link_identifier is a + * connection resource, its default transaction is used. + *
+ * @return int the number of rows as an integer. + */ +function fbird_affected_rows($link_identifier = null) {} + +/** + * This is an alias of ibase_field_info + * Get information about a field + * @link https://php.net/manual/en/function.fbird-field-info.php + * @param resource $result+ * An InterBase result identifier. + *
+ * @param int $field_number+ * Field offset. + *
+ * @return array an array with the following keys: name, + * alias, relation, + * length and type. + */ +function fbird_field_info($result, $field_number) {} + +/** + * This is an alias of ibase_param_info + * Return information about a parameter in a prepared query + * @link https://php.net/manual/en/function.fbird-param-info.php + * @param resource $query+ * An InterBase prepared query handle. + *
+ * @param int $param_number+ * Parameter offset. + *
+ * @return array an array with the following keys: name, + * alias, relation, + * length and type. + */ +function fbird_param_info($query, $param_number) {} + +/** + * This is an alias of ibase_trans + * Begin a transaction + * @link https://php.net/manual/en/function.fbird-trans.php + * @param int $trans_args [optional]+ * trans_args can be a combination of + * IBASE_READ, + * IBASE_WRITE, + * IBASE_COMMITTED, + * IBASE_CONSISTENCY, + * IBASE_CONCURRENCY, + * IBASE_REC_VERSION, + * IBASE_REC_NO_VERSION, + * IBASE_WAIT and + * IBASE_NOWAIT. + *
+ * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return resource|false a transaction handle, or false on error. + */ +function fbird_trans($trans_args = null, $link_identifier = null) {} + +/** + * This is an alias of ibase_commit + * Commit a transaction + * @link https://php.net/manual/en/function.fbird-commit.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function commits the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be committed. If the argument is a transaction identifier, the + * corresponding transaction will be committed. + *
+ * @return bool true on success or false on failure. + */ +function fbird_commit($link_or_trans_identifier = null) {} + +/** + * This is an alias of ibase_rollback + * Roll back a transaction + * @link https://php.net/manual/en/function.fbird-rollback.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function rolls back the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be rolled back. If the argument is a transaction identifier, the + * corresponding transaction will be rolled back. + *
+ * @return bool true on success or false on failure. + */ +function fbird_rollback($link_or_trans_identifier = null) {} + +/** + * This is an alias of ibase_commit_ret + * Commit a transaction without closing it + * @link https://php.net/manual/en/function.fbird-commit-ret.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function commits the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be committed. If the argument is a transaction identifier, the + * corresponding transaction will be committed. The transaction context + * will be retained, so statements executed from within this transaction + * will not be invalidated. + *
+ * @return bool true on success or false on failure. + */ +function fbird_commit_ret($link_or_trans_identifier = null) {} + +/** + * This is an alias of ibase_rollback_ret + * Roll back a transaction without closing it + * @link https://php.net/manual/en/function.fbird-rollback-ret.php + * @param resource $link_or_trans_identifier [optional]+ * If called without an argument, this function rolls back the default + * transaction of the default link. If the argument is a connection + * identifier, the default transaction of the corresponding connection + * will be rolled back. If the argument is a transaction identifier, the + * corresponding transaction will be rolled back. The transaction context + * will be retained, so statements executed from within this transaction + * will not be invalidated. + *
+ * @return bool true on success or false on failure. + */ +function fbird_rollback_ret($link_or_trans_identifier = null) {} + +/** + * This is an alias of ibase_blob_info + * Return blob length and other useful info + * @link https://php.net/manual/en/function.fbird-blob-info.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $blob_id+ * A BLOB id. + *
+ * @return array an array containing information about a BLOB. The information returned + * consists of the length of the BLOB, the number of segments it contains, the size + * of the largest segment, and whether it is a stream BLOB or a segmented BLOB. + */ +function fbird_blob_info($link_identifier, $blob_id) {} + +/** + * This is an alias of ibase_blob_create + * Create a new blob for adding data + * @link https://php.net/manual/en/function.fbird-blob-create.php + * @param resource $link_identifier [optional]+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @return resource|false a BLOB handle for later use with + * fbird_blob_add or false on failure. + */ +function fbird_blob_create($link_identifier = null) {} + +/** + * This is an alias of ibase_blob_add + * Add data into a newly created blob + * @link https://php.net/manual/en/function.fbird-blob-add.php + * @param resource $blob_handle+ * A blob handle opened with fbird_blob_create. + *
+ * @param string $data+ * The data to be added. + *
+ * @return void + */ +function fbird_blob_add($blob_handle, $data) {} + +/** + * This is an alias of ibase_blob_cancel + * Cancel creating blob + * @link https://php.net/manual/en/function.fbird-blob-cancel.php + * @param resource $blob_handle+ * A BLOB handle opened with fbird_blob_create. + *
+ * @return bool true on success or false on failure. + */ +function fbird_blob_cancel($blob_handle) {} + +/** + * This is an alias of ibase_blob_close + * Close blob + * @link https://php.net/manual/en/function.fbird-blob-close.php + * @param resource $blob_handle+ * A BLOB handle opened with fbird_blob_create or + * fbird_blob_open. + *
+ * @return mixed If the BLOB was being read, this function returns true on success, if + * the BLOB was being written to, this function returns a string containing + * the BLOB id that has been assigned to it by the database. On failure, this + * function returns false. + */ +function fbird_blob_close($blob_handle) {} + +/** + * This is an alias of ibase_blob_open + * Open blob for retrieving data parts + * @link https://php.net/manual/en/function.fbird-blob-open.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param string $blob_id+ * A BLOB id. + *
+ * @return resource|false a BLOB handle for later use with + * fbird_blob_get or false on failure. + */ +function fbird_blob_open($link_identifier, $blob_id) {} + +/** + * This is an alias of ibase_blob_get + * Get len bytes data from open blob + * @link https://php.net/manual/en/function.fbird-blob-get.php + * @param resource $blob_handle+ * A BLOB handle opened with fbird_blob_open. + *
+ * @param int $len+ * Size of returned data. + *
+ * @return string|false at most len bytes from the BLOB, or false + * on failure. + */ +function fbird_blob_get($blob_handle, $len) {} + +/** + * This is an alias of ibase_blob_echo + * Output blob contents to browser + * @link https://php.net/manual/en/function.fbird-blob-echo.php + * @param string $blob_id+ *
+ * @return bool true on success or false on failure. + */ +function fbird_blob_echo($blob_id) {} + +/** + * This is an alias of ibase_blob_import + * Create blob, copy file in it, and close it + * @link https://php.net/manual/en/function.fbird-blob-import.php + * @param resource $link_identifier+ * An InterBase link identifier. If omitted, the last opened link is + * assumed. + *
+ * @param resource $file_handle+ * The file handle is a handle returned by fopen. + *
+ * @return string|false the BLOB id on success, or false on error. + */ +function fbird_blob_import($link_identifier, $file_handle) {} + +/** + * This is an alias of ibase_errmsg + * Return error messages + * @link https://php.net/manual/en/function.fbird-errmsg.php + * @return string|false the error message as a string, or false if no error occurred. + */ +function fbird_errmsg() {} + +/** + * This is an alias of ibase_errcode + * Return an error code + * @link https://php.net/manual/en/function.fbird-errcode.php + * @return int|false the error code as an integer, or false if no error occurred. + */ +function fbird_errcode() {} + +/** + * This is an alias of ibase_add_user + * Add a user to a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.fbird-add-user.php + * @param resource $service_handle + * @param string $user_name + * @param string $password + * @param string $first_name [optional] + * @param string $middle_name [optional] + * @param string $last_name [optional] + * @return bool true on success or false on failure. + */ +function fbird_add_user($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {} + +/** + * This is an alias of ibase_modify_user + * Modify a user to a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.fbird-modify-user.php + * @param resource $service_handle + * @param string $user_name + * @param string $password + * @param string $first_name [optional] + * @param string $middle_name [optional] + * @param string $last_name [optional] + * @return bool true on success or false on failure. + */ +function fbird_modify_user($service_handle, $user_name, $password, $first_name = null, $middle_name = null, $last_name = null) {} + +/** + * This is an alias of ibase_delete_user + * Delete a user from a security database (only for IB6 or later) + * @link https://php.net/manual/en/function.fbird-delete-user.php + * @param resource $service_handle + * @param string $user_name + * @return bool true on success or false on failure. + */ +function fbird_delete_user($service_handle, $user_name) {} + +/** + * This is an alias of ibase_service_attach + * Connect to the service manager + * @link https://php.net/manual/en/function.fbird-service-attach.php + * @param string $host + * @param string $dba_username + * @param string $dba_password + * @return resource|false + */ +function fbird_service_attach($host, $dba_username, $dba_password) {} + +/** + * This is an alias of ibase_service_detach + * Disconnect from the service manager + * @link https://php.net/manual/en/function.fbird-service-detach.php + * @param resource $service_handle + * @return bool true on success or false on failure. + */ +function fbird_service_detach($service_handle) {} + +/** + * This is an alias of ibase_backup + * Initiates a backup task in the service manager and returns immediately + * @link https://php.net/manual/en/function.fbird-backup.php + * @param resource $service_handle + * @param string $source_db + * @param string $dest_file + * @param int $options [optional] + * @param bool $verbose [optional] + * @return mixed + */ +function fbird_backup($service_handle, $source_db, $dest_file, $options = null, $verbose = null) {} + +/** + * This is an alias of ibase_restore + * Initiates a restore task in the service manager and returns immediately + * @link https://php.net/manual/en/function.fbird-restore.php + * @param resource $service_handle + * @param string $source_file + * @param string $dest_db + * @param int $options [optional] + * @param bool $verbose [optional] + * @return mixed + */ +function fbird_restore($service_handle, $source_file, $dest_db, $options = null, $verbose = null) {} + +/** + * This is an alias of ibase_maintain_db + * Execute a maintenance command on the database server + * @link https://php.net/manual/en/function.fbird-maintain-db.php + * @param resource $service_handle + * @param string $db + * @param int $action + * @param int $argument [optional] + * @return bool true on success or false on failure. + */ +function fbird_maintain_db($service_handle, $db, $action, $argument = null) {} + +/** + * This is an alias of ibase_db_info + * Request statistics about a database + * @link https://php.net/manual/en/function.fbird-db-info.php + * @param resource $service_handle + * @param string $db + * @param int $action + * @param int $argument [optional] + * @return string + */ +function fbird_db_info($service_handle, $db, $action, $argument = null) {} + +/** + * This is an alias of ibase_server_info + * Request information about a database server + * @link https://php.net/manual/en/function.fbird-server-info.php + * @param resource $service_handle + * @param int $action + * @return string + */ +function fbird_server_info($service_handle, $action) {} + +/** + * This is an alias of ibase_wait_event + * Wait for an event to be posted by the database + * @link https://php.net/manual/en/function.fbird-wait-event.php + * @param string $event_name1+ * The event name. + *
+ * @param string $event_name2 [optional]+ *
+ * @param string ...$_ [optional] + * @return string the name of the event that was posted. + */ +function fbird_wait_event($event_name1, $event_name2 = null, ...$_) {} + +/** + * This is an alias of ibase_set_event_handler + * Register a callback function to be called when events are posted + * @link https://php.net/manual/en/function.fbird-set-event-handler.php + * @param callable $event_handler+ * The callback is called with the event name and the link resource as + * arguments whenever one of the specified events is posted by the + * database. + *
+ *+ * The callback must return false if the event handler should be + * canceled. Any other return value is ignored. This function accepts up + * to 15 event arguments. + *
+ * @param string $event_name1+ * An event name. + *
+ * @param string $event_name2 [optional]+ * At most 15 events allowed. + *
+ * @param string ...$_ [optional] + * @return resource The return value is an event resource. This resource can be used to free + * the event handler using fbird_free_event_handler. + */ +function fbird_set_event_handler($event_handler, $event_name1, $event_name2 = null, ...$_) {} + +/** + * This is an alias of ibase_free_event_handler + * Cancels a registered event handler + * @link https://php.net/manual/en/function.fbird-free-event-handler.php + * @param resource $event+ * An event resource, created by + * fbird_set_event_handler. + *
+ * @return bool true on success or false on failure. + */ +function fbird_free_event_handler($event) {} + +/** + * The default transaction settings are to be used. + * This default is determined by the client library, which defines it as IBASE_WRITE|IBASE_CONCURRENCY|IBASE_WAIT in most cases. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_DEFAULT', 0); +/** + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_CREATE', 0); +/** + * Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_TEXT', 1); +/** + * Also available as IBASE_TEXT for backward compatibility. + * Causes BLOB contents to be fetched inline, instead of being fetched as BLOB identifiers. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_FETCH_BLOBS', 1); +/** + * Causes arrays to be fetched inline. Otherwise, array identifiers are returned. + * Array identifiers can only be used as arguments to INSERT operations, as no functions to handle array identifiers are currently available. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_FETCH_ARRAYS', 2); +/** + * Causes date and time fields not to be returned as strings, but as UNIX timestamps (the number of seconds since the epoch, which is 1-Jan-1970 0:00 UTC). + * Might be problematic if used with dates before 1970 on some systems. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_UNIXTIME', 4); +/** + * Starts a read-write transaction. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_WRITE', 1); +/** + * Starts a read-only transaction. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_READ', 2); +/** + * Starts a transaction with the isolation level set to 'read committed'. + * This flag should be combined with either IBASE_REC_VERSION or IBASE_REC_NO_VERSION. + * This isolation level allows access to changes that were committed after the transaction was started. + * If IBASE_REC_NO_VERSION was specified, only the latest version of a row can be read. + * If IBASE_REC_VERSION was specified, a row can even be read when a modification to it is pending in a concurrent transaction. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_COMMITTED', 8); +/** + * Starts a transaction with the isolation level set to 'consistency', + * which means the transaction cannot read from tables that are being modified by other concurrent transactions. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_CONSISTENCY', 16); +/** + * Starts a transaction with the isolation level set to 'concurrency' (or 'snapshot'), + * which means the transaction has access to all tables, + * but cannot see changes that were committed by other transactions after the transaction was started. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_CONCURRENCY', 4); +/** + * Row can even be read when a modification to it is pending in a concurrent transaction. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_REC_VERSION', 64); +/** + * Only the latest version of a row can be read + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_REC_NO_VERSION', 32); +/** + * Indicated that a transaction should fail immediately when a conflict occurs. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_NOWAIT', 256); +/** + * Indicated that a transaction should wait and retry when a conflict occurs. + * @link https://www.php.net/manual/en/ibase.constants.php + */ +define('IBASE_WAIT', 128); +define('IBASE_BKP_IGNORE_CHECKSUMS', 1); +define('IBASE_BKP_IGNORE_LIMBO', 2); +define('IBASE_BKP_METADATA_ONLY', 4); +define('IBASE_BKP_NO_GARBAGE_COLLECT', 8); +define('IBASE_BKP_OLD_DESCRIPTIONS', 16); +define('IBASE_BKP_NON_TRANSPORTABLE', 32); + +/** + * Options to ibase_backup + * @link https://php.net/manual/en/ibase.constants.php + */ +define('IBASE_BKP_CONVERT', 64); +define('IBASE_RES_DEACTIVATE_IDX', 256); +define('IBASE_RES_NO_SHADOW', 512); +define('IBASE_RES_NO_VALIDITY', 1024); +define('IBASE_RES_ONE_AT_A_TIME', 2048); +define('IBASE_RES_REPLACE', 4096); +define('IBASE_RES_CREATE', 8192); + +/** + * Options to ibase_restore + * @link https://php.net/manual/en/ibase.constants.php + */ +define('IBASE_RES_USE_ALL_SPACE', 16384); +define('IBASE_PRP_PAGE_BUFFERS', 5); +define('IBASE_PRP_SWEEP_INTERVAL', 6); +define('IBASE_PRP_SHUTDOWN_DB', 7); +define('IBASE_PRP_DENY_NEW_TRANSACTIONS', 10); +define('IBASE_PRP_DENY_NEW_ATTACHMENTS', 9); +define('IBASE_PRP_RESERVE_SPACE', 11); +define('IBASE_PRP_RES_USE_FULL', 35); +define('IBASE_PRP_RES', 36); +define('IBASE_PRP_WRITE_MODE', 12); +define('IBASE_PRP_WM_ASYNC', 37); +define('IBASE_PRP_WM_SYNC', 38); +define('IBASE_PRP_ACCESS_MODE', 13); +define('IBASE_PRP_AM_READONLY', 39); +define('IBASE_PRP_AM_READWRITE', 40); +define('IBASE_PRP_SET_SQL_DIALECT', 14); +define('IBASE_PRP_ACTIVATE', 256); +define('IBASE_PRP_DB_ONLINE', 512); +define('IBASE_RPR_CHECK_DB', 16); +define('IBASE_RPR_IGNORE_CHECKSUM', 32); +define('IBASE_RPR_KILL_SHADOWS', 64); +define('IBASE_RPR_MEND_DB', 4); +define('IBASE_RPR_VALIDATE_DB', 1); +define('IBASE_RPR_FULL', 128); + +/** + * Options to ibase_maintain_db + * @link https://php.net/manual/en/ibase.constants.php + */ +define('IBASE_RPR_SWEEP_DB', 2); +define('IBASE_STS_DATA_PAGES', 1); +define('IBASE_STS_DB_LOG', 2); +define('IBASE_STS_HDR_PAGES', 4); +define('IBASE_STS_IDX_PAGES', 8); + +/** + * Options to ibase_db_info + * @link https://php.net/manual/en/ibase.constants.php + */ +define('IBASE_STS_SYS_RELATIONS', 16); +define('IBASE_SVC_SERVER_VERSION', 55); +define('IBASE_SVC_IMPLEMENTATION', 56); +define('IBASE_SVC_GET_ENV', 59); +define('IBASE_SVC_GET_ENV_LOCK', 60); +define('IBASE_SVC_GET_ENV_MSG', 61); +define('IBASE_SVC_USER_DBPATH', 58); +define('IBASE_SVC_SVR_DB_INFO', 50); + +/** + * Options to ibase_server_info + * @link https://php.net/manual/en/ibase.constants.php + */ +define('IBASE_SVC_GET_USERS', 68); + +// End of interbase v. diff --git a/phpstorm-stubs/intl/IntlChar.php b/phpstorm-stubs/intl/IntlChar.php new file mode 100644 index 0000000..25fc911 --- /dev/null +++ b/phpstorm-stubs/intl/IntlChar.php @@ -0,0 +1,1488 @@ +IntlChar provides access to a number of utility methods that can be used to access information about Unicode characters. + *The methods and constants adhere closely to the names and behavior used by the underlying ICU library.
+ * @since 7.0 + */ +class IntlChar +{ + public const UNICODE_VERSION = 13.0; + public const CODEPOINT_MIN = 0; + public const CODEPOINT_MAX = 1114111; + public const FOLD_CASE_DEFAULT = 0; + public const FOLD_CASE_EXCLUDE_SPECIAL_I = 1; + public const PROPERTY_ALPHABETIC = 0; + public const PROPERTY_BINARY_START = 0; + public const PROPERTY_ASCII_HEX_DIGIT = 1; + public const PROPERTY_BIDI_CONTROL = 2; + public const PROPERTY_BIDI_MIRRORED = 3; + public const PROPERTY_DASH = 4; + public const PROPERTY_DEFAULT_IGNORABLE_CODE_POINT = 5; + public const PROPERTY_DEPRECATED = 6; + public const PROPERTY_DIACRITIC = 7; + public const PROPERTY_EXTENDER = 8; + public const PROPERTY_FULL_COMPOSITION_EXCLUSION = 9; + public const PROPERTY_GRAPHEME_BASE = 10; + public const PROPERTY_GRAPHEME_EXTEND = 11; + public const PROPERTY_GRAPHEME_LINK = 12; + public const PROPERTY_HEX_DIGIT = 13; + public const PROPERTY_HYPHEN = 14; + public const PROPERTY_ID_CONTINUE = 15; + public const PROPERTY_ID_START = 16; + public const PROPERTY_IDEOGRAPHIC = 17; + public const PROPERTY_IDS_BINARY_OPERATOR = 18; + public const PROPERTY_IDS_TRINARY_OPERATOR = 19; + public const PROPERTY_JOIN_CONTROL = 20; + public const PROPERTY_LOGICAL_ORDER_EXCEPTION = 21; + public const PROPERTY_LOWERCASE = 22; + public const PROPERTY_MATH = 23; + public const PROPERTY_NONCHARACTER_CODE_POINT = 24; + public const PROPERTY_QUOTATION_MARK = 25; + public const PROPERTY_RADICAL = 26; + public const PROPERTY_SOFT_DOTTED = 27; + public const PROPERTY_TERMINAL_PUNCTUATION = 28; + public const PROPERTY_UNIFIED_IDEOGRAPH = 29; + public const PROPERTY_UPPERCASE = 30; + public const PROPERTY_WHITE_SPACE = 31; + public const PROPERTY_XID_CONTINUE = 32; + public const PROPERTY_XID_START = 33; + public const PROPERTY_CASE_SENSITIVE = 34; + public const PROPERTY_S_TERM = 35; + public const PROPERTY_VARIATION_SELECTOR = 36; + public const PROPERTY_NFD_INERT = 37; + public const PROPERTY_NFKD_INERT = 38; + public const PROPERTY_NFC_INERT = 39; + public const PROPERTY_NFKC_INERT = 40; + public const PROPERTY_SEGMENT_STARTER = 41; + public const PROPERTY_PATTERN_SYNTAX = 42; + public const PROPERTY_PATTERN_WHITE_SPACE = 43; + public const PROPERTY_POSIX_ALNUM = 44; + public const PROPERTY_POSIX_BLANK = 45; + public const PROPERTY_POSIX_GRAPH = 46; + public const PROPERTY_POSIX_PRINT = 47; + public const PROPERTY_POSIX_XDIGIT = 48; + public const PROPERTY_CASED = 49; + public const PROPERTY_CASE_IGNORABLE = 50; + public const PROPERTY_CHANGES_WHEN_LOWERCASED = 51; + public const PROPERTY_CHANGES_WHEN_UPPERCASED = 52; + public const PROPERTY_CHANGES_WHEN_TITLECASED = 53; + public const PROPERTY_CHANGES_WHEN_CASEFOLDED = 54; + public const PROPERTY_CHANGES_WHEN_CASEMAPPED = 55; + public const PROPERTY_CHANGES_WHEN_NFKC_CASEFOLDED = 56; + public const PROPERTY_BINARY_LIMIT = 65; + public const PROPERTY_BIDI_CLASS = 4096; + public const PROPERTY_INT_START = 4096; + public const PROPERTY_BLOCK = 4097; + public const PROPERTY_CANONICAL_COMBINING_CLASS = 4098; + public const PROPERTY_DECOMPOSITION_TYPE = 4099; + public const PROPERTY_EAST_ASIAN_WIDTH = 4100; + public const PROPERTY_GENERAL_CATEGORY = 4101; + public const PROPERTY_JOINING_GROUP = 4102; + public const PROPERTY_JOINING_TYPE = 4103; + public const PROPERTY_LINE_BREAK = 4104; + public const PROPERTY_NUMERIC_TYPE = 4105; + public const PROPERTY_SCRIPT = 4106; + public const PROPERTY_HANGUL_SYLLABLE_TYPE = 4107; + public const PROPERTY_NFD_QUICK_CHECK = 4108; + public const PROPERTY_NFKD_QUICK_CHECK = 4109; + public const PROPERTY_NFC_QUICK_CHECK = 4110; + public const PROPERTY_NFKC_QUICK_CHECK = 4111; + public const PROPERTY_LEAD_CANONICAL_COMBINING_CLASS = 4112; + public const PROPERTY_TRAIL_CANONICAL_COMBINING_CLASS = 4113; + public const PROPERTY_GRAPHEME_CLUSTER_BREAK = 4114; + public const PROPERTY_SENTENCE_BREAK = 4115; + public const PROPERTY_WORD_BREAK = 4116; + public const PROPERTY_BIDI_PAIRED_BRACKET_TYPE = 4117; + public const PROPERTY_INT_LIMIT = 4121; + public const PROPERTY_GENERAL_CATEGORY_MASK = 8192; + public const PROPERTY_MASK_START = 8192; + public const PROPERTY_MASK_LIMIT = 8193; + public const PROPERTY_NUMERIC_VALUE = 12288; + public const PROPERTY_DOUBLE_START = 12288; + public const PROPERTY_DOUBLE_LIMIT = 12289; + public const PROPERTY_AGE = 16384; + public const PROPERTY_STRING_START = 16384; + public const PROPERTY_BIDI_MIRRORING_GLYPH = 16385; + public const PROPERTY_CASE_FOLDING = 16386; + public const PROPERTY_ISO_COMMENT = 16387; + public const PROPERTY_LOWERCASE_MAPPING = 16388; + public const PROPERTY_NAME = 16389; + public const PROPERTY_SIMPLE_CASE_FOLDING = 16390; + public const PROPERTY_SIMPLE_LOWERCASE_MAPPING = 16391; + public const PROPERTY_SIMPLE_TITLECASE_MAPPING = 16392; + public const PROPERTY_SIMPLE_UPPERCASE_MAPPING = 16393; + public const PROPERTY_TITLECASE_MAPPING = 16394; + public const PROPERTY_UNICODE_1_NAME = 16395; + public const PROPERTY_UPPERCASE_MAPPING = 16396; + public const PROPERTY_BIDI_PAIRED_BRACKET = 16397; + public const PROPERTY_STRING_LIMIT = 16398; + public const PROPERTY_SCRIPT_EXTENSIONS = 28672; + public const PROPERTY_OTHER_PROPERTY_START = 28672; + public const PROPERTY_OTHER_PROPERTY_LIMIT = 28673; + public const PROPERTY_INVALID_CODE = -1; + public const CHAR_CATEGORY_UNASSIGNED = 0; + public const CHAR_CATEGORY_GENERAL_OTHER_TYPES = 0; + public const CHAR_CATEGORY_UPPERCASE_LETTER = 1; + public const CHAR_CATEGORY_LOWERCASE_LETTER = 2; + public const CHAR_CATEGORY_TITLECASE_LETTER = 3; + public const CHAR_CATEGORY_MODIFIER_LETTER = 4; + public const CHAR_CATEGORY_OTHER_LETTER = 5; + public const CHAR_CATEGORY_NON_SPACING_MARK = 6; + public const CHAR_CATEGORY_ENCLOSING_MARK = 7; + public const CHAR_CATEGORY_COMBINING_SPACING_MARK = 8; + public const CHAR_CATEGORY_DECIMAL_DIGIT_NUMBER = 9; + public const CHAR_CATEGORY_LETTER_NUMBER = 10; + public const CHAR_CATEGORY_OTHER_NUMBER = 11; + public const CHAR_CATEGORY_SPACE_SEPARATOR = 12; + public const CHAR_CATEGORY_LINE_SEPARATOR = 13; + public const CHAR_CATEGORY_PARAGRAPH_SEPARATOR = 14; + public const CHAR_CATEGORY_CONTROL_CHAR = 15; + public const CHAR_CATEGORY_FORMAT_CHAR = 16; + public const CHAR_CATEGORY_PRIVATE_USE_CHAR = 17; + public const CHAR_CATEGORY_SURROGATE = 18; + public const CHAR_CATEGORY_DASH_PUNCTUATION = 19; + public const CHAR_CATEGORY_START_PUNCTUATION = 20; + public const CHAR_CATEGORY_END_PUNCTUATION = 21; + public const CHAR_CATEGORY_CONNECTOR_PUNCTUATION = 22; + public const CHAR_CATEGORY_OTHER_PUNCTUATION = 23; + public const CHAR_CATEGORY_MATH_SYMBOL = 24; + public const CHAR_CATEGORY_CURRENCY_SYMBOL = 25; + public const CHAR_CATEGORY_MODIFIER_SYMBOL = 26; + public const CHAR_CATEGORY_OTHER_SYMBOL = 27; + public const CHAR_CATEGORY_INITIAL_PUNCTUATION = 28; + public const CHAR_CATEGORY_FINAL_PUNCTUATION = 29; + public const CHAR_CATEGORY_CHAR_CATEGORY_COUNT = 30; + public const CHAR_DIRECTION_LEFT_TO_RIGHT = 0; + public const CHAR_DIRECTION_RIGHT_TO_LEFT = 1; + public const CHAR_DIRECTION_EUROPEAN_NUMBER = 2; + public const CHAR_DIRECTION_EUROPEAN_NUMBER_SEPARATOR = 3; + public const CHAR_DIRECTION_EUROPEAN_NUMBER_TERMINATOR = 4; + public const CHAR_DIRECTION_ARABIC_NUMBER = 5; + public const CHAR_DIRECTION_COMMON_NUMBER_SEPARATOR = 6; + public const CHAR_DIRECTION_BLOCK_SEPARATOR = 7; + public const CHAR_DIRECTION_SEGMENT_SEPARATOR = 8; + public const CHAR_DIRECTION_WHITE_SPACE_NEUTRAL = 9; + public const CHAR_DIRECTION_OTHER_NEUTRAL = 10; + public const CHAR_DIRECTION_LEFT_TO_RIGHT_EMBEDDING = 11; + public const CHAR_DIRECTION_LEFT_TO_RIGHT_OVERRIDE = 12; + public const CHAR_DIRECTION_RIGHT_TO_LEFT_ARABIC = 13; + public const CHAR_DIRECTION_RIGHT_TO_LEFT_EMBEDDING = 14; + public const CHAR_DIRECTION_RIGHT_TO_LEFT_OVERRIDE = 15; + public const CHAR_DIRECTION_POP_DIRECTIONAL_FORMAT = 16; + public const CHAR_DIRECTION_DIR_NON_SPACING_MARK = 17; + public const CHAR_DIRECTION_BOUNDARY_NEUTRAL = 18; + public const CHAR_DIRECTION_FIRST_STRONG_ISOLATE = 19; + public const CHAR_DIRECTION_LEFT_TO_RIGHT_ISOLATE = 20; + public const CHAR_DIRECTION_RIGHT_TO_LEFT_ISOLATE = 21; + public const CHAR_DIRECTION_POP_DIRECTIONAL_ISOLATE = 22; + public const CHAR_DIRECTION_CHAR_DIRECTION_COUNT = 23; + public const BLOCK_CODE_NO_BLOCK = 0; + public const BLOCK_CODE_BASIC_LATIN = 1; + public const BLOCK_CODE_LATIN_1_SUPPLEMENT = 2; + public const BLOCK_CODE_LATIN_EXTENDED_A = 3; + public const BLOCK_CODE_LATIN_EXTENDED_B = 4; + public const BLOCK_CODE_IPA_EXTENSIONS = 5; + public const BLOCK_CODE_SPACING_MODIFIER_LETTERS = 6; + public const BLOCK_CODE_COMBINING_DIACRITICAL_MARKS = 7; + public const BLOCK_CODE_GREEK = 8; + public const BLOCK_CODE_CYRILLIC = 9; + public const BLOCK_CODE_ARMENIAN = 10; + public const BLOCK_CODE_HEBREW = 11; + public const BLOCK_CODE_ARABIC = 12; + public const BLOCK_CODE_SYRIAC = 13; + public const BLOCK_CODE_THAANA = 14; + public const BLOCK_CODE_DEVANAGARI = 15; + public const BLOCK_CODE_BENGALI = 16; + public const BLOCK_CODE_GURMUKHI = 17; + public const BLOCK_CODE_GUJARATI = 18; + public const BLOCK_CODE_ORIYA = 19; + public const BLOCK_CODE_TAMIL = 20; + public const BLOCK_CODE_TELUGU = 21; + public const BLOCK_CODE_KANNADA = 22; + public const BLOCK_CODE_MALAYALAM = 23; + public const BLOCK_CODE_SINHALA = 24; + public const BLOCK_CODE_THAI = 25; + public const BLOCK_CODE_LAO = 26; + public const BLOCK_CODE_TIBETAN = 27; + public const BLOCK_CODE_MYANMAR = 28; + public const BLOCK_CODE_GEORGIAN = 29; + public const BLOCK_CODE_HANGUL_JAMO = 30; + public const BLOCK_CODE_ETHIOPIC = 31; + public const BLOCK_CODE_CHEROKEE = 32; + public const BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS = 33; + public const BLOCK_CODE_OGHAM = 34; + public const BLOCK_CODE_RUNIC = 35; + public const BLOCK_CODE_KHMER = 36; + public const BLOCK_CODE_MONGOLIAN = 37; + public const BLOCK_CODE_LATIN_EXTENDED_ADDITIONAL = 38; + public const BLOCK_CODE_GREEK_EXTENDED = 39; + public const BLOCK_CODE_GENERAL_PUNCTUATION = 40; + public const BLOCK_CODE_SUPERSCRIPTS_AND_SUBSCRIPTS = 41; + public const BLOCK_CODE_CURRENCY_SYMBOLS = 42; + public const BLOCK_CODE_COMBINING_MARKS_FOR_SYMBOLS = 43; + public const BLOCK_CODE_LETTERLIKE_SYMBOLS = 44; + public const BLOCK_CODE_NUMBER_FORMS = 45; + public const BLOCK_CODE_ARROWS = 46; + public const BLOCK_CODE_MATHEMATICAL_OPERATORS = 47; + public const BLOCK_CODE_MISCELLANEOUS_TECHNICAL = 48; + public const BLOCK_CODE_CONTROL_PICTURES = 49; + public const BLOCK_CODE_OPTICAL_CHARACTER_RECOGNITION = 50; + public const BLOCK_CODE_ENCLOSED_ALPHANUMERICS = 51; + public const BLOCK_CODE_BOX_DRAWING = 52; + public const BLOCK_CODE_BLOCK_ELEMENTS = 53; + public const BLOCK_CODE_GEOMETRIC_SHAPES = 54; + public const BLOCK_CODE_MISCELLANEOUS_SYMBOLS = 55; + public const BLOCK_CODE_DINGBATS = 56; + public const BLOCK_CODE_BRAILLE_PATTERNS = 57; + public const BLOCK_CODE_CJK_RADICALS_SUPPLEMENT = 58; + public const BLOCK_CODE_KANGXI_RADICALS = 59; + public const BLOCK_CODE_IDEOGRAPHIC_DESCRIPTION_CHARACTERS = 60; + public const BLOCK_CODE_CJK_SYMBOLS_AND_PUNCTUATION = 61; + public const BLOCK_CODE_HIRAGANA = 62; + public const BLOCK_CODE_KATAKANA = 63; + public const BLOCK_CODE_BOPOMOFO = 64; + public const BLOCK_CODE_HANGUL_COMPATIBILITY_JAMO = 65; + public const BLOCK_CODE_KANBUN = 66; + public const BLOCK_CODE_BOPOMOFO_EXTENDED = 67; + public const BLOCK_CODE_ENCLOSED_CJK_LETTERS_AND_MONTHS = 68; + public const BLOCK_CODE_CJK_COMPATIBILITY = 69; + public const BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A = 70; + public const BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS = 71; + public const BLOCK_CODE_YI_SYLLABLES = 72; + public const BLOCK_CODE_YI_RADICALS = 73; + public const BLOCK_CODE_HANGUL_SYLLABLES = 74; + public const BLOCK_CODE_HIGH_SURROGATES = 75; + public const BLOCK_CODE_HIGH_PRIVATE_USE_SURROGATES = 76; + public const BLOCK_CODE_LOW_SURROGATES = 77; + public const BLOCK_CODE_PRIVATE_USE_AREA = 78; + public const BLOCK_CODE_PRIVATE_USE = 78; + public const BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS = 79; + public const BLOCK_CODE_ALPHABETIC_PRESENTATION_FORMS = 80; + public const BLOCK_CODE_ARABIC_PRESENTATION_FORMS_A = 81; + public const BLOCK_CODE_COMBINING_HALF_MARKS = 82; + public const BLOCK_CODE_CJK_COMPATIBILITY_FORMS = 83; + public const BLOCK_CODE_SMALL_FORM_VARIANTS = 84; + public const BLOCK_CODE_ARABIC_PRESENTATION_FORMS_B = 85; + public const BLOCK_CODE_SPECIALS = 86; + public const BLOCK_CODE_HALFWIDTH_AND_FULLWIDTH_FORMS = 87; + public const BLOCK_CODE_OLD_ITALIC = 88; + public const BLOCK_CODE_GOTHIC = 89; + public const BLOCK_CODE_DESERET = 90; + public const BLOCK_CODE_BYZANTINE_MUSICAL_SYMBOLS = 91; + public const BLOCK_CODE_MUSICAL_SYMBOLS = 92; + public const BLOCK_CODE_MATHEMATICAL_ALPHANUMERIC_SYMBOLS = 93; + public const BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B = 94; + public const BLOCK_CODE_CJK_COMPATIBILITY_IDEOGRAPHS_SUPPLEMENT = 95; + public const BLOCK_CODE_TAGS = 96; + public const BLOCK_CODE_CYRILLIC_SUPPLEMENT = 97; + public const BLOCK_CODE_CYRILLIC_SUPPLEMENTARY = 97; + public const BLOCK_CODE_TAGALOG = 98; + public const BLOCK_CODE_HANUNOO = 99; + public const BLOCK_CODE_BUHID = 100; + public const BLOCK_CODE_TAGBANWA = 101; + public const BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_A = 102; + public const BLOCK_CODE_SUPPLEMENTAL_ARROWS_A = 103; + public const BLOCK_CODE_SUPPLEMENTAL_ARROWS_B = 104; + public const BLOCK_CODE_MISCELLANEOUS_MATHEMATICAL_SYMBOLS_B = 105; + public const BLOCK_CODE_SUPPLEMENTAL_MATHEMATICAL_OPERATORS = 106; + public const BLOCK_CODE_KATAKANA_PHONETIC_EXTENSIONS = 107; + public const BLOCK_CODE_VARIATION_SELECTORS = 108; + public const BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_A = 109; + public const BLOCK_CODE_SUPPLEMENTARY_PRIVATE_USE_AREA_B = 110; + public const BLOCK_CODE_LIMBU = 111; + public const BLOCK_CODE_TAI_LE = 112; + public const BLOCK_CODE_KHMER_SYMBOLS = 113; + public const BLOCK_CODE_PHONETIC_EXTENSIONS = 114; + public const BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_ARROWS = 115; + public const BLOCK_CODE_YIJING_HEXAGRAM_SYMBOLS = 116; + public const BLOCK_CODE_LINEAR_B_SYLLABARY = 117; + public const BLOCK_CODE_LINEAR_B_IDEOGRAMS = 118; + public const BLOCK_CODE_AEGEAN_NUMBERS = 119; + public const BLOCK_CODE_UGARITIC = 120; + public const BLOCK_CODE_SHAVIAN = 121; + public const BLOCK_CODE_OSMANYA = 122; + public const BLOCK_CODE_CYPRIOT_SYLLABARY = 123; + public const BLOCK_CODE_TAI_XUAN_JING_SYMBOLS = 124; + public const BLOCK_CODE_VARIATION_SELECTORS_SUPPLEMENT = 125; + public const BLOCK_CODE_ANCIENT_GREEK_MUSICAL_NOTATION = 126; + public const BLOCK_CODE_ANCIENT_GREEK_NUMBERS = 127; + public const BLOCK_CODE_ARABIC_SUPPLEMENT = 128; + public const BLOCK_CODE_BUGINESE = 129; + public const BLOCK_CODE_CJK_STROKES = 130; + public const BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_SUPPLEMENT = 131; + public const BLOCK_CODE_COPTIC = 132; + public const BLOCK_CODE_ETHIOPIC_EXTENDED = 133; + public const BLOCK_CODE_ETHIOPIC_SUPPLEMENT = 134; + public const BLOCK_CODE_GEORGIAN_SUPPLEMENT = 135; + public const BLOCK_CODE_GLAGOLITIC = 136; + public const BLOCK_CODE_KHAROSHTHI = 137; + public const BLOCK_CODE_MODIFIER_TONE_LETTERS = 138; + public const BLOCK_CODE_NEW_TAI_LUE = 139; + public const BLOCK_CODE_OLD_PERSIAN = 140; + public const BLOCK_CODE_PHONETIC_EXTENSIONS_SUPPLEMENT = 141; + public const BLOCK_CODE_SUPPLEMENTAL_PUNCTUATION = 142; + public const BLOCK_CODE_SYLOTI_NAGRI = 143; + public const BLOCK_CODE_TIFINAGH = 144; + public const BLOCK_CODE_VERTICAL_FORMS = 145; + public const BLOCK_CODE_NKO = 146; + public const BLOCK_CODE_BALINESE = 147; + public const BLOCK_CODE_LATIN_EXTENDED_C = 148; + public const BLOCK_CODE_LATIN_EXTENDED_D = 149; + public const BLOCK_CODE_PHAGS_PA = 150; + public const BLOCK_CODE_PHOENICIAN = 151; + public const BLOCK_CODE_CUNEIFORM = 152; + public const BLOCK_CODE_CUNEIFORM_NUMBERS_AND_PUNCTUATION = 153; + public const BLOCK_CODE_COUNTING_ROD_NUMERALS = 154; + public const BLOCK_CODE_SUNDANESE = 155; + public const BLOCK_CODE_LEPCHA = 156; + public const BLOCK_CODE_OL_CHIKI = 157; + public const BLOCK_CODE_CYRILLIC_EXTENDED_A = 158; + public const BLOCK_CODE_VAI = 159; + public const BLOCK_CODE_CYRILLIC_EXTENDED_B = 160; + public const BLOCK_CODE_SAURASHTRA = 161; + public const BLOCK_CODE_KAYAH_LI = 162; + public const BLOCK_CODE_REJANG = 163; + public const BLOCK_CODE_CHAM = 164; + public const BLOCK_CODE_ANCIENT_SYMBOLS = 165; + public const BLOCK_CODE_PHAISTOS_DISC = 166; + public const BLOCK_CODE_LYCIAN = 167; + public const BLOCK_CODE_CARIAN = 168; + public const BLOCK_CODE_LYDIAN = 169; + public const BLOCK_CODE_MAHJONG_TILES = 170; + public const BLOCK_CODE_DOMINO_TILES = 171; + public const BLOCK_CODE_SAMARITAN = 172; + public const BLOCK_CODE_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED = 173; + public const BLOCK_CODE_TAI_THAM = 174; + public const BLOCK_CODE_VEDIC_EXTENSIONS = 175; + public const BLOCK_CODE_LISU = 176; + public const BLOCK_CODE_BAMUM = 177; + public const BLOCK_CODE_COMMON_INDIC_NUMBER_FORMS = 178; + public const BLOCK_CODE_DEVANAGARI_EXTENDED = 179; + public const BLOCK_CODE_HANGUL_JAMO_EXTENDED_A = 180; + public const BLOCK_CODE_JAVANESE = 181; + public const BLOCK_CODE_MYANMAR_EXTENDED_A = 182; + public const BLOCK_CODE_TAI_VIET = 183; + public const BLOCK_CODE_MEETEI_MAYEK = 184; + public const BLOCK_CODE_HANGUL_JAMO_EXTENDED_B = 185; + public const BLOCK_CODE_IMPERIAL_ARAMAIC = 186; + public const BLOCK_CODE_OLD_SOUTH_ARABIAN = 187; + public const BLOCK_CODE_AVESTAN = 188; + public const BLOCK_CODE_INSCRIPTIONAL_PARTHIAN = 189; + public const BLOCK_CODE_INSCRIPTIONAL_PAHLAVI = 190; + public const BLOCK_CODE_OLD_TURKIC = 191; + public const BLOCK_CODE_RUMI_NUMERAL_SYMBOLS = 192; + public const BLOCK_CODE_KAITHI = 193; + public const BLOCK_CODE_EGYPTIAN_HIEROGLYPHS = 194; + public const BLOCK_CODE_ENCLOSED_ALPHANUMERIC_SUPPLEMENT = 195; + public const BLOCK_CODE_ENCLOSED_IDEOGRAPHIC_SUPPLEMENT = 196; + public const BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_C = 197; + public const BLOCK_CODE_MANDAIC = 198; + public const BLOCK_CODE_BATAK = 199; + public const BLOCK_CODE_ETHIOPIC_EXTENDED_A = 200; + public const BLOCK_CODE_BRAHMI = 201; + public const BLOCK_CODE_BAMUM_SUPPLEMENT = 202; + public const BLOCK_CODE_KANA_SUPPLEMENT = 203; + public const BLOCK_CODE_PLAYING_CARDS = 204; + public const BLOCK_CODE_MISCELLANEOUS_SYMBOLS_AND_PICTOGRAPHS = 205; + public const BLOCK_CODE_EMOTICONS = 206; + public const BLOCK_CODE_TRANSPORT_AND_MAP_SYMBOLS = 207; + public const BLOCK_CODE_ALCHEMICAL_SYMBOLS = 208; + public const BLOCK_CODE_CJK_UNIFIED_IDEOGRAPHS_EXTENSION_D = 209; + public const BLOCK_CODE_ARABIC_EXTENDED_A = 210; + public const BLOCK_CODE_ARABIC_MATHEMATICAL_ALPHABETIC_SYMBOLS = 211; + public const BLOCK_CODE_CHAKMA = 212; + public const BLOCK_CODE_MEETEI_MAYEK_EXTENSIONS = 213; + public const BLOCK_CODE_MEROITIC_CURSIVE = 214; + public const BLOCK_CODE_MEROITIC_HIEROGLYPHS = 215; + public const BLOCK_CODE_MIAO = 216; + public const BLOCK_CODE_SHARADA = 217; + public const BLOCK_CODE_SORA_SOMPENG = 218; + public const BLOCK_CODE_SUNDANESE_SUPPLEMENT = 219; + public const BLOCK_CODE_TAKRI = 220; + public const BLOCK_CODE_BASSA_VAH = 221; + public const BLOCK_CODE_CAUCASIAN_ALBANIAN = 222; + public const BLOCK_CODE_COPTIC_EPACT_NUMBERS = 223; + public const BLOCK_CODE_COMBINING_DIACRITICAL_MARKS_EXTENDED = 224; + public const BLOCK_CODE_DUPLOYAN = 225; + public const BLOCK_CODE_ELBASAN = 226; + public const BLOCK_CODE_GEOMETRIC_SHAPES_EXTENDED = 227; + public const BLOCK_CODE_GRANTHA = 228; + public const BLOCK_CODE_KHOJKI = 229; + public const BLOCK_CODE_KHUDAWADI = 230; + public const BLOCK_CODE_LATIN_EXTENDED_E = 231; + public const BLOCK_CODE_LINEAR_A = 232; + public const BLOCK_CODE_MAHAJANI = 233; + public const BLOCK_CODE_MANICHAEAN = 234; + public const BLOCK_CODE_MENDE_KIKAKUI = 235; + public const BLOCK_CODE_MODI = 236; + public const BLOCK_CODE_MRO = 237; + public const BLOCK_CODE_MYANMAR_EXTENDED_B = 238; + public const BLOCK_CODE_NABATAEAN = 239; + public const BLOCK_CODE_OLD_NORTH_ARABIAN = 240; + public const BLOCK_CODE_OLD_PERMIC = 241; + public const BLOCK_CODE_ORNAMENTAL_DINGBATS = 242; + public const BLOCK_CODE_PAHAWH_HMONG = 243; + public const BLOCK_CODE_PALMYRENE = 244; + public const BLOCK_CODE_PAU_CIN_HAU = 245; + public const BLOCK_CODE_PSALTER_PAHLAVI = 246; + public const BLOCK_CODE_SHORTHAND_FORMAT_CONTROLS = 247; + public const BLOCK_CODE_SIDDHAM = 248; + public const BLOCK_CODE_SINHALA_ARCHAIC_NUMBERS = 249; + public const BLOCK_CODE_SUPPLEMENTAL_ARROWS_C = 250; + public const BLOCK_CODE_TIRHUTA = 251; + public const BLOCK_CODE_WARANG_CITI = 252; + public const BLOCK_CODE_COUNT = 309; + public const BLOCK_CODE_INVALID_CODE = -1; + public const BPT_NONE = 0; + public const BPT_OPEN = 1; + public const BPT_CLOSE = 2; + public const BPT_COUNT = 3; + public const EA_NEUTRAL = 0; + public const EA_AMBIGUOUS = 1; + public const EA_HALFWIDTH = 2; + public const EA_FULLWIDTH = 3; + public const EA_NARROW = 4; + public const EA_WIDE = 5; + public const EA_COUNT = 6; + public const UNICODE_CHAR_NAME = 0; + public const UNICODE_10_CHAR_NAME = 1; + public const EXTENDED_CHAR_NAME = 2; + public const CHAR_NAME_ALIAS = 3; + public const CHAR_NAME_CHOICE_COUNT = 4; + public const SHORT_PROPERTY_NAME = 0; + public const LONG_PROPERTY_NAME = 1; + public const PROPERTY_NAME_CHOICE_COUNT = 2; + public const DT_NONE = 0; + public const DT_CANONICAL = 1; + public const DT_COMPAT = 2; + public const DT_CIRCLE = 3; + public const DT_FINAL = 4; + public const DT_FONT = 5; + public const DT_FRACTION = 6; + public const DT_INITIAL = 7; + public const DT_ISOLATED = 8; + public const DT_MEDIAL = 9; + public const DT_NARROW = 10; + public const DT_NOBREAK = 11; + public const DT_SMALL = 12; + public const DT_SQUARE = 13; + public const DT_SUB = 14; + public const DT_SUPER = 15; + public const DT_VERTICAL = 16; + public const DT_WIDE = 17; + public const DT_COUNT = 18; + public const JT_NON_JOINING = 0; + public const JT_JOIN_CAUSING = 1; + public const JT_DUAL_JOINING = 2; + public const JT_LEFT_JOINING = 3; + public const JT_RIGHT_JOINING = 4; + public const JT_TRANSPARENT = 5; + public const JT_COUNT = 6; + public const JG_NO_JOINING_GROUP = 0; + public const JG_AIN = 1; + public const JG_ALAPH = 2; + public const JG_ALEF = 3; + public const JG_BEH = 4; + public const JG_BETH = 5; + public const JG_DAL = 6; + public const JG_DALATH_RISH = 7; + public const JG_E = 8; + public const JG_FEH = 9; + public const JG_FINAL_SEMKATH = 10; + public const JG_GAF = 11; + public const JG_GAMAL = 12; + public const JG_HAH = 13; + public const JG_TEH_MARBUTA_GOAL = 14; + public const JG_HAMZA_ON_HEH_GOAL = 14; + public const JG_HE = 15; + public const JG_HEH = 16; + public const JG_HEH_GOAL = 17; + public const JG_HETH = 18; + public const JG_KAF = 19; + public const JG_KAPH = 20; + public const JG_KNOTTED_HEH = 21; + public const JG_LAM = 22; + public const JG_LAMADH = 23; + public const JG_MEEM = 24; + public const JG_MIM = 25; + public const JG_NOON = 26; + public const JG_NUN = 27; + public const JG_PE = 28; + public const JG_QAF = 29; + public const JG_QAPH = 30; + public const JG_REH = 31; + public const JG_REVERSED_PE = 32; + public const JG_SAD = 33; + public const JG_SADHE = 34; + public const JG_SEEN = 35; + public const JG_SEMKATH = 36; + public const JG_SHIN = 37; + public const JG_SWASH_KAF = 38; + public const JG_SYRIAC_WAW = 39; + public const JG_TAH = 40; + public const JG_TAW = 41; + public const JG_TEH_MARBUTA = 42; + public const JG_TETH = 43; + public const JG_WAW = 44; + public const JG_YEH = 45; + public const JG_YEH_BARREE = 46; + public const JG_YEH_WITH_TAIL = 47; + public const JG_YUDH = 48; + public const JG_YUDH_HE = 49; + public const JG_ZAIN = 50; + public const JG_FE = 51; + public const JG_KHAPH = 52; + public const JG_ZHAIN = 53; + public const JG_BURUSHASKI_YEH_BARREE = 54; + public const JG_FARSI_YEH = 55; + public const JG_NYA = 56; + public const JG_ROHINGYA_YEH = 57; + public const JG_MANICHAEAN_ALEPH = 58; + public const JG_MANICHAEAN_AYIN = 59; + public const JG_MANICHAEAN_BETH = 60; + public const JG_MANICHAEAN_DALETH = 61; + public const JG_MANICHAEAN_DHAMEDH = 62; + public const JG_MANICHAEAN_FIVE = 63; + public const JG_MANICHAEAN_GIMEL = 64; + public const JG_MANICHAEAN_HETH = 65; + public const JG_MANICHAEAN_HUNDRED = 66; + public const JG_MANICHAEAN_KAPH = 67; + public const JG_MANICHAEAN_LAMEDH = 68; + public const JG_MANICHAEAN_MEM = 69; + public const JG_MANICHAEAN_NUN = 70; + public const JG_MANICHAEAN_ONE = 71; + public const JG_MANICHAEAN_PE = 72; + public const JG_MANICHAEAN_QOPH = 73; + public const JG_MANICHAEAN_RESH = 74; + public const JG_MANICHAEAN_SADHE = 75; + public const JG_MANICHAEAN_SAMEKH = 76; + public const JG_MANICHAEAN_TAW = 77; + public const JG_MANICHAEAN_TEN = 78; + public const JG_MANICHAEAN_TETH = 79; + public const JG_MANICHAEAN_THAMEDH = 80; + public const JG_MANICHAEAN_TWENTY = 81; + public const JG_MANICHAEAN_WAW = 82; + public const JG_MANICHAEAN_YODH = 83; + public const JG_MANICHAEAN_ZAYIN = 84; + public const JG_STRAIGHT_WAW = 85; + public const JG_COUNT = 102; + public const GCB_OTHER = 0; + public const GCB_CONTROL = 1; + public const GCB_CR = 2; + public const GCB_EXTEND = 3; + public const GCB_L = 4; + public const GCB_LF = 5; + public const GCB_LV = 6; + public const GCB_LVT = 7; + public const GCB_T = 8; + public const GCB_V = 9; + public const GCB_SPACING_MARK = 10; + public const GCB_PREPEND = 11; + public const GCB_REGIONAL_INDICATOR = 12; + public const GCB_COUNT = 18; + public const WB_OTHER = 0; + public const WB_ALETTER = 1; + public const WB_FORMAT = 2; + public const WB_KATAKANA = 3; + public const WB_MIDLETTER = 4; + public const WB_MIDNUM = 5; + public const WB_NUMERIC = 6; + public const WB_EXTENDNUMLET = 7; + public const WB_CR = 8; + public const WB_EXTEND = 9; + public const WB_LF = 10; + public const WB_MIDNUMLET = 11; + public const WB_NEWLINE = 12; + public const WB_REGIONAL_INDICATOR = 13; + public const WB_HEBREW_LETTER = 14; + public const WB_SINGLE_QUOTE = 15; + public const WB_DOUBLE_QUOTE = 16; + public const WB_COUNT = 23; + public const SB_OTHER = 0; + public const SB_ATERM = 1; + public const SB_CLOSE = 2; + public const SB_FORMAT = 3; + public const SB_LOWER = 4; + public const SB_NUMERIC = 5; + public const SB_OLETTER = 6; + public const SB_SEP = 7; + public const SB_SP = 8; + public const SB_STERM = 9; + public const SB_UPPER = 10; + public const SB_CR = 11; + public const SB_EXTEND = 12; + public const SB_LF = 13; + public const SB_SCONTINUE = 14; + public const SB_COUNT = 15; + public const LB_UNKNOWN = 0; + public const LB_AMBIGUOUS = 1; + public const LB_ALPHABETIC = 2; + public const LB_BREAK_BOTH = 3; + public const LB_BREAK_AFTER = 4; + public const LB_BREAK_BEFORE = 5; + public const LB_MANDATORY_BREAK = 6; + public const LB_CONTINGENT_BREAK = 7; + public const LB_CLOSE_PUNCTUATION = 8; + public const LB_COMBINING_MARK = 9; + public const LB_CARRIAGE_RETURN = 10; + public const LB_EXCLAMATION = 11; + public const LB_GLUE = 12; + public const LB_HYPHEN = 13; + public const LB_IDEOGRAPHIC = 14; + public const LB_INSEPARABLE = 15; + public const LB_INSEPERABLE = 15; + public const LB_INFIX_NUMERIC = 16; + public const LB_LINE_FEED = 17; + public const LB_NONSTARTER = 18; + public const LB_NUMERIC = 19; + public const LB_OPEN_PUNCTUATION = 20; + public const LB_POSTFIX_NUMERIC = 21; + public const LB_PREFIX_NUMERIC = 22; + public const LB_QUOTATION = 23; + public const LB_COMPLEX_CONTEXT = 24; + public const LB_SURROGATE = 25; + public const LB_SPACE = 26; + public const LB_BREAK_SYMBOLS = 27; + public const LB_ZWSPACE = 28; + public const LB_NEXT_LINE = 29; + public const LB_WORD_JOINER = 30; + public const LB_H2 = 31; + public const LB_H3 = 32; + public const LB_JL = 33; + public const LB_JT = 34; + public const LB_JV = 35; + public const LB_CLOSE_PARENTHESIS = 36; + public const LB_CONDITIONAL_JAPANESE_STARTER = 37; + public const LB_HEBREW_LETTER = 38; + public const LB_REGIONAL_INDICATOR = 39; + public const LB_COUNT = 43; + public const NT_NONE = 0; + public const NT_DECIMAL = 1; + public const NT_DIGIT = 2; + public const NT_NUMERIC = 3; + public const NT_COUNT = 4; + public const HST_NOT_APPLICABLE = 0; + public const HST_LEADING_JAMO = 1; + public const HST_VOWEL_JAMO = 2; + public const HST_TRAILING_JAMO = 3; + public const HST_LV_SYLLABLE = 4; + public const HST_LVT_SYLLABLE = 5; + public const HST_COUNT = 6; + public const NO_NUMERIC_VALUE = -123456789; + + /** + * Check a binary Unicode property for a code point + * @link https://php.net/manual/en/intlchar.hasbinaryproperty.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * @return bool|null Returns TRUE or FALSE according to the binary Unicode property value for codepoint. + * Also FALSE if property is out of bounds or if the Unicode version does not have data for the property at all, or not for this code point. + * Or NULL if codepoint is out of bounds. + * @since 7.0 + */ + #[Pure] + #[TentativeType] + public static function hasBinaryProperty( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property + ): ?bool {} + + /** + * @link https://php.net/manual/en/intlchar.charage.php + * Get the "age" of the code point + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return array|null The Unicode version number, as an array. For example, version 1.3.31.2 would be represented as [1, 3, 31, 2]. + * Or NULL if codepoint is out of bounds. + * @since 7.0 + */ + #[TentativeType] + public static function charAge(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?array {} + + /** + * @link https://php.net/manual/en/intlchar.chardigitvalue.php + * Get the decimal digit value of a decimal digit character + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|null The decimal digit value of codepoint, or -1 if it is not a decimal digit character. + * Or NULL if codepoint is out of bounds. + * @since 7.0 + */ + #[TentativeType] + public static function charDigitValue(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?int {} + + /** + * Get bidirectional category value for a code point + * @link https://php.net/manual/en/intlchar.chardirection.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|nullThe bidirectional category value; one of the following constants: + *
+ *Full name of the Unicode character.
+ * @param int $type [optional]+ * Which set of names to use for the lookup. Can be any of these constants: + *
Or NULL if codepoint is out of bound.
'int|string'], default: '')] $codepoint): ?int {} + + /** + * Return Unicode character by code point value + * @link https://php.net/manual/en/intlchar.chr.php + * @param mixed $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return string|null A string containing the single character specified by the Unicode code point value. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function chr(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?string {} + + /** + * Get the decimal digit value of a code point for a given radix + * @link https://php.net/manual/en/intlchar.digit.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @param int $baseThe radix (defaults to 10).
+ * @return int|false|null Returns the numeric value represented by the character in the specified radix, + * or FALSE if there is no value or if the value exceeds the radix, + * or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function digit( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $base = 10 + ): int|false|null {} + + /** + * Enumerate all assigned Unicode characters within a range + * @link https://php.net/manual/en/intlchar.enumcharnames.php + * @param int|string $start The first code point in the enumeration range. + * @param int|string $end One more than the last code point in the enumeration range (the first one after the range). + * @param callable $callback+ * The function that is to be called for each character name. The following three arguments will be passed into it: + *
+ * Selector for which kind of names to enumerate. Can be any of these constants: + *
+ * The function that is to be called for each contiguous range of code points with the same general category. + * The following three arguments will be passed into it: + *
The number to convert to a character.
+ * @param int $base [optional]The radix (defaults to 10).
+ * @return int The character representation (as a string) of the specified digit in the specified radix. + * @since 7.0 + */ + #[TentativeType] + public static function forDigit( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $digit, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $base = 10 + ): int {} + + /** + * Get the paired bracket character for a code point + * @link https://php.net/manual/en/intlchar.getbidipairedbracket.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return int|string|null Returns the paired bracket code point, or codepoint itself if there is no such mapping. + * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function getBidiPairedBracket(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): string|int|null {} + + /** + * Get the Unicode allocation block containing a code point + * @link https://php.net/manual/en/intlchar.getblockcode.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|null Returns the block value for codepoint, or NULL if codepoint is out of bound. + * See the IntlChar::BLOCK_CODE_* constants for possible return values. + * @since 7.0 + */ + #[TentativeType] + public static function getBlockCode(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?int {} + + /** + * Get the combining class of a code point + * @link https://php.net/manual/en/intlchar.getcombiningclass.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|null Returns the combining class of the character. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function getCombiningClass(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?int {} + + /** + * Get the FC_NFKC_Closure property for a code point + * @link https://php.net/manual/en/intlchar.getfc-nfkc-closure.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return string|false|null Returns the FC_NFKC_Closure property string for the codepoint, or an empty string if there is none, + * or NULL if codepoint is out of bound, + * or FALSE if there was an error. + * @since 7.0 + */ + #[TentativeType] + public static function getFC_NFKC_Closure(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): string|false|null {} + + /** + * Get the max value for a Unicode property + * @link https://php.net/manual/en/intlchar.getintpropertymaxvalue.php + * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * @return int The maximum value returned by {@see IntlChar::getIntPropertyValue()} for a Unicode property. <=0 if the property selector is out of range. + * @since 7.0 + */ + #[TentativeType] + public static function getIntPropertyMaxValue(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property): int {} + + /** + * Get the min value for a Unicode property + * @link https://php.net/manual/en/intlchar.getintpropertyminvalue.php + * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * @return int The minimum value returned by {@see IntlChar::getIntPropertyValue()} for a Unicode property. 0 if the property selector is out of range. + * @since 7.0 + */ + #[TentativeType] + public static function getIntPropertyMinValue(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property): int {} + + /** + * Get the value for a Unicode property for a code point + * @link https://php.net/manual/en/intlchar.getintpropertyvalue.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @param int $property The Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * @return int|null+ * Returns the numeric value that is directly the property value or, for enumerated properties, corresponds to the + * numeric value of the enumerated constant of the respective property value enumeration type. + *
+ *+ * Returns 0 or 1 (for FALSE/TRUE) for binary Unicode properties. + *
+ *+ * Returns a bit-mask for mask properties. + *
+ *+ * Returns 0 if property is out of bounds or if the Unicode version does not + * have data for the property at all, or not for this code point. + *
+ *+ * Returns NULL if codepoint is out of bound. + *
+ * @since 7.0 + */ + #[TentativeType] + public static function getIntPropertyValue( + #[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property + ): ?int {} + + /** + * Get the numeric value for a Unicode code point + * @link https://php.net/manual/en/intlchar.getnumericvalue.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return float|null Numeric value of codepoint, or float(-123456789) if none is defined, or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function getNumericValue(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?float {} + + /** + * Get the property constant value for a given property name + * @link https://php.net/manual/en/intlchar.getpropertyenum.php + * @param string $alias The property name to be matched. The name is compared using "loose matching" as described in PropertyAliases.txt. + * @return int Returns an IntlChar::PROPERTY_ constant value, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any property. + * @since 7.0 + */ + #[TentativeType] + public static function getPropertyEnum(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $alias): int {} + + /** + * Get the Unicode name for a property + * @link https://php.net/manual/en/intlchar.getpropertyname.php + * @param int $propertyThe Unicode property to lookup (see the IntlChar::PROPERTY_* constants).
+ *IntlChar::PROPERTY_INVALID_CODE should not be used. Also, if property is out of range, FALSE is returned.
+ * @param int $typeSelector for which name to get. If out of range, FALSE is returned.
+ *All properties have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME.
+ * @return string|false+ * Returns the name, or FALSE if either the property or the nameChoice + * is out of range. + *
+ *+ * If a given nameChoice returns FALSE, then all larger values of + * nameChoice will return FALSE, with one exception: if FALSE is returned for + * IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME + * (and higher) may still return a non-FALSE value. + *
+ * @since 7.0 + */ + #[TentativeType] + public static function getPropertyName( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = IntlChar::LONG_PROPERTY_NAME + ): string|false {} + + /** + * Get the property value for a given value name + * @link https://php.net/manual/en/intlchar.getpropertyvalueenum.php + * @param int $propertyThe Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * If out of range, or this method doesn't work with the given value, IntlChar::PROPERTY_INVALID_CODE is returned
+ * @param string $nameThe value name to be matched. The name is compared using "loose matching" as described in PropertyValueAliases.txt.
+ * @return int Returns the corresponding value integer, or IntlChar::PROPERTY_INVALID_CODE if the given name does not match any value of the given property, or if the property is invalid. + * @since 7.0 + */ + #[TentativeType] + public static function getPropertyValueEnum( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property, + #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name + ): int {} + + /** + * Get the Unicode name for a property value + * @link https://php.net/manual/en/intlchar.getpropertyvaluename.php + * @param int $property+ * The Unicode property to lookup (see the IntlChar::PROPERTY_* constants). + * If out of range, or this method doesn't work with the given value, FALSE is returned. + *
+ * @param int $value+ * Selector for a value for the given property. If out of range, FALSE is returned. + *
+ *+ * In general, valid values range from 0 up to some maximum. There are a couple exceptions: + *
+ * Selector for which name to get. If out of range, FALSE is returned. + * All values have a long name. Most have a short name, but some do not. Unicode allows for additional names; if present these will be returned by adding 1, 2, etc. to IntlChar::LONG_PROPERTY_NAME. + *
+ * @return string|false Returns the name, or FALSE if either the property or the nameChoice is out of range. + * If a given nameChoice returns FALSE, then all larger values of nameChoice will return FALSE, with one exception: if FALSE is returned for IntlChar::SHORT_PROPERTY_NAME, then IntlChar::LONG_PROPERTY_NAME (and higher) may still return a non-FALSE value. + * @since 7.0 + */ + #[TentativeType] + public static function getPropertyValueName( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $value, + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = IntlChar::LONG_PROPERTY_NAME + ): string|false {} + + /** + * Get the Unicode version + * @link https://php.net/manual/en/intlchar.getunicodeversion.php + * @return array An array containing the Unicode version number. + * @since 7.0 + */ + #[TentativeType] + public static function getUnicodeVersion(): array {} + + /** + * Check if code point is an alphanumeric character + * @link https://php.net/manual/en/intlchar.isalnum.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is an alphanumeric character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isalnum(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a letter character + * @link https://php.net/manual/en/intlchar.isalpha.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a letter character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isalpha(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a base character + * @link https://php.net/manual/en/intlchar.isbase.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a base character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isbase(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a "blank" or "horizontal space" character + * @link https://php.net/manual/en/intlchar.isblank.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is either a "blank" or "horizontal space" character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isblank(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a control character + * @link https://php.net/manual/en/intlchar.iscntrl.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a control character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function iscntrl(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check whether the code point is defined + * @link https://php.net/manual/en/intlchar.isdefined.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a defined character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isdefined(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a digit character + * @link https://php.net/manual/en/intlchar.isdigit.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a digit character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isdigit(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a graphic character + * @link https://php.net/manual/en/intlchar.isgraph.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a "graphic" character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isgraph(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is an ignorable character + * @link https://php.net/manual/en/intlchar.isidignorable.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is ignorable in identifiers, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isIDIgnorable(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is permissible in an identifier + * @link https://php.net/manual/en/intlchar.isidpart.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is the code point may occur in an identifier, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isIDPart(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is permissible as the first character in an identifier + * @link https://php.net/manual/en/intlchar.isidstart.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint may start an identifier, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isIDStart(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is an ISO control code + * @link https://php.net/manual/en/intlchar.isisocontrol.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is an ISO control code, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isISOControl(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is permissible in a Java identifier + * @link https://php.net/manual/en/intlchar.isjavaidpart.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint may occur in a Java identifier, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isJavaIDPart(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is permissible as the first character in a Java identifier + * @link https://php.net/manual/en/intlchar.isjavaidstart.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint may start a Java identifier, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isJavaIDStart(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a space character according to Java + * @link https://php.net/manual/en/intlchar.isjavaspacechar.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a space character according to Java, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isJavaSpaceChar(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a lowercase letter + * @link https://php.net/manual/en/intlchar.islower.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), + * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an Ll lowercase letter, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function islower(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the Bidi_Mirrored property + * @link https://php.net/manual/en/intlchar.ismirrored.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint has the Bidi_Mirrored property, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isMirrored(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a printable character + * @link https://php.net/manual/en/intlchar.isprint.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a printable character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isprint(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is punctuation character + * @link https://php.net/manual/en/intlchar.ispunct.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), + * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is a punctuation character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function ispunct(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a space character + * @link https://php.net/manual/en/intlchar.isspace.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a space character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isspace(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a titlecase letter + * @link https://php.net/manual/en/intlchar.istitle.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a titlecase letter, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function istitle(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the Alphabetic Unicode property + * @link https://php.net/manual/en/intlchar.isualphabetic.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint has the Alphabetic Unicode property, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isUAlphabetic(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the Lowercase Unicode property + * @link https://php.net/manual/en/intlchar.isulowercase.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint has the Lowercase Unicode property, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isULowercase(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the general category "Lu" (uppercase letter) + * @link https://php.net/manual/en/intlchar.isupper.php + * @param int|string $codepointThe integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), + * or the character encoded as a UTF-8 string (e.g. "\u{2603}")
+ * @return bool|null Returns TRUE if codepoint is an Lu uppercase letter, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isupper(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the Uppercase Unicode property + * @link https://php.net/manual/en/intlchar.isuuppercase.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint has the Uppercase Unicode property, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isUUppercase(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point has the White_Space Unicode property + * @link https://php.net/manual/en/intlchar.isuwhitespace.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint has the White_Space Unicode property, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isUWhiteSpace(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a whitespace character according to ICU + * @link https://php.net/manual/en/intlchar.iswhitespace.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a whitespace character according to ICU, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isWhitespace(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Check if code point is a hexadecimal digit + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return bool|null Returns TRUE if codepoint is a hexadecimal character, FALSE if not, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function isxdigit(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): ?bool {} + + /** + * Return Unicode code point value of character + * @link https://php.net/manual/en/intlchar.ord.php + * @param int|string $characterA Unicode character.
+ * @return int|null Returns the Unicode code point value as an integer, NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function ord(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $character): ?int {} + + /** + * Make Unicode character lowercase + * @link https://php.net/manual/en/intlchar.tolower.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|string|null Returns the Simple_Lowercase_Mapping of the code point, if any; otherwise the code point itself. + * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function tolower(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): string|int|null {} + + /** + * Make Unicode character titlecase + * @link https://php.net/manual/en/intlchar.totitle.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|string|null Returns the Simple_Titlecase_Mapping of the code point, if any; otherwise the code point itself. + * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function totitle(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): string|int|null {} + + /** + * Make Unicode character uppercase + * @link https://php.net/manual/en/intlchar.toupper.php + * @param int|string $codepoint The integer codepoint value (e.g. 0x2603 for U+2603 SNOWMAN), or the character encoded as a UTF-8 string (e.g. "\u{2603}") + * @return int|string|null Returns the Simple_Uppercase_Mapping of the code point, if any; otherwise the code point itself. + * The return type will be integer unless the code point was passed as a UTF-8 string, in which case a string will be returned. + * Or NULL if codepoint is out of bound. + * @since 7.0 + */ + #[TentativeType] + public static function toupper(#[LanguageLevelTypeAware(['8.0' => 'int|string'], default: '')] $codepoint): string|int|null {} +} diff --git a/phpstorm-stubs/intl/IntlDatePatternGenerator.php b/phpstorm-stubs/intl/IntlDatePatternGenerator.php new file mode 100644 index 0000000..7c17c15 --- /dev/null +++ b/phpstorm-stubs/intl/IntlDatePatternGenerator.php @@ -0,0 +1,13 @@ + + * Sort strings with different accents from the back of the string. This + * attribute is automatically set to + * On + * for the French locales and a few others. Users normally would not need + * to explicitly set this attribute. There is a string comparison + * performance cost when it is set On, + * but sort key length is unaffected. Possible values are: + * Collator::ON + * Collator::OFF(default) + * Collator::DEFAULT_VALUE + * + *+ * FRENCH_COLLATION rules + *
+ * F=OFF cote < coté < côte < côté + * F=ON cote < côte < coté < côté + *
+ * + * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const FRENCH_COLLATION = 0; + + /** + *+ * The Alternate attribute is used to control the handling of the so called + * variable characters in the UCA: whitespace, punctuation and symbols. If + * Alternate is set to NonIgnorable + * (N), then differences among these characters are of the same importance + * as differences among letters. If Alternate is set to + * Shifted + * (S), then these characters are of only minor importance. The + * Shifted value is often used in combination with + * Strength + * set to Quaternary. In such a case, whitespace, punctuation, and symbols + * are considered when comparing strings, but only if all other aspects of + * the strings (base letters, accents, and case) are identical. If + * Alternate is not set to Shifted, then there is no difference between a + * Strength of 3 and a Strength of 4. For more information and examples, + * see Variable_Weighting in the + * UCA. + * The reason the Alternate values are not simply + * On and Off + * is that additional Alternate values may be added in the future. The UCA + * option Blanked is expressed with Strength set to 3, and Alternate set to + * Shifted. The default for most locales is NonIgnorable. If Shifted is + * selected, it may be slower if there are many strings that are the same + * except for punctuation; sort key length will not be affected unless the + * strength level is also increased. + *
+ *+ * Possible values are: + * Collator::NON_IGNORABLE(default) + * Collator::SHIFTED + * Collator::DEFAULT_VALUE + *
+ *+ * ALTERNATE_HANDLING rules + *
+ * S=3, A=N di Silva < Di Silva < diSilva < U.S.A. < USA + * S=3, A=S di Silva = diSilva < Di Silva < U.S.A. = USA + * S=4, A=S di Silva < diSilva < Di Silva < U.S.A. < USA + *
+ * + * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const ALTERNATE_HANDLING = 1; + + /** + *+ * The Case_First attribute is used to control whether uppercase letters + * come before lowercase letters or vice versa, in the absence of other + * differences in the strings. The possible values are + * Uppercase_First + * (U) and Lowercase_First + * (L), plus the standard Default + * and Off. + * There is almost no difference between the Off and Lowercase_First + * options in terms of results, so typically users will not use + * Lowercase_First: only Off or Uppercase_First. (People interested in the + * detailed differences between X and L should consult the Collation + * Customization). Specifying either L or U won't affect string comparison + * performance, but will affect the sort key length. + *
+ *+ * Possible values are: + * Collator::OFF(default) + * Collator::LOWER_FIRST + * Collator::UPPER_FIRST + * Collator:DEFAULT + *
+ *+ * CASE_FIRST rules + *
+ * C=X or C=L "china" < "China" < "denmark" < "Denmark" + * C=U "China" < "china" < "Denmark" < "denmark" + *
+ * + * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const CASE_FIRST = 2; + + /** + *+ * The Case_Level attribute is used when ignoring accents but not case. In + * such a situation, set Strength to be Primary, + * and Case_Level to be On. + * In most locales, this setting is Off by default. There is a small + * string comparison performance and sort key impact if this attribute is + * set to be On. + *
+ *+ * Possible values are: + * Collator::OFF(default) + * Collator::ON + * Collator::DEFAULT_VALUE + *
+ *+ * CASE_LEVEL rules + *
+ * S=1, E=X role = Role = rôle + * S=1, E=O role = rôle < Role + *
+ * + * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const CASE_LEVEL = 3; + + /** + *+ * The Normalization setting determines whether text is thoroughly + * normalized or not in comparison. Even if the setting is off (which is + * the default for many locales), text as represented in common usage will + * compare correctly (for details, see UTN #5). Only if the accent marks + * are in noncanonical order will there be a problem. If the setting is + * On, + * then the best results are guaranteed for all possible text input. + * There is a medium string comparison performance cost if this attribute + * is On, + * depending on the frequency of sequences that require normalization. + * There is no significant effect on sort key length. If the input text is + * known to be in NFD or NFKD normalization forms, there is no need to + * enable this Normalization option. + *
+ *+ * Possible values are: + * Collator::OFF(default) + * Collator::ON + * Collator::DEFAULT_VALUE + *
+ * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const NORMALIZATION_MODE = 4; + + /** + *+ * The ICU Collation Service supports many levels of comparison (named + * "Levels", but also known as "Strengths"). Having these categories + * enables ICU to sort strings precisely according to local conventions. + * However, by allowing the levels to be selectively employed, searching + * for a string in text can be performed with various matching conditions. + * For more detailed information, see + * collator_set_strength chapter. + *
+ *+ * Possible values are: + * Collator::PRIMARY + * Collator::SECONDARY + * Collator::TERTIARY(default) + * Collator::QUATERNARY + * Collator::IDENTICAL + * Collator::DEFAULT_VALUE + *
+ * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const STRENGTH = 5; + + /** + *+ * Compatibility with JIS x 4061 requires the introduction of an additional + * level to distinguish Hiragana and Katakana characters. If compatibility + * with that standard is required, then this attribute should be set + * On, + * and the strength set to Quaternary. This will affect sort key length + * and string comparison string comparison performance. + *
+ *+ * Possible values are: + * Collator::OFF(default) + * Collator::ON + * Collator::DEFAULT_VALUE + *
+ * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const HIRAGANA_QUATERNARY_MODE = 6; + + /** + *+ * When turned on, this attribute generates a collation key for the numeric + * value of substrings of digits. This is a way to get '100' to sort AFTER + * '2'. + *
+ *+ * Possible values are: + * Collator::OFF(default) + * Collator::ON + * Collator::DEFAULT_VALUE + *
+ * @link https://php.net/manual/en/class.collator.php#intl.collator-constants + */ + public const NUMERIC_COLLATION = 7; + public const SORT_REGULAR = 0; + public const SORT_STRING = 1; + public const SORT_NUMERIC = 2; + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale containing the required collation rules. Special values for + * locales can be passed in - if null is passed for the locale, the + * default locale collation rules will be used. If empty string ("") or + * "root" are passed, UCA rules will be used. + *
+ * @return Collator|null Return new instance of Collator object, or NULL + * on error. + */ + #[TentativeType] + public static function create(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?Collator {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The first string to compare. + *
+ * @param string $string2+ * The second string to compare. + *
+ * @return int|false Return comparison result: + *+ *
+ * 1 if str1 is greater than + * str2 ; + *
+ *+ * 0 if str1 is equal to + * str2; + *
+ *+ * -1 if str1 is less than + * str2 . + *
+ * On error + * boolean + * FALSE + * is returned. + */ + #[Pure] + #[TentativeType] + public function compare( + #[LanguageAware(['8.0' => 'string'], default: '')] $string1, + #[LanguageAware(['8.0' => 'string'], default: '')] $string2 + ): int|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Array of strings to sort. + *
+ * @param int $flags [optional]+ * Optional sorting type, one of the following: + *
+ *+ * Collator::SORT_REGULAR + * - compare items normally (don't change types) + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function sort( + array &$array, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Collator::SORT_REGULAR])] $flags = 0 + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Array of strings to sort
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function sortWithSortKeys( + array &$array, + #[ElementAvailable(from: '5.3', to: '5.6')] $flags = [] + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Array of strings to sort.
+ * @param int $flags [optional]+ * Optional sorting type, one of the following: + * Collator::SORT_REGULAR + * - compare items normally (don't change types) + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function asort( + array &$array, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Collator::SORT_REGULAR])] $flags = 0 + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute to get value for. + *
+ * @return int|false Attribute value, or boolean FALSE on error. + */ + #[Pure] + #[TentativeType] + public function getAttribute(#[LanguageAware(['8.0' => 'int'], default: '')] $attribute): int|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Attribute.
+ * @param int $value+ * Attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setAttribute( + #[LanguageAware(['8.0' => 'int'], default: '')] $attribute, + #[LanguageAware(['8.0' => 'int'], default: '')] $value + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Strength to set.
+ *+ * Possible values are: + * Collator::PRIMARY + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function setStrength(#[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Collator::PRIMARY])] $strength) {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * You can choose between valid and actual locale ( + * Locale::VALID_LOCALE and + * Locale::ACTUAL_LOCALE, + * respectively). + *
+ * @return string|false Real locale name from which the collation data comes. If the collator was + * instantiated from rules or an error occurred, returns + * boolean FALSE. + */ + #[Pure] + #[TentativeType] + public function getLocale( + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE])] $type + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to produce the key from. + *
+ * @return string|false the collation key for the string. Collation keys can be compared directly instead of strings. + */ + #[Pure] + #[TentativeType] + public function getSortKey( + #[LanguageAware(['8.0' => 'string'], default: '')] $string, + #[ElementAvailable(from: '5.3', to: '5.6')] $arg2 + ): string|false {} +} + +class NumberFormatter +{ + public const CURRENCY_ACCOUNTING = 12; + + /** + * Decimal format defined by pattern + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PATTERN_DECIMAL = 0; + + /** + * Decimal format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DECIMAL = 1; + + /** + * Currency format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const CURRENCY = 2; + + /** + * Percent format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PERCENT = 3; + + /** + * Scientific format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SCIENTIFIC = 4; + + /** + * Spellout rule-based format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SPELLOUT = 5; + + /** + * Ordinal rule-based format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ORDINAL = 6; + + /** + * Duration rule-based format + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DURATION = 7; + + /** + * Rule-based format defined by pattern + * @link https://php.net/manual/en/class.locale.php#intl.locale-constants + */ + public const PATTERN_RULEBASED = 9; + + /** + * Alias for PATTERN_DECIMAL + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const IGNORE = 0; + + /** + * Default format for the locale + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DEFAULT_STYLE = 1; + + /** + * Rounding mode to round towards positive infinity. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_CEILING = 0; + + /** + * Rounding mode to round towards negative infinity. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_FLOOR = 1; + + /** + * Rounding mode to round towards zero. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_DOWN = 2; + + /** + * Rounding mode to round away from zero. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_UP = 3; + + /** + * Rounding mode to round towards the "nearest neighbor" unless both + * neighbors are equidistant, in which case, round towards the even + * neighbor. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_HALFEVEN = 4; + + /** + * Rounding mode to round towards "nearest neighbor" unless both neighbors + * are equidistant, in which case round down. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_HALFDOWN = 5; + + /** + * Rounding mode to round towards "nearest neighbor" unless both neighbors + * are equidistant, in which case round up. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUND_HALFUP = 6; + + /** + * Pad characters inserted before the prefix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PAD_BEFORE_PREFIX = 0; + + /** + * Pad characters inserted after the prefix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PAD_AFTER_PREFIX = 1; + + /** + * Pad characters inserted before the suffix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PAD_BEFORE_SUFFIX = 2; + + /** + * Pad characters inserted after the suffix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PAD_AFTER_SUFFIX = 3; + + /** + * Parse integers only. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PARSE_INT_ONLY = 0; + + /** + * Use grouping separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const GROUPING_USED = 1; + + /** + * Always show decimal point. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DECIMAL_ALWAYS_SHOWN = 2; + + /** + * Maximum integer digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MAX_INTEGER_DIGITS = 3; + + /** + * Minimum integer digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MIN_INTEGER_DIGITS = 4; + + /** + * Integer digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const INTEGER_DIGITS = 5; + + /** + * Maximum fraction digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MAX_FRACTION_DIGITS = 6; + + /** + * Minimum fraction digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MIN_FRACTION_DIGITS = 7; + + /** + * Fraction digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const FRACTION_DIGITS = 8; + + /** + * Multiplier. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MULTIPLIER = 9; + + /** + * Grouping size. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const GROUPING_SIZE = 10; + + /** + * Rounding Mode. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUNDING_MODE = 11; + + /** + * Rounding increment. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ROUNDING_INCREMENT = 12; + + /** + * The width to which the output of format() is padded. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const FORMAT_WIDTH = 13; + + /** + * The position at which padding will take place. See pad position + * constants for possible argument values. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PADDING_POSITION = 14; + + /** + * Secondary grouping size. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SECONDARY_GROUPING_SIZE = 15; + + /** + * Use significant digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SIGNIFICANT_DIGITS_USED = 16; + + /** + * Minimum significant digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MIN_SIGNIFICANT_DIGITS = 17; + + /** + * Maximum significant digits. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MAX_SIGNIFICANT_DIGITS = 18; + + /** + * Lenient parse mode used by rule-based formats. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const LENIENT_PARSE = 19; + + /** + * Positive prefix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const POSITIVE_PREFIX = 0; + + /** + * Positive suffix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const POSITIVE_SUFFIX = 1; + + /** + * Negative prefix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const NEGATIVE_PREFIX = 2; + + /** + * Negative suffix. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const NEGATIVE_SUFFIX = 3; + + /** + * The character used to pad to the format width. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PADDING_CHARACTER = 4; + + /** + * The ISO currency code. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const CURRENCY_CODE = 5; + + /** + * The default rule set. This is only available with rule-based + * formatters. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DEFAULT_RULESET = 6; + + /** + * The public rule sets. This is only available with rule-based + * formatters. This is a read-only attribute. The public rulesets are + * returned as a single string, with each ruleset name delimited by ';' + * (semicolon). + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PUBLIC_RULESETS = 7; + + /** + * The decimal separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DECIMAL_SEPARATOR_SYMBOL = 0; + + /** + * The grouping separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const GROUPING_SEPARATOR_SYMBOL = 1; + + /** + * The pattern separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PATTERN_SEPARATOR_SYMBOL = 2; + + /** + * The percent sign. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PERCENT_SYMBOL = 3; + + /** + * Zero. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ZERO_DIGIT_SYMBOL = 4; + + /** + * Character representing a digit in the pattern. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DIGIT_SYMBOL = 5; + + /** + * The minus sign. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MINUS_SIGN_SYMBOL = 6; + + /** + * The plus sign. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PLUS_SIGN_SYMBOL = 7; + + /** + * The currency symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const CURRENCY_SYMBOL = 8; + + /** + * The international currency symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const INTL_CURRENCY_SYMBOL = 9; + + /** + * The monetary separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MONETARY_SEPARATOR_SYMBOL = 10; + + /** + * The exponential symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const EXPONENTIAL_SYMBOL = 11; + + /** + * Per mill symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PERMILL_SYMBOL = 12; + + /** + * Escape padding character. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PAD_ESCAPE_SYMBOL = 13; + + /** + * Infinity symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const INFINITY_SYMBOL = 14; + + /** + * Not-a-number symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const NAN_SYMBOL = 15; + + /** + * Significant digit symbol. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SIGNIFICANT_DIGIT_SYMBOL = 16; + + /** + * The monetary grouping separator. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const MONETARY_GROUPING_SEPARATOR_SYMBOL = 17; + + /** + * Derive the type from variable type + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const TYPE_DEFAULT = 0; + + /** + * Format/parse as 32-bit integer + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const TYPE_INT32 = 1; + + /** + * Format/parse as 64-bit integer + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const TYPE_INT64 = 2; + + /** + * Format/parse as floating point value + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const TYPE_DOUBLE = 3; + + /** + * Format/parse as currency value + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + * @deprecated 8.3 + */ + public const TYPE_CURRENCY = 4; + + /** + * @link https://www.php.net/manual/en/class.numberformatter.php + * @param string $locale + * @param int $style + * @param string $pattern [optional] + */ + #[Pure] + public function __construct( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([NumberFormatter::PATTERN_DECIMAL, + NumberFormatter::PATTERN_RULEBASED, NumberFormatter::CURRENCY, NumberFormatter::PERCENT, + NumberFormatter::SCIENTIFIC, NumberFormatter::SPELLOUT, NumberFormatter::ORDINAL, + NumberFormatter::DURATION, NumberFormatter::PATTERN_RULEBASED, NumberFormatter::CURRENCY_ACCOUNTING, + NumberFormatter::DEFAULT_STYLE, NumberFormatter::IGNORE])] $style, + #[LanguageAware(['8.0' => 'string|null'], default: '')] $pattern = null + ) {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Locale in which the number would be formatted (locale name, e.g. en_CA). + *
+ * @param int $style+ * Style of the formatting, one of the + * format style constants. If + * NumberFormatter::PATTERN_DECIMAL + * or NumberFormatter::PATTERN_RULEBASED + * is passed then the number format is opened using the given pattern, + * which must conform to the syntax described in + * ICU DecimalFormat + * documentation or + * ICU RuleBasedNumberFormat + * documentation, respectively. + *
+ * @param string $pattern [optional]+ * Pattern string if the chosen style requires a pattern. + *
+ * @return NumberFormatter|false NumberFormatter object or FALSE on error. + */ + #[TentativeType] + public static function create( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([NumberFormatter::PATTERN_DECIMAL, + NumberFormatter::PATTERN_RULEBASED, NumberFormatter::CURRENCY, NumberFormatter::PERCENT, + NumberFormatter::SCIENTIFIC, NumberFormatter::SPELLOUT, NumberFormatter::ORDINAL, + NumberFormatter::DURATION, NumberFormatter::PATTERN_RULEBASED, NumberFormatter::CURRENCY_ACCOUNTING, + NumberFormatter::DEFAULT_STYLE, NumberFormatter::IGNORE])] $style, + #[LanguageAware(['8.0' => 'string|null'], default: '')] $pattern = null + ): ?NumberFormatter {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The value to format. Can be integer or float, + * other values will be converted to a numeric value. + *
+ * @param int $type [optional]+ * The + * formatting type to use. + *
+ * @return string|false the string containing formatted value, or FALSE on error. + */ + #[Pure] + #[TentativeType] + public function format( + #[LanguageAware(['8.0' => 'int|float'], default: '')] $num, + #[LanguageAware(['8.0' => 'int'], default: '')] $type = 0 + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The + * formatting type to use. By default, + * NumberFormatter::TYPE_DOUBLE is used. + *
+ * @param int &$offset [optional]+ * Offset in the string at which to begin parsing. On return, this value + * will hold the offset at which parsing ended. + *
+ * @return mixed The value of the parsed number or FALSE on error. + */ + #[TentativeType] + public function parse( + #[LanguageAware(['8.0' => 'string'], default: '')] $string, + #[LanguageAware(['8.0' => 'int'], default: '')] $type = NumberFormatter::TYPE_DOUBLE, + &$offset = null + ): int|float|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The numeric currency value. + *
+ * @param string $currency+ * The 3-letter ISO 4217 currency code indicating the currency to use. + *
+ * @return string|false String representing the formatted currency value. + */ + #[Pure] + #[TentativeType] + public function formatCurrency( + #[LanguageAware(['8.0' => 'float'], default: '')] $amount, + #[LanguageAware(['8.0' => 'string'], default: '')] $currency + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Parameter to receive the currency name (3-letter ISO 4217 currency + * code). + *
+ * @param int &$offset [optional]+ * Offset in the string at which to begin parsing. On return, this value + * will hold the offset at which parsing ended. + *
+ * @return float|false The parsed numeric value or FALSE on error. + */ + #[TentativeType] + public function parseCurrency(#[LanguageAware(['8.0' => 'string'], default: '')] $string, &$currency, &$offset = null): float|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * numeric attribute constants. + *
+ * @param int $value+ * The attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setAttribute( + #[LanguageAware(['8.0' => 'int'], default: '')] $attribute, + #[LanguageAware(['8.0' => 'int|float'], default: '')] $value + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * numeric attribute constants. + *
+ * @return int|float|false Return attribute value on success, or FALSE on error. + */ + #[Pure] + #[TentativeType] + public function getAttribute(#[LanguageAware(['8.0' => 'int'], default: '')] $attribute): int|float|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * text attribute + * constants. + *
+ * @param string $value+ * Text for the attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setTextAttribute( + #[LanguageAware(['8.0' => 'int'], default: '')] $attribute, + #[LanguageAware(['8.0' => 'string'], default: '')] $value + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * text attribute constants. + *
+ * @return string|false Return attribute value on success, or FALSE on error. + */ + #[Pure] + #[TentativeType] + public function getTextAttribute(#[LanguageAware(['8.0' => 'int'], default: '')] $attribute): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Symbol specifier, one of the + * format symbol constants. + *
+ * @param string $value+ * Text for the symbol. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setSymbol( + #[LanguageAware(['8.0' => 'int'], default: '')] $symbol, + #[LanguageAware(['8.0' => 'string'], default: '')] $value + ): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Symbol specifier, one of the + * format symbol constants. + *
+ * @return string|false The symbol string or FALSE on error. + */ + #[Pure] + #[TentativeType] + public function getSymbol(#[LanguageAware(['8.0' => 'int'], default: '')] $symbol): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Pattern in syntax described in + * ICU DecimalFormat + * documentation. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setPattern(#[LanguageAware(['8.0' => 'string'], default: '')] $pattern): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * You can choose between valid and actual locale ( + * Locale::VALID_LOCALE, + * Locale::ACTUAL_LOCALE, + * respectively). The default is the actual locale. + *
+ * @return string|false The locale name used to create the formatter. + */ + #[Pure] + #[TentativeType] + public function getLocale( + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Locale::VALID_LOCALE, Locale::ACTUAL_LOCALE])] $type = 0 + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)The input string to normalize
+ * @param int $formOne of the normalization forms.
+ * @return string|false The normalized string or FALSE if an error occurred. + */ + #[TentativeType] + public static function normalize( + #[LanguageAware(['8.0' => 'string'], default: '')] $string, + #[ElementAvailable(from: '5.3', to: '5.6')] $form, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'int'], default: '')] $form = Normalizer::FORM_C, + #[ElementAvailable(from: '5.3', to: '5.6')] $arg3 + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)The input string to normalize
+ * @param int $form+ * One of the normalization forms. + *
+ * @return bool TRUE if normalized, FALSE otherwise or if there an error + */ + #[TentativeType] + public static function isNormalized( + #[LanguageAware(['8.0' => 'string'], default: '')] $string, + #[ElementAvailable(from: '5.3', to: '5.6')] $form, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'int'], default: '')] $form = Normalizer::FORM_C, + #[ElementAvailable(from: '5.3', to: '5.6')] $arg3 + ): bool {} + + /** + * @param string $stringThe input string to normalize
+ * @param int $form + * @return string|nullReturns a string containing the Decomposition_Mapping property, if present in the UCD. + * Returns null if there is no Decomposition_Mapping property for the character.
+ * @link https://www.php.net/manual/en/normalizer.getrawdecomposition.php + * @since 7.3 + */ + #[TentativeType] + public static function getRawDecomposition( + string $string, + #[ElementAvailable(from: '8.0')] int $form = 16 + ): ?string {} +} + +class Locale +{ + /** + * This is locale the data actually comes from. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const ACTUAL_LOCALE = 0; + + /** + * This is the most specific locale supported by ICU. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const VALID_LOCALE = 1; + + /** + * Used as locale parameter with the methods of the various locale affected classes, + * such as NumberFormatter. This constant would make the methods to use default + * locale. + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const DEFAULT_LOCALE = null; + + /** + * Language subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const LANG_TAG = "language"; + + /** + * Extended language subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const EXTLANG_TAG = "extlang"; + + /** + * Script subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const SCRIPT_TAG = "script"; + + /** + * Region subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const REGION_TAG = "region"; + + /** + * Variant subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const VARIANT_TAG = "variant"; + + /** + * Grandfathered Language subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const GRANDFATHERED_LANG_TAG = "grandfathered"; + + /** + * Private subtag + * @link https://php.net/manual/en/class.numberformatter.php#intl.numberformatter-constants + */ + public const PRIVATE_TAG = "private"; + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Is a BCP 47 compliant language tag containing the + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public static function setDefault(#[LanguageAware(['8.0' => 'string'], default: '')] $locale) {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the primary language code from + *
+ * @return string|null The language code associated with the language or NULL in case of error. + */ + #[TentativeType] + public static function getPrimaryLanguage(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?string {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the script code from + *
+ * @return string|null The script subtag for the locale or NULL if not present + */ + #[TentativeType] + public static function getScript(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?string {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the region code from + *
+ * @return string|null The region subtag for the locale or NULL if not present + */ + #[TentativeType] + public static function getRegion(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?string {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the keywords from + *
+ * @return array|false|null Associative array containing the keyword-value pairs for this locale + */ + #[TentativeType] + public static function getKeywords(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): array|false|null {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display script for + *
+ * @param string $displayLocale+ * Optional format locale to use to display the script name + *
+ * @return string|false Display name of the script for the $locale in the format appropriate for + * $in_locale. + */ + #[TentativeType] + public static function getDisplayScript( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $displayLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $displayLocale = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display region for. + *
+ * @param string $displayLocale+ * Optional format locale to use to display the region name + *
+ * @return string|false display name of the region for the $locale in the format appropriate for + * $in_locale. + */ + #[TentativeType] + public static function getDisplayRegion( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $displayLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $displayLocale = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display name for. + *
+ * @param string $displayLocaleoptional format locale
+ * @return string|false Display name of the locale in the format appropriate for $in_locale. + */ + #[TentativeType] + public static function getDisplayName( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $displayLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $displayLocale = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display language for + *
+ * @param string $displayLocale+ * Optional format locale to use to display the language name + *
+ * @return string|false display name of the language for the $locale in the format appropriate for + * $in_locale. + */ + #[TentativeType] + public static function getDisplayLanguage( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $displayLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $displayLocale = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display variant for + *
+ * @param string $displayLocale+ * Optional format locale to use to display the variant name + *
+ * @return string|false Display name of the variant for the $locale in the format appropriate for + * $in_locale. + */ + #[TentativeType] + public static function getDisplayVariant( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $displayLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $displayLocale = null + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * an array containing a list of key-value pairs, where the keys identify + * the particular locale ID subtags, and the values are the associated + * subtag values. + *
+ * The 'variant' and 'private' subtags can take maximum 15 values + * whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed + * with the suffix ranging from 0-14. Hence the keys for the input array + * can be variant0, variant1, ...,variant14. In the returned locale id, + * the subtag is ordered by suffix resulting in variant0 followed by + * variant1 followed by variant2 and so on. + *
+ *+ * The 'variant', 'private' and 'extlang' multiple values can be specified both + * as array under specific key (e.g. 'variant') and as multiple numbered keys + * (e.g. 'variant0', 'variant1', etc.). + *
+ * + * @return string|false The corresponding locale identifier. + */ + #[TentativeType] + public static function composeLocale(array $subtags): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the subtag array from. Note: The 'variant' and + * 'private' subtags can take maximum 15 values whereas 'extlang' can take + * maximum 3 values. + *
+ * @return array|null an array containing a list of key-value pairs, where the keys + * identify the particular locale ID subtags, and the values are the + * associated subtag values. The array will be ordered as the locale id + * subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the + * returned array will have variant0=>varX , variant1=>varY , + * variant2=>varZ + */ + #[TentativeType] + public static function parseLocale(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?array {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the variants from + *
+ * @return array|null The array containing the list of all variants subtag for the locale + * or NULL if not present + */ + #[TentativeType] + public static function getAllVariants(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?array {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The language tag to check + *
+ * @param string $locale+ * The language range to check against + *
+ * @param bool $canonicalize+ * If true, the arguments will be converted to canonical form before + * matching. + *
+ * @return bool|null TRUE if $locale matches $langtag FALSE otherwise. + */ + #[TentativeType] + public static function filterMatches( + #[LanguageAware(['8.0' => 'string'], default: '')] $languageTag, + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $canonicalize, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'bool'], default: '')] $canonicalize = false + ): ?bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * An array containing a list of language tags to compare to + * locale. Maximum 100 items allowed. + *
+ * @param string $locale+ * The locale to use as the language range when matching. + *
+ * @param bool $canonicalize+ * If true, the arguments will be converted to canonical form before + * matching. + *
+ * @param string $defaultLocale+ * The locale to use if no match is found. + *
+ * @return string|null The closest matching language tag or default value. + */ + #[TentativeType] + public static function lookup( + array $languageTag, + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] $canonicalize, + #[ElementAvailable(from: '5.3', to: '5.6')] $defaultLocale, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'bool'], default: '')] $canonicalize = false, + #[ElementAvailable(from: '7.0')] #[LanguageAware(['8.0' => 'string|null'], default: '')] $defaultLocale = null + ): ?string {} + + /** + * @link https://php.net/manual/en/locale.canonicalize.php + * @param string $locale + * @return string|null + */ + #[TentativeType] + public static function canonicalize(#[LanguageAware(['8.0' => 'string'], default: '')] $locale): ?string {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string containing the "Accept-Language" header according to format in RFC 2616. + *
+ * @return string|false The corresponding locale identifier. + */ + #[TentativeType] + public static function acceptFromHttp(#[LanguageAware(['8.0' => 'string'], default: '')] $header): string|false {} +} + +class MessageFormatter +{ + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use when formatting arguments + *
+ * @param string $pattern+ * The pattern string to stick arguments into. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @throws IntlException on failure. + */ + #[Pure] + public function __construct( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string'], default: '')] $pattern + ) {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use when formatting arguments + *
+ * @param string $pattern+ * The pattern string to stick arguments into. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @return MessageFormatter|null The formatter object + */ + #[TentativeType] + public static function create( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string'], default: '')] $pattern + ): ?MessageFormatter {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Arguments to insert into the format string + *
+ * @return string|false The formatted string, or FALSE if an error occurred + */ + #[Pure] + #[TentativeType] + public function format(array $values): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use for formatting locale-dependent parts + *
+ * @param string $pattern+ * The pattern string to insert things into. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @param array $values+ * The array of values to insert into the format string + *
+ * @return string|false The formatted pattern string or FALSE if an error occurred + */ + #[TentativeType] + public static function formatMessage( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string'], default: '')] $pattern, + array $values + ): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to parse + *
+ * @return array|false An array containing the items extracted, or FALSE on error + */ + #[Pure] + #[TentativeType] + public function parse(#[LanguageAware(['8.0' => 'string'], default: '')] $string): array|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use for parsing locale-dependent parts + *
+ * @param string $pattern+ * The pattern with which to parse the value. + *
+ * @param string $message+ * The string to parse, conforming to the pattern. + *
+ * @return array|false An array containing items extracted, or FALSE on error + */ + #[TentativeType] + public static function parseMessage( + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string'], default: '')] $pattern, + #[LanguageAware(['8.0' => 'string'], default: '')] $message + ): array|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The pattern string to use in this message formatter. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setPattern(#[LanguageAware(['8.0' => 'string'], default: '')] $pattern): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Locale to use when formatting or parsing; default is specified in the ini setting intl.default_locale. + *
+ * @param int $dateType+ * Date type to use (none, + * short, medium, + * long, full). + * This is one of the + * IntlDateFormatter constants. + *
+ * @param int $timeType+ * Time type to use (none, + * short, medium, + * long, full). + * This is one of the + * IntlDateFormatter constants. + *
+ * @param string $timezone [optional]+ * Time zone ID, default is system default. + *
+ * @param int $calendar [optional]+ * Calendar to use for formatting or parsing; default is Gregorian. + * This is one of the + * IntlDateFormatter calendar constants. + *
+ * @param string $pattern [optional]+ * Optional pattern to use when formatting or parsing. + * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime. + *
+ * @return IntlDateFormatter|null + */ + #[TentativeType] + public static function create( + #[LanguageAware(['8.0' => 'string|null'], default: '')] $locale, + #[ElementAvailable(from: '5.3', to: '8.0')] #[LanguageAware(['8.0' => 'int'], default: '')] $dateType, + #[ElementAvailable(from: '5.3', to: '8.0')] #[LanguageAware(['8.0' => 'int'], default: '')] $timeType, + #[ElementAvailable(from: '8.1')] int $dateType = 0, + #[ElementAvailable(from: '8.1')] int $timeType = 0, + $timezone = null, + #[LanguageAware(['8.0' => 'IntlCalendar|int|null'], default: '')] $calendar = null, + #[LanguageAware(['8.0' => 'string|null'], default: '')] $pattern = null + ): ?IntlDateFormatter {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The calendar to use. + * Default is IntlDateFormatter::GREGORIAN. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function setCalendar(#[LanguageAware(['8.0' => 'IntlCalendar|int|null'], default: '')] $calendar): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The time zone ID string of the time zone to use. + * If NULL or the empty string, the default time zone for the runtime is used. + *
+ * @return bool TRUE on success or FALSE on failure. + * @removed 7.0 + * @see IntlDateFormatter::setTimeZone() + */ + #[Deprecated(replacement: "%class%->setTimeZone(%parametersList%)", since: "5.5")] + public function setTimeZoneId($zone) {} + + /** + * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)+ * The timezone to use for this formatter. This can be specified in the + * following forms: + *
+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link "https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone" date.timezone} or + * through the function {@link "https://secure.php.net/manual/en/function.date-default-timezone-set.php" date_default_timezone_set()} and as + * returned by {@link "https://secure.php.net/manual/en/function.date-default-timezone-get.php" date_default_timezone_get()}. + *
+ *+ * An {@link "https://secure.php.net/manual/en/class.intltimezone.php" IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link "https://secure.php.net/manual/en/class.datetimezone.php" DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link "https://secure.php.net/manual/en/language.types.string.php" string}, which should be a valid ICU timezone identifier. + * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted. + *
+ *+ * New pattern string to use. + * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime. + *
+ * @return bool TRUE on success or FALSE on failure. + * Bad formatstrings are usually the cause of the failure. + */ + #[TentativeType] + public function setPattern(#[LanguageAware(['8.0' => 'string'], default: '')] $pattern): bool {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Sets whether the parser is lenient or not, default is TRUE (lenient). + *
+ * @return void + */ + #[TentativeType] + public function setLenient(#[LanguageAware(['8.0' => 'bool'], default: '')] $lenient): void {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Value to format. This may be a DateTime object, + * an integer representing a Unix timestamp value (seconds + * since epoch, UTC) or an array in the format output by + * localtime. + *
+ * @return string|false The formatted string or, if an error occurred, FALSE. + */ + #[TentativeType] + public function format( + #[ElementAvailable(from: '5.3', to: '7.4')] $datetime = null, + #[ElementAvailable(from: '8.0')] $datetime, + #[ElementAvailable(from: '5.3', to: '7.4')] $array = null + ): string|false {} + + /** + * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)+ * An object of type {@link "https://secure.php.net/manual/en/class.intlcalendar.php" IntlCalendar} or {@link "https://secure.php.net/manual/en/class.datetime.php" DateTime}. The timezone information in the object will be used. + *
+ * @param mixed $format [optional]+ * How to format the date/time. This can either be an {@link "https://secure.php.net/manual/en/language.types.array.php" array} with + * two elements (first the date style, then the time style, these being one + * of the constants IntlDateFormatter::NONE, + * IntlDateFormatter::SHORT, + * IntlDateFormatter::MEDIUM, + * IntlDateFormatter::LONG, + * IntlDateFormatter::FULL), a long with + * the value of one of these constants (in which case it will be used both + * for the time and the date) or a {@link "https://secure.php.net/manual/en/language.types.string.php" string} with the format + * described in {@link "http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details" the ICU documentation}. + * If NULL, the default style will be used. + *
+ * @param string|null $locale [optional]+ * The locale to use, or NULL to use the {@link "https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale" default one}.
+ * @return string|false A string with result or FALSE on failure. + */ + #[TentativeType] + public static function formatObject($datetime, $format = null, #[LanguageAware(['8.0' => 'string|null'], default: '')] $locale = null): string|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * string to convert to a time + *
+ * @param int &$offset [optional]+ * Position at which to start the parsing in $value (zero-based). + * If no error occurs before $value is consumed, $parse_pos will contain -1 + * otherwise it will contain the position at which parsing ended (and the error occurred). + * This variable will contain the end position if the parse fails. + * If $parse_pos > strlen($value), the parse fails immediately. + *
+ * @return int|float|false timestamp parsed value + */ + #[TentativeType] + public function parse(#[LanguageAware(['8.0' => 'string'], default: '')] $string, &$offset = null): int|float|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * string to convert to a time + *
+ * @param int &$offset [optional]+ * Position at which to start the parsing in $value (zero-based). + * If no error occurs before $value is consumed, $parse_pos will contain -1 + * otherwise it will contain the position at which parsing ended . + * If $parse_pos > strlen($value), the parse fails immediately. + *
+ * @return array|false Localtime compatible array of integers : contains 24 hour clock value in tm_hour field + */ + #[TentativeType] + public function localtime(#[LanguageAware(['8.0' => 'string'], default: '')] $string, &$offset = null): array|false {} + + /** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Locale for which the resources should be loaded (locale name, e.g. en_CA).
+ * @param string $bundleThe directory where the data is stored or the name of the .dat file.
+ * @param bool $fallback [optional]Whether locale should match exactly or fallback to parent locale is allowed.
+ */ + #[Pure] + public function __construct( + #[LanguageAware(['8.0' => 'string|null'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string|null'], default: '')] $bundle, + #[LanguageAware(['8.0' => 'bool'], default: '')] $fallback = true + ) {} + + /** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * Locale for which the resources should be loaded (locale name, e.g. en_CA). + *
+ * @param string $bundle+ * The directory where the data is stored or the name of the .dat file. + *
+ * @param bool $fallback [optional]+ * Whether locale should match exactly or fallback to parent locale is allowed. + *
+ * @return ResourceBundle|null ResourceBundle object or null on error. + */ + #[TentativeType] + public static function create( + #[LanguageAware(['8.0' => 'string|null'], default: '')] $locale, + #[LanguageAware(['8.0' => 'string|null'], default: '')] $bundle, + #[LanguageAware(['8.0' => 'bool'], default: '')] $fallback = true + ): ?ResourceBundle {} + + /** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * Data index, must be string or integer. + *
+ * @param bool $fallback + * @return mixed the data located at the index or NULL on error. Strings, integers and binary data strings + * are returned as corresponding PHP types, integer array is returned as PHP array. Complex types are + * returned as ResourceBundle object. + */ + #[Pure] + #[TentativeType] + public function get($index, #[LanguageAware(['8.0' => 'bool'], default: '')] $fallback = true): mixed {} + + /** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * Path of ResourceBundle for which to get available locales, or + * empty string for default locales list. + *
+ * @return array|false the list of locales supported by the bundle. + */ + #[TentativeType] + public static function getLocales(#[LanguageAware(['8.0' => 'string'], default: '')] $bundle): array|false {} + + /** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * The id. + *
+ * @param int $direction [optional]+ * The direction, defaults to + * Transliterator::FORWARD. + * May also be set to + * Transliterator::REVERSE. + *
+ * @return Transliterator|null a Transliterator object on success, + * or NULL on failure. + */ + #[TentativeType] + public static function create( + #[LanguageAware(['8.0' => 'string'], default: '')] $id, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Transliterator::FORWARD, Transliterator::REVERSE])] $direction = 0 + ): ?Transliterator {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ * The rules. + *
+ * @param int $direction [optional]+ * The direction, defaults to + * {@see Transliterator::FORWARD}. + * May also be set to + * {@see Transliterator::REVERSE}. + *
+ * @return Transliterator|null a Transliterator object on success, + * or NULL on failure. + */ + #[TentativeType] + public static function createFromRules( + #[LanguageAware(['8.0' => 'string'], default: '')] $rules, + #[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Transliterator::FORWARD, Transliterator::REVERSE])] $direction = 0 + ): ?Transliterator {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ * The string to be transformed. + *
+ * @param int $start [optional]+ * The start index (in UTF-16 code units) from which the string will start + * to be transformed, inclusive. Indexing starts at 0. The text before will + * be left as is. + *
+ * @param int $end [optional]+ * The end index (in UTF-16 code units) until which the string will be + * transformed, exclusive. Indexing starts at 0. The text after will be + * left as is. + *
+ * @return string|false The transfomed string on success, or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function transliterate( + #[LanguageAware(['8.0' => 'string'], default: '')] $string, + #[LanguageAware(['8.0' => 'int'], default: '')] $start = 0, + #[LanguageAware(['8.0' => 'int'], default: '')] $end = -1 + ): string|false {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ *
+ * @param string &$errorCode [optional]+ *
+ * @return bool + */ + #[TentativeType] + public function isSuspicious(#[LanguageAware(['8.0' => 'string'], default: '')] $string, &$errorCode = null): bool {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ *
+ * @param string $string2+ *
+ * @param string &$errorCode [optional]+ *
+ * @return bool + */ + #[TentativeType] + public function areConfusable( + #[LanguageAware(['8.0' => 'string'], default: '')] $string1, + #[LanguageAware(['8.0' => 'string'], default: '')] $string2, + &$errorCode = null + ): bool {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ *
+ * @return void + */ + #[TentativeType] + public function setAllowedLocales(#[LanguageAware(['8.0' => 'string'], default: '')] $locales): void {} + + /** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ *
+ * @return void + */ + #[TentativeType] + public function setChecks(#[LanguageAware(['8.0' => 'int'], default: '')] $checks): void {} + + #[TentativeType] + public function setRestrictionLevel(int $level): void {} +} + +/** + * @since 5.5 + */ +class IntlGregorianCalendar extends IntlCalendar +{ + /** + * @link https://www.php.net/manual/en/intlgregoriancalendar.construct + * @param int $timezoneOrYear [optional] + * @param int $localeOrMonth [optional] + * @param int $day [optional] + * @param int $hour [optional] + * @param int $minute [optional] + * @param int $second [optional] + */ + public function __construct($timezoneOrYear, $localeOrMonth, $day, $hour, $minute, $second) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param int $valueThe signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type. + * For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.
+ * @return bool Returns TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function add( + #[LanguageAware(['8.0' => 'int'], default: '')] $field, + #[LanguageAware(['8.0' => 'int'], default: '')] $value + ): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)The calendar whose time will be checked against this object's time.
+ * @return bool + * Returns TRUE if this object's current time is after that of the + * calendar argument's time. Returns FALSE otherwise. + * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions. + */ + #[Pure] + #[TentativeType] + public function after(IntlCalendar $other): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)The calendar whose time will be checked against this object's time.
+ * @return bool + * Returns TRUE if this object's current time is before that of the + * calendar argument's time. Returns FALSE otherwise. + * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions. + */ + #[Pure] + #[TentativeType] + public function before(IntlCalendar $other): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return bool Returns TRUE on success or FALSE on failure. Failure can only occur is invalid arguments are provided. + */ + public function clear(#[LanguageAware(['8.0' => 'int|null'], default: '')] $field = null) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The timezone to use. + *
+ * + *+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or + * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as + * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}. + *
+ *+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier. + * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw + * offsets such as "GMT+08:30" are also accepted. + *
+ *+ * A locale to use or NULL to use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale the default locale}. + *
+ * @return IntlCalendar|null + * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} instance or NULL on + * failure. + */ + #[TentativeType] + public static function createInstance($timezone = null, #[LanguageAware(['8.0' => 'string|null'], default: '')] $locale = null): ?IntlCalendar {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * Returns TRUE if the current time of both this and the passed in + * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object are the same, or FALSE + * otherwise. The value FALSE can also be returned on failure. This can only + * happen if bad arguments are passed in. In any case, the two cases can be + * distinguished by calling {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()}. + *
+ */ + #[Pure] + #[TentativeType] + public function equals(#[LanguageAware(['8.0' => 'IntlCalendar'], default: '')] $other): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The time against which to compare the quantity represented by the + * field. For the result to be positive, the time + * given for this parameter must be ahead of the time of the object the + * method is being invoked on. + *
+ * @param int $field+ * The field that represents the quantity being compared. + *
+ * + *+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false Returns a (signed) difference of time in the unit associated with the + * specified field or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function fieldDifference( + #[LanguageAware(['8.0' => 'float'], default: '')] $timestamp, + #[LanguageAware(['8.0' => 'int'], default: '')] $field + ): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object or a {@link https://secure.php.net/manual/en/language.types.string.php string} that + * can be passed to {@link https://secure.php.net/manual/en/datetime.construct.php DateTime::__construct()}. + *
+ * @param $locale [optional] + * @return IntlCalendar|null + * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object or NULL in case of + * failure. If a {@link https://secure.php.net/manual/en/language.types.string.php string} is passed, any exception that occurs + * inside the {@link https://secure.php.net/manual/en/class.datetime.php DateTime} constructor is propagated. + */ + #[TentativeType] + public static function fromDateTime( + #[LanguageAware(['8.0' => 'DateTime|string'], default: '')] $datetime, + #[LanguageAware(['8.0' => 'string|null'], default: '')] #[ElementAvailable(from: '8.0')] $locale + ): ?IntlCalendar {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false An integer with the value of the time field. + */ + #[Pure] + #[TentativeType] + public function get(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the maximum value in the units associated + * with the given field or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getActualMaximum(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the minimum value in the field's + * unit or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getActualMinimum(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return int|false + * Returns one of the constants + * IntlCalendar::DOW_TYPE_WEEKDAY, + * IntlCalendar::DOW_TYPE_WEEKEND, + * IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or + * IntlCalendar::DOW_TYPE_WEEKEND_CEASE or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getDayOfWeekType(#[LanguageAware(['8.0' => 'int'], default: '')] $dayOfWeek): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The locale keyword for which relevant values are to be queried. Only + * 'calendar' is supported. + *
+ * @param string $locale+ * The locale onto which the keyword/value pair are to be appended. + *
+ * @param bool $onlyCommon + *+ * Whether to show only the values commonly used for the specified locale. + *
+ * @return Iterator|false An iterator that yields strings with the locale keyword values or FALSE on failure. + */ + #[TentativeType] + public static function getKeywordValuesForLocale( + #[LanguageAware(['8.0' => 'string'], default: '')] $keyword, + #[LanguageAware(['8.0' => 'string'], default: '')] $locale, + #[LanguageAware(['8.0' => 'bool'], default: '')] $onlyCommon + ): IntlIterator|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * An {@link https://secure.php.net/manual/en/language.types.integer.ph int} representing a field value in the field's + * unit or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getLeastMaximum(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * Whether to fetch the actual locale (the locale from which the calendar + * data originates, with Locale::ACTUAL_LOCALE) or the + * valid locale, i.e., the most specific locale supported by ICU relatively + * to the requested locale – see Locale::VALID_LOCALE. + * From the most general to the most specific, the locales are ordered in + * this fashion – actual locale, valid locale, requested locale. + *
+ * @return string|false + */ + #[Pure] + #[TentativeType] + public function getLocale(#[LanguageAware(['8.0' => 'int'], default: '')] $type): string|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + */ + #[Pure] + #[TentativeType] + public function getMaximum(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * An int representing a value for the given field in the field's unit or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getMinimum(#[LanguageAware(['8.0' => 'int'], default: '')] $field): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return int|false + * The number of milliseconds into the day at which the the weekend begins or + * ends or FALSE on failure. + */ + #[Pure] + #[TentativeType] + public function getWeekendTransition(#[LanguageAware(['8.0' => 'int'], default: '')] $dayOfWeek): int|false {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * An optional timestamp representing the number of milliseconds since the + * epoch, excluding leap seconds. If NULL, this object's current time is + * used instead. + *
+ * @return bool + *A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} indicating whether the given or this object's time occurs + * in a weekend. + *
+ *+ * The value FALSE may also be returned on failure, for instance after giving + * a date out of bounds on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ */ + #[Pure] + #[TentativeType] + public function isWeekend(#[LanguageAware(['8.0' => 'float|null'], default: '')] $timestamp = null): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time + * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param mixed $value+ * The (signed) amount to add to the field, TRUE for rolling up (adding + * 1), or FALSE for rolling down (subtracting + * 1). + *
+ * @return bool Returns TRUE on success or FALSE on failure. + */ + #[TentativeType] + public function roll(#[LanguageAware(['8.0' => 'int'], default: '')] $field, $value): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time + * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return bool Assuming there are no argument errors, returns TRUE iif the field is set. + */ + #[TentativeType] + public function PS_UNRESERVE_PREFIX_isSet(#[LanguageAware(['8.0' => 'int'], default: '')] $field): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param int $month+ * The new value for IntlCalendar::FIELD_MONTH. + *
+ * @param int $dayOfMonth [optional]+ * The new value for IntlCalendar::FIELD_DAY_OF_MONTH. + * The month sequence is zero-based, i.e., January is represented by 0, + * February by 1, ..., December is 11 and Undecember (if the calendar has + * it) is 12. + *
+ * @param int $hour [optional] + *+ * The new value for IntlCalendar::FIELD_HOUR_OF_DAY. + *
+ * @param int $minute [optional] + *+ * The new value for IntlCalendar::FIELD_MINUTE. + *
+ * @param int $second [optional]+ * The new value for IntlCalendar::FIELD_SECOND. + *
+ * @return bool Returns TRUE on success and FALSE on failure. + */ + public function set($year, $month, $dayOfMonth = null, $hour = null, $minute = null, $second = null) {} + + /** + * (PHP 5 >= 5.5.0 PECL intl >= 3.0.0a1)+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters. + */ + public function setFirstDayOfWeek(#[LanguageAware(['8.0' => 'int'], default: '')] $dayOfWeek) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * Use TRUE to activate the lenient mode; FALSE otherwise. + *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters. + */ + public function setLenient(#[LanguageAware(['8.0' => 'bool'], default: '')] $lenient) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the constants IntlCalendar::WALLTIME_FIRST or + * IntlCalendar::WALLTIME_LAST. + *
+ * @return bool + * Returns TRUE on success. Failure can only happen due to invalid parameters. + */ + public function setRepeatedWallTimeOption(#[LanguageAware(['8.0' => 'int'], default: '')] $option) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * One of the constants IntlCalendar::WALLTIME_FIRST, + * IntlCalendar::WALLTIME_LAST or + * IntlCalendar::WALLTIME_NEXT_VALID. + *
+ * @return bool + *+ * Returns TRUE on success. Failure can only happen due to invalid parameters. + *
+ */ + public function setSkippedWallTimeOption(#[LanguageAware(['8.0' => 'int'], default: '')] $option) {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * An instant represented by the number of number of milliseconds between + * such instant and the epoch, ignoring leap seconds. + *
+ * @return bool + * Returns TRUE on success and FALSE on failure. + */ + #[TentativeType] + public function setTime(#[LanguageAware(['8.0' => 'float'], default: '')] $timestamp): bool {} + + /** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The new timezone to be used by this calendar. It can be specified in the + * following ways: + * + *
+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or + * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as + * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}. + *
+ *+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier. + * See b>IntlTimeZone::createTimeZoneIDEnumeration(). Raw + * offsets such as "GMT+08:30" are also accepted. + *
+ *+ * The locale containing the required collation rules. Special values for + * locales can be passed in - if null is passed for the locale, the + * default locale collation rules will be used. If empty string ("") or + * "root" are passed, UCA rules will be used. + *
+ * @return Collator|null Return new instance of Collator object, or NULL + * on error. + */ +#[Pure] +function collator_create(string $locale): ?Collator {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The first string to compare. + *
+ * @param string $string2+ * The second string to compare. + *
+ * @return int|false Return comparison result: + *+ *
+ * 1 if string1 is greater than + * string2 ; + *
+ *+ * 0 if string1 is equal to + * string2; + *
+ *+ * -1 if string1 is less than + * string2 . + *
+ * On error + * boolean + * FALSE + * is returned. + */ +#[Pure] +function collator_compare(Collator $object, string $string1, string $string2): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute to get value for. + *
+ * @return int|false Attribute value, or boolean FALSE on error. + */ +#[Pure] +function collator_get_attribute(Collator $object, int $attribute): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Attribute.
+ * @param int $value+ * Attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function collator_set_attribute(Collator $object, int $attribute, int $value): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Strength to set.
+ *+ * Possible values are: + * Collator::PRIMARY + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function collator_set_strength(Collator $object, int $strength): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Array of strings to sort. + *
+ * @param int $flags+ * Optional sorting type, one of the following: + *
+ *+ * Collator::SORT_REGULAR + * - compare items normally (don't change types) + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function collator_sort(Collator $object, array &$array, int $flags = 0): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Array of strings to sort
+ * @return bool TRUE on success or FALSE on failure. + */ +function collator_sort_with_sort_keys( + Collator $object, + array &$array, + #[ElementAvailable(from: '5.3', to: '5.6')] $sort_flags = [] +): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)Array of strings to sort.
+ * @param int $flags+ * Optional sorting type, one of the following: + * Collator::SORT_REGULAR + * - compare items normally (don't change types) + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function collator_asort(Collator $object, array &$array, int $flags = 0): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * You can choose between valid and actual locale ( + * Locale::VALID_LOCALE and + * Locale::ACTUAL_LOCALE, + * respectively). The default is the actual locale. + *
+ * @return string|false Real locale name from which the collation data comes. If the collator was + * instantiated from rules or an error occurred, returns + * boolean FALSE. + */ +#[Pure] +function collator_get_locale(Collator $object, int $type): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to produce the key from. + *
+ * @return string|false the collation key for the string. Collation keys can be compared directly instead of strings. + */ +#[Pure] +function collator_get_sort_key( + Collator $object, + string $string, + #[ElementAvailable(from: '5.3', to: '5.6')] $arg3 +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Locale in which the number would be formatted (locale name, e.g. en_CA). + *
+ * @param int $style+ * Style of the formatting, one of the + * format style constants. If + * NumberFormatter::PATTERN_DECIMAL + * or NumberFormatter::PATTERN_RULEBASED + * is passed then the number format is opened using the given pattern, + * which must conform to the syntax described in + * ICU DecimalFormat + * documentation or + * ICU RuleBasedNumberFormat + * documentation, respectively. + *
+ * @param string|null $pattern [optional]+ * Pattern string if the chosen style requires a pattern. + *
+ * @return NumberFormatter|null NumberFormatter object or NULL on error. + */ +#[Pure] +function numfmt_create(string $locale, int $style, #[LanguageAware(['8.0' => 'string|null'], default: 'string')] $pattern = null): ?NumberFormatter {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The value to format. Can be integer or float, + * other values will be converted to a numeric value. + *
+ * @param int $type+ * The + * formatting type to use. + *
+ * @return string|false the string containing formatted value, or FALSE on error. + */ +#[Pure] +function numfmt_format(NumberFormatter $formatter, int|float $num, int $type = 0): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The + * formatting type to use. By default, + * NumberFormatter::TYPE_DOUBLE is used. + *
+ * @param int &$offset [optional]+ * Offset in the string at which to begin parsing. On return, this value + * will hold the offset at which parsing ended. + *
+ * @return int|float|false The value of the parsed number or FALSE on error. + */ +#[Pure] +function numfmt_parse(NumberFormatter $formatter, string $string, int $type = NumberFormatter::TYPE_DOUBLE, &$offset = null): int|float|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The numeric currency value. + *
+ * @param string $currency+ * The 3-letter ISO 4217 currency code indicating the currency to use. + *
+ * @return string|false String representing the formatted currency value. + */ +#[Pure] +function numfmt_format_currency(NumberFormatter $formatter, float $amount, string $currency): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Parameter to receive the currency name (3-letter ISO 4217 currency + * code). + *
+ * @param int &$offset [optional]+ * Offset in the string at which to begin parsing. On return, this value + * will hold the offset at which parsing ended. + *
+ * @return float|false The parsed numeric value or FALSE on error. + */ +function numfmt_parse_currency(NumberFormatter $formatter, string $string, &$currency, &$offset = null): float|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * numeric attribute constants. + *
+ * @param int|float $value+ * The attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function numfmt_set_attribute(NumberFormatter $formatter, int $attribute, int|float $value): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * numeric attribute constants. + *
+ * @return int|float|false Return attribute value on success, or FALSE on error. + */ +#[Pure] +function numfmt_get_attribute(NumberFormatter $formatter, int $attribute): int|float|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * text attribute + * constants. + *
+ * @param string $value+ * Text for the attribute value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function numfmt_set_text_attribute(NumberFormatter $formatter, int $attribute, string $value): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Attribute specifier - one of the + * text attribute constants. + *
+ * @return string|false Return attribute value on success, or FALSE on error. + */ +#[Pure] +function numfmt_get_text_attribute(NumberFormatter $formatter, int $attribute): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Symbol specifier, one of the + * format symbol constants. + *
+ * @param string $value+ * Text for the symbol. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function numfmt_set_symbol(NumberFormatter $formatter, int $symbol, string $value): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Symbol specifier, one of the + * format symbol constants. + *
+ * @return string|false The symbol string or FALSE on error. + */ +#[Pure] +function numfmt_get_symbol(NumberFormatter $formatter, int $symbol): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Pattern in syntax described in + * ICU DecimalFormat + * documentation. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function numfmt_set_pattern(NumberFormatter $formatter, string $pattern): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * You can choose between valid and actual locale ( + * Locale::VALID_LOCALE, + * Locale::ACTUAL_LOCALE, + * respectively). The default is the actual locale. + *
+ * @return string|false The locale name used to create the formatter. + */ +#[Pure] +function numfmt_get_locale(NumberFormatter $formatter, int $type = 0): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)The input string to normalize
+ * @param int $form [optional]One of the normalization forms.
+ * @return string|false The normalized string or FALSE if an error occurred. + */ +#[Pure] +function normalizer_normalize(string $string, int $form = Normalizer::FORM_C): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)The input string to normalize
+ * @param int $form [optional]+ * One of the normalization forms. + *
+ * @return bool TRUE if normalized, FALSE otherwise or if there an error + */ +#[Pure] +function normalizer_is_normalized(string $string, int $form = Normalizer::FORM_C): bool {} + +/** + * Gets the default locale value from the intl global 'default_locale' + * @link https://php.net/manual/en/function.locale-get-default.php + * @return string a string with the current Locale. + */ +#[Pure] +function locale_get_default(): string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The new Locale name. A comprehensive list of the supported locales is + * available at . + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function locale_set_default(string $locale): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the primary language code from + *
+ * @return string|null The language code associated with the language or NULL in case of error. + */ +#[Pure] +function locale_get_primary_language(string $locale): ?string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the script code from + *
+ * @return string|null The script subtag for the locale or NULL if not present + */ +#[Pure] +function locale_get_script(string $locale): ?string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the region code from + *
+ * @return string|null The region subtag for the locale or NULL if not present + */ +#[Pure] +function locale_get_region(string $locale): ?string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the keywords from + *
+ * @return array|false|null Associative array containing the keyword-value pairs for this locale + */ +#[Pure] +function locale_get_keywords(string $locale): array|false|null {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display script for + *
+ * @param string|null $displayLocale+ * Optional format locale to use to display the script name + *
+ * @return string|false Display name of the script for the $locale in the format appropriate for + * $in_locale. + */ +#[Pure] +function locale_get_display_script( + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $displayLocale, + #[ElementAvailable(from: '7.0')] ?string $displayLocale = null +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display region for. + *
+ * @param string|null $displayLocale+ * Optional format locale to use to display the region name + *
+ * @return string|false display name of the region for the $locale in the format appropriate for + * $in_locale. + */ +#[Pure] +function locale_get_display_region( + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $displayLocale, + #[ElementAvailable(from: '7.0')] ?string $displayLocale = null +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display name for. + *
+ * @param string|null $displayLocaleoptional format locale
+ * @return string|false Display name of the locale in the format appropriate for $in_locale. + */ +#[Pure] +function locale_get_display_name( + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $displayLocale, + #[ElementAvailable(from: '7.0')] ?string $displayLocale = null +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display language for + *
+ * @param string|null $displayLocale+ * Optional format locale to use to display the language name + *
+ * @return string|false display name of the language for the $locale in the format appropriate for + * $in_locale. + */ +#[Pure] +function locale_get_display_language( + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $displayLocale, + #[ElementAvailable(from: '7.0')] ?string $displayLocale = null +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to return a display variant for + *
+ * @param string|null $displayLocale+ * Optional format locale to use to display the variant name + *
+ * @return string|false Display name of the variant for the $locale in the format appropriate for + * $in_locale. + */ +#[Pure] +function locale_get_display_variant( + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $displayLocale, + #[ElementAvailable(from: '7.0')] ?string $displayLocale = null +): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * an array containing a list of key-value pairs, where the keys identify + * the particular locale ID subtags, and the values are the associated + * subtag values. + *
+ * The 'variant' and 'private' subtags can take maximum 15 values + * whereas 'extlang' can take maximum 3 values.e.g. Variants are allowed + * with the suffix ranging from 0-14. Hence the keys for the input array + * can be variant0, variant1, ...,variant14. In the returned locale id, + * the subtag is ordered by suffix resulting in variant0 followed by + * variant1 followed by variant2 and so on. + *
+ *+ * The 'variant', 'private' and 'extlang' multiple values can be specified both + * as array under specific key (e.g. 'variant') and as multiple numbered keys + * (e.g. 'variant0', 'variant1', etc.). + *
+ * + * @return string|false The corresponding locale identifier. + */ +#[Pure] +function locale_compose(array $subtags): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the subtag array from. Note: The 'variant' and + * 'private' subtags can take maximum 15 values whereas 'extlang' can take + * maximum 3 values. + *
+ * @return string[]|null an array containing a list of key-value pairs, where the keys + * identify the particular locale ID subtags, and the values are the + * associated subtag values. The array will be ordered as the locale id + * subtags e.g. in the locale id if variants are '-varX-varY-varZ' then the + * returned array will have variant0=>varX , variant1=>varY , + * variant2=>varZ + */ +#[Pure] +function locale_parse(string $locale): ?array {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to extract the variants from + *
+ * @return array|null The array containing the list of all variants subtag for the locale + * or NULL if not present + */ +#[Pure] +function locale_get_all_variants(string $locale): ?array {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The language tag to check + *
+ * @param string $locale+ * The language range to check against + *
+ * @param bool $canonicalize+ * If true, the arguments will be converted to canonical form before + * matching. + *
+ * @return bool|null TRUE if $locale matches $langtag FALSE otherwise. + */ +#[Pure] +function locale_filter_matches( + string $languageTag, + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] bool $canonicalize, + #[ElementAvailable(from: '7.0')] bool $canonicalize = false +): ?bool {} + +/** + * Canonicalize the locale string + * @param string $locale + * + * @return null|string + */ +#[Pure] +function locale_canonicalize(string $locale): ?string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * An array containing a list of language tags to compare to + * locale. Maximum 100 items allowed. + *
+ * @param string $locale+ * The locale to use as the language range when matching. + *
+ * @param bool $canonicalize+ * If true, the arguments will be converted to canonical form before + * matching. + *
+ * @param string|null $defaultLocale+ * The locale to use if no match is found. + *
+ * @return string|null The closest matching language tag or default value. + */ +#[Pure] +function locale_lookup( + array $languageTag, + string $locale, + #[ElementAvailable(from: '5.3', to: '5.6')] bool $canonicalize, + #[ElementAvailable(from: '5.3', to: '5.6')] ?string $defaultLocale, + #[ElementAvailable(from: '7.0')] bool $canonicalize = false, + #[ElementAvailable(from: '7.0')] ?string $defaultLocale = null, +): ?string {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string containing the "Accept-Language" header according to format in RFC 2616. + *
+ * @return string|false The corresponding locale identifier. + */ +#[Pure] +function locale_accept_from_http(string $header): string|false {} + +/** + * Constructs a new message formatter + * @param string $locale + * @param string $pattern + * @return MessageFormatter|null + */ +#[Pure] +function msgfmt_create(string $locale, string $pattern): ?MessageFormatter {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Arguments to insert into the format string + *
+ * @return string|false The formatted string, or FALSE if an error occurred + */ +#[Pure] +function msgfmt_format(MessageFormatter $formatter, array $values): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use for formatting locale-dependent parts + *
+ * @param string $pattern+ * The pattern string to insert things into. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @param array $values+ * The array of values to insert into the format string + *
+ * @return string|false The formatted pattern string or FALSE if an error occurred + */ +#[Pure] +function msgfmt_format_message(string $locale, string $pattern, array $values): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to parse + *
+ * @return array|false An array containing the items extracted, or FALSE on error + */ +#[Pure] +function msgfmt_parse(MessageFormatter $formatter, string $string): array|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The locale to use for parsing locale-dependent parts + *
+ * @param string $pattern+ * The pattern with which to parse the value. + *
+ * @param string $message+ * The string to parse, conforming to the pattern. + *
+ * @return array|false An array containing items extracted, or FALSE on error + */ +#[Pure] +function msgfmt_parse_message(string $locale, string $pattern, string $message): array|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The pattern string to use in this message formatter. + * The pattern uses an 'apostrophe-friendly' syntax; it is run through + * umsg_autoQuoteApostrophe + * before being interpreted. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function msgfmt_set_pattern(MessageFormatter $formatter, string $pattern): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Locale to use when formatting or parsing. + *
+ * @param int $dateType+ * Date type to use (none, + * short, medium, + * long, full). + * This is one of the + * IntlDateFormatter constants. + *
+ * @param int $timeType+ * Time type to use (none, + * short, medium, + * long, full). + * This is one of the + * IntlDateFormatter constants. + *
+ * @param string|null $timezone [optional]+ * Time zone ID, default is system default. + *
+ * @param IntlCalendar|int|null $calendar [optional]+ * Calendar to use for formatting or parsing; default is Gregorian. + * This is one of the + * IntlDateFormatter calendar constants. + *
+ * @param string|null $pattern [optional]+ * Optional pattern to use when formatting or parsing. + * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime. + *
+ * @return IntlDateFormatter|null + */ +#[Pure] +function datefmt_create( + ?string $locale, + #[ElementAvailable(from: '5.3', to: '8.0')] int $dateType, + #[ElementAvailable(from: '8.1')] int $dateType = 0, + #[ElementAvailable(from: '5.3', to: '8.0')] int $timeType, + #[ElementAvailable(from: '8.1')] int $timeType = 0, + $timezone = null, + IntlCalendar|int|null $calendar = null, + #[LanguageAware(['8.0' => 'string|null'], default: 'string')] $pattern = null +): ?IntlDateFormatter {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The calendar to use. + * Default is IntlDateFormatter::GREGORIAN. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The time zone ID string of the time zone to use. + * If NULL or the empty string, the default time zone for the runtime is used. + *
+ * @return bool TRUE on success or FALSE on failure. + * @removed 7.0 + * @see datefmt_set_timezone() + */ +#[Deprecated(replacement: "datefmt_set_timezone(%parametersList%)", since: "5.5")] +function datefmt_set_timezone_id(MessageFormatter $mf, $zone) {} + +/** + * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)+ * The timezone to use for this formatter. This can be specified in the + * following forms: + *
+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link "https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone" date.timezone} or + * through the function {@link "https://secure.php.net/manual/en/function.date-default-timezone-set.php" date_default_timezone_set()} and as + * returned by {@link "https://secure.php.net/manual/en/function.date-default-timezone-get.php" date_default_timezone_get()}. + *
+ *+ * An {@link "https://secure.php.net/manual/en/class.intltimezone.php" IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link "https://secure.php.net/manual/en/class.datetimezone.php" DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link "https://secure.php.net/manual/en/language.types.string.php" string}, which should be a valid ICU timezone identifier. + * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw offsets such as "GMT+08:30" are also accepted. + *
+ *+ * New pattern string to use. + * Possible patterns are documented at http://userguide.icu-project.org/formatparse/datetime. + *
+ * @return bool TRUE on success or FALSE on failure. + * Bad formatstrings are usually the cause of the failure. + */ +function datefmt_set_pattern(IntlDateFormatter $formatter, string $pattern): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Sets whether the parser is lenient or not, default is TRUE (lenient). + *
+ * @return void + */ +function datefmt_set_lenient( + IntlDateFormatter $formatter, + #[ElementAvailable(from: '8.0')] bool $lenient +): void {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * Value to format. This may be a DateTime object, + * an integer representing a Unix timestamp value (seconds + * since epoch, UTC) or an array in the format output by + * localtime. + *
+ * @return string|false The formatted string or, if an error occurred, FALSE. + */ +#[Pure] +function datefmt_format( + #[LanguageAware(['8.0' => 'IntlDateFormatter'], default: '')] #[ElementAvailable(from: '5.3', to: '7.4')] $formatter = null, + #[LanguageAware(['8.0' => 'IntlDateFormatter'], default: '')] #[ElementAvailable(from: '8.0')] $formatter, + #[ElementAvailable(from: '5.3', to: '7.4')] $datetime = null, + #[ElementAvailable(from: '8.0')] $datetime +): string|false {} + +/** + * (PHP 5 >= 5.5.0, PECL intl >= 3.0.0)+ * An object of type IntlCalendar or DateTime. The timezone information in the object will be used. + *
+ * @param array|int|string|null $format [optional]+ * How to format the date/time. This can either be an {https://secure.php.net/manual/en/language.types.array.php array} with + * two elements (first the date style, then the time style, these being one + * of the constants IntlDateFormatter::NONE, + * IntlDateFormatter::SHORT, + * IntlDateFormatter::MEDIUM, + * IntlDateFormatter::LONG, + * IntlDateFormatter::FULL), a long with + * the value of one of these constants (in which case it will be used both + * for the time and the date) or a {@link https://secure.php.net/manual/en/language.types.string.php} with the format + * described in {@link http://www.icu-project.org/apiref/icu4c/classSimpleDateFormat.html#details the ICU documentation} + * documentation. If NULL, the default style will be used. + *
+ * @param string|null $locale [optional]+ * The locale to use, or NULL to use the default one.
+ * @return string|false The formatted string or, if an error occurred, FALSE. + */ +#[Pure] +function datefmt_format_object($datetime, $format = null, ?string $locale = null): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * string to convert to a time + *
+ * @param int &$offset [optional]+ * Position at which to start the parsing in $value (zero-based). + * If no error occurs before $value is consumed, $parse_pos will contain -1 + * otherwise it will contain the position at which parsing ended (and the error occurred). + * This variable will contain the end position if the parse fails. + * If $parse_pos > strlen($value), the parse fails immediately. + *
+ * @return int|float|false timestamp parsed value + */ +function datefmt_parse(IntlDateFormatter $formatter, string $string, &$offset = null): int|float|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * string to convert to a time + *
+ * @param int &$offset [optional]+ * Position at which to start the parsing in $value (zero-based). + * If no error occurs before $value is consumed, $parse_pos will contain -1 + * otherwise it will contain the position at which parsing ended . + * If $parse_pos > strlen($value), the parse fails immediately. + *
+ * @return array|false Localtime compatible array of integers : contains 24 hour clock value in tm_hour field + */ +function datefmt_localtime(IntlDateFormatter $formatter, string $string, &$offset = null): array|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string being measured for length. It must be a valid UTF-8 string. + *
+ * @return int|false|null The length of the string on success, and 0 if the string is empty. + */ +#[Pure] +function grapheme_strlen(string $string): int|false|null {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to look in. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param int $offset [optional]+ * The optional $offset parameter allows you to specify where in $haystack to + * start searching as an offset in grapheme units (not bytes or characters). + * The position returned is still relative to the beginning of haystack + * regardless of the value of $offset. + *
+ * @return int|false the position as an integer. If needle is not found, strpos() will return boolean FALSE. + */ +#[Pure] +function grapheme_strpos(string $haystack, string $needle, int $offset = 0): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to look in. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param int $offset [optional]+ * The optional $offset parameter allows you to specify where in haystack to + * start searching as an offset in grapheme units (not bytes or characters). + * The position returned is still relative to the beginning of haystack + * regardless of the value of $offset. + *
+ * @return int|false the position as an integer. If needle is not found, grapheme_stripos() will return boolean FALSE. + */ +#[Pure] +function grapheme_stripos(string $haystack, string $needle, int $offset = 0): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to look in. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param int $offset [optional]+ * The optional $offset parameter allows you to specify where in $haystack to + * start searching as an offset in grapheme units (not bytes or characters). + * The position returned is still relative to the beginning of haystack + * regardless of the value of $offset. + *
+ * @return int|false the position as an integer. If needle is not found, grapheme_strrpos() will return boolean FALSE. + */ +#[Pure] +function grapheme_strrpos(string $haystack, string $needle, int $offset = 0): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The string to look in. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param int $offset [optional]+ * The optional $offset parameter allows you to specify where in $haystack to + * start searching as an offset in grapheme units (not bytes or characters). + * The position returned is still relative to the beginning of haystack + * regardless of the value of $offset. + *
+ * @return int|false the position as an integer. If needle is not found, grapheme_strripos() will return boolean FALSE. + */ +#[Pure] +function grapheme_strripos(string $haystack, string $needle, int $offset = 0): int|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The input string. Must be valid UTF-8. + *
+ * @param int $offset+ * Start position in default grapheme units. + * If $start is non-negative, the returned string will start at the + * $start'th position in $string, counting from zero. If $start is negative, + * the returned string will start at the $start'th grapheme unit from the + * end of string. + *
+ * @param int|null $length [optional]+ * Length in grapheme units. + * If $length is given and is positive, the string returned will contain + * at most $length grapheme units beginning from $start (depending on the + * length of string). If $length is given and is negative, then + * that many grapheme units will be omitted from the end of string (after the + * start position has been calculated when a start is negative). If $start + * denotes a position beyond this truncation, FALSE will be returned. + *
+ * @return string|falsethe extracted part of $string,
+ * or FALSE if $length is negative and $start denotes a position beyond truncation $length,
+ * or also FALSE if $start denotes a position beyond $string length
+ * The input string. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param bool $beforeNeedle [optional]+ * If TRUE, grapheme_strstr() returns the part of the + * haystack before the first occurrence of the needle (excluding the needle). + *
+ * @return string|false the portion of string, or FALSE if needle is not found. + */ +#[Pure] +function grapheme_strstr(string $haystack, string $needle, bool $beforeNeedle = false): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * The input string. Must be valid UTF-8. + *
+ * @param string $needle+ * The string to look for. Must be valid UTF-8. + *
+ * @param bool $beforeNeedle [optional]+ * If TRUE, grapheme_strstr() returns the part of the + * haystack before the first occurrence of the needle (excluding needle). + *
+ * @return string|false the portion of $haystack, or FALSE if $needle is not found. + */ +#[Pure] +function grapheme_stristr(string $haystack, string $needle, bool $beforeNeedle = false): string|false {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * String to search. + *
+ * @param int $size+ * Maximum number items - based on the $extract_type - to return. + *
+ * @param int $type+ * Defines the type of units referred to by the $size parameter: + *
+ *+ * GRAPHEME_EXTR_COUNT (default) - $size is the number of default + * grapheme clusters to extract. + * GRAPHEME_EXTR_MAXBYTES - $size is the maximum number of bytes + * returned. + * GRAPHEME_EXTR_MAXCHARS - $size is the maximum number of UTF-8 + * characters returned. + *
+ * @param int $offset [optional]+ * Starting position in $haystack in bytes - if given, it must be zero or a + * positive value that is less than or equal to the length of $haystack in + * bytes. If $start does not point to the first byte of a UTF-8 + * character, the start position is moved to the next character boundary. + *
+ * @param int &$next [optional]+ * Reference to a value that will be set to the next starting position. + * When the call returns, this may point to the first byte position past the end of the string. + *
+ * @return string|false A string starting at offset $start and ending on a default grapheme cluster + * boundary that conforms to the $size and $extract_type specified. + */ +function grapheme_extract(string $haystack, int $size, int $type = 0, int $offset = 0, &$next = null): string|false {} + +/** + * (PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)+ * Domain to convert. In PHP 5 must be UTF-8 encoded. + * If e.g. an ISO-8859-1 (aka Western Europe latin1) encoded string is + * passed it will be converted into an ACE encoded "xn--" string. + * It will not be the one you expected though! + *
+ * @param int $flags [optional]+ * Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants). + *
+ * @param int $variant [optional]+ * Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46. + *
+ * @param array &$idna_info [optional]+ * This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. + * In that case, it will be filled with an array with the keys 'result', + * the possibly illegal result of the transformation, 'isTransitionalDifferent', + * a boolean indicating whether the usage of the transitional mechanisms of UTS #46 + * either has or would have changed the result and 'errors', + * which is an int representing a bitset of the error constants IDNA_ERROR_*. + *
+ * @return string|false The ACE encoded version of the domain name or FALSE on failure. + */ +function idn_to_ascii(string $domain, int $flags = 0, int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info): string|false {} + +/** + * (PHP 5 >= 5.3.0, PHP 7, PECL intl >= 1.0.2, PHP 7, PECL idn >= 0.1)+ * Domain to convert in IDNA ASCII-compatible format. + * The ASCII encoded domain name. Looks like "xn--..." if the it originally contained non-ASCII characters. + *
+ * @param int $flags [optional]+ * Conversion options - combination of IDNA_* constants (except IDNA_ERROR_* constants). + *
+ * @param int $variant [optional]+ * Either INTL_IDNA_VARIANT_2003 for IDNA 2003 or INTL_IDNA_VARIANT_UTS46 for UTS #46. + *
+ * @param array &$idna_info [optional]+ * This parameter can be used only if INTL_IDNA_VARIANT_UTS46 was used for variant. + * In that case, it will be filled with an array with the keys 'result', + * the possibly illegal result of the transformation, 'isTransitionalDifferent', + * a boolean indicating whether the usage of the transitional mechanisms of UTS #46 + * either has or would have changed the result and 'errors', + * which is an int representing a bitset of the error constants IDNA_ERROR_*. + *
+ * @return string|false The UTF-8 encoded version of the domain name or FALSE on failure. + * RFC 3490 4.2 states though "ToUnicode never fails. If any step fails, then the original input + * sequence is returned immediately in that step." + */ +function idn_to_utf8(string $domain, int $flags = 0, int $variant = INTL_IDNA_VARIANT_UTS46, &$idna_info): string|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)
+ * The timezone to use. + *
+ * + *+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or + * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as + * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}. + *
+ *+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier. + * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw + * offsets such as "GMT+08:30" are also accepted. + *
+ *+ * A locale to use or NULL to use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.default-locale the default locale}. + *
+ * @return IntlCalendar|null + * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} instance or NULL on + * failure. + * @since 5.5 + */ +#[Pure] +function intlcal_create_instance($timezone = null, ?string $locale = null): ?IntlCalendar {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The locale keyword for which relevant values are to be queried. Only + * 'calendar' is supported. + *
+ * @param string $locale+ * The locale onto which the keyword/value pair are to be appended. + *
+ * @param bool $onlyCommon + *+ * Whether to show only the values commonly used for the specified locale. + *
+ * @return IntlIterator|false An iterator that yields strings with the locale keyword values or FALSE on failure. + * @since 5.5 + */ +#[Pure] +function intlcal_get_keyword_values_for_locale(string $keyword, string $locale, bool $onlyCommon): IntlIterator|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int An integer with the value of the time field. + * @since 5.5 + */ +#[Pure] +function intl_get($calendar, $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)The calendar whose time will be checked against this object's time.
+ * @return float + * A {@link https://secure.php.net/manual/en/language.types.float.php float} representing the number of milliseconds elapsed since the + * reference time (1 Jan 1970 00:00:00 UTC). + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'float|false'], default: 'float')] +function intlcal_get_time(IntlCalendar $calendar) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The IntlCalendar resource. + *
+ * @param float $timestamp+ * An instant represented by the number of number of milliseconds between + * such instant and the epoch, ignoring leap seconds. + *
+ * @return bool + * Returns TRUE on success and FALSE on failure. + * @since 5.5 + */ +function intlcal_set_time(IntlCalendar $calendar, float $timestamp): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param int $valueThe signed amount to add to the current field. If the amount is positive, the instant will be moved forward; if it is negative, the instant wil be moved into the past. The unit is implicit to the field type. + * For instance, hours for IntlCalendar::FIELD_HOUR_OF_DAY.
+ * @return bool Returns TRUE on success or FALSE on failure. + * @since 5.5 + */ +function intlcal_add(IntlCalendar $calendar, int $field, int $value): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param IntlTimeZone|DateTimeZone|string|null $timezone+ * The new timezone to be used by this calendar. It can be specified in the + * following ways: + * + *
+ * NULL, in which case the default timezone will be used, as specified in + * the ini setting {@link https://secure.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone} or + * through the function {@link https://secure.php.net/manual/en/function.date-default-timezone-set.php date_default_timezone_set()} and as + * returned by {@link https://secure.php.net/manual/en/function.date-default-timezone-get.php date_default_timezone_get()}. + *
+ *+ * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone}, which will be used directly. + *
+ *+ * A {@link https://secure.php.net/manual/en/class.datetimezone.php DateTimeZone}. Its identifier will be extracted + * and an ICU timezone object will be created; the timezone will be backed + * by ICU's database, not PHP's. + *
+ *+ * A {@link https://secure.php.net/manual/en/language.types.string.php string}, which should be a valid ICU timezone identifier. + * See IntlTimeZone::createTimeZoneIDEnumeration(). Raw + * offsets such as "GMT+08:30" are also accepted. + *
+ *+ * The calendar object, on the procedural style interface. + *
+ * @param IntlCalendar $otherThe calendar whose time will be checked against this object's time.
+ * @return bool + * Returns TRUE if this object's current time is after that of the + * calendar argument's time. Returns FALSE otherwise. + * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions. + * @since 5.5 + */ +#[Pure] +function intlcal_after(IntlCalendar $calendar, IntlCalendar $other): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param IntlCalendar $otherThe calendar whose time will be checked against this object's time.
+ * @return bool + *+ * Returns TRUE if this object's current time is before that of the + * calendar argument's time. Returns FALSE otherwise. + * Also returns FALSE on failure. You can use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to detect error conditions. + *
+ * @since 5.5 + */ +#[Pure] +function intlcal_before(IntlCalendar $calendar, IntlCalendar $other): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $year+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param int $month+ * The new value for IntlCalendar::FIELD_MONTH. + *
+ * @param int $dayOfMonth [optional]+ * The new value for IntlCalendar::FIELD_DAY_OF_MONTH. + * The month sequence is zero-based, i.e., January is represented by 0, + * February by 1, ..., December is 11 and Undecember (if the calendar has + * it) is 12. + *
+ * @param int $hour [optional] + *+ * The new value for IntlCalendar::FIELD_HOUR_OF_DAY. + *
+ * @param int $minute [optional] + *+ * The new value for IntlCalendar::FIELD_MINUTE. + *
+ * @param int $second [optional]+ * The new value for IntlCalendar::FIELD_SECOND. + *
+ * @return bool Returns TRUE on success and FALSE on failure. + * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set(IntlCalendar $calendar, int $year, int $month, int $dayOfMonth, int $hour, int $minute, int $second) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $fieldOne of the + * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time + * {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @param int|bool $value+ * The (signed) amount to add to the field, TRUE for rolling up (adding + * 1), or FALSE for rolling down (subtracting + * 1). + *
+ * @return bool Returns TRUE on success or FALSE on failure. + * @since 5.5 + */ +function intlcal_roll( + IntlCalendar $calendar, + int $field, + #[ElementAvailable(from: '5.3', to: '7.4')] $value = null, + #[ElementAvailable(from: '8.0')] $value +): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int|null $field [optional]+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return bool Returns TRUE on success or FALSE on failure. Failure can only occur is invalid arguments are provided. + * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_clear(IntlCalendar $calendar, ?int $field = null): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param float $timestamp+ * The time against which to compare the quantity represented by the + * field. For the result to be positive, the time + * given for this parameter must be ahead of the time of the object the + * method is being invoked on. + *
+ * @param int $field+ * The field that represents the quantity being compared. + *
+ * + *+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int Returns a (signed) difference of time in the unit associated with the + * specified field or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_field_difference(IntlCalendar $calendar, float $timestamp, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the maximum value in the units associated + * with the given field or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_actual_maximum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. + * These are integer values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing the minimum value in the field's + * unit or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_actual_minimum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $dayOfWeek+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return int + * Returns one of the constants + * IntlCalendar::DOW_TYPE_WEEKDAY, + * IntlCalendar::DOW_TYPE_WEEKEND, + * IntlCalendar::DOW_TYPE_WEEKEND_OFFSET or + * IntlCalendar::DOW_TYPE_WEEKEND_CEASE or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_day_of_week_type(IntlCalendar $calendar, int $dayOfWeek) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return int + * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_first_day_of_week(IntlCalendar $calendar) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT.
+ * @return int + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a field value, in the field's + * unit, or FALSE on failure. + * @since 5.5 + */ +#[Pure] +function intlcal_greates_minimum($calendar, $field) {} + +/** + * (PHP >= 5.5.0, PECL intl >= 3.0.0a1)+ * The IntlCalendar resource. + *
+ * @param int $field+ * One of the IntlCalendar date/time field constants. These are integer values between 0 and IntlCalendar::FIELD_COUNT. + *
+ * @return int An integer with the value of the time field. + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int + *An {@link https://secure.php.net/manual/en/language.types.integer.ph int} representing a field value in the field's + * unit or FALSE on failure. + *
+ * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_least_maximum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT.
+ * @return int + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a field value, in the field's + * unit, or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_greatest_minimum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $type+ * Whether to fetch the actual locale (the locale from which the calendar + * data originates, with Locale::ACTUAL_LOCALE) or the + * valid locale, i.e., the most specific locale supported by ICU relatively + * to the requested locale – see Locale::VALID_LOCALE. + * From the most general to the most specific, the locales are ordered in + * this fashion – actual locale, valid locale, requested locale. + *
+ * @return string + * A locale string or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'string|false'], default: 'string')] +function intlcal_get_locale(IntlCalendar $calendar, int $type) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * @since 5.5 + */ +#[Pure] +function intcal_get_maximum($calendar, $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return int + * An {@link https://secure.php.net/manual/en/language.types.integer.php int} representing a number of days or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_minimal_days_in_first_week(IntlCalendar $calendar) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int + * An int representing a value for the given field in the field's unit or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_minimum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return IntlTimeZone|false + * An {@link https://secure.php.net/manual/en/class.intltimezone.php IntlTimeZone} object corresponding to the one used + * internally in this object. + * @since 5.5 + */ +#[Pure] +function intlcal_get_time_zone(IntlCalendar $calendar): IntlTimeZone|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return string + * A {@link https://secure.php.net/manual/en/language.types.string.php string} representing the calendar type, such as + * 'gregorian', 'islamic', etc. + * @since 5.5 + */ +#[Pure] +function intlcal_get_type(IntlCalendar $calendar): string {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $dayOfWeek+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return int + * The number of milliseconds into the day at which the the weekend begins or + * ends or FALSE on failure. + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_weekend_transition(IntlCalendar $calendar, int $dayOfWeek) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return bool + * Returns TRUE if the date is in Daylight Savings Time, FALSE otherwise. + * The value FALSE may also be returned on failure, for instance after + * specifying invalid field values on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate. + * @since 5.5 + */ +#[Pure] +function intlcal_in_daylight_time(IntlCalendar $calendar): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return bool + * A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} representing whether the calendar is set to lenient mode. + * @since 5.5 + */ +#[Pure] +function intlcal_is_lenient(IntlCalendar $calendar): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return bool Assuming there are no argument errors, returns TRUE iif the field is set. + * @since 5.5 + */ +#[Pure] +function intlcal_is_set(IntlCalendar $calendar, int $field): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $field+ * One of the {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} date/time {@link https://secure.php.net/manual/en/class.intlcalendar.php#intlcalendar.constants field constants}. These are integer + * values between 0 and + * IntlCalendar::FIELD_COUNT. + *
+ * @return int|false + * @since 5.5 + */ +#[Pure] +#[LanguageAware(['8.0' => 'int|false'], default: 'int')] +function intlcal_get_maximum(IntlCalendar $calendar, int $field) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param IntlCalendar $other The other calendar against which the comparison is to be made. + * @return bool + * Assuming there are no argument errors, returns TRUE iif the calendars are equivalent except possibly for their set time. + * @since 5.5 + */ +#[Pure] +function intlcal_is_equivalent_to(IntlCalendar $calendar, IntlCalendar $other): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param float|null $timestamp [optional]+ * An optional timestamp representing the number of milliseconds since the + * epoch, excluding leap seconds. If NULL, this object's current time is + * used instead. + *
+ * @return bool + *A {@link https://secure.php.net/manual/en/language.types.boolean.php bool} indicating whether the given or this object's time occurs + * in a weekend. + *
+ *+ * The value FALSE may also be returned on failure, for instance after giving + * a date out of bounds on non-lenient mode; use {@link https://secure.php.net/manual/en/intl.configuration.php#ini.intl.use-exceptions exceptions} or query + * {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()} to disambiguate.
+ * @since 5.5 + */ +#[Pure] +function intlcal_is_weekend(IntlCalendar $calendar, ?float $timestamp = null): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $dayOfWeek+ * One of the constants IntlCalendar::DOW_SUNDAY, + * IntlCalendar::DOW_MONDAY, ..., + * IntlCalendar::DOW_SATURDAY. + *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters. + * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set_first_day_of_week(IntlCalendar $calendar, int $dayOfWeek) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param bool $lenient+ * Use TRUE to activate the lenient mode; FALSE otherwise. + *
+ * @return bool Returns TRUE on success. Failure can only happen due to invalid parameters. + * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set_lenient(IntlCalendar $calendar, bool $lenient) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return int + * One of the constants IntlCalendar::WALLTIME_FIRST or + * IntlCalendar::WALLTIME_LAST. + * @since 5.5 + */ +#[Pure] +function intlcal_get_repeated_wall_time_option(IntlCalendar $calendar): int {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param IntlCalendar $other + * @return bool+ * Returns TRUE if the current time of both this and the passed in + * {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object are the same, or FALSE + * otherwise. The value FALSE can also be returned on failure. This can only + * happen if bad arguments are passed in. In any case, the two cases can be + * distinguished by calling {@link https://secure.php.net/manual/en/function.intl-get-error-code.php intl_get_error_code()}. + *
+ * @since 5.5 + */ +#[Pure] +function intlcal_equals(IntlCalendar $calendar, IntlCalendar $other): bool {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return int + * One of the constants IntlCalendar::WALLTIME_FIRST, + * IntlCalendar::WALLTIME_LAST or + * IntlCalendar::WALLTIME_NEXT_VALID. + * @since 5.5 + */ +#[Pure] +function intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $option+ * One of the constants IntlCalendar::WALLTIME_FIRST or + * IntlCalendar::WALLTIME_LAST. + *
+ * @return bool + * Returns TRUE on success. Failure can only happen due to invalid parameters. + * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set_repeated_wall_time_option(IntlCalendar $calendar, int $option) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @param int $option+ * One of the constants IntlCalendar::WALLTIME_FIRST, + * IntlCalendar::WALLTIME_LAST or + * IntlCalendar::WALLTIME_NEXT_VALID. + *
+ * @return bool + *+ * Returns TRUE on success. Failure can only happen due to invalid parameters. + *
+ * @since 5.5 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set_skipped_wall_time_option(IntlCalendar $calendar, int $option) {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)+ * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object or a {@link https://secure.php.net/manual/en/language.types.string.php string} that + * can be passed to {@link https://secure.php.net/manual/en/datetime.construct.php DateTime::__construct()}. + *
+ * @param null|string $locale + * @return IntlCalendar|null + * The created {@link https://secure.php.net/manual/en/class.intlcalendar.php IntlCalendar} object or NULL in case of + * failure. If a {@link https://secure.php.net/manual/en/language.types.string.php string} is passed, any exception that occurs + * inside the {@link https://secure.php.net/manual/en/class.datetime.php DateTime} constructor is propagated. + * @since 5.5 + */ +#[Pure] +function intlcal_from_date_time( + DateTime|string $datetime, + #[ElementAvailable(from: '8.0')] ?string $locale = null +): ?IntlCalendar {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a2)+ * The calendar object, on the procedural style interface. + *
+ * @return DateTime|false + * A {@link https://secure.php.net/manual/en/class.datetime.php DateTime} object with the same timezone as this + * object (though using PHP's database instead of ICU's) and the same time, + * except for the smaller precision (second precision instead of millisecond). + * Returns FALSE on failure. + * @since 5.5 + */ +#[Pure] +function intlcal_to_date_time(IntlCalendar $calendar): DateTime|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return int|false An ICU error code indicating either success, failure or a warning. + * @since 5.5 + */ +#[Pure(true)] +function intlcal_get_error_code(IntlCalendar $calendar): int|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The calendar object, on the procedural style interface. + *
+ * @return string|false The error message associated with last error that occurred in a function call on this object, or a string indicating the non-existance of an error. + * @since 5.5 + */ +#[Pure(true)] +function intlcal_get_error_message(IntlCalendar $calendar): string|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The time zone object, on the procedural style interface. + *
+ * @param bool $dst [optional] + * @param int $style [optional] + * @param string|null $locale [optional] + * @return string|false + * @since 5.5 + */ +#[Pure] +function intltz_get_display_name(IntlTimeZone $timezone, bool $dst = false, int $style = 2, ?string $locale): string|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The time zone object, on the procedural style interface. + *
+ * @return int + * @link https://secure.php.net/manual/en/intltimezone.getequivalentid.php + * @since 5.5 + */ +#[Pure] +function intltz_get_dst_savings(IntlTimeZone $timezone): int {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The time zone object, on the procedural style interface. + *
+ * @return int|false + * @since 5.5 + */ +#[Pure(true)] +function intltz_get_error_code(IntlTimeZone $timezone): int|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * The time zone object, on the procedural style interface. + *
+ * @return string|false + * @since 5.5 + */ +#[Pure(true)] +function intltz_get_error_message(IntlTimeZone $timezone): string|false {} + +/** + * (PHP 5 >=5.5.0 PECL intl >= 3.0.0a1)+ * Locale for which the resources should be loaded (locale name, e.g. en_CA). + *
+ * @param string|null $bundle+ * The directory where the data is stored or the name of the .dat file. + *
+ * @param bool $fallback [optional]+ * Whether locale should match exactly or fallback to parent locale is allowed. + *
+ * @return ResourceBundle|null ResourceBundle object or NULL on error. + */ +#[Pure] +function resourcebundle_create(?string $locale, ?string $bundle, bool $fallback = true): ?ResourceBundle {} + +/** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * Data index, must be string or integer. + *
+ * @param bool $fallback + * @return mixed the data located at the index or NULL on error. Strings, integers and binary data strings + * are returned as corresponding PHP types, integer array is returned as PHP array. Complex types are + * returned as ResourceBundle object. + */ +#[Pure] +function resourcebundle_get(ResourceBundle $bundle, $index, bool $fallback = true): mixed {} + +/** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * Path of ResourceBundle for which to get available locales, or + * empty string for default locales list. + *
+ * @return array|false the list of locales supported by the bundle. + */ +#[Pure] +function resourcebundle_locales(string $bundle): array|false {} + +/** + * (PHP >= 5.3.2, PECL intl >= 2.0.0)+ * The id. + *
+ * @param int $direction+ * The direction, defaults to + * Transliterator::FORWARD. + * May also be set to + * Transliterator::REVERSE. + *
+ * @return Transliterator|null a Transliterator object on success, + * or NULL on failure. + * @since 5.4 + */ +#[Pure] +function transliterator_create(string $id, int $direction = 0): ?Transliterator {} + +/** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ * The rules. + *
+ * @param int $direction+ * The direction, defaults to + * Transliterator::FORWARD. + * May also be set to + * Transliterator::REVERSE. + *
+ * @return Transliterator|null a Transliterator object on success, + * or NULL on failure. + * @since 5.4 + */ +#[Pure] +function transliterator_create_from_rules(string $rules, int $direction = 0): ?Transliterator {} + +/** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ * The string to be transformed. + *
+ * @param int $start+ * The start index (in UTF-16 code units) from which the string will start + * to be transformed, inclusive. Indexing starts at 0. The text before will + * be left as is. + *
+ * @param int $end+ * The end index (in UTF-16 code units) until which the string will be + * transformed, exclusive. Indexing starts at 0. The text after will be + * left as is. + *
+ * @return string|false The transfomed string on success, or FALSE on failure. + * @since 5.4 + */ +#[Pure] +function transliterator_transliterate(Transliterator|string $transliterator, string $string, int $start = 0, int $end = -1): string|false {} + +/** + * (PHP >= 5.4.0, PECL intl >= 2.0.0)+ * is a value that returned by functions: + * intl_get_error_code, + * collator_get_error_code . + *
+ * @return bool TRUE if it the code indicates some failure, and FALSE + * in case of success or a warning. + */ +#[Pure] +function intl_is_failure(int $errorCode): bool {} + +/** + * (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)+ * ICU error code. + *
+ * @return string The returned string will be the same as the name of the error code + * constant. + */ +#[Pure] +function intl_error_name(int $errorCode): string {} + +/** + * Gets the Decomposition_Mapping property for the given UTF-8 encoded code point + * + * @link https://www.php.net/manual/en/normalizer.getrawdecomposition.php + * + * @param string $string + * @param int $form + * @return string|null + * + * @since 7.3 + */ +#[Pure] +function normalizer_get_raw_decomposition(string $string, #[ElementAvailable(from: '8.0')] int $form = Normalizer::FORM_C): ?string {} + +/** + * @return IntlTimeZone + * @since 5.5 + */ +#[Pure] +function intltz_create_default(): IntlTimeZone {} + +/** + * @return IntlTimeZone + * @since 5.5 + */ +#[Pure] +function intltz_get_gmt(): IntlTimeZone {} + +/** + * @return IntlTimeZone + * @since 5.5 + */ +#[Pure] +function intltz_get_unknown(): IntlTimeZone {} + +/** + * @param int $type + * @param null|string $region + * @param null|int $rawOffset + * @return IntlIterator|false + * @since 5.5 + */ +#[Pure] +function intltz_create_time_zone_id_enumeration(int $type, ?string $region = null, ?int $rawOffset = null): IntlIterator|false {} + +/** + * @param string $timezoneId + * @return string|false + * @since 5.5 + */ +#[Pure] +function intltz_get_region(string $timezoneId): string|false {} + +/** + * Set minimal number of days the first week in a year or month can have + * + * @link https://www.php.net/manual/en/intlcalendar.setminimaldaysinfirstweek.php + * + * @param IntlCalendar $calendar + * @param int $days + * @return bool + * + * @since 5.5.1 + */ +#[LanguageAware(['8.3' => 'true'], default: 'bool')] +function intlcal_set_minimal_days_in_first_week(IntlCalendar $calendar, int $days) {} + +function intltz_get_windows_id(string $timezoneId): string|false {} + +function intltz_get_id_for_windows_id(string $timezoneId, ?string $region = null): string|false {} + +/** + * Limit on locale length, set to 80 in PHP code. Locale names longer + * than this limit will not be accepted. + * @link https://php.net/manual/en/intl.constants.php + */ +define('INTL_MAX_LOCALE_LEN', 156); +define('INTL_ICU_VERSION', "74.1"); +define('INTL_ICU_DATA_VERSION', "74.1"); +define('ULOC_ACTUAL_LOCALE', 0); +define('ULOC_VALID_LOCALE', 1); +define('GRAPHEME_EXTR_COUNT', 0); +define('GRAPHEME_EXTR_MAXBYTES', 1); +define('GRAPHEME_EXTR_MAXCHARS', 2); +define('U_USING_FALLBACK_WARNING', -128); +define('U_ERROR_WARNING_START', -128); +define('U_USING_DEFAULT_WARNING', -127); +define('U_SAFECLONE_ALLOCATED_WARNING', -126); +define('U_STATE_OLD_WARNING', -125); +define('U_STRING_NOT_TERMINATED_WARNING', -124); +define('U_SORT_KEY_TOO_SHORT_WARNING', -123); +define('U_AMBIGUOUS_ALIAS_WARNING', -122); +define('U_DIFFERENT_UCA_VERSION', -121); +define('U_ERROR_WARNING_LIMIT', -119); +define('U_ZERO_ERROR', 0); +define('U_ILLEGAL_ARGUMENT_ERROR', 1); +define('U_MISSING_RESOURCE_ERROR', 2); +define('U_INVALID_FORMAT_ERROR', 3); +define('U_FILE_ACCESS_ERROR', 4); +define('U_INTERNAL_PROGRAM_ERROR', 5); +define('U_MESSAGE_PARSE_ERROR', 6); +define('U_MEMORY_ALLOCATION_ERROR', 7); +define('U_INDEX_OUTOFBOUNDS_ERROR', 8); +define('U_PARSE_ERROR', 9); +define('U_INVALID_CHAR_FOUND', 10); +define('U_TRUNCATED_CHAR_FOUND', 11); +define('U_ILLEGAL_CHAR_FOUND', 12); +define('U_INVALID_TABLE_FORMAT', 13); +define('U_INVALID_TABLE_FILE', 14); +define('U_BUFFER_OVERFLOW_ERROR', 15); +define('U_UNSUPPORTED_ERROR', 16); +define('U_RESOURCE_TYPE_MISMATCH', 17); +define('U_ILLEGAL_ESCAPE_SEQUENCE', 18); +define('U_UNSUPPORTED_ESCAPE_SEQUENCE', 19); +define('U_NO_SPACE_AVAILABLE', 20); +define('U_CE_NOT_FOUND_ERROR', 21); +define('U_PRIMARY_TOO_LONG_ERROR', 22); +define('U_STATE_TOO_OLD_ERROR', 23); +define('U_TOO_MANY_ALIASES_ERROR', 24); +define('U_ENUM_OUT_OF_SYNC_ERROR', 25); +define('U_INVARIANT_CONVERSION_ERROR', 26); +define('U_INVALID_STATE_ERROR', 27); +define('U_COLLATOR_VERSION_MISMATCH', 28); +define('U_USELESS_COLLATOR_ERROR', 29); +define('U_NO_WRITE_PERMISSION', 30); +define('U_STANDARD_ERROR_LIMIT', 32); +define('U_BAD_VARIABLE_DEFINITION', 65536); +define('U_PARSE_ERROR_START', 65536); +define('U_MALFORMED_RULE', 65537); +define('U_MALFORMED_SET', 65538); +define('U_MALFORMED_SYMBOL_REFERENCE', 65539); +define('U_MALFORMED_UNICODE_ESCAPE', 65540); +define('U_MALFORMED_VARIABLE_DEFINITION', 65541); +define('U_MALFORMED_VARIABLE_REFERENCE', 65542); +define('U_MISMATCHED_SEGMENT_DELIMITERS', 65543); +define('U_MISPLACED_ANCHOR_START', 65544); +define('U_MISPLACED_CURSOR_OFFSET', 65545); +define('U_MISPLACED_QUANTIFIER', 65546); +define('U_MISSING_OPERATOR', 65547); +define('U_MISSING_SEGMENT_CLOSE', 65548); +define('U_MULTIPLE_ANTE_CONTEXTS', 65549); +define('U_MULTIPLE_CURSORS', 65550); +define('U_MULTIPLE_POST_CONTEXTS', 65551); +define('U_TRAILING_BACKSLASH', 65552); +define('U_UNDEFINED_SEGMENT_REFERENCE', 65553); +define('U_UNDEFINED_VARIABLE', 65554); +define('U_UNQUOTED_SPECIAL', 65555); +define('U_UNTERMINATED_QUOTE', 65556); +define('U_RULE_MASK_ERROR', 65557); +define('U_MISPLACED_COMPOUND_FILTER', 65558); +define('U_MULTIPLE_COMPOUND_FILTERS', 65559); +define('U_INVALID_RBT_SYNTAX', 65560); +define('U_INVALID_PROPERTY_PATTERN', 65561); +define('U_MALFORMED_PRAGMA', 65562); +define('U_UNCLOSED_SEGMENT', 65563); +define('U_ILLEGAL_CHAR_IN_SEGMENT', 65564); +define('U_VARIABLE_RANGE_EXHAUSTED', 65565); +define('U_VARIABLE_RANGE_OVERLAP', 65566); +define('U_ILLEGAL_CHARACTER', 65567); +define('U_INTERNAL_TRANSLITERATOR_ERROR', 65568); +define('U_INVALID_ID', 65569); +define('U_INVALID_FUNCTION', 65570); +define('U_PARSE_ERROR_LIMIT', 65571); +define('U_UNEXPECTED_TOKEN', 65792); +define('U_FMT_PARSE_ERROR_START', 65792); +define('U_MULTIPLE_DECIMAL_SEPARATORS', 65793); +define('U_MULTIPLE_DECIMAL_SEPERATORS', 65793); +define('U_MULTIPLE_EXPONENTIAL_SYMBOLS', 65794); +define('U_MALFORMED_EXPONENTIAL_PATTERN', 65795); +define('U_MULTIPLE_PERCENT_SYMBOLS', 65796); +define('U_MULTIPLE_PERMILL_SYMBOLS', 65797); +define('U_MULTIPLE_PAD_SPECIFIERS', 65798); +define('U_PATTERN_SYNTAX_ERROR', 65799); +define('U_ILLEGAL_PAD_POSITION', 65800); +define('U_UNMATCHED_BRACES', 65801); +define('U_UNSUPPORTED_PROPERTY', 65802); +define('U_UNSUPPORTED_ATTRIBUTE', 65803); +define('U_FMT_PARSE_ERROR_LIMIT', 65812); +define('U_BRK_INTERNAL_ERROR', 66048); +define('U_BRK_ERROR_START', 66048); +define('U_BRK_HEX_DIGITS_EXPECTED', 66049); +define('U_BRK_SEMICOLON_EXPECTED', 66050); +define('U_BRK_RULE_SYNTAX', 66051); +define('U_BRK_UNCLOSED_SET', 66052); +define('U_BRK_ASSIGN_ERROR', 66053); +define('U_BRK_VARIABLE_REDFINITION', 66054); +define('U_BRK_MISMATCHED_PAREN', 66055); +define('U_BRK_NEW_LINE_IN_QUOTED_STRING', 66056); +define('U_BRK_UNDEFINED_VARIABLE', 66057); +define('U_BRK_INIT_ERROR', 66058); +define('U_BRK_RULE_EMPTY_SET', 66059); +define('U_BRK_UNRECOGNIZED_OPTION', 66060); +define('U_BRK_MALFORMED_RULE_TAG', 66061); +define('U_BRK_ERROR_LIMIT', 66062); +define('U_REGEX_INTERNAL_ERROR', 66304); +define('U_REGEX_ERROR_START', 66304); +define('U_REGEX_RULE_SYNTAX', 66305); +define('U_REGEX_INVALID_STATE', 66306); +define('U_REGEX_BAD_ESCAPE_SEQUENCE', 66307); +define('U_REGEX_PROPERTY_SYNTAX', 66308); +define('U_REGEX_UNIMPLEMENTED', 66309); +define('U_REGEX_MISMATCHED_PAREN', 66310); +define('U_REGEX_NUMBER_TOO_BIG', 66311); +define('U_REGEX_BAD_INTERVAL', 66312); +define('U_REGEX_MAX_LT_MIN', 66313); +define('U_REGEX_INVALID_BACK_REF', 66314); +define('U_REGEX_INVALID_FLAG', 66315); +define('U_REGEX_LOOK_BEHIND_LIMIT', 66316); +define('U_REGEX_SET_CONTAINS_STRING', 66317); +define('U_REGEX_ERROR_LIMIT', 66326); +define('U_IDNA_PROHIBITED_ERROR', 66560); +define('U_IDNA_ERROR_START', 66560); +define('U_IDNA_UNASSIGNED_ERROR', 66561); +define('U_IDNA_CHECK_BIDI_ERROR', 66562); +define('U_IDNA_STD3_ASCII_RULES_ERROR', 66563); +define('U_IDNA_ACE_PREFIX_ERROR', 66564); +define('U_IDNA_VERIFICATION_ERROR', 66565); +define('U_IDNA_LABEL_TOO_LONG_ERROR', 66566); +define('U_IDNA_ZERO_LENGTH_LABEL_ERROR', 66567); +define('U_IDNA_DOMAIN_NAME_TOO_LONG_ERROR', 66568); +define('U_IDNA_ERROR_LIMIT', 66569); +define('U_STRINGPREP_PROHIBITED_ERROR', 66560); +define('U_STRINGPREP_UNASSIGNED_ERROR', 66561); +define('U_STRINGPREP_CHECK_BIDI_ERROR', 66562); +define('U_ERROR_LIMIT', 66818); + +/** + * Prohibit processing of unassigned codepoints in the input for IDN + * functions and do not check if the input conforms to domain name ASCII rules. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_DEFAULT', 0); + +/** + * Allow processing of unassigned codepoints in the input for IDN functions. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_ALLOW_UNASSIGNED', 1); + +/** + * Check if the input for IDN functions conforms to domain name ASCII rules. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_USE_STD3_RULES', 2); + +/** + * Check whether the input conforms to the BiDi rules. + * Ignored by the IDNA2003 implementation, which always performs this check. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_CHECK_BIDI', 4); + +/** + * Check whether the input conforms to the CONTEXTJ rules. + * Ignored by the IDNA2003 implementation, as this check is new in IDNA2008. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_CHECK_CONTEXTJ', 8); + +/** + * Option for nontransitional processing in + * idn_to_ascii. Transitional processing is activated + * by default. This option is ignored by the IDNA2003 implementation. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_NONTRANSITIONAL_TO_ASCII', 16); + +/** + * Option for nontransitional processing in + * idn_to_utf8. Transitional processing is activated + * by default. This option is ignored by the IDNA2003 implementation. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_NONTRANSITIONAL_TO_UNICODE', 32); + +/** + * Use IDNA 2003 algorithm in {@see idn_to_utf8} and + * {@see idn_to_ascii}. This is the default. + * @link https://php.net/manual/en/intl.constants.php + * @deprecated 7.2 Use {@see INTL_IDNA_VARIANT_UTS46} instead. + */ +define('INTL_IDNA_VARIANT_2003', 0); + +/** + * Use UTS #46 algorithm in idn_to_utf8 and + * idn_to_ascii. + * @link https://php.net/manual/en/intl.constants.php + */ +define('INTL_IDNA_VARIANT_UTS46', 1); + +/** + * Errors reported in a bitset returned by the UTS #46 algorithm in + * idn_to_utf8 and + * idn_to_ascii. + * @link https://php.net/manual/en/intl.constants.php + */ +define('IDNA_ERROR_EMPTY_LABEL', 1); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_LABEL_TOO_LONG', 2); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_DOMAIN_NAME_TOO_LONG', 4); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_LEADING_HYPHEN', 8); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_TRAILING_HYPHEN', 16); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_HYPHEN_3_4', 32); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_LEADING_COMBINING_MARK', 64); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_DISALLOWED', 128); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_PUNYCODE', 256); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_LABEL_HAS_DOT', 512); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_INVALID_ACE_LABEL', 1024); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_BIDI', 2048); +/** + * @link https://secure.php.net/manual/en/migration54.global-constants.php + * @since 5.4 + */ +define('IDNA_ERROR_CONTEXTJ', 4096); + +/** + * @since 5.5 + */ +class IntlBreakIterator implements IteratorAggregate +{ + /* Constants */ + public const DONE = -1; + public const WORD_NONE = 0; + public const WORD_NONE_LIMIT = 100; + public const WORD_NUMBER = 100; + public const WORD_NUMBER_LIMIT = 200; + public const WORD_LETTER = 200; + public const WORD_LETTER_LIMIT = 300; + public const WORD_KANA = 300; + public const WORD_KANA_LIMIT = 400; + public const WORD_IDEO = 400; + public const WORD_IDEO_LIMIT = 500; + public const LINE_SOFT = 0; + public const LINE_SOFT_LIMIT = 100; + public const LINE_HARD = 100; + public const LINE_HARD_LIMIT = 200; + public const SENTENCE_TERM = 0; + public const SENTENCE_TERM_LIMIT = 100; + public const SENTENCE_SEP = 100; + public const SENTENCE_SEP_LIMIT = 200; + + /* Methods */ + /** + * (PHP 5 >=5.5.0)+ * Optional key type. Possible values are: + *
+ * The value being encoded. Can be any type except + * a resource. + *
+ *+ * All string data must be UTF-8 encoded. + *
+ *PHP implements a superset of + * JSON - it will also encode and decode scalar types and NULL. The JSON standard + * only supports these values when they are nested inside an array or an object. + *
+ * @param int $flags [optional]+ * Bitmask consisting of JSON_HEX_QUOT, + * JSON_HEX_TAG, + * JSON_HEX_AMP, + * JSON_HEX_APOS, + * JSON_NUMERIC_CHECK, + * JSON_PRETTY_PRINT, + * JSON_UNESCAPED_SLASHES, + * JSON_FORCE_OBJECT, + * JSON_UNESCAPED_UNICODE. + * JSON_THROW_ON_ERROR The behaviour of these + * constants is described on + * the JSON constants page. + *
+ * @param int $depth [optional]+ * Set the maximum depth. Must be greater than zero. + *
+ * @return string|false a JSON encoded string on success or FALSE on failure. + */ +function json_encode(mixed $value, int $flags = 0, int $depth = 512): string|false {} + +/** + * (PHP 5 >= 5.2.0, PECL json >= 1.2.0)+ * The json string being decoded. + *
+ *+ * This function only works with UTF-8 encoded strings. + *
+ *PHP implements a superset of + * JSON - it will also encode and decode scalar types and NULL. The JSON standard + * only supports these values when they are nested inside an array or an object. + *
+ * @param bool|null $associative+ * When TRUE, returned objects will be converted into + * associative arrays. + *
+ * @param int $depth [optional]+ * User specified recursion depth. + *
+ * @param int $flags [optional]
+ * Bitmask of JSON decode options:
+ * {@see JSON_BIGINT_AS_STRING} decodes large integers as their original string value.
+ * {@see JSON_INVALID_UTF8_IGNORE} ignores invalid UTF-8 characters,
+ * {@see JSON_INVALID_UTF8_SUBSTITUTE} converts invalid UTF-8 characters to \0xfffd,
+ * {@see JSON_OBJECT_AS_ARRAY} decodes JSON objects as PHP array, since 7.2.0 used by default if $assoc parameter is null,
+ * {@see JSON_THROW_ON_ERROR} when passed this flag, the error behaviour of these functions is changed. The global error state is left untouched, and if an error occurs that would otherwise set it, these functions instead throw a JsonException
+ *
| Constant | + *Meaning | + *Availability | + *
|---|---|---|
JSON_ERROR_NONE |
+ * No error has occurred | + *+ * |
JSON_ERROR_DEPTH |
+ * The maximum stack depth has been exceeded | + *+ * |
JSON_ERROR_STATE_MISMATCH |
+ * Invalid or malformed JSON | + *+ * |
JSON_ERROR_CTRL_CHAR |
+ * Control character error, possibly incorrectly encoded | + *+ * |
JSON_ERROR_SYNTAX |
+ * Syntax error | + *+ * |
JSON_ERROR_UTF8 |
+ * Malformed UTF-8 characters, possibly incorrectly encoded | + *PHP 5.3.3 | + *
JSON_ERROR_RECURSION |
+ * One or more recursive references in the value to be encoded | + *PHP 5.5.0 | + *
JSON_ERROR_INF_OR_NAN |
+ *
+ * One or more
+ * NAN
+ * or INF
+ * values in the value to be encoded
+ * |
+ * PHP 5.5.0 | + *
JSON_ERROR_UNSUPPORTED_TYPE |
+ * A value of a type that cannot be encoded was given | + *PHP 5.5.0 | + *
JSON_ERROR_INVALID_PROPERTY_NAME |
+ * A property name that cannot be encoded was given | + *PHP 7.0.0 | + *
JSON_ERROR_UTF16 |
+ * Malformed UTF-16 characters, possibly incorrectly encoded | + *PHP 7.0.0 | + *
+ * The object or array passed to json_encode include + * recursive references and cannot be encoded. + * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was + * given, NULL will be encoded in the place of the recursive reference. + *
+ *+ * This constant is available as of PHP 5.5.0. + *
+ * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_RECURSION', 6); + +/** + *+ * The value passed to json_encode includes either + * NAN + * or INF. + * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was + * given, 0 will be encoded in the place of these + * special numbers. + *
+ *+ * This constant is available as of PHP 5.5.0. + *
+ * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_INF_OR_NAN', 7); + +/** + *+ * A value of an unsupported type was given to + * json_encode, such as a resource. + * If the JSON_PARTIAL_OUTPUT_ON_ERROR option was + * given, NULL will be encoded in the place of the unsupported value. + *
+ *+ * This constant is available as of PHP 5.5.0. + *
+ * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_UNSUPPORTED_TYPE', 8); + +/** + * No error has occurred. + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_NONE', 0); + +/** + * The maximum stack depth has been exceeded. + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_DEPTH', 1); + +/** + * Syntax error. + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_ERROR_SYNTAX', 4); + +/** + * Decodes JSON objects as PHP array. + * @since 5.4 + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_OBJECT_AS_ARRAY', 1); +define('JSON_PARSER_NOTSTRICT', 4); + +/** + * Decodes large integers as their original string value. + * @since 5.4 + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_BIGINT_AS_STRING', 2); + +/** + * Ensures that float values are always encoded as a float value. + * @since 5.6.6 + * @link https://php.net/manual/en/json.constants.php + */ +define('JSON_PRESERVE_ZERO_FRACTION', 1024); + +/** + * The line terminators are kept unescaped when JSON_UNESCAPED_UNICODE is supplied. + * It uses the same behaviour as it was before PHP 7.1 without this constant. Available since PHP 7.1.0. + * @link https://php.net/manual/en/json.constants.php + * @since 7.1 + */ +define('JSON_UNESCAPED_LINE_TERMINATORS', 2048); + +/** + * Ignore invalid UTF-8 characters. + * @since 7.2 + */ +define('JSON_INVALID_UTF8_IGNORE', 1048576); + +/** + * Convert invalid UTF-8 characters to \0xfffd (Unicode Character 'REPLACEMENT CHARACTER'). + * @since 7.2 + */ +define('JSON_INVALID_UTF8_SUBSTITUTE', 2097152); + +/** + * A key starting with \u0000 character was in the string passed to json_decode() when decoding a JSON object into a PHP object. + * Available since PHP 7.0.0. + * @link https://php.net/manual/en/json.constants.php + * @since 7.0 + */ +define('JSON_ERROR_INVALID_PROPERTY_NAME', 9); + +/** + * Single unpaired UTF-16 surrogate in unicode escape contained in the JSON string passed to json_encode(). + * Available since PHP 7.0.0. + * @link https://php.net/manual/en/json.constants.php + * @since 7.0 + */ +define('JSON_ERROR_UTF16', 10); + +/** + * Throws JsonException if an error occurs instead of setting the global error state + * that is retrieved with json_last_error() and json_last_error_msg(). + * + * {@see JSON_PARTIAL_OUTPUT_ON_ERROR} takes precedence over JSON_THROW_ON_ERROR. + * @since 7.3 + */ +define('JSON_THROW_ON_ERROR', 4194304); + +/** + * @since 8.1 + */ +define('JSON_ERROR_NON_BACKED_ENUM', 11); + +/** + * Class JsonException + * + *A new flag has been added, JSON_THROW_ON_ERROR, which can be used with + * json_decode() or json_encode() and causes these functions to throw a + * JsonException upon an error, instead of setting the global error state that + * is retrieved with json_last_error(). JSON_PARTIAL_OUTPUT_ON_ERROR takes + * precedence over JSON_THROW_ON_ERROR. + *
+ * + * @since 7.3 + * @link https://wiki.php.net/rfc/json_throw_on_error + */ +class JsonException extends Exception {} + +// End of json v.1.3.1 diff --git a/phpstorm-stubs/judy/judy.php b/phpstorm-stubs/judy/judy.php new file mode 100644 index 0000000..f883bf6 --- /dev/null +++ b/phpstorm-stubs/judy/judy.php @@ -0,0 +1,217 @@ + + * Construct a new Judy object. A Judy object can be accessed like a PHP Array. + * @link https://php.net/manual/en/judy.construct.php + * @param int $judy_typeThe Judy type to be used.
+ */ + public function __construct($judy_type) {} + + /** + * (PECL judy >= 0.1.1)Nth index to return. If nth_index equal 1, then it will return the first index in the array.
+ * @return intReturn the index at the given Nth position.
+ */ + public function byCount($nth_index) {} + + /** + * (PECL judy >= 0.1.1)Start counting from the given index. Default is first index.
+ * @param int $index_end [optional]Stop counting when reaching this index. Default is last index.
+ * @return intReturn the number of elements.
+ */ + public function count($index_start = 0, $index_end = -1) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function first($index = 0) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function firstEmpty($index = 0) {} + + /** + * (PECL judy >= 0.1.1)Return an integer corresponding to a Judy type.
+ */ + public function getType() {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function last($index = -1) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function lastEmpty($index = -1) {} + + /** + * (PECL judy >= 0.1.1)Return the memory used in bytes.
+ */ + public function memoryUsage() {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function next($index) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function nextEmpty($index) {} + + /** + * (PECL judy >= 0.1.1)An offset to check for.
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ + public function offsetExists($offset) {} + + /** + * (PECL judy >= 0.1.1)An offset to check for.
+ * @return mixedCan return all value types.
+ */ + public function offsetGet($offset) {} + + /** + * (PECL judy >= 0.1.1)The offset to assign the value to.
+ * @param mixed $valueThe value to set.
+ */ + public function offsetSet($offset, $value) {} + + /** + * (PECL judy >= 0.1.1)The offset to assign the value to.
+ */ + public function offsetUnset($offset) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function prev($index) {} + + /** + * (PECL judy >= 0.1.1)The index can be an integer or a string corresponding to the index where to start the search.
+ * @return mixedReturn the corresponding index in the array.
+ */ + public function prevEmpty($index) {} + + /** + * (PECL judy >= 0.1.1)Start counting from the given index. Default is first index.
+ * @param int $index_end [optional]Stop counting when reaching this index. Default is last index.
+ * @return intReturn the number of elements.
+ */ + public function size($index_start = 0, $index_end = -1) {} +} + +// End of judy. diff --git a/phpstorm-stubs/ldap/Connection.php b/phpstorm-stubs/ldap/Connection.php new file mode 100644 index 0000000..62b5199 --- /dev/null +++ b/phpstorm-stubs/ldap/Connection.php @@ -0,0 +1,8 @@ + 'LDAP\Connection'], default: 'resource')] $ldap, + #[Available(from: '7.1', to: '7.1')] string $user = "", + #[Available(from: '7.2', to: '7.2')] string $user, + #[Available(from: '7.3')] string $user = "", + #[Available(from: '7.1', to: '7.1')] string $old_password = "", + #[Available(from: '7.2', to: '7.2')] string $old_password, + #[Available(from: '7.3')] string $old_password = "", + #[Available(from: '7.1', to: '7.1')] string $new_password = "", + #[Available(from: '7.2', to: '7.2')] string $new_password, + #[Available(from: '7.3')] string $new_password = "", + #[Available(from: '7.3')] &$controls = null +): string|bool {} + +/** + * Refresh extended operation helper + * @link https://www.php.net/manual/en/function.ldap-exop-refresh.php + * @param resource $ldap An LDAP link identifier, returned by ldap_connect(). + * @param string $dn dn of the entry to refresh. + * @param int $ttl $ttl Time in seconds (between 1 and 31557600) that the client requests that the entry exists in the directory before being automatically removed. + * @return int|false From RFC: The responseTtl field is the time in seconds which the server chooses to have as the time-to-live field for that entry. It must not be any smaller than that which the client requested, and it may be larger. However, to allow servers to maintain a relatively accurate directory, and to prevent clients from abusing the dynamic extensions, servers are permitted to shorten a client-requested time-to-live value, down to a minimum of 86400 seconds (one day). FALSE will be returned on error. + * @since 7.3 + */ +function ldap_exop_refresh(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, string $dn, int $ttl): int|false {} + +/** + * WHOAMI extended operation helper + * @link https://www.php.net/manual/en/function.ldap-exop-whoami.php + * @param resource $ldap An LDAP link identifier, returned by ldap_connect(). + * @return string|false The data returned by the server, or FALSE on error. + * @since 7.2 + */ +function ldap_exop_whoami(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): string|false {} + +/** + * Performs an extended operation on the specified link with reqoid the OID of the operation and reqdata the data. + * @link https://www.php.net/manual/en/function.ldap-exop.php + * @param resource $ldap An LDAP link identifier, returned by ldap_connect(). + * @param string $request_oid The extended operation request OID. You may use one of LDAP_EXOP_START_TLS, LDAP_EXOP_MODIFY_PASSWD, LDAP_EXOP_REFRESH, LDAP_EXOP_WHO_AM_I, LDAP_EXOP_TURN, or a string with the OID of the operation you want to send. + * @param string|null $request_data [optional] The extended operation request data. May be NULL for some operations like LDAP_EXOP_WHO_AM_I, may also need to be BER encoded. + * @param array|null $controls If provided, a password policy request control is send with the request and this is filled with an array of LDAP Controls returned with the request. + * @param string &$response_data [optional] Will be filled with the extended operation response data if provided. If not provided you may use ldap_parse_exop on the result object later to get this data. + * @param string &$response_oid [optional] Will be filled with the response OID if provided, usually equal to the request OID. + * @return resource|bool When used with retdata, returns TRUE on success or FALSE on error. When used without retdata, returns a result identifier or FALSE on error. + * @since 7.2 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|bool'], default: 'resource|bool')] +function ldap_exop(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, string $request_oid, ?string $request_data, #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null, &$response_data, &$response_oid) {} + +/** + * Parse LDAP extended operation data from result object result + * @link https://www.php.net/manual/en/function.ldap-parse-exop.php + * @param resource $ldap An LDAP link identifier, returned by ldap_connect(). + * @param resource $result An LDAP result resource, returned by ldap_exop(). + * @param string &$response_data Will be filled by the response data. + * @param string &$response_oid Will be filled by the response OID. + * @return bool Returns TRUE on success or FALSE on failure. + * @since 7.2 + */ +function ldap_parse_exop( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result, + #[Available(from: '7.2', to: '7.4')] &$response_data, + #[Available(from: '8.0')] &$response_data = null, + #[Available(from: '7.2', to: '7.4')] &$response_oid, + #[Available(from: '8.0')] &$response_oid = null +): bool {} + +/** + * Translate 8859 characters to t61 characters + * @link https://www.php.net/manual/en/function.ldap-8859-to-t61.php + * @param string $value + * @return string + */ +function ldap_8859_to_t61(string $value): string {} + +/** + * Translate t61 characters to 8859 characters + * @link https://www.php.net/manual/en/function.ldap-t61-to-8859.php + * @param string $value + * @return string + */ +function ldap_t61_to_8859(string $value): string {} + +/** + * Connect to an LDAP server + * @link https://php.net/manual/en/function.ldap-connect.php + * @param string|null $uri [optional]+ * If you are using OpenLDAP 2.x.x you can specify a URL instead of the + * hostname. To use LDAP with SSL, compile OpenLDAP 2.x.x with SSL + * support, configure PHP with SSL, and set this parameter as + * ldaps://hostname/. + *
+ * @param int $port [optional]+ * The port to connect to. Not used when using URLs. + *
+ * @return resource|false a positive LDAP link identifier on success, or FALSE on error. + * When OpenLDAP 2.x.x is used, ldap_connect will always + * return a resource as it does not actually connect but just + * initializes the connecting parameters. The actual connect happens with + * the next calls to ldap_* funcs, usually with + * ldap_bind. + * + *+ * If no arguments are specified then the link identifier of the already + * opened link will be returned. + */ +#[PhpVersionAware(['8.1' => 'LDAP\Connection|false'], default: 'resource|false')] +function ldap_connect(?string $uri, int $port = 389) {} + +/** + * Alias of ldap_unbind + * @link https://php.net/manual/en/function.ldap-close.php + * @param resource $ldap + * @return bool + */ +function ldap_close(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): bool {} + +/** + * Bind to LDAP directory + * @link https://php.net/manual/en/function.ldap-bind.php + * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string|null $dn [optional] + * @param string|null $password [optional] + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_bind(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, ?string $dn, ?string $password): bool {} + +/** + * Bind to LDAP directory + * Does the same thing as ldap_bind() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-bind.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string|null $dn [optional] + * @param string|null $password [optional] + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_bind_ext( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + ?string $dn, + ?string $password, + #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * Bind to LDAP directory using SASL + * @link https://php.net/manual/en/function.ldap-sasl-bind.php + * @param resource $ldap + * @param string $binddn [optional] + * @param string $password [optional] + * @param string $sasl_mech [optional] + * @param string $sasl_realm [optional] + * @param string $sasl_authc_id [optional] + * @param string $sasl_authz_id [optional] + * @param string $props [optional] + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_sasl_bind(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, $binddn = null, $password = null, $sasl_mech = null, $sasl_realm = null, $sasl_authc_id = null, $sasl_authz_id = null, $props = null): bool {} + +/** + * Unbind from LDAP directory + * @link https://php.net/manual/en/function.ldap-unbind.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ldap_unbind(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): bool {} + +/** + * Read an entry + * @link https://php.net/manual/en/function.ldap-read.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param array|array|string $base+ * The base DN for the directory. + *
+ * @param array|string $filter+ * An empty filter is not allowed. If you want to retrieve absolutely all + * information for this entry, use a filter of + * objectClass=*. If you know which entry types are + * used on the directory server, you might use an appropriate filter such + * as objectClass=inetOrgPerson. + *
+ * @param array $attributes+ * An array of the required attributes, e.g. array("mail", "sn", "cn"). + * Note that the "dn" is always returned irrespective of which attributes + * types are requested. + *
+ *+ * Using this parameter is much more efficient than the default action + * (which is to return all attributes and their associated values). + * The use of this parameter should therefore be considered good + * practice. + *
+ * @param int $attributes_only+ * Should be set to 1 if only attribute types are wanted. If set to 0 + * both attributes types and attribute values are fetched which is the + * default behaviour. + *
+ * @param int $sizelimit [optional]+ * Enables you to limit the count of entries fetched. Setting this to 0 + * means no limit. + *
+ *+ * This parameter can NOT override server-side preset sizelimit. You can + * set it lower though. + *
+ *+ * Some directory server hosts will be configured to return no more than + * a preset number of entries. If this occurs, the server will indicate + * that it has only returned a partial results set. This also occurs if + * you use this parameter to limit the count of fetched entries. + *
+ * @param int $timelimit [optional]+ * Sets the number of seconds how long is spend on the search. Setting + * this to 0 means no limit. + *
+ *+ * This parameter can NOT override server-side preset timelimit. You can + * set it lower though. + *
+ * @param int $deref+ * Specifies how aliases should be handled during the search. It can be + * one of the following: + * LDAP_DEREF_NEVER - (default) aliases are never + * dereferenced.
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false a search result identifier or FALSE on error. + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|array|false'], default: 'resource|false')] +function ldap_read( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + array|string $base, + array|string $filter, + array $attributes = [], + int $attributes_only = 0, + int $sizelimit = -1, + int $timelimit = -1, + int $deref = 0, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * Single-level search + * @link https://php.net/manual/en/function.ldap-list.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param array|array|string $base+ * The base DN for the directory. + *
+ * @param array|string $filter + * @param array $attributes+ * An array of the required attributes, e.g. array("mail", "sn", "cn"). + * Note that the "dn" is always returned irrespective of which attributes + * types are requested. + *
+ *+ * Using this parameter is much more efficient than the default action + * (which is to return all attributes and their associated values). + * The use of this parameter should therefore be considered good + * practice. + *
+ * @param int $attributes_only+ * Should be set to 1 if only attribute types are wanted. If set to 0 + * both attributes types and attribute values are fetched which is the + * default behaviour. + *
+ * @param int $sizelimit [optional]+ * Enables you to limit the count of entries fetched. Setting this to 0 + * means no limit. + *
+ *+ * This parameter can NOT override server-side preset sizelimit. You can + * set it lower though. + *
+ *+ * Some directory server hosts will be configured to return no more than + * a preset number of entries. If this occurs, the server will indicate + * that it has only returned a partial results set. This also occurs if + * you use this parameter to limit the count of fetched entries. + *
+ * @param int $timelimit [optional]+ * Sets the number of seconds how long is spend on the search. Setting + * this to 0 means no limit. + *
+ *+ * This parameter can NOT override server-side preset timelimit. You can + * set it lower though. + *
+ * @param int $deref+ * Specifies how aliases should be handled during the search. It can be + * one of the following: + * LDAP_DEREF_NEVER - (default) aliases are never + * dereferenced.
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false a search result identifier or FALSE on error. + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|array|false'], default: 'resource|false')] +function ldap_list( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + array|string $base, + array|string $filter, + array $attributes = [], + int $attributes_only = 0, + int $sizelimit = -1, + int $timelimit = -1, + int $deref = 0, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * Search LDAP tree + * @link https://php.net/manual/en/function.ldap-search.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param array|string $base+ * The base DN for the directory. + *
+ * @param array|string $filter+ * The search filter can be simple or advanced, using boolean operators in + * the format described in the LDAP documentation (see the Netscape Directory SDK for full + * information on filters). + *
+ * @param array $attributes+ * An array of the required attributes, e.g. array("mail", "sn", "cn"). + * Note that the "dn" is always returned irrespective of which attributes + * types are requested. + *
+ *+ * Using this parameter is much more efficient than the default action + * (which is to return all attributes and their associated values). + * The use of this parameter should therefore be considered good + * practice. + *
+ * @param int $attributes_only+ * Should be set to 1 if only attribute types are wanted. If set to 0 + * both attributes types and attribute values are fetched which is the + * default behaviour. + *
+ * @param int $sizelimit [optional]+ * Enables you to limit the count of entries fetched. Setting this to 0 + * means no limit. + *
+ *+ * This parameter can NOT override server-side preset sizelimit. You can + * set it lower though. + *
+ *+ * Some directory server hosts will be configured to return no more than + * a preset number of entries. If this occurs, the server will indicate + * that it has only returned a partial results set. This also occurs if + * you use this parameter to limit the count of fetched entries. + *
+ * @param int $timelimit [optional]+ * Sets the number of seconds how long is spend on the search. Setting + * this to 0 means no limit. + *
+ *+ * This parameter can NOT override server-side preset timelimit. You can + * set it lower though. + *
+ * @param int $deref+ * Specifies how aliases should be handled during the search. It can be + * one of the following: + * LDAP_DEREF_NEVER - (default) aliases are never + * dereferenced.
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false a search result identifier or FALSE on error. + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|array|false'], default: 'resource|false')] +function ldap_search( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + array|string $base, + array|string $filter, + array $attributes = [], + int $attributes_only = 0, + int $sizelimit = -1, + int $timelimit = -1, + int $deref = 0, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * Free result memory + * @link https://php.net/manual/en/function.ldap-free-result.php + * @param resource|Result $result + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_free_result( + #[Available(from: '5.3', to: '8.0')] $ldap, + #[Available(from: '8.1')] Result $result +): bool {} + +/** + * Count the number of entries in a search + * @link https://php.net/manual/en/function.ldap-count-entries.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $result+ * The internal LDAP result. + *
+ * @return int|false number of entries in the result or FALSE on error. + */ +#[PhpVersionAware(["8.0" => "int"], default: "int|false")] +function ldap_count_entries( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result +) {} + +/** + * Return first result id + * @link https://php.net/manual/en/function.ldap-first-entry.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $result + * @return resource|false the result entry identifier for the first entry on success and + * FALSE on error. + */ +#[PhpVersionAware(['8.1' => 'LDAP\ResultEntry|false'], default: 'resource|false')] +function ldap_first_entry( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result +) {} + +/** + * Get next result entry + * @link https://php.net/manual/en/function.ldap-next-entry.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @return resource|false entry identifier for the next entry in the result whose entries + * are being read starting with ldap_first_entry. If + * there are no more entries in the result then it returns FALSE. + */ +#[PhpVersionAware(['8.1' => 'LDAP\ResultEntry|false'], default: 'resource|false')] +function ldap_next_entry( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +) {} + +/** + * Get all result entries + * @link https://php.net/manual/en/function.ldap-get-entries.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $result + * @return array|false a complete result information in a multi-dimensional array on + * success and FALSE on error. + * + *+ * The structure of the array is as follows. + * The attribute index is converted to lowercase. (Attributes are + * case-insensitive for directory servers, but not when used as + * array indices.) + *
+ * return_value["count"] = number of entries in the result + * return_value[0] : refers to the details of first entry + * return_value[i]["dn"] = DN of the ith entry in the result + * return_value[i]["count"] = number of attributes in ith entry + * return_value[i][j] = NAME of the jth attribute in the ith entry in the result + * return_value[i]["attribute"]["count"] = number of values for + * attribute in ith entry + * return_value[i]["attribute"][j] = jth value of attribute in ith entry + *+ */ +function ldap_get_entries( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result +): array|false {} + +/** + * Return first attribute + * @link https://php.net/manual/en/function.ldap-first-attribute.php + * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @return string|false the first attribute in the entry on success and FALSE on + * error. + */ +function ldap_first_attribute( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +): string|false {} + +/** + * Get the next attribute in result + * @link https://php.net/manual/en/function.ldap-next-attribute.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @return string|false the next attribute in an entry on success and FALSE on + * error. + */ +function ldap_next_attribute( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +): string|false {} + +/** + * Get attributes from a search result entry + * @link https://php.net/manual/en/function.ldap-get-attributes.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @return array a complete entry information in a multi-dimensional array + * on success and FALSE on error. + */ +function ldap_get_attributes( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +): array {} + +/** + * Get all values from a result entry + * @link https://php.net/manual/en/function.ldap-get-values.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @param string $attribute + * @return array|false an array of values for the attribute on success and FALSE on + * error. The number of values can be found by indexing "count" in the + * resultant array. Individual values are accessed by integer index in the + * array. The first index is 0. + * + *+ * LDAP allows more than one entry for an attribute, so it can, for example, + * store a number of email addresses for one person's directory entry all + * labeled with the attribute "mail" + * return_value["count"] = number of values for attribute + * return_value[0] = first value of attribute + * return_value[i] = ith value of attribute + */ +function ldap_get_values( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry, + string $attribute +): array|false {} + +/** + * Get all binary values from a result entry + * @link https://php.net/manual/en/function.ldap-get-values-len.php + * @param resource $ldap
+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @param string $attribute + * @return array|false an array of values for the attribute on success and FALSE on + * error. Individual values are accessed by integer index in the array. The + * first index is 0. The number of values can be found by indexing "count" + * in the resultant array. + */ +function ldap_get_values_len( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry, + string $attribute +): array|false {} + +/** + * Get the DN of a result entry + * @link https://php.net/manual/en/function.ldap-get-dn.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $entry + * @return string|false the DN of the result entry and FALSE on error. + */ +function ldap_get_dn( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +): string|false {} + +/** + * Splits DN into its component parts + * @link https://php.net/manual/en/function.ldap-explode-dn.php + * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param int $with_attrib+ * Used to request if the RDNs are returned with only values or their + * attributes as well. To get RDNs with the attributes (i.e. in + * attribute=value format) set with_attrib to 0 + * and to get only values set it to 1. + *
+ * @return array|false an array of all DN components. + * The first element in this array has count key and + * represents the number of returned values, next elements are numerically + * indexed DN components. + */ +#[ArrayShape(["count" => "int"])] +function ldap_explode_dn(string $dn, int $with_attrib): array|false {} + +/** + * Convert DN to User Friendly Naming format + * @link https://php.net/manual/en/function.ldap-dn2ufn.php + * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @return string|false the user friendly name. + */ +function ldap_dn2ufn(string $dn): string|false {} + +/** + * Add entries to LDAP directory + * @link https://php.net/manual/en/function.ldap-add.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry
+ * An array that specifies the information about the entry. The values in
+ * the entries are indexed by individual attributes.
+ * In case of multiple values for an attribute, they are indexed using
+ * integers starting with 0.
+ *
+ * $entree["attribut1"] = "value";
+ * $entree["attribut2"][0] = "value1";
+ * $entree["attribut2"][1] = "value2";
+ *
+ *
+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry
+ * An array that specifies the information about the entry. The values in
+ * the entries are indexed by individual attributes.
+ * In case of multiple values for an attribute, they are indexed using
+ * integers starting with 0.
+ *
+ * $entree["attribut1"] = "value";
+ * $entree["attribut2"][0] = "value1";
+ * $entree["attribut2"][1] = "value2";
+ *
+ *
+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_delete( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Delete an entry from a directory + * Does the same thing as ldap_delete() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-delete-ext.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_delete_ext( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * This function is an alias of: ldap_mod_replace(). + * Replace attribute values with new ones + * @link https://www.php.net/manual/en/function.ldap-modify.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_modify( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $entry, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Add attribute values to current attributes + * @link https://php.net/manual/en/function.ldap-mod-add.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_mod_add( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $entry, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Add attribute values to current attributes + * Does the same thing as ldap_mod_add() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-mod-add-ext.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_mod_add_ext( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $entry, + #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +) {} + +/** + * Replace attribute values with new ones + * @link https://php.net/manual/en/function.ldap-mod-replace.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_mod_replace( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $entry, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Replace attribute values with new ones + * Does the same thing as ldap_mod_replace() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-mod-replace-ext.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_mod_replace_ext(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, string $dn, array $entry, #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null) {} + +/** + * Delete attribute values from current attributes + * @link https://php.net/manual/en/function.ldap-mod-del.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_mod_del( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $entry, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Delete attribute values from current attributes + * Does the same thing as ldap_mod_del() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-mod-del-ext.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param array $entry + * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_mod_del_ext(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, string $dn, array $entry, #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null) {} + +/** + * Return the LDAP error number of the last LDAP command + * @link https://php.net/manual/en/function.ldap-errno.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @return int Return the LDAP error number of the last LDAP command for this + * link. + */ +function ldap_errno(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): int {} + +/** + * Convert LDAP error number into string error message + * @link https://php.net/manual/en/function.ldap-err2str.php + * @param int $errno+ * The error number. + *
+ * @return string the error message, as a string. + */ +function ldap_err2str(int $errno): string {} + +/** + * Return the LDAP error message of the last LDAP command + * @link https://php.net/manual/en/function.ldap-error.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @return string string error message. + */ +function ldap_error(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): string {} + +/** + * Compare value of attribute found in entry specified with DN + * @link https://php.net/manual/en/function.ldap-compare.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param string $attribute+ * The attribute name. + *
+ * @param string $value+ * The compared value. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return int|bool TRUE if value matches otherwise returns + * FALSE. Returns -1 on error. + */ +function ldap_compare( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + string $attribute, + string $value, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): int|bool {} + +/** + * Sort LDAP result entries + * @link https://php.net/manual/en/function.ldap-sort.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $result+ * An search result identifier, returned by + * ldap_search. + *
+ * @param string $sortfilter+ * The attribute to use as a key in the sort. + *
+ * @removed 8.0 + * @return bool + */ +#[Deprecated(since: "7.0")] +function ldap_sort(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, $result, string $sortfilter): bool {} + +/** + * Modify the name of an entry + * @link https://php.net/manual/en/function.ldap-rename.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param string $new_rdn+ * The new RDN. + *
+ * @param string $new_parent+ * The new parent/superior entry. + *
+ * @param bool $delete_old_rdn+ * If TRUE the old RDN value(s) is removed, else the old RDN value(s) + * is retained as non-distinguished values of the entry. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + */ +function ldap_rename( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + string $new_rdn, + string $new_parent, + bool $delete_old_rdn, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * Modify the name of an entry + * Does the same thing as ldap_rename() but returns the LDAP result resource to be parsed with ldap_parse_result(). + * @link https://php.net/manual/en/function.ldap-rename-ext.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param string $dn+ * The distinguished name of an LDAP entity. + *
+ * @param string $new_rdn+ * The new RDN. + *
+ * @param string $new_parent+ * The new parent/superior entry. + *
+ * @param bool $delete_old_rdn+ * If TRUE the old RDN value(s) is removed, else the old RDN value(s) + * is retained as non-distinguished values of the entry. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return resource|false + * @since 7.3 + */ +#[PhpVersionAware(['8.1' => 'LDAP\Result|false'], default: 'resource|false')] +function ldap_rename_ext(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null) {} + +/** + * Get the current value for given option + * @link https://php.net/manual/en/function.ldap-get-option.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param int $option+ * The parameter option can be one of: + *
+ * This will be set to the option value. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ldap_get_option( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + int $option, + #[Available(from: '5.3', to: '7.4')] &$value, + #[Available(from: '8.0')] &$value = null +): bool {} + +/** + * Set the value of the given option + * @link https://php.net/manual/en/function.ldap-set-option.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param int $option+ * The parameter option can be one of: + *
+ * LDAP_OPT_SERVER_CONTROLS and + * LDAP_OPT_CLIENT_CONTROLS require a list of + * controls, this means that the value must be an array of controls. A + * control consists of an oid identifying the control, + * an optional value, and an optional flag for + * criticality. In PHP a control is given by an + * array containing an element with the key oid + * and string value, and two optional elements. The optional + * elements are key value with string value + * and key iscritical with boolean value. + * iscritical defaults to FALSE + * if not supplied. See draft-ietf-ldapext-ldap-c-api-xx.txt + * for details. See also the second example below. + *
+ * @param mixed $value+ * The new value for the specified option. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function ldap_set_option( + #[PhpVersionAware(['8.1' => 'LDAP\Connection|null'], default: 'resource')] $ldap, + int $option, + $value +): bool {} + +/** + * Return first reference + * @link https://php.net/manual/en/function.ldap-first-reference.php + * @param resource $ldap + * @param resource $result + * @return resource + */ +#[PhpVersionAware(['8.1' => 'LDAP\ResultEntry|false'], default: 'resource')] +function ldap_first_reference( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result +) {} + +/** + * Get next reference + * @link https://php.net/manual/en/function.ldap-next-reference.php + * @param resource $ldap + * @param resource $entry + * @return resource + */ +#[PhpVersionAware(['8.1' => 'LDAP\ResultEntry|false'], default: 'resource')] +function ldap_next_reference( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry +) {} + +/** + * Extract information from reference entry + * @link https://php.net/manual/en/function.ldap-parse-reference.php + * @param resource $ldap + * @param resource $entry + * @param array &$referrals + * @return bool + */ +function ldap_parse_reference( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\ResultEntry'], default: 'resource')] $entry, + &$referrals +): bool {} + +/** + * Extract information from result + * @link https://php.net/manual/en/function.ldap-parse-result.php + * @param resource $ldap + * @param resource $result + * @param int &$error_code + * @param string &$matched_dn [optional] + * @param string &$error_message [optional] + * @param array &$referrals [optional] + * @param array &$controls An array of LDAP Controls which have been sent with the response. + * @return bool + */ +function ldap_parse_result( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result, + &$error_code, + &$matched_dn, + &$error_message, + &$referrals, + #[Available(from: '7.3')] &$controls = null +): bool {} + +/** + * Start TLS + * @link https://php.net/manual/en/function.ldap-start-tls.php + * @param resource $ldap + * @return bool + */ +function ldap_start_tls(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap): bool {} + +/** + * Set a callback function to do re-binds on referral chasing + * @link https://php.net/manual/en/function.ldap-set-rebind-proc.php + * @param resource $ldap + * @param callable|null $callback + * @return bool + */ +function ldap_set_rebind_proc(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, ?callable $callback): bool {} + +/** + * Send LDAP pagination control + * @link https://php.net/manual/en/function.ldap-control-paged-result.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param int $pagesize+ * The number of entries by page. + *
+ * @param bool $iscritical [optional]+ * Indicates whether the pagination is critical of not. + * If true and if the server doesn't support pagination, the search + * will return no result. + *
+ * @param string $cookie [optional]+ * An opaque structure sent by the server + * (ldap_control_paged_result_response). + *
+ * @return bool TRUE on success or FALSE on failure. + * @since 5.4 + * @removed 8.0 + */ +#[Deprecated(since: "7.4")] +function ldap_control_paged_result(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, int $pagesize, $iscritical = false, $cookie = ""): bool {} + +/** + * Retrieve the LDAP pagination cookie + * @link https://php.net/manual/en/function.ldap-control-paged-result-response.php + * @param resource $ldap+ * An LDAP link identifier, returned by ldap_connect. + *
+ * @param resource $result + * @param string &$cookie [optional]+ * An opaque structure sent by the server. + *
+ * @param int &$estimated [optional]+ * The estimated number of entries to retrieve. + *
+ * @return bool TRUE on success or FALSE on failure. + * @since 5.4 + * @removed 8.0 + */ +#[Deprecated(since: "7.4")] +function ldap_control_paged_result_response(#[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, $result, &$cookie = null, &$estimated = null): bool {} + +/** + * Escape a string for use in an LDAP filter or DN + * @param string $value The value to escape. + * @param string $ignore [optional] Characters to ignore when escaping. + * @param int $flags [optional] The context the escaped string will be used in: LDAP_ESCAPE_FILTER for filters to be used with ldap_search(), or LDAP_ESCAPE_DN for DNs. If neither flag is passed, all chars are escaped. + * @return string + * @since 5.6 + */ +function ldap_escape(string $value, string $ignore = "", int $flags = 0): string {} + +/** + * (PHP 5.4 >= 5.4.26, PHP 5.5 >= 5.5.10, PHP 5.6 >= 5.6.0) + * Batch and execute modifications on an LDAP entry + * @link https://php.net/manual/en/function.ldap-modify-batch.php + * @param $ldap+ * An LDAP link identifier, returned by + * {@see ldap_connect()}. + *
+ * @param string $dnThe distinguished name of an LDAP entity.
+ * @param array $modifications_infoAn array that specifies the modifications to make. Each entry in this + * array is an associative array with two or three keys: + * attrib maps to the name of the attribute to modify, + * modtype maps to the type of modification to perform, + * and (depending on the type of modification) values + * maps to an array of attribute values relevant to the modification. + *
+ *+ * Possible values for modtype include: + *
+ *+ * Each value specified through values is added (as + * an additional value) to the attribute named by + * attrib. + *
+ *+ * Each value specified through values is removed + * from the attribute named by attrib. Any value of + * the attribute not contained in the values array + * will remain untouched. + *
+ *+ * All values are removed from the attribute named by + * attrib. A values entry must + * not be provided. + *
+ *+ * All current values of the attribute named by + * attrib are replaced with the values specified + * through values. + *
+ *+ * Note that any value for attrib must be a string, any + * value for values must be an array of strings, and + * any value for modtype must be one of the + * LDAP_MODIFY_BATCH_* constants listed above. + *
+ * @param array|null $controls Array of LDAP Controls to send with the request. + * @return bool TRUE on success or FALSE on failure. + * @since 5.4 + */ +function ldap_modify_batch( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + string $dn, + array $modifications_info, + #[Available(from: '7.3')] #[PhpVersionAware(["8.0" => "null|array"], default: "array")] $controls = null +): bool {} + +/** + * @param resource $ldap + * @param resource $result + * @return int returns the number of reference messages in a search result. + * @since 8.0 + */ +function ldap_count_references( + #[PhpVersionAware(['8.1' => 'LDAP\Connection'], default: 'resource')] $ldap, + #[PhpVersionAware(['8.1' => 'LDAP\Result'], default: 'resource')] $result +): int {} + +/** + * @since 8.3 + */ +function ldap_exop_sync(LDAP\Connection $ldap, string $request_oid, ?string $request_data = null, ?array $controls = null, &$response_data = null, &$response_oid = null): Result|bool {} + +define('LDAP_ESCAPE_FILTER', 1); +define('LDAP_ESCAPE_DN', 2); +define('LDAP_DEREF_NEVER', 0); +define('LDAP_DEREF_SEARCHING', 1); +define('LDAP_DEREF_FINDING', 2); +define('LDAP_DEREF_ALWAYS', 3); +define('LDAP_MODIFY_BATCH_REMOVE', 2); +define('LDAP_MODIFY_BATCH_ADD', 1); +define('LDAP_MODIFY_BATCH_REMOVE_ALL', 18); +define('LDAP_MODIFY_BATCH_REPLACE', 3); + +define('LDAP_OPT_X_TLS_REQUIRE_CERT', 24582); +define('LDAP_OPT_X_TLS_NEVER', 0); +define('LDAP_OPT_X_TLS_HARD', 1); +define('LDAP_OPT_X_TLS_DEMAND', 2); +define('LDAP_OPT_X_TLS_ALLOW', 3); +define('LDAP_OPT_X_TLS_TRY', 4); +define('LDAP_OPT_X_TLS_CERTFILE', 24580); +define('LDAP_OPT_X_TLS_CIPHER_SUITE', 24584); +define('LDAP_OPT_X_TLS_KEYFILE', 24581); +define('LDAP_OPT_X_TLS_DHFILE', 24590); +define('LDAP_OPT_X_TLS_CRLFILE', 24592); +define('LDAP_OPT_X_TLS_RANDOM_FILE', 24585); +define('LDAP_OPT_X_TLS_CRLCHECK', 24587); +define('LDAP_OPT_X_TLS_CRL_NONE', 0); +define('LDAP_OPT_X_TLS_CRL_PEER', 1); +define('LDAP_OPT_X_TLS_CRL_ALL', 2); +define('LDAP_OPT_X_TLS_PROTOCOL_MIN', 24583); +define('LDAP_OPT_X_TLS_PROTOCOL_SSL2', 512); +define('LDAP_OPT_X_TLS_PROTOCOL_SSL3', 768); +define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_0', 769); +define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_1', 770); +define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_2', 771); +define('LDAP_OPT_X_TLS_PACKAGE', 24593); +define('LDAP_OPT_X_KEEPALIVE_IDLE', 25344); +define('LDAP_OPT_X_KEEPALIVE_PROBES', 25345); +define('LDAP_OPT_X_KEEPALIVE_INTERVAL', 25346); +define('LDAP_OPT_X_SASL_USERNAME', 24844); +define('LDAP_OPT_X_SASL_NOCANON', 24843); + +/** + * Specifies alternative rules for following aliases at the server. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_DEREF', 2); + +/** + *+ * Specifies the maximum number of entries that can be + * returned on a search operation. + *
+ * The actual size limit for operations is also bounded + * by the server's configured maximum number of return entries. + * The lesser of these two settings is the actual size limit. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_SIZELIMIT', 3); + +/** + * Specifies the number of seconds to wait for search results. + * The actual time limit for operations is also bounded + * by the server's configured maximum time. + * The lesser of these two settings is the actual time limit. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_TIMELIMIT', 4); + +/** + * Option for ldap_set_option to allow setting network timeout. + * (Available as of PHP 5.3.0) + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_NETWORK_TIMEOUT', 20485); + +/** + * Specifies the LDAP protocol to be used (V2 or V3). + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_PROTOCOL_VERSION', 17); +define('LDAP_OPT_ERROR_NUMBER', 49); + +/** + * Specifies whether to automatically follow referrals returned + * by the LDAP server. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_REFERRALS', 8); +define('LDAP_OPT_RESTART', 9); +define('LDAP_OPT_HOST_NAME', 48); +define('LDAP_OPT_ERROR_STRING', 50); +define('LDAP_OPT_MATCHED_DN', 51); + +/** + * Specifies a default list of server controls to be sent with each request. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_SERVER_CONTROLS', 18); + +/** + * Specifies a default list of client controls to be processed with each request. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_CLIENT_CONTROLS', 19); + +/** + * Specifies a bitwise level for debug traces. + * @link https://php.net/manual/en/ldap.constants.php + */ +define('LDAP_OPT_DEBUG_LEVEL', 20481); +define('LDAP_OPT_X_SASL_MECH', 24832); +define('LDAP_OPT_X_SASL_REALM', 24833); +define('LDAP_OPT_X_SASL_AUTHCID', 24834); +define('LDAP_OPT_X_SASL_AUTHZID', 24835); + +/** + * Specifies the path of the directory containing CA certificates. + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.1 + */ +define('LDAP_OPT_X_TLS_CACERTDIR', 24579); + +/** + * Specifies the full-path of the CA certificate file. + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.1 + */ +define('LDAP_OPT_X_TLS_CACERTFILE', 24578); + +define('LDAP_MODIFY_BATCH_ATTRIB', 'attrib'); +define('LDAP_MODIFY_BATCH_MODTYPE', 'modtype'); +define('LDAP_MODIFY_BATCH_VALUES', 'values'); +define('LDAP_OPT_TIMEOUT', 20482); +define('LDAP_OPT_DIAGNOSTIC_MESSAGE', 50); + +/** + * Control Constant - Manage DSA IT (» RFC 3296) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_MANAGEDSAIT", "2.16.840.1.113730.3.4.2"); + +/** + * Control Constant - Proxied Authorization (» RFC 4370) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_PROXY_AUTHZ", "2.16.840.1.113730.3.4.18"); + +/** + * Control Constant - Subentries (» RFC 3672) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SUBENTRIES", "1.3.6.1.4.1.4203.1.10.1"); + +/** + * Control Constant - Filter returned values (» RFC 3876) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_VALUESRETURNFILTER", "1.2.826.0.1.3344810.2.3"); + +/** + * Control Constant - Assertion (» RFC 4528) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_ASSERT", "1.3.6.1.1.12"); + +/** + * Control Constant - Pre read (» RFC 4527) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_PRE_READ", "1.3.6.1.1.13.1"); + +/** + * Control Constant - Post read (» RFC 4527) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_POST_READ", "1.3.6.1.1.13.2"); + +/** + * Control Constant - Sort request (» RFC 2891) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SORTREQUEST", "1.2.840.113556.1.4.473"); + +/** + * Control Constant - Sort response (» RFC 2891) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SORTRESPONSE", "1.2.840.113556.1.4.474"); + +/** + * Control Constant - Paged results (» RFC 2696) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_PAGEDRESULTS", "1.2.840.113556.1.4.319"); + +/** + * Control Constant - Content Synchronization Operation (» RFC 4533) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SYNC", "1.3.6.1.4.1.4203.1.9.1.1"); + +/** + * Control Constant - Content Synchronization Operation State (» RFC 4533) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SYNC_STATE", "1.3.6.1.4.1.4203.1.9.1.2"); + +/** + * Control Constant - Content Synchronization Operation Done (» RFC 4533) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_SYNC_DONE", "1.3.6.1.4.1.4203.1.9.1.3"); + +/** + * Control Constant - Don't Use Copy (» RFC 6171) + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_DONTUSECOPY", "1.3.6.1.1.22"); + +/** + * Control Constant - Password Policy Request + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_PASSWORDPOLICYREQUEST", "1.3.6.1.4.1.42.2.27.8.5.1"); + +/** + * Control Constant - Password Policy Response + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_PASSWORDPOLICYRESPONSE", "1.3.6.1.4.1.42.2.27.8.5.1"); + +/** + * Control Constant - Active Directory Incremental Values + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_INCREMENTAL_VALUES", "1.2.840.113556.1.4.802"); + +/** + * Control Constant - Active Directory Domain Scope + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_DOMAIN_SCOPE", "1.2.840.113556.1.4.1339"); + +/** + * Control Constant - Active Directory Permissive Modify + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_PERMISSIVE_MODIFY", "1.2.840.113556.1.4.1413"); + +/** + * Control Constant - Active Directory Search Options + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_SEARCH_OPTIONS", "1.2.840.113556.1.4.1340"); + +/** + * Control Constant - Active Directory Tree Delete + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_TREE_DELETE", "1.2.840.113556.1.4.805"); + +/** + * Control Constant - Active Directory Extended DN + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_X_EXTENDED_DN", "1.2.840.113556.1.4.529"); + +/** + * Control Constant - Virtual List View Request + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_VLVREQUEST", "2.16.840.1.113730.3.4.9"); + +/** + * Control Constant - Virtual List View Response + * @link https://php.net/manual/en/ldap.constants.php + * @since 7.2 + */ +define("LDAP_CONTROL_VLVRESPONSE", "2.16.840.1.113730.3.4.10"); + +/** + * Extended Operation constant - Modify password + */ +define("LDAP_EXOP_MODIFY_PASSWD", "1.3.6.1.4.1.4203.1.11.1"); + +/** + * Extended Operation Constant - Refresh + */ +define("LDAP_EXOP_REFRESH", "1.3.6.1.4.1.1466.101.119.1"); + +/** + * Extended Operation constant - Start TLS + */ +define("LDAP_EXOP_START_TLS", "1.3.6.1.4.1.1466.20037"); + +/** + * Extended Operation Constant - Turn + */ +define("LDAP_EXOP_TURN", "1.3.6.1.1.19"); + +/** + * Extended Operation Constant - WHOAMI + */ +define("LDAP_EXOP_WHO_AM_I", "1.3.6.1.4.1.4203.1.11.3"); + +/** + * @since 7.3 + */ +define('LDAP_CONTROL_AUTHZID_REQUEST', '2.16.840.1.113730.3.4.16'); + +/** + * @since 7.3 + */ +define('LDAP_CONTROL_AUTHZID_RESPONSE', '2.16.840.1.113730.3.4.15'); + +// End of ldap v. diff --git a/phpstorm-stubs/leveldb/LevelDB.php b/phpstorm-stubs/leveldb/LevelDB.php new file mode 100644 index 0000000..063fbd2 --- /dev/null +++ b/phpstorm-stubs/leveldb/LevelDB.php @@ -0,0 +1,154 @@ + true, // if the specified database does not exist will create a new one + 'error_if_exists' => false, // if the opened database exists will throw exception + 'paranoid_checks' => false, + 'block_cache_size' => 8 * (2 << 20), + 'write_buffer_size' => 4 << 20, + 'block_size' => 4096, + 'max_open_files' => 1000, + 'block_restart_interval' => 16, + 'compression' => LEVELDB_SNAPPY_COMPRESSION, + 'comparator' => null, // any callable parameter return 0, -1, 1 + ], array $read_options = [ + 'verify_check_sum' => false, //may be set to true to force checksum verification of all data that is read from the file system on behalf of a particular read. By default, no such verification is done. + 'fill_cache' => true, //When performing a bulk read, the application may set this to false to disable the caching so that the data processed by the bulk read does not end up displacing most of the cached contents. + ], array $write_options = [ + //Only one element named sync in the write option array. By default, each write to leveldb is asynchronous. + 'sync' => false + ]) {} + + /** + * @param string $key + * @param array $read_options + * + * @return string|false + */ + public function get($key, array $read_options = []) {} + + /** + * Alias of LevelDB::put() + * + * @param string $key + * @param string $value + * @param array $write_options + */ + public function set($key, $value, array $write_options = []) {} + + /** + * @param string $key + * @param string $value + * @param array $write_options + */ + public function put($key, $value, array $write_options = []) {} + + /** + * @param string $key + * @param array $write_options + * + * @return bool + */ + public function delete($key, array $write_options = []) {} + + /** + * Executes all of the operations added in the write batch. + * + * @param LevelDBWriteBatch $batch + * @param array $write_options + */ + public function write(LevelDBWriteBatch $batch, array $write_options = []) {} + + /** + * Valid properties: + * - leveldb.stats: returns the status of the entire db + * - leveldb.num-files-at-level: returns the number of files for each level. For example, you can use leveldb.num-files-at-level0 the number of files for zero level. + * - leveldb.sstables: returns current status of sstables + * + * @param string $name + * + * @return mixed + */ + public function getProperty($name) {} + + public function getApproximateSizes($start, $limit) {} + + public function compactRange($start, $limit) {} + + public function close() {} + + /** + * @param array $options + * + * @return LevelDBIterator + */ + public function getIterator(array $options = []) {} + + /** + * @return LevelDBSnapshot + */ + public function getSnapshot() {} + + public static function destroy($name, array $options = []) {} + + public static function repair($name, array $options = []) {} +} + +class LevelDBIterator implements Iterator +{ + public function __construct(LevelDB $db, array $read_options = []) {} + + public function valid() {} + + public function rewind() {} + + public function last() {} + + public function seek($key) {} + + public function next() {} + + public function prev() {} + + public function key() {} + + public function current() {} + + public function getError() {} + + public function destroy() {} +} + +class LevelDBWriteBatch +{ + public function __construct() {} + + public function set($key, $value, array $write_options = []) {} + + public function put($key, $value, array $write_options = []) {} + + public function delete($key, array $write_options = []) {} + + public function clear() {} +} + +class LevelDBSnapshot +{ + public function __construct(LevelDB $db) {} + + public function release() {} +} + +class LevelDBException extends Exception {} diff --git a/phpstorm-stubs/libevent/libevent.php b/phpstorm-stubs/libevent/libevent.php new file mode 100644 index 0000000..1c7849f --- /dev/null +++ b/phpstorm-stubs/libevent/libevent.php @@ -0,0 +1,687 @@ +Create and initialize new event base + * + *Returns new event base, which can be used later in {@link event_base_set}(), {@link event_base_loop}() and other functions.
+ * + * @link https://php.net/event_base_new + * + * @return resource|false returns valid event base resource on success or FALSE on error. + */ +function event_base_new() {} + +/** + *Destroy event base
+ *(PECL libevent >= 0.0.1)
+ * + *Destroys the specified event_base and frees all the resources associated. + * Note that it's not possible to destroy an event base with events attached to it.
+ * + * @link https://php.net/event_base_free + * + * @param resource $event_base Valid event base resource. + * + * @return void + */ +function event_base_free($event_base) {} + +/** + *Handle events
+ *(PECL libevent >= 0.0.1)
+ * + *Starts event loop for the specified event base.
+ * + *By default, the {@link event_base_loop}() function runs an event_base until + * there are no more events registered in it. To run the loop, it repeatedly + * checks whether any of the registered events has triggered (for example, + * if a read event's file descriptor is ready to read, or if a timeout event's + * timeout is ready to expire). Once this happens, it marks all triggered events + * as "active", and starts to run them. + *
+ * + *You can change the behavior of event_base_loop() by setting one or more flags + * in its flags argument. If EVLOOP_ONCE is set, then the loop will wait until some + * events become active, then run active events until there are no more to run, then + * return. If EVLOOP_NONBLOCK is set, then the loop will not wait for events to trigger: + * it will only check whether any events are ready to trigger immediately, + * and run their callbacks if so. + *
+ * + * @link https://php.net/event_base_loop + * + * @param resource $event_base Valid event base resource. + * @param int $flags [optional] Optional parameter, which can take any combination of EVLOOP_ONCE and EVLOOP_NONBLOCK. + * + * @return int+ * Returns 0 if it exited normally, + * -1 if it exited because of some unhandled error in the backend + * and 1 if no events were registered. + *
+ */ +function event_base_loop($event_base, $flags = null) {} + +/** + *Tells the event_base to exit its loop immediately.
+ *(PECL libevent >= 0.0.1)
+ * + *It differs from {@link event_base_loopexit}() in that if the event_base is currently + * running callbacks for any active events, it will exit immediately after finishing the + * one it's currently processing. The behaviour is similar to break statement.
+ * + * @link https://php.net/event_base_loopbreak + * + * @param resource $event_base Valid event base resource. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_base_loopbreak($event_base) {} + +/** + *Tells an event_base to stop looping after a given time has elapsed
+ *(PECL libevent >= 0.0.1)
+ * + *If the event_base is currently running callbacks for any active events, + * it will continue running them, and not exit until they have all been run.
+ * + *If event loop isn't running {@link event_base_loopexit}() schedules the next instance + * of the event loop to stop right after the next round of callbacks are run (as if it had + * been invoked with EVLOOP_ONCE).
+ * + * @link https://php.net/event_base_loopexit + * + * @param resource $event_base+ * Valid event base resource. + *
+ * @param int $timeout [optional]+ * Optional timeout parameter (in microseconds). If lower than 1, + * the event_base stops looping without a delay. + *
+ * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_base_loopexit($event_base, $timeout = -1) {} + +/** + *Associate event base with an event
+ *(PECL libevent >= 0.0.1)
+ * + *Associates the event_base with the event.
+ * + * @link https://php.net/event_base_set + * + * @param resource $event Valid event resource. + * @param resource $base Valid event base resource. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_base_set($event, $base) {} + +/** + *Set the number of different event priority levels
+ *(PECL libevent >= 0.0.2)
+ * + *By default all events are scheduled with the same priority (npriorities/2). + * Using {@link event_base_priority_init}() you can change the number of event priority + * levels and then set a desired priority for each event.
+ * + * @link https://php.net/event_base_priority_init + * + * @param resource $event_base Valid event base resource. + * @param int $npriorities The number of event priority levels. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_base_priority_init($event_base, $npriorities) {} + +/** + *Creates and returns a new event resource.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_new + * + * @return resource|false returns a new event resource on success or FALSE on error. + */ +function event_new() {} + +/** + *Free event resource.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_free + * + * @param resource $event Valid event resource. + * + * @return void + */ +function event_free($event) {} + +/** + *Add an event to the set of monitored events
+ *(PECL libevent >= 0.0.1)
+ * + *Schedules the execution of the non-pending event (makes it pending in it's + * configured base) when the event specified in {@link event_set}() occurs or in + * at least the time specified by the timeout argument. If timeout was not specified, + * not timeout is set. The event must be already initialized by + * {@link event_set}() and {@link event_base_set}() functions. + * If the event already has a timeout set, + * it is replaced by the new one.
+ * + *If you call {@link event_add}() on an event that is already pending, + * it will leave it pending, and reschedule it with the provided timeout.
+ * + * @link https://php.net/event_add + * + * @param resource $event+ * Valid event resource. + *
+ * @param int $timeout [optional]+ * Optional timeout (in microseconds). + *
+ * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_add($event, $timeout = -1) {} + +/** + *Prepares the event to be used in {@link event_add}().
+ *(PECL libevent >= 0.0.1)
+ * + *The event is prepared to call the function specified by the callback + * on the events specified in parameter events, which is a set of the following + * flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST.
+ * + *EV_SIGNAL support was added in version 0.0.4
+ * + *After initializing the event, use {@link event_base_set}() to associate the event with its event base.
+ * + *In case of matching event, these three arguments are passed to the callback function: + *
| $fd | + *Signal number or resource indicating the stream. | + *
| $events | + *A flag indicating the event. Consists of the following flags: EV_TIMEOUT, EV_SIGNAL, EV_READ, EV_WRITE and EV_PERSIST. | + *
| $arg | + *Optional parameter, previously passed to {@link event_set}() as arg. | + *
+ * Valid event resource. + *
+ * @param resource|int $fd+ * Valid PHP stream resource. The stream must be castable to file descriptor, + * so you most likely won't be able to use any of filtered streams. + *
+ * @param int $events+ * A set of flags indicating the desired event, can be EV_READ and/or EV_WRITE. + * The additional flag EV_PERSIST makes the event to persist until {@link event_del}() is + * called, otherwise the callback is invoked only once. + *
+ * @param callable $callback+ * Callback function to be called when the matching event occurs. + *
+ * @param mixed $arg [optional]+ * Optional callback parameter. + *
+ * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_set($event, $fd, $events, $callback, $arg = null) {} + +/** + *Remove an event from the set of monitored events.
+ *(PECL libevent >= 0.0.1)
+ * + *Calling {@link event_del}() on an initialized event makes it non-pending + * and non-active. If the event was not pending or active, there is no effect.
+ * + * @link https://php.net/event_del + * + * @param resource $event Valid event resource. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_del($event) {} + +/** + *Create new buffered event
+ *(PECL libevent >= 0.0.1)
+ * + *Libevent provides an abstraction layer on top of the regular event API. + * Using buffered event you don't need to deal with the I/O manually, instead + * it provides input and output buffers that get filled and drained automatically.
+ * + *Every bufferevent has two data-related callbacks: a read callback and a write + * callback. By default, the read callback is called whenever any data is read from + * the underlying transport, and the write callback is called whenever enough data + * from the output buffer is emptied to the underlying transport. You can override + * the behavior of these functions by adjusting the read and write "watermarks" + * of the bufferevent (see {@link event_buffer_watermark_set}()).
+ * + *A bufferevent also has an "error" or "event" callback that gets invoked to tell + * the application about non-data-oriented events, like when a connection is closed or + * an error occurs.
+ * + * @link https://php.net/event_buffer_new + * + * @param resource $stream Valid PHP stream resource. Must be castable to file descriptor. + * @param callable|null $readcb Callback to invoke where there is data to read, or NULL if no callback is desired. + * @param callable|null $writecb Callback to invoke where the descriptor is ready for writing, or NULL if no callback is desired. + * @param callable $errorcb Callback to invoke where there is an error on the descriptor, cannot be NULL. + * @param mixed $arg An argument that will be passed to each of the callbacks (optional). + * + * @return resource|false returns new buffered event resource on success or FALSE on error. + */ +function event_buffer_new($stream, $readcb, $writecb, $errorcb, $arg = null) {} + +/** + *Destroys the specified buffered event and frees all the resources associated.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_buffer_free + * + * @param resource $bevent Valid buffered event resource. + * + * @return void + */ +function event_buffer_free($bevent) {} + +/** + *Associate buffered event with an event base
+ *(PECL libevent >= 0.0.1)
+ * + *Assign the specified bevent to the event_base.
+ * + * @link https://php.net/event_buffer_base_set + * + * @param resource $bevent Valid buffered event resource. + * @param resource $event_base Valid event base resource. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_base_set($bevent, $event_base) {} + +/** + *Assign a priority to a buffered event. Use it after + * initializing event, but before adding an event to the event_base.
+ *(PECL libevent >= 0.0.1)
+ * + *When multiple events trigger at the same time, Libevent + * does not define any order with respect to when their callbacks + * will be executed. You can define some events as more important + * than others by using priorities.
+ * + *When multiple events of multiple priorities become active, + * the low-priority events are not run. Instead, Libevent runs + * the high priority events, then checks for events again. Only + * when no high-priority events are active are the low-priority + * events run.
+ * + *When you do not set the priority for an event, the default + * is the number of queues in the event base, divided by 2.
+ * + * @link https://php.net/event_buffer_priority_set + * + * @see event_base_priority_init + * + * @param resource $bevent+ * Valid buffered event resource. + *
+ * @param int $priority+ * Priority level. Cannot be less than 0 and cannot exceed + * maximum priority level of the event base (see {@link event_base_priority_init}()). + *
+ * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_priority_set($bevent, $priority) {} + +/** + *Writes data to the specified buffered event.
+ *(PECL libevent >= 0.0.1)
+ * + *The data is appended to the output buffer and written + * to the descriptor when it becomes available for writing.
+ * + * @link https://php.net/event_buffer_write + * + * @param resource $bevent Valid buffered event resource. + * @param string $data The data to be written. + * @param int $data_size Optional size parameter. {@link event_buffer_write}() writes all the data by default + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_write($bevent, $data, $data_size = -1) {} + +/** + *Reads data from the input buffer of the buffered event.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_buffer_read + * + * @param resource $bevent Valid buffered event resource. + * @param int $data_size Data size in bytes. + * + * @return string + */ +function event_buffer_read($bevent, $data_size) {} + +/** + *Enables the specified buffered event.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_buffer_enable + * + * @param resource $bevent Valid buffered event resource. + * @param int $events Any combination of EV_READ and EV_WRITE. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_enable($bevent, $events) {} + +/** + *Disable a buffered event
+ *(PECL libevent >= 0.0.1)
+ * + *Disables the specified buffered event.
+ * + * @link https://php.net/event_buffer_disable + * + * @param resource $bevent Valid buffered event resource. + * @param int $events Any combination of EV_READ and EV_WRITE. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_disable($bevent, $events) {} + +/** + *Sets the read and write timeouts for the specified buffered event.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_buffer_timeout_set + * + * @param resource $bevent Valid buffered event resource. + * @param int $read_timeout Read timeout (in seconds). + * @param int $write_timeout Write timeout (in seconds). + * + * @return void + */ +function event_buffer_timeout_set($bevent, $read_timeout, $write_timeout) {} + +/** + *Set the watermarks for read and write events.
+ *(PECL libevent >= 0.0.1)
+ * + *Every bufferevent has four watermarks:
+ * + *Read low-water mark
+ * Whenever a read occurs that leaves the bufferevent's input buffer at this
+ * level or higher, the bufferevent's read callback is invoked. Defaults to 0,
+ * so that every read results in the read callback being invoked.
Read high-water mark
+ * If the bufferevent's input buffer ever gets to this level, the bufferevent
+ * stops reading until enough data is drained from the input buffer to take us
+ * below it again. Defaults to unlimited, so that we never stop reading because
+ * of the size of the input buffer.
Write low-water mark
+ * Whenever a write occurs that takes us to this level or below, we invoke the write
+ * callback. Defaults to 0, so that a write callback is not invoked unless the output
+ * buffer is emptied.
Write high-water mark
+ * Not used by a bufferevent directly, this watermark can have special meaning when
+ * a bufferevent is used as the underlying transport of another bufferevent.
Libevent does not invoke read callback unless there is at least lowmark + * bytes in the input buffer; if the read buffer is beyond the highmark, + * reading is stopped. On output, the write callback is invoked whenever + * the buffered data falls below the lowmark.
+ * + * @link https://php.net/event_buffer_watermark_set + * + * @param resource $bevent Valid buffered event resource. + * @param int $events Any combination of EV_READ and EV_WRITE. + * @param int $lowmark Low watermark. + * @param int $highmark High watermark. + * + * @return void + */ +function event_buffer_watermark_set($bevent, $events, $lowmark, $highmark) {} + +/** + *Changes the file descriptor on which the buffered event operates.
+ *(PECL libevent >= 0.0.1)
+ * + * @link https://php.net/event_buffer_fd_set + * + * @param resource $bevent Valid buffered event resource. + * @param resource $fd Valid PHP stream, must be castable to file descriptor. + * + * @return void + */ +function event_buffer_fd_set($bevent, $fd) {} + +/** + *Set or reset callbacks for a buffered event
+ *(PECL libevent >= 0.0.4)
+ * + *Sets or changes existing callbacks for the buffered event.
+ * + * @link https://php.net/event_buffer_set_callback + * + * @param resource $bevent Valid buffered event resource. + * @param callable|null $readcb Callback to invoke where there is data to read, or NULL if no callback is desired. + * @param callable|null $writecb Callback to invoke where the descriptor is ready for writing, or NULL if no callback is desired. + * @param callable $errorcb Callback to invoke where there is an error on the descriptor, cannot be NULL. + * @param mixed $arg An argument that will be passed to each of the callbacks (optional). + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_buffer_set_callback($bevent, $readcb, $writecb, $errorcb, $arg = null) {} + +/** + *Alias of {@link event_new}().
+ * + * @return resource|false returns valid event base resource on success or FALSE on error. + */ +function event_timer_new() {} + +/** + *Prepares the timer event to be used in {@link event_add}().
+ * + *The event is prepared to call the function specified by the callback + * on the timeout event (EV_TIMEOUT).
+ * + *After initializing the event, use {@link event_base_set}() to associate the event with its event base.
+ * + *In case of matching event, these three arguments are passed to the callback function: + *
| $fd | + *null | + *
| $events | + *A flag indicating the event. EV_TIMEOUT. | + *
| $arg | + *Optional parameter, previously passed to {@link event_timer_set}() as arg. | + *
+ * Valid event resource. + *
+ * @param callable $callback+ * Callback function to be called when the matching event occurs. + *
+ * @param mixed $arg [optional]+ * Optional callback parameter. + *
+ * + * @return void + */ +function event_timer_set($event, $callback, $arg = null) {} + +/** + *Checks if a specific event is pending or scheduled.
+ * + * @param resource $event+ * Valid event resource. + *
+ * @param int $timeout [optional]+ * Optional timeout (in microseconds). + *
+ * + * @return bool TRUE if event is not scheduled (added) FALSE otherwise + */ +function event_timer_pending($event, $timeout = -1) {} + +/** + *Alias of {@link event_add}().
+ * + * @param resource $event+ * Valid event resource. + *
+ * @param int $timeout [optional]+ * Optional timeout (in microseconds). + *
+ * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_timer_add($event, $timeout = -1) {} + +/** + *Alias of {@link event_del}().
+ * + * @param resource $event Valid event resource. + * + * @return bool returns TRUE on success or FALSE on error. + */ +function event_timer_del($event) {} + +// End of PECL libevent v.0.0.4 diff --git a/phpstorm-stubs/libsodium/libsodium.php b/phpstorm-stubs/libsodium/libsodium.php new file mode 100644 index 0000000..58651eb --- /dev/null +++ b/phpstorm-stubs/libsodium/libsodium.php @@ -0,0 +1,789 @@ + dest host control channel Note the less-common spelling that we're stuck with: */ +/* VIR_MIGRATE_TUNNELLED should be VIR_MIGRATE_TUNNELED */ +const VIR_MIGRATE_PEER2PEER = 2; +/* tunnel migration data over libvirtd connection */ +const VIR_MIGRATE_TUNNELLED = 4; +/* persist the VM on the destination */ +const VIR_MIGRATE_PERSIST_DEST = 8; +/* undefine the VM on the source */ +const VIR_MIGRATE_UNDEFINE_SOURCE = 16; +/* pause on remote side */ +const VIR_MIGRATE_PAUSED = 32; +/* migration with non-shared storage with full disk copy */ +const VIR_MIGRATE_NON_SHARED_DISK = 64; +/* migration with non-shared storage with incremental copy (same base image shared between source and destination) */ +const VIR_MIGRATE_NON_SHARED_INC = 128; +/* protect for changing domain configuration through the whole migration process; this will be used automatically + when supported */ +const VIR_MIGRATE_CHANGE_PROTECTION = 256; +/* force migration even if it is considered unsafe */ +const VIR_MIGRATE_UNSAFE = 512; +/* offline migrate */ +const VIR_MIGRATE_OFFLINE = 1024; +/* compress data during migration */ +const VIR_MIGRATE_COMPRESSED = 2048; +/* abort migration on I/O errors happened during migration */ +const VIR_MIGRATE_ABORT_ON_ERROR = 4096; +/* force convergence */ +const VIR_MIGRATE_AUTO_CONVERGE = 8192; + +/* Modify device allocation based on current domain state */ +const VIR_DOMAIN_DEVICE_MODIFY_CURRENT = 0; +/* Modify live device allocation */ +const VIR_DOMAIN_DEVICE_MODIFY_LIVE = 1; +/* Modify persisted device allocation */ +const VIR_DOMAIN_DEVICE_MODIFY_CONFIG = 2; +/* Forcibly modify device (ex. force eject a cdrom) */ +const VIR_DOMAIN_DEVICE_MODIFY_FORCE = 4; + +/* REGISTER_LONG_CONSTANT */ +const VIR_STORAGE_POOL_BUILD_NEW = 0; +/* Repair / reinitialize */ +const VIR_STORAGE_POOL_BUILD_REPAIR = 1; +/* Extend existing pool */ +const VIR_STORAGE_POOL_BUILD_RESIZE = 2; + +/* Domain flags */ +const VIR_DOMAIN_FLAG_FEATURE_ACPI = 1; +const VIR_DOMAIN_FLAG_FEATURE_APIC = 2; +const VIR_DOMAIN_FLAG_FEATURE_PAE = 4; +const VIR_DOMAIN_FLAG_CLOCK_LOCALTIME = 8; +const VIR_DOMAIN_FLAG_TEST_LOCAL_VNC = 16; +const VIR_DOMAIN_FLAG_SOUND_AC97 = 32; +const VIR_DOMAIN_DISK_FILE = 1; +const VIR_DOMAIN_DISK_BLOCK = 2; +const VIR_DOMAIN_DISK_ACCESS_ALL = 4; + +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_ACTIVE = 1; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_INACTIVE = 2; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_OTHER = 4; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_PAUSED = 8; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_PERSISTENT = 16; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_RUNNING = 32; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_SHUTOFF = 64; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_TRANSIENT = 128; +const VIR_CONNECT_GET_ALL_DOMAINS_STATS_ENFORCE_STATS = 2 ^ 31; + +const VIR_DOMAIN_MEM_CONFIG = VIR_DOMAIN_AFFECT_CONFIG; +const VIR_DOMAIN_MEM_CURRENT = VIR_DOMAIN_AFFECT_CURRENT; +const VIR_DOMAIN_MEM_LIVE = VIR_DOMAIN_AFFECT_LIVE; +const VIR_DOMAIN_MEM_MAXIMUM = 4; + +const VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE = 0; +const VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_AGENT = 1; +const VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_ARP = VIR_DOMAIN_INTERFACE_ADDRESSES_SRC_LEASE; + +/* Connect flags */ +const VIR_CONNECT_FLAG_SOUNDHW_GET_NAMES = 1; + +/* Keycodeset constants */ +const VIR_KEYCODE_SET_LINUX = 0; +const VIR_KEYCODE_SET_XT = 1; +const VIR_KEYCODE_SET_ATSET1 = 6; +const VIR_KEYCODE_SET_ATSET2 = 2; +const VIR_KEYCODE_SET_ATSET3 = 3; +const VIR_KEYCODE_SET_OSX = 4; +const VIR_KEYCODE_SET_XT_KBD = 5; +const VIR_KEYCODE_SET_USB = 6; +const VIR_KEYCODE_SET_WIN32 = 7; +const VIR_KEYCODE_SET_RFB = 8; + +/* virDomainUndefineFlagsValues */ +const VIR_DOMAIN_UNDEFINE_MANAGED_SAVE = 1; +const VIR_DOMAIN_UNDEFINE_SNAPSHOTS_METADATA = 2; +const VIR_DOMAIN_UNDEFINE_NVRAM = 4; +const VIR_DOMAIN_UNDEFINE_KEEP_NVRAM = 8; + +/* Connect functions */ + +/** + * Function is used to connect to the specified libvirt daemon using the specified URL, user can also set the readonly + * flag and/or set credentials for connection + * @param string $url URI for connection + * @param bool $readonly [optional] flag whether to use read-only connection or not, default true + * @param array $credentials [optional] array of connection credentials + * @return resource libvirt connection resource + * @since 0.4.1(-1) + */ +function libvirt_connect(string $url, bool $readonly = true, array $credentials) {} + +/** + * Query statistics for all domains on a given connection + * @param resource $conn resource for connection + * @param int $stats [optional] the statistic groups from VIR_DOMAIN_STATS_* + * @param int $flags [optional] the statistic groups from VIR_DOMAIN_STATS_* + * @return array|false assoc array with statistics or false on error + * @since 0.5.1(-1) + */ +function libvirt_connect_get_all_domain_stats($conn, int $stats = 0, int $flags = 0): array|false {} + +/** + * Function is used to get the capabilities information from the connection + * @param resource $conn resource for connection + * @param string|null $xpath [optional] xPath query to be applied on the result + * @return string capabilities XML from the connection or FALSE for error + * @since 0.4.1(-2) + */ +function libvirt_connect_get_capabilities($conn, ?string $xpath): string {} + +/** + * Function is used to get the emulator for requested connection/architecture + * @param resource $conn libvirt connection resource + * @param string|null $arch [optional] architecture string, can be NULL to get default + * @return string path to the emulator + * @since 0.4.5 + */ +function libvirt_connect_get_emulator($conn, ?string $arch): string {} + +/** + * Function is used to get the information whether the connection is encrypted or not + * @param resource $conn resource for connection + * @return int 1 if encrypted, 0 if not encrypted, -1 on error + * @since 0.4.1(-2) + */ +function libvirt_connect_get_encrypted($conn): int {} + +/** + * Function is used to get the hostname of the guest associated with the connection + * @param resource $conn resource for connection + * @return string|false hostname of the host node or FALSE for error + * @since 0.4.1(-1) + */ +function libvirt_connect_get_hostname($conn): string|false {} + +/** + * Function is used to get the information about the hypervisor on the connection identified by the connection pointer + * @param resource $conn libvirt-php: PHP API Reference guide + * @return array array of hypervisor information if available + */ +function libvirt_connect_get_hypervisor($conn): array {} + +/** + * Function is used to get the information about the connection + * @param resource $conn resource for connection + * @return array array of information about the connection + * @since 0.4.1(-2) + */ +function libvirt_connect_get_information($conn): array {} + +/** + * Function is used to get machine types supported by hypervisor on the connection + * @param resource $conn resource for connection + * @return array array of machine types for the connection incl. maxCpus if appropriate + * @since 0.4.9 + */ +function libvirt_connect_get_machine_types($conn): array {} + +/** + * Function is used to get maximum number of VCPUs per VM on the hypervisor connection + * @param resource $conn resource for connection + * @return int|false number of VCPUs available per VM on the connection or FALSE for error + * @since 0.4.1(-2) + */ +function libvirt_connect_get_maxvcpus($conn): int|false {} + +/** + * Function is used to get NIC models for requested connection/architecture + * @param resource $conn libvirt connection resource + * @param string|null $arch [optional] architecture string, can be NULL to get default + * @return array array of models + * @since 0.4.9 + */ +function libvirt_connect_get_nic_models($conn, ?string $arch): array {} + +/** + * Function is used to get the information whether the connection is secure or not + * @param resource $conn resource for connection + * @return int 1 if secure, 0 if not secure, -1 on error + * @since 0.4.1(-2) + */ +function libvirt_connect_get_secure($conn): int {} + +/** + * Function is used to get sound hardware models for requested connection/architecture + * @param resource $conn libvirt connection resource + * @param string|null $arch [optional] architecture string, can be NULL to get default + * @param int $flags [optional] flags for getting sound hardware. Can be either 0 or VIR_CONNECT_SOUNDHW_GET_NAMES + * @return array array of models + * @since 0.4.9 + */ +function libvirt_connect_get_soundhw_models($conn, ?string $arch, int $flags = 0): array {} + +/** + * Function is used to get the system information from connection if available + * @param resource $conn resource for connection + * @return string|false XML description of system information from the connection or FALSE for error + * @since 0.4.1(-2) + */ +function libvirt_connect_get_sysinfo($conn): string|false {} + +/** + * Function is used to get the connection URI. This is useful to check the hypervisor type of host machine + * when using "null" uri to libvirt_connect() + * @param resource $conn resource for connection + * @return string|false connection URI string or FALSE for error + * @since 0.4.1(-1) + */ +function libvirt_connect_get_uri($conn): string|false {} + +/* Domain functions */ + +/** + * Function is used to attach a virtual device to a domain + * @param resource $res libvirt domain resource + * @param string $xml XML description of one device + * @param int $flags [optional] flags + * @return bool TRUE for success, FALSE on error + * @since 0.5.3 + */ +function libvirt_domain_attach_device($res, string $xml, int $flags = 0): bool {} + +/** + * Function is used to commit block job + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $disk path to the block device, or device shorthand + * @param string|null $base [optional] path to backing file to merge into, or device shorthand, or NULL for default + * @param string|null $top [optional] path to file within backing chain that contains data to be merged, + * or device shorthand, or NULL to merge all possible data + * @param int $bandwidth [optional] specify bandwidth limit; flags determine the unit + * @param int $flags [optional] bitwise-OR of VIR_DOMAIN_BLOCK_COMMIT_* + * @return bool true on success fail on error + * @since 0.5.2(-1) + */ +function libvirt_domain_block_commit($res, string $disk, ?string $base, ?string $top, int $bandwidth = 0, int $flags = 0): bool {} + +/** + * Function is used to abort block job + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $path device path to resize + * @param int $flags [optional] bitwise-OR of VIR_DOMAIN_BLOCK_JOB_ABORT_* + * @return bool true on success fail on error + * @since 0.5.1(-1) + */ +function libvirt_domain_block_job_abort($res, string $path, int $flags = 0): bool {} + +/** + * Function is used to attach a virtual device to a domain + * @param resource $res libvirt domain resource + * @param string $disk path to the block device, or device shorthand + * @param int $flags [optional] bitwise-OR of VIR_DOMAIN_BLOCK_COMMIT_* + * @return array Array with status virDomainGetBlockJobInfo and blockjob information + * @since 0.5.2(-1) + */ +function libvirt_domain_block_job_info($res, string $disk, int $flags = 0): array {} + +/** + * Function is used to set speed of block job + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $path device path to resize + * @param int $bandwidth bandwidth + * @param int $flags [optional] bitwise-OR of VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_* + * @return bool true on success fail on error + * @since 0.4.1(-1) + */ +function libvirt_domain_block_job_set_speed($res, string $path, int $bandwidth, int $flags = 0): bool {} + +/** + * Function is used to resize the domain's block device + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $path device path to resize + * @param int $size size of device + * @param int $flags [optional] bitwise-OR of VIR_DOMAIN_BLOCK_RESIZE_* + * @return bool true on success fail on error + * @since 0.5.1(-1) + */ +function libvirt_domain_block_resize($res, string $path, int $size, int $flags = 0): bool {} + +/** + * Function is used to get the domain's block stats + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $path device path to get statistics about + * @return array domain block stats array, fields are rd_req, rd_bytes, wr_req, wr_bytes and errs + * @since 0.4.1(-1) + */ +function libvirt_domain_block_stats($res, string $path): array {} + +/** + * Function is used to change the domain boot devices + * @param resource $res libvirt domain resource + * @param string $first first boot device to be set + * @param string $second second boot device to be set + * @param int $flags [optional] flags + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_change_boot_devices($res, string $first, string $second, int $flags = 0) {} + +/** + * Function is used to change the domain memory allocation + * @param resource $res libvirt domain resource + * @param int $allocMem number of MiBs to be set as immediate memory value + * @param int $allocMax number of MiBs to be set as the maximum allocation + * @param int $flags [optional] flags + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_change_memory($res, int $allocMem, int $allocMax, int $flags = 0) {} + +/** + * Function is used to change the VCPU count for the domain + * @param resource $res libvirt domain resource + * @param int $numCpus number of VCPUs to be set for the guest + * @param int $flags [optional] flags for virDomainSetVcpusFlags + * (available at http://libvirt.org/html/libvirt-libvirt.html#virDomainVcpuFlags) + * @return bool true on success, false on error + * @since 0.4.2 + */ +function libvirt_domain_change_vcpus($res, int $numCpus, int $flags = 0): bool {} + +/** + * Function is used to dump core of the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $to to + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-2) + */ +function libvirt_domain_core_dump($res, string $to): bool {} + +/** + * Function is used to create the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return bool result of domain creation (startup) + * @since 0.4.1(-1) + */ +function libvirt_domain_create($res): bool {} + +/** + * Function is used to create the domain identified by it's resource + * @param resource $conn libvirt connection resource + * @param string $xml XML string to create guest from + * @param int $flags [optional] flags + * @return resource newly started/created domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_create_xml($conn, string $xml, int $flags = 0) {} + +/** + * Function is used to define the domain from XML string + * @param resource $conn libvirt connection resource + * @param string $xml XML string to define guest from + * @return resource newly defined domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_define_xml($conn, string $xml) {} + +/** + * Function is used to destroy the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return bool result of domain destroy + * @since 0.4.1(-1) + */ +function libvirt_domain_destroy($res): bool {} + +/** + * Function is used to detach a virtual device from a domain + * @param resource $res libvirt domain resource + * @param string $xml XML description of one device + * @param int $flags [optional] flags to control how the device is attached. Defaults to VIR_DOMAIN_AFFECT_LIVE + * @return bool TRUE for success, FALSE on error + * @since 0.5.3 + */ +function libvirt_domain_detach_device($res, string $xml, int $flags = VIR_DOMAIN_AFFECT_LIVE): bool {} + +/** + * Function is used to add the disk to the virtual machine using set of API functions to make it as simple + * as possible for the user + * @param resource $res libvirt domain resource + * @param string $img string for the image file on the host system + * @param string $dev string for the device to be presented to the guest (e.g. hda) + * @param string $typ bus type for the device in the guest, usually 'ide' or 'scsi' + * @param string $driver driver type to be specified, like 'raw' or 'qcow2' + * @param int $flags [optional] flags for getting the XML description + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_disk_add($res, string $img, string $dev, string $typ, string $driver, int $flags = 0) {} + +/** + * Function is used to remove the disk from the virtual machine using set of API functions to make it + * as simple as possible + * @param resource $res libvirt domain resource + * @param string $dev string for the device to be removed from the guest (e.g. 'hdb') + * @param int $flags [optional] flags for getting the XML description + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_disk_remove($res, string $dev, int $flags = 0) {} + +/** + * Function is getting the autostart value for the domain + * @param resource $res libvirt domain resource + * @return int autostart value or -1 + * @since 0.4.1(-1) + */ +function libvirt_domain_get_autostart($res): int {} + +/** + * Function is used to get the domain's block device information + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $dev device to get block information about + * @return array domain block device information array of device, file or partition, capacity, + * allocation and physical size + * @since 0.4.1(-1) + */ +function libvirt_domain_get_block_info($res, string $dev): array {} + +/** + * Function is used to get the domain's connection resource. This function should *not* be used! + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return resource libvirt connection resource + * @since 0.4.1(-1) + */ +function libvirt_domain_get_connect($res) {} + +/** + * Function is getting domain counts for all, active and inactive domains + * @param resource $conn libvirt connection resource from libvirt_connect() + * @return array array of total, active and inactive (but defined) domain counts + * @since 0.4.1(-1) + */ +function libvirt_domain_get_counts($conn): array {} + +/** + * Function is used to get disk devices for the domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return array|false list of domain disk devices + * @since 0.4.4 + */ +function libvirt_domain_get_disk_devices($res): array|false {} + +/** + * Function is used to get the domain's ID, applicable to running guests only + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return int running domain ID or -1 if not running + * @since 0.4.1(-1) + */ +function libvirt_domain_get_id($res): int {} + +/** + * Function is used to get the domain's information + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return array domain information array + * @since 0.4.4 + */ +function libvirt_domain_get_info($res): array {} + +/** + * Function is used to get network interface devices for the domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return array|false list of domain interface devices + * @since 0.4.4 + */ +function libvirt_domain_get_interface_devices($res): array|false {} + +/** + * Function is used get job information for the domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return array job information array of type, time, data, mem and file fields + * @since 0.4.1(-1) + */ +function libvirt_domain_get_job_info($res): array {} + +/** + * Function retrieve appropriate domain element given by $type + * @param resource $res libvirt domain resource + * @param int $type virDomainMetadataType type of description + * @param string $uri XML namespace identifier + * @param int $flags bitwise-OR of virDomainModificationImpact + * @return string|null|false metadata string, NULL on error or FALSE on API not supported + * @since 0.4.9 + */ +function libvirt_domain_get_metadata($res, int $type, string $uri, int $flags = 0): string|null|false {} + +/** + * Function is used to get domain name from it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return string domain name string + * @since 0.4.1(-1) + */ +function libvirt_domain_get_name($res): string {} + +/** + * Function is used to get the domain's network information + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $mac mac address of the network device + * @return array domain network info array of MAC address, network name and type of NIC card + * @since 0.4.1(-1) + */ +function libvirt_domain_get_network_info($res, string $mac): array {} + +/** + * This functions can be used to get the next free slot if you intend to add a new device identified + * by slot to the domain, e.g. NIC device + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return array next free slot number for the domain + * @since 0.4.2 + */ +function libvirt_domain_get_next_dev_ids($res): array {} + +/** + * Function get screen dimensions of the VNC window + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $server server string of the host machine + * @return array|false array of height and width on success, FALSE otherwise + * @since 0.4.2 + */ +function libvirt_domain_get_screen_dimensions($res, string $server): array|false {} + +/** + * Function uses gvnccapture (if available) to get the screenshot of the running domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $server server string for the host machine + * @param int $scancode [optional] integer value of the scancode to be send to refresh screen, default is 10 + * @return string PNG image binary data + * @since 0.4.2 + */ +function libvirt_domain_get_screenshot($res, string $server, int $scancode = 10): string {} + +/** + * Function is trying to get domain screenshot using libvirt virGetDomainScreenshot() API if available + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_get_by_*() + * @param int $screenID [optional] monitor ID from where to take screenshot + * @return array array of filename and mime type as type is hypervisor specific, + * caller is responsible for temporary file deletion + * @since 0.4.5 + */ +function libvirt_domain_get_screenshot_api($res, int $screenID = 0): array {} + +/** + * Function is used to get the domain's UUID in binary format + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return string domain UUID in binary format + * @since 0.4.1(-1) + */ +function libvirt_domain_get_uuid($res): string {} + +/** + * Function is used to get the domain's UUID in string format + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return string domain UUID string + * @since 0.4.1(-1) + */ +function libvirt_domain_get_uuid_string($res): string {} + +/** + * Function is used to get the domain's XML description + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string|null $xpath xPath expression string to get just this entry, can be NULL + * @param int $flags [optional] flags + * @return string domain XML description string or result of xPath expression + * @since 0.4.2 + */ +function libvirt_domain_get_xml_desc($res, ?string $xpath, int $flags = 0): string {} + +/** + * Function is used to get network interface addresses for the domain + * @param resource $res libvirt domain resource + * @param int $source one of the VIR_DOMAIN_ADDRESSES_SRC_* flags + * @return array|false interface array of a domain holding information about addresses resembling + * the virDomainInterface structure, false on error + * @since 0.5.5 + */ +function libvirt_domain_interface_addresses($res, int $source): array|false {} + +/** + * Function is used to get the domain's interface stats + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $path path to interface device + * @return array interface stats array of {tx|rx}_{bytes|packets|errs|drop} fields + * @since 0.4.1(-1) + */ +function libvirt_domain_interface_stats($res, string $path): array {} + +/** + * Function is getting information whether domain identified by resource is active or not + * @param resource $res libvirt domain resource + * @return bool virDomainIsActive() result on the domain + * @since 0.4.1(-1) + */ +function libvirt_domain_is_active($res): bool {} + +/** + * Function to get information whether domain is persistent or not + * @param resource $res libvirt domain resource + * @return bool TRUE for persistent, FALSE for not persistent, -1 on error + * @since 0.4.9 + */ +function libvirt_domain_is_persistent($res): bool {} + +/** + * Function is used to get domain by it's ID, applicable only to running guests + * @param resource $conn libvirt connection resource from libvirt_connect() + * @param string $id domain id to look for + * @return resource libvirt domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_lookup_by_id($conn, string $id) {} + +/** + * Function is used to lookup for domain by it's name + * @param resource $res libvirt connection resource from libvirt_connect() + * @param string $name domain name to look for + * @return resource libvirt domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_lookup_by_name($res, string $name) {} + +/** + * Function is used to lookup for domain by it's UUID in the binary format + * @param resource $res libvirt connection resource from libvirt_connect() + * @param string $uuid binary defined UUID to look for + * @return resource libvirt domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_lookup_by_uuid($res, string $uuid) {} + +/** + * Function is used to get the domain by it's UUID that's accepted in string format + * @param resource $res libvirt connection resource from libvirt_connect() + * @param string $uuid domain UUID [in string format] to look for + * @return resource libvirt domain resource + * @since 0.4.1(-1) + */ +function libvirt_domain_lookup_by_uuid_string($res, string $uuid) {} + +/** + * Function is used to managed save the domain (domain was unloaded from memory and it state saved to disk) + * identified by it's resource + * @param resource $res TRUE for success, FALSE on error + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_managedsave($res): bool {} + +/** + * Function is used to get the domain's memory peek value + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param int $start start + * @param int $size size + * @param int $flags flags + * @return int domain memory peek + * @since 0.4.1(-1) + */ +function libvirt_domain_memory_peek($res, int $start, int $size, int $flags = 0): int {} + +/** + * Function is used to get the domain's memory stats + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param int $flags [optional] flags + * @return array domain memory stats array (same fields as virDomainMemoryStats, please see libvirt documentation) + * @since 0.4.1(-1) + */ +function libvirt_domain_memory_stats($res, int $flags = 0): array {} + +/** + * Function is used migrate domain to another domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $dest_conn destination host connection object + * @param int $flags migration flags + * @param string $dname [optional] domain name to rename domain to on destination side + * @param int $bandwidth [optional] migration bandwidth in Mbps + * @return resource libvirt domain resource for migrated domain + * @since 0.4.1(-1) + */ +function libvirt_domain_migrate($res, string $dest_conn, int $flags, string $dname, int $bandwidth = 0) {} + +/** + * Function is used migrate domain to another libvirt daemon specified by it's URI + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $dest_uri destination URI to migrate to + * @param int $flags migration flags + * @param string $dname [optional] domain name to rename domain to on destination side + * @param int $bandwidth [optional] migration bandwidth in Mbps + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_migrate_to_uri($res, string $dest_uri, int $flags, string $dname, int $bandwidth = 0): bool {} + +/** + * Function is used migrate domain to another libvirt daemon specified by it's URI + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $dconnuri URI for target libvirtd + * @param string $miguri URI for invoking the migration + * @param string $dxml XML config for launching guest on target + * @param int $flags migration flags + * @param string $dname [optional] domain name to rename domain to on destination side + * @param int $bandwidth [optional] migration bandwidth in Mbps + * @return bool TRUE for success, FALSE on error + * @since 0.4.6(-1) + */ +function libvirt_domain_migrate_to_uri2($res, string $dconnuri, string $miguri, string $dxml, int $flags, string $dname, int $bandwidth = 0): bool {} + +/** + * Function is used to install a new virtual machine to the machine + * @param resource $conn libvirt connection resource + * @param string $name name of the new domain + * @param string|null|false $arch optional architecture string, can be NULL to get default (or false) + * @param int $memMB number of megabytes of RAM to be allocated for domain + * @param int $maxmemMB maximum number of megabytes of RAM to be allocated for domain + * @param int $vcpus number of VCPUs to be allocated to domain + * @param string $iso_image installation ISO image for domain + * @param array $disks array of disk devices for domain, consist of keys as 'path' (storage location), + * 'driver' (image type, e.g. 'raw' or 'qcow2'), 'bus' (e.g. 'ide', 'scsi'), + * 'dev' (device to be presented to the guest - e.g. 'hda'), + * 'size' (with 'M' or 'G' suffixes, like '10G' for 10 gigabytes image etc.) and + * 'flags' (VIR_DOMAIN_DISK_FILE or VIR_DOMAIN_DISK_BLOCK, optionally VIR_DOMAIN_DISK_ACCESS_ALL + * to allow access to the disk for all users on the host system) + * @param array $networks array of network devices for domain, consists of keys as 'mac' (for MAC address), + * 'network' (for network name) and optional 'model' for model of NIC device + * @param int $flags [optional] bit array of flags + * @return resource a new domain resource + * @since 0.4.5 + */ +function libvirt_domain_new($conn, string $name, string|null|false $arch, int $memMB, int $maxmemMB, int $vcpus, string $iso_image, array $disks, array $networks, int $flags = 0) {} + +/** + * Function is used to get the VNC server location for the newly created domain (newly started installation) + * @return string|null a VNC server for a newly created domain resource (if any) + * @since 0.4.5 + */ +function libvirt_domain_new_get_vnc(): string|null {} + +/** + * Function is used to add the NIC card to the virtual machine using set of API functions to make it as simple + * as possible for the user + * @param resource $res libvirt domain resource + * @param string $mac libvirt domain resource + * @param string $network network name where to connect this NIC + * @param string $model string of the NIC model + * @param int $flags [optional] flags for getting the XML description + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_nic_add($res, string $mac, string $network, string $model, int $flags = 0) {} + +/** + * Function is used to remove the NIC from the virtual machine using set of API functions to make it + * as simple as possible + * @param resource $res libvirt domain resource + * @param string $dev string representation of the IP address to be removed (e.g. 54:52:00:xx:yy:zz) + * @param int $flags [optional] flags for getting the XML description + * @return resource new domain resource + * @since 0.4.2 + */ +function libvirt_domain_nic_remove($res, string $dev, int $flags = 0) {} + +/** + * Function is used to send qemu-ga command + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $cmd command + * @param int $timeout [optional] timeout + * @param int $flags [optional] unknown + * @return string|false String on success and FALSE on error + * @since 0.5.2(-1) + */ +function libvirt_domain_qemu_agent_command($res, string $cmd, $timeout = -1, int $flags = 0): string|false {} + +/** + * Function is used to reboot the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param int $flags [optional] flags + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_reboot($res, int $flags = 0): bool {} + +/** + * Function is used to reset the domain identified by its resource + * @param resource $res libvirt domain resource + * @param int $flags [optional] @flags + * @return bool true on success, false on error + * @since 0.5.5 + */ +function libvirt_domain_reset($res, int $flags = 0): bool {} + +/** + * Function is used to resume the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return resource result of domain resume + * @since 0.4.1(-1) + */ +function libvirt_domain_resume($res) {} + +/** + * Function sends keys to domain via libvirt API + * @param resource $res libvirt domain resource + * @param int $codeset the codeset of keycodes, from virKeycodeSet + * @param int $holdtime the duration (in milliseconds) that the keys will be held + * @param array $keycodes array of keycodes + * @param int $flags [optional] extra flags; not used yet so callers should always pass 0 + * @return bool TRUE for success, FALSE for failure + * @since 0.5.3 + */ +function libvirt_domain_send_key_api($res, int $codeset, int $holdtime, array $keycodes, int $flags = 0): bool {} + +/** + * Function sends keys to the domain's VNC window + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $server server string of the host machine + * @param int $scancode integer scancode to be sent to VNC window + * @return bool TRUE on success, FALSE otherwise + * @since 0.4.2 + */ +function libvirt_domain_send_keys($res, string $server, int $scancode): bool {} + +/** + * Function sends keys to the domain's VNC window + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $server server string of the host machine + * @param int $pos_x position on x-axis + * @param int $pos_y position on y-axis + * @param int $clicked mask of clicked buttons (0 for none, bit 1 for button #1, bit 8 for button #8) + * @param bool $release [optional] boolean value (0 or 1) whether to release the buttons automatically once pressed, + * default true + * @return bool TRUE on success, FALSE otherwise + * @since 0.4.2 + */ +function libvirt_domain_send_pointer_event($res, string $server, int $pos_x, int $pos_y, int $clicked, bool $release = true): bool {} + +/** + * Function is setting the autostart value for the domain + * @param resource $res libvirt domain resource + * @param bool $flags flag to enable/disable autostart + * @return bool TRUE on success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_set_autostart($res, bool $flags): bool {} + +/** + * Function to set max memory for domain + * @param resource $res libvirt domain resource + * @param int $memory memory size in 1024 bytes (Kb) + * @return bool TRUE for success, FALSE for failure + * @since 0.5.1 + */ +function libvirt_domain_set_max_memory($res, int $memory): bool {} + +/** + * Function to set memory for domain + * @param resource $res libvirt domain resource + * @param int $memory memory size in 1024 bytes (Kb) + * @return bool TRUE for success, FALSE for failure + * @since 0.5.1 + */ +function libvirt_domain_set_memory($res, int $memory): bool {} + +/** + * Function to set max memory for domain + * @param resource $res libvirt domain resource + * @param int $memory memory size in 1024 bytes (Kb) + * @param int $flags [optional] bitwise-OR VIR_DOMAIN_MEM_* flags + * @return bool TRUE for success, FALSE for failure + * @since 0.5.1 + */ +function libvirt_domain_set_memory_flags($res, int $memory = 0, int $flags = 0): bool {} + +/** + * Function sets the appropriate domain element given by $type to the value of $metadata. No new lines are permitted + * @param resource $res libvirt domain resource + * @param int $type virDomainMetadataType type of description + * @param string $metadata new metadata text + * @param string $key XML namespace key or empty string (alias of NULL) + * @param string $uri XML namespace identifier or empty string (alias of NULL) + * @param int $flags bitwise-OR of virDomainModificationImpact + * @return int -1 on error, 0 on success + * @since 0.4.9 + */ +function libvirt_domain_set_metadata($res, int $type, string $metadata, string $key, string $uri, int $flags = 0): int {} + +/** + * Function is used to shutdown the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_shutdown($res): bool {} + +/** + * Function is used to suspend the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_suspend($res): bool {} + +/** + * Function is used to undefine the domain identified by it's resource + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_undefine($res): bool {} + +/** + * Function is used to undefine(with flags) the domain identified by it's resource + * @param resource $res libvirt domain resource + * @param int $flags [optional] flags + * @return bool TRUE if success, FALSE on error + * @since 999 https://github.com/yzslab/php-libvirt-client + */ +function libvirt_domain_undefine_flags($res, int $flags = 0): bool {} + +/** + * Function is used to update the domain's devices from the XML string + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $xml XML string for the update + * @param int $flags Flags to update the device (VIR_DOMAIN_DEVICE_MODIFY_CURRENT, VIR_DOMAIN_DEVICE_MODIFY_LIVE, + * VIR_DOMAIN_DEVICE_MODIFY_CONFIG, VIR_DOMAIN_DEVICE_MODIFY_FORCE) + * @return bool TRUE for success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_domain_update_device($res, string $xml, int $flags): bool {} + +/** + * Function is used to convert native configuration data to libvirt domain XML + * @param resource $conn libvirt connection resource + * @param string $format configuration format converting from + * @param string $config_data content of the native config file + * @return string|false libvirt domain XML, FALSE on error + * @since 0.5.3 + */ +function libvirt_domain_xml_from_native($conn, string $format, string $config_data): string|false {} + +/** + * Function is used to convert libvirt domain XML to native configuration + * @param resource $conn libvirt connection resource + * @param string $format configuration format converting from + * @param string $xml_data content of the libvirt domain xml file + * @return string|false contents of the native data file, FALSE on error + * @since 0.5.3 + */ +function libvirt_domain_xml_to_native($conn, string $format, string $xml_data): string|false {} + +/** + * Function is used to get the result of xPath expression that's run against the domain + * @param resource $res libvirt domain resource, e.g. from libvirt_domain_lookup_by_*() + * @param string $xpath xPath expression to parse against the domain + * @param int $flags [optional] flags + * @return array result of the expression in an array + * @since 0.4.1(-1) + */ +function libvirt_domain_xml_xpath($res, string $xpath, int $flags = 0): array {} + +/** + * Function is used to list active domain IDs on the connection + * @param resource $res libvirt connection resource + * @return array libvirt active domain ids array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_active_domain_ids($res): array {} + +/** + * Function is used to list active domain names on the connection + * @param resource $res libvirt connection resource + * @return array libvirt active domain names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_active_domains($res): array {} + +/** + * Function is used to list domain resources on the connection + * @param resource $res libvirt connection resource + * @return array libvirt domain resources array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_domain_resources($res): array {} + +/** + * Function is used to list domains on the connection + * @param resource $res libvirt connection resource + * @return array libvirt domain names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_domains($res): array {} + +/** + * Function is used to list inactive domain names on the connection + * @param resource $res libvirt connection resource + * @return array libvirt inactive domain names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_inactive_domains($res): array {} + +/* Network functions */ + +/** + * Function is used to list networks on the connection + * @param resource $conn libvirt connection resource + * @param int $flags [optional] flags to filter the results for a smaller list of targeted networks + * (bitwise-OR VIR_CONNECT_LIST_NETWORKS_* constants) + * @return array libvirt network resources array for the connection + * @since 0.5.3 + */ +function libvirt_list_all_networks($conn, int $flags = VIR_CONNECT_LIST_NETWORKS_ACTIVE|VIR_CONNECT_LIST_NETWORKS_INACTIVE): array {} + +/** + * Function is used to list networks on the connection + * @param resource $res libvirt connection resource + * @param int $flags [optional] flags whether to list active, + * inactive or all networks (VIR_NETWORKS_{ACTIVE|INACTIVE|ALL} constants) + * @return array libvirt network names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_networks($res, int $flags = 0): array {} + +/** + * Function is used to define a new virtual network based on the XML description + * @param resource $res libvirt connection resource + * @param string $xml XML string definition of network to be defined + * @return resource libvirt network resource of newly defined network + * @since 0.4.2 + */ +function libvirt_network_define_xml($res, string $xml) {} + +/** + * Function is used to get the network resource from name + * @param resource $res libvirt connection resource + * @param string $name network name string + * @return resource libvirt network resource + * @since 0.4.1(-1) + */ +function libvirt_network_get($res, string $name) {} + +/** + * Function is used to get the activity state of the network + * @param resource $res libvirt network resource + * @return int|false 1 when active, 0 when inactive, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_network_get_active($res): int|false {} + +/** + * Function is getting the autostart value for the network + * @param resource $res libvirt network resource + * @return int autostart value or -1 on error + * @since 0.5.4 + */ +function libvirt_network_get_autostart($res): int {} + +/** + * Function is used to get the bridge associated with the network + * @param resource $res libvirt network resource + * @return string bridge name string + * @since 0.4.1(-1) + */ +function libvirt_network_get_bridge($res): string {} + +/** + * Function is used to get the network information + * @param resource $res libvirt network resource + * @return array network information array + * @since 0.4.1(-1) + */ +function libvirt_network_get_information($res): array {} + +/** + * Function is used to get network's name + * @param resource $res libvirt network resource + * @return string|false network name string or FALSE on failure + * @since 0.5.3 + */ +function libvirt_network_get_name($res): string|false {} + +/** + * Function is used to get network's UUID in binary format + * @param resource $res libvirt network resource + * @return string|false network UUID in binary format or FALSE on failure + * @since 0.5.3 + */ +function libvirt_network_get_uuid($res): string|false {} + +/** + * Function is used to get network's UUID in string format + * @param resource $res libvirt network resource + * @return string|false network UUID string or FALSE on failure + * @since 0.5.3 + */ +function libvirt_network_get_uuid_string($res): string|false {} + +/** + * Function is used to get the XML description for the network + * @param resource $res libvirt network resource + * @param string|null $xpath [optional] xPath expression string to get just this entry, can be NULL + * @return string|false network XML string or result of xPath expression + * @since 0.4.1(-1) + */ +function libvirt_network_get_xml_desc($res, ?string $xpath): string|false {} + +/** + * Function is used to set the activity state of the network + * @param resource $res libvirt network resource + * @param int $flags active + * @return bool TRUE if success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_network_set_active($res, int $flags): bool {} + +/** + * Function is setting the autostart value for the network + * @param resource $res libvirt network resource + * @param int $flags flag to enable/disable autostart + * @return bool TRUE on success, FALSE on error + * @since 0.5.4 + */ +function libvirt_network_set_autostart($res, int $flags): bool {} + +/** + * Function is used to undefine already defined network + * @param resource $res libvirt network resource + * @return bool TRUE for success, FALSE on error + * @since 0.4.2 + */ +function libvirt_network_undefine($res): bool {} + +/* Node functions */ + +/** + * Function is used to get the CPU stats per nodes + * @param resource $conn resource for connection + * @param int $cpunr [optional] CPU number to get information about, + * defaults to VIR_NODE_CPU_STATS_ALL_CPUS to get information about all CPUs + * @return array|false array of node CPU statistics including time (in seconds since UNIX epoch), + * cpu number and total number of CPUs on node or FALSE for error + * @since 0.4.6 + */ +function libvirt_node_get_cpu_stats($conn, int $cpunr = VIR_NODE_CPU_STATS_ALL_CPUS): array|false {} + +/** + * Function is used to get the CPU stats for each CPU on the host node + * @param resource $conn resource for connection + * @param int $time [optional] time in seconds to get the information about, without aggregation for further processing + * @return array|false array of node CPU statistics for each CPU including time (in seconds since UNIX epoch), + * cpu number and total number of CPUs on node or FALSE for error + * @since 0.4.6 + */ +function libvirt_node_get_cpu_stats_for_each_cpu($conn, int $time = 0): array|false {} + +/** + * Function is used to get free memory available on the node + * @param resource $conn libvirt connection resource + * @return string|false The available free memory in bytes as string or FALSE for error + * @since 0.5.3 + */ +function libvirt_node_get_free_memory($conn): string|false {} + +/** + * Function is used to get the information about host node, mainly total memory installed, + * total CPUs installed and model information are useful + * @param resource $conn resource for connection + * @return array|false array of node information or FALSE for error + * @since 0.4.1(-1) + */ +function libvirt_node_get_info($conn): array|false {} + +/** + * Function is used to get the memory stats per node + * @param resource $conn resource for connection + * @return array array of node memory statistics including time (in seconds since UNIX epoch) or FALSE for error + * @since 0.4.6 + */ +function libvirt_node_get_mem_stats($conn): array {} + +/* Nodedev functions */ + +/** + * Function is used to list node devices on the connection + * @param resource $res libvirt connection resource + * @param string|null $cap [optional] capability string + * @return array libvirt nodedev names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_nodedevs($res, ?string $cap): array {} + +/** + * Function is used to list node devices by capabilities + * @param resource $res libvirt nodedev resource + * @return array nodedev capabilities array + * @since 0.4.1(-1) + */ +function libvirt_nodedev_capabilities($res): array {} + +/** + * Function is used to get the node device by it's name + * @param resource $res libvirt connection resource + * @param string $name name of the nodedev to get resource + * @return resource libvirt nodedev resource + * @since 0.4.1(-1) + */ +function libvirt_nodedev_get($res, string $name) {} + +/** + * Function is used to get the node device's information + * @param resource $res libvirt nodedev resource + * @return array nodedev information array + * @since 0.4.1(-1) + */ +function libvirt_nodedev_get_information($res): array {} + +/** + * Function is used to get the node device's XML description + * @param resource $res libvirt nodedev resource + * @param string|null $xpath [optional] xPath expression string to get just this entry, can be NULL + * @return string nodedev XML description string or result of xPath expression + * @since 0.4.2 + */ +function libvirt_nodedev_get_xml_desc($res, ?string $xpath): string {} + +/* Nwfilter functions */ + +/** + * Function is used to list nwfilters on the connection + * @param resource $res libvirt domain resource + * @return array libvirt nwfilter resources array for the connection + * @since 0.5.4 + */ +function libvirt_list_all_nwfilters($res): array {} + +/** + * Function is used to list nwfilters on the connection + * @param resource $conn libvirt connection resource + * @return array libvirt nwfilter names array for the connection + * @since 0.5.4 + */ +function libvirt_list_nwfilters($conn): array {} + +/** + * Function is used to define a new nwfilter based on the XML description + * @param resource $conn libvirt connection resource + * @param string $xml XML string definition of nwfilter to be defined + * @return resource|false libvirt nwfilter resource of newly defined nwfilter or false on error + * @since 0.5.4 + */ +function libvirt_nwfilter_define_xml($conn, string $xml) {} + +/** + * Function is used to get nwfilter's name + * @param resource $res libvirt nwfilter resource + * @return string|false nwfilter name string or FALSE on failure + * @since 0.5.4 + */ +function libvirt_nwfilter_get_name($res): string|false {} + +/** + * Function is used to get nwfilter's UUID in binary format + * @param resource $res libvirt nwfilter resource + * @return string|false nwfilter UUID in binary format or FALSE on failure + * @since 0.5.3 + */ +function libvirt_nwfilter_get_uuid($res): string|false {} + +/** + * Function is used to get nwfilter's UUID in string format + * @param resource $res libvirt nwfilter resource + * @return string|false nwfilter UUID string or FALSE on failure + * @since 0.5.4 + */ +function libvirt_nwfilter_get_uuid_string($res): string|false {} + +/** + * Function is used to lookup for nwfilter identified by UUID string + * @param resource $res libvirt nwfilter resource + * @param string|null $xpath [optional] xPath expression string to get just this entry, can be NULL + * @return string nwfilter XML string or result of xPath expression + * @since 0.5.4 + */ +function libvirt_nwfilter_get_xml_desc($res, ?string $xpath): string {} + +/** + * This functions is used to lookup for the nwfilter by it's name + * @param resource $conn libvirt connection resource + * @param string $name name of the nwfilter to get the resource + * @return resource|false libvirt nwfilter resource + * @since 0.5.4 + */ +function libvirt_nwfilter_lookup_by_name($conn, string $name) {} + +/** + * Function is used to lookup for nwfilter identified by UUID string + * @param resource $conn libvirt connection resource + * @param string $uuid UUID string to look for nwfilter + * @return resource|false libvirt nwfilter resource + * @since 0.5.4 + */ +function libvirt_nwfilter_lookup_by_uuid_string($conn, string $uuid) {} + +/** + * Function is used to undefine already defined nwfilter + * @param resource $res libvirt nwfilter resource + * @return bool true on success, false on error + * @since 0.5.4 + */ +function libvirt_nwfilter_undefine($res): bool {} + +/* Libvirt functions */ + +/** + * Function is used to check major, minor and micro (also sometimes called release) versions of libvirt-php + * or libvirt itself. This could useful when you want your application to support only versions of libvirt + * or libvirt-php higher than some version specified + * @param int $major major version number to check for + * @param int $minor minor version number to check for + * @param int $micro micro (also release) version number to check for + * @param int $type type of checking, VIR_VERSION_BINDING to check against libvirt-php binding or + * VIR_VERSION_LIBVIRT to check against libvirt version + * @return bool TRUE if version is equal or higher than required, FALSE if not, + * FALSE with error [for libvirt_get_last_error()] on unsupported version type check + * @since 0.4.1(-1) + */ +function libvirt_check_version(int $major, int $minor, int $micro, int $type): bool {} + +/** + * Function to get the ISO images on path and return them in the array + * @param string $path string of path where to look for the ISO images + * @return array|false ISO image array on success, FALSE otherwise + */ +function libvirt_get_iso_images(string $path): array|false {} + +/** + * This function is used to get the last error coming either from libvirt or the PHP extension itself + * @return string last error string + */ +function libvirt_get_last_error(): string {} + +/** + * This function is used to get the last error code coming either from libvirt or the PHP extension itself + * @since 999 https://github.com/yzslab/php-libvirt-client + * @return int last error code + */ +function libvirt_get_last_error_code(): int {} + +/** + * This function is used to get the what part of the library raised the last error + * @since 999 https://github.com/yzslab/php-libvirt-client + * @return int last error domain + */ +function libvirt_get_last_error_domain(): int {} + +/** + * Function to check for feature existence for working libvirt instance + * @param string $name feature name + * @return bool TRUE if feature is supported, FALSE otherwise + * @since 0.4.1(-3) + */ +function libvirt_has_feature(string $name): bool {} + +/** + * Function is used to create the image of desired name, size and format. + * The image will be created in the image path (libvirt.image_path INI variable). Works only o + * @param resource $conn libvirt connection resource + * @param string $name name of the image file that will be created in the libvirt.image_path directory + * @param int $size size of the image in MiBs + * @param string $format format of the image, may be raw, qcow or qcow2 + * @return string|false hostname of the host node or FALSE for error + * @since 0.4.2 + */ +function libvirt_image_create($conn, string $name, int $size, string $format): string|false {} + +/** + * Function is used to create the image of desired name, size and format. + * The image will be created in the image path (libvirt.image_path INI variable). Works only on local systems! + * @param resource $conn libvirt connection resource + * @param string $image name of the image file that should be deleted + * @return string|false hostname of the host node or FALSE for error + * @since 0.4.2 + */ +function libvirt_image_remove($conn, string $image): string|false {} + +/** + * Function to set the log file for the libvirt module instance + * @param string|null $filename log filename or NULL to disable logging + * @param int $maxsize [optional] maximum log file size argument in KiB, default value can be found in PHPInfo() output + * @return bool TRUE if log file has been successfully set, FALSE otherwise + * @since 0.4.2 + */ +function libvirt_logfile_set(?string $filename, int $maxsize): bool {} + +/** + * Function to print the binding resources, although the resource information are printed, + * they are returned in the return_value + * @return resource bindings resource information + * @since 0.4.2 + */ +function libvirt_print_binding_resources() {} + +/** + * Function is used to get libvirt, driver and libvirt-php version numbers. Can be used for information purposes, + * for version checking please use libvirt_check_version() defined below + * @param string $type [optional] type string to identify driver to look at + * @return array libvirt, type (driver) and connector (libvirt-php) version numbers array + * @since 0.4.1(-1) + */ +function libvirt_version(string $type): array {} + +/* Snapshot functions */ + +/** + * Function is used to get the information whether domain has the current snapshot + * @param resource $res libvirt domain resource + * @param int $flags [optional] extra flags; not used yet so callers should always pass 0 + * @return bool TRUE is domain has the current snapshot, otherwise FALSE (you may need to check + * for error using libvirt_get_last_error()) + * @since 0.4.1(-2) + */ +function libvirt_domain_has_current_snapshot($res, int $flags = 0): bool {} + +/** + * This function creates the domain snapshot for the domain identified by it's resource + * @param resource $res libvirt domain resource + * @param int $flags [optional] libvirt snapshot flags + * @return resource domain snapshot resource + * @since 0.4.1(-2) + */ +function libvirt_domain_snapshot_create($res, int $flags = 0) {} + +/** + * Function is used to lookup the current snapshot for given domain + * @param resource $res libvirt domain resource + * @param int $flags [optional] libvirt snapshot flags + * @return resource domain snapshot resource + * @since 0.5.6 + */ +function libvirt_domain_snapshot_current($res, int $flags = 0) {} + +/** + * Function is used to revert the domain state to the state identified by the snapshot + * @param resource $res libvirt domain resource + * @param int $flags [optional] 0 to delete just snapshot, + * VIR_SNAPSHOT_DELETE_CHILDREN to delete snapshot children as well + * @return bool TRUE on success, FALSE on error + * @since 0.4.1(-2) + */ +function libvirt_domain_snapshot_delete($res, int $flags = 0): bool {} + +/** + * Function is used to get the XML description of the snapshot identified by it's resource + * @param resource $res libvirt snapshot resource + * @param int $flags [optional] libvirt snapshot flags + * @return string XML description string for the snapshot + * @since 0.4.1(-2) + */ +function libvirt_domain_snapshot_get_xml($res, int $flags = 0): string {} + +/** + * This functions is used to lookup for the snapshot by it's name + * @param resource $res libvirt domain resource + * @param string $name name of the snapshot to get the resource + * @param int $flags [optional] libvirt snapshot flags + * @return resource domain snapshot resource + * @since 0.4.1(-2) + */ +function libvirt_domain_snapshot_lookup_by_name($res, string $name, int $flags = 0) {} + +/** + * Function is used to revert the domain state to the state identified by the snapshot + * @param resource $res libvirt snapshot resource + * @param int $flags [optional] libvirt snapshot flags + * @return bool TRUE on success, FALSE on error + * @since 0.4.1(-2) + */ +function libvirt_domain_snapshot_revert($res, int $flags = 0): bool {} + +/** + * Function is used to list domain snapshots for the domain specified by it's resource + * @param resource $res libvirt domain resource + * @param int $flags [optional] libvirt snapshot flags + * @return array libvirt domain snapshot names array + * @since 0.4.1(-2) + */ +function libvirt_list_domain_snapshots($res, int $flags = 0): array {} + +/* Storage functions */ + +/** + * Function is used to list active storage pools on the connection + * @param resource $res libvirt connection resource + * @return array libvirt storagepool names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_active_storagepools($res): array {} + +/** + * Function is used to list inactive storage pools on the connection + * @param resource $res libvirt connection resource + * @return array libvirt storagepool names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_inactive_storagepools($res): array {} + +/** + * Function is used to list storage pools on the connection + * @param resource $res libvirt connection resource + * @return array libvirt storagepool names array for the connection + * @since 0.4.1(-1) + */ +function libvirt_list_storagepools($res): array {} + +/** + * Function is used to Build the underlying storage pool, e.g. create the destination directory for NFS + * @param resource $res libvirt storagepool resource + * @return bool TRUE if success, FALSE on error + * @since 0.4.2 + */ +function libvirt_storagepool_build($res): bool {} + +/** + * Function is used to create/start the storage pool + * @param resource $res libvirt storagepool resource + * @return bool TRUE if success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_storagepool_create($res): bool {} + +/** + * Function is used to define the storage pool from XML string and return it's resource + * @param resource $res libvirt connection resource + * @param string $xml XML string definition of storagepool + * @param int $flags [optional] flags to define XML + * @return resource libvirt storagepool resource + * @since 0.4.1(-1) + */ +function libvirt_storagepool_define_xml($res, string $xml, int $flags = 0) {} + +/** + * Function is used to Delete the underlying storage pool, e.g. remove the destination directory for NFS + * @param resource $res libvirt storagepool resource + * @return bool TRUE if success, FALSE on error + * @since 0.4.6 + */ +function libvirt_storagepool_delete($res): bool {} + +/** + * Function is used to destroy the storage pool + * @param resource $res libvirt storagepool resource + * @return bool TRUE if success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_storagepool_destroy($res): bool {} + +/** + * Function is used to get autostart of the storage pool + * @param resource $res libvirt storagepool resource + * @return bool TRUE for autostart enabled, FALSE for autostart disabled, FALSE with last_error set for error + * @since 0.4.1(-1) + */ +function libvirt_storagepool_get_autostart($res): bool {} + +/** + * Function is used to get information about the storage pool + * @param resource $res libvirt storagepool resource + * @return array storage pool information array of state, capacity, allocation and available space + * @since 0.4.1(-1) + */ +function libvirt_storagepool_get_info($res): array {} + +/** + * Function is used to get storage pool name from the storage pool resource + * @param resource $res libvirt storagepool resource + * @return string storagepool name string + * @since 0.4.1(-1) + */ +function libvirt_storagepool_get_name($res): string {} + +/** + * Function is used to get storage pool by UUID string + * @param resource $res libvirt storagepool resource + * @return string storagepool UUID string + * @since 0.4.1(-1) + */ +function libvirt_storagepool_get_uuid_string($res): string {} + +/** + * Function is used to get storage volume count in the storage pool + * @param resource $res libvirt storagepool resource + * @return int number of volumes in the pool + * @since 0.4.1(-1) + */ +function libvirt_storagepool_get_volume_count($res): int {} + +/** + * Function is used to get the XML description for the storage pool identified by res + * @param resource $res libvirt storagepool resource + * @param string|null $xpath [optional] xPath expression string to get just this entry, can be NULL + * @return string storagepool XML description string or result of xPath expression + * @since 0.4.2 + */ +function libvirt_storagepool_get_xml_desc($res, ?string $xpath): string {} + +/** + * Function is used to get information whether storage pool is active or not + * @param resource $res libvirt storagepool resource + * @return bool result of virStoragePoolIsActive + * @since 0.4.1(-1) + */ +function libvirt_storagepool_is_active($res): bool {} + +/** + * Function is used to list volumes in the specified storage pool + * @param resource $res libvirt storagepool resource + * @return array list of storage volume names in the storage pool in an array using default keys (indexes) + * @since 0.4.1(-1) + */ +function libvirt_storagepool_list_volumes($res): array {} + +/** + * Function is used to lookup for storage pool by it's name + * @param resource $res volume resource of storage pool + * @param string $name storage pool name + * @return resource libvirt storagepool resource + * @since 0.4.1(-1) + */ +function libvirt_storagepool_lookup_by_name($res, string $name) {} + +/** + * Function is used to lookup for storage pool identified by UUID string + * @param resource $res libvirt connection resource + * @param string $uuid UUID string to look for storagepool + * @return resource libvirt storagepool resource + * @since 0.4.1(-1) + */ +function libvirt_storagepool_lookup_by_uuid_string($res, string $uuid) {} + +/** + * Function is used to lookup for storage pool by a volume + * @param resource $res volume resource of storage pool + * @return resource libvirt storagepool resource + * @since 0.4.1(-1) + */ +function libvirt_storagepool_lookup_by_volume($res) {} + +/** + * Function is used to refresh the storage pool information + * @param resource $res libvirt storagepool resource + * @param int $flags [optional] refresh flags + * @return bool TRUE if success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_storagepool_refresh($res, int $flags = 0): bool {} + +/** + * Function is used to set autostart of the storage pool + * @param resource $res libvirt storagepool resource + * @param bool $flags flags to set autostart + * @return bool result on setting storagepool autostart value + */ +function libvirt_storagepool_set_autostart($res, bool $flags): bool {} + +/** + * Function is used to undefine the storage pool identified by it's resource + * @param resource $res libvirt storagepool resource + * @return bool TRUE if success, FALSE on error + * @since 0.4.1(-1) + */ +function libvirt_storagepool_undefine($res): bool {} + +/** + * Function is used to create the new storage pool and return the handle to new storage pool + * @param resource $res libvirt storagepool resource + * @param string $xml XML string to create the storage volume in the storage pool + * @param int $flags [optional] virStorageVolCreateXML flags + * @return resource libvirt storagevolume resource + * @since 0.4.1(-1) + */ +function libvirt_storagevolume_create_xml($res, string $xml, int $flags = 0) {} + +/** + * Function is used to clone the new storage volume into pool from the original volume + * @param resource $pool libvirt storagepool resource + * @param string $xml XML string to create the storage volume in the storage pool + * @param resource $original_volume libvirt storagevolume resource + * @return resource libvirt storagevolume resource + * @since 0.4.1(-2) + */ +function libvirt_storagevolume_create_xml_from($pool, string $xml, $original_volume) {} + +/** + * Function is used to delete to volume identified by it's resource + * @param resource $res libvirt storagevolume resource + * @param int $flags [optional] flags for the storage volume deletion for virStorageVolDelete() + * @return bool TRUE for success, FALSE on error + * @since 0.4.2 + */ +function libvirt_storagevolume_delete($res, int $flags = 0): bool {} + +/** + * Function is used to download volume identified by it's resource + * @param resource $res libvirt storagevolume resource + * @param resource $stream stream to use as output + * @param int $offset [optional] position to start reading from + * @param int $length [optional] limit on amount of data to download + * @param int $flags [optional] flags for the storage volume download for virStorageVolDownload() + * @return int + * @since 0.5.0 + */ +function libvirt_storagevolume_download($res, $stream, int $offset = 0, int $length = 0, int $flags = 0): int {} + +/** + * Function is used to get the storage volume information + * @param resource $res libvirt storagevolume resource + * @return array storage volume information array of type, allocation and capacity + * @since 0.4.1(-1) + */ +function libvirt_storagevolume_get_info($res): array {} + +/** + * Function is used to get the storage volume name + * @param resource $res libvirt storagevolume resource + * @return string storagevolume name + * @since 0.4.1(-2) + */ +function libvirt_storagevolume_get_name($res): string {} + +/** + * Function is used to get the storage volume path + * @param resource $res libvirt storagevolume resource + * @return string storagevolume path + * @since 0.4.1(-2) + */ +function libvirt_storagevolume_get_path($res): string {} + +/** + * Function is used to get the storage volume XML description + * @param resource $res libvirt storagevolume resource + * @param string|null $xpath [optional] xPath expression string to get just this entry, can be NULL + * @param int $flags [optional] flags + * @return string storagevolume XML description or result of xPath expression + * @since 0.4.2 + */ +function libvirt_storagevolume_get_xml_desc($res, ?string $xpath, int $flags = 0): string {} + +/** + * Function is used to lookup for storage volume by it's name + * @param resource $res libvirt storagepool resource + * @param string $name name of the storage volume to look for + * @return resource libvirt storagevolume resource + * @since 0.4.1(-1) + */ +function libvirt_storagevolume_lookup_by_name($res, string $name) {} + +/** + * Function is used to lookup for storage volume by it's path + * @param resource $res libvirt connection resource + * @param string $path path of the storage volume to look for + * @return resource libvirt storagevolume resource + * @since 0.4.1(-2) + */ +function libvirt_storagevolume_lookup_by_path($res, string $path) {} + +/** + * Function is used to resize volume identified by it's resource + * @param resource $res libvirt storagevolume resource + * @param int $capacity capacity for the storage volume + * @param int $flags [optional] flags for the storage volume resize for virStorageVolResize() + * @return int + * @since 0.5.0 + */ +function libvirt_storagevolume_resize($res, int $capacity, int $flags = 0): int {} + +/** + * Function is used to upload volume identified by it's resource + * @param resource $res libvirt storagevolume resource + * @param resource $stream stream to use as input + * @param int $offset [optional] position to start writing to + * @param int $length [optional] limit on amount of data to upload + * @param int $flags [optional] flags for the storage volume upload for virStorageVolUpload() + * @return int + * @since 0.5.0 + */ +function libvirt_storagevolume_upload($res, $stream, int $offset = 0, int $length = 0, int $flags = 0): int {} + +/* Stream functions */ + +/** + * Function is used to abort transfer + * @param resource $res libvirt stream resource from libvirt_stream_create() + * @return int + * @since 0.5.0 + */ +function libvirt_stream_abort($res): int {} + +/** + * Function is used to close stream + * @param resource $res libvirt stream resource from libvirt_stream_create() + * @return int + * @since 0.5.0 + */ +function libvirt_stream_close($res): int {} + +/** + * Function is used to create new stream from libvirt conn + * @param resource $res libvirt connection resource from libvirt_connect() + * @return resource resource libvirt stream resource + * @since 0.5.0 + */ +function libvirt_stream_create($res) {} + +/** + * Function is used to finish transfer + * @param resource $res libvirt stream resource from libvirt_stream_create() + * @return int + * @since 0.5.0 + */ +function libvirt_stream_finish($res): int {} + +/** + * Function is used to close stream from libvirt conn + * @param resource $res libvirt stream resource from libvirt_stream_create() + * @param string $data buffer + * @param int $len [optional] amount of data to receive + * @return int + * @since 0.5.0 + */ +function libvirt_stream_recv($res, string $data, int $len = 0): int {} + +/** + * Function is used to close stream from libvirt conn + * @param resource $res libvirt stream resource from libvirt_stream_create() + * @param string $data buffer + * @param int $length [optional] amount of data to send + * @return int + * @since 0.5.0 + */ +function libvirt_stream_send($res, string $data, int $length = 0): int {} diff --git a/phpstorm-stubs/libxml/libxml.php b/phpstorm-stubs/libxml/libxml.php new file mode 100644 index 0000000..16b6694 --- /dev/null +++ b/phpstorm-stubs/libxml/libxml.php @@ -0,0 +1,350 @@ + + * the severity of the error (one of the following constants: + *LIBXML_ERR_WARNING,
+ * LIBXML_ERR_ERROR or
+ * LIBXML_ERR_FATAL)
+ *
+ * @var int
+ */
+ public int $level;
+
+ /**
+ * + * The error's code. + *
+ * @var int + */ + public int $code; + + /** + *+ * The column where the error occurred. + *
+ *Note: + *
+ * This property isn't entirely implemented in libxml and therefore + * 0 is often returned. + *
+ * @var int + */ + public int $column; + + /** + *+ * The error message, if any. + *
+ * @var string + */ + public string $message; + + /** + *The filename, or empty if the XML was loaded from a string.
+ * @var string + */ + public string $file; + + /** + *+ * The line where the error occurred. + *
+ * @var int + */ + public int $line; +} + +/** + * Set the streams context for the next libxml document load or write + * @link https://php.net/manual/en/function.libxml-set-streams-context.php + * @param resource $context+ * The stream context resource (created with + * stream_context_create) + *
+ * @return void No value is returned. + */ +function libxml_set_streams_context($context): void {} + +/** + * Disable libxml errors and allow user to fetch error information as needed + * @link https://php.net/manual/en/function.libxml-use-internal-errors.php + * @param bool|null $use_errors+ * Enable (TRUE) user error handling or disable (FALSE) user error handling. Disabling will also clear any existing libxml errors. + *
+ * @return bool This function returns the previous value of + * use_errors. + */ +function libxml_use_internal_errors( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] bool $use_errors = false, + #[PhpStormStubsElementAvailable(from: '8.0')] ?bool $use_errors = null +): bool {} + +/** + * Retrieve last error from libxml + * @link https://php.net/manual/en/function.libxml-get-last-error.php + * @return LibXMLError|false a LibXMLError object if there is any error in the + * buffer, FALSE otherwise. + */ +#[Pure(true)] +function libxml_get_last_error(): LibXMLError|false {} + +/** + * Clear libxml error buffer + * @link https://php.net/manual/en/function.libxml-clear-errors.php + * @return void No value is returned. + */ +function libxml_clear_errors(): void {} + +/** + * Retrieve array of errors + * @link https://php.net/manual/en/function.libxml-get-errors.php + * @return LibXMLError[] an array with LibXMLError objects if there are any + * errors in the buffer, or an empty array otherwise. + */ +#[Pure(true)] +function libxml_get_errors(): array {} + +/** + * Disable the ability to load external entities + * @link https://php.net/manual/en/function.libxml-disable-entity-loader.php + * @param bool $disable [optional]+ * Disable (TRUE) or enable (FALSE) libxml extensions (such as + * , + * and ) to load external entities. + *
+ * @return bool the previous value. + * @since 5.2.11 + */ +#[Deprecated(since: "8.0")] +function libxml_disable_entity_loader(bool $disable = true): bool {} + +/** + * Changes the default external entity loader + * @link https://php.net/manual/en/function.libxml-set-external-entity-loader.php + * @param callable|null $resolver_function+ * A callable that takes three arguments. Two strings, a public id + * and system id, and a context (an array with four keys) as the third argument. + * This callback should return a resource, a string from which a resource can be + * opened, or NULL. + *
+ * @return bool + * @since 5.4 + */ +function libxml_set_external_entity_loader(?callable $resolver_function): bool {} + +/** + * Returns the currently installed external entity loader, i.e. the value which was passed to + * libxml_set_external_entity_loader() or null if no loader was installed and the default entity loader will be used. + * This allows libraries to save and restore the loader, controlling entity expansion without interfering with the rest + * of the application. + * + * @return callable|null + * @since 8.2 + */ +function libxml_get_external_entity_loader(): ?callable {} + +/** + * libxml version like 20605 or 20617 + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_VERSION', 20901); + +/** + * libxml version like 2.6.5 or 2.6.17 + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_DOTTED_VERSION', "2.9.1"); +define('LIBXML_LOADED_VERSION', 20901); + +/** + * Substitute entities + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOENT', 2); + +/** + * Load the external subset + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_DTDLOAD', 4); + +/** + * Default DTD attributes + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_DTDATTR', 8); + +/** + * Validate with the DTD + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_DTDVALID', 16); + +/** + * Suppress error reports + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOERROR', 32); + +/** + * Suppress warning reports + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOWARNING', 64); + +/** + * Remove blank nodes + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOBLANKS', 256); + +/** + * Implement XInclude substitution + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_XINCLUDE', 1024); + +/** + * Remove redundant namespaces declarations + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NSCLEAN', 8192); + +/** + * Merge CDATA as text nodes + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOCDATA', 16384); + +/** + * Disable network access when loading documents + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NONET', 2048); + +/** + * Sets XML_PARSE_PEDANTIC flag, which enables pedentic error reporting. + * @link https://php.net/manual/en/libxml.constants.php + * @since 5.4 + */ +define('LIBXML_PEDANTIC', 128); + +/** + * Activate small nodes allocation optimization. This may speed up your + * application without needing to change the code. + *+ * Only available in Libxml >= 2.6.21 + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_COMPACT', 65536); + +/** + * Allows line numbers greater than 65535 to be reported correctly. + *+ * Only available in Libxml >= 2.9.0 + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_BIGLINES', 65535); + +/** + * Drop the XML declaration when saving a document + *+ * Only available in Libxml >= 2.6.21 + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOXMLDECL', 2); + +/** + * Sets XML_PARSE_HUGE flag, which relaxes any hardcoded limit from the parser. This affects + * limits like maximum depth of a document or the entity recursion, as well as limits of the + * size of text nodes. + *+ * Only available in Libxml >= 2.7.0 (as of PHP >= 5.3.2 and PHP >= 5.2.12) + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_PARSEHUGE', 524288); + +/** + * Expand empty tags (e.g. <br/> to + * <br></br>) + *+ * This option is currently just available in the + * and + * functions. + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_NOEMPTYTAG', 4); + +/** + * Create default/fixed value nodes during XSD schema validation + *+ * Only available in Libxml >= 2.6.14 (as of PHP >= 5.5.2) + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_SCHEMA_CREATE', 1); + +/** + * Sets HTML_PARSE_NOIMPLIED flag, which turns off the + * automatic adding of implied html/body... elements. + *+ * Only available in Libxml >= 2.7.7 (as of PHP >= 5.4.0) + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_HTML_NOIMPLIED', 8192); + +/** + * Sets HTML_PARSE_NODEFDTD flag, which prevents a default doctype + * being added when one is not found. + *+ * Only available in Libxml >= 2.7.8 (as of PHP >= 5.4.0) + *
+ * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_HTML_NODEFDTD', 4); + +/** + * No errors + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_ERR_NONE', 0); + +/** + * A simple warning + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_ERR_WARNING', 1); + +/** + * A recoverable error + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_ERR_ERROR', 2); + +/** + * A fatal error + * @link https://php.net/manual/en/libxml.constants.php + */ +define('LIBXML_ERR_FATAL', 3); + +// End of libxml v. diff --git a/phpstorm-stubs/lua/lua.php b/phpstorm-stubs/lua/lua.php new file mode 100644 index 0000000..f6bbb37 --- /dev/null +++ b/phpstorm-stubs/lua/lua.php @@ -0,0 +1,79 @@ += 0.9.0)+ * A valid file pointer, which must be seek-able. + *
+ * @return string Returns one of the character encodings supported by the + * {@link https://php.net/manual/en/ref.mbstring.php mbstring} module. + */ +function mailparse_determine_best_xfer_encoding($fp) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource, created with {@link https://php.net/manual/en/function.mailparse-msg-create.php mailparse_msg_create()}. + *
+ * @param mixed $filename+ * Can be a file name or a valid stream resource. + *
+ * @param callable $callbackfunc [optional]+ * If set, this must be either a valid callback that will be passed the extracted section, or NULL to make this + * function return the extracted section. + *
+ *+ * If not specified, the contents will be sent to "stdout". + *
+ * @return string|bool+ * If callbackfunc is not NULL returns TRUE on success. + *
+ *+ * If callbackfunc is set to NULL, returns the extracted section as a string. + *
+ *+ * Returns FALSE on error. + *
+ */ +function mailparse_msg_extract_part_file($mimemail, $filename, $callbackfunc) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource. + *
+ * @param string $msgbody + * @param callable $callbackfunc [optional] + * @return void + */ +function mailparse_msg_extract_part($mimemail, $msgbody, $callbackfunc) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource + *
+ * @param string $filename + * @param callable $callbackfunc [optional] + * @return string + */ +function mailparse_msg_extract_whole_part_file($mimemail, $filename, $callbackfunc) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource allocated by + * {@link https://php.net/manual/en/function.mailparse-msg-create.php mailparse_msg_create()} or + * {@link https://php.net/manual/en/function.mailparse-msg-parse-file.php mailparse_msg_parse_file()}. + *
+ * @return bool Returns TRUE on success or FALSE on failure. + */ +function mailparse_msg_free($mimemail) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource. + *
+ * @return array + */ +function mailparse_msg_get_part_data($mimemail) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource. + *
+ * @param string $mimesection + * @return resource|false + */ +function mailparse_msg_get_part($mimemail, $mimesection) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource. + *
+ * @return array + */ +function mailparse_msg_get_structure($mimemail) {} + +/** + * (PECL mailparse >= 0.9.0)+ * Path to the file holding the message. The file is opened and streamed through the parser. + *
+ * @return resource|false Returns a MIME resource representing the structure, or FALSE on error. + */ +function mailparse_msg_parse_file($filename) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid MIME resource. + *
+ * @param string $data + * @return bool Returns TRUE on success or FALSE on failure. + */ +function mailparse_msg_parse($mimemail, $data) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A string containing addresses, like in:
Wez Furlong+ * Note: This string must not include the header name. + * + * @return array, doe@example.com
+ * Returns an array of associative arrays with the following keys for each recipient: + *
+ *| display | + *The recipient name, for display purpose. If this part is not set for a recipient, this key will hold the same value as address. | + *
| address | + *The email address | + *
| is_group | + *TRUE if the recipient is a newsgroup, FALSE otherwise. | + *
+ * A valid file handle. The file is streamed through the parser. + *
+ * @param resource $destfp+ * The destination file handle in which the encoded data will be written. + *
+ * @param string $encoding+ * One of the character encodings supported by the {@link https://php.net/manual/en/ref.mbstring.php mbstring} module. + *
+ * @return bool Returns TRUE on success or FALSE on failure. + */ +function mailparse_stream_encode($sourcefp, $destfp, $encoding) {} + +/** + * (PECL mailparse >= 0.9.0)+ * A valid file pointer. + *
+ * @return array+ * Returns an array of associative arrays listing filename information. + *
+ *| filename | + *Path to the temporary file name created | + *
| origfilename | + *The original filename, for uuencoded parts only | + *
+ * The first filename entry is the message body. The next entries are the decoded uuencoded files. + *
+ */ +function mailparse_uudecode_all($fp) {} + +define('MAILPARSE_EXTRACT_OUTPUT', 0); +define('MAILPARSE_EXTRACT_STREAM', 1); +define('MAILPARSE_EXTRACT_RETURN', 2); + +// End of mailparse v. diff --git a/phpstorm-stubs/mapscript/mapscript.php b/phpstorm-stubs/mapscript/mapscript.php new file mode 100644 index 0000000..3d4ee56 --- /dev/null +++ b/phpstorm-stubs/mapscript/mapscript.php @@ -0,0 +1,4945 @@ +next() method. + * + * @return void + */ +function ms_ResetErrorList() {} + +/** + * Class Objects can be returned by the `layerObj`_ class, or can be + * created using: + */ +final class classObj +{ + /** + * @var string + */ + public $group; + + /** + * @var string + */ + public $keyimage; + + /** + * Removed (6.2) - use addLabel, getLabel, ... + * + * @var labelObj + */ + public $label; + + /** + * @var float + */ + public $maxscaledenom; + + /** + * @var hashTableObj + */ + public $metadata; + + /** + * @var float + */ + public $minscaledenom; + + /** + * @var string + */ + public $name; + + /** + * read-only (since 6.2) + * + * @var int + */ + public $numlabels; + + /** + * read-only + * + * @var int + */ + public $numstyles; + + /** + * MS_ON, MS_OFF or MS_DELETE + * + * @var int + */ + public $status; + + /** + * @var string + */ + public $template; + + /** + * @var string + */ + public $title; + + /** + * @var int + */ + public $type; + + /** + * The second argument class is optional. If given, the new class + * created will be a copy of this class. + * + * @param layerObj $layer + * @param classObj $class + */ + final public function __construct(layerObj $layer, classObj $class) {} + + /** + * Old style constructor + * + * @param layerObj $layer + * @param classObj $class + * @return classObj + */ + final public function ms_newClassObj(layerObj $layer, classObj $class) {} + + /** + * Add a labelObj to the classObj and return its index in the labels + * array. + * .. versionadded:: 6.2 + * + * @param labelObj $label + * @return int + */ + final public function addLabel(labelObj $label) {} + + /** + * Saves the object to a string. Provides the inverse option for + * updateFromString. + * + * @return string + */ + final public function convertToString() {} + + /** + * Draw the legend icon and return a new imageObj. + * + * @param int $width + * @param int $height + * @return imageObj + */ + final public function createLegendIcon($width, $height) {} + + /** + * Delete the style specified by the style index. If there are any + * style that follow the deleted style, their index will decrease by 1. + * + * @param int $index + * @return int + */ + final public function deletestyle($index) {} + + /** + * Draw the legend icon on im object at dstX, dstY. + * Returns MS_SUCCESS/MS_FAILURE. + * + * @param int $width + * @param int $height + * @param imageObj $im + * @param int $dstX + * @param int $dstY + * @return int + */ + final public function drawLegendIcon($width, $height, imageObj $im, $dstX, $dstY) {} + + /** + * Free the object properties and break the internal references. + * Note that you have to unset the php variable to free totally the + * resources. + * + * @return void + */ + final public function free() {} + + /** + * Returns the :ref:`expression+ * The mode of the conversion. It can be one of + * MB_CASE_UPPER, + * MB_CASE_LOWER, or + * MB_CASE_TITLE. + *
+ * @param string|null $encoding [optional] + * @return string A case folded version of string converted in the + * way specified by mode. + */ +#[Pure] +function mb_convert_case(string $string, int $mode, ?string $encoding): string {} + +/** + * Make a string uppercase + * @link https://php.net/manual/en/function.mb-strtoupper.php + * @param string $string+ * The string being uppercased. + *
+ * @param string|null $encoding [optional] + * @return string str with all alphabetic characters converted to uppercase. + */ +#[Pure] +function mb_strtoupper(string $string, ?string $encoding): string {} + +/** + * Make a string lowercase + * @link https://php.net/manual/en/function.mb-strtolower.php + * @param string $string+ * The string being lowercased. + *
+ * @param string|null $encoding [optional] + * @return string str with all alphabetic characters converted to lowercase. + */ +#[Pure] +function mb_strtolower(string $string, ?string $encoding): string {} + +/** + * Set/Get current language + * @link https://php.net/manual/en/function.mb-language.php + * @param string|null $language [optional]+ * Used for encoding + * e-mail messages. Valid languages are "Japanese", + * "ja","English","en" and "uni" + * (UTF-8). mb_send_mail uses this setting to + * encode e-mail. + *
+ *+ * Language and its setting is ISO-2022-JP/Base64 for + * Japanese, UTF-8/Base64 for uni, ISO-8859-1/quoted printable for + * English. + *
+ * @return bool|string If language is set and + * language is valid, it returns + * true. Otherwise, it returns false. + * When language is omitted, it returns the language + * name as a string. If no language is set previously, it then returns + * false. + */ +function mb_language(?string $language): string|bool {} + +/** + * Set/Get internal character encoding + * @link https://php.net/manual/en/function.mb-internal-encoding.php + * @param string|null $encoding [optional]+ * encoding is the character encoding name + * used for the HTTP input character encoding conversion, HTTP output + * character encoding conversion, and the default character encoding + * for string functions defined by the mbstring module. + *
+ * @return bool|string If encoding is set, then + * true on success or false on failure. + * If encoding is omitted, then + * the current character encoding name is returned. + */ +function mb_internal_encoding(?string $encoding): string|bool {} + +/** + * Detect HTTP input character encoding + * @link https://php.net/manual/en/function.mb-http-input.php + * @param string|null $type [optional]+ * Input string specifies the input type. + * "G" for GET, "P" for POST, "C" for COOKIE, "S" for string, "L" for list, and + * "I" for the whole list (will return array). + * If type is omitted, it returns the last input type processed. + *
+ * @return array|false|string The character encoding name, as per the type. + * If mb_http_input does not process specified + * HTTP input, it returns false. + */ +#[Pure] +function mb_http_input(?string $type): array|string|false {} + +/** + * Set/Get HTTP output character encoding + * @link https://php.net/manual/en/function.mb-http-output.php + * @param string|null $encoding [optional]+ * If encoding is set, + * mb_http_output sets the HTTP output character + * encoding to encoding. + *
+ *+ * If encoding is omitted, + * mb_http_output returns the current HTTP output + * character encoding. + *
+ * @return bool|string If encoding is omitted, + * mb_http_output returns the current HTTP output + * character encoding. Otherwise, + * true on success or false on failure. + */ +function mb_http_output(?string $encoding): string|bool {} + +/** + * Set/Get character encoding detection order + * @link https://php.net/manual/en/function.mb-detect-order.php + * @param array|string|null $encoding [optional]+ * encoding_list is an array or + * comma separated list of character encoding. ("auto" is expanded to + * "ASCII, JIS, UTF-8, EUC-JP, SJIS") + *
+ *+ * If encoding_list is omitted, it returns + * the current character encoding detection order as array. + *
+ *+ * This setting affects mb_detect_encoding and + * mb_send_mail. + *
+ *+ * mbstring currently implements the following + * encoding detection filters. If there is an invalid byte sequence + * for the following encodings, encoding detection will fail. + *
+ * UTF-8, UTF-7, + * ASCII, + * EUC-JP,SJIS, + * eucJP-win, SJIS-win, + * JIS, ISO-2022-JP + *+ * For ISO-8859-*, mbstring + * always detects as ISO-8859-*. + *
+ *+ * For UTF-16, UTF-32, + * UCS2 and UCS4, encoding + * detection will fail always. + *
+ *+ * Useless detect order example + *
+ * @return bool|string[] When setting the encoding detection order, + * true is returned on success or FALSE on failure. + * When getting the encoding detection order, an ordered array + * of the encodings is returned. + */ +#[LanguageLevelTypeAware(['8.2' => 'array|true'], default: 'array|bool')] +function mb_detect_order(array|string|null $encoding = null): array|bool {} + +/** + * Set/Get substitution character + * @link https://php.net/manual/en/function.mb-substitute-character.php + * @param string|int|null $substitute_character [optional]+ * Specify the Unicode value as an integer, + * or as one of the following strings:
+ * The URL encoded data. + *
+ * @param array &$result [optional]+ * An array containing decoded and character encoded converted values. + *
+ * @return bool true on success or false on failure. + */ +#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] +function mb_parse_str(string $string, &$result): bool {} + +/** + * Parse GET/POST/COOKIE data and set global variable + * @link https://php.net/manual/en/function.mb-parse-str.php + * @param string $string+ * The URL encoded data. + *
+ * @param array &$result+ * An array containing decoded and character encoded converted values. + *
+ * @return bool true on success or false on failure. + */ +#[PhpStormStubsElementAvailable(from: '8.0')] +function mb_parse_str(string $string, &$result): bool {} + +/** + * Callback function converts character encoding in output buffer + * @link https://php.net/manual/en/function.mb-output-handler.php + * @param string $string+ * The contents of the output buffer. + *
+ * @param int $status+ * The status of the output buffer. + *
+ * @return string The converted string. + */ +#[Pure] +function mb_output_handler(string $string, int $status): string {} + +/** + * Get MIME charset string + * @link https://php.net/manual/en/function.mb-preferred-mime-name.php + * @param string $encoding+ * The encoding being checked. + *
+ * @return string|false The MIME charset string for character encoding + * encoding. + */ +#[Pure] +function mb_preferred_mime_name(string $encoding): string|false {} + +/** + * Get string length + * @link https://php.net/manual/en/function.mb-strlen.php + * @param string $string+ * The string being checked for length. + *
+ * @param string|null $encoding [optional] + * @return int|false the number of characters in + * string str having character encoding + * encoding. A multi-byte character is + * counted as 1. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.0' => 'int'], default: 'int|false')] +function mb_strlen(string $string, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $encoding) {} + +/** + * Find position of first occurrence of string in a string + * @link https://php.net/manual/en/function.mb-strpos.php + * @param string $haystack+ * The string being checked. + *
+ * @param string $needle+ * The position counted from the beginning of haystack. + *
+ * @param int<0,max> $offset [optional]+ * The search offset. If it is not specified, 0 is used. + *
+ * @param string|null $encoding [optional] + * @return int<0,max>|false the numeric position of + * the first occurrence of needle in the + * haystack string. If + * needle is not found, it returns false. + */ +#[Pure] +function mb_strpos(string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false {} + +/** + * Find position of last occurrence of a string in a string + * @link https://php.net/manual/en/function.mb-strrpos.php + * @param string $haystack+ * The string being checked, for the last occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack. + *
+ * @param int $offset [optional] May be specified to begin searching an arbitrary number of characters into + * the string. Negative values will stop searching at an arbitrary point + * prior to the end of the string. + * @param string|null $encoding [optional] + * @return int|false the numeric position of + * the last occurrence of needle in the + * haystack string. If + * needle is not found, it returns false. + */ +#[Pure] +function mb_strrpos(string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false {} + +/** + * Finds position of first occurrence of a string within another, case insensitive + * @link https://php.net/manual/en/function.mb-stripos.php + * @param string $haystack+ * The string from which to get the position of the first occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param int $offset [optional]+ * The position in haystack + * to start searching + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return int|false Return the numeric position of the first occurrence of + * needle in the haystack + * string, or false if needle is not found. + */ +#[Pure] +function mb_stripos(string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false {} + +/** + * Finds position of last occurrence of a string within another, case insensitive + * @link https://php.net/manual/en/function.mb-strripos.php + * @param string $haystack+ * The string from which to get the position of the last occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param int $offset [optional]+ * The position in haystack + * to start searching + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return int|false Return the numeric position of + * the last occurrence of needle in the + * haystack string, or false + * if needle is not found. + */ +#[Pure] +function mb_strripos(string $haystack, string $needle, int $offset = 0, ?string $encoding): int|false {} + +/** + * Finds first occurrence of a string within another + * @link https://php.net/manual/en/function.mb-strstr.php + * @param string $haystack+ * The string from which to get the first occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param bool $before_needle [optional]+ * Determines which portion of haystack + * this function returns. + * If set to true, it returns all of haystack + * from the beginning to the first occurrence of needle. + * If set to false, it returns all of haystack + * from the first occurrence of needle to the end, + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return string|false the portion of haystack, + * or false if needle is not found. + */ +#[Pure] +function mb_strstr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false {} + +/** + * Finds the last occurrence of a character in a string within another + * @link https://php.net/manual/en/function.mb-strrchr.php + * @param string $haystack+ * The string from which to get the last occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param bool $before_needle [optional]+ * Determines which portion of haystack + * this function returns. + * If set to true, it returns all of haystack + * from the beginning to the last occurrence of needle. + * If set to false, it returns all of haystack + * from the last occurrence of needle to the end, + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return string|false the portion of haystack. + * or false if needle is not found. + */ +#[Pure] +function mb_strrchr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false {} + +/** + * Finds first occurrence of a string within another, case insensitive + * @link https://php.net/manual/en/function.mb-stristr.php + * @param string $haystack+ * The string from which to get the first occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param bool $before_needle [optional]+ * Determines which portion of haystack + * this function returns. + * If set to true, it returns all of haystack + * from the beginning to the first occurrence of needle. + * If set to false, it returns all of haystack + * from the first occurrence of needle to the end, + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return string|false the portion of haystack, + * or false if needle is not found. + */ +#[Pure] +function mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false {} + +/** + * Finds the last occurrence of a character in a string within another, case insensitive + * @link https://php.net/manual/en/function.mb-strrichr.php + * @param string $haystack+ * The string from which to get the last occurrence + * of needle + *
+ * @param string $needle+ * The string to find in haystack + *
+ * @param bool $before_needle [optional]+ * Determines which portion of haystack + * this function returns. + * If set to true, it returns all of haystack + * from the beginning to the last occurrence of needle. + * If set to false, it returns all of haystack + * from the last occurrence of needle to the end, + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return string|false the portion of haystack. + * or false if needle is not found. + */ +#[Pure] +function mb_strrichr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding): string|false {} + +/** + * Count the number of substring occurrences + * @link https://php.net/manual/en/function.mb-substr-count.php + * @param string $haystack+ * The string being checked. + *
+ * @param string $needle+ * The string being found. + *
+ * @param string|null $encoding [optional] + * @return int The number of times the + * needle substring occurs in the + * haystack string. + */ +#[Pure] +function mb_substr_count(string $haystack, string $needle, ?string $encoding): int {} + +/** + * Get part of string + * @link https://php.net/manual/en/function.mb-substr.php + * @param string $string+ * The string being checked. + *
+ * @param int $start+ * The first position used in str. + *
+ * @param int|null $length [optional]+ * The maximum length of the returned string. + *
+ * @param string|null $encoding [optional] + * @return string mb_substr returns the portion of + * str specified by the + * start and + * length parameters. + */ +#[Pure] +function mb_substr(string $string, int $start, ?int $length, ?string $encoding): string {} + +/** + * Get part of string + * @link https://php.net/manual/en/function.mb-strcut.php + * @param string $string+ * The string being cut. + *
+ * @param int $start+ * The position that begins the cut. + *
+ * @param int|null $length [optional]+ * The string being decoded. + *
+ * @param string|null $encoding [optional] + * @return string mb_strcut returns the portion of + * str specified by the + * start and + * length parameters. + */ +#[Pure] +function mb_strcut(string $string, int $start, ?int $length, ?string $encoding): string {} + +/** + * Return width of string + * @link https://php.net/manual/en/function.mb-strwidth.php + * @param string $string+ * The string being decoded. + *
+ * @param string|null $encoding [optional] + * @return int The width of string str. + */ +#[Pure] +function mb_strwidth(string $string, ?string $encoding): int {} + +/** + * Get truncated string with specified width + * @link https://php.net/manual/en/function.mb-strimwidth.php + * @param string $string+ * The string being decoded. + *
+ * @param int $start+ * The start position offset. Number of + * characters from the beginning of string. (First character is 0) + *
+ * @param int $width+ * The width of the desired trim. + *
+ * @param string $trim_marker+ * A string that is added to the end of string + * when string is truncated. + *
+ * @param string|null $encoding [optional] + * @return string The truncated string. If trimmarker is set, + * trimmarker is appended to the return value. + */ +#[Pure] +function mb_strimwidth(string $string, int $start, int $width, string $trim_marker = '', ?string $encoding): string {} + +/** + * Convert character encoding + * @link https://php.net/manual/en/function.mb-convert-encoding.php + * @param string|array $string+ * The string being encoded. + *
+ * @param string $to_encoding+ * The type of encoding that str is being converted to. + *
+ * @param string|string[]|null $from_encoding [optional]+ * Is specified by character code names before conversion. It is either + * an array, or a comma separated enumerated list. + * If from_encoding is not specified, the internal + * encoding will be used. + *
+ *+ * "auto" may be used, which expands to + * "ASCII,JIS,UTF-8,EUC-JP,SJIS". + *
+ * @return array|string|false The encoded string. + */ +#[Pure] +function mb_convert_encoding(array|string $string, string $to_encoding, array|string|null $from_encoding = null): array|string|false {} + +/** + * Detect character encoding + * @link https://php.net/manual/en/function.mb-detect-encoding.php + * @param string $string+ * The string being detected. + *
+ * @param string|string[]|null $encodings [optional]+ * encoding_list is list of character + * encoding. Encoding order may be specified by array or comma + * separated list string. + *
+ *+ * If encoding_list is omitted, + * detect_order is used. + *
+ * @param bool $strict [optional]+ * strict specifies whether to use + * the strict encoding detection or not. + * Default is false. + *
+ * @return string|false The detected character encoding or false if the encoding cannot be + * detected from the given string. + */ +#[Pure] +function mb_detect_encoding(string $string, array|string|null $encodings = null, bool $strict = false): string|false {} + +/** + * Returns an array of all supported encodings + * @link https://php.net/manual/en/function.mb-list-encodings.php + * @return string[] a numerically indexed array. + */ +#[Pure] +function mb_list_encodings(): array {} + +/** + * Get aliases of a known encoding type + * @param string $encoding The encoding type being checked, for aliases. + * @return string[]|false a numerically indexed array of encoding aliases on success, or FALSE on failure + * @link https://php.net/manual/en/function.mb-encoding-aliases.php + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")] +function mb_encoding_aliases(string $encoding) {} + +/** + * Convert "kana" one from another ("zen-kaku", "han-kaku" and more) + * @link https://php.net/manual/en/function.mb-convert-kana.php + * @param string $string+ * The string being converted. + *
+ * @param string $mode [optional]+ * The conversion option. + *
+ *+ * Specify with a combination of following options. + *
| Option | + *Meaning | + *
| r | + *+ * Convert "zen-kaku" alphabets to "han-kaku" + * | + *
| R | + *+ * Convert "han-kaku" alphabets to "zen-kaku" + * | + *
| n | + *+ * Convert "zen-kaku" numbers to "han-kaku" + * | + *
| N | + *+ * Convert "han-kaku" numbers to "zen-kaku" + * | + *
| a | + *+ * Convert "zen-kaku" alphabets and numbers to "han-kaku" + * | + *
| A | + *+ * Convert "han-kaku" alphabets and numbers to "zen-kaku" + * (Characters included in "a", "A" options are + * U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E) + * | + *
| s | + *+ * Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020) + * | + *
| S | + *+ * Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000) + * | + *
| k | + *+ * Convert "zen-kaku kata-kana" to "han-kaku kata-kana" + * | + *
| K | + *+ * Convert "han-kaku kata-kana" to "zen-kaku kata-kana" + * | + *
| h | + *+ * Convert "zen-kaku hira-gana" to "han-kaku kata-kana" + * | + *
| H | + *+ * Convert "han-kaku kata-kana" to "zen-kaku hira-gana" + * | + *
| c | + *+ * Convert "zen-kaku kata-kana" to "zen-kaku hira-gana" + * | + *
| C | + *+ * Convert "zen-kaku hira-gana" to "zen-kaku kata-kana" + * | + *
| V | + *+ * Collapse voiced sound notation and convert them into a character. Use with "K","H" + * | + *
+ * The string being encoded. + *
+ * @param string|null $charset [optional]+ * charset specifies the name of the character set + * in which str is represented in. The default value + * is determined by the current NLS setting (mbstring.language). + * mb_internal_encoding should be set to same encoding. + *
+ * @param string|null $transfer_encoding [optional]+ * transfer_encoding specifies the scheme of MIME + * encoding. It should be either "B" (Base64) or + * "Q" (Quoted-Printable). Falls back to + * "B" if not given. + *
+ * @param string $newline [optional]+ * linefeed specifies the EOL (end-of-line) marker + * with which mb_encode_mimeheader performs + * line-folding (a RFC term, + * the act of breaking a line longer than a certain length into multiple + * lines. The length is currently hard-coded to 74 characters). + * Falls back to "\r\n" (CRLF) if not given. + *
+ * @param int $indent+ * Indentation of the first line (number of characters in the header + * before str). + *
+ * @return string A converted version of the string represented in ASCII. + */ +#[Pure] +function mb_encode_mimeheader(string $string, ?string $charset, ?string $transfer_encoding, string $newline = "\r\n", int $indent = 0): string {} + +/** + * Decode string in MIME header field + * @link https://php.net/manual/en/function.mb-decode-mimeheader.php + * @param string $string+ * The string being decoded. + *
+ * @return string The decoded string in internal character encoding. + */ +#[Pure] +function mb_decode_mimeheader(string $string): string {} + +/** + * Convert character code in variable(s) + * @link https://php.net/manual/en/function.mb-convert-variables.php + * @param string $to_encoding+ * The encoding that the string is being converted to. + *
+ * @param string|string[] $from_encoding+ * from_encoding is specified as an array + * or comma separated string, it tries to detect encoding from + * from-coding. When from_encoding + * is omitted, detect_order is used. + *
+ * @param string|array|object &$var var is the reference to the variable being converted. + * @param string|array|object &...$vars+ * vars is the other references to the + * variables being converted. String, Array and Object are accepted. + * mb_convert_variables assumes all parameters + * have the same encoding. + *
+ * @return string|false The character encoding before conversion for success, + * or false for failure. + */ +function mb_convert_variables( + string $to_encoding, + array|string $from_encoding, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] &$vars, + #[PhpStormStubsElementAvailable(from: '8.0')] mixed &$var, + mixed &...$vars +): string|false {} + +/** + * Encode character to HTML numeric string reference + * @link https://php.net/manual/en/function.mb-encode-numericentity.php + * @param string $string+ * The string being encoded. + *
+ * @param int[] $map+ * convmap is array specifies code area to + * convert. + *
+ * @param null|string $encoding + * @param bool $hex [optional] + * @return string The converted string. + */ +#[Pure] +function mb_encode_numericentity(string $string, array $map, ?string $encoding = null, bool $hex = false): string {} + +/** + * Decode HTML numeric string reference to character + * @link https://php.net/manual/en/function.mb-decode-numericentity.php + * @param string $string+ * The string being decoded. + *
+ * @param int[] $map+ * convmap is an array that specifies + * the code area to convert. + *
+ * @param null|string $encoding + * @param bool $is_hex [optional]+ * this parameter is not used. + *
+ * @return string|false|null The converted string. + */ +#[Pure] +#[LanguageLevelTypeAware(['8.0' => 'string'], default: 'string|false|null')] +function mb_decode_numericentity(string $string, array $map, ?string $encoding = null, #[PhpStormStubsElementAvailable(from: '7.2', to: '7.4')] $is_hex = false) {} + +/** + * Send encoded mail + * @link https://php.net/manual/en/function.mb-send-mail.php + * @param string $to+ * The mail addresses being sent to. Multiple + * recipients may be specified by putting a comma between each + * address in to. + * This parameter is not automatically encoded. + *
+ * @param string $subject+ * The subject of the mail. + *
+ * @param string $message+ * The message of the mail. + *
+ * @param string|array $additional_headers
+ * String or array to be inserted at the end of the email header.
+ * Since 7.2.0 accepts an array. Its keys are the header names and its values are the respective header values.
+ * This is typically used to add extra
+ * headers. Multiple extra headers are separated with a
+ * newline ("\n").
+ *
+ * additional_parameter is a MTA command line + * parameter. It is useful when setting the correct Return-Path + * header when using sendmail. + *
+ * @return bool true on success or false on failure. + */ +function mb_send_mail(string $to, string $subject, string $message, array|string $additional_headers = [], ?string $additional_params): bool {} + +/** + * Get internal settings of mbstring + * @link https://php.net/manual/en/function.mb-get-info.php + * @param string $type [optional]+ * If type isn't specified or is specified to + * "all", an array having the elements "internal_encoding", + * "http_output", "http_input", "func_overload", "mail_charset", + * "mail_header_encoding", "mail_body_encoding" will be returned. + *
+ *+ * If type is specified as "http_output", + * "http_input", "internal_encoding", "func_overload", + * the specified setting parameter will be returned. + *
+ * @return array|string|int|false An array of type information if type + * is not specified, otherwise a specific type. + */ +#[Pure] +#[ArrayShape([ + 'internal_encoding' => 'string', + 'http_input' => 'string', + 'http_output' => 'string', + 'http_output_conv_mimetypes' => 'string', + 'mail_charset' => 'string', + 'mail_header_encoding' => 'string', + 'mail_body_encoding' => 'string', + 'illegal_chars' => 'string', + 'encoding_translation' => 'string', + 'language' => 'string', + 'detect_order' => 'string', + 'substitute_character' => 'string', + 'strict_detection' => 'string', +])] +#[LanguageLevelTypeAware(['8.2' => 'array|string|int|false|null'], default: 'array|string|int|false')] +function mb_get_info(string $type = 'all') {} + +/** + * Check if the string is valid for the specified encoding + * @link https://php.net/manual/en/function.mb-check-encoding.php + * @param string|string[]|null $value [optional]+ * The byte stream to check. If it is omitted, this function checks + * all the input from the beginning of the request. + *
+ * @param string|null $encoding [optional]+ * The expected encoding. + *
+ * @return bool true on success or false on failure. + * @since 5.1.3 + */ +#[Pure] +function mb_check_encoding(array|string|null $value = null, ?string $encoding): bool {} + +/** + * Returns current encoding for multibyte regex as string + * @link https://php.net/manual/en/function.mb-regex-encoding.php + * @param string|null $encoding [optional] + * @return bool|string If encoding is set, then Returns TRUE on success + * or FALSE on failure. In this case, the internal character encoding + * is NOT changed. If encoding is omitted, then the current character + * encoding name for a multibyte regex is returned. + */ +function mb_regex_encoding(?string $encoding): string|bool {} + +/** + * Set/Get the default options for mbregex functions + * @link https://php.net/manual/en/function.mb-regex-set-options.php + * @param string|null $options [optional]+ * The options to set. + *
+ * @return string The previous options. If options is omitted, + * it returns the string that describes the current options. + */ +function mb_regex_set_options(?string $options): string {} + +/** + * Regular expression match with multibyte support + * @link https://php.net/manual/en/function.mb-ereg.php + * @param string $pattern+ * The search pattern. + *
+ * @param string $string+ * The search string. + *
+ * @param string[] &$matches [optional]+ * Contains a substring of the matched string. + *
+ * @return bool + */ +function mb_ereg(string $pattern, string $string, &$matches): bool {} + +/** + * Regular expression match ignoring case with multibyte support + * @link https://php.net/manual/en/function.mb-eregi.php + * @param string $pattern+ * The regular expression pattern. + *
+ * @param string $string+ * The string being searched. + *
+ * @param string[] &$matches [optional]+ * Contains a substring of the matched string. + *
+ * @return bool|int + */ +#[LanguageLevelTypeAware(["8.0" => "bool"], default: "false|int")] +function mb_eregi(string $pattern, string $string, &$matches): bool {} + +/** + * Replace regular expression with multibyte support + * @link https://php.net/manual/en/function.mb-ereg-replace.php + * @param string $pattern+ * The regular expression pattern. + *
+ *+ * Multibyte characters may be used in pattern. + *
+ * @param string $replacement+ * The replacement text. + *
+ * @param string $string+ * The string being checked. + *
+ * @param string|null $options Matching condition can be set by option + * parameter. If i is specified for this + * parameter, the case will be ignored. If x is + * specified, white space will be ignored. If m + * is specified, match will be executed in multiline mode and line + * break will be included in '.'. If p is + * specified, match will be executed in POSIX mode, line break + * will be considered as normal character. If e + * is specified, replacement string will be + * evaluated as PHP expression. + *PHP 7.1: The e modifier has been deprecated.
+ * @return string|false|null The resultant string on success, or false on error. + */ +#[Pure] +function mb_ereg_replace(string $pattern, string $replacement, string $string, ?string $options = null): string|false|null {} + +/** + * Perform a regular expresssion seach and replace with multibyte support using a callback + * @link https://secure.php.net/manual/en/function.mb-ereg-replace-callback.php + * @param string $pattern+ * The regular expression pattern. + *
+ *+ * Multibyte characters may be used in pattern. + *
+ * @param callable $callback+ * A callback that will be called and passed an array of matched elements + * in the subject string. The callback should + * return the replacement string. + *
+ *+ * You'll often need the callback function + * for a mb_ereg_replace_callback() in just one place. + * In this case you can use an anonymous function to + * declare the callback within the call to + * mb_ereg_replace_callback(). By doing it this way + * you have all information for the call in one place and do not + * clutter the function namespace with a callback function's name + * not used anywhere else. + *
+ * @param string $string+ * The string being checked. + *
+ * @param string $options+ * Matching condition can be set by option + * parameter. If i is specified for this + * parameter, the case will be ignored. If x is + * specified, white space will be ignored. If m + * is specified, match will be executed in multiline mode and line + * break will be included in '.'. If p is + * specified, match will be executed in POSIX mode, line break + * will be considered as normal character. Note that e + * cannot be used for mb_ereg_replace_callback(). + *
+ * @return string|false|null+ * The resultant string on success, or FALSE on error. + *
+ * @since 5.4.1 + */ +function mb_ereg_replace_callback(string $pattern, callable $callback, string $string, ?string $options = null): string|false|null {} + +/** + * Replace regular expression with multibyte support ignoring case + * @link https://php.net/manual/en/function.mb-eregi-replace.php + * @param string $pattern+ * The regular expression pattern. Multibyte characters may be used. The case will be ignored. + *
+ * @param string $replacement+ * The replacement text. + *
+ * @param string $string+ * The searched string. + *
+ * @param string|null $options option has the same meaning as in + * mb_ereg_replace. + *PHP 7.1: The e modifier has been deprecated.
+ * @return string|false|null The resultant string or false on error. + */ +#[Pure] +function mb_eregi_replace( + string $pattern, + string $replacement, + string $string, + #[PhpStormStubsElementAvailable(from: '7.0')] ?string $options = null +): string|false|null {} + +/** + * Split multibyte string using regular expression + * @link https://php.net/manual/en/function.mb-split.php + * @param string $pattern+ * The regular expression pattern. + *
+ * @param string $string+ * The string being split. + *
+ * @param int $limit [optional] If optional parameter limit is specified, + * it will be split in limit elements as + * maximum. + * @return string[]|false The result as an array. + */ +#[Pure] +function mb_split(string $pattern, string $string, int $limit = -1): array|false {} + +/** + * Regular expression match for multibyte string + * @link https://php.net/manual/en/function.mb-ereg-match.php + * @param string $pattern+ * The regular expression pattern. + *
+ * @param string $string+ * The string being evaluated. + *
+ * @param string|null $options [optional]+ *
+ * @return bool + */ +#[Pure] +function mb_ereg_match(string $pattern, string $string, ?string $options): bool {} + +/** + * Multibyte regular expression match for predefined multibyte string + * @link https://php.net/manual/en/function.mb-ereg-search.php + * @param string|null $pattern [optional]+ * The search pattern. + *
+ * @param string|null $options [optional]+ * The search option. + *
+ * @return bool + */ +#[Pure] +function mb_ereg_search(?string $pattern, ?string $options): bool {} + +/** + * Returns position and length of a matched part of the multibyte regular expression for a predefined multibyte string + * @link https://php.net/manual/en/function.mb-ereg-search-pos.php + * @param string|null $pattern [optional]+ * The search pattern. + *
+ * @param string|null $options [optional]+ * The search option. + *
+ * @return int[]|false An array containing two elements. The first + * element is the offset, in bytes, where the match begins relative + * to the start of the search string, and the second element is the + * length in bytes of the match. If an error occurs, FALSE is returned. + */ +#[Pure] +function mb_ereg_search_pos(?string $pattern, ?string $options): array|false {} + +/** + * Returns the matched part of a multibyte regular expression + * @link https://php.net/manual/en/function.mb-ereg-search-regs.php + * @param string|null $pattern [optional]+ * The search pattern. + *
+ * @param string|null $options [optional]+ * The search option. + *
+ * @return string[]|false mb_ereg_search_regs() executes the multibyte + * regular expression match, and if there are some matched part, it + * returns an array including substring of matched part as first element, + * the first grouped part with brackets as second element, the second grouped + * part as third element, and so on. It returns FALSE on error. + */ +#[Pure] +function mb_ereg_search_regs(?string $pattern, ?string $options): array|false {} + +/** + * Setup string and regular expression for a multibyte regular expression match + * @link https://php.net/manual/en/function.mb-ereg-search-init.php + * @param string $string+ * The search string. + *
+ * @param string|null $pattern [optional]+ * The search pattern. + *
+ * @param string|null $options [optional]+ * The search option. + *
+ * @return bool + */ +function mb_ereg_search_init(string $string, ?string $pattern, ?string $options): bool {} + +/** + * Retrieve the result from the last multibyte regular expression match + * @link https://php.net/manual/en/function.mb-ereg-search-getregs.php + * @return string[]|false An array including the sub-string of matched + * part by last mb_ereg_search(), mb_ereg_search_pos(), mb_ereg_search_regs(). + * If there are some matches, the first element will have the matched + * sub-string, the second element will have the first part grouped with + * brackets, the third element will have the second part grouped with + * brackets, and so on. It returns FALSE on error; + */ +#[Pure] +function mb_ereg_search_getregs(): array|false {} + +/** + * Returns start point for next regular expression match + * @link https://php.net/manual/en/function.mb-ereg-search-getpos.php + * @return int + */ +#[Pure] +#[Deprecated(since: '7.3')] +function mb_ereg_search_getpos(): int {} + +/** + * Set start point of next regular expression match + * @link https://php.net/manual/en/function.mb-ereg-search-setpos.php + * @param int $offset+ * The position to set. + *
+ * @return bool + */ +#[Pure] +function mb_ereg_search_setpos(int $offset): bool {} + +/** + * @param $encoding [optional] + * @see mb_regex_encoding + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_regex_encoding(%parametersList%)", since: "7.3")] +function mbregex_encoding($encoding) {} + +/** + * @param string $pattern + * @param string $string + * @param array &$registers [optional] + * @see mb_ereg + * @removed 8.0 + */ +#[Deprecated(replacement: 'mb_ereg(%parametersList%)', since: '7.3')] +function mbereg(string $pattern, string $string, array &$registers) {} + +/** + * @param string $pattern + * @param string $string + * @param array &$registers [optional] + * @see mb_eregi + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_eregi(%parametersList%)", since: "7.3")] +function mberegi(string $pattern, string $string, array &$registers) {} + +/** + * @param $pattern + * @param $replacement + * @param $string + * @param $option [optional] + * @see mb_ereg_replace + * @removed 8.0 + */ +#[Deprecated(replacement: 'mb_ereg_replace(%parametersList%)', since: '7.3')] +function mbereg_replace($pattern, $replacement, $string, $option) {} + +/** + * @param $pattern + * @param $replacement + * @param $string + * @param string $option + * @return string + * @see mb_eregi_replace + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_eregi_replace(%parametersList%)", since: "7.3")] +function mberegi_replace( + $pattern, + $replacement, + $string, + #[PhpStormStubsElementAvailable(from: '7.0')] string $option = "msri" +): string {} + +/** + * @param $pattern + * @param $string + * @param $limit [optional] + * @see mb_split + * @removed 8.0 + */ +#[Deprecated(replacement: 'mb_split(%parametersList%)', since: '7.3')] +function mbsplit($pattern, $string, $limit) {} + +/** + * @param $pattern + * @param $string + * @param $option [optional] + * @see mb_ereg_match + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_ereg_match(%parametersList%)", since: "7.3")] +function mbereg_match($pattern, $string, $option) {} + +/** + * @param $pattern [optional] + * @param $option [optional] + * @see mb_ereg_search + * @removed 8.0 + */ +#[Deprecated("use mb_ereg_search instead", replacement: "mb_ereg_search(%parametersList%)", since: "7.3")] +function mbereg_search($pattern, $option) {} + +/** + * @param $pattern [optional] + * @param $option [optional] + * @see mb_ereg_search_pos + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_ereg_search_pos(%parametersList%)", since: "7.3")] +function mbereg_search_pos($pattern, $option) {} + +/** + * @param $pattern [optional] + * @param $option [optional] + * @see mb_ereg_search_regs + * @removed 8.0 + */ +#[Deprecated(replacement: 'mb_ereg_search_regs(%parametersList%)', since: '7.3')] +function mbereg_search_regs($pattern, $option) {} + +/** + * @param $string + * @param $pattern [optional] + * @param $option [optional] + * @see mb_ereg_search_init + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_ereg_search_init(%parametersList%)", since: "7.3")] +function mbereg_search_init($string, $pattern, $option) {} + +/** + * @see mb_ereg_search_getregs + * @removed 8.0 + */ +#[Deprecated(replacement: 'mb_ereg_search_getregs(%parametersList%)', since: '7.3')] +function mbereg_search_getregs() {} + +/** + * @see mb_ereg_search_getpos + * @removed 8.0 + */ +#[Deprecated(replacement: "mb_ereg_search_getpos()", since: "7.3")] +function mbereg_search_getpos() {} + +/** + * Get a specific character. + * @link https://www.php.net/manual/en/function.mb-chr.php + * @param int $codepoint + * @param string|null $encoding [optional] + * @return string|false specific character or FALSE on failure. + * @since 7.2 + */ +#[Pure] +function mb_chr(int $codepoint, ?string $encoding): string|false {} + +/** + * Get code point of character + * @link https://www.php.net/manual/en/function.mb-ord.php + * @param string $string + * @param string|null $encoding [optional] + * @return int|false code point of character or FALSE on failure. + * @since 7.2 + */ +#[Pure] +function mb_ord(string $string, ?string $encoding): int|false {} + +/** + * Scrub broken multibyte strings. + * @link https://www.php.net/manual/en/function.mb-scrub.php + * @param string $string + * @param string|null $encoding [optional] + * @return string|false + * @since 7.2 + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function mb_scrub(string $string, ?string $encoding): false|string {} + +/** + * @param $position + * @see mb_ereg_search_setpos + */ +#[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+ * The string to split into characters or chunks. + *
+ * @param int $length [optional]+ * If specified, each element of the returned array will be composed of multiple characters instead of a single character. + *
+ * @param string|null $encoding [optional]+ * Character encoding name to use. + * If it is omitted, internal character encoding is used. + *
+ * @return string[]|false + * @since 7.4 + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")] +function mb_str_split(string $string, int $length = 1, ?string $encoding) {} + +/** + * @since 8.3 + */ +function mb_str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT, ?string $encoding = null): string {} + +/** + * @removed 8.0 + */ +define('MB_OVERLOAD_MAIL', 1); +/** + * @removed 8.0 + */ +define('MB_OVERLOAD_STRING', 2); +/** + * @removed 8.0 + */ +define('MB_OVERLOAD_REGEX', 4); +define('MB_CASE_UPPER', 0); +define('MB_CASE_LOWER', 1); +define('MB_CASE_TITLE', 2); +/** + * @since 7.3 + */ +define('MB_CASE_FOLD', 3); +/** + * @since 7.3 + */ +define('MB_CASE_UPPER_SIMPLE', 4); +/** + * @since 7.3 + */ +define('MB_CASE_LOWER_SIMPLE', 5); +/** + * @since 7.3 + */ +define('MB_CASE_TITLE_SIMPLE', 6); +/** + * @since 7.3 + */ +define('MB_CASE_FOLD_SIMPLE', 7); + +/** + * @since 7.4 + */ +define('MB_ONIGURUMA_VERSION', '6.9.9'); + +// End of mbstring v. diff --git a/phpstorm-stubs/mcrypt/mcrypt.php b/phpstorm-stubs/mcrypt/mcrypt.php new file mode 100644 index 0000000..a00237b --- /dev/null +++ b/phpstorm-stubs/mcrypt/mcrypt.php @@ -0,0 +1,877 @@ + + * One of the MCRYPT_ciphername constants or the name + * of the algorithm as string. + * + * @param string $module+ * One of the MCRYPT_MODE_modename constants, or one of the following strings: "ecb", "cbc", "cfb", "ofb", "nofb" or "stream".
+ * @return int Gets the block size, as an integer. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_get_block_size($cipher, $module) {} + +/** + * Get the name of the specified cipher + * @link https://php.net/manual/en/function.mcrypt-get-cipher-name.php + * @param int|string $cipher+ * One of the MCRYPT_ciphername constants or the name + * of the algorithm as string. + *
+ * @return string|false This function returns the name of the cipher or false, if the cipher does + * not exist. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_get_cipher_name($cipher) {} + +/** + * Creates an initialization vector (IV) from a random source + * @link https://php.net/manual/en/function.mcrypt-create-iv.php + * @param int $size+ * Determines the size of the IV, parameter source + * (defaults to random value) specifies the source of the IV. + *
+ * @param int $source [optional]+ * The source can be MCRYPT_RAND (system random + * number generator), MCRYPT_DEV_RANDOM (read + * data from /dev/random) and + * MCRYPT_DEV_URANDOM (read data from + * /dev/urandom). MCRYPT_RAND + * is the only one supported on Windows because Windows (of course) + * doesn't have /dev/random or + * /dev/urandom. + *
+ *+ * When using MCRYPT_RAND, remember to call + * srand before + * mcrypt_create_iv to initialize the random + * number generator; it is not seeded automatically like + * rand is. + *
+ * @return string|false the initialization vector, or false on error. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_create_iv($size, $source = MCRYPT_DEV_URANDOM) {} + +/** + * Gets an array of all supported ciphers + * @link https://php.net/manual/en/function.mcrypt-list-algorithms.php + * @param string $lib_dir [optional]+ * Specifies the directory where all algorithms are located. If not + * specifies, the value of the mcrypt.algorithms_dir (php.ini) directive + * is used. + *
+ * @return array an array with all the supported algorithms. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_list_algorithms($lib_dir = null) {} + +/** + * Gets an array of all supported modes + * @link https://php.net/manual/en/function.mcrypt-list-modes.php + * @param string $lib_dir [optional]+ * Specifies the directory where all modes are located. If not + * specifies, the value of the mcrypt.modes_dir + * (php.ini) directive is used. + *
+ * @return array an array with all the supported modes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_list_modes($lib_dir = null) {} + +/** + * Returns the size of the IV belonging to a specific cipher/mode combination + * @link https://php.net/manual/en/function.mcrypt-get-iv-size.php + * @param string $cipher+ * One of the MCRYPT_ciphername constants of the name + * of the algorithm as string. + *
+ * @param string $module+ * mode is one of the MCRYPT_MODE_modename constants + * or one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". The IV is + * ignored in ECB mode as this mode does not require it. You will need to + * have the same IV (think: starting point) both at encryption and + * decryption stages, otherwise your encryption will fail. + *
+ * @return int|false the size of the Initialisation Vector (IV) in bytes. On error the + * function returns false. If the IV is ignored in the specified cipher/mode + * combination zero is returned. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_get_iv_size($cipher, $module) {} + +/** + * Encrypts plaintext with given parameters + * @link https://php.net/manual/en/function.mcrypt-encrypt.php + * @param string $cipher+ * One of the MCRYPT_ciphername + * constants of the name of the algorithm as string. + *
+ * @param string $key+ * The key with which the data will be encrypted. If it's smaller that + * the required keysize, it is padded with '\0'. It is + * better not to use ASCII strings for keys. + *
+ *+ * It is recommended to use the mhash functions to create a key from a + * string. + *
+ * @param string $data+ * The data that will be encrypted with the given cipher and mode. If the + * size of the data is not n * blocksize, the data will be padded with + * '\0'. + *
+ *+ * The returned crypttext can be larger that the size of the data that is + * given by data. + *
+ * @param string $mode+ * One of the MCRYPT_MODE_modename + * constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or + * "stream". + *
+ * @param string $iv [optional]+ * Used for the initialisation in CBC, CFB, OFB modes, and in some + * algorithms in STREAM mode. If you do not supply an IV, while it is + * needed for an algorithm, the function issues a warning and uses an + * IV with all bytes set to '\0'. + *
+ * @return string the encrypted data, as a string. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_encrypt($cipher, $key, $data, $mode, $iv = null) {} + +/** + * Decrypts crypttext with given parameters + * @link https://php.net/manual/en/function.mcrypt-decrypt.php + * @param string $cipher+ * cipher is one of the MCRYPT_ciphername constants + * of the name of the algorithm as string. + *
+ * @param string $key+ * key is the key with which the data is encrypted. + * If it's smaller that the required keysize, it is padded with + * '\0'. + *
+ * @param string $data+ * data is the data that will be decrypted with + * the given cipher and mode. If the size of the data is not n * blocksize, + * the data will be padded with '\0'. + *
+ * @param string $mode+ * mode is one of the MCRYPT_MODE_modename + * constants of one of "ecb", "cbc", "cfb", "ofb", "nofb" or "stream". + *
+ * @param string $iv [optional]+ * The iv parameter is used for the initialisation + * in CBC, CFB, OFB modes, and in some algorithms in STREAM mode. If you + * do not supply an IV, while it is needed for an algorithm, the function + * issues a warning and uses an IV with all bytes set to + * '\0'. + *
+ * @return string the decrypted data as a string. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_decrypt($cipher, $key, $data, $mode, $iv = null) {} + +/** + * Opens the module of the algorithm and the mode to be used + * @link https://php.net/manual/en/function.mcrypt-module-open.php + * @param string $cipher+ * The algorithm to be used. + *
+ * @param string $cipher_directory+ * The algorithm_directory and + * mode_directory are used to locate the encryption + * modules. When you supply a directory name, it is used. When you set one + * of these to the empty string (""), the value set by + * the mcrypt.algorithms_dir or + * mcrypt.modes_dir ini-directive is used. When + * these are not set, the default directories that are used are the ones + * that were compiled in into libmcrypt (usually + * /usr/local/lib/libmcrypt). + *
+ * @param string $mode+ * The mode to be used. + *
+ * @param string $mode_directory+ *
+ * @return resource|false Normally it returns an encryption descriptor, or false on error. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_open($cipher, $cipher_directory, $mode, $mode_directory) {} + +/** + * This function initializes all buffers needed for encryption + * @link https://php.net/manual/en/function.mcrypt-generic-init.php + * @param resource $td+ * The encryption descriptor. + *
+ * @param string $key+ * The maximum length of the key should be the one obtained by calling + * mcrypt_enc_get_key_size and every value smaller + * than this is legal. + *
+ * @param string $iv+ * The IV should normally have the size of the algorithms block size, but + * you must obtain the size by calling + * mcrypt_enc_get_iv_size. IV is ignored in ECB. IV + * MUST exist in CFB, CBC, STREAM, nOFB and OFB modes. It needs to be + * random and unique (but not secret). The same IV must be used for + * encryption/decryption. If you do not want to use it you should set it + * to zeros, but this is not recommended. + *
+ * @return int|false The function returns a negative value on error, -3 when the key length + * was incorrect, -4 when there was a memory allocation problem and any + * other return value is an unknown error. If an error occurs a warning will + * be displayed accordingly. false is returned if incorrect parameters + * were passed. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_generic_init($td, $key, $iv) {} + +/** + * This function encrypts data + * @link https://php.net/manual/en/function.mcrypt-generic.php + * @param resource $td+ * The encryption descriptor. + *
+ *+ * The encryption handle should always be initialized with + * mcrypt_generic_init with a key and an IV before + * calling this function. Where the encryption is done, you should free the + * encryption buffers by calling mcrypt_generic_deinit. + * See mcrypt_module_open for an example. + *
+ * @param string $data+ * The data to encrypt. + *
+ * @return string the encrypted data. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_generic($td, $data) {} + +/** + * Decrypts data + * @link https://php.net/manual/en/function.mdecrypt-generic.php + * @param resource $td+ * An encryption descriptor returned by + * mcrypt_module_open + *
+ * @param string $data+ * Encrypted data. + *
+ * @return string + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mdecrypt_generic($td, $data) {} + +/** + * This function terminates encryption + * @link https://php.net/manual/en/function.mcrypt-generic-end.php + * @param resource $td + * @return bool + * @removed 7.0 + */ +#[Deprecated(since: '5.3')] +function mcrypt_generic_end($td) {} + +/** + * This function deinitializes an encryption module + * @link https://php.net/manual/en/function.mcrypt-generic-deinit.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return bool true on success or false on failure. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_generic_deinit($td) {} + +/** + * Runs a self test on the opened module + * @link https://php.net/manual/en/function.mcrypt-enc-self-test.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return int Returns 0 on success and a negative integer on failure + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_self_test($td) {} + +/** + * Checks whether the encryption of the opened mode works on blocks + * @link https://php.net/manual/en/function.mcrypt-enc-is-block-algorithm-mode.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return bool true if the mode is for use with block algorithms, otherwise it + * returns false. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_is_block_algorithm_mode($td) {} + +/** + * Checks whether the algorithm of the opened mode is a block algorithm + * @link https://php.net/manual/en/function.mcrypt-enc-is-block-algorithm.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return bool true if the algorithm is a block algorithm or false if it is + * a stream one. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_is_block_algorithm($td) {} + +/** + * Checks whether the opened mode outputs blocks + * @link https://php.net/manual/en/function.mcrypt-enc-is-block-mode.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return bool true if the mode outputs blocks of bytes or false if it outputs bytes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_is_block_mode($td) {} + +/** + * Returns the blocksize of the opened algorithm + * @link https://php.net/manual/en/function.mcrypt-enc-get-block-size.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return int the block size of the specified algorithm in bytes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_block_size($td) {} + +/** + * Returns the maximum supported keysize of the opened mode + * @link https://php.net/manual/en/function.mcrypt-enc-get-key-size.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return int the maximum supported key size of the algorithm in bytes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_key_size($td) {} + +/** + * Returns an array with the supported keysizes of the opened algorithm + * @link https://php.net/manual/en/function.mcrypt-enc-get-supported-key-sizes.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return array an array with the key sizes supported by the algorithm + * specified by the encryption descriptor. If it returns an empty + * array then all key sizes between 1 and + * mcrypt_enc_get_key_size are supported by the + * algorithm. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_supported_key_sizes($td) {} + +/** + * Returns the size of the IV of the opened algorithm + * @link https://php.net/manual/en/function.mcrypt-enc-get-iv-size.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return int the size of the IV, or 0 if the IV is ignored in the algorithm. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_iv_size($td) {} + +/** + * Returns the name of the opened algorithm + * @link https://php.net/manual/en/function.mcrypt-enc-get-algorithms-name.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return string the name of the opened algorithm as a string. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_algorithms_name($td) {} + +/** + * Returns the name of the opened mode + * @link https://php.net/manual/en/function.mcrypt-enc-get-modes-name.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return string the name as a string. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_enc_get_modes_name($td) {} + +/** + * This function runs a self test on the specified module + * @link https://php.net/manual/en/function.mcrypt-module-self-test.php + * @param string $algorithm+ * One of the MCRYPT_ciphername constants, or the name of the algorithm as string. + *
+ * @param string $lib_dir [optional]+ * The optional lib_dir parameter can contain the + * location of where the algorithm module is on the system. + *
+ * @return bool The function returns true if the self test succeeds, or false when if + * fails. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_self_test($algorithm, $lib_dir = null) {} + +/** + * Returns if the specified module is a block algorithm or not + * @link https://php.net/manual/en/function.mcrypt-module-is-block-algorithm-mode.php + * @param string $mode+ * The mode to check. + *
+ * @param string $lib_dir [optional]+ * The optional lib_dir parameter can contain the + * location of where the algorithm module is on the system. + *
+ * @return bool This function returns true if the mode is for use with block + * algorithms, otherwise it returns false. (e.g. false for stream, and + * true for cbc, cfb, ofb). + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_is_block_algorithm_mode($mode, $lib_dir = null) {} + +/** + * This function checks whether the specified algorithm is a block algorithm + * @link https://php.net/manual/en/function.mcrypt-module-is-block-algorithm.php + * @param string $algorithm+ * The algorithm to check. + *
+ * @param string $lib_dir [optional]+ * The optional lib_dir parameter can contain the + * location of where the algorithm module is on the system. + *
+ * @return bool This function returns true if the specified algorithm is a block + * algorithm, or false is it is a stream algorithm. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_is_block_algorithm($algorithm, $lib_dir = null) {} + +/** + * Returns if the specified mode outputs blocks or not + * @link https://php.net/manual/en/function.mcrypt-module-is-block-mode.php + * @param string $mode+ * The mode to check. + *
+ * @param string $lib_dir [optional]+ * The optional lib_dir parameter can contain the + * location of where the algorithm module is on the system. + *
+ * @return bool This function returns true if the mode outputs blocks of bytes or + * false if it outputs just bytes. (e.g. true for cbc and ecb, and + * false for cfb and stream). + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_is_block_mode($mode, $lib_dir = null) {} + +/** + * Returns the blocksize of the specified algorithm + * @link https://php.net/manual/en/function.mcrypt-module-get-algo-block-size.php + * @param string $algorithm+ * The algorithm name. + *
+ * @param string $lib_dir [optional]+ * This optional parameter can contain the location where the mode module + * is on the system. + *
+ * @return int the block size of the algorithm specified in bytes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_get_algo_block_size($algorithm, $lib_dir = null) {} + +/** + * Returns the maximum supported keysize of the opened mode + * @link https://php.net/manual/en/function.mcrypt-module-get-algo-key-size.php + * @param string $algorithm+ * The algorithm name. + *
+ * @param string $lib_dir [optional]+ * This optional parameter can contain the location where the mode module + * is on the system. + *
+ * @return int This function returns the maximum supported key size of the + * algorithm specified in bytes. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_get_algo_key_size($algorithm, $lib_dir = null) {} + +/** + * Returns an array with the supported keysizes of the opened algorithm + * @link https://php.net/manual/en/function.mcrypt-module-get-supported-key-sizes.php + * @param string $algorithm+ * The algorithm to used. + *
+ * @param string $lib_dir [optional]+ * The optional lib_dir parameter can contain the + * location of where the algorithm module is on the system. + *
+ * @return array an array with the key sizes supported by the specified algorithm. + * If it returns an empty array then all key sizes between 1 and + * mcrypt_module_get_algo_key_size are supported by the + * algorithm. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_get_supported_key_sizes($algorithm, $lib_dir = null) {} + +/** + * Closes the mcrypt module + * @link https://php.net/manual/en/function.mcrypt-module-close.php + * @param resource $td+ * The encryption descriptor. + *
+ * @return bool true on success or false on failure. + * @removed 7.2 + */ +#[Deprecated(since: '7.1')] +function mcrypt_module_close($td) {} + +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_ENCRYPT', 0); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_DECRYPT', 1); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_DEV_RANDOM', 0); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_DEV_URANDOM', 1); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RAND', 2); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_3DES', "tripledes"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_ARCFOUR_IV', "arcfour-iv"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_ARCFOUR', "arcfour"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_BLOWFISH', "blowfish"); +define('MCRYPT_BLOWFISH_COMPAT', "blowfish-compat"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_CAST_128', "cast-128"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_CAST_256', "cast-256"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_CRYPT', "crypt"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_DES', "des"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_DES_COMPAT', "des-compat"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_ENIGNA', "crypt"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_GOST', "gost"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_LOKI97', "loki97"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_PANAMA', "panama"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC2', "rc2"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC4', "rc4"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RIJNDAEL_128', "rijndael-128"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RIJNDAEL_192', "rijndael-192"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RIJNDAEL_256', "rijndael-256"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SAFER64', "safer-sk64"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SAFER128', "safer-sk128"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SAFERPLUS', "saferplus"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SERPENT', "serpent"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SERPENT_128', "serpent-128"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SERPENT_192', "serpent-192"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SERPENT_256', "serpent-256"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_THREEWAY', "threeway"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_TRIPLEDES', "tripledes"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_TWOFISH', "twofish"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_WAKE', "wake"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_XTEA', "xtea"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_IDEA', "idea"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MARS', "mars"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC6', "rc6"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC6_128', "rc6-128"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC6_192', "rc6-192"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_RC6_256', "rc6-256"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_SKIPJACK', "skipjack"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_CBC', "cbc"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_CFB', "cfb"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_ECB', "ecb"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_NOFB', "nofb"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_OFB', "ofb"); +/** + * @deprecated 7.1 + * @removed 7.2 + */ +define('MCRYPT_MODE_STREAM', "stream"); + +// End of mcrypt v. diff --git a/phpstorm-stubs/memcache/memcache.php b/phpstorm-stubs/memcache/memcache.php new file mode 100644 index 0000000..d4e389c --- /dev/null +++ b/phpstorm-stubs/memcache/memcache.php @@ -0,0 +1,452 @@ + + * Open memcached server connection + * @link https://php.net/manual/en/memcache.connect.php + * @param string $host+ * Point to the host where memcached is listening for connections. This parameter + * may also specify other transports like unix:///path/to/memcached.sock + * to use UNIX domain sockets, in this case port must also + * be set to 0. + *
+ * @param int $port [optional]+ * Point to the port where memcached is listening for connections. Set this + * parameter to 0 when using UNIX domain sockets. + *
+ *+ * Please note: port defaults to + * {@link https://php.net/manual/en/memcache.ini.php#ini.memcache.default-port memcache.default_port} + * if not specified. For this reason it is wise to specify the port + * explicitly in this method call. + *
+ * @param int $timeout [optional]Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow.
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ + public function connect($host, $port, $timeout = 1) {} + + /** + * (PECL memcache >= 2.0.0)+ * Point to the host where memcached is listening for connections. This parameter + * may also specify other transports like unix:///path/to/memcached.sock + * to use UNIX domain sockets, in this case port must also + * be set to 0. + *
+ * @param int $port [optional]+ * Point to the port where memcached is listening for connections. + * Set this + * parameter to 0 when using UNIX domain sockets. + *
+ *+ * Please note: port defaults to + * memcache.default_port + * if not specified. For this reason it is wise to specify the port + * explicitly in this method call. + *
+ * @param bool $persistent [optional]+ * Controls the use of a persistent connection. Default to TRUE. + *
+ * @param int $weight [optional]+ * Number of buckets to create for this server which in turn control its + * probability of it being selected. The probability is relative to the + * total weight of all servers. + *
+ * @param int $timeout [optional]+ * Value in seconds which will be used for connecting to the daemon. Think + * twice before changing the default value of 1 second - you can lose all + * the advantages of caching if your connection is too slow. + *
+ * @param int $retry_interval [optional]+ * Controls how often a failed server will be retried, the default value + * is 15 seconds. Setting this parameter to -1 disables automatic retry. + * Neither this nor the persistent parameter has any + * effect when the extension is loaded dynamically via dl. + *
+ *+ * Each failed connection struct has its own timeout and before it has expired + * the struct will be skipped when selecting backends to serve a request. Once + * expired the connection will be successfully reconnected or marked as failed + * for another retry_interval seconds. The typical + * effect is that each web server child will retry the connection about every + * retry_interval seconds when serving a page. + *
+ * @param bool $status [optional]+ * Controls if the server should be flagged as online. Setting this parameter + * to FALSE and retry_interval to -1 allows a failed + * server to be kept in the pool so as not to affect the key distribution + * algorithm. Requests for this server will then failover or fail immediately + * depending on the memcache.allow_failover setting. + * Default to TRUE, meaning the server should be considered online. + *
+ * @param callable $failure_callback [optional]+ * Allows the user to specify a callback function to run upon encountering an + * error. The callback is run before failover is attempted. The function takes + * two parameters, the hostname and port of the failed server. + *
+ * @param int $timeoutms [optional]+ *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function addServer($host, $port = 11211, $persistent = true, $weight = null, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null, $timeoutms = null) {} + + /** + * (PECL memcache >= 2.1.0)Point to the host where memcached is listening for connections.
. + * @param int $port [optional]+ * Point to the port where memcached is listening for connections. + *
+ * @param int $timeout [optional]+ * Value in seconds which will be used for connecting to the daemon. Think twice before changing the default value of 1 second - you can lose all the advantages of caching if your connection is too slow. + *
+ * @param int $retry_interval [optional]+ * Controls how often a failed server will be retried, the default value + * is 15 seconds. Setting this parameter to -1 disables automatic retry. + * Neither this nor the persistent parameter has any + * effect when the extension is loaded dynamically via {@link https://secure.php.net/manual/en/function.dl.php dl()}. + *
+ * @param bool $status [optional]+ * Controls if the server should be flagged as online. Setting this parameter + * to FALSE and retry_interval to -1 allows a failed + * server to be kept in the pool so as not to affect the key distribution + * algorithm. Requests for this server will then failover or fail immediately + * depending on the memcache.allow_failover setting. + * Default to TRUE, meaning the server should be considered online. + *
+ * @param callable $failure_callback [optional]+ * Allows the user to specify a callback function to run upon encountering an error. The callback is run before failover is attempted. + * The function takes two parameters, the hostname and port of the failed server. + *
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ + public function setServerParams($host, $port = 11211, $timeout = 1, $retry_interval = 15, $status = true, callable $failure_callback = null) {} + + public function setFailureCallback() {} + + /** + * (PECL memcache >= 2.1.0)+ * Use MEMCACHE_COMPRESSED to store the item + * compressed (uses zlib). + *
+ * @param int $expire [optional]Expiration time of the item. + * If it's equal to zero, the item will never expire. + * You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
+ * @return bool Returns TRUE on success or FALSE on failure. Returns FALSE if such key already exist. For the rest Memcache::add() behaves similarly to Memcache::set(). + */ + public function add($key, $var, $flag = null, $expire = null) {} + + /** + * (PECL memcache >= 0.2.0)The key that will be associated with the item.
+ * @param mixed $varThe variable to store. Strings and integers are stored as is, other types are stored serialized.
+ * @param int $flag [optional]Use MEMCACHE_COMPRESSED to store the item compressed (uses zlib).
+ * @param int $expire [optional]Expiration time of the item. If it's equal to zero, the item will never expire. You can also use Unix timestamp or a number of seconds starting from current time, but in the latter case the number of seconds may not exceed 2592000 (30 days).
+ * @return bool Returns TRUE on success or FALSE on failure. + */ + public function replace($key, $var, $flag = null, $expire = null) {} + + public function cas() {} + + public function append() {} + + /** + * @return string + */ + public function prepend() {} + + /** + * (PECL memcache >= 0.2.0)+ * The key or array of keys to fetch. + *
+ * @param int|array &$flags [optional]+ * If present, flags fetched along with the values will be written to this parameter. These + * flags are the same as the ones given to for example {@link https://php.net/manual/en/memcache.set.php Memcache::set()}. + * The lowest byte of the int is reserved for pecl/memcache internal usage (e.g. to indicate + * compression and serialization status). + *
+ * @return string|array|false+ * Returns the string associated with the key or + * an array of found key-value pairs when key is an {@link https://php.net/manual/en/language.types.array.php array}. + * Returns FALSE on failure, key is not found or + * key is an empty {@link https://php.net/manual/en/language.types.array.php array}. + *
+ */ + public function get($key, &$flags = null) {} + + /** + * (PECL memcache >= 0.2.0)+ * The type of statistics to fetch. + * Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. + * According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".
+ * @param int $slabid [optional]+ * Used in conjunction with type set to + * cachedump to identify the slab to dump from. The cachedump + * command ties up the server and is strictly to be used for + * debugging purposes. + *
+ * @param int $limit [optional]+ * Used in conjunction with type set to cachedump to limit the number of entries to dump. + *
+ * @return array|false Returns an associative array of server statistics or FALSE on failure. + */ + public function getStats($type = null, $slabid = null, $limit = 100) {} + + /** + * (PECL memcache >= 2.0.0)The type of statistics to fetch. Valid values are {reset, malloc, maps, cachedump, slabs, items, sizes}. According to the memcached protocol spec these additional arguments "are subject to change for the convenience of memcache developers".
+ * @param int $slabid [optional]+ * Used in conjunction with type set to + * cachedump to identify the slab to dump from. The cachedump + * command ties up the server and is strictly to be used for + * debugging purposes. + *
+ * @param int $limit Used in conjunction with type set to cachedump to limit the number of entries to dump. + * @return array|false Returns a two-dimensional associative array of server statistics or FALSE + * Returns a two-dimensional associative array of server statistics or FALSE + * on failure. + */ + public function getExtendedStats($type = null, $slabid = null, $limit = 100) {} + + /** + * (PECL memcache >= 2.0.0)Controls the minimum value length before attempting to compress automatically.
+ * @param float $min_saving [optional]Specifies the minimum amount of savings to actually store the value compressed. The supplied value must be between 0 and 1. Default value is 0.2 giving a minimum 20% compression savings.
+ * @return bool Returns TRUE on success or FALSE on failure. + */ + public function setCompressThreshold($thresold, $min_saving = 0.2) {} + + /** + * (PECL memcache >= 0.2.0)+ * Point to the host where memcached is listening for connections. This parameter + * may also specify other transports like unix:///path/to/memcached.sock + * to use UNIX domain sockets, in this case port must also + * be set to 0. + *
+ * @param int $port [optional]+ * Point to the port where memcached is listening for connections. Set this + * parameter to 0 when using UNIX domain sockets. + *
+ * @param int $timeout [optional]+ * Value in seconds which will be used for connecting to the daemon. Think + * twice before changing the default value of 1 second - you can lose all + * the advantages of caching if your connection is too slow. + *
+ * @return mixed a Memcache object or FALSE on failure. + */ + public function pconnect($host, $port, $timeout = 1) {} +} + +// string $host [, int $port [, int $timeout ]] + +/** + * (PECL memcache >= 0.2.0)+ * Point to the host where memcached is listening for connections. + * This parameter may also specify other transports like + * unix:///path/to/memcached.sock to use UNIX domain sockets, + * in this case port must also be set to 0. + *
+ * @param int $port [optional]+ * Point to the port where memcached is listening for connections. + * Set this parameter to 0 when using UNIX domain sockets. + * Note: port defaults to memcache.default_port if not specified. + * For this reason it is wise to specify the port explicitly in this method call. + *
+ * @param int $timeout [optional]+ * Value in seconds which will be used for connecting to the daemon. + *
+ * @return bool Returns TRUE on success or FALSE on failure. + */ +function memcache_connect($host, $port, $timeout = 1) {} + +/** + * (PECL memcache >= 0.4.0) + * Memcache::pconnect — Open memcached server persistent connection + * + * @link https://php.net/manual/en/memcache.pconnect.php#example-5242 + * @param string $host + * @param int|null $port + * @param int $timeout + * @return Memcache + */ +function memcache_pconnect($host, $port = null, $timeout = 1) {} + +function memcache_add_server() {} + +function memcache_set_server_params() {} + +function memcache_set_failure_callback() {} + +function memcache_get_server_status() {} + +function memcache_get_version() {} + +function memcache_add() {} + +function memcache_set() {} + +function memcache_replace() {} + +function memcache_cas() {} + +function memcache_append() {} + +function memcache_prepend() {} + +function memcache_get() {} + +function memcache_delete() {} + +/** + * (PECL memcache >= 0.2.0)+ * Turns debug output on if equals to TRUE. + * Turns debug output off if equals to FALSE. + *
+ * @return bool TRUE if PHP was built with --enable-debug option, otherwise + * returns FALSE. + */ +function memcache_debug($on_off) {} + +function memcache_get_stats() {} + +function memcache_get_extended_stats() {} + +function memcache_set_compress_threshold() {} + +function memcache_increment() {} + +function memcache_decrement() {} + +function memcache_close() {} + +function memcache_flush() {} + +define('MEMCACHE_COMPRESSED', 2); +define('MEMCACHE_USER1', 65536); +define('MEMCACHE_USER2', 131072); +define('MEMCACHE_USER3', 262144); +define('MEMCACHE_USER4', 524288); +define('MEMCACHE_HAVE_SESSION', 1); + +// End of memcache v.3.0.8 diff --git a/phpstorm-stubs/memcached/memcached.php b/phpstorm-stubs/memcached/memcached.php new file mode 100644 index 0000000..385fe6e --- /dev/null +++ b/phpstorm-stubs/memcached/memcached.php @@ -0,0 +1,1566 @@ +Enables or disables payload compression. When enabled, + * item values longer than a certain threshold (currently 100 bytes) will be + * compressed during storage and decompressed during retrieval + * transparently. + *Type: boolean, default: TRUE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_COMPRESSION = -1001; + public const OPT_COMPRESSION_TYPE = -1004; + + /** + *This can be used to create a "domain" for your item keys. The value + * specified here will be prefixed to each of the keys. It cannot be + * longer than 128 characters and will reduce the + * maximum available key size. The prefix is applied only to the item keys, + * not to the server keys.
+ *Type: string, default: "".
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_PREFIX_KEY = -1002; + + /** + *+ * Specifies the serializer to use for serializing non-scalar values. + * The valid serializers are Memcached::SERIALIZER_PHP + * or Memcached::SERIALIZER_IGBINARY. The latter is + * supported only when memcached is configured with + * --enable-memcached-igbinary option and the + * igbinary extension is loaded. + *
+ *Type: integer, default: Memcached::SERIALIZER_PHP.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_SERIALIZER = -1003; + + /** + *Indicates whether igbinary serializer support is available.
+ *Type: boolean.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HAVE_IGBINARY = false; + + /** + *Indicates whether JSON serializer support is available.
+ *Type: boolean.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HAVE_JSON = false; + + /** + *Indicates whether msgpack serializer support is available.
+ *Type: boolean.
+ * Available as of Memcached 3.0.0. + * @since 3.0.0 + * @link https://php.net/manual/en/memcached.constants.php + */ + public const HAVE_MSGPACK = false; + + /** + *Indicate whether set_encoding_key is available
+ *Type: boolean.
+ * @link https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/memcached-api.php, https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/php_memcached.c#L4387 + */ + public const HAVE_ENCODING = false; + + /** + * Feature support + */ + public const HAVE_SESSION = true; + public const HAVE_SASL = false; + + /** + *Specifies the hashing algorithm used for the item keys. The valid + * values are supplied via Memcached::HASH_* constants. + * Each hash algorithm has its advantages and its disadvantages. Go with the + * default if you don't know or don't care.
+ *Type: integer, default: Memcached::HASH_DEFAULT
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_HASH = 2; + + /** + *The default (Jenkins one-at-a-time) item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_DEFAULT = 0; + + /** + *MD5 item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_MD5 = 1; + + /** + *CRC item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_CRC = 2; + + /** + *FNV1_64 item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_FNV1_64 = 3; + + /** + *FNV1_64A item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_FNV1A_64 = 4; + + /** + *FNV1_32 item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_FNV1_32 = 5; + + /** + *FNV1_32A item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_FNV1A_32 = 6; + + /** + *Hsieh item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_HSIEH = 7; + + /** + *Murmur item key hashing algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const HASH_MURMUR = 8; + + /** + *Specifies the method of distributing item keys to the servers. + * Currently supported methods are modulo and consistent hashing. Consistent + * hashing delivers better distribution and allows servers to be added to + * the cluster with minimal cache losses.
+ *Type: integer, default: Memcached::DISTRIBUTION_MODULA.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_DISTRIBUTION = 9; + + /** + *Modulo-based key distribution algorithm.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const DISTRIBUTION_MODULA = 0; + + /** + *Consistent hashing key distribution algorithm (based on libketama).
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const DISTRIBUTION_CONSISTENT = 1; + public const DISTRIBUTION_VIRTUAL_BUCKET = 6; + + /** + *Enables or disables compatibility with libketama-like behavior. When + * enabled, the item key hashing algorithm is set to MD5 and distribution is + * set to be weighted consistent hashing distribution. This is useful + * because other libketama-based clients (Python, Ruby, etc.) with the same + * server configuration will be able to access the keys transparently. + *
+ *+ * It is highly recommended to enable this option if you want to use + * consistent hashing, and it may be enabled by default in future + * releases. + *
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_LIBKETAMA_COMPATIBLE = 16; + public const OPT_LIBKETAMA_HASH = 17; + public const OPT_TCP_KEEPALIVE = 32; + + /** + *Enables or disables buffered I/O. Enabling buffered I/O causes + * storage commands to "buffer" instead of being sent. Any action that + * retrieves data causes this buffer to be sent to the remote connection. + * Quitting the connection or closing down the connection will also cause + * the buffered data to be pushed to the remote connection.
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_BUFFER_WRITES = 10; + + /** + *Enable the use of the binary protocol. Please note that you cannot + * toggle this option on an open connection.
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_BINARY_PROTOCOL = 18; + + /** + *Enables or disables asynchronous I/O. This is the fastest transport + * available for storage functions.
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_NO_BLOCK = 0; + + /** + *Enables or disables the no-delay feature for connecting sockets (may + * be faster in some environments).
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_TCP_NODELAY = 1; + + /** + *The maximum socket send buffer in bytes.
+ *Type: integer, default: varies by platform/kernel + * configuration.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_SOCKET_SEND_SIZE = 4; + + /** + *The maximum socket receive buffer in bytes.
+ *Type: integer, default: varies by platform/kernel + * configuration.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_SOCKET_RECV_SIZE = 5; + + /** + *In non-blocking mode this set the value of the timeout during socket + * connection, in milliseconds.
+ *Type: integer, default: 1000.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_CONNECT_TIMEOUT = 14; + + /** + *The amount of time, in seconds, to wait until retrying a failed + * connection attempt.
+ *Type: integer, default: 0.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_RETRY_TIMEOUT = 15; + + /** + *Socket sending timeout, in microseconds. In cases where you cannot + * use non-blocking I/O this will allow you to still have timeouts on the + * sending of data.
+ *Type: integer, default: 0.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_SEND_TIMEOUT = 19; + + /** + *Socket reading timeout, in microseconds. In cases where you cannot + * use non-blocking I/O this will allow you to still have timeouts on the + * reading of data.
+ *Type: integer, default: 0.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_RECV_TIMEOUT = 20; + + /** + *Timeout for connection polling, in milliseconds.
+ *Type: integer, default: 1000.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_POLL_TIMEOUT = 8; + + /** + *Enables or disables caching of DNS lookups.
+ *Type: boolean, default: FALSE.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_CACHE_LOOKUPS = 6; + + /** + *Specifies the failure limit for server connection attempts. The + * server will be removed after this many continuous connection + * failures.
+ *Type: integer, default: 0.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const OPT_SERVER_FAILURE_LIMIT = 21; + public const OPT_AUTO_EJECT_HOSTS = 28; + public const OPT_HASH_WITH_PREFIX_KEY = 25; + public const OPT_NOREPLY = 26; + public const OPT_SORT_HOSTS = 12; + public const OPT_VERIFY_KEY = 13; + public const OPT_USE_UDP = 27; + public const OPT_NUMBER_OF_REPLICAS = 29; + public const OPT_RANDOMIZE_REPLICA_READ = 30; + public const OPT_CORK = 31; + public const OPT_REMOVE_FAILED_SERVERS = 35; + public const OPT_DEAD_TIMEOUT = 36; + public const OPT_SERVER_TIMEOUT_LIMIT = 37; + public const OPT_MAX = 38; + public const OPT_IO_BYTES_WATERMARK = 23; + public const OPT_IO_KEY_PREFETCH = 24; + public const OPT_IO_MSG_WATERMARK = 22; + public const OPT_LOAD_FROM_FILE = 34; + public const OPT_SUPPORT_CAS = 7; + public const OPT_TCP_KEEPIDLE = 33; + public const OPT_USER_DATA = 11; + + /** + * libmemcached result codes + */ + /** + *The operation was successful.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_SUCCESS = 0; + + /** + *The operation failed in some fashion.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_FAILURE = 1; + + /** + *DNS lookup failed.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_HOST_LOOKUP_FAILURE = 2; + + /** + *Failed to read network data.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_UNKNOWN_READ_FAILURE = 7; + + /** + *Bad command in memcached protocol.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_PROTOCOL_ERROR = 8; + + /** + *Error on the client side.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_CLIENT_ERROR = 9; + + /** + *Error on the server side.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_SERVER_ERROR = 10; + + /** + *Failed to write network data.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_WRITE_FAILURE = 5; + + /** + *Failed to do compare-and-swap: item you are trying to store has been + * modified since you last fetched it.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_DATA_EXISTS = 12; + + /** + *Item was not stored: but not because of an error. This normally + * means that either the condition for an "add" or a "replace" command + * wasn't met, or that the item is in a delete queue.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_NOTSTORED = 14; + + /** + *Item with this key was not found (with "get" operation or "cas" + * operations).
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_NOTFOUND = 16; + + /** + *Partial network data read error.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_PARTIAL_READ = 18; + + /** + *Some errors occurred during multi-get.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_SOME_ERRORS = 19; + + /** + *Server list is empty.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_NO_SERVERS = 20; + + /** + *End of result set.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_END = 21; + + /** + *System error.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_ERRNO = 26; + + /** + *The operation was buffered.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_BUFFERED = 32; + + /** + *The operation timed out.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_TIMEOUT = 31; + + /** + *Bad key.
+ * @link https://php.net/manual/en/memcached.constants.php, http://docs.libmemcached.org/index.html + */ + /** + *MEMCACHED_BAD_KEY_PROVIDED: The key provided is not a valid key.
+ */ + public const RES_BAD_KEY_PROVIDED = 33; + + /** + *MEMCACHED_STORED: The requested object has been successfully stored on the server.
+ */ + public const RES_STORED = 15; + + /** + *MEMCACHED_DELETED: The object requested by the key has been deleted.
+ */ + public const RES_DELETED = 22; + + /** + *MEMCACHED_STAT: A “stat” command has been returned in the protocol.
+ */ + public const RES_STAT = 24; + + /** + *MEMCACHED_ITEM: An item has been fetched (this is an internal error only).
+ */ + public const RES_ITEM = 25; + + /** + *MEMCACHED_NOT_SUPPORTED: The given method is not supported in the server.
+ */ + public const RES_NOT_SUPPORTED = 28; + + /** + *MEMCACHED_FETCH_NOTFINISHED: A request has been made, but the server has not finished the fetch of the last request.
+ */ + public const RES_FETCH_NOTFINISHED = 30; + + /** + *MEMCACHED_SERVER_MARKED_DEAD: The requested server has been marked dead.
+ */ + public const RES_SERVER_MARKED_DEAD = 35; + + /** + *MEMCACHED_UNKNOWN_STAT_KEY: The server you are communicating with has a stat key which has not be defined in the protocol.
+ */ + public const RES_UNKNOWN_STAT_KEY = 36; + + /** + *MEMCACHED_INVALID_HOST_PROTOCOL: The server you are connecting too has an invalid protocol. Most likely you are connecting to an older server that does not speak the binary protocol.
+ */ + public const RES_INVALID_HOST_PROTOCOL = 34; + + /** + *MEMCACHED_MEMORY_ALLOCATION_FAILURE: An error has occurred while trying to allocate memory.
+ */ + public const RES_MEMORY_ALLOCATION_FAILURE = 17; + + /** + *MEMCACHED_E2BIG: Item is too large for the server to store.
+ */ + public const RES_E2BIG = 37; + + /** + *MEMCACHED_KEY_TOO_BIG: The key that has been provided is too large for the given server.
+ */ + public const RES_KEY_TOO_BIG = 39; + + /** + *MEMCACHED_SERVER_TEMPORARILY_DISABLED
+ */ + public const RES_SERVER_TEMPORARILY_DISABLED = 47; + + /** + *MEMORY_ALLOCATION_FAILURE: An error has occurred while trying to allocate memory. + * + * #if defined(LIBMEMCACHED_VERSION_HEX) && LIBMEMCACHED_VERSION_HEX >= 0x01000008
+ */ + public const RES_SERVER_MEMORY_ALLOCATION_FAILURE = 48; + + /** + *MEMCACHED_AUTH_PROBLEM: An unknown issue has occured during authentication.
+ */ + public const RES_AUTH_PROBLEM = 40; + + /** + *MEMCACHED_AUTH_FAILURE: The credentials provided are not valid for this server.
+ */ + public const RES_AUTH_FAILURE = 41; + + /** + *MEMCACHED_AUTH_CONTINUE: Authentication has been paused.
+ */ + public const RES_AUTH_CONTINUE = 42; + + /** + *MEMCACHED_CONNECTION_FAILURE: A unknown error has occured while trying to connect to a server.
+ */ + public const RES_CONNECTION_FAILURE = 3; + + /** + * MEMCACHED_CONNECTION_BIND_FAILURE: We were not able to bind() to the socket. + */ + #[Deprecated('Deprecated since version 0.30(libmemcached)')] + public const RES_CONNECTION_BIND_FAILURE = 4; + + /** + *MEMCACHED_READ_FAILURE: A read failure has occurred.
+ */ + public const RES_READ_FAILURE = 6; + + /** + *MEMCACHED_DATA_DOES_NOT_EXIST: The data requested with the key given was not found.
+ */ + public const RES_DATA_DOES_NOT_EXIST = 13; + + /** + *MEMCACHED_VALUE: A value has been returned from the server (this is an internal condition only).
+ */ + public const RES_VALUE = 23; + + /** + *MEMCACHED_FAIL_UNIX_SOCKET: A connection was not established with the server via a unix domain socket.
+ */ + public const RES_FAIL_UNIX_SOCKET = 27; + + /** + * No key was provided. + */ + #[Deprecated('Deprecated since version 0.30 (libmemcached). Use MEMCACHED_BAD_KEY_PROVIDED instead.')] + public const RES_NO_KEY_PROVIDED = 29; + + /** + *MEMCACHED_INVALID_ARGUMENTS: The arguments supplied to the given function were not valid.
+ */ + public const RES_INVALID_ARGUMENTS = 38; + + /** + *MEMCACHED_PARSE_ERROR: An error has occurred while trying to parse the configuration string. You should use memparse to determine what the error was.
+ */ + public const RES_PARSE_ERROR = 43; + + /** + *MEMCACHED_PARSE_USER_ERROR: An error has occurred in parsing the configuration string.
+ */ + public const RES_PARSE_USER_ERROR = 44; + + /** + *MEMCACHED_DEPRECATED: The method that was requested has been deprecated.
+ */ + public const RES_DEPRECATED = 45; + + //unknow + public const RES_IN_PROGRESS = 46; + + /** + *MEMCACHED_MAXIMUM_RETURN: This in an internal only state.
+ */ + public const RES_MAXIMUM_RETURN = 49; + + /** + * Server callbacks, if compiled with --memcached-protocol + * @link https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/memcached-api.php + */ + public const ON_CONNECT = 0; + public const ON_ADD = 1; + public const ON_APPEND = 2; + public const ON_DECREMENT = 3; + public const ON_DELETE = 4; + public const ON_FLUSH = 5; + public const ON_GET = 6; + public const ON_INCREMENT = 7; + public const ON_NOOP = 8; + public const ON_PREPEND = 9; + public const ON_QUIT = 10; + public const ON_REPLACE = 11; + public const ON_SET = 12; + public const ON_STAT = 13; + public const ON_VERSION = 14; + + /** + * Constants used when compiled with --memcached-protocol + * @link https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/memcached-api.php + */ + public const RESPONSE_SUCCESS = 0; + public const RESPONSE_KEY_ENOENT = 1; + public const RESPONSE_KEY_EEXISTS = 2; + public const RESPONSE_E2BIG = 3; + public const RESPONSE_EINVAL = 4; + public const RESPONSE_NOT_STORED = 5; + public const RESPONSE_DELTA_BADVAL = 6; + public const RESPONSE_NOT_MY_VBUCKET = 7; + public const RESPONSE_AUTH_ERROR = 32; + public const RESPONSE_AUTH_CONTINUE = 33; + public const RESPONSE_UNKNOWN_COMMAND = 129; + public const RESPONSE_ENOMEM = 130; + public const RESPONSE_NOT_SUPPORTED = 131; + public const RESPONSE_EINTERNAL = 132; + public const RESPONSE_EBUSY = 133; + public const RESPONSE_ETMPFAIL = 134; + + /** + *Failed to create network socket.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_CONNECTION_SOCKET_CREATE_FAILURE = 11; + + /** + *Payload failure: could not compress/decompress or serialize/unserialize the value.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const RES_PAYLOAD_FAILURE = -1001; + + /** + *The default PHP serializer.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const SERIALIZER_PHP = 1; + + /** + *The igbinary serializer. + * Instead of textual representation it stores PHP data structures in a + * compact binary form, resulting in space and time gains.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const SERIALIZER_IGBINARY = 2; + + /** + *The JSON serializer. Requires PHP 5.2.10+.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const SERIALIZER_JSON = 3; + public const SERIALIZER_JSON_ARRAY = 4; + + /** + *The msgpack serializer.
+ * @link https://github.com/php-memcached-dev/php-memcached/blob/v3.1.5/memcached-api.php + */ + public const SERIALIZER_MSGPACK = 5; + public const COMPRESSION_FASTLZ = 2; + public const COMPRESSION_ZLIB = 1; + + /** + *A flag for Memcached::getMulti and + * Memcached::getMultiByKey to ensure that the keys are + * returned in the same order as they were requested in. Non-existing keys + * get a default value of NULL.
+ * @link https://php.net/manual/en/memcached.constants.php + */ + public const GET_PRESERVE_ORDER = 1; + + /** + * A flag for Memcached::get(), Memcached::getMulti() and + * Memcached::getMultiByKey() to ensure that the CAS token values are returned as well. + * @link https://php.net/manual/en/memcached.constants.php + * @since 3.0.0 + */ + public const GET_EXTENDED = 2; + public const GET_ERROR_RETURN_VALUE = false; + + /** + * (PECL memcached >= 0.1.0)+ * The key of the item to retrieve. + *
+ * @param callable $cache_cb [optional]+ * Read-through caching callback or NULL. + *
+ * @param int $flags [optional]+ * The flags for the get operation. + *
+ * @return mixed the value stored in the cache or FALSE otherwise. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function get($key, callable $cache_cb = null, $flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key of the item to fetch. + *
+ * @param callable $cache_cb [optional]+ * Read-through caching callback or NULL + *
+ * @param int $flags [optional]+ * The flags for the get operation. + *
+ * @return mixed the value stored in the cache or FALSE otherwise. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function getByKey($server_key, $key, callable $cache_cb = null, $flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * Array of keys to retrieve. + *
+ * @param int $flags [optional]+ * The flags for the get operation. + *
+ * @return mixed the array of found items or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function getMulti(array $keys, $flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param array $keys+ * Array of keys to retrieve. + *
+ * @param int $flags [optional]+ * The flags for the get operation. + *
+ * @return array|false the array of found items or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function getMultiByKey($server_key, array $keys, $flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * Array of keys to request. + *
+ * @param bool $with_cas [optional]+ * Whether to request CAS token values also. + *
+ * @param callable $value_cb [optional]+ * The result callback or NULL. + *
+ * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function getDelayed(array $keys, $with_cas = null, callable $value_cb = null) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param array $keys+ * Array of keys to request. + *
+ * @param bool $with_cas [optional]+ * Whether to request CAS token values also. + *
+ * @param callable $value_cb [optional]+ * The result callback or NULL. + *
+ * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function getDelayedByKey($server_key, array $keys, $with_cas = null, callable $value_cb = null) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function set($key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function setByKey($server_key, $key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The key under which to store the value. + *
+ * @param int $expiration+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function touch($key, $expiration = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param int $expiration+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function touchByKey($server_key, $key, $expiration) {} + + /** + * (PECL memcached >= 0.1.0)+ * An array of key/value pairs to store on the server. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function setMulti(array $items, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param array $items+ * An array of key/value pairs to store on the server. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function setMultiByKey($server_key, array $items, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * Unique value associated with the existing item. Generated by memcache. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_DATA_EXISTS if the item you are trying + * to store has been modified since you last fetched it. + */ + public function cas($cas_token, $key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * Unique value associated with the existing item. Generated by memcache. + *
+ * @param string $server_key+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_DATA_EXISTS if the item you are trying + * to store has been modified since you last fetched it. + */ + public function casByKey($cas_token, $server_key, $key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key already exists. + */ + public function add($key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key already exists. + */ + public function addByKey($server_key, $key, $value, $expiration = 0, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key under which to store the value. + *
+ * @param string $value+ * The string to append. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function append($key, $value) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param string $value+ * The string to append. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function appendByKey($server_key, $key, $value) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key of the item to prepend the data to. + *
+ * @param string $value+ * The string to prepend. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function prepend($key, $value) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key of the item to prepend the data to. + *
+ * @param string $value+ * The string to prepend. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function prependByKey($server_key, $key, $value) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function replace($key, $value, $expiration = null, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key under which to store the value. + *
+ * @param mixed $value+ * The value to store. + *
+ * @param int $expiration [optional]+ * The expiration time, defaults to 0. See Expiration Times for more info. + *
+ * @param int $udf_flags [optional] + * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTSTORED if the key does not exist. + */ + public function replaceByKey($server_key, $key, $value, $expiration = null, $udf_flags = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key to be deleted. + *
+ * @param int $time [optional]+ * The amount of time the server will wait to delete the item. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function delete($key, $time = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The keys to be deleted. + *
+ * @param int $time [optional]+ * The amount of time the server will wait to delete the items. + *
+ * @return array Returns array indexed by keys and where values are indicating whether operation succeeded or not. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function deleteMulti(array $keys, $time = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key to be deleted. + *
+ * @param int $time [optional]+ * The amount of time the server will wait to delete the item. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function deleteByKey($server_key, $key, $time = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param array $keys+ * The keys to be deleted. + *
+ * @param int $time [optional]+ * The amount of time the server will wait to delete the items. + *
+ * @return bool TRUE on success or FALSE on failure. + * The Memcached::getResultCode will return + * Memcached::RES_NOTFOUND if the key does not exist. + */ + public function deleteMultiByKey($server_key, array $keys, $time = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key of the item to increment. + *
+ * @param int $offset [optional]+ * The amount by which to increment the item's value. + *
+ * @param int $initial_value [optional]+ * The value to set the item to if it doesn't currently exist. + *
+ * @param int $expiry [optional]+ * The expiry time to set on the item. + *
+ * @return int|false new item's value on success or FALSE on failure. + */ + public function increment($key, $offset = 1, $initial_value = 0, $expiry = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The key of the item to decrement. + *
+ * @param int $offset [optional]+ * The amount by which to decrement the item's value. + *
+ * @param int $initial_value [optional]+ * The value to set the item to if it doesn't currently exist. + *
+ * @param int $expiry [optional]+ * The expiry time to set on the item. + *
+ * @return int|false item's new value on success or FALSE on failure. + */ + public function decrement($key, $offset = 1, $initial_value = 0, $expiry = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key of the item to increment. + *
+ * @param int $offset [optional]+ * The amount by which to increment the item's value. + *
+ * @param int $initial_value [optional]+ * The value to set the item to if it doesn't currently exist. + *
+ * @param int $expiry [optional]+ * The expiry time to set on the item. + *
+ * @return int|false new item's value on success or FALSE on failure. + */ + public function incrementByKey($server_key, $key, $offset = 1, $initial_value = 0, $expiry = 0) {} + + /** + * (PECL memcached >= 2.0.0)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @param string $key+ * The key of the item to decrement. + *
+ * @param int $offset [optional]+ * The amount by which to decrement the item's value. + *
+ * @param int $initial_value [optional]+ * The value to set the item to if it doesn't currently exist. + *
+ * @param int $expiry [optional]+ * The expiry time to set on the item. + *
+ * @return int|false item's new value on success or FALSE on failure. + */ + public function decrementByKey($server_key, $key, $offset = 1, $initial_value = 0, $expiry = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * The hostname of the memcache server. If the hostname is invalid, data-related + * operations will set + * Memcached::RES_HOST_LOOKUP_FAILURE result code. + *
+ * @param int $port+ * The port on which memcache is running. Usually, this is + * 11211. + *
+ * @param int $weight [optional]+ * The weight of the server relative to the total weight of all the + * servers in the pool. This controls the probability of the server being + * selected for operations. This is used only with consistent distribution + * option and usually corresponds to the amount of memory available to + * memcache on that server. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function addServer($host, $port, $weight = 0) {} + + /** + * (PECL memcached >= 0.1.1)+ * The key identifying the server to store the value on or retrieve it from. Instead of hashing on the actual key for the item, we hash on the server key when deciding which memcached server to talk to. This allows related items to be grouped together on a single server for efficiency with multi operations. + *
+ * @return array an array containing three keys of host, + * port, and weight on success or FALSE + * on failure. + * Use Memcached::getResultCode if necessary. + */ + public function getServerByKey($server_key) {} + + /** + * (PECL memcached >= 2.0.0)items, slabs, sizes ...
+ * @return array|false Array of server statistics, one entry per server. + */ + public function getStats($type = null) {} + + /** + * (PECL memcached >= 0.1.5)+ * Numer of seconds to wait before invalidating the items. + *
+ * @return bool TRUE on success or FALSE on failure. + * Use Memcached::getResultCode if necessary. + */ + public function flush($delay = 0) {} + + /** + * (PECL memcached >= 0.1.0)+ * One of the Memcached::OPT_* constants. + *
+ * @return mixed the value of the requested option, or FALSE on + * error. + */ + public function getOption($option) {} + + /** + * (PECL memcached >= 0.1.0)+ * An associative array of options where the key is the option to set and + * the value is the new value for the option. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function setOptions(array $options) {} + + /** + * (PECL memcached >= 2.0.0)+ * The username to use for authentication. + *
+ * @param string $password+ * The password to use for authentication. + *
+ * @return void + */ + public function setSaslAuthData(string $username, string $password) {} + + /** + * (PECL memcached >= 2.0.0)"age" and "name", and the corresponding types are "int" and "string".
+ */
+#[Attribute(Attribute::TARGET_FUNCTION|Attribute::TARGET_METHOD|Attribute::TARGET_PARAMETER|Attribute::TARGET_PROPERTY)]
+class ObjectShape
+{
+ public function __construct(array $shape) {}
+}
diff --git a/phpstorm-stubs/meta/attributes/Pure.php b/phpstorm-stubs/meta/attributes/Pure.php
new file mode 100644
index 0000000..6450bcd
--- /dev/null
+++ b/phpstorm-stubs/meta/attributes/Pure.php
@@ -0,0 +1,20 @@
+ "@"]));
+override(\Mockery::spy(0), map(["" => "@"]));
+override(\Mockery::namedMock(0), map(["" => "@"]));
+override(\Mockery::instanceMock(0), map(["" => "@"]));
+override(\mock(0), map(["" => "@"]));
+override(\spy(0), map(["" => "@"]));
+override(\namedMock(0), map(["" => "@"]));
\ No newline at end of file
diff --git a/phpstorm-stubs/meta/phpunit/.phpstorm.meta.php b/phpstorm-stubs/meta/phpunit/.phpstorm.meta.php
new file mode 100644
index 0000000..4e08f95
--- /dev/null
+++ b/phpstorm-stubs/meta/phpunit/.phpstorm.meta.php
@@ -0,0 +1,73 @@
+ "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::createStub(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::createConfiguredMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::createPartialMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::createTestProxy(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::getMockForAbstractClass(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit\Framework\TestCase::getMockForTrait(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::createMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::createConfiguredMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::createPartialMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::getMockForAbstractClass(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::getMock(0),
+ map(["" => "$0"])
+ );
+
+ override(
+ \PHPUnit_Framework_TestCase::getMockWithoutInvokingTheOriginalConstructor(0),
+ map(["" => "$0"])
+ );
+}
diff --git a/phpstorm-stubs/meta/psr/log/.phpstorm.meta.php b/phpstorm-stubs/meta/psr/log/.phpstorm.meta.php
new file mode 100644
index 0000000..054240a
--- /dev/null
+++ b/phpstorm-stubs/meta/psr/log/.phpstorm.meta.php
@@ -0,0 +1,5 @@
+
+ * The Threshold. Lower is more accurate, hence larger file size.
+ *
+ * @return void
+ */
+function ming_setcubicthreshold($threshold) {}
+
+/**
+ * Set the global scaling factor.
+ * @link https://php.net/manual/en/function.ming-setscale.php
+ * @param float $scale + * The scale to be set. + *
+ * @return void + */ +function ming_setscale($scale) {} + +/** + * Sets the SWF version + * @link https://php.net/manual/en/function.ming-useswfversion.php + * @param int $version+ * SWF version to use. + *
+ * @return void + */ +function ming_useswfversion($version) {} + +/** + * Returns the action flag for keyPress(char) + * @link https://php.net/manual/en/function.ming-keypress.php + * @param string $char + * @return int What the function returns, first on success, then on failure. See + * also the &return.success; entity + */ +function ming_keypress($char) {} + +/** + * Use constant pool + * @link https://php.net/manual/en/function.ming-useconstants.php + * @param int $use+ * Its description + *
+ * @return void + */ +function ming_useconstants($use) {} + +/** + * Sets the SWF output compression + * @link https://php.net/manual/en/function.ming-setswfcompression.php + * @param int $level+ * The new compression level. Should be a value between 1 and 9 + * inclusive. + *
+ * @return void + */ +function ming_setswfcompression($level) {} + +define('MING_NEW', 1); +define('MING_ZLIB', 1); +define('SWFBUTTON_HIT', 8); +define('SWFBUTTON_DOWN', 4); +define('SWFBUTTON_OVER', 2); +define('SWFBUTTON_UP', 1); +define('SWFBUTTON_MOUSEUPOUTSIDE', 64); +define('SWFBUTTON_DRAGOVER', 160); +define('SWFBUTTON_DRAGOUT', 272); +define('SWFBUTTON_MOUSEUP', 8); +define('SWFBUTTON_MOUSEDOWN', 4); +define('SWFBUTTON_MOUSEOUT', 2); +define('SWFBUTTON_MOUSEOVER', 1); +define('SWFFILL_RADIAL_GRADIENT', 18); +define('SWFFILL_LINEAR_GRADIENT', 16); +define('SWFFILL_TILED_BITMAP', 64); +define('SWFFILL_CLIPPED_BITMAP', 65); +define('SWFTEXTFIELD_HASLENGTH', 2); +define('SWFTEXTFIELD_NOEDIT', 8); +define('SWFTEXTFIELD_PASSWORD', 16); +define('SWFTEXTFIELD_MULTILINE', 32); +define('SWFTEXTFIELD_WORDWRAP', 64); +define('SWFTEXTFIELD_DRAWBOX', 2048); +define('SWFTEXTFIELD_NOSELECT', 4096); +define('SWFTEXTFIELD_HTML', 512); +define('SWFTEXTFIELD_USEFONT', 256); +define('SWFTEXTFIELD_AUTOSIZE', 16384); +define('SWFTEXTFIELD_ALIGN_LEFT', 0); +define('SWFTEXTFIELD_ALIGN_RIGHT', 1); +define('SWFTEXTFIELD_ALIGN_CENTER', 2); +define('SWFTEXTFIELD_ALIGN_JUSTIFY', 3); +define('SWFACTION_ONLOAD', 1); +define('SWFACTION_ENTERFRAME', 2); +define('SWFACTION_UNLOAD', 4); +define('SWFACTION_MOUSEMOVE', 8); +define('SWFACTION_MOUSEDOWN', 16); +define('SWFACTION_MOUSEUP', 32); +define('SWFACTION_KEYDOWN', 64); +define('SWFACTION_KEYUP', 128); +define('SWFACTION_DATA', 256); +define('SWF_SOUND_NOT_COMPRESSED', 0); +define('SWF_SOUND_ADPCM_COMPRESSED', 16); +define('SWF_SOUND_MP3_COMPRESSED', 32); +define('SWF_SOUND_NOT_COMPRESSED_LE', 48); +define('SWF_SOUND_NELLY_COMPRESSED', 96); +define('SWF_SOUND_5KHZ', 0); +define('SWF_SOUND_11KHZ', 4); +define('SWF_SOUND_22KHZ', 8); +define('SWF_SOUND_44KHZ', 12); +define('SWF_SOUND_8BITS', 0); +define('SWF_SOUND_16BITS', 2); +define('SWF_SOUND_MONO', 0); +define('SWF_SOUND_STEREO', 1); + +// End of ming v. diff --git a/phpstorm-stubs/mongo/mongo.php b/phpstorm-stubs/mongo/mongo.php new file mode 100644 index 0000000..49a274f --- /dev/null +++ b/phpstorm-stubs/mongo/mongo.php @@ -0,0 +1,2640 @@ + + * An array of options for the MongoDB driver. Options include setting + * connection {@link https://php.net/manual/en/mongo.connecting.ssl.php#mongo.connecting.context.ssl context options for SSL} + * or {@link https://php.net/manual/en/context.mongodb.php logging callbacks}. + *+ * "context" + *
+ *+ * The Stream Context to attach to all new connections. This allows you + * for example to configure SSL certificates and are described at + * {@link https://php.net/manual/en/context.ssl.php SSL context options}. See the + * {@link https://php.net/manual/en/mongo.connecting.ssl.php#mongo.connecting.context.ssl Connecting over SSL} tutorial. + *
+ *+ * If connection is not given, or FALSE then connection that would be selected for writes would be closed. In a single-node configuration, that is then the whole connection, but if you are connected to a replica set, close() will only close the connection to the primary server. + * If connection is TRUE then all connections as known by the connection manager will be closed. This can include connections that are not referenced in the connection string used to create the object that you are calling close on. + * If connection is a string argument, then it will only close the connection identified by this hash. Hashes are identifiers for a connection and can be obtained by calling {@see MongoClient::getConnections()}. + *
+ * @return bool If the connection was successfully closed. + */ + public function close($connection) {} + + /** + * Connects to a database server + * + * @link https://secure.php.net/manual/en/mongoclient.connect.php + * + * @throws MongoConnectionException + * @return bool If the connection was successful. + */ + public function connect() {} + + /** + * Drops a database + * + * @link https://secure.php.net/manual/en/mongoclient.dropdb.php + * @param mixed $db The database to drop. Can be a MongoDB object or the name of the database. + * @return array The database response. + */ + #[Deprecated(replacement: "%class%->drop()")] + public function dropDB($db) {} + + /** + * (PECL mongo >= 1.3.0)This function returns an array describing the write concern. + * The array contains the values w for an integer acknowledgement level or string mode, + * and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.
+ */ + public function getWriteConcern() {} + + /** + * Kills a specific cursor on the server + * @link https://secure.php.net/manual/en/mongoclient.killcursor.php + * @param string $server_hash+ * The server hash that has the cursor. This can be obtained through + * {@link https://secure.php.net/manual/en/mongocursor.info.php MongoCursor::info()}. + *
+ * @param int|MongoInt64 $id + *+ * The ID of the cursor to kill. You can either supply an {@link https://secure.php.net/manual/en/language.types.integer.php int} + * containing the 64 bit cursor ID, or an object of the + * {@link https://secure.php.net/manual/en/class.mongoint64.php MongoInt64} class. The latter is necessary on 32 + * bit platforms (and Windows). + *
+ */ + public function killCursor($server_hash, $id) {} + + /** + * (PECL mongo >= 1.3.0)The address of the secondary this connection is using for reads. + *
+ *+ * This returns NULL if this is not connected to a replica set or not yet + * initialized. + *
+ */ + public function getSlave() {} + + /** + * (PECL mongo >= 1.1.0)in use
+ *The number of connections currently being used by MongoClient instances. + * in pool + * The number of connections currently in the pool (not being used).
+ *remaining
+ * + *The number of connections that could be created by this pool. For example, suppose a pool had 5 connections remaining and 3 connections in the pool. We could create 8 new instances of MongoClient before we exhausted this pool (assuming no instances of MongoClient went out of scope, returning their connections to the pool). + * + * A negative number means that this pool will spawn unlimited connections. + * + * Before a pool is created, you can change the max number of connections by calling Mongo::setPoolSize(). Once a pool is showing up in the output of this function, its size cannot be changed.
+ *timeout
+ * + *The socket timeout for connections in this pool. This is how long connections in this pool will attempt to connect to a server before giving up.
+ * @see MongoPool::info() + */ + #[Deprecated('@deprecated This feature has been DEPRECATED as of version 1.2.3. Relying on this feature is highly discouraged. Please use MongoPool::info() instead.')] + public function poolDebug() {} + + /** + * (PECL mongo >= 1.1.0)+ * If reads should be sent to secondary members of a replica set for all + * possible queries using this {@see MongoClient} instance. + *
+ * @return bool returns the former value of slaveOkay for this instance. + */ + public function setSlaveOkay($ok) {} + + /** + *(PECL mongo >= 1.2.0)The max number of connections future pools will be able to create. Negative numbers mean that the pool will spawn an infinite number of connections.
+ * @return bool Returns the former value of pool size. + * @see MongoPool::setSize() + */ + #[Deprecated('Relying on this feature is highly discouraged. Please use MongoPool::setSize() instead.')] + public function setPoolSize($size) {} + + /** + * Creates a persistent connection with a database server + * @link https://secure.php.net/manual/en/mongo.persistconnect.php + * @param string $username A username used to identify the connection. + * @param string $password A password used to identify the connection. + * @throws MongoConnectionException + * @return bool If the connection was successful. + */ + #[Deprecated('Pass array("persist" => $id) to the constructor instead of using this method.')] + public function persistConnect($username = "", $password = "") {} + + /** + * Creates a persistent connection with paired database servers + * @link https://secure.php.net/manual/en/mongo.pairpersistconnect.php + * @param string $username A username used to identify the connection. + * @param string $password A password used to identify the connection. + * @throws MongoConnectionException + * @return bool If the connection was successful. + */ + #[Deprecated('Pass "mongodb://server1,server2" and array("persist" => $id) to the constructor instead of using this method.')] + public function pairPersistConnect($username = "", $password = "") {} + + /** + * Connects with a database server + * + * @link https://secure.php.net/manual/en/mongo.connectutil.php + * @throws MongoConnectionException + * @return bool If the connection was successful. + */ + protected function connectUtil() {} + + /** + * Check if there was an error on the most recent db operation performed + * @link https://secure.php.net/manual/en/mongo.lasterror.php + * @return array|null Returns the error, if there was one, or NULL. + * @see MongoDB::lastError() + */ + #[Deprecated('Use MongoDB::lastError() instead.')] + public function lastError() {} + + /** + * Checks for the last error thrown during a database operation + * @link https://secure.php.net/manual/en/mongo.preverror.php + * @return array Returns the error and the number of operations ago it occurred. + * @see MongoDB::prevError() + */ + #[Deprecated('Use MongoDB::prevError() instead.')] + public function prevError() {} + + /** + * Clears any flagged errors on the connection + * @link https://secure.php.net/manual/en/mongo.reseterror.php + * @return array Returns the database response. + * @see MongoDB::resetError() + */ + #[Deprecated('Use MongoDB::resetError() instead.')] + public function resetError() {} + + /** + * Creates a database error on the database. + * @link https://secure.php.net/manual/en/mongo.forceerror.php + * @return bool The database response. + * @see MongoDB::forceError() + */ + #[Deprecated('Use MongoDB::forceError() instead.')] + public function forceError() {} +} + +/** + * Instances of this class are used to interact with a database. + * @link https://secure.php.net/manual/en/class.mongodb.php + */ +class MongoDB +{ + /** + * Profiling is off. + * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-off + */ + public const PROFILING_OFF = 0; + + /** + * Profiling is on for slow operations (>100 ms). + * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-slow + */ + public const PROFILING_SLOW = 1; + + /** + * Profiling is on for all operations. + * @link https://php.net/manual/en/class.mongodb.php#mongodb.constants.profiling-on + */ + public const PROFILING_ON = 2; + + /** + * @var int + *+ * The number of servers to replicate a change to before returning success. + * Inherited by instances of {@link https://php.net/manual/en/class.mongocollection.php MongoCollection} derived + * from this. w functionality is only available in + * version 1.5.1+ of the MongoDB server and 1.0.8+ of the driver. + *
+ *+ * w is used whenever you need to adjust the + * acknowledgement level + * ( {@link https://php.net/manual/en/mongocollection.insert.php MongoCollection::insert()}, + * {@link https://php.net/manual/en/mongocollection.update.php MongoCollection::update()}, + * {@link https://php.net/manual/en/mongocollection.remove.php MongoCollection::remove()}, + * {@link https://php.net/manual/en/mongocollection.save.php MongoCollection::save()}, and + * {@link https://php.net/manual/en/mongocollection.ensureindex.php MongoCollection::ensureIndex()} all support this + * option). With the default value (1), an acknowledged operation will return once + * the database server has the operation. If the server goes down before + * the operation has been replicated to a secondary, it is possible to lose + * the operation forever. Thus, you can specify w to be + * higher than one and guarantee that at least one secondary has the + * operation before it is considered successful. + *
+ *+ * For example, if w is 2, the primary and one secondary + * must have a record of the operation or the driver will throw a + * {@link https://php.net/manual/en/class.mongocursorexception.php MongoCursorException}. It is tempting to set + * w to the total number of secondaries + primary, but + * then if one secondary is down the operation will fail and an exception + * will be thrown, so usually w=2 is safest (primary and + * one secondary). + *
+ */ + public $w = 1; + + /** + * @var int+ * T he number of milliseconds to wait for MongoDB::$w + * replications to take place. Inherited by instances of + * {@link https://secure.php.net/manual/en/class.mongocollection.php MongoCollection} derived from this. + * w functionality is only available in version 1.5.1+ of + * the MongoDB server and 1.0.8+ of the driver. + *
+ *+ * Unless wtimeout is set, the server waits forever for + * replicating to w servers to finish. The driver + * defaults to waiting for 10 seconds, you can change this value to alter + * its behavior. + *
+ */ + public $wtimeout = 10000; + + /** + * (PECL mongo >= 0.9.0)If cloned files should be kept if the repair fails.
+ * @param bool $backup_original_files [optional]If original files should be backed up.
+ * @return arrayReturns db response.
+ */ + public function repair($preserve_cloned_files = false, $backup_original_files = false) {} + + /** + * (PECL mongo >= 0.9.0)+ * Returns a new collection object. + *
+ */ + public function selectCollection($name) {} + + /** + * (PECL mongo >= 1.1.0)+ * If reads should be sent to secondary members of a replica set for all + * possible queries using this {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} instance. + *
+ * @return bool Returns the former value of slaveOkay for this instance. + */ + public function setSlaveOkay($ok = true) {} + + /** + * Creates a collection + * @link https://secure.php.net/manual/en/mongodb.createcollection.php + * @param string $name The name of the collection. + * @param array $options [optional]+ *
+ * An array containing options for the collections. Each option is its own + * element in the options array, with the option name listed below being + * the key of the element. The supported options depend on the MongoDB + * server version. At the moment, the following options are supported: + *
+ *+ * capped + *
+ * If the collection should be a fixed size. + *
+ * + *+ * size + *
+ * If the collection is fixed size, its size in bytes.
+ *max + *
If the collection is fixed size, the maximum number of elements to store in the collection.
+ * autoIndexId + * + *+ * If capped is TRUE you can specify FALSE to disable the + * automatic index created on the _id field. + * Before MongoDB 2.2, the default value for + * autoIndexId was FALSE. + *
+ * + * @return MongoCollectionReturns a collection object representing the new collection.
+ */ + public function createCollection($name, $options) {} + + /** + * (PECL mongo >= 0.9.0)Include system collections.
+ * @return array Returns a list of MongoCollections. + */ + public function listCollections($includeSystemCollections = false) {} + + /** + * (PECL mongo >= 0.9.0)+ * If an array or object is given, its _id field will be + * used as the reference ID. If a {@see MongoId} or scalar + * is given, it will be used as the reference ID. + *
+ * @return arrayReturns a database reference array.
+ *+ * If an array without an _id field was provided as the + * document_or_id parameter, NULL will be returned. + *
+ */ + public function createDBRef($collection, $document_or_id) {} + + /** + * (PECL mongo >= 0.9.0)This function returns an array describing the write concern. + * The array contains the values w for an integer acknowledgement level or string mode, + * and wtimeout denoting the maximum number of milliseconds to wait for the server to satisfy the write concern.
+ */ + public function getWriteConcern() {} + + /** + * (PECL mongo >= 0.9.3)+ * This parameter is an associative array of the form + * array("optionname" => <boolean>, ...). Currently + * supported options are: + *
"timeout"
Deprecated alias for "socketTimeoutMS".
Returns database response. If the login was successful, it will return 1.
+ *
+ * <?php
+ * array(
+ * "ok"
+ * =>
+ * 1
+ * );
+ * ?>
+ *
If something went wrong, it will return
+ *
+ * <?php
+ * array(
+ * "ok"
+ * =>
+ * 0
+ * ,
+ * "errmsg"
+ * =>
+ * "auth fails"
+ * );
+ * ?>
+ *
("auth fails" could be another message, depending on database version and + * what went wrong)
+ */ + public function authenticate($username, $password) {} + + /** + * (PECL mongo >= 1.3.0)The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.
+ * @return bool Returns TRUE on success, or FALSE otherwise. + */ + public function setReadPreference($read_preference, array $tags) {} + + /** + * (PECL mongo >= 1.5.0)The write concern. This may be an integer denoting the number of servers required to acknowledge the write, or a string mode (e.g. "majority").
+ * @param int $wtimeout [optional]The maximum number of milliseconds to wait for the server to satisfy the write concern.
+ * @return bool Returns TRUE on success, or FALSE otherwise. + */ + public function setWriteConcern($w, $wtimeout) {} +} + +/** + * Represents a database collection. + * @link https://secure.php.net/manual/en/class.mongocollection.php + */ +class MongoCollection +{ + /** + * @link https://php.net/manual/en/class.mongocollection.php#mongocollection.constants.ascending + */ + public const ASCENDING = 1; + + /** + * @link https://php.net/manual/en/class.mongocollection.php#mongocollection.constants.descending + */ + public const DESCENDING = -1; + + /** + * @var MongoDB + */ + public $db = null; + + /** + * @var int+ * The number of servers to replicate a change to before returning success. + * Value is inherited from the parent database. The + * {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} class has a more detailed description of + * how w works. + *
+ */ + public $w; + + /** + * @var int+ * The number of milliseconds to wait for $this->w + * replications to take place. Value is inherited from the parent database. + * The {@link https://secure.php.net/manual/en/class.mongodb.php MongoDB} class has a more detailed description + * of how wtimeout works. + *
+ */ + public $wtimeout; + + /** + * Creates a new collection + * @link https://secure.php.net/manual/en/mongocollection.construct.php + * @param MongoDB $db Parent database. + * @param string $name Name for this collection. + * @throws Exception + */ + public function __construct(MongoDB $db, $name) {} + + /** + * String representation of this collection + * @link https://secure.php.net/manual/en/mongocollection.--tostring.php + * @return string Returns the full name of this collection. + */ + public function __toString() {} + + /** + * Gets a collection + * @link https://secure.php.net/manual/en/mongocollection.get.php + * @param string $name The next string in the collection name. + * @return MongoCollection + */ + public function __get($name) {} + + /** + * (PECL mongo >= 1.3.0)+ * The MongoDB + * {@link https://docs.mongodb.org/manual/applications/aggregation/ aggregation framework} + * provides a means to calculate aggregated values without having to use + * MapReduce. While MapReduce is powerful, it is often more difficult than + * necessary for many simple aggregation tasks, such as totaling or averaging + * field values. + *
+ *+ * This method accepts either a variable amount of pipeline operators, or a + * single array of operators constituting the pipeline. + *
+ * @link https://secure.php.net/manual/en/mongocollection.aggregate.php + * @param array $pipelineAn array of pipeline operators, or just the first operator.
+ * @param array $op [optional]The second pipeline operator.
+ * @param array $pipelineOperators [optional]Additional pipeline operators.
+ * @return array The result of the aggregation as an array. The ok will be set to 1 on success, 0 on failure. + */ + public function aggregate(array $pipeline, array $op, array $pipelineOperators) {} + + /** + * (PECL mongo >= 1.5.0)+ * With this method you can execute Aggregation Framework pipelines and retrieve the results + * through a cursor, instead of getting just one document back as you would with + * {@link https://php.net/manual/en/mongocollection.aggregate.php MongoCollection::aggregate()}. + * This method returns a {@link https://php.net/manual/en/class.mongocommandcursor.php MongoCommandCursor} object. + * This cursor object implements the {@link https://php.net/manual/en/class.iterator.php Iterator} interface + * just like the {@link https://php.net/manual/en/class.mongocursor.php MongoCursor} objects that are returned + * by the {@link https://php.net/manual/en/mongocollection.find.php MongoCollection::find()} method + *
+ * + * @link https://php.net/manual/en/mongocollection.aggregatecursor.php + * + * @param array $pipelineThe Aggregation Framework pipeline to execute.
+ * @param array $options [optional]Options for the aggregation command
+ * + * @return MongoCommandCursor Returns a {@link https://php.net/manual/en/class.mongocommandcursor.php MongoCommandCursor} object + */ + public function aggregateCursor(array $pipeline, array $options) {} + + /** + * Returns this collection's name + * @link https://secure.php.net/manual/en/mongocollection.getname.php + * @return string + */ + public function getName() {} + + /** + * (PECL mongo >= 1.1.0)+ * See {@link https://secure.php.net/manual/en/mongo.queries.php the query section} of this manual for + * information on distributing reads to secondaries. + *
+ * @link https://secure.php.net/manual/en/mongocollection.getslaveokay.php + * @return bool Returns the value of slaveOkay for this instance. + */ + public function getSlaveOkay() {} + + /** + * (PECL mongo >= 1.1.0)+ * See {@link https://secure.php.net/manual/en/mongo.queries.php the query section} of this manual for + * information on distributing reads to secondaries. + *
+ * @link https://secure.php.net/manual/en/mongocollection.setslaveokay.php + * @param bool $ok [optional]+ * If reads should be sent to secondary members of a replica set for all + * possible queries using this {@link https://secure.php.net/manual/en/class.mongocollection.php MongoCollection} + * instance. + * @return bool Returns the former value of slaveOkay for this instance. + *
+ */ + public function setSlaveOkay($ok = true) {} + + /** + * (PECL mongo >= 1.3.0)The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]An array of zero or more tag sets, where each tag set is itself an array of criteria used to match tags on replica set members.
+ * @return bool Returns TRUE on success, or FALSE otherwise. + */ + public function setReadPreference($read_preference, array $tags) {} + + /** + * Drops this collection + * @link https://secure.php.net/manual/en/mongocollection.drop.php + * @return array Returns the database response. + */ + public function drop() {} + + /** + * Validates this collection + * @link https://secure.php.net/manual/en/mongocollection.validate.php + * @param bool $scan_data Only validate indices, not the base collection. + * @return array Returns the database's evaluation of this object. + */ + public function validate($scan_data = false) {} + + /** + * Inserts an array into the collection + * @link https://secure.php.net/manual/en/mongocollection.insert.php + * @param array|object $a An array or object. If an object is used, it may not have protected or private properties. + * Note: If the parameter does not have an _id key or property, a new MongoId instance will be created and assigned to it. + * This special behavior does not mean that the parameter is passed by reference. + * @param array $options Options for the insert. + *
Query criteria for the documents to delete.
+ * @param array $options [optional]An array of options for the remove operation. Currently available options + * include: + *
"w"
See {@link https://secure.php.net/manual/en/mongo.writeconcerns.php Write Concerns}. The default value for MongoClient is 1.
+ * "justOne" + *
+ *
+ * Specify TRUE to limit deletion to just one document. If FALSE or
+ * omitted, all documents matching the criteria will be deleted.
+ *
"fsync"
Boolean, defaults to FALSE. If journaling is enabled, it works exactly like "j". If journaling is not enabled, the write operation blocks until it is synced to database files on disk. If TRUE, an acknowledged insert is implied and this option will override setting "w" to 0.
Note: If journaling is enabled, users are strongly encouraged to use the "j" option instead of "fsync". Do not use "fsync" and "j" simultaneously, as that will result in an error.
"j"
Boolean, defaults to FALSE. Forces the write operation to block until it is synced to the journal on disk. If TRUE, an acknowledged write is implied and this option will override setting "w" to 0.
Note: If this option is used and journaling is disabled, MongoDB 2.6+ will raise an error and the write will fail; older server versions will simply ignore the option.
"socketTimeoutMS"
This option specifies the time limit, in milliseconds, for socket communication. If the server does not respond within the timeout period, a MongoCursorTimeoutException will be thrown and there will be no way to determine if the server actually handled the write or not. A value of -1 may be specified to block indefinitely. The default value for MongoClient is 30000 (30 seconds).
"w"
See {@link https://secure.php.net/manual/en/mongo.writeconcerns.php Write Concerns}. The default value for MongoClient is 1.
"wTimeoutMS"
This option specifies the time limit, in milliseconds, for {@link https://secure.php.net/manual/en/mongo.writeconcerns.php write concern} acknowledgement. It is only applicable when "w" is greater than 1, as the timeout pertains to replication. If the write concern is not satisfied within the time limit, a MongoCursorException will be thrown. A value of 0 may be specified to block indefinitely. The default value for {@link https://secure.php.net/manual/en/class.mongoclient.php MongoClient} is 10000 (ten seconds).
+ * The following options are deprecated and should no longer be used: + *
"safe"
Deprecated. Please use the {@link https://secure.php.net/manual/en/mongo.writeconcerns.php write concern} "w" option.
"timeout"
Deprecated alias for "socketTimeoutMS".
"wtimeout"
Deprecated alias for "wTimeoutMS".
Returns an array containing the status of the removal if the + * "w" option is set. Otherwise, returns TRUE. + *
+ *+ * Fields in the status array are described in the documentation for + * MongoCollection::insert(). + *
+ */ + public function remove(array $criteria = [], array $options = []) {} + + /** + * Querys this collection + * @link https://secure.php.net/manual/en/mongocollection.find.php + * @param array $query The fields for which to search. + * @param array $fields Fields of the results to return. + * @return MongoCursor + */ + public function find(array $query = [], array $fields = []) {} + + /** + * Retrieve a list of distinct values for the given key across a collection + * @link https://secure.php.net/manual/en/mongocollection.distinct.php + * @param string $key The key to use. + * @param array $query An optional query parameters + * @return array|false Returns an array of distinct values, or FALSE on failure + */ + public function distinct($key, array $query = null) {} + + /** + * Update a document and return it + * @link https://secure.php.net/manual/en/mongocollection.findandmodify.php + * @param array $query The query criteria to search for. + * @param array $update The update criteria. + * @param array $fields Optionally only return these fields. + * @param array $options An array of options to apply, such as remove the match document from the DB and return it. + * @return array Returns the original document, or the modified document when new is set. + */ + public function findAndModify(array $query, array $update = null, array $fields = null, array $options = null) {} + + /** + * Querys this collection, returning a single element + * @link https://secure.php.net/manual/en/mongocollection.findone.php + * @param array $query The fields for which to search. + * @param array $fields Fields of the results to return. + * @param array $options This parameter is an associative array of the form array("name" => `+ * Set timeout in milliseconds for all database responses. Use + * -1 to wait forever. Can be overridden with + * {link https://secure.php.net/manual/en/mongocursor.timeout.php MongoCursor::timeout()}. This does not cause the + * MongoDB server to cancel the operation; it only instructs the driver to + * stop waiting for a response and throw a + * {@link https://php.net/manual/en/class.mongocursortimeoutexception.php MongoCursorTimeoutException} after a set time. + *
+ */ + public static $timeout = 30000; + + /** + * Create a new cursor + * @link https://secure.php.net/manual/en/mongocursor.construct.php + * @param MongoClient $connection Database connection. + * @param string $ns Full name of database and collection. + * @param array $query Database query. + * @param array $fields Fields to return. + */ + public function __construct($connection, $ns, array $query = [], array $fields = []) {} + + /** + * (PECL mongo >= 1.2.11)If the cursor should wait for more data to become available.
+ * @return MongoCursor Returns this cursor. + */ + public function awaitData($wait = true) {} + + /** + * Checks if there are any more elements in this cursor + * @link https://secure.php.net/manual/en/mongocursor.hasnext.php + * @throws MongoConnectionException + * @throws MongoCursorTimeoutException + * @return bool Returns true if there is another element + */ + public function hasNext() {} + + /** + * Return the next object to which this cursor points, and advance the cursor + * @link https://secure.php.net/manual/en/mongocursor.getnext.php + * @throws MongoConnectionException + * @throws MongoCursorTimeoutException + * @return array Returns the next object + */ + public function getNext() {} + + /** + * (PECL mongo >= 1.3.3)If receiving partial results is okay.
+ * @return MongoCursor Returns this cursor. + */ + public function partial($okay = true) {} + + /** + * (PECL mongo >= 1.2.1)+ * Which flag to set. You can not set flag 6 (EXHAUST) as the driver does + * not know how to handle them. You will get a warning if you try to use + * this flag. For available flags, please refer to the wire protocol + * {@link https://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol#MongoWireProtocol-OPQUERY documentation}. + *
+ * @param bool $set [optional]Whether the flag should be set (TRUE) or unset (FALSE).
+ * @return MongoCursor + */ + public function setFlag($flag, $set = true) {} + + /** + * (PECL mongo >= 1.3.3)The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @param array $tags [optional]The read preference mode: MongoClient::RP_PRIMARY, MongoClient::RP_PRIMARY_PREFERRED, MongoClient::RP_SECONDARY, MongoClient::RP_SECONDARY_PREFERRED, or MongoClient::RP_NEAREST.
+ * @return MongoCursor Returns this cursor. + */ + public function setReadPreference($read_preference, array $tags) {} + + /** + * Skips a number of results + * @link https://secure.php.net/manual/en/mongocursor.skip.php + * @param int $num The number of results to skip. + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function skip($num) {} + + /** + * Sets whether this query can be done on a slave + * This method will override the static class variable slaveOkay. + * @link https://secure.php.net/manual/en/mongocursor.slaveOkay.php + * @param bool $okay If it is okay to query the slave. + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function slaveOkay($okay = true) {} + + /** + * Sets whether this cursor will be left open after fetching the last results + * @link https://secure.php.net/manual/en/mongocursor.tailable.php + * @param bool $tail If the cursor should be tailable. + * @return MongoCursor Returns this cursor + */ + public function tailable($tail = true) {} + + /** + * Sets whether this cursor will timeout + * @link https://secure.php.net/manual/en/mongocursor.immortal.php + * @param bool $liveForever If the cursor should be immortal. + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function immortal($liveForever = true) {} + + /** + * Sets a client-side timeout for this query + * @link https://secure.php.net/manual/en/mongocursor.timeout.php + * @param int $ms The number of milliseconds for the cursor to wait for a response. By default, the cursor will wait forever. + * @throws MongoCursorTimeoutException + * @return MongoCursor Returns this cursor + */ + public function timeout($ms) {} + + /** + * Checks if there are documents that have not been sent yet from the database for this cursor + * @link https://secure.php.net/manual/en/mongocursor.dead.php + * @return bool Returns if there are more results that have not been sent to the client, yet. + */ + public function dead() {} + + /** + * Use snapshot mode for the query + * @link https://secure.php.net/manual/en/mongocursor.snapshot.php + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function snapshot() {} + + /** + * Sorts the results by given fields + * @link https://secure.php.net/manual/en/mongocursor.sort.php + * @param array $fields An array of fields by which to sort. Each element in the array has as key the field name, and as value either 1 for ascending sort, or -1 for descending sort + * @throws MongoCursorException + * @return MongoCursor Returns the same cursor that this method was called on + */ + public function sort(array $fields) {} + + /** + * Gives the database a hint about the query + * @link https://secure.php.net/manual/en/mongocursor.hint.php + * @param mixed $key_pattern Indexes to use for the query. + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function hint($key_pattern) {} + + /** + * Adds a top-level key/value pair to a query + * @link https://secure.php.net/manual/en/mongocursor.addoption.php + * @param string $key Fieldname to add. + * @param mixed $value Value to add. + * @throws MongoCursorException + * @return MongoCursor Returns this cursor + */ + public function addOption($key, $value) {} + + /** + * Execute the query + * @link https://secure.php.net/manual/en/mongocursor.doquery.php + * @throws MongoConnectionException if it cannot reach the database. + * @return void + */ + protected function doQuery() {} + + /** + * Returns the current element + * @link https://secure.php.net/manual/en/mongocursor.current.php + * @return array + */ + public function current() {} + + /** + * Returns the current result's _id + * @link https://secure.php.net/manual/en/mongocursor.key.php + * @return string The current result's _id as a string. + */ + public function key() {} + + /** + * Advances the cursor to the next result + * @link https://secure.php.net/manual/en/mongocursor.next.php + * @throws MongoConnectionException + * @throws MongoCursorTimeoutException + * @return void + */ + public function next() {} + + /** + * Returns the cursor to the beginning of the result set + * @throws MongoConnectionException + * @throws MongoCursorTimeoutException + * @return void + */ + public function rewind() {} + + /** + * Checks if the cursor is reading a valid result. + * @link https://secure.php.net/manual/en/mongocursor.valid.php + * @return bool If the current result is not null. + */ + public function valid() {} + + /** + * Clears the cursor + * @link https://secure.php.net/manual/en/mongocursor.reset.php + * @return void + */ + public function reset() {} + + /** + * Return an explanation of the query, often useful for optimization and debugging + * @link https://secure.php.net/manual/en/mongocursor.explain.php + * @return array Returns an explanation of the query. + */ + public function explain() {} + + /** + * Counts the number of results for this query + * @link https://secure.php.net/manual/en/mongocursor.count.php + * @param bool $all Send cursor limit and skip information to the count function, if applicable. + * @return int The number of documents returned by this cursor's query. + */ + public function count($all = false) {} + + /** + * Sets the fields for a query + * @link https://secure.php.net/manual/en/mongocursor.fields.php + * @param array $f Fields to return (or not return). + * @throws MongoCursorException + * @return MongoCursor + */ + public function fields(array $f) {} + + /** + * Gets the query, fields, limit, and skip for this cursor + * @link https://secure.php.net/manual/en/mongocursor.info.php + * @return array The query, fields, limit, and skip for this cursor as an associative array. + */ + public function info() {} + + /** + * PECL mongo >= 1.0.11 + * Limits the number of elements returned in one batch. + *A cursor typically fetches a batch of result objects and store them locally. + * This method sets the batchSize value to configure the amount of documents retrieved from the server in one data packet. + * However, it will never return more documents than fit in the max batch size limit (usually 4MB). + *
+ * + * @param int $batchSize The number of results to return per batch. Each batch requires a round-trip to the server. + *If batchSize is 2 or more, it represents the size of each batch of objects retrieved. + * It can be adjusted to optimize performance and limit data transfer. + *
+ * + *If batchSize is 1 or negative, it will limit of number returned documents to the absolute value of batchSize, + * and the cursor will be closed. For example if batchSize is -10, then the server will return a maximum of 10 + * documents and as many as can fit in 4MB, then close the cursor. + *
+ * Warning + *A batchSize of 1 is special, and means the same as -1, i.e. a value of 1 makes the cursor only capable of returning one document. + *
+ *Note that this feature is different from MongoCursor::limit() in that documents must fit within a maximum size, + * and it removes the need to send a request to close the cursor server-side. + * The batch size can be changed even after a cursor is iterated, in which case the setting will apply on the next batch retrieval. + *
+ *This cannot override MongoDB's limit on the amount of data it will return to the client (i.e., + * if you set batch size to 1,000,000,000, MongoDB will still only return 4-16MB of results per batch). + *
+ *To ensure consistent behavior, the rules of MongoCursor::batchSize() and MongoCursor::limit() behave a little complex + * but work "as expected". The rules are: hard limits override soft limits with preference given to MongoCursor::limit() over + * MongoCursor::batchSize(). After that, whichever is set and lower than the other will take precedence. + * See below. section for some examples. + *
+ * + * @return MongoCursor Returns this cursor. + * @link https://secure.php.net/manual/en/mongocursor.batchsize.php + */ + public function batchSize($batchSize) {} + + /** + * (PECL mongo >= 1.5.0) + * Sets a server-side timeout for this query + * @link https://php.net/manual/en/mongocursor.maxtimems.php + * @param int $ms+ * Specifies a cumulative time limit in milliseconds to be allowed by the + * server for processing operations on the cursor. + *
+ * @return MongoCursor This cursor. + */ + public function maxTimeMS($ms) {} +} + +class MongoCommandCursor implements MongoCursorInterface +{ + /** + * Return the current element + * @link https://php.net/manual/en/iterator.current.php + * @return mixed Can return any type. + * @since 5.0.0 + */ + public function current() {} + + /** + * Move forward to next element + * @link https://php.net/manual/en/iterator.next.php + * @return void Any returned value is ignored. + * @since 5.0.0 + */ + public function next() {} + + /** + * Return the key of the current element + * @link https://php.net/manual/en/iterator.key.php + * @return mixed scalar on success, or null on failure. + * @since 5.0.0 + */ + public function key() {} + + /** + * Checks if current position is valid + * @link https://php.net/manual/en/iterator.valid.php + * @return bool The return value will be casted to boolean and then evaluated. + * Returns true on success or false on failure. + * @since 5.0.0 + */ + public function valid() {} + + /** + * Rewind the Iterator to the first element + * @link https://php.net/manual/en/iterator.rewind.php + * @return void Any returned value is ignored. + * @since 5.0.0 + */ + public function rewind() {} + + public function batchSize(int $batchSize): MongoCursorInterface {} + + public function dead(): bool {} + + public function info(): array {} + + public function getReadPreference(): array {} + + public function setReadPreference(string $read_preference, array $tags = null): MongoCursorInterface {} + + public function timeout(int $ms): MongoCursorInterface {} +} + +interface MongoCursorInterface extends Iterator +{ + public function batchSize(int $batchSize): MongoCursorInterface; + + public function dead(): bool; + + public function info(): array; + + public function getReadPreference(): array; + + public function setReadPreference(string $read_preference, array $tags = null): MongoCursorInterface; + + public function timeout(int $ms): MongoCursorInterface; +} + +class MongoGridFS extends MongoCollection +{ + public const ASCENDING = 1; + public const DESCENDING = -1; + + /** + * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.chunks + * @var MongoCollection + */ + public $chunks; + + /** + * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.filesname + * @var string + */ + protected $filesName; + + /** + * @link https://php.net/manual/en/class.mongogridfs.php#mongogridfs.props.chunksname + * @var string + */ + protected $chunksName; + + /** + * Files as stored across two collections, the first containing file meta + * information, the second containing chunks of the actual file. By default, + * fs.files and fs.chunks are the collection names used. + * + * @link https://php.net/manual/en/mongogridfs.construct.php + * @param MongoDB $db Database + * @param string $prefix [optional]Optional collection name prefix.
+ * @param mixed $chunks [optional] + */ + public function __construct($db, $prefix = "fs", $chunks = "fs") {} + + /** + * Drops the files and chunks collections + * @link https://php.net/manual/en/mongogridfs.drop.php + * @return array The database response + */ + public function drop() {} + + /** + * @link https://php.net/manual/en/mongogridfs.find.php + * @param array $query The query + * @param array $fields Fields to return + * @return MongoGridFSCursor A MongoGridFSCursor + */ + public function find(array $query = [], array $fields = []) {} + + /** + * Stores a file in the database + * @link https://php.net/manual/en/mongogridfs.storefile.php + * @param string|resource $filename The name of the file + * @param array $extra Other metadata to add to the file saved + * @param array $options Options for the store. "safe": Check that this store succeeded + * @return mixed Returns the _id of the saved object + */ + public function storeFile($filename, $extra = [], $options = []) {} + + /** + * Chunkifies and stores bytes in the database + * @link https://php.net/manual/en/mongogridfs.storebytes.php + * @param string $bytes A string of bytes to store + * @param array $extra Other metadata to add to the file saved + * @param array $options Options for the store. "safe": Check that this store succeeded + * @return mixed The _id of the object saved + */ + public function storeBytes($bytes, $extra = [], $options = []) {} + + /** + * Returns a single file matching the criteria + * @link https://secure.php.net/manual/en/mongogridfs.findone.php + * @param array $query The fields for which to search. + * @param array $fields Fields of the results to return. + * @return MongoGridFSFile|null + */ + public function findOne(array $query = [], array $fields = []) {} + + /** + * Removes files from the collections + * @link https://secure.php.net/manual/en/mongogridfs.remove.php + * @param array $criteria Description of records to remove. + * @param array $options Options for remove. Valid options are: "safe"- Check that the remove succeeded. + * @throws MongoCursorException + * @return bool + */ + public function remove(array $criteria = [], array $options = []) {} + + /** + * Delete a file from the database + * @link https://php.net/manual/en/mongogridfs.delete.php + * @param mixed $id _id of the file to remove + * @return bool Returns true if the remove was successfully sent to the database. + */ + public function delete($id) {} + + /** + * Saves an uploaded file directly from a POST to the database + * @link https://secure.php.net/manual/en/mongogridfs.storeupload.php + * @param string $name The name attribute of the uploaded file, from<input type="file" name="something"/>
+ * @param array $metadata An array of extra fields for the uploaded file.
+ * @return mixed Returns the _id of the uploaded file.
+ */
+ public function storeUpload($name, array $metadata = []) {}
+
+ /**
+ * Retrieve a file from the database
+ * @link https://secure.php.net/manual/en/mongogridfs.get.php
+ * @param mixed $id _id of the file to find.
+ * @return MongoGridFSFile|null Returns the file, if found, or NULL.
+ */
+ public function get($id) {}
+
+ /**
+ * Stores a file in the database
+ * @link https://php.net/manual/en/mongogridfs.put.php
+ * @param string $filename The name of the file
+ * @param array $extra Other metadata to add to the file saved
+ * @return mixed Returns the _id of the saved object
+ */
+ public function put($filename, array $extra = []) {}
+}
+
+class MongoGridFSFile
+{
+ /**
+ * @link https://php.net/manual/en/class.mongogridfsfile.php#mongogridfsfile.props.file
+ * @var array|null
+ */
+ public $file;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfsfile.php#mongogridfsfile.props.gridfs
+ * @var MongoGridFS|null
+ */
+ protected $gridfs;
+
+ /**
+ * @link https://php.net/manual/en/mongogridfsfile.construct.php
+ * @param MongoGridFS $gridfs The parent MongoGridFS instance
+ * @param array $file A file from the database
+ */
+ public function __construct($gridfs, array $file) {}
+
+ /**
+ * Returns this file's filename
+ * @link https://php.net/manual/en/mongogridfsfile.getfilename.php
+ * @return string Returns the filename
+ */
+ public function getFilename() {}
+
+ /**
+ * Returns this file's size
+ * @link https://php.net/manual/en/mongogridfsfile.getsize.php
+ * @return int Returns this file's size
+ */
+ public function getSize() {}
+
+ /**
+ * Writes this file to the filesystem
+ * @link https://php.net/manual/en/mongogridfsfile.write.php
+ * @param string $filename The location to which to write the file (path+filename+extension). If none is given, the stored filename will be used.
+ * @return int Returns the number of bytes written
+ */
+ public function write($filename = null) {}
+
+ /**
+ * This will load the file into memory. If the file is bigger than your memory, this will cause problems!
+ * @link https://php.net/manual/en/mongogridfsfile.getbytes.php
+ * @return string Returns a string of the bytes in the file
+ */
+ public function getBytes() {}
+
+ /**
+ * This method returns a stream resource that can be used to read the stored file with all file functions in PHP.
+ * The contents of the file are pulled out of MongoDB on the fly, so that the whole file does not have to be loaded into memory first.
+ * At most two GridFSFile chunks will be loaded in memory.
+ *
+ * @link https://php.net/manual/en/mongogridfsfile.getresource.php
+ * @return resource Returns a resource that can be used to read the file with
+ */
+ public function getResource() {}
+}
+
+class MongoGridFSCursor extends MongoCursor implements Traversable, Iterator
+{
+ /**
+ * @var bool
+ */
+ public static $slaveOkay;
+
+ /**
+ * @link https://php.net/manual/en/class.mongogridfscursor.php#mongogridfscursor.props.gridfs
+ * @var MongoGridFS|null
+ */
+ protected $gridfs;
+
+ /**
+ * Create a new cursor
+ * @link https://php.net/manual/en/mongogridfscursor.construct.php
+ * @param MongoGridFS $gridfs Related GridFS collection
+ * @param resource $connection Database connection
+ * @param string $ns Full name of database and collection
+ * @param array $query Database query
+ * @param array $fields Fields to return
+ */
+ public function __construct($gridfs, $connection, $ns, $query, $fields) {}
+
+ /**
+ * Return the next file to which this cursor points, and advance the cursor
+ * @link https://php.net/manual/en/mongogridfscursor.getnext.php
+ * @return MongoGridFSFile Returns the next file
+ */
+ public function getNext() {}
+
+ /**
+ * Returns the current file
+ * @link https://php.net/manual/en/mongogridfscursor.current.php
+ * @return MongoGridFSFile The current file
+ */
+ public function current() {}
+
+ /**
+ * Returns the current result's filename
+ * @link https://php.net/manual/en/mongogridfscursor.key.php
+ * @return string The current results filename
+ */
+ public function key() {}
+}
+
+/**
+ * A unique identifier created for database objects.
+ * @link https://secure.php.net/manual/en/class.mongoid.php
+ */
+class MongoId
+{
+ /**
+ * @var string Note: The property name begins with a $ character. It may be accessed using + * {@link https://php.net/manual/en/language.types.string.php#language.types.string.parsing.complex complex variable parsed syntax} (e.g. $mongoId->{'$id'}).
+ */ + public $id = null; + + /** + * (PECL mongo >= 0.8.0) + * Creates a new id + * @link https://secure.php.net/manual/en/mongoid.construct.php + * @param MongoId|string $id [optional] A string to use as the id. Must be 24 hexadecimal characters. If an invalid string is passed to this constructor, the constructor will ignore it and create a new id value. + */ + public function __construct($id = null) {} + + /** + * (PECL mongo >= 0.8.0) + * Check if a value is a valid ObjectId + * @link https://php.net/manual/en/mongoid.isvalid.php + * @param mixed $value The value to check for validity. + * @return bool+ * Returns TRUE if value is a + * MongoId instance or a string consisting of exactly 24 + * hexadecimal characters; otherwise, FALSE is returned. + *
+ */ + public static function isValid($value) {} + + /** + * (PECL mongo >= 0.8.0) + * Returns a hexadecimal representation of this id + * @link https://secure.php.net/manual/en/mongoid.tostring.php + * @return string This id. + */ + public function __toString() {} + + /** + * (PECL mongo >= 1.0.11) + * Gets the incremented value to create this id + * @link https://php.net/manual/en/mongoid.getinc.php + * @return int Returns the incremented value used to create this MongoId. + */ + public function getInc() {} + + /** + * (PECL mongo >= 1.0.11) + * Gets the process ID + * @link https://php.net/manual/en/mongoid.getpid.php + * @return int Returns the PID of the MongoId. + */ + public function getPID() {} + + /** + * (PECL mongo >= 1.0.1) + * Gets the number of seconds since the epoch that this id was created + * @link https://secure.php.net/manual/en/mongoid.gettimestamp.php + * @return int + */ + public function getTimestamp() {} + + /** + * (PECL mongo >= 1.0.8) + * Gets the hostname being used for this machine's ids + * @link https://secure.php.net/manual/en/mongoid.gethostname.php + * @return string Returns the hostname. + */ + public static function getHostname() {} + + /** + * (PECL mongo >= 1.0.8) + * Create a dummy MongoId + * @link https://php.net/manual/en/mongoid.set-state.php + * @param array $propsTheoretically, an array of properties used to create the new id. However, as MongoId instances have no properties, this is not used.
+ * @return MongoId A new id with the value "000000000000000000000000". + */ + public static function __set_state(array $props) {} +} + +class MongoCode +{ + /** + * @var string + */ + public $code; + + /** + * @var array + */ + public $scope; + + /** + * . + * + * @link https://php.net/manual/en/mongocode.construct.php + * @param string $code A string of code + * @param array $scope The scope to use for the code + */ + public function __construct($code, array $scope = []) {} + + /** + * Returns this code as a string + * @return string + */ + public function __toString() {} +} + +class MongoRegex +{ + /** + * @link https://php.net/manual/en/class.mongoregex.php#mongoregex.props.regex + * @var string + */ + public $regex; + + /** + * @link https://php.net/manual/en/class.mongoregex.php#mongoregex.props.flags + * @var string + */ + public $flags; + + /** + * Creates a new regular expression. + * + * @link https://php.net/manual/en/mongoregex.construct.php + * @param string $regex Regular expression string of the form /expr/flags + */ + public function __construct($regex) {} + + /** + * Returns a string representation of this regular expression. + * @return string This regular expression in the form "/expr/flags". + */ + public function __toString() {} +} + +class MongoDate +{ + /** + * @link https://php.net/manual/en/class.mongodate.php#mongodate.props.sec + * @var int + */ + public $sec; + + /** + * @link https://php.net/manual/en/class.mongodate.php#mongodate.props.usec + * @var int + */ + public $usec; + + /** + * Creates a new date. If no parameters are given, the current time is used. + * + * @link https://php.net/manual/en/mongodate.construct.php + * @param int $sec Number of seconds since January 1st, 1970 + * @param int $usec Microseconds + */ + public function __construct($sec = 0, $usec = 0) {} + + /** + * Returns a DateTime object representing this date + * @link https://php.net/manual/en/mongodate.todatetime.php + * @return DateTime + */ + public function toDateTime() {} + + /** + * Returns a string representation of this date + * @return string + */ + public function __toString() {} +} + +class MongoBinData +{ + /** + * Generic binary data. + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom + */ + public const GENERIC = 0x0; + + /** + * Function + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.func + */ + public const FUNC = 0x1; + + /** + * Generic binary data (deprecated in favor of MongoBinData::GENERIC) + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.byte-array + */ + public const BYTE_ARRAY = 0x2; + + /** + * Universally unique identifier (deprecated in favor of MongoBinData::UUID_RFC4122) + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.uuid + */ + public const UUID = 0x3; + + /** + * Universally unique identifier (according to » RFC 4122) + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom + */ + public const UUID_RFC4122 = 0x4; + + /** + * MD5 + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.md5 + */ + public const MD5 = 0x5; + + /** + * User-defined type + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.constants.custom + */ + public const CUSTOM = 0x80; + + /** + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.props.bin + * @var string + */ + public $bin; + + /** + * @link https://php.net/manual/en/class.mongobindata.php#mongobindata.props.type + * @var int + */ + public $type; + + /** + * Creates a new binary data object. + * + * @link https://php.net/manual/en/mongobindata.construct.php + * @param string $data Binary data + * @param int $type Data type + */ + public function __construct($data, $type = 2) {} + + /** + * Returns the string representation of this binary data object. + * @return string + */ + public function __toString() {} +} + +class MongoDBRef +{ + /** + * @var string + */ + protected static $refKey = '$ref'; + + /** + * @var string + */ + protected static $idKey = '$id'; + + /** + * If no database is given, the current database is used. + * + * @link https://php.net/manual/en/mongodbref.create.php + * @param string $collection Collection name (without the database name) + * @param mixed $id The _id field of the object to which to link + * @param string $database Database name + * @return array Returns the reference + */ + public static function create($collection, $id, $database = null) {} + + /** + * This not actually follow the reference, so it does not determine if it is broken or not. + * It merely checks that $ref is in valid database reference format (in that it is an object or array with $ref and $id fields). + * + * @link https://php.net/manual/en/mongodbref.isref.php + * @param mixed $ref Array or object to check + * @return bool Returns true if $ref is a reference + */ + public static function isRef($ref) {} + + /** + * Fetches the object pointed to by a reference + * @link https://php.net/manual/en/mongodbref.get.php + * @param MongoDB $db Database to use + * @param array $ref Reference to fetch + * @return array|null Returns the document to which the reference refers or null if the document does not exist (the reference is broken) + */ + public static function get($db, $ref) {} +} + +class MongoWriteBatch +{ + public const COMMAND_INSERT = 1; + public const COMMAND_UPDATE = 2; + public const COMMAND_DELETE = 3; + + /** + *(PECL mongo >= 1.5.0)
+ * MongoWriteBatch constructor. + * @link https://php.net/manual/en/mongowritebatch.construct.php + * @param MongoCollection $collection The {@see MongoCollection} to execute the batch on. + * Its {@link https://php.net/manual/en/mongo.writeconcerns.php write concern} + * will be copied and used as the default write concern if none is given as$write_options or during
+ * {@see MongoWriteBatch::execute()}.
+ * @param string $batch_type [optional] + * One of: + *
An array of Write Options.
| key | value meaning |
|---|---|
| w (int|string) | {@link https://php.net/manual/en/mongo.writeconcerns.php Write concern} value |
| wtimeout (int) | {@link https://php.net/manual/en/mongo.writeconcerns.php Maximum time to wait for replication} |
| ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it.
+ * Defaults to TRUE |
| j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead |
| fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead |
(PECL mongo >= 1.5.0)
+ * Adds a write operation to a batch + * @link https://php.net/manual/en/mongowritebatch.add.php + * @param array $item+ * An array that describes a write operation. The structure of this value + * depends on the batch's operation type. + *
| Batch type | + *Argument expectation | + *
|---|---|
MongoWriteBatch::COMMAND_INSERT |
+ * + * The document to add. + * | + *
MongoWriteBatch::COMMAND_UPDATE |
+ *
+ * Raw update operation. + *Required keys are "q" and "u", which correspond to the
+ * Optional keys are "multi" and "upsert", which correspond to the
+ * "multiple" and "upsert" options for {@see MongoCollection::update()}, respectively.
+ * If unspecified, both options default to |
+ *
MongoWriteBatch::COMMAND_DELETE |
+ *
+ * Raw delete operation. + *Required keys are: "q" and "limit", which correspond to the The "limit" option is an integer; however, MongoDB only supports 0 (i.e. remove all matching + * ocuments) and 1 (i.e. remove at most one matching document) at this time. + * |
+ *
(PECL mongo >= 1.5.0)
+ * Executes a batch of write operations + * @link https://php.net/manual/en/mongowritebatch.execute.php + * @param array $write_options See {@see MongoWriteBatch::__construct} + * @return array Returns an array containing statistical information for the full batch. + * If the batch had to be split into multiple batches, the return value will aggregate the values from individual batches and return only the totals. + * If the batch was empty, an array containing only the 'ok' field is returned (as TRUE) although nothing will be shipped over the wire (NOOP). + */ + final public function execute(array $write_options) {} +} + +class MongoUpdateBatch extends MongoWriteBatch +{ + /** + *(PECL mongo >= 1.5.0)
+ * MongoUpdateBatch constructor. + * @link https://php.net/manual/en/mongoupdatebatch.construct.php + * @param MongoCollection $collectionThe MongoCollection to execute the batch on. + * Its write concern will be copied and used as the default write concern + * if none is given as $write_options or during {@see MongoWriteBatch::execute()}.
+ * @param array $write_optionsAn array of Write Options.
| key | value meaning |
|---|---|
| w (int|string) | {@link https://php.net/manual/en/mongo.writeconcerns.php Write concern} value |
| wtimeout (int) | {@link https://php.net/manual/en/mongo.writeconcerns.php Maximum time to wait for replication} |
| ordered | Determins if MongoDB must apply this batch in order (sequentally, one item at a time) or can rearrange it. Defaults to TRUE |
| j (bool) | Wait for journaling on the primary. This value is discouraged, use WriteConcern instead |
| fsync (bool) | Wait for fsync on the primary. This value is discouraged, use WriteConcern instead |
(PECL mongo >= 1.5.0)
+ * @link https://php.net/manual/en/class.mongowriteconcernexception.php#class.mongowriteconcernexception + */ +class MongoWriteConcernException extends MongoCursorException +{ + /** + * Get the error document + * @link https://php.net/manual/en/mongowriteconcernexception.getdocument.php + * @return arrayA MongoDB document, if available, as an array.
+ */ + public function getDocument() {} +} + +/** + *(PECL mongo >= 1.5.0)
+ * @link https://php.net/manual/en/class.mongoexecutiontimeoutexception.php + */ +class MongoExecutionTimeoutException extends MongoException {} + +/** + *(PECL mongo >= 1.5.0)
+ */ +class MongoProtocolException extends MongoException {} + +/** + *(PECL mongo >= 1.5.0)
+ * @link https://php.net/manual/en/class.mongoduplicatekeyexception.php + */ +class MongoDuplicateKeyException extends MongoWriteConcernException {} + +/** + *(PECL mongo >= 1.3.0)
+ * @link https://php.net/manual/en/class.mongoresultexception.php#mongoresultexception.props.document + */ +class MongoResultException extends MongoException +{ + /** + *(PECL mongo >= 1.3.0)
+ * Retrieve the full result document + * https://secure.php.net/manual/en/mongoresultexception.getdocument.php + * @return arrayThe full result document as an array, including partial data if available and additional keys.
+ */ + public function getDocument() {} + public $document; +} + +class MongoTimestamp +{ + /** + * @link https://php.net/manual/en/class.mongotimestamp.php#mongotimestamp.props.sec + * @var int + */ + public $sec; + + /** + * @link https://php.net/manual/en/class.mongotimestamp.php#mongotimestamp.props.inc + * @var int + */ + public $inc; + + /** + * Creates a new timestamp. If no parameters are given, the current time is used + * and the increment is automatically provided. The increment is set to 0 when the + * module is loaded and is incremented every time this constructor is called + * (without the $inc parameter passed in). + * + * @link https://php.net/manual/en/mongotimestamp.construct.php + * @param int $sec [optional] Number of seconds since January 1st, 1970 + * @param int $inc [optional] Increment + */ + public function __construct($sec = 0, $inc) {} + + /** + * @return string + */ + public function __toString() {} +} + +class MongoInt32 +{ + /** + * @link https://php.net/manual/en/class.mongoint32.php#mongoint32.props.value + * @var string + */ + public $value; + + /** + * Creates a new 32-bit number with the given value. + * + * @link https://php.net/manual/en/mongoint32.construct.php + * @param string $value A number + */ + public function __construct($value) {} + + /** + * @return string + */ + public function __toString() {} +} + +class MongoInt64 +{ + /** + * @link https://php.net/manual/en/class.mongoint64.php#mongoint64.props.value + * @var string + */ + public $value; + + /** + * Creates a new 64-bit number with the given value. + * + * @link https://php.net/manual/en/mongoint64.construct.php + * @param string $value A number + */ + public function __construct($value) {} + + /** + * @return string + */ + public function __toString() {} +} + +class MongoLog +{ + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.none + */ + public const NONE = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.all + */ + public const ALL = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.warning + */ + public const WARNING = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.info + */ + public const INFO = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.fine + */ + public const FINE = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.rs + */ + public const RS = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.pool + */ + public const POOL = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.io + */ + public const IO = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.server + */ + public const SERVER = 0; + + /** + * @link https://php.net/manual/en/class.mongolog.php#mongolog.constants.parse + */ + public const PARSE = 0; + public const CON = 2; + + /** + * (PECL mongo >= 1.3.0)+ * This function will set a callback function to be called for {@link https://secure.php.net/manual/en/class.mongolog.php MongoLog} events + * instead of triggering warnings. + *
+ * @link https://secure.php.net/manual/en/mongolog.setcallback.php + * @param callable $log_function+ * The function to be called on events. + *
+ *+ * The function should have the following prototype + *
+ * + * log_function ( int $module , int $level, string $message) + *One of the {@link https://secure.php.net/manual/en/class.mongolog.php#mongolog.constants.module MongoLog module constants}.
+ *One of the {@link https://secure.php.net/manual/en/class.mongolog.php#mongolog.constants.level MongoLog level constants}.
+ *The log message itself.
+ * Undocumented template parameter + *
+ * @return mixed + */ +function msgpack_unpack($str, $object = null) {} + +class MessagePack +{ + public const OPT_PHPONLY = -1001; + + /** + * @param $opt [optional] + */ + public function __construct($opt) {} + + public function setOption($option, $value) {} + + public function pack($value) {} + + /** + * @param $str + * @param $object [optional] + */ + public function unpack($str, $object) {} + + public function unpacker() {} +} + +class MessagePackUnpacker +{ + /** + * @param $opt [optional] + */ + public function __construct($opt) {} + + public function __destruct() {} + + public function setOption($option, $value) {} + + public function feed($str) {} + + /** + * @param $str [optional] + * @param $offset [optional] + */ + public function execute($str, &$offset) {} + + /** + * @param $object [optional] + */ + public function data($object) {} + + public function reset() {} +} diff --git a/phpstorm-stubs/mssql/mssql.php b/phpstorm-stubs/mssql/mssql.php new file mode 100644 index 0000000..8d950c6 --- /dev/null +++ b/phpstorm-stubs/mssql/mssql.php @@ -0,0 +1,633 @@ + + * Open MS SQL server connection + * @link https://php.net/manual/en/function.mssql-connect.php + * @param string $servername [optional]
+ * The MS SQL server. It can also include a port number, e.g. + * hostname:port (Linux), or + * hostname,port (Windows). + *
+ * @param string $username [optional]+ * The username. + *
+ * @param string $password [optional]+ * The password. + *
+ * @param bool $new_link [optional]+ * If a second call is made to mssql_connect with the + * same arguments, no new link will be established, but instead, the link + * identifier of the already opened link will be returned. This parameter + * modifies this behavior and makes mssql_connect + * always open a new link, even if mssql_connect was + * called before with the same parameters. + *
+ * @return resource|false a MS SQL link identifier on success, or false on error. + * @removed 7.0 + */ +function mssql_connect($servername = null, $username = null, $password = null, $new_link = false) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The MS SQL server. It can also include a port number. e.g. + * hostname:port. + *
+ * @param string $username [optional]+ * The username. + *
+ * @param string $password [optional]+ * The password. + *
+ * @param bool $new_link [optional]+ * If a second call is made to mssql_pconnect with + * the same arguments, no new link will be established, but instead, the + * link identifier of the already opened link will be returned. This + * parameter modifies this behavior and makes + * mssql_pconnect always open a new link, even if + * mssql_pconnect was called before with the same + * parameters. + *
+ * @return resource|false a positive MS SQL persistent link identifier on success, or + * false on error. + * @removed 7.0 + */ +function mssql_pconnect($servername = null, $username = null, $password = null, $new_link = false) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * A MS SQL link identifier, returned by + * mssql_connect. + *
+ *+ * This function will not close persistent links generated by + * mssql_pconnect. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_close($link_identifier = null) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The database name. + *
+ *+ * To escape the name of a database that contains spaces, hyphens ("-"), + * or any other exceptional characters, the database name must be + * enclosed in brackets, as is shown in the example, below. This + * technique must also be applied when selecting a database name that is + * also a reserved word (such as primary). + *
+ * @param resource $link_identifier [optional]+ * A MS SQL link identifier, returned by + * mssql_connect or + * mssql_pconnect. + *
+ *+ * If no link identifier is specified, the last opened link is assumed. + * If no link is open, the function will try to establish a link as if + * mssql_connect was called, and use it. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_select_db($database_name, $link_identifier = null) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * An SQL query. + *
+ * @param resource $link_identifier [optional]+ * A MS SQL link identifier, returned by + * mssql_connect or + * mssql_pconnect. + *
+ *+ * If the link identifier isn't specified, the last opened link is + * assumed. If no link is open, the function tries to establish a link + * as if mssql_connect was called, and use it. + *
+ * @param int $batch_size [optional]+ * The number of records to batch in the buffer. + *
+ * @return resource|bool a MS SQL result resource on success, true if no rows were + * returned, or false on error. + * @removed 7.0 + */ +function mssql_query($query, $link_identifier = null, $batch_size = 0) {} + +/** + * (PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return int the batch number as an integer. + * @removed 7.0 + */ +function mssql_fetch_batch($result) {} + +/** + * (PHP 4 >= 4.0.4, PHP 5, PECL odbtp >= 1.1.1)+ * A MS SQL link identifier, returned by + * mssql_connect or + * mssql_pconnect. + *
+ * @return int the number of records affected by last operation. + * @removed 7.0 + */ +function mssql_rows_affected($link_identifier) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being freed. This result comes from a + * call to mssql_query. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_free_result($result) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return int the number of rows, as an integer. + * @removed 7.0 + */ +function mssql_num_rows($result) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return int the number of fields, as an integer. + * @removed 7.0 + */ +function mssql_num_fields($result) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $field_offset [optional]+ * The numerical field offset. If the field offset is not specified, the + * next field that was not yet retrieved by this function is retrieved. The + * field_offset starts at 0. + *
+ * @return object an object containing field information. + * @removed 7.0 + */ +function mssql_fetch_field($result, $field_offset = -1) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return array|false an array that corresponds to the fetched row, or false if there + * are no more rows. + * @removed 7.0 + */ +function mssql_fetch_row($result) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $result_type [optional]+ * The type of array that is to be fetched. It's a constant and can take + * the following values: MSSQL_ASSOC, + * MSSQL_NUM, and + * MSSQL_BOTH. + *
+ * @return array|false an array that corresponds to the fetched row, or false if there + * are no more rows. + * @removed 7.0 + */ +function mssql_fetch_array($result, $result_type = MSSQL_BOTH) {} + +/** + * (PHP 4 >= 4.2.0, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return array an associative array that corresponds to the fetched row, or + * false if there are no more rows. + * @removed 7.0 + */ +function mssql_fetch_assoc($result_id) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return object an object with properties that correspond to the fetched row, or + * false if there are no more rows. + * @removed 7.0 + */ +function mssql_fetch_object($result) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $offset [optional]+ * The field offset, starts at 0. If omitted, the current field is used. + *
+ * @return int|false The length of the specified field index on success or false on failure. + * @removed 7.0 + */ +function mssql_field_length($result, $offset = null) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $offset [optional]+ * The field offset, starts at 0. If omitted, the current field is used. + *
+ * @return string|false The name of the specified field index on success or false on failure. + * @removed 7.0 + */ +function mssql_field_name($result, $offset = -1) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $offset [optional]+ * The field offset, starts at 0. If omitted, the current field is used. + *
+ * @return string|false The type of the specified field index on success or false on failure. + * @removed 7.0 + */ +function mssql_field_type($result, $offset = -1) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. + *
+ * @param int $row_number+ * The desired row number of the new result pointer. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_data_seek($result_identifier, $row_number) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $field_offset+ * The field offset, starts at 0. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_field_seek($result, $field_offset) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @param int $row+ * The row number. + *
+ * @param mixed $field+ * Can be the field's offset, the field's name or the field's table dot + * field's name (tablename.fieldname). If the column name has been + * aliased ('select foo as bar from...'), it uses the alias instead of + * the column name. + *
+ *+ * Specifying a numeric offset for the field + * argument is much quicker than specifying a + * fieldname or + * tablename.fieldname argument. + *
+ * @return string the contents of the specified cell. + * @removed 7.0 + */ +function mssql_result($result, $row, $field) {} + +/** + * (PHP 4 >= 4.0.5, PHP 5, PECL odbtp >= 1.1.1)+ * The result resource that is being evaluated. This result comes from a + * call to mssql_query. + *
+ * @return bool true if an additional result set was available or false + * otherwise. + * @removed 7.0 + */ +function mssql_next_result($result_id) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The new error severity. + *
+ * @return void + * @removed 7.0 + */ +function mssql_min_error_severity($severity) {} + +/** + * (PHP 4, PHP 5, PECL odbtp >= 1.1.1)+ * The new message severity. + *
+ * @return void + * @removed 7.0 + */ +function mssql_min_message_severity($severity) {} + +/** + * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)+ * Stored procedure name, like ownew.sp_name or + * otherdb.owner.sp_name. + *
+ * @param resource $link_identifier [optional]+ * A MS SQL link identifier, returned by + * mssql_connect. + *
+ * @return resource|false a resource identifier "statement", used in subsequent calls to + * mssql_bind and mssql_execute, + * or false on errors. + * @removed 7.0 + */ +function mssql_init($sp_name, $link_identifier = null) {} + +/** + * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)+ * Statement resource, obtained with mssql_init. + *
+ * @param string $param_name+ * The parameter name, as a string. + *
+ *+ * You have to include the @ character, like in the + * T-SQL syntax. See the explanation included in + * mssql_execute. + *
+ * @param mixed &$var+ * The PHP variable you'll bind the MSSQL parameter to. It is passed by + * reference, to retrieve OUTPUT and RETVAL values after + * the procedure execution. + *
+ * @param int $type+ * One of: SQLTEXT, + * SQLVARCHAR, SQLCHAR, + * SQLINT1, SQLINT2, + * SQLINT4, SQLBIT, + * SQLFLT4, SQLFLT8, + * SQLFLTN. + *
+ * @param bool $is_output [optional]+ * Whether the value is an OUTPUT parameter or not. If it's an OUTPUT + * parameter and you don't mention it, it will be treated as a normal + * input parameter and no error will be thrown. + *
+ * @param bool $is_null [optional]+ * Whether the parameter is null or not. Passing the null value as + * var will not do the job. + *
+ * @param int $maxlen [optional]+ * Used with char/varchar values. You have to indicate the length of the + * data so if the parameter is a varchar(50), the type must be + * SQLVARCHAR and this value 50. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_bind($stmt, $param_name, &$var, $type, $is_output = false, $is_null = false, $maxlen = -1) {} + +/** + * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)+ * Statement handle obtained with mssql_init. + *
+ * @param bool $skip_results [optional]+ * Whenever to skip the results or not. + *
+ * @return mixed + * @removed 7.0 + */ +function mssql_execute($stmt, $skip_results = false) {} + +/** + * (PHP 4 >= 4.3.2, PHP 5, PECL odbtp >= 1.1.1)+ * Statement resource, obtained with mssql_init. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +function mssql_free_statement($stmt) {} + +/** + * (PHP 4 >= 4.0.7, PHP 5, PECL odbtp >= 1.1.1)+ * A 16 byte binary GUID. + *
+ * @param bool $short_format [optional]+ * Whenever to use short format. + *
+ * @return string the converted string on success. + * @removed 7.0 + */ +function mssql_guid_string($binary, $short_format = null) {} + +/** + * Return an associative array. Used on + * mssql_fetch_array's + * result_type parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('MSSQL_ASSOC', 1); + +/** + * Return an array with numeric keys. Used on + * mssql_fetch_array's + * result_type parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('MSSQL_NUM', 2); + +/** + * Return an array with both numeric keys and + * keys with their field name. This is the + * default value for mssql_fetch_array's + * result_type parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('MSSQL_BOTH', 3); + +/** + * Indicates the 'TEXT' type in MSSQL, used by + * mssql_bind's type + * parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLTEXT', 35); + +/** + * Indicates the 'VARCHAR' type in MSSQL, used by + * mssql_bind's type + * parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLVARCHAR', 39); + +/** + * Indicates the 'CHAR' type in MSSQL, used by + * mssql_bind's type + * parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLCHAR', 47); + +/** + * Represents one byte, with a range of -128 to 127. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLINT1', 48); + +/** + * Represents two bytes, with a range of -32768 + * to 32767. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLINT2', 52); + +/** + * Represents four bytes, with a range of -2147483648 + * to 2147483647. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLINT4', 56); + +/** + * Indicates the 'BIT' type in MSSQL, used by + * mssql_bind's type + * parameter. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLBIT', 50); + +/** + * Represents an four byte float. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLFLT4', 59); + +/** + * Represents an eight byte float. + * @link https://php.net/manual/en/mssql.constants.php + */ +define('SQLFLT8', 62); +define('SQLFLTN', 109); + +// End of mssql v. diff --git a/phpstorm-stubs/mysql/mysql.php b/phpstorm-stubs/mysql/mysql.php new file mode 100644 index 0000000..261cdb5 --- /dev/null +++ b/phpstorm-stubs/mysql/mysql.php @@ -0,0 +1,986 @@ + + * The MySQL server. It can also include a port number. e.g. + * "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for + * the localhost. + * + *+ * If the PHP directive + * mysql.default_host is undefined (default), then the default + * value is 'localhost:3306'. In "ini.sql.safe-mode", this parameter is ignored + * and value 'localhost:3306' is always used. + *
+ * @param string $username [optional]+ * The username. Default value is defined by mysql.default_user. In + * "ini.sql.safe-mode", this parameter is ignored and the name of the user that + * owns the server process is used. + *
+ * @param string $password [optional]+ * The password. Default value is defined by mysql.default_password. In + * "ini.sql.safe-mode", this parameter is ignored and empty password is used. + *
+ * @param bool $new_link [optional]+ * If a second call is made to mysql_connect + * with the same arguments, no new link will be established, but + * instead, the link identifier of the already opened link will be + * returned. The new_link parameter modifies this + * behavior and makes mysql_connect always open + * a new link, even if mysql_connect was called + * before with the same parameters. + * In "ini.sql.safe-mode", this parameter is ignored. + *
+ * @param int $client_flags [optional]+ * The client_flags parameter can be a combination + * of the following constants: + * 128 (enable LOAD DATA LOCAL handling), + * MYSQL_CLIENT_SSL, + * MYSQL_CLIENT_COMPRESS, + * MYSQL_CLIENT_IGNORE_SPACE or + * MYSQL_CLIENT_INTERACTIVE. + * Read the section about for further information. + * In "ini.sql.safe-mode", this parameter is ignored. + *
+ * @return resource|false a MySQL link identifier on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_connect($server = 'ini_get("mysql.default_host")', $username = 'ini_get("mysql.default_user")', $password = 'ini_get("mysql.default_password")', $new_link = false, $client_flags = 0) {} + +/** + * Open a persistent connection to a MySQL server + * @link https://php.net/manual/en/function.mysql-pconnect.php + * @param string $server [optional]+ * The MySQL server. It can also include a port number. e.g. + * "hostname:port" or a path to a local socket e.g. ":/path/to/socket" for + * the localhost. + *
+ *+ * If the PHP directive + * mysql.default_host is undefined (default), then the default + * value is 'localhost:3306' + *
+ * @param string $username [optional]+ * The username. Default value is the name of the user that owns the + * server process. + *
+ * @param string $password [optional]+ * The password. Default value is an empty password. + *
+ * @param int $client_flags [optional]+ * The client_flags parameter can be a combination + * of the following constants: + * 128 (enable LOAD DATA LOCAL handling), + * MYSQL_CLIENT_SSL, + * MYSQL_CLIENT_COMPRESS, + * MYSQL_CLIENT_IGNORE_SPACE or + * MYSQL_CLIENT_INTERACTIVE. + *
+ * @return resource|false a MySQL persistent link identifier on success, or false on + * failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_pconnect($server = 'ini_get("mysql.default_host")', $username = 'ini_get("mysql.default_user")', $password = 'ini_get("mysql.default_password")', $client_flags = null) {} + +/** + * Close MySQL connection + * @link https://php.net/manual/en/function.mysql-close.php + * @param resource $link_identifier [optional] + * @return bool true on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_close($link_identifier = null) {} + +/** + * Select a MySQL database + * @link https://php.net/manual/en/function.mysql-select-db.php + * @param string $database_name+ * The name of the database that is to be selected. + *
+ * @param resource $link_identifier [optional] + * @return bool true on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_select_db($database_name, $link_identifier = null) {} + +/** + * Send a MySQL query + * @link https://php.net/manual/en/function.mysql-query.php + * @param string $query+ * An SQL query + *
+ *+ * The query string should not end with a semicolon. + * Data inside the query should be properly escaped. + *
+ * @param resource $link_identifier [optional] + * @return resource|bool For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, + * mysql_query + * returns a resource on success, or false on + * error. + * + *+ * For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, + * mysql_query returns true on success + * or false on error. + *
+ *+ * The returned result resource should be passed to + * mysql_fetch_array, and other + * functions for dealing with result tables, to access the returned data. + *
+ *+ * Use mysql_num_rows to find out how many rows + * were returned for a SELECT statement or + * mysql_affected_rows to find out how many + * rows were affected by a DELETE, INSERT, REPLACE, or UPDATE + * statement. + *
+ *+ * mysql_query will also fail and return false + * if the user does not have permission to access the table(s) referenced by + * the query. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_query($query, $link_identifier = null) {} + +/** + * @deprecated 5.5 + * Send an SQL query to MySQL without fetching and buffering the result rows. + * @link https://php.net/manual/en/function.mysql-unbuffered-query.php + * @param string $query
+ * The SQL query to execute. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param resource $link_identifier [optional] + * @return resource|bool For SELECT, SHOW, DESCRIBE or EXPLAIN statements, + * mysql_unbuffered_query + * returns a resource on success, or false on + * error. + * + *+ * For other type of SQL statements, UPDATE, DELETE, DROP, etc, + * mysql_unbuffered_query returns true on success + * or false on error. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_unbuffered_query($query, $link_identifier = null) {} + +/** + * Selects a database and executes a query on it + * @link https://php.net/manual/en/function.mysql-db-query.php + * @param string $database
+ * The name of the database that will be selected. + *
+ * @param string $query+ * The MySQL query. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @param resource $link_identifier [optional] + * @return resource|bool a positive MySQL result resource to the query result, + * or false on error. The function also returns true/false for + * INSERT/UPDATE/DELETE + * queries to indicate success/failure. + * @removed 7.0 + * @see mysql_select_db() + * @see mysql_query() + */ +#[Deprecated('Use mysql_select_db() and mysql_query() instead', since: '5.3')] +function mysql_db_query($database, $query, $link_identifier = null) {} + +/** + * List databases available on a MySQL server + * @link https://php.net/manual/en/function.mysql-list-dbs.php + * @param resource $link_identifier [optional] + * @return resource|false a result pointer resource on success, or false on + * failure. Use the mysql_tablename function to traverse + * this result pointer, or any function for result tables, such as + * mysql_fetch_array. + * @removed 7.0 + */ +#[Deprecated(since: '5.4')] +function mysql_list_dbs($link_identifier = null) {} + +/** + * List tables in a MySQL database + * @link https://php.net/manual/en/function.mysql-list-tables.php + * @param string $database+ * The name of the database + *
+ * @param resource $link_identifier [optional] + * @return resource|false A result pointer resource on success or false on failure. + *+ * Use the mysql_tablename function to + * traverse this result pointer, or any function for result tables, + * such as mysql_fetch_array. + *
+ * @removed 7.0 + */ +#[Deprecated(since: '5.3')] +function mysql_list_tables($database, $link_identifier = null) {} + +/** + * List MySQL table fields + * @link https://php.net/manual/en/function.mysql-list-fields.php + * @param string $database_name+ * The name of the database that's being queried. + *
+ * @param string $table_name+ * The name of the table that's being queried. + *
+ * @param resource $link_identifier [optional] + * @return resource|false A result pointer resource on success, or false on + * failure. + * + *+ * The returned result can be used with mysql_field_flags, + * mysql_field_len, + * mysql_field_name + * mysql_field_type. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_list_fields($database_name, $table_name, $link_identifier = null) {} + +/** + * List MySQL processes + * @link https://php.net/manual/en/function.mysql-list-processes.php + * @param resource $link_identifier [optional] + * @return resource|false A result pointer resource on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_list_processes($link_identifier = null) {} + +/** + * Returns the text of the error message from previous MySQL operation + * @link https://php.net/manual/en/function.mysql-error.php + * @param resource $link_identifier [optional] + * @return string the error text from the last MySQL function, or + * '' (empty string) if no error occurred. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_error($link_identifier = null) {} + +/** + * Returns the numerical value of the error message from previous MySQL operation + * @link https://php.net/manual/en/function.mysql-errno.php + * @param resource $link_identifier [optional] + * @return int the error number from the last MySQL function, or + * 0 (zero) if no error occurred. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_errno($link_identifier = null) {} + +/** + * Get number of affected rows in previous MySQL operation + * @link https://php.net/manual/en/function.mysql-affected-rows.php + * @param resource $link_identifier [optional] + * @return int the number of affected rows on success, and -1 if the last query + * failed. + *
+ *+ * If the last query was a DELETE query with no WHERE clause, all + * of the records will have been deleted from the table but this + * function will return zero with MySQL versions prior to 4.1.2. + *
+ *+ * When using UPDATE, MySQL will not update columns where the new value is the + * same as the old value. This creates the possibility that + * mysql_affected_rows may not actually equal the number + * of rows matched, only the number of rows that were literally affected by + * the query. + *
+ *+ * The REPLACE statement first deletes the record with the same primary key + * and then inserts the new record. This function returns the number of + * deleted records plus the number of inserted records. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_affected_rows($link_identifier = null) {} + +/** + * Get the ID generated in the last query + * @link https://php.net/manual/en/function.mysql-insert-id.php + * @param resource $link_identifier [optional] + * @return int The ID generated for an AUTO_INCREMENT column by the previous + * query on success, 0 if the previous + * query does not generate an AUTO_INCREMENT value, or false if + * no MySQL connection was established. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_insert_id($link_identifier = null) {} + +/** + * Get result data + * @link https://php.net/manual/en/function.mysql-result.php + * @param resource $result + * @param int $row
+ * The row number from the result that's being retrieved. Row numbers + * start at 0. + *
+ * @param mixed $field [optional]+ * The name or offset of the field being retrieved. + *
+ *+ * It can be the field's offset, the field's name, or the field's table + * dot field name (tablename.fieldname). If the column name has been + * aliased ('select foo as bar from...'), use the alias instead of the + * column name. If undefined, the first field is retrieved. + *
+ * @return string The contents of one cell from a MySQL result set on success, or + * false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_result($result, $row, $field = 0) {} + +/** + * Get number of rows in result + * @link https://php.net/manual/en/function.mysql-num-rows.php + * @param resource $resultThe result resource that is being evaluated. This result comes from a call to mysql_query().
+ * @return int|falseThe number of rows in the result set on success or FALSE on failure.
+ * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_num_rows($result) {} + +/** + * Get number of fields in result + * @link https://php.net/manual/en/function.mysql-num-fields.php + * @param resource $result + * @return int the number of fields in the result set resource on + * success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_num_fields($result) {} + +/** + * Get a result row as an enumerated array + * @link https://php.net/manual/en/function.mysql-fetch-row.php + * @param resource $result + * @return array an numerical array of strings that corresponds to the fetched row, or + * false if there are no more rows. + * + *+ * mysql_fetch_row fetches one row of data from + * the result associated with the specified result identifier. The + * row is returned as an array. Each result column is stored in an + * array offset, starting at offset 0. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_fetch_row($result) {} + +/** + * Fetch a result row as an associative array, a numeric array, or both + * @link https://php.net/manual/en/function.mysql-fetch-array.php + * @param resource $result + * @param int $result_type [optional]
+ * The type of array that is to be fetched. It's a constant and can + * take the following values: MYSQL_ASSOC, + * MYSQL_NUM, and + * MYSQL_BOTH. + *
+ * @return array|false an array of strings that corresponds to the fetched row, or false + * if there are no more rows. The type of returned array depends on + * how result_type is defined. By using + * MYSQL_BOTH (default), you'll get an array with both + * associative and number indices. Using MYSQL_ASSOC, you + * only get associative indices (as mysql_fetch_assoc + * works), using MYSQL_NUM, you only get number indices + * (as mysql_fetch_row works). + * + *+ * If two or more columns of the result have the same field names, + * the last column will take precedence. To access the other column(s) + * of the same name, you must use the numeric index of the column or + * make an alias for the column. For aliased columns, you cannot + * access the contents with the original column name. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_fetch_array($result, $result_type = MYSQL_BOTH) {} + +/** + * Fetch a result row as an associative array + * @link https://php.net/manual/en/function.mysql-fetch-assoc.php + * @param resource $result + * @return array an associative array of strings that corresponds to the fetched row, or + * false if there are no more rows. + *
+ *
+ * If two or more columns of the result have the same field names,
+ * the last column will take precedence. To access the other
+ * column(s) of the same name, you either need to access the
+ * result with numeric indices by using
+ * mysql_fetch_row or add alias names.
+ * See the example at the mysql_fetch_array
+ * description about aliases.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.5')]
+function mysql_fetch_assoc($result) {}
+
+/**
+ * @template T
+ *
+ * Fetch a result row as an object
+ * @link https://php.net/manual/en/function.mysql-fetch-object.php
+ * @param resource $result
+ * @param class-string
+ * The name of the class to instantiate, set the properties of and return.
+ * If not specified, a stdClass object is returned.
+ *
+ * An optional array of parameters to pass to the constructor
+ * for class_name objects.
+ *
+ * mysql_fetch_row fetches one row of data from + * the result associated with the specified result identifier. The + * row is returned as an array. Each result column is stored in an + * array offset, starting at offset 0. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_fetch_object($result, $class_name = 'stdClass', array $params = null) {} + +/** + * Move internal result pointer + * @link https://php.net/manual/en/function.mysql-data-seek.php + * @param resource $result + * @param int $row_number
+ * The desired row number of the new result pointer. + *
+ * @return bool true on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_data_seek($result, $row_number) {} + +/** + * Get the length of each output in a result + * @link https://php.net/manual/en/function.mysql-fetch-lengths.php + * @param resource $result + * @return array|false An array of lengths on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_fetch_lengths($result) {} + +/** + * Get column information from a result and return as an object + * @link https://php.net/manual/en/function.mysql-fetch-field.php + * @param resource $result + * @param int $field_offset [optional]+ * The numerical field offset. If the field offset is not specified, the + * next field that was not yet retrieved by this function is retrieved. + * The field_offset starts at 0. + *
+ * @return object an object containing field information. The properties + * of the object are: + * + *+ * name - column name + * table - name of the table the column belongs to + * def - default value of the column + * max_length - maximum length of the column + * not_null - 1 if the column cannot be null + * primary_key - 1 if the column is a primary key + * unique_key - 1 if the column is a unique key + * multiple_key - 1 if the column is a non-unique key + * numeric - 1 if the column is numeric + * blob - 1 if the column is a BLOB + * type - the type of the column + * unsigned - 1 if the column is unsigned + * zerofill - 1 if the column is zero-filled + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_fetch_field($result, $field_offset = 0) {} + +/** + * Set result pointer to a specified field offset + * @link https://php.net/manual/en/function.mysql-field-seek.php + * @param resource $result + * @param int $field_offset + * @return bool true on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_seek($result, $field_offset) {} + +/** + * Free result memory + * @link https://php.net/manual/en/function.mysql-free-result.php + * @param resource $result + * @return bool true on success or false on failure. + *
+ * If a non-resource is used for the result, an + * error of level E_WARNING will be emitted. It's worth noting that + * mysql_query only returns a resource + * for SELECT, SHOW, EXPLAIN, and DESCRIBE queries. + *
+ * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_free_result($result) {} + +/** + * Get the name of the specified field in a result + * @link https://php.net/manual/en/function.mysql-field-name.php + * @param resource $result + * @param int $field_offset + * @return string|false The name of the specified field index on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_name($result, $field_offset) {} + +/** + * Get name of the table the specified field is in + * @link https://php.net/manual/en/function.mysql-field-table.php + * @param resource $result + * @param int $field_offset + * @return string The name of the table on success. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_table($result, $field_offset) {} + +/** + * Returns the length of the specified field + * @link https://php.net/manual/en/function.mysql-field-len.php + * @param resource $result + * @param int $field_offset + * @return int|false The length of the specified field index on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_len($result, $field_offset) {} + +/** + * Get the type of the specified field in a result + * @link https://php.net/manual/en/function.mysql-field-type.php + * @param resource $result + * @param int $field_offset + * @return string The returned field type + * will be one of "int", "real", + * "string", "blob", and others as + * detailed in the MySQL + * documentation. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_type($result, $field_offset) {} + +/** + * Get the flags associated with the specified field in a result + * @link https://php.net/manual/en/function.mysql-field-flags.php + * @param resource $result + * @param int $field_offset + * @return string|false a string of flags associated with the result or false on failure. + *+ * The following flags are reported, if your version of MySQL + * is current enough to support them: "not_null", + * "primary_key", "unique_key", + * "multiple_key", "blob", + * "unsigned", "zerofill", + * "binary", "enum", + * "auto_increment" and "timestamp". + *
+ * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_field_flags($result, $field_offset) {} + +/** + * Escapes a string for use in a mysql_query + * @link https://php.net/manual/en/function.mysql-escape-string.php + * @param string $unescaped_string+ * The string that is to be escaped. + *
+ * @return string the escaped string. + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_real_escape_string(%parameter0%)', since: '5.3')] +function mysql_escape_string($unescaped_string) {} + +/** + * Escapes special characters in a string for use in an SQL statement + * @link https://php.net/manual/en/function.mysql-real-escape-string.php + * @param string $unescaped_string+ * The string that is to be escaped. + *
+ * @param resource $link_identifier [optional] + * @return string|false the escaped string, or false on error. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_real_escape_string($unescaped_string, $link_identifier = null) {} + +/** + * Get current system status + * @link https://php.net/manual/en/function.mysql-stat.php + * @param resource $link_identifier [optional] + * @return string a string with the status for uptime, threads, queries, open tables, + * flush tables and queries per second. For a complete list of other status + * variables, you have to use the SHOW STATUS SQL command. + * If link_identifier is invalid, null is returned. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_stat($link_identifier = null) {} + +/** + * Return the current thread ID + * @link https://php.net/manual/en/function.mysql-thread-id.php + * @param resource $link_identifier [optional] + * @return int|false The thread ID on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_thread_id($link_identifier = null) {} + +/** + * Returns the name of the character set + * @link https://php.net/manual/en/function.mysql-client-encoding.php + * @param resource $link_identifier [optional] + * @return string the default character set name for the current connection. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_client_encoding($link_identifier = null) {} + +/** + * Ping a server connection or reconnect if there is no connection + * @link https://php.net/manual/en/function.mysql-ping.php + * @param resource $link_identifier [optional] + * @return bool true if the connection to the server MySQL server is working, + * otherwise false. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_ping($link_identifier = null) {} + +/** + * Get MySQL client info + * @link https://php.net/manual/en/function.mysql-get-client-info.php + * @return string The MySQL client version. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_get_client_info() {} + +/** + * Get MySQL host info + * @link https://php.net/manual/en/function.mysql-get-host-info.php + * @param resource $link_identifier [optional] + * @return string a string describing the type of MySQL connection in use for the + * connection or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_get_host_info($link_identifier = null) {} + +/** + * Get MySQL protocol info + * @link https://php.net/manual/en/function.mysql-get-proto-info.php + * @param resource $link_identifier [optional] + * @return int|false the MySQL protocol on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_get_proto_info($link_identifier = null) {} + +/** + * Get MySQL server info + * @link https://php.net/manual/en/function.mysql-get-server-info.php + * @param resource $link_identifier [optional] + * @return string|false the MySQL server version on success or false on failure. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_get_server_info($link_identifier = null) {} + +/** + * Get information about the most recent query + * @link https://php.net/manual/en/function.mysql-info.php + * @param resource $link_identifier [optional] + * @return string|false information about the statement on success, or false on + * failure. See the example below for which statements provide information, + * and what the returned value may look like. Statements that are not listed + * will return false. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_info($link_identifier = null) {} + +/** + * Sets the client character set + * @link https://php.net/manual/en/function.mysql-set-charset.php + * @param string $charset+ * A valid character set name. + *
+ * @param resource $link_identifier [optional] + * @return bool true on success or false on failure. + * @since 5.2.3 + * @removed 7.0 + * @see mysqli_set_charset() + */ +#[Deprecated(replacement: 'Use mysqli_set_charset instead', since: '5.5')] +function mysql_set_charset($charset, $link_identifier = null) {} + +/** + * @param $database_name + * @param $query + * @param $link_identifier [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: "mysql_db_query(%parametersList%)", since: '5.3')] +function mysql($database_name, $query, $link_identifier) {} + +/** + * @param $result + * @param $field_index + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_field_name(%parametersList%)', since: '5.5')] +function mysql_fieldname($result, $field_index) {} + +/** + * @param $result + * @param $field_offset + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_field_table(%parametersList%)', since: '5.5')] +function mysql_fieldtable($result, $field_offset) {} + +/** + * @param $result + * @param $field_offset + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_field_len(%parametersList%)', since: '5.5')] +function mysql_fieldlen($result, $field_offset) {} + +/** + * @param $result + * @param $field_offset + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_field_type(%parametersList%)', since: '5.5')] +function mysql_fieldtype($result, $field_offset) {} + +/** + * @param $result + * @param $field_offset + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_field_flags(%parametersList%)', since: '5.5')] +function mysql_fieldflags($result, $field_offset) {} + +/** + * @param $database_name + * @param $link_identifier [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_select_db(%parametersList%)', since: '5.5')] +function mysql_selectdb($database_name, $link_identifier) {} + +/** + * @param $result + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_free_result(%parametersList%)', since: '5.5')] +function mysql_freeresult($result) {} + +/** + * @param $result + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_num_fields(%parametersList%)', since: '5.5')] +function mysql_numfields($result) {} + +/** + * (PHP 4, PHP 5) + * Alias of mysql_num_rows() + * @link https://php.net/manual/en/function.mysql-num-rows.php + * @param resource $resultThe result resource that is being evaluated. This result comes from a call to mysql_query().
+ * @return int|falseThe number of rows in the result set on success or FALSE on failure.
+ * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_num_rows(%parametersList%)', since: '5.5')] +function mysql_numrows($result) {} + +/** + * @param $link_identifier [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_list_dbs(%parametersList%)', since: '5.5')] +function mysql_listdbs($link_identifier) {} + +/** + * @param $database_name + * @param $link_identifier [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_list_tables(%parametersList%)', since: '5.5')] +function mysql_listtables($database_name, $link_identifier) {} + +/** + * @param $database_name + * @param $table_name + * @param $link_identifier [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_list_fields(%parametersList%)', since: '5.5')] +function mysql_listfields($database_name, $table_name, $link_identifier) {} + +/** + * Retrieves database name from the call to {@see mysql_list_dbs} + * @link https://php.net/manual/en/function.mysql-db-name.php + * @param resource $result+ * The result pointer from a call to mysql_list_dbs. + *
+ * @param int $row+ * The index into the result set. + *
+ * @param mixed $field [optional]+ * The field name. + *
+ * @return string|false the database name on success, and false on failure. If false + * is returned, use mysql_error to determine the nature + * of the error. + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_db_name($result, $row, $field = null) {} + +/** + * @param $result + * @param $row + * @param $field [optional] + * @removed 7.0 + */ +#[Deprecated(replacement: 'mysql_db_name(%parametersList%)', since: '5.5')] +function mysql_dbname($result, $row, $field) {} + +/** + * Get table name of field + * @link https://php.net/manual/en/function.mysql-tablename.php + * @param resource $result+ * A result pointer resource that's returned from + * mysql_list_tables. + *
+ * @param int $i+ * The integer index (row/table number) + *
+ * @return string|false The name of the table on success or false on failure. + *+ * Use the mysql_tablename function to + * traverse this result pointer, or any function for result tables, + * such as mysql_fetch_array. + *
+ * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_tablename($result, $i) {} + +/** + * @param $result + * @param $row + * @param $field [optional] + * @removed 7.0 + */ +#[Deprecated(since: '5.5')] +function mysql_table_name($result, $row, $field) {} + +/** + * Columns are returned into the array having the fieldname as the array + * index. + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_ASSOC', 1); + +/** + * Columns are returned into the array having a numerical index to the + * fields. This index starts with 0, the first field in the result. + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_NUM', 2); + +/** + * Columns are returned into the array having both a numerical index + * and the fieldname as the array index. + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_BOTH', 3); + +/** + * Use compression protocol + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_CLIENT_COMPRESS', 32); + +/** + * Use SSL encryption. This flag is only available with version 4.x + * of the MySQL client library or newer. Version 3.23.x is bundled both + * with PHP 4 and Windows binaries of PHP 5. + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_CLIENT_SSL', 2048); + +/** + * Allow interactive_timeout seconds (instead of wait_timeout) of + * inactivity before closing the connection. + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_CLIENT_INTERACTIVE', 1024); + +/** + * Allow space after function names + * @link https://php.net/manual/en/mysql.constants.php + * @deprecated 5.5 + * @removed 7.0 + */ +define('MYSQL_CLIENT_IGNORE_SPACE', 256); + +// End of mysql v.1.0 diff --git a/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php b/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php new file mode 100644 index 0000000..7ab0b89 --- /dev/null +++ b/phpstorm-stubs/mysql_xdevapi/mysql_xdevapi.php @@ -0,0 +1,1558 @@ + 'string'], default: '')] + protected $sqlstate; + + /** + * The error code + * + * @var int + */ + protected $code; + + /** + * @since 8.1 + */ + public function getSqlState(): string {} +} + +/** + * MySQLi Driver. + * @link https://php.net/manual/en/class.mysqli-driver.php + */ +final class mysqli_driver +{ + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $client_info; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $client_version; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $driver_version; + + /** + * @var string + */ + public $embedded; + + /** + * @var bool + */ + #[LanguageLevelTypeAware(['8.1' => 'bool'], default: '')] + public $reconnect; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $report_mode; +} + +/** + * Represents a connection between PHP and a MySQL database. + * @link https://php.net/manual/en/class.mysqli.php + */ +class mysqli +{ + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'string|int'], default: '')] + public $affected_rows; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $client_info; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $client_version; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $connect_errno; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $connect_error; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $errno; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $error; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $field_count; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $host_info; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')] + public $info; + + /** + * @var int|string + */ + #[LanguageLevelTypeAware(['8.1' => 'int|string'], default: '')] + public $insert_id; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $server_info; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $server_version; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $sqlstate; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $protocol_version; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $thread_id; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $warning_count; + + /** + * @var array A list of errors, each as an associative array containing the errno, error, and sqlstate. + * @link https://secure.php.net/manual/en/mysqli.error-list.php + */ + #[LanguageLevelTypeAware(['8.1' => 'array'], default: '')] + public $error_list; + public $stat; + + /** + * Open a new connection to the MySQL server + * @link https://php.net/manual/en/mysqli.construct.php + * @param string $hostname [optional] Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. Prepending host by p: opens a persistent connection. mysqli_change_user() is automatically called on connections opened from the connection pool. Defaults to ini_get("mysqli.default_host") + * @param string $username [optional] The MySQL user name. Defaults to ini_get("mysqli.default_user") + * @param string $password [optional] If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. This allows one username to be used with different permissions (depending on if a password as provided or not). Defaults to ini_get("mysqli.default_pw") + * @param string $database [optional] If provided will specify the default database to be used when performing queries. Defaults to "" + * @param int $port [optional] Specifies the port number to attempt to connect to the MySQL server. Defaults to ini_get("mysqli.default_port") + * @param string $socket [optional] Specifies the socket or named pipe that should be used. Defaults to ini_get("mysqli.default_socket") + */ + public function __construct( + ?string $hostname = null, + ?string $username = null, + ?string $password = null, + ?string $database = null, + ?int $port = null, + ?string $socket = null + ) {} + + /** + * Turns on or off auto-committing database modifications + * @link https://php.net/manual/en/mysqli.autocommit.php + * @param bool $enable+ * Whether to turn on auto-commit or not. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function autocommit(bool $enable): bool {} + + /** + * Starts a transaction + * @link https://secure.php.net/manual/en/mysqli.begin-transaction.php + * @param int $flags [optional] + * @param string $name [optional] + * @return bool true on success or false on failure. + * @since 5.5 + */ + #[TentativeType] + public function begin_transaction( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null + ): bool {} + + /** + * Changes the user of the specified database connection + * @link https://php.net/manual/en/mysqli.change-user.php + * @param string $username+ * The MySQL user name. + *
+ * @param string $password+ * The MySQL password. + *
+ * @param string $database+ * The database to change to. + *
+ *+ * If desired, the null value may be passed resulting in only changing + * the user and not selecting a database. To select a database in this + * case use the mysqli_select_db function. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function change_user(string $username, string $password, ?string $database): bool {} + + /** + * Returns the current character set of the database connection + * @link https://php.net/manual/en/mysqli.character-set-name.php + * @return string The current character set of the connection + */ + #[TentativeType] + public function character_set_name(): string {} + + /** + * @removed 5.4 + */ + #[Deprecated(since: '5.3')] + public function client_encoding() {} + + /** + * Closes a previously opened database connection + * @link https://php.net/manual/en/mysqli.close.php + * @return bool true on success or false on failure. + */ + public function close() {} + + /** + * Commits the current transaction + * @link https://php.net/manual/en/mysqli.commit.php + * @param int $flags A bitmask of MYSQLI_TRANS_COR_* constants. + * @param string $name If provided then COMMIT $name is executed. + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function commit(int $flags = 0, ?string $name = null): bool {} + + /** + * @link https://php.net/manual/en/function.mysqli-connect.php + * @param string|null $hostname [optional] + * @param string|null $username [optional] + * @param string|null $password [optional] + * @param string|null $database [optional] + * @param int|null $port [optional] + * @param string|null $socket [optional] + * @return bool + */ + #[TentativeType] + public function connect( + ?string $hostname = null, + ?string $username = null, + ?string $password = null, + ?string $database = null, + ?int $port = null, + ?string $socket = null + ): bool {} + + /** + * Dump debugging information into the log + * @link https://php.net/manual/en/mysqli.dump-debug-info.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function dump_debug_info(): bool {} + + /** + * Performs debugging operations + * @link https://php.net/manual/en/mysqli.debug.php + * @param string $options+ * A string representing the debugging operation to perform + *
+ * @return bool true. + */ + public function debug(string $options) {} + + /** + * Returns a character set object + * @link https://php.net/manual/en/mysqli.get-charset.php + * @return object|null The function returns a character set object with the following properties: + * charset + *Character set name
+ * collation + *Collation name
+ * dir + *Directory the charset description was fetched from (?) or "" for built-in character sets
+ * min_length + *Minimum character length in bytes
+ * max_length + *Maximum character length in bytes
+ * number + *Internal character set number
+ * state + *Character set status (?)
+ */ + #[TentativeType] + public function get_charset(): ?object {} + + /** + * @param mysqli $mysql + * @param string $query + * @param array|null $params + * @return mysqli_result|bool + * @see mysqli_execute_query + * @since 8.2 + */ + public function execute_query(string $query, ?array $params = null): mysqli_result|bool {} + + /** + * Returns the MySQL client version as a string + * @link https://php.net/manual/en/mysqli.get-client-info.php + * @return string A string that represents the MySQL client library version + */ + #[TentativeType] + public function get_client_info(): string {} + + /** + * Returns statistics about the client connection + * @link https://php.net/manual/en/mysqli.get-connection-stats.php + * @return array an array with connection stats. + */ + #[TentativeType] + public function get_connection_stats(): array {} + + /** + * Returns the version of the MySQL server + * @link https://php.net/manual/en/mysqli.get-server-info.php + * @return string A character string representing the server version. + */ + #[TentativeType] + public function get_server_info(): string {} + + /** + * Get result of SHOW WARNINGS + * @link https://php.net/manual/en/mysqli.get-warnings.php + * @return mysqli_warning|false + */ + #[TentativeType] + public function get_warnings(): mysqli_warning|false {} + + /** + * Initializes MySQLi object + * @link https://php.net/manual/en/mysqli.init.php + * @return bool|null + * @deprecated 8.1 + */ + public function init() {} + + /** + * Asks the server to kill a MySQL thread + * @link https://php.net/manual/en/mysqli.kill.php + * @param int $process_id + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function kill(int $process_id): bool {} + + /** + * Performs one or more queries on the database + * @link https://php.net/manual/en/mysqli.multi-query.php + * @param string $query+ * A string containing the queries to be executed. + * Multiple queries must be separated by a semicolon. + *
+ *+ * If the query contains any variable input then parameterized + * prepared statements should be used instead. Alternatively, + * the data must be properly formatted and all strings must be + * escaped using the mysqli_real_escape_string function. + *
+ * @return bool false if the first statement failed. + * To retrieve subsequent errors from other statements you have to call + * mysqli_next_result first. + */ + #[TentativeType] + public function multi_query(string $query): bool {} + + /** + * @link https://php.net/manual/en/mysqli.construct.php + * @param string $host [optional] + * @param string $username [optional] + * @param string $password [optional] + * @param string $database [optional] + * @param int $port [optional] + * @param string $socket [optional] + * + * @removed 8.0 + */ + public function mysqli($host = null, $username = null, $password = null, $database = null, $port = null, $socket = null) {} + + /** + * Check if there are any more query results from a multi query + * @link https://php.net/manual/en/mysqli.more-results.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function more_results(): bool {} + + /** + * Prepare next result from multi_query + * @link https://php.net/manual/en/mysqli.next-result.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function next_result(): bool {} + + /** + * Set options + * @link https://php.net/manual/en/mysqli.options.php + * @param int $option+ * The option that you want to set. It can be one of the following values: + *
| Name | + *Description | + *
| MYSQLI_OPT_CONNECT_TIMEOUT | + *connection timeout in seconds (supported on Windows with TCP/IP since PHP 5.3.1) | + *
| MYSQLI_OPT_LOCAL_INFILE | + *enable/disable use of LOAD LOCAL INFILE | + *
| MYSQLI_INIT_COMMAND | + *command to execute after when connecting to MySQL server | + *
| MYSQLI_READ_DEFAULT_FILE | + *+ * Read options from named option file instead of my.cnf + * | + *
| MYSQLI_READ_DEFAULT_GROUP | + *+ * Read options from the named group from my.cnf + * or the file specified with MYSQL_READ_DEFAULT_FILE + * | + *
| MYSQLI_SERVER_PUBLIC_KEY | + *+ * RSA public key file used with the SHA-256 based authentication. + * | + *
+ * The value for the option. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function options(int $option, $value): bool {} + + /** + * Pings a server connection, or tries to reconnect if the connection has gone down + * @link https://php.net/manual/en/mysqli.ping.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function ping(): bool {} + + /** + * Prepares an SQL statement for execution + * @link https://php.net/manual/en/mysqli.prepare.php + * @param string $query+ * The query, as a string. It must consist of a single SQL statement. + *
+ *+ * The SQL statement may contain zero or more parameter markers + * represented by question mark (?) characters + * at the appropriate positions. + *
+ *+ * The markers are legal only in certain places in SQL statements. + * For example, they are permitted in the VALUES() + * list of an INSERT statement (to specify column + * values for a row), or in a comparison with a column in a + * WHERE clause to specify a comparison value. + *
+ *+ * However, they are not permitted for identifiers (such as table or + * column names), or to specify both operands of a binary operator such as the = equal + * sign. The latter restriction is necessary because it would be + * impossible to determine the parameter type. + * In general, parameters are legal + * only in Data Manipulation Language (DML) statements, and not in Data + * Definition Language (DDL) statements. + *
+ * @return mysqli_stmt|false mysqli_prepare returns a statement object or false if an error occurred. + */ + #[TentativeType] + public function prepare(string $query): mysqli_stmt|false {} + + /** + * Performs a query on the database + * @link https://php.net/manual/en/mysqli.query.php + * @param string $query+ * The query string. + *
+ *+ * If the query contains any variable input then parameterized + * prepared statements should be used instead. Alternatively, + * the data must be properly formatted and all strings must be + * escaped using the mysqli_real_escape_string function. + *
+ * @param int $result_mode [optional]+ * The result mode can be one of 3 constants indicating + * how the result will be returned from the MySQL server. + *
+ *+ * MYSQLI_STORE_RESULT (default) - returns a mysqli_result + * object with buffered result set. + *
+ *+ * MYSQLI_USE_RESULT - returns a mysqli_result object + * with unbuffered result set. As long as there are pending records + * waiting to be fetched, the connection line will be busy and all + * subsequent calls will return error Commands out of sync. To avoid + * the error all records must be fetched from the server or the result + * set must be discarded by calling mysqli_free_result. + *
+ *+ * MYSQLI_ASYNC (available with mysqlnd) - the query is performed + * asynchronously and no result set is immediately returned. + * mysqli_poll is then used to get results from such queries. + * Used in combination with either + * MYSQLI_STORE_RESULT or MYSQLI_USE_RESULT constant. + *
+ * @return mysqli_result|bool Returns false on failure. + * For successful queries which produce a result set, + * such as SELECT, SHOW, DESCRIBE or EXPLAIN, + * mysqli_query will return a mysqli_result object. + * For other successful queries mysqli_query will + * return true. + */ + #[TentativeType] + public function query( + string $query, + #[PhpStormStubsElementAvailable(from: '7.1')] int $result_mode = MYSQLI_STORE_RESULT + ): mysqli_result|bool {} + + /** + * Opens a connection to a mysql server + * @link https://php.net/manual/en/mysqli.real-connect.php + * @param string $hostname [optional]+ * Can be either a host name or an IP address. Passing the null value + * or the string "localhost" to this parameter, the local host is + * assumed. When possible, pipes will be used instead of the TCP/IP + * protocol. + *
+ * @param string $username [optional]+ * The MySQL user name. + *
+ * @param string $password [optional]+ * If provided or null, the MySQL server will attempt to authenticate + * the user against those user records which have no password only. This + * allows one username to be used with different permissions (depending + * on if a password as provided or not). + *
+ * @param string $database [optional]+ * If provided will specify the default database to be used when + * performing queries. + *
+ * @param int $port [optional]+ * Specifies the port number to attempt to connect to the MySQL server. + *
+ * @param string $socket [optional]+ * Specifies the socket or named pipe that should be used. + *
+ *+ * Specifying the socket parameter will not + * explicitly determine the type of connection to be used when + * connecting to the MySQL server. How the connection is made to the + * MySQL database is determined by the host + * parameter. + *
+ * @param int $flags [optional]+ * With the parameter flags you can set different + * connection options: + *
+ *| Name | + *Description | + *
| MYSQLI_CLIENT_COMPRESS | + *Use compression protocol | + *
| MYSQLI_CLIENT_FOUND_ROWS | + *return number of matched rows, not the number of affected rows | + *
| MYSQLI_CLIENT_IGNORE_SPACE | + *Allow spaces after function names. Makes all function names reserved words. | + *
| MYSQLI_CLIENT_INTERACTIVE | + *+ * Allow interactive_timeout seconds (instead of + * wait_timeout seconds) of inactivity before closing the connection + * | + *
| MYSQLI_CLIENT_SSL | + *Use SSL (encryption) | + *
+ * For security reasons the MULTI_STATEMENT flag is + * not supported in PHP. If you want to execute multiple queries use the + * mysqli_multi_query function. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function real_connect( + ?string $hostname = null, + ?string $username = null, + ?string $password = null, + ?string $database = null, + ?int $port = null, + ?string $socket = null, + int $flags = 0 + ): bool {} + + /** + * Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection + * @link https://php.net/manual/en/mysqli.real-escape-string.php + * @param string $string+ * The string to be escaped. + *
+ *+ * Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and + * Control-Z. + *
+ * @return string an escaped string. + */ + #[TentativeType] + public function real_escape_string(string $string): string {} + + /** + * Poll connections + * @link https://php.net/manual/en/mysqli.poll.php + * @param array &$read+ *
+ * @param array &$error+ *
+ * @param array &$reject+ *
+ * @param int $seconds+ * Number of seconds to wait, must be non-negative. + *
+ * @param int $microseconds [optional]+ * Number of microseconds to wait, must be non-negative. + *
+ * @return int|false number of ready connections in success, false otherwise. + */ + #[TentativeType] + public static function poll(?array &$read, ?array &$error, array &$reject, int $seconds, int $microseconds = 0): int|false {} + + /** + * Get result from async query + * @link https://php.net/manual/en/mysqli.reap-async-query.php + * @return mysqli_result|false mysqli_result in success, false otherwise. + */ + #[TentativeType] + public function reap_async_query(): mysqli_result|bool {} + + /** + * Escapes special characters in a string for use in an SQL statement, taking into account the current charset of the connection + * @param string $string The string to be escaped. + * Characters encoded are NUL (ASCII 0), \n, \r, \, ', ", and Control-Z. + * @return string + * @link https://secure.php.net/manual/en/mysqli.real-escape-string.php + */ + #[TentativeType] + public function escape_string(string $string): string {} + + /** + * Execute an SQL query + * @link https://php.net/manual/en/mysqli.real-query.php + * @param string $query+ * The query, as a string. + *
+ *+ * If the query contains any variable input then parameterized + * prepared statements should be used instead. Alternatively, + * the data must be properly formatted and all strings must be + * escaped using the mysqli_real_escape_string function. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function real_query(string $query): bool {} + + /** + * Removes the named savepoint from the set of savepoints of the current transaction + * @link https://php.net/manual/en/mysqli.release-savepoint.php + * @param string $name The identifier of the savepoint. + * @return bool Returns TRUE on success or FALSE on failure. + * @since 5.5 + */ + #[TentativeType] + public function release_savepoint(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {} + + /** + * Rolls back current transaction + * @link https://php.net/manual/en/mysqli.rollback.php + * @param int $flags [optional] A bitmask of MYSQLI_TRANS_COR_* constants. + * @param string $name [optional] If provided then ROLLBACK $name is executed. + * @return bool true on success or false on failure. + * @since 5.5 Added flags and name parameters. + */ + #[TentativeType] + public function rollback( + #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null + ): bool {} + + /** + * Set a named transaction savepoint + * @link https://secure.php.net/manual/en/mysqli.savepoint.php + * @param string $name + * @return bool Returns TRUE on success or FALSE on failure. + * @since 5.5 + */ + #[TentativeType] + public function savepoint(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {} + + /** + * Selects the default database for database queries + * @link https://php.net/manual/en/mysqli.select-db.php + * @param string $database+ * The database name. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function select_db(string $database): bool {} + + /** + * Sets the client character set + * @link https://php.net/manual/en/mysqli.set-charset.php + * @param string $charset+ * The desired character set. + *
+ * @return bool true on success or false on failure + */ + #[TentativeType] + public function set_charset(string $charset): bool {} + + /** + * @link https://php.net/manual/en/function.mysqli-set-opt + * @param int $option + * @param string|int $value + */ + #[TentativeType] + public function set_opt(int $option, $value): bool {} + + /** + * Used for establishing secure connections using SSL + * @link https://secure.php.net/manual/en/mysqli.ssl-set.php + * @param string $key+ * The path name to the key file. + *
+ * @param string $certificate+ * The path name to the certificate file. + *
+ * @param string $ca_certificate+ * The path name to the certificate authority file. + *
+ * @param string $ca_path+ * The pathname to a directory that contains trusted SSL CA certificates in PEM format. + *
+ * @param string $cipher_algos+ * A list of allowable ciphers to use for SSL encryption. + *
+ * @return bool This function always returns TRUE value. + */ + public function ssl_set(?string $key, ?string $certificate, ?string $ca_certificate, ?string $ca_path, ?string $cipher_algos) {} + + /** + * Gets the current system status + * @link https://php.net/manual/en/mysqli.stat.php + * @return string|false A string describing the server status. false if an error occurred. + */ + #[TentativeType] + public function stat(): string|false {} + + /** + * Initializes a statement and returns an object for use with mysqli_stmt_prepare + * @link https://php.net/manual/en/mysqli.stmt-init.php + * @return mysqli_stmt an object. + */ + #[TentativeType] + public function stmt_init(): mysqli_stmt|false {} + + /** + * Transfers a result set from the last query + * @link https://php.net/manual/en/mysqli.store-result.php + * @param int $mode [optional] The option that you want to set + * @return mysqli_result|false a buffered result object or false if an error occurred. + * + *+ * mysqli_store_result returns false in case the query + * didn't return a result set (if the query was, for example an INSERT + * statement). This function also returns false if the reading of the + * result set failed. You can check if you have got an error by checking + * if mysqli_error doesn't return an empty string, if + * mysqli_errno returns a non zero value, or if + * mysqli_field_count returns a non zero value. + * Also possible reason for this function returning false after + * successful call to mysqli_query can be too large + * result set (memory for it cannot be allocated). If + * mysqli_field_count returns a non-zero value, the + * statement should have produced a non-empty result set. + */ + #[TentativeType] + public function store_result(int $mode = 0): mysqli_result|false {} + + /** + * Returns whether thread safety is given or not + * @link https://php.net/manual/en/mysqli.thread-safe.php + * @return bool true if the client library is thread-safe, otherwise false. + */ + #[TentativeType] + public function thread_safe(): bool {} + + /** + * Initiate a result set retrieval + * @link https://php.net/manual/en/mysqli.use-result.php + * @return mysqli_result|false an unbuffered result object or false if an error occurred. + */ + #[TentativeType] + public function use_result(): mysqli_result|false {} + + /** + * @link https://php.net/manual/en/mysqli.refresh + * @param int $flags MYSQLI_REFRESH_* + * @return bool TRUE if the refresh was a success, otherwise FALSE + * @since 5.3 + */ + #[TentativeType] + public function refresh(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags): bool {} +} + +/** + * Represents one or more MySQL warnings. + * @link https://php.net/manual/en/class.mysqli-warning.php + */ +final class mysqli_warning +{ + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $message; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $sqlstate; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $errno; + + /** + * The __construct purpose + * @link https://php.net/manual/en/mysqli-warning.construct.php + */ + #[PhpStormStubsElementAvailable(from: '8.0')] + private function __construct() {} + + /** + * The __construct purpose + * @link https://php.net/manual/en/mysqli-warning.construct.php + */ + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] + protected function __construct() {} + + /** + * Move to the next warning + * @link https://php.net/manual/en/mysqli-warning.next.php + * @return bool True if it successfully moved to the next warning + */ + public function next(): bool {} +} + +/** + * Represents the result set obtained from a query against the database. + * Implements Traversable since 5.4 + * @link https://php.net/manual/en/class.mysqli-result.php + */ +class mysqli_result implements IteratorAggregate +{ + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $current_field; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $field_count; + + /** + * @var array|null + */ + #[LanguageLevelTypeAware(['8.1' => 'array|null'], default: '')] + public $lengths; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int|string'], default: '')] + public $num_rows; + + /** + * @var mixed + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $type; + + /** + * Constructor (no docs available) + * @param object $mysql + * @param int $result_mode [optional] + */ + public function __construct( + #[PhpStormStubsElementAvailable(from: '8.0')] mysqli $mysql, + #[PhpStormStubsElementAvailable(from: '8.0')] int $result_mode = MYSQLI_STORE_RESULT + ) {} + + /** + * Frees the memory associated with a result + * @return void + * @link https://php.net/manual/en/mysqli-result.free.php + */ + #[TentativeType] + public function close(): void {} + + /** + * Frees the memory associated with a result + * @link https://php.net/manual/en/mysqli-result.free.php + * @return void + */ + #[TentativeType] + public function free(): void {} + + /** + * Adjusts the result pointer to an arbitrary row in the result + * @link https://php.net/manual/en/mysqli-result.data-seek.php + * @param int $offset
+ * The field offset. Must be between zero and the total number of rows + * minus one (0..mysqli_num_rows - 1). + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function data_seek(int $offset): bool {} + + /** + * Returns the next field in the result set + * @link https://php.net/manual/en/mysqli-result.fetch-field.php + * @return object|false an object which contains field definition information or false + * if no field information is available. + * + *+ *
| Property | + *Description | + *
| name | + *The name of the column | + *
| orgname | + *Original column name if an alias was specified | + *
| table | + *The name of the table this field belongs to (if not calculated) | + *
| orgtable | + *Original table name if an alias was specified | + *
| def | + *Reserved for default value, currently always "" | + *
| db | + *Database (since PHP 5.3.6) | + *
| catalog | + *The catalog name, always "def" (since PHP 5.3.6) | + *
| max_length | + *The maximum width of the field for the result set. | + *
| length | + *The width of the field, as specified in the table definition. | + *
| charsetnr | + *The character set number for the field. | + *
| flags | + *An integer representing the bit-flags for the field. | + *
| type | + *The data type used for this field | + *
| decimals | + *The number of decimals used (for integer fields) | + *
+ *
| Property | + *Description | + *
| name | + *The name of the column | + *
| orgname | + *Original column name if an alias was specified | + *
| table | + *The name of the table this field belongs to (if not calculated) | + *
| orgtable | + *Original table name if an alias was specified | + *
| def | + *The default value for this field, represented as a string | + *
| max_length | + *The maximum width of the field for the result set. | + *
| length | + *The width of the field, as specified in the table definition. | + *
| charsetnr | + *The character set number for the field. | + *
| flags | + *An integer representing the bit-flags for the field. | + *
| type | + *The data type used for this field | + *
| decimals | + *The number of decimals used (for integer fields) | + *
+ * The field number. This value must be in the range from + * 0 to number of fields - 1. + *
+ * @return object|false an object which contains field definition information or false + * if no field information for specified fieldnr is + * available. + * + *+ *
| Attribute | + *Description | + *
| name | + *The name of the column | + *
| orgname | + *Original column name if an alias was specified | + *
| table | + *The name of the table this field belongs to (if not calculated) | + *
| orgtable | + *Original table name if an alias was specified | + *
| def | + *The default value for this field, represented as a string | + *
| max_length | + *The maximum width of the field for the result set. | + *
| length | + *The width of the field, as specified in the table definition. | + *
| charsetnr | + *The character set number for the field. | + *
| flags | + *An integer representing the bit-flags for the field. | + *
| type | + *The data type used for this field | + *
| decimals | + *The number of decimals used (for integer fields) | + *
+ * This optional parameter is a constant indicating what type of array + * should be produced from the current row data. The possible values for + * this parameter are the constants MYSQLI_ASSOC, + * MYSQLI_NUM, or MYSQLI_BOTH. + *
+ * @return array an array of associative or numeric arrays holding result rows. + */ + #[TentativeType] + public function fetch_all(#[PhpStormStubsElementAvailable(from: '7.0')] int $mode = MYSQLI_NUM): array {} + + /** + * Fetch the next row of a result set as an associative, a numeric array, or both + * @link https://php.net/manual/en/mysqli-result.fetch-array.php + * @param int $mode [optional]+ * This optional parameter is a constant indicating what type of array + * should be produced from the current row data. The possible values for + * this parameter are the constants MYSQLI_ASSOC, + * MYSQLI_NUM, or MYSQLI_BOTH. + *
+ *+ * By using the MYSQLI_ASSOC constant this function + * will behave identically to the mysqli_fetch_assoc, + * while MYSQLI_NUM will behave identically to the + * mysqli_fetch_row function. The final option + * MYSQLI_BOTH will create a single array with the + * attributes of both. + *
+ * @return array|false|null an array representing the fetched row, null if there + * are no more rows in the result set, or false on failure. + */ + #[TentativeType] + public function fetch_array(int $mode = MYSQLI_BOTH): array|false|null {} + + /** + * Fetch the next row of a result set as an associative array + * @link https://php.net/manual/en/mysqli-result.fetch-assoc.php + * @return array|false|null an associative array representing the fetched row, + * where each key in the array represents the name of one of the result set's columns, null if there + * are no more rows in the result set, or false on failure. + */ + #[TentativeType] + public function fetch_assoc(): array|false|null {} + + /** + * @template T + * + * Fetch the next row of a result set as an object + * @link https://php.net/manual/en/mysqli-result.fetch-object.php + * @param class-string+ * The name of the class to instantiate, set the properties of and return. + * If not specified, a stdClass object is returned. + *
+ * @param null|array $constructor_args [optional]+ * An optional array of parameters to pass to the constructor + * for class_name objects. + *
+ * @return T|stdClass|false|null an object representing the fetched row, where each property + * represents the name of the result set's column, null if there + * are no more rows in the result set, or false on failure. + */ + #[TentativeType] + public function fetch_object(string $class = 'stdClass', array $constructor_args = []): object|false|null {} + + /** + * Fetch the next row of a result set as an enumerated array + * @link https://php.net/manual/en/mysqli-result.fetch-row.php + * @return array|false|null an enumerated array representing + * the fetched row, null if there + * are no more rows in the result set, or false on failure. + */ + #[TentativeType] + public function fetch_row(): array|false|null {} + + /** + * Fetch a single column from the next row of a result set + * + * @param int $column [optional]+ * 0-indexed number of the column you wish to retrieve from the row. + * If no value is supplied, the first column will be returned. + *
+ * @return string|int|float|false|null a single column from + * the next row of a result set or false if there are no more rows. + */ + #[PhpStormStubsElementAvailable('8.1')] + public function fetch_column(int $column = 0): string|int|float|false|null {} + + /** + * Set result pointer to a specified field offset + * @link https://php.net/manual/en/mysqli-result.field-seek.php + * @param int $index+ * The field number. This value must be in the range from + * 0 to number of fields - 1. + *
+ */ + #[TentativeType] + #[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] + public function field_seek(int $index) {} + + /** + * Frees the memory associated with a result + * @return void + * @link https://php.net/manual/en/mysqli-result.free.php + */ + #[TentativeType] + public function free_result(): void {} + + /** + * @return Iterator + * @since 8.0 + */ + public function getIterator(): Iterator {} +} + +/** + * Represents a prepared statement. + * @link https://php.net/manual/en/class.mysqli-stmt.php + */ +class mysqli_stmt +{ + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int|string'], default: '')] + public $affected_rows; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int|string'], default: '')] + public $insert_id; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int|string'], default: '')] + public $num_rows; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $param_count; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $field_count; + + /** + * @var int + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $errno; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $error; + + /** + * @var array + */ + #[LanguageLevelTypeAware(['8.1' => 'array'], default: '')] + public $error_list; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')] + public $sqlstate; + + /** + * @var string + */ + #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')] + public $id; + + /** + * mysqli_stmt constructor + * @param mysqli $mysql + * @param string $query [optional] + */ + public function __construct($mysql, $query) {} + + /** + * Used to get the current value of a statement attribute + * @link https://php.net/manual/en/mysqli-stmt.attr-get.php + * @param int $attribute The attribute that you want to get. + * @return int Returns the value of the attribute. + */ + #[TentativeType] + public function attr_get(int $attribute): int {} + + /** + * Used to modify the behavior of a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.attr-set.php + * @param int $attribute+ * The attribute that you want to set. It can have one of the following values: + *
| Character | + *Description | + *
| MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH | + *+ * If set to 1, causes mysqli_stmt_store_result to + * update the metadata MYSQL_FIELD->max_length value. + * | + *
| MYSQLI_STMT_ATTR_CURSOR_TYPE | + *+ * Type of cursor to open for statement when mysqli_stmt_execute + * is invoked. mode can be MYSQLI_CURSOR_TYPE_NO_CURSOR + * (the default) or MYSQLI_CURSOR_TYPE_READ_ONLY. + * | + *
| MYSQLI_STMT_ATTR_PREFETCH_ROWS | + *+ * Number of rows to fetch from server at a time when using a cursor. + * mode can be in the range from 1 to the maximum + * value of unsigned long. The default is 1. + * | + *
+ * If you use the MYSQLI_STMT_ATTR_CURSOR_TYPE option with + * MYSQLI_CURSOR_TYPE_READ_ONLY, a cursor is opened for the + * statement when you invoke mysqli_stmt_execute. If there + * is already an open cursor from a previous mysqli_stmt_execute call, + * it closes the cursor before opening a new one. mysqli_stmt_reset + * also closes any open cursor before preparing the statement for re-execution. + * mysqli_stmt_free_result closes any open cursor. + *
+ *+ * If you open a cursor for a prepared statement, mysqli_stmt_store_result + * is unnecessary. + *
+ * @param int $valueThe value to assign to the attribute.
+ * @return bool + */ + #[TentativeType] + public function attr_set(int $attribute, int $value): bool {} + + /** + * Binds variables to a prepared statement as parameters + * @link https://php.net/manual/en/mysqli-stmt.bind-param.php + * @param string $types+ * A string that contains one or more characters which specify the types + * for the corresponding bind variables: + *
| Character | + *Description | + *
| i | + *corresponding variable has type integer | + *
| d | + *corresponding variable has type double | + *
| s | + *corresponding variable has type string | + *
| b | + *corresponding variable is a blob and will be sent in packets | + *
+ * The number of variables and length of string + * types must match the parameters in the statement. + *
+ * @param mixed &...$_ [optional] + * @return bool true on success or false on failure. + */ + public function bind_param($types, &$var1, &...$_) {} + + /** + * Binds variables to a prepared statement for result storage + * @link https://php.net/manual/en/mysqli-stmt.bind-result.php + * @param mixed &$var1 The variable to be bound. + * @param mixed &...$_ The variables to be bound. + * @return bool true on success or false on failure. + */ + public function bind_result(&$var1, &...$_) {} + + /** + * Closes a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.close.php + * @return bool true on success or false on failure. + */ + public function close() {} + + /** + * Seeks to an arbitrary row in statement result set + * @link https://php.net/manual/en/mysqli-stmt.data-seek.php + * @param int $offset+ * Must be between zero and the total number of rows minus one (0.. + * mysqli_stmt_num_rows - 1). + *
+ * @return void + */ + #[TentativeType] + public function data_seek(int $offset): void {} + + /** + * Executes a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.execute.php + * @param array|null $params [optional] An optional list array with as many elements + * as there are bound parameters in the SQL statement being executed. Each value is treated as a string. + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function execute(#[PhpStormStubsElementAvailable('8.1')] ?array $params = null): bool {} + + /** + * Fetch results from a prepared statement into the bound variables + * @link https://php.net/manual/en/mysqli-stmt.fetch.php + * @return bool|null + */ + #[TentativeType] + public function fetch(): ?bool {} + + /** + * Get result of SHOW WARNINGS + * @link https://php.net/manual/en/mysqli-stmt.get-warnings.php + * @return object|false + */ + #[TentativeType] + public function get_warnings(): mysqli_warning|false {} + + /** + * Returns result set metadata from a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.result-metadata.php + * @return mysqli_result|false a result object or false if an error occurred. + */ + #[TentativeType] + public function result_metadata(): mysqli_result|false {} + + /** + * Check if there are more query results from a multiple query + * @link https://php.net/manual/en/mysqli-stmt.more-results.php + * @return bool + */ + #[TentativeType] + public function more_results(): bool {} + + /** + * Reads the next result from a multiple query + * @link https://php.net/manual/en/mysqli-stmt.next-result.php + * @return bool + */ + #[TentativeType] + public function next_result(): bool {} + + /** + * Return the number of rows in statements result set + * @link https://php.net/manual/en/mysqli-stmt.num-rows.php + * @return string|int An integer representing the number of rows in result set. + */ + #[TentativeType] + public function num_rows(): string|int {} + + /** + * Send data in blocks + * @link https://php.net/manual/en/mysqli-stmt.send-long-data.php + * @param int $param_num+ * Indicates which parameter to associate the data with. Parameters are + * numbered beginning with 0. + *
+ * @param string $data+ * A string containing data to be sent. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function send_long_data(int $param_num, string $data): bool {} + + /** + * No documentation available + * @removed 5.4 + */ + #[Deprecated(since: '5.3')] + public function stmt() {} + + /** + * Frees stored result memory for the given statement handle + * @link https://php.net/manual/en/mysqli-stmt.free-result.php + * @return void + */ + #[TentativeType] + public function free_result(): void {} + + /** + * Resets a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.reset.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function reset(): bool {} + + /** + * Prepare an SQL statement for execution + * @link https://php.net/manual/en/mysqli-stmt.prepare.php + * @param string $query+ * The query, as a string. It must consist of a single SQL statement. + *
+ *+ * The SQL statement may contain zero or more parameter markers + * represented by question mark (?) characters at the appropriate positions. + *
+ *+ * The markers are legal only in certain places in SQL statements. + * For example, they are permitted in the VALUES() list of an INSERT statement + * (to specify column values for a row), or in a comparison with a column in + * a WHERE clause to specify a comparison value. + *
+ *+ * However, they are not permitted for identifiers (such as table or column names), + * or to specify both operands of a binary operator such as the = + * equal sign. The latter restriction is necessary because it would be impossible + * to determine the parameter type. In general, parameters are legal only in Data + * Manipulation Language (DML) statements, and not in Data Definition Language + * (DDL) statements. + *
+ * @return bool true on success or false on failure. + */ + #[TentativeType] + public function prepare(string $query): bool {} + + /** + * Stores a result set in an internal buffer + * @link https://php.net/manual/en/mysqli-stmt.store-result.php + * @return bool true on success or false on failure. + */ + #[TentativeType] + public function store_result(): bool {} + + /** + * Gets a result set from a prepared statement as a mysqli_result object + * @link https://php.net/manual/en/mysqli-stmt.get-result.php + * @return mysqli_result|false Returns a resultset or FALSE on failure + */ + #[TentativeType] + public function get_result(): mysqli_result|false {} +} + +/** + * Gets the number of affected rows in a previous MySQL operation + * @link https://secure.php.net/manual/en/mysqli.affected-rows.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string|int An integer greater than zero indicates the number of rows affected or retrieved. + * Zero indicates that no records were updated for an UPDATE statement, + * no rows matched the WHERE clause in the query or that no query has yet been executed. -1 indicates that the query returned an error + * or that mysqli_affected_rows was called for an unbuffered SELECT query. + */ +function mysqli_affected_rows(mysqli $mysql): string|int {} + +/** + * Turns on or off auto-committing database modifications + * @link https://secure.php.net/manual/en/mysqli.autocommit.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param bool $enable Whether to turn on auto-commit or not. + * @return bool + */ +function mysqli_autocommit(mysqli $mysql, bool $enable): bool {} + +/** + * Starts a transaction + * @link https://secure.php.net/manual/en/mysqli.begin-transaction.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param int $flags [optional] + * @param string|null $name [optional] + * @return bool true on success or false on failure. + * @since 5.5 + */ +function mysqli_begin_transaction(mysqli $mysql, int $flags = 0, ?string $name): bool {} + +/** + * Changes the user of the specified database connection + * @link https://php.net/manual/en/mysqli.change-user.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param string $username The MySQL user name. + * @param string $password The MySQL password. + * @param string|null $database The database to change to. If desired, the NULL value may be passed resulting in only changing the user and not selecting a database. + * @return bool + */ +function mysqli_change_user(mysqli $mysql, string $username, string $password, ?string $database): bool {} + +/** + * Returns the current character set of the database connection + * @link https://php.net/manual/en/mysqli.character-set-name.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string The current character set of the connection + */ +function mysqli_character_set_name(mysqli $mysql): string {} + +/** + * Closes a previously opened database connection + * @link https://php.net/manual/en/mysqli.close.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return bool + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function mysqli_close(mysqli $mysql): bool {} + +/** + * Commits the current transaction + * @link https://php.net/manual/en/mysqli.commit.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param int $flags [optional] A bitmask of MYSQLI_TRANS_COR_* constants + * @param string|null $name [optional] If provided then COMMITname is executed + * @return bool + */ +function mysqli_commit(mysqli $mysql, int $flags = 0, ?string $name = null): bool {} + +/** + * Open a new connection to the MySQL server + * Alias of mysqli::__construct + * @link https://php.net/manual/en/mysqli.construct.php + * @param string|null $hostname Can be either a host name or an IP address. Passing the NULL value or the string "localhost" to this parameter, the local host is assumed. When possible, pipes will be used instead of the TCP/IP protocol. + * @param string|null $username The MySQL user name. + * @param string|null $password If not provided or NULL, the MySQL server will attempt to authenticate the user against those user records which have no password only. + * @param string|null $database If provided will specify the default database to be used when performing queries. + * @param int|null $port Specifies the port number to attempt to connect to the MySQL server. + * @param string|null $socket Specifies the socket or named pipe that should be used. + * @return mysqli|false object which represents the connection to a MySQL Server or false if an error occurred. + */ +function mysqli_connect(?string $hostname = null, ?string $username = null, ?string $password = null, ?string $database = null, ?int $port = null, ?string $socket = null): mysqli|false {} + +/** + * Returns the error code from last connect call + * @link https://php.net/manual/en/mysqli.connect-errno.php + * @return int Last error code number from the last call to mysqli_connect(). Zero means no error occurred. + */ +function mysqli_connect_errno(): int {} + +/** + * Returns a string description of the last connect error + * @link https://php.net/manual/en/mysqli.connect-error.php + * @return string|null Last error message string from the last call to mysqli_connect(). + */ +function mysqli_connect_error(): ?string {} + +/** + * Adjusts the result pointer to an arbitrary row in the result + * @link https://php.net/manual/en/mysqli-result.data-seek.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param int $offset + * @return bool Returns TRUE on success or FALSE on failure. + */ +function mysqli_data_seek(mysqli_result $result, int $offset): bool {} + +/** + * Dump debugging information into the log + * @link https://php.net/manual/en/mysqli.dump-debug-info.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return bool + */ +function mysqli_dump_debug_info(mysqli $mysql): bool {} + +/** + * Performs debugging operations using the Fred Fish debugging library. + * @link https://php.net/manual/en/mysqli.debug.php + * @param string $options + * @return bool + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function mysqli_debug(string $options): bool {} + +/** + * Returns the error code for the most recent function call + * @link https://php.net/manual/en/mysqli.errno.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return int An error code value for the last call, if it failed. zero means no error occurred. + */ +function mysqli_errno(mysqli $mysql): int {} + +/** + * Returns a list of errors from the last command executed + * @link https://php.net/manual/en/mysqli.error-list.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return array A list of errors, each as an associative array containing the errno, error, and sqlstate. + * @since 5.4 + */ +#[ArrayShape([ + "errno" => "int", + "sqlstate" => "string", + "error" => "string", +])] +function mysqli_error_list(mysqli $mysql): array {} + +/** + * Returns a list of errors from the last statement executed + * @link https://secure.php.net/manual/en/mysqli-stmt.error-list.php + * @param mysqli_stmt $statement A statement identifier returned by mysqli_stmt_init(). + * @return array A list of errors, each as an associative array containing the errno, error, and sqlstate. + * @since 5.4 + */ +function mysqli_stmt_error_list(mysqli_stmt $statement): array {} + +/** + * Returns a string description of the last error + * @link https://secure.php.net/manual/en/mysqli.error.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string + */ +function mysqli_error(mysqli $mysql): string {} + +/** + * Executes a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.execute.php + * @param mysqli_stmt $statement + * @param array|null $params [optional] An optional list array with as many elements + * as there are bound parameters in the SQL statement being executed. Each value is treated as a string. + * @return bool true on success or false on failure. + */ +function mysqli_stmt_execute(mysqli_stmt $statement, #[PhpStormStubsElementAvailable('8.1')] ?array $params = null): bool {} + +/** + * Executes a prepared statement + * Alias for mysqli_stmt_execute + * @link https://php.net/manual/en/function.mysqli-execute.php + * @param mysqli_stmt $statement + * @param array|null $params [optional] An optional list array with as many elements + * as there are bound parameters in the SQL statement being executed. Each value is treated as a string. + * @return bool + */ +#[Deprecated(since: '5.3')] +function mysqli_execute(mysqli_stmt $statement, #[PhpStormStubsElementAvailable('8.1')] ?array $params = null): bool {} + +/** + * @param mysqli $mysql + * @param string $query + * @param array|null $params + * @return mysqli_result|bool + * @since 8.2 + */ +function mysqli_execute_query(mysqli $mysql, string $query, ?array $params = null): mysqli_result|bool {} + +/** + * Returns the next field in the result set + * @link https://secure.php.net/manual/en/mysqli-result.fetch-field.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return object|false Returns an object which contains field definition information or FALSE if no field information is available. + */ +function mysqli_fetch_field(mysqli_result $result): object|false {} + +/** + * Returns an array of objects representing the fields in a result set + * @link https://secure.php.net/manual/en/mysqli-result.fetch-fields.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return array Returns an array of objects which contains field definition information. + */ +function mysqli_fetch_fields(mysqli_result $result): array {} + +/** + * Fetch meta-data for a single field + * @link https://secure.php.net/manual/en/mysqli-result.fetch-field-direct.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param int $index The field number. This value must be in the range from 0 to number of fields - 1. + * @return object|false Returns an object which contains field definition information or FALSE if no field information for specified fieldnr is available. + */ +function mysqli_fetch_field_direct(mysqli_result $result, int $index): object|false {} + +/** + * Returns the lengths of the columns of the current row in the result set + * @link https://php.net/manual/en/mysqli-result.lengths.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return int[]|false An array of integers representing the size of each column (not including any terminating null characters). FALSE if an error occurred. + */ +function mysqli_fetch_lengths(mysqli_result $result): array|false {} + +/** + * Fetch all result rows as an associative array, a numeric array, or both + * @link https://php.net/manual/en/mysqli-result.fetch-all.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param int $mode + * @return array Returns an array of associative or numeric arrays holding result rows. + */ +function mysqli_fetch_all( + mysqli_result $result, + #[PhpStormStubsElementAvailable(from: '7.0')] int $mode = MYSQLI_NUM +): array {} + +/** + * Fetch the next row of a result set as an associative, a numeric array, or both + * @link https://php.net/manual/en/mysqli-result.fetch-array.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param int $mode + * @return array|false|null an array representing the fetched row, + * null if there are no more rows in the result set, or false on failure. + */ +function mysqli_fetch_array(mysqli_result $result, int $mode = MYSQLI_BOTH): array|false|null {} + +/** + * Fetch the next row of a result set as an associative array + * @link https://php.net/manual/en/mysqli-result.fetch-assoc.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return array|false|null an associative array representing the fetched row, + * where each key in the array represents the name of one of the result set's columns, + * null if there are no more rows in the result set, or false on failure. + */ +function mysqli_fetch_assoc(mysqli_result $result): array|null|false {} + +/** + * @template T + * + * Fetch the next row of a result set as an object + * @link https://php.net/manual/en/mysqli-result.fetch-object.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param class-string+ * 0-indexed number of the column you wish to retrieve from the row. + * If no value is supplied, the first column will be returned. + *
+ * @return string|int|float|false|null a single column from + * the next row of a result set or false if there are no more rows. + */ +#[PhpStormStubsElementAvailable('8.1')] +function mysqli_fetch_column(mysqli_result $result, int $column = 0): string|int|float|false|null {} + +/** + * Returns the number of columns for the most recent query + * @link https://php.net/manual/en/mysqli.field-count.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return int An integer representing the number of fields in a result set. + */ +function mysqli_field_count(mysqli $mysql): int {} + +/** + * Set result pointer to a specified field offset + * @link https://php.net/manual/en/mysqli-result.field-seek.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @param int $index The field number. This value must be in the range from 0 to number of fields - 1. + */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function mysqli_field_seek(mysqli_result $result, int $index) {} + +/** + * Get current field offset of a result pointer + * @link https://php.net/manual/en/mysqli-result.current-field.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return int + */ +function mysqli_field_tell(mysqli_result $result): int {} + +/** + * Frees the memory associated with a result + * @link https://php.net/manual/en/mysqli-result.free.php + * @param mysqli_result $result A mysqli_result object returned by mysqli_query(), + * mysqli_store_result(), mysqli_use_result() or mysqli_stmt_get_result(). + * @return void + */ +function mysqli_free_result(mysqli_result $result): void {} + +/** + * Returns client Zval cache statistics + * Available only with mysqlnd. + * @link https://php.net/manual/en/function.mysqli-get-cache-stats.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return array|false an array with client Zval cache stats if success, false otherwise. + * @removed 5.4 + */ +function mysqli_get_cache_stats(mysqli $mysql) {} + +/** + * Returns statistics about the client connection + * @link https://php.net/manual/en/mysqli.get-connection-stats.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return array an array with connection stats. + */ +function mysqli_get_connection_stats(mysqli $mysql): array {} + +/** + * Returns client per-process statistics + * @link https://php.net/manual/en/function.mysqli-get-client-stats.php + * @return array an array with client stats. + */ +function mysqli_get_client_stats(): array {} + +/** + * Returns a character set object + * @link https://php.net/manual/en/mysqli.get-charset.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return object|null + */ +function mysqli_get_charset(mysqli $mysql): ?object {} + +/** + * Get MySQL client info + * @link https://php.net/manual/en/mysqli.get-client-info.php + * @param mysqli|null $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string|null A string that represents the MySQL client library version + */ +#[LanguageLevelTypeAware(['8.0' => 'string'], default: '?string')] +function mysqli_get_client_info( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.1')] mysqli $mysql, + #[PhpStormStubsElementAvailable(from: '8.0')] ?mysqli $mysql = null +) {} + +/** + * Returns the MySQL client version as an integer + * @link https://php.net/manual/en/mysqli.get-client-version.php + * @return int + */ +function mysqli_get_client_version(#[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $link): int {} + +/** + * Returns a string representing the type of connection used + * @link https://php.net/manual/en/mysqli.get-host-info.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string A character string representing the server hostname and the connection type. + */ +function mysqli_get_host_info(mysqli $mysql): string {} + +/** + * Return information about open and cached links + * @link https://php.net/manual/en/function.mysqli-get-links-stats.php + * @return array mysqli_get_links_stats() returns an associative array with three elements, keyed as follows: + *total+ * An integer indicating the total number of open links in + * any state. + *
+ *active_plinks+ * An integer representing the number of active persistent + * connections. + *
+ *cached_plinks+ * An integer representing the number of inactive persistent + * connections. + *
+ *+ *
| Name | + *Description | + *
| MYSQLI_REPORT_OFF | + *Turns reporting off | + *
| MYSQLI_REPORT_ERROR | + *Report errors from mysqli function calls | + *
| MYSQLI_REPORT_STRICT | + *+ * Throw mysqli_sql_exception for errors + * instead of warnings + * | + *
| MYSQLI_REPORT_INDEX | + *Report if no index or bad index was used in a query | + *
| MYSQLI_REPORT_ALL | + *Set all options (report all) | + *
+ * A string that contains one or more characters which specify the types + * for the corresponding bind variables: + *
| Character | + *Description | + *
| i | + *corresponding variable has type integer | + *
| d | + *corresponding variable has type double | + *
| s | + *corresponding variable has type string | + *
| b | + *corresponding variable is a blob and will be sent in packets | + *
+ * The number of variables and length of string + * types must match the parameters in the statement. + *
+ * @param mixed &...$vars + * @return bool true on success or false on failure. + */ +function mysqli_stmt_bind_param( + mysqli_stmt $statement, + string $types, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] mixed &$vars, + mixed &...$vars +): bool {} + +/** + * Binds variables to a prepared statement for result storage + * @link https://php.net/manual/en/mysqli-stmt.bind-result.php + * @param mysqli_stmt $statement Statement + * @param mixed &...$vars The variables to be bound. + * @return bool + */ +function mysqli_stmt_bind_result( + mysqli_stmt $statement, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] mixed &$vars, + mixed &...$vars +): bool {} + +/** + * Fetch results from a prepared statement into the bound variables + * @link https://php.net/manual/en/mysqli-stmt.fetch.php + * @param mysqli_stmt $statement + * @return bool|null + */ +function mysqli_stmt_fetch(mysqli_stmt $statement): ?bool {} + +/** + * Frees stored result memory for the given statement handle + * @link https://php.net/manual/en/mysqli-stmt.free-result.php + * @param mysqli_stmt $statement + * @return void + */ +function mysqli_stmt_free_result(mysqli_stmt $statement): void {} + +/** + * Gets a result set from a prepared statement as a mysqli_result object + * @link https://php.net/manual/en/mysqli-stmt.get-result.php + * @param mysqli_stmt $statement + * @return mysqli_result|false Returns false on failure. For successful queries which produce a result set, + * such as SELECT, SHOW, DESCRIBE or EXPLAIN, mysqli_stmt_get_result() will return a mysqli_result object. + * For other successful queries, mysqli_stmt_get_result() will return false. + */ +function mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false {} + +/** + * Get result of SHOW WARNINGS + * @link https://php.net/manual/en/mysqli-stmt.get-warnings.php + * @param mysqli_stmt $statement + * @return mysqli_warning|false (not documented, but it's probably a mysqli_warning object) + */ +function mysqli_stmt_get_warnings(mysqli_stmt $statement): mysqli_warning|false {} + +/** + * Get the ID generated from the previous INSERT operation + * @link https://php.net/manual/en/mysqli-stmt.insert-id.php + * @param mysqli_stmt $statement + * @return string|int + */ +function mysqli_stmt_insert_id(mysqli_stmt $statement): string|int {} + +/** + * Resets a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.reset.php + * @param mysqli_stmt $statement + * @return bool + */ +function mysqli_stmt_reset(mysqli_stmt $statement): bool {} + +/** + * Returns the number of parameter for the given statement + * @link https://php.net/manual/en/mysqli-stmt.param-count.php + * @param mysqli_stmt $statement + * @return int + */ +function mysqli_stmt_param_count(mysqli_stmt $statement): int {} + +/** + * Returns the SQLSTATE error from previous MySQL operation + * @link https://php.net/manual/en/mysqli.sqlstate.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. + */ +function mysqli_sqlstate(mysqli $mysql): string {} + +/** + * Gets the current system status + * @link https://php.net/manual/en/mysqli.stat.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string|false A string describing the server status. FALSE if an error occurred. + */ +function mysqli_stat(mysqli $mysql): string|false {} + +/** + * Used for establishing secure connections using SSL + * @link https://secure.php.net/manual/en/mysqli.ssl-set.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param string|null $key The path name to the key file + * @param string|null $certificate The path name to the certificate file + * @param string|null $ca_certificate The path name to the certificate authority file + * @param string|null $ca_path The pathname to a directory that contains trusted SSL CA certificates in PEM format + * @param string|null $cipher_algos A list of allowable ciphers to use for SSL encryption + * @return bool This function always returns TRUE value. + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function mysqli_ssl_set( + mysqli $mysql, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $key, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $certificate, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $ca_certificate, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $ca_path, + #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $cipher_algos +): bool {} + +/** + * Closes a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.close.php + * @param mysqli_stmt $statement + * @return bool + */ +#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')] +function mysqli_stmt_close(mysqli_stmt $statement): bool {} + +/** + * Seeks to an arbitrary row in statement result set + * @link https://php.net/manual/en/mysqli-stmt.data-seek.php + * @param mysqli_stmt $statement + * @param int $offset + * @return void + */ +function mysqli_stmt_data_seek(mysqli_stmt $statement, int $offset): void {} + +/** + * Returns the error code for the most recent statement call + * @link https://php.net/manual/en/mysqli-stmt.errno.php + * @param mysqli_stmt $statement + * @return int + */ +function mysqli_stmt_errno(mysqli_stmt $statement): int {} + +/** + * Returns a string description for last statement error + * @link https://php.net/manual/en/mysqli-stmt.error.php + * @param mysqli_stmt $statement + * @return string + */ +function mysqli_stmt_error(mysqli_stmt $statement): string {} + +/** + * Check if there are more query results from a multiple query + * @link https://php.net/manual/en/mysqli-stmt.more-results.php + * @param mysqli_stmt $statement + * @return bool + */ +function mysqli_stmt_more_results(mysqli_stmt $statement): bool {} + +/** + * Reads the next result from a multiple query + * @link https://php.net/manual/en/mysqli-stmt.next-result.php + * @param mysqli_stmt $statement + * @return bool + */ +function mysqli_stmt_next_result(mysqli_stmt $statement): bool {} + +/** + * Return the number of rows in statements result set + * @link https://php.net/manual/en/mysqli-stmt.num-rows.php + * @param mysqli_stmt $statement + * @return string|int + */ +function mysqli_stmt_num_rows(mysqli_stmt $statement): string|int {} + +/** + * Returns SQLSTATE error from previous statement operation + * @link https://php.net/manual/en/mysqli-stmt.sqlstate.php + * @param mysqli_stmt $statement + * @return string Returns a string containing the SQLSTATE error code for the last error. The error code consists of five characters. '00000' means no error. + */ +function mysqli_stmt_sqlstate(mysqli_stmt $statement): string {} + +/** + * Transfers a result set from a prepared statement + * @link https://php.net/manual/en/mysqli-stmt.store-result.php + * @param mysqli_stmt $statement + * @return bool + */ +function mysqli_stmt_store_result(mysqli_stmt $statement): bool {} + +/** + * Transfers a result set from the last query + * @link https://php.net/manual/en/mysqli.store-result.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param int $mode [optional] The option that you want to set + * @return mysqli_result|false + */ +function mysqli_store_result(mysqli $mysql, int $mode = 0): mysqli_result|false {} + +/** + * Returns the thread ID for the current connection + * @link https://php.net/manual/en/mysqli.thread-id.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return int Returns the Thread ID for the current connection. + */ +function mysqli_thread_id(mysqli $mysql): int {} + +/** + * Returns whether thread safety is given or not + * @link https://php.net/manual/en/mysqli.thread-safe.php + * @return bool + */ +function mysqli_thread_safe(): bool {} + +/** + * Initiate a result set retrieval + * @link https://php.net/manual/en/mysqli.use-result.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return mysqli_result|false + */ +function mysqli_use_result(mysqli $mysql): mysqli_result|false {} + +/** + * Returns the number of warnings from the last query for the given link + * @link https://php.net/manual/en/mysqli.warning-count.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return int + */ +function mysqli_warning_count(mysqli $mysql): int {} + +/** + * Flushes tables or caches, or resets the replication server information + * @link https://php.net/manual/en/mysqli.refresh.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param int $flags + * @return bool + */ +function mysqli_refresh(mysqli $mysql, int $flags): bool {} + +/** + * Alias for mysqli_stmt_bind_param + * @link https://php.net/manual/en/function.mysqli-bind-param.php + * @param mysqli_stmt $statement + * @param string $types + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_bind_param(mysqli_stmt $statement, string $types) {} + +/** + * Alias for mysqli_stmt_bind_result + * @link https://php.net/manual/en/function.mysqli-bind-result.php + * @param mysqli_stmt $statement + * @param string $types + * @param mixed &$var1 + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_bind_result(mysqli_stmt $statement, string $types, mixed &$var1) {} + +/** + * Alias of mysqli_character_set_name + * @link https://php.net/manual/en/function.mysqli-client-encoding.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @return string + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_client_encoding(mysqli $mysql): string {} + +/** + * Alias of mysqli_real_escape_string + * @link https://php.net/manual/en/function.mysqli-escape-string.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param string $string The string to be escaped + * @return string + */ +function mysqli_escape_string( + mysqli $mysql, + string $string, + #[PhpStormStubsElementAvailable(from: '7.1', to: '7.4')] $resultmode = null +): string {} + +/** + * Alias for mysqli_stmt_fetch + * @link https://php.net/manual/en/function.mysqli-fetch.php + * @param mysqli_stmt $statement + * @return bool + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_fetch(mysqli_stmt $statement): bool {} + +/** + * Alias for mysqli_stmt_param_count + * @link https://php.net/manual/en/function.mysqli-param-count.php + * @param mysqli_stmt $statement + * @return int + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_param_count(mysqli_stmt $statement): int {} + +/** + * Alias for mysqli_stmt_result_metadata + * @link https://php.net/manual/en/function.mysqli-get-metadata.php + * @param mysqli_stmt $statement + * @return mysqli_result|false Returns a result object or FALSE if an error occurred + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_get_metadata(mysqli_stmt $statement): false|mysqli_result {} + +/** + * Alias for mysqli_stmt_send_long_data + * @link https://php.net/manual/en/function.mysqli-send-long-data.php + * @param mysqli_stmt $statement + * @param int $param_num + * @param string $data + * @return bool + * @removed 5.4 + */ +#[Deprecated(since: '5.3')] +function mysqli_send_long_data(mysqli_stmt $statement, int $param_num, string $data): bool {} + +/** + * Alias of mysqli_options + * @link https://php.net/manual/en/function.mysqli-set-opt.php + * @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init() + * @param int $option + * @param string|int $value + * @return bool + */ +function mysqli_set_opt( + #[PhpStormStubsElementAvailable(from: '8.0')] mysqli $mysql, + #[PhpStormStubsElementAvailable(from: '8.0')] int $option, + #[PhpStormStubsElementAvailable(from: '8.0')] $value +): bool {} + +/** + *+ * Read options from the named group from my.cnf + * or the file specified with MYSQLI_READ_DEFAULT_FILE + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_READ_DEFAULT_GROUP', 5); + +/** + *+ * Read options from the named option file instead of from my.cnf + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_READ_DEFAULT_FILE', 4); + +/** + *+ * Connect timeout in seconds + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_OPT_CONNECT_TIMEOUT', 0); + +/** + *+ * Enables command LOAD LOCAL INFILE + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_OPT_LOCAL_INFILE', 8); + +/** + *+ * RSA public key file used with the SHA-256 based authentication. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_SERVER_PUBLIC_KEY', 35); + +/** + *+ * Command to execute when connecting to MySQL server. Will automatically be re-executed when reconnecting. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_INIT_COMMAND', 3); +define('MYSQLI_OPT_NET_CMD_BUFFER_SIZE', 202); +define('MYSQLI_OPT_NET_READ_BUFFER_SIZE', 203); +define('MYSQLI_OPT_INT_AND_FLOAT_NATIVE', 201); + +/** + *+ * Use SSL (encrypted protocol). This option should not be set by application programs; + * it is set internally in the MySQL client library + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CLIENT_SSL', 2048); + +/** + *+ * Use compression protocol + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CLIENT_COMPRESS', 32); + +/** + *+ * Allow interactive_timeout seconds + * (instead of wait_timeout seconds) of inactivity before + * closing the connection. The client's session + * wait_timeout variable will be set to + * the value of the session interactive_timeout variable. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CLIENT_INTERACTIVE', 1024); + +/** + *+ * Allow spaces after function names. Makes all functions names reserved words. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CLIENT_IGNORE_SPACE', 256); + +/** + *+ * Don't allow the db_name.tbl_name.col_name syntax. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CLIENT_NO_SCHEMA', 16); +define('MYSQLI_CLIENT_FOUND_ROWS', 2); + +/** + *+ * For using buffered resultsets + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_STORE_RESULT', 0); + +/** + *+ * For using unbuffered resultsets + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_USE_RESULT', 1); +define('MYSQLI_ASYNC', 8); + +/** + *+ * Columns are returned into the array having the fieldname as the array index. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_ASSOC', 1); + +/** + *+ * Columns are returned into the array having an enumerated index. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_NUM', 2); + +/** + *+ * Columns are returned into the array having both a numerical index and the fieldname as the associative index. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_BOTH', 3); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH', 0); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_STMT_ATTR_CURSOR_TYPE', 1); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CURSOR_TYPE_NO_CURSOR', 0); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CURSOR_TYPE_READ_ONLY', 1); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CURSOR_TYPE_FOR_UPDATE', 2); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_CURSOR_TYPE_SCROLLABLE', 4); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_STMT_ATTR_PREFETCH_ROWS', 2); + +/** + *+ * Indicates that a field is defined as NOT NULL + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_NOT_NULL_FLAG', 1); + +/** + *+ * Field is part of a primary index + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_PRI_KEY_FLAG', 2); + +/** + *+ * Field is part of a unique index. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_UNIQUE_KEY_FLAG', 4); + +/** + *+ * Field is part of an index. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_MULTIPLE_KEY_FLAG', 8); + +/** + *+ * Field is defined as BLOB + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_BLOB_FLAG', 16); + +/** + *+ * Field is defined as UNSIGNED + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_UNSIGNED_FLAG', 32); + +/** + *+ * Field is defined as ZEROFILL + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_ZEROFILL_FLAG', 64); + +/** + *+ * Field is defined as AUTO_INCREMENT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_AUTO_INCREMENT_FLAG', 512); + +/** + *+ * Field is defined as TIMESTAMP + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TIMESTAMP_FLAG', 1024); + +/** + *+ * Field is defined as SET + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_SET_FLAG', 2048); + +/** + *+ * Field is defined as NUMERIC + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_NUM_FLAG', 32768); + +/** + *+ * Field is part of an multi-index + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_PART_KEY_FLAG', 16384); + +/** + *+ * Field is part of GROUP BY + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_GROUP_FLAG', 32768); + +/** + *+ * Field is defined as ENUM. Available since PHP 5.3.0. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_ENUM_FLAG', 256); +define('MYSQLI_BINARY_FLAG', 128); +define('MYSQLI_NO_DEFAULT_VALUE_FLAG', 4096); +define('MYSQLI_ON_UPDATE_NOW_FLAG', 8192); + +define('MYSQLI_TRANS_START_READ_ONLY', 4); +define('MYSQLI_TRANS_START_READ_WRITE', 2); +define('MYSQLI_TRANS_START_WITH_CONSISTENT_SNAPSHOT', 1); +/** + *+ * Field is defined as DECIMAL + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_DECIMAL', 0); + +/** + *+ * Field is defined as TINYINT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_TINY', 1); + +/** + *+ * Field is defined as SMALLINT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_SHORT', 2); + +/** + *+ * Field is defined as INT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_LONG', 3); + +/** + *+ * Field is defined as FLOAT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_FLOAT', 4); + +/** + *+ * Field is defined as DOUBLE + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_DOUBLE', 5); + +/** + *+ * Field is defined as DEFAULT NULL + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_NULL', 6); + +/** + *+ * Field is defined as TIMESTAMP + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_TIMESTAMP', 7); + +/** + *+ * Field is defined as BIGINT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_LONGLONG', 8); + +/** + *+ * Field is defined as MEDIUMINT + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_INT24', 9); + +/** + *+ * Field is defined as DATE + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_DATE', 10); + +/** + *+ * Field is defined as TIME + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_TIME', 11); + +/** + *+ * Field is defined as DATETIME + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_DATETIME', 12); + +/** + *+ * Field is defined as YEAR + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_YEAR', 13); + +/** + *+ * Field is defined as DATE + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_NEWDATE', 14); + +/** + *+ * Field is defined as ENUM + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_ENUM', 247); + +/** + *+ * Field is defined as SET + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_SET', 248); + +/** + *+ * Field is defined as TINYBLOB + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_TINY_BLOB', 249); + +/** + *+ * Field is defined as MEDIUMBLOB + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_MEDIUM_BLOB', 250); + +/** + *+ * Field is defined as LONGBLOB + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_LONG_BLOB', 251); + +/** + *+ * Field is defined as BLOB + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_BLOB', 252); + +/** + *+ * Field is defined as VARCHAR + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_VAR_STRING', 253); + +/** + *+ * Field is defined as STRING + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_STRING', 254); + +/** + *+ * Field is defined as CHAR + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_CHAR', 1); + +/** + *+ * Field is defined as INTERVAL + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_INTERVAL', 247); + +/** + *+ * Field is defined as GEOMETRY + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_GEOMETRY', 255); + +/** + *+ * Precision math DECIMAL or NUMERIC field (MySQL 5.0.3 and up) + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_NEWDECIMAL', 246); + +/** + *+ * Field is defined as BIT (MySQL 5.0.3 and up) + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_TYPE_BIT', 16); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_SET_CHARSET_NAME', 7); + +/** + *+ * No more data available for bind variable + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_NO_DATA', 100); + +/** + *+ * Data truncation occurred. Available since PHP 5.1.0 and MySQL 5.0.5. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_DATA_TRUNCATED', 101); + +/** + *+ * Report if no index or bad index was used in a query. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REPORT_INDEX', 4); + +/** + *+ * Report errors from mysqli function calls. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REPORT_ERROR', 1); + +/** + *+ * Throw a mysqli_sql_exception for errors instead of warnings. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REPORT_STRICT', 2); + +/** + *+ * Set all options on (report all). + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REPORT_ALL', 255); + +/** + *+ * Turns reporting off. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REPORT_OFF', 0); + +/** + *+ * Is set to 1 if mysqli_debug functionality is enabled. + *
+ * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_DEBUG_TRACE_ENABLED', 0); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_SERVER_QUERY_NO_GOOD_INDEX_USED', 16); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_SERVER_QUERY_NO_INDEX_USED', 32); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_GRANT', 1); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_LOG', 2); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_TABLES', 4); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_HOSTS', 8); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_STATUS', 16); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_THREADS', 32); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_SLAVE', 64); + +/** + * @link https://php.net/manual/en/mysqli.constants.php + */ +define('MYSQLI_REFRESH_MASTER', 128); + +define('MYSQLI_SERVER_QUERY_WAS_SLOW', 2048); +define('MYSQLI_REFRESH_BACKUP_LOG', 2097152); + +// End of mysqli v.0.1 + +/** @link https://php.net/manual/en/mysqli.constants.php */ +define('MYSQLI_OPT_SSL_VERIFY_SERVER_CERT', 21); +/** @link https://php.net/manual/en/mysqli.constants.php */ +define('MYSQLI_SET_CHARSET_DIR', 6); +/** @link https://php.net/manual/en/mysqli.constants.php */ +define('MYSQLI_SERVER_PS_OUT_PARAMS', 4096); + +define('MYSQLI_CLIENT_SSL_VERIFY_SERVER_CERT', 1073741824); + +define('MYSQLI_CLIENT_SSL_DONT_VERIFY_SERVER_CERT', 64); +define('MYSQLI_CLIENT_CAN_HANDLE_EXPIRED_PASSWORDS', 4194304); +define('MYSQLI_OPT_CAN_HANDLE_EXPIRED_PASSWORDS', 37); +define('MYSQLI_OPT_READ_TIMEOUT', 11); +define('MYSQLI_STORE_RESULT_COPY_DATA', 16); +define('MYSQLI_TYPE_JSON', 245); +define('MYSQLI_TRANS_COR_AND_CHAIN', 1); +define('MYSQLI_TRANS_COR_AND_NO_CHAIN', 2); +define('MYSQLI_TRANS_COR_RELEASE', 4); +define('MYSQLI_TRANS_COR_NO_RELEASE', 8); +define('MYSQLI_OPT_LOAD_DATA_LOCAL_DIR', 43); +define('MYSQLI_REFRESH_REPLICA', 64); +/** + * @since 8.1 + */ +define('MYSQLI_IS_MARIADB', 0); diff --git a/phpstorm-stubs/ncurses/ncurses.php b/phpstorm-stubs/ncurses/ncurses.php new file mode 100644 index 0000000..093bcf5 --- /dev/null +++ b/phpstorm-stubs/ncurses/ncurses.php @@ -0,0 +1,1729 @@ + + * + * @return int + */ +function ncurses_addch($ch) {} + +/** + * Set fore- and background color + * @link https://php.net/manual/en/function.ncurses-color-set.php + * @param int $pair+ *
+ * @return int + */ +function ncurses_color_set($pair) {} + +/** + * Delete a ncurses window + * @link https://php.net/manual/en/function.ncurses-delwin.php + * @param resource $window+ *
+ * @return bool + */ +function ncurses_delwin($window) {} + +/** + * Stop using ncurses, clean up the screen + * @link https://php.net/manual/en/function.ncurses-end.php + * @return int + */ +function ncurses_end() {} + +/** + * Read a character from keyboard + * @link https://php.net/manual/en/function.ncurses-getch.php + * @return int + */ +function ncurses_getch() {} + +/** + * Check if terminal has colors + * @link https://php.net/manual/en/function.ncurses-has-colors.php + * @return bool Return true if the terminal has color capacities, false otherwise. + */ +function ncurses_has_colors() {} + +/** + * Initialize ncurses + * @link https://php.net/manual/en/function.ncurses-init.php + * @return void + */ +function ncurses_init() {} + +/** + * Allocate a color pair + * @link https://php.net/manual/en/function.ncurses-init-pair.php + * @param int $pair+ *
+ * @param int $fg+ *
+ * @param int $bg+ *
+ * @return int + */ +function ncurses_init_pair($pair, $fg, $bg) {} + +/** + * Gets the RGB value for color + * @link https://php.net/manual/en/function.ncurses-color-content.php + * @param int $color+ *
+ * @param int &$r+ *
+ * @param int &$g+ *
+ * @param int &$b+ *
+ * @return int + */ +function ncurses_color_content($color, &$r, &$g, &$b) {} + +/** + * Gets the RGB value for color + * @link https://php.net/manual/en/function.ncurses-pair-content.php + * @param int $pair+ *
+ * @param int &$f+ *
+ * @param int &$b+ *
+ * @return int + */ +function ncurses_pair_content($pair, &$f, &$b) {} + +/** + * Move output position + * @link https://php.net/manual/en/function.ncurses-move.php + * @param int $y+ *
+ * @param int $x+ *
+ * @return int + */ +function ncurses_move($y, $x) {} + +/** + * Create a new window + * @link https://php.net/manual/en/function.ncurses-newwin.php + * @param int $rows+ * Number of rows + *
+ * @param int $cols+ * Number of columns + *
+ * @param int $y+ * y-ccordinate of the origin + *
+ * @param int $x+ * x-ccordinate of the origin + *
+ * @return resource a resource ID for the new window. + */ +function ncurses_newwin($rows, $cols, $y, $x) {} + +/** + * Refresh screen + * @link https://php.net/manual/en/function.ncurses-refresh.php + * @param int $ch+ *
+ * @return int + */ +function ncurses_refresh($ch) {} + +/** + * Start using colors + * @link https://php.net/manual/en/function.ncurses-start-color.php + * @return int + */ +function ncurses_start_color() {} + +/** + * Start using 'standout' attribute + * @link https://php.net/manual/en/function.ncurses-standout.php + * @return int + */ +function ncurses_standout() {} + +/** + * Stop using 'standout' attribute + * @link https://php.net/manual/en/function.ncurses-standend.php + * @return int + */ +function ncurses_standend() {} + +/** + * Returns baudrate of terminal + * @link https://php.net/manual/en/function.ncurses-baudrate.php + * @return int + */ +function ncurses_baudrate() {} + +/** + * Let the terminal beep + * @link https://php.net/manual/en/function.ncurses-beep.php + * @return int + */ +function ncurses_beep() {} + +/** + * Check if we can change terminals colors + * @link https://php.net/manual/en/function.ncurses-can-change-color.php + * @return bool Return true if the terminal has color capabilities and you can change + * the colors, false otherwise. + */ +function ncurses_can_change_color() {} + +/** + * Switch of input buffering + * @link https://php.net/manual/en/function.ncurses-cbreak.php + * @return bool true or NCURSES_ERR if any error occurred. + */ +function ncurses_cbreak() {} + +/** + * Clear screen + * @link https://php.net/manual/en/function.ncurses-clear.php + * @return bool + */ +function ncurses_clear() {} + +/** + * Clear screen from current position to bottom + * @link https://php.net/manual/en/function.ncurses-clrtobot.php + * @return bool + */ +function ncurses_clrtobot() {} + +/** + * Clear screen from current position to end of line + * @link https://php.net/manual/en/function.ncurses-clrtoeol.php + * @return bool + */ +function ncurses_clrtoeol() {} + +/** + * Saves terminals (program) mode + * @link https://php.net/manual/en/function.ncurses-def-prog-mode.php + * @return bool false on success, otherwise true. + */ +function ncurses_def_prog_mode() {} + +/** + * Resets the prog mode saved by def_prog_mode + * @link https://php.net/manual/en/function.ncurses-reset-prog-mode.php + * @return int + */ +function ncurses_reset_prog_mode() {} + +/** + * Saves terminals (shell) mode + * @link https://php.net/manual/en/function.ncurses-def-shell-mode.php + * @return bool false on success, true otherwise. + */ +function ncurses_def_shell_mode() {} + +/** + * Resets the shell mode saved by def_shell_mode + * @link https://php.net/manual/en/function.ncurses-reset-shell-mode.php + * @return int + */ +function ncurses_reset_shell_mode() {} + +/** + * Delete character at current position, move rest of line left + * @link https://php.net/manual/en/function.ncurses-delch.php + * @return bool false on success, true otherwise. + */ +function ncurses_delch() {} + +/** + * Delete line at current position, move rest of screen up + * @link https://php.net/manual/en/function.ncurses-deleteln.php + * @return bool false on success, otherwise true. + */ +function ncurses_deleteln() {} + +/** + * Write all prepared refreshes to terminal + * @link https://php.net/manual/en/function.ncurses-doupdate.php + * @return bool + */ +function ncurses_doupdate() {} + +/** + * Activate keyboard input echo + * @link https://php.net/manual/en/function.ncurses-echo.php + * @return bool false on success, true if any error occurred. + */ +function ncurses_echo() {} + +/** + * Erase terminal screen + * @link https://php.net/manual/en/function.ncurses-erase.php + * @return bool + */ +function ncurses_erase() {} + +/** + * Erase window contents + * @link https://php.net/manual/en/function.ncurses-werase.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_werase($window) {} + +/** + * Returns current erase character + * @link https://php.net/manual/en/function.ncurses-erasechar.php + * @return string The current erase char, as a string. + */ +function ncurses_erasechar() {} + +/** + * Flash terminal screen (visual bell) + * @link https://php.net/manual/en/function.ncurses-flash.php + * @return bool false on success, otherwise true. + */ +function ncurses_flash() {} + +/** + * Flush keyboard input buffer + * @link https://php.net/manual/en/function.ncurses-flushinp.php + * @return bool false on success, otherwise true. + */ +function ncurses_flushinp() {} + +/** + * Check for insert- and delete-capabilities + * @link https://php.net/manual/en/function.ncurses-has-ic.php + * @return bool true if the terminal has insert/delete-capabilities, false + * otherwise. + */ +function ncurses_has_ic() {} + +/** + * Check for line insert- and delete-capabilities + * @link https://php.net/manual/en/function.ncurses-has-il.php + * @return bool true if the terminal has insert/delete-line capabilities, + * false otherwise. + */ +function ncurses_has_il() {} + +/** + * Get character and attribute at current position + * @link https://php.net/manual/en/function.ncurses-inch.php + * @return string the character, as a string. + */ +function ncurses_inch() {} + +/** + * Insert a line, move rest of screen down + * @link https://php.net/manual/en/function.ncurses-insertln.php + * @return int + */ +function ncurses_insertln() {} + +/** + * Ncurses is in endwin mode, normal screen output may be performed + * @link https://php.net/manual/en/function.ncurses-isendwin.php + * @return bool true, if ncurses_endwin has been called + * without any subsequent calls to ncurses_wrefresh, + * false otherwise. + */ +function ncurses_isendwin() {} + +/** + * Returns current line kill character + * @link https://php.net/manual/en/function.ncurses-killchar.php + * @return string the kill character, as a string. + */ +function ncurses_killchar() {} + +/** + * Translate newline and carriage return / line feed + * @link https://php.net/manual/en/function.ncurses-nl.php + * @return bool + */ +function ncurses_nl() {} + +/** + * Switch terminal to cooked mode + * @link https://php.net/manual/en/function.ncurses-nocbreak.php + * @return bool true if any error occurred, otherwise false. + */ +function ncurses_nocbreak() {} + +/** + * Switch off keyboard input echo + * @link https://php.net/manual/en/function.ncurses-noecho.php + * @return bool true if any error occurred, false otherwise. + */ +function ncurses_noecho() {} + +/** + * Do not translate newline and carriage return / line feed + * @link https://php.net/manual/en/function.ncurses-nonl.php + * @return bool + */ +function ncurses_nonl() {} + +/** + * Switch terminal out of raw mode + * @link https://php.net/manual/en/function.ncurses-noraw.php + * @return bool true if any error occurred, otherwise false. + */ +function ncurses_noraw() {} + +/** + * Switch terminal into raw mode + * @link https://php.net/manual/en/function.ncurses-raw.php + * @return bool true if any error occurred, otherwise false. + */ +function ncurses_raw() {} + +/** + * Enables/Disable 8-bit meta key information + * @link https://php.net/manual/en/function.ncurses-meta.php + * @param resource $window+ *
+ * @param $bit8 bool+ *
+ * @return int + */ +function ncurses_meta($window, $bit8) {} + +/** + * Restores saved terminal state + * @link https://php.net/manual/en/function.ncurses-resetty.php + * @return bool Always returns false. + */ +function ncurses_resetty() {} + +/** + * Saves terminal state + * @link https://php.net/manual/en/function.ncurses-savetty.php + * @return bool Always returns false. + */ +function ncurses_savetty() {} + +/** + * Returns a logical OR of all attribute flags supported by terminal + * @link https://php.net/manual/en/function.ncurses-termattrs.php + * @return bool + */ +function ncurses_termattrs() {} + +/** + * Assign terminal default colors to color id -1 + * @link https://php.net/manual/en/function.ncurses-use-default-colors.php + * @return bool + */ +function ncurses_use_default_colors() {} + +/** + * Returns current soft label key attribute + * @link https://php.net/manual/en/function.ncurses-slk-attr.php + * @return int The attribute, as an integer. + */ +function ncurses_slk_attr() {} + +/** + * Clears soft labels from screen + * @link https://php.net/manual/en/function.ncurses-slk-clear.php + * @return bool true on errors, false otherwise. + */ +function ncurses_slk_clear() {} + +/** + * Copies soft label keys to virtual screen + * @link https://php.net/manual/en/function.ncurses-slk-noutrefresh.php + * @return bool + */ +function ncurses_slk_noutrefresh() {} + +/** + * Copies soft label keys to screen + * @link https://php.net/manual/en/function.ncurses-slk-refresh.php + * @return int + */ +function ncurses_slk_refresh() {} + +/** + * Restores soft label keys + * @link https://php.net/manual/en/function.ncurses-slk-restore.php + * @return int + */ +function ncurses_slk_restore() {} + +/** + * Forces output when ncurses_slk_noutrefresh is performed + * @link https://php.net/manual/en/function.ncurses-slk-touch.php + * @return int + */ +function ncurses_slk_touch() {} + +/** + * Turn off the given attributes + * @link https://php.net/manual/en/function.ncurses-attroff.php + * @param int $attributes+ *
+ * @return int + */ +function ncurses_attroff($attributes) {} + +/** + * Turn on the given attributes + * @link https://php.net/manual/en/function.ncurses-attron.php + * @param int $attributes+ *
+ * @return int + */ +function ncurses_attron($attributes) {} + +/** + * Set given attributes + * @link https://php.net/manual/en/function.ncurses-attrset.php + * @param int $attributes+ *
+ * @return int + */ +function ncurses_attrset($attributes) {} + +/** + * Set background property for terminal screen + * @link https://php.net/manual/en/function.ncurses-bkgd.php + * @param int $attrchar+ *
+ * @return int + */ +function ncurses_bkgd($attrchar) {} + +/** + * Set cursor state + * @link https://php.net/manual/en/function.ncurses-curs-set.php + * @param int $visibility+ *
+ * @return int + */ +function ncurses_curs_set($visibility) {} + +/** + * Delay output on terminal using padding characters + * @link https://php.net/manual/en/function.ncurses-delay-output.php + * @param int $milliseconds+ *
+ * @return int + */ +function ncurses_delay_output($milliseconds) {} + +/** + * Single character output including refresh + * @link https://php.net/manual/en/function.ncurses-echochar.php + * @param int $character+ *
+ * @return int + */ +function ncurses_echochar($character) {} + +/** + * Put terminal into halfdelay mode + * @link https://php.net/manual/en/function.ncurses-halfdelay.php + * @param int $tenth+ *
+ * @return int + */ +function ncurses_halfdelay($tenth) {} + +/** + * Check for presence of a function key on terminal keyboard + * @link https://php.net/manual/en/function.ncurses-has-key.php + * @param int $keycode+ *
+ * @return int + */ +function ncurses_has_key($keycode) {} + +/** + * Insert character moving rest of line including character at current position + * @link https://php.net/manual/en/function.ncurses-insch.php + * @param int $character+ *
+ * @return int + */ +function ncurses_insch($character) {} + +/** + * Insert lines before current line scrolling down (negative numbers delete and scroll up) + * @link https://php.net/manual/en/function.ncurses-insdelln.php + * @param int $count+ *
+ * @return int + */ +function ncurses_insdelln($count) {} + +/** + * Set timeout for mouse button clicks + * @link https://php.net/manual/en/function.ncurses-mouseinterval.php + * @param int $milliseconds+ *
+ * @return int + */ +function ncurses_mouseinterval($milliseconds) {} + +/** + * Sleep + * @link https://php.net/manual/en/function.ncurses-napms.php + * @param int $milliseconds+ *
+ * @return int + */ +function ncurses_napms($milliseconds) {} + +/** + * Scroll window content up or down without changing current position + * @link https://php.net/manual/en/function.ncurses-scrl.php + * @param int $count+ *
+ * @return int + */ +function ncurses_scrl($count) {} + +/** + * Turn off the given attributes for soft function-key labels + * @link https://php.net/manual/en/function.ncurses-slk-attroff.php + * @param int $intarg+ *
+ * @return int + */ +function ncurses_slk_attroff($intarg) {} + +/** + * Turn on the given attributes for soft function-key labels + * @link https://php.net/manual/en/function.ncurses-slk-attron.php + * @param int $intarg+ *
+ * @return int + */ +function ncurses_slk_attron($intarg) {} + +/** + * Set given attributes for soft function-key labels + * @link https://php.net/manual/en/function.ncurses-slk-attrset.php + * @param int $intarg+ *
+ * @return int + */ +function ncurses_slk_attrset($intarg) {} + +/** + * Sets color for soft label keys + * @link https://php.net/manual/en/function.ncurses-slk-color.php + * @param int $intarg+ *
+ * @return int + */ +function ncurses_slk_color($intarg) {} + +/** + * Initializes soft label key functions + * @link https://php.net/manual/en/function.ncurses-slk-init.php + * @param int $format+ * If ncurses_initscr eventually uses a line from + * stdscr to emulate the soft labels, then this parameter determines how + * the labels are arranged of the screen. + *
+ *+ * 0 indicates a 3-2-3 arrangement of the labels, 1 indicates a 4-4 + * arrangement and 2 indicates the PC like 4-4-4 mode, but in addition an + * index line will be created. + *
+ * @return bool + */ +function ncurses_slk_init($format) {} + +/** + * Sets function key labels + * @link https://php.net/manual/en/function.ncurses-slk-set.php + * @param int $labelnr+ *
+ * @param string $label+ *
+ * @param int $format+ *
+ * @return bool + */ +function ncurses_slk_set($labelnr, $label, $format) {} + +/** + * Specify different filedescriptor for typeahead checking + * @link https://php.net/manual/en/function.ncurses-typeahead.php + * @param int $fd+ *
+ * @return int + */ +function ncurses_typeahead($fd) {} + +/** + * Put a character back into the input stream + * @link https://php.net/manual/en/function.ncurses-ungetch.php + * @param int $keycode+ *
+ * @return int + */ +function ncurses_ungetch($keycode) {} + +/** + * Display the string on the terminal in the video attribute mode + * @link https://php.net/manual/en/function.ncurses-vidattr.php + * @param int $intarg+ *
+ * @return int + */ +function ncurses_vidattr($intarg) {} + +/** + * Refresh window on terminal screen + * @link https://php.net/manual/en/function.ncurses-wrefresh.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wrefresh($window) {} + +/** + * Control use of extended names in terminfo descriptions + * @link https://php.net/manual/en/function.ncurses-use-extended-names.php + * @param bool $flag+ *
+ * @return int + */ +function ncurses_use_extended_names($flag) {} + +/** + * Control screen background + * @link https://php.net/manual/en/function.ncurses-bkgdset.php + * @param int $attrchar+ *
+ * @return void + */ +function ncurses_bkgdset($attrchar) {} + +/** + * Set LINES for iniscr() and newterm() to 1 + * @link https://php.net/manual/en/function.ncurses-filter.php + * @return void + */ +function ncurses_filter() {} + +/** + * Do not flush on signal characters + * @link https://php.net/manual/en/function.ncurses-noqiflush.php + * @return void + */ +function ncurses_noqiflush() {} + +/** + * Flush on signal characters + * @link https://php.net/manual/en/function.ncurses-qiflush.php + * @return void + */ +function ncurses_qiflush() {} + +/** + * Set timeout for special key sequences + * @link https://php.net/manual/en/function.ncurses-timeout.php + * @param int $millisec+ *
+ * @return void + */ +function ncurses_timeout($millisec) {} + +/** + * Control use of environment information about terminal size + * @link https://php.net/manual/en/function.ncurses-use-env.php + * @param bool $flag+ *
+ * @return void + */ +function ncurses_use_env($flag) {} + +/** + * Output text at current position + * @link https://php.net/manual/en/function.ncurses-addstr.php + * @param string $text+ *
+ * @return int + */ +function ncurses_addstr($text) {} + +/** + * Apply padding information to the string and output it + * @link https://php.net/manual/en/function.ncurses-putp.php + * @param string $text+ *
+ * @return int + */ +function ncurses_putp($text) {} + +/** + * Dump screen content to file + * @link https://php.net/manual/en/function.ncurses-scr-dump.php + * @param string $filename+ *
+ * @return int + */ +function ncurses_scr_dump($filename) {} + +/** + * Initialize screen from file dump + * @link https://php.net/manual/en/function.ncurses-scr-init.php + * @param string $filename+ *
+ * @return int + */ +function ncurses_scr_init($filename) {} + +/** + * Restore screen from file dump + * @link https://php.net/manual/en/function.ncurses-scr-restore.php + * @param string $filename+ *
+ * @return int + */ +function ncurses_scr_restore($filename) {} + +/** + * Inherit screen from file dump + * @link https://php.net/manual/en/function.ncurses-scr-set.php + * @param string $filename+ *
+ * @return int + */ +function ncurses_scr_set($filename) {} + +/** + * Move current position and add character + * @link https://php.net/manual/en/function.ncurses-mvaddch.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param int $c+ *
+ * @return int + */ +function ncurses_mvaddch($y, $x, $c) {} + +/** + * Move position and add attributed string with specified length + * @link https://php.net/manual/en/function.ncurses-mvaddchnstr.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param string $s+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_mvaddchnstr($y, $x, $s, $n) {} + +/** + * Add attributed string with specified length at current position + * @link https://php.net/manual/en/function.ncurses-addchnstr.php + * @param string $s+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_addchnstr($s, $n) {} + +/** + * Move position and add attributed string + * @link https://php.net/manual/en/function.ncurses-mvaddchstr.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param string $s+ *
+ * @return int + */ +function ncurses_mvaddchstr($y, $x, $s) {} + +/** + * Add attributed string at current position + * @link https://php.net/manual/en/function.ncurses-addchstr.php + * @param string $s+ *
+ * @return int + */ +function ncurses_addchstr($s) {} + +/** + * Move position and add string with specified length + * @link https://php.net/manual/en/function.ncurses-mvaddnstr.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param string $s+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_mvaddnstr($y, $x, $s, $n) {} + +/** + * Add string with specified length at current position + * @link https://php.net/manual/en/function.ncurses-addnstr.php + * @param string $s+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_addnstr($s, $n) {} + +/** + * Move position and add string + * @link https://php.net/manual/en/function.ncurses-mvaddstr.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param string $s+ *
+ * @return int + */ +function ncurses_mvaddstr($y, $x, $s) {} + +/** + * Move position and delete character, shift rest of line left + * @link https://php.net/manual/en/function.ncurses-mvdelch.php + * @param int $y+ *
+ * @param int $x+ *
+ * @return int + */ +function ncurses_mvdelch($y, $x) {} + +/** + * Move position and get character at new position + * @link https://php.net/manual/en/function.ncurses-mvgetch.php + * @param int $y+ *
+ * @param int $x+ *
+ * @return int + */ +function ncurses_mvgetch($y, $x) {} + +/** + * Move position and get attributed character at new position + * @link https://php.net/manual/en/function.ncurses-mvinch.php + * @param int $y+ *
+ * @param int $x+ *
+ * @return int + */ +function ncurses_mvinch($y, $x) {} + +/** + * Add string at new position in window + * @link https://php.net/manual/en/function.ncurses-mvwaddstr.php + * @param resource $window+ *
+ * @param int $y+ *
+ * @param int $x+ *
+ * @param string $text+ *
+ * @return int + */ +function ncurses_mvwaddstr($window, $y, $x, $text) {} + +/** + * Insert string at current position, moving rest of line right + * @link https://php.net/manual/en/function.ncurses-insstr.php + * @param string $text+ *
+ * @return int + */ +function ncurses_insstr($text) {} + +/** + * Reads string from terminal screen + * @link https://php.net/manual/en/function.ncurses-instr.php + * @param string &$buffer+ * The characters. Attributes will be stripped. + *
+ * @return int the number of characters. + */ +function ncurses_instr(&$buffer) {} + +/** + * Set new position and draw a horizontal line using an attributed character and max. n characters long + * @link https://php.net/manual/en/function.ncurses-mvhline.php + * @param int $y+ *
+ * @param int $x+ *
+ * @param int $attrchar+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_mvhline($y, $x, $attrchar, $n) {} + +/** + * Move cursor immediately + * @link https://php.net/manual/en/function.ncurses-mvcur.php + * @param int $old_y+ *
+ * @param int $old_x+ *
+ * @param int $new_y+ *
+ * @param int $new_x+ *
+ * @return int + */ +function ncurses_mvcur($old_y, $old_x, $new_y, $new_x) {} + +/** + * Set new RGB value for color + * @link https://php.net/manual/en/function.ncurses-init-color.php + * @param int $color+ *
+ * @param int $r+ *
+ * @param int $g+ *
+ * @param int $b+ *
+ * @return int + */ +function ncurses_init_color($color, $r, $g, $b) {} + +/** + * Draw a border around the screen using attributed characters + * @link https://php.net/manual/en/function.ncurses-border.php + * @param int $left+ *
+ * @param int $right+ *
+ * @param int $top+ *
+ * @param int $bottom+ *
+ * @param int $tl_corner+ * Top left corner + *
+ * @param int $tr_corner+ * Top right corner + *
+ * @param int $bl_corner+ * Bottom left corner + *
+ * @param int $br_corner+ * Bottom right corner + *
+ * @return int + */ +function ncurses_border($left, $right, $top, $bottom, $tl_corner, $tr_corner, $bl_corner, $br_corner) {} + +/** + * Define default colors for color 0 + * @link https://php.net/manual/en/function.ncurses-assume-default-colors.php + * @param int $fg+ *
+ * @param int $bg+ *
+ * @return int + */ +function ncurses_assume_default_colors($fg, $bg) {} + +/** + * Define a keycode + * @link https://php.net/manual/en/function.ncurses-define-key.php + * @param string $definition+ *
+ * @param int $keycode+ *
+ * @return int + */ +function ncurses_define_key($definition, $keycode) {} + +/** + * Draw a horizontal line at current position using an attributed character and max. n characters long + * @link https://php.net/manual/en/function.ncurses-hline.php + * @param int $charattr+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_hline($charattr, $n) {} + +/** + * Draw a vertical line at current position using an attributed character and max. n characters long + * @link https://php.net/manual/en/function.ncurses-vline.php + * @param int $charattr+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_vline($charattr, $n) {} + +/** + * Enable or disable a keycode + * @link https://php.net/manual/en/function.ncurses-keyok.php + * @param int $keycode+ *
+ * @param bool $enable+ *
+ * @return int + */ +function ncurses_keyok($keycode, $enable) {} + +/** + * Returns terminals (short)-name + * @link https://php.net/manual/en/function.ncurses-termname.php + * @return string|null the shortname of the terminal, truncated to 14 characters. + * On errors, returns null. + */ +function ncurses_termname() {} + +/** + * Returns terminals description + * @link https://php.net/manual/en/function.ncurses-longname.php + * @return string|null the description, as a string truncated to 128 characters. + * On errors, returns null. + */ +function ncurses_longname() {} + +/** + * Sets mouse options + * @link https://php.net/manual/en/function.ncurses-mousemask.php + * @param int $newmask+ * Mouse mask options can be set with the following predefined constants: + *
NCURSES_BUTTON1_PRESSED
+ * @param int &$oldmask+ * This will be set to the previous value of the mouse event mask. + *
+ * @return int a mask to indicated which of the in parameter + * newmask specified mouse events can be reported. On + * complete failure, it returns 0. + * + */ +function ncurses_mousemask($newmask, &$oldmask) {} + +/** + * Reads mouse event + * @link https://php.net/manual/en/function.ncurses-getmouse.php + * @param array &$mevent+ * Event options will be delivered in this parameter which has to be an + * array, passed by reference (see example below). + *
+ *+ * On success an associative array with following keys will be delivered: + *
+ * "id" : Id to distinguish multiple devices + *
+ * @return bool false if a mouse event is actually visible in the given window, + * otherwise returns true. + * + */ +function ncurses_getmouse(array &$mevent) {} + +/** + * Pushes mouse event to queue + * @link https://php.net/manual/en/function.ncurses-ungetmouse.php + * @param array $mevent+ * An associative array specifying the event options: + * "id" : Id to distinguish multiple devices + *
+ * @return bool false on success, true otherwise. + */ +function ncurses_ungetmouse(array $mevent) {} + +/** + * Transforms coordinates + * @link https://php.net/manual/en/function.ncurses-mouse-trafo.php + * @param int &$y+ *
+ * @param int &$x+ *
+ * @param bool $toscreen+ *
+ * @return bool + */ +function ncurses_mouse_trafo(&$y, &$x, $toscreen) {} + +/** + * Transforms window/stdscr coordinates + * @link https://php.net/manual/en/function.ncurses-wmouse-trafo.php + * @param resource $window+ *
+ * @param int &$y+ *
+ * @param int &$x+ *
+ * @param bool $toscreen+ *
+ * @return bool + */ +function ncurses_wmouse_trafo($window, &$y, &$x, $toscreen) {} + +/** + * Outputs text at current position in window + * @link https://php.net/manual/en/function.ncurses-waddstr.php + * @param resource $window+ *
+ * @param string $str+ *
+ * @param int $n [optional]+ *
+ * @return int + */ +function ncurses_waddstr($window, $str, $n = null) {} + +/** + * Copies window to virtual screen + * @link https://php.net/manual/en/function.ncurses-wnoutrefresh.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wnoutrefresh($window) {} + +/** + * Clears window + * @link https://php.net/manual/en/function.ncurses-wclear.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wclear($window) {} + +/** + * Sets windows color pairings + * @link https://php.net/manual/en/function.ncurses-wcolor-set.php + * @param resource $window+ *
+ * @param int $color_pair+ *
+ * @return int + */ +function ncurses_wcolor_set($window, $color_pair) {} + +/** + * Reads a character from keyboard (window) + * @link https://php.net/manual/en/function.ncurses-wgetch.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wgetch($window) {} + +/** + * Turns keypad on or off + * @link https://php.net/manual/en/function.ncurses-keypad.php + * @param resource $window+ *
+ * @param bool $bf+ *
+ * @return int + */ +function ncurses_keypad($window, $bf) {} + +/** + * Moves windows output position + * @link https://php.net/manual/en/function.ncurses-wmove.php + * @param resource $window+ *
+ * @param int $y+ *
+ * @param int $x+ *
+ * @return int + */ +function ncurses_wmove($window, $y, $x) {} + +/** + * Creates a new pad (window) + * @link https://php.net/manual/en/function.ncurses-newpad.php + * @param int $rows+ *
+ * @param int $cols+ *
+ * @return resource + */ +function ncurses_newpad($rows, $cols) {} + +/** + * Copies a region from a pad into the virtual screen + * @link https://php.net/manual/en/function.ncurses-prefresh.php + * @param resource $pad+ *
+ * @param int $pminrow+ *
+ * @param int $pmincol+ *
+ * @param int $sminrow+ *
+ * @param int $smincol+ *
+ * @param int $smaxrow+ *
+ * @param int $smaxcol+ *
+ * @return int + */ +function ncurses_prefresh($pad, $pminrow, $pmincol, $sminrow, $smincol, $smaxrow, $smaxcol) {} + +/** + * Copies a region from a pad into the virtual screen + * @link https://php.net/manual/en/function.ncurses-pnoutrefresh.php + * @param resource $pad+ *
+ * @param int $pminrow+ *
+ * @param int $pmincol+ *
+ * @param int $sminrow+ *
+ * @param int $smincol+ *
+ * @param int $smaxrow+ *
+ * @param int $smaxcol+ *
+ * @return int + */ +function ncurses_pnoutrefresh($pad, $pminrow, $pmincol, $sminrow, $smincol, $smaxrow, $smaxcol) {} + +/** + * Enter standout mode for a window + * @link https://php.net/manual/en/function.ncurses-wstandout.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wstandout($window) {} + +/** + * End standout mode for a window + * @link https://php.net/manual/en/function.ncurses-wstandend.php + * @param resource $window+ *
+ * @return int + */ +function ncurses_wstandend($window) {} + +/** + * Set the attributes for a window + * @link https://php.net/manual/en/function.ncurses-wattrset.php + * @param resource $window+ *
+ * @param int $attrs+ *
+ * @return int + */ +function ncurses_wattrset($window, $attrs) {} + +/** + * Turns on attributes for a window + * @link https://php.net/manual/en/function.ncurses-wattron.php + * @param resource $window+ *
+ * @param int $attrs+ *
+ * @return int + */ +function ncurses_wattron($window, $attrs) {} + +/** + * Turns off attributes for a window + * @link https://php.net/manual/en/function.ncurses-wattroff.php + * @param resource $window+ *
+ * @param int $attrs+ *
+ * @return int + */ +function ncurses_wattroff($window, $attrs) {} + +/** + * Adds character at current position in a window and advance cursor + * @link https://php.net/manual/en/function.ncurses-waddch.php + * @param resource $window+ *
+ * @param int $ch+ *
+ * @return int + */ +function ncurses_waddch($window, $ch) {} + +/** + * Draws a border around the window using attributed characters + * @link https://php.net/manual/en/function.ncurses-wborder.php + * @param resource $window+ * The window on which we operate + *
+ * @param int $left+ *
+ * @param int $right+ *
+ * @param int $top+ *
+ * @param int $bottom+ *
+ * @param int $tl_corner+ * Top left corner + *
+ * @param int $tr_corner+ * Top right corner + *
+ * @param int $bl_corner+ * Bottom left corner + *
+ * @param int $br_corner+ * Bottom right corner + *
+ * @return int + */ +function ncurses_wborder($window, $left, $right, $top, $bottom, $tl_corner, $tr_corner, $bl_corner, $br_corner) {} + +/** + * Draws a horizontal line in a window at current position using an attributed character and max. n characters long + * @link https://php.net/manual/en/function.ncurses-whline.php + * @param resource $window+ *
+ * @param int $charattr+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_whline($window, $charattr, $n) {} + +/** + * Draws a vertical line in a window at current position using an attributed character and max. n characters long + * @link https://php.net/manual/en/function.ncurses-wvline.php + * @param resource $window+ *
+ * @param int $charattr+ *
+ * @param int $n+ *
+ * @return int + */ +function ncurses_wvline($window, $charattr, $n) {} + +/** + * Returns the current cursor position for a window + * @link https://php.net/manual/en/function.ncurses-getyx.php + * @param resource $window+ *
+ * @param int &$y+ *
+ * @param int &$x+ *
+ * @return void + */ +function ncurses_getyx($window, &$y, &$x) {} + +/** + * Returns the size of a window + * @link https://php.net/manual/en/function.ncurses-getmaxyx.php + * @param resource $window+ * The measured window + *
+ * @param int &$y+ * This will be set to the window height + *
+ * @param int &$x+ * This will be set to the window width + *
+ * @return void + */ +function ncurses_getmaxyx($window, &$y, &$x) {} + +/** + * Refreshes the virtual screen to reflect the relations between panels in the stack + * @link https://php.net/manual/en/function.ncurses-update-panels.php + * @return void + */ +function ncurses_update_panels() {} + +/** + * Returns the window associated with panel + * @link https://php.net/manual/en/function.ncurses-panel-window.php + * @param resource $panel+ *
+ * @return resource + */ +function ncurses_panel_window($panel) {} + +/** + * Returns the panel below panel + * @link https://php.net/manual/en/function.ncurses-panel-below.php + * @param resource $panel+ *
+ * @return resource + */ +function ncurses_panel_below($panel) {} + +/** + * Returns the panel above panel + * @link https://php.net/manual/en/function.ncurses-panel-above.php + * @param resource $panel+ *
+ * @return resource If panel is null, returns the bottom panel in the stack. + */ +function ncurses_panel_above($panel) {} + +/** + * Replaces the window associated with panel + * @link https://php.net/manual/en/function.ncurses-replace-panel.php + * @param resource $panel+ *
+ * @param resource $window+ *
+ * @return int + */ +function ncurses_replace_panel($panel, $window) {} + +/** + * Moves a panel so that its upper-left corner is at [startx, starty] + * @link https://php.net/manual/en/function.ncurses-move-panel.php + * @param resource $panel+ *
+ * @param int $startx+ *
+ * @param int $starty+ *
+ * @return int + */ +function ncurses_move_panel($panel, $startx, $starty) {} + +/** + * Moves a visible panel to the bottom of the stack + * @link https://php.net/manual/en/function.ncurses-bottom-panel.php + * @param resource $panel+ *
+ * @return int + */ +function ncurses_bottom_panel($panel) {} + +/** + * Moves a visible panel to the top of the stack + * @link https://php.net/manual/en/function.ncurses-top-panel.php + * @param resource $panel+ *
+ * @return int + */ +function ncurses_top_panel($panel) {} + +/** + * Places an invisible panel on top of the stack, making it visible + * @link https://php.net/manual/en/function.ncurses-show-panel.php + * @param resource $panel+ *
+ * @return int + */ +function ncurses_show_panel($panel) {} + +/** + * Remove panel from the stack, making it invisible + * @link https://php.net/manual/en/function.ncurses-hide-panel.php + * @param resource $panel+ *
+ * @return int + */ +function ncurses_hide_panel($panel) {} + +/** + * Remove panel from the stack and delete it (but not the associated window) + * @link https://php.net/manual/en/function.ncurses-del-panel.php + * @param resource $panel+ *
+ * @return bool + */ +function ncurses_del_panel($panel) {} + +/** + * Create a new panel and associate it with window + * @link https://php.net/manual/en/function.ncurses-new-panel.php + * @param resource $window+ *
+ * @return resource + */ +function ncurses_new_panel($window) {} + +define('NCURSES_COLOR_BLACK', 0); +define('NCURSES_COLOR_RED', 1); +define('NCURSES_COLOR_GREEN', 2); +define('NCURSES_COLOR_YELLOW', 3); +define('NCURSES_COLOR_BLUE', 4); +define('NCURSES_COLOR_MAGENTA', 5); +define('NCURSES_COLOR_CYAN', 6); +define('NCURSES_COLOR_WHITE', 7); +define('NCURSES_KEY_DOWN', 258); +define('NCURSES_KEY_UP', 259); +define('NCURSES_KEY_LEFT', 260); +define('NCURSES_KEY_RIGHT', 261); +define('NCURSES_KEY_HOME', 262); +define('NCURSES_KEY_END', 360); +define('NCURSES_KEY_BACKSPACE', 263); +define('NCURSES_KEY_MOUSE', 409); +define('NCURSES_KEY_F0', 264); +define('NCURSES_KEY_F1', 265); +define('NCURSES_KEY_F2', 266); +define('NCURSES_KEY_F3', 267); +define('NCURSES_KEY_F4', 268); +define('NCURSES_KEY_F5', 269); +define('NCURSES_KEY_F6', 270); +define('NCURSES_KEY_F7', 271); +define('NCURSES_KEY_F8', 272); +define('NCURSES_KEY_F9', 273); +define('NCURSES_KEY_F10', 274); +define('NCURSES_KEY_F11', 275); +define('NCURSES_KEY_F12', 276); +define('NCURSES_KEY_DL', 328); +define('NCURSES_KEY_IL', 329); +define('NCURSES_KEY_DC', 330); +define('NCURSES_KEY_IC', 331); +define('NCURSES_KEY_EIC', 332); +define('NCURSES_KEY_CLEAR', 333); +define('NCURSES_KEY_EOS', 334); +define('NCURSES_KEY_EOL', 335); +define('NCURSES_KEY_SF', 336); +define('NCURSES_KEY_SR', 337); +define('NCURSES_KEY_NPAGE', 338); +define('NCURSES_KEY_PPAGE', 339); +define('NCURSES_KEY_STAB', 340); +define('NCURSES_KEY_CTAB', 341); +define('NCURSES_KEY_CATAB', 342); +define('NCURSES_KEY_ENTER', 343); +define('NCURSES_KEY_SRESET', 344); +define('NCURSES_KEY_RESET', 345); +define('NCURSES_KEY_PRINT', 346); +define('NCURSES_KEY_LL', 347); +define('NCURSES_KEY_A1', 348); +define('NCURSES_KEY_A3', 349); +define('NCURSES_KEY_B2', 350); +define('NCURSES_KEY_C1', 351); +define('NCURSES_KEY_C3', 352); +define('NCURSES_KEY_BTAB', 353); +define('NCURSES_KEY_BEG', 354); +define('NCURSES_KEY_CANCEL', 355); +define('NCURSES_KEY_CLOSE', 356); +define('NCURSES_KEY_COMMAND', 357); +define('NCURSES_KEY_COPY', 358); +define('NCURSES_KEY_CREATE', 359); +define('NCURSES_KEY_EXIT', 361); +define('NCURSES_KEY_FIND', 362); +define('NCURSES_KEY_HELP', 363); +define('NCURSES_KEY_MARK', 364); +define('NCURSES_KEY_MESSAGE', 365); +define('NCURSES_KEY_MOVE', 366); +define('NCURSES_KEY_NEXT', 367); +define('NCURSES_KEY_OPEN', 368); +define('NCURSES_KEY_OPTIONS', 369); +define('NCURSES_KEY_PREVIOUS', 370); +define('NCURSES_KEY_REDO', 371); +define('NCURSES_KEY_REFERENCE', 372); +define('NCURSES_KEY_REFRESH', 373); +define('NCURSES_KEY_REPLACE', 374); +define('NCURSES_KEY_RESTART', 375); +define('NCURSES_KEY_RESUME', 376); +define('NCURSES_KEY_SAVE', 377); +define('NCURSES_KEY_SBEG', 378); +define('NCURSES_KEY_SCANCEL', 379); +define('NCURSES_KEY_SCOMMAND', 380); +define('NCURSES_KEY_SCOPY', 381); +define('NCURSES_KEY_SCREATE', 382); +define('NCURSES_KEY_SDC', 383); +define('NCURSES_KEY_SDL', 384); +define('NCURSES_KEY_SELECT', 385); +define('NCURSES_KEY_SEND', 386); +define('NCURSES_KEY_SEOL', 387); +define('NCURSES_KEY_SEXIT', 388); +define('NCURSES_KEY_SFIND', 389); +define('NCURSES_KEY_SHELP', 390); +define('NCURSES_KEY_SHOME', 391); +define('NCURSES_KEY_SIC', 392); +define('NCURSES_KEY_SLEFT', 393); +define('NCURSES_KEY_SMESSAGE', 394); +define('NCURSES_KEY_SMOVE', 395); +define('NCURSES_KEY_SNEXT', 396); +define('NCURSES_KEY_SOPTIONS', 397); +define('NCURSES_KEY_SPREVIOUS', 398); +define('NCURSES_KEY_SPRINT', 399); +define('NCURSES_KEY_SREDO', 400); +define('NCURSES_KEY_SREPLACE', 401); +define('NCURSES_KEY_SRIGHT', 402); +define('NCURSES_KEY_SRSUME', 403); +define('NCURSES_KEY_SSAVE', 404); +define('NCURSES_KEY_SSUSPEND', 405); +define('NCURSES_KEY_SUNDO', 406); +define('NCURSES_KEY_SUSPEND', 407); +define('NCURSES_KEY_UNDO', 408); +define('NCURSES_KEY_RESIZE', 410); +define('NCURSES_A_NORMAL', 0); +define('NCURSES_A_STANDOUT', 65536); +define('NCURSES_A_UNDERLINE', 131072); +define('NCURSES_A_REVERSE', 262144); +define('NCURSES_A_BLINK', 524288); +define('NCURSES_A_DIM', 1048576); +define('NCURSES_A_BOLD', 2097152); +define('NCURSES_A_PROTECT', 16777216); +define('NCURSES_A_INVIS', 8388608); +define('NCURSES_A_ALTCHARSET', 4194304); +define('NCURSES_A_CHARTEXT', 255); +define('NCURSES_BUTTON1_PRESSED', 2); +define('NCURSES_BUTTON1_RELEASED', 1); +define('NCURSES_BUTTON1_CLICKED', 4); +define('NCURSES_BUTTON1_DOUBLE_CLICKED', 8); +define('NCURSES_BUTTON1_TRIPLE_CLICKED', 16); +define('NCURSES_BUTTON2_PRESSED', 128); +define('NCURSES_BUTTON2_RELEASED', 64); +define('NCURSES_BUTTON2_CLICKED', 256); +define('NCURSES_BUTTON2_DOUBLE_CLICKED', 512); +define('NCURSES_BUTTON2_TRIPLE_CLICKED', 1024); +define('NCURSES_BUTTON3_PRESSED', 8192); +define('NCURSES_BUTTON3_RELEASED', 4096); +define('NCURSES_BUTTON3_CLICKED', 16384); +define('NCURSES_BUTTON3_DOUBLE_CLICKED', 32768); +define('NCURSES_BUTTON3_TRIPLE_CLICKED', 65536); +define('NCURSES_BUTTON4_PRESSED', 524288); +define('NCURSES_BUTTON4_RELEASED', 262144); +define('NCURSES_BUTTON4_CLICKED', 1048576); +define('NCURSES_BUTTON4_DOUBLE_CLICKED', 2097152); +define('NCURSES_BUTTON4_TRIPLE_CLICKED', 4194304); +define('NCURSES_BUTTON_SHIFT', 33554432); +define('NCURSES_BUTTON_CTRL', 16777216); +define('NCURSES_BUTTON_ALT', 67108864); +define('NCURSES_ALL_MOUSE_EVENTS', 134217727); +define('NCURSES_REPORT_MOUSE_POSITION', 134217728); + +// End of ncurses v. diff --git a/phpstorm-stubs/newrelic/newrelic.php b/phpstorm-stubs/newrelic/newrelic.php new file mode 100644 index 0000000..f9be870 --- /dev/null +++ b/phpstorm-stubs/newrelic/newrelic.php @@ -0,0 +1,648 @@ + + * Returns large object's contents + * @link https://php.net/manual/en/oci-lob.load.php + * @return string|false The contents of the object, or FALSE on errors. + */ + public function load() {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * If provided, this method will truncate the LOB to + * length bytes. Otherwise, it will completely + * purge the LOB. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function truncate($length = 0) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * By default, resources are not freed, but using flag + * OCI_LOB_BUFFER_FREE you can do it explicitly. + * Be sure you know what you're doing - next read/write operation to the + * same part of LOB will involve a round-trip to the server and initialize + * new buffer resources. It is recommended to use + * OCI_LOB_BUFFER_FREE flag only when you are not + * going to work with the LOB anymore. + *
+ * @return bool TRUE on success or FALSE on failure. + * + *
+ * Returns FALSE if buffering was not enabled or an error occurred.
+ */
+ public function flush($flag = null) {}
+
+ /**
+ * (PHP 5, PECL OCI8 >= 1.1.0)
+ * Changes current state of buffering for the large object
+ * @link https://php.net/manual/en/oci-lob.setbuffering.php
+ * @param bool $on_off
+ * TRUE for on and FALSE for off. + *
+ * @return bool TRUE on success or FALSE on failure. Repeated calls to this method with the same flag will + * return TRUE. + */ + public function setbuffering($on_off) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The length of data to read, in bytes. Large values will be rounded down to 1 MB. + *
+ * @return string|false The contents as a string, or FALSE on failure. + */ + public function read($length) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Indicates the amount of bytes, on which internal pointer should be + * moved from the position, pointed by whence. + *
+ * @param int $whence [optional]+ * May be one of: + * OCI_SEEK_SET - sets the position equal to + * offset + * OCI_SEEK_CUR - adds offset + * bytes to the current position + * OCI_SEEK_END - adds offset + * bytes to the end of large object (use negative value to move to a position + * before the end of large object) + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function seek($offset, $whence = OCI_SEEK_SET) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to write in the LOB. + *
+ * @param int $length [optional]+ * If this parameter is given, writing will stop after + * length bytes have been written or the end of + * data is reached, whichever comes first. + *
+ * @return int|false The number of bytes written or FALSE on failure. + */ + public function write($data, $length = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The copied LOB. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function append(#[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_from) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Path to the file. + *
+ * @param int $start [optional]+ * Indicates from where to start exporting. + *
+ * @param int $length [optional]+ * Indicates the length of data to be exported. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function export($filename, $start = null, $length = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Path to the file. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function import($filename) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to write. + *
+ * @param int $lob_type [optional]+ * Can be one of the following: + * OCI_TEMP_BLOB is used to create temporary BLOBs + * OCI_TEMP_CLOB is used to create + * temporary CLOBs + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function writeTemporary($data, $lob_type = OCI_TEMP_CLOB) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to be saved. + *
+ * @param int $offset [optional]+ * Can be used to indicate offset from the beginning of the large object. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function save($data, $offset = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The value to be added to the collection. Can be a string or a number. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function append($value) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The element index. First index is 0. + *
+ * @return mixed FALSE if such element doesn't exist; NULL if element is NULL; + * string if element is column of a string datatype or number if element is + * numeric field. + */ + public function getelem($index) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The element index. First index is 0. + *
+ * @param mixed $value+ * Can be a string or a number. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function assignelem($index, $value) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An instance of OCI-Collection. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function assign(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $from) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)
+ * If the returned value is 0, then the number of elements is not limited.
+ */
+ public function max() {}
+
+ /**
+ * (PHP 5, PECL OCI8 >= 1.1.0)
+ * Trims elements from the end of the collection
+ * @link https://php.net/manual/en/oci-collection.trim.php
+ * @param int $num
+ * The number of elements to be trimmed. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function trim($num) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier. + *
+ * @param mixed $callbackFn [optional]
+ * A user-defined callback to register for Oracle TAF. It can be a string of the function name or a Closure (anonymous function).
+ * The interface of a TAF user-defined callback function is as follows:
+ * userCallbackFn ( resource $connection , int $event , int $type ) : int
+ * See the parameter description and an example on OCI8 Transparent Application Failover (TAF) Support page.
+ *
+ * An Oracle connection identifier. + *
+ * @return bool TRUE on success or FALSE on failure. + * @since 7.2 + */ +function oci_unregister_taf_callback($connection) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @param string $column_name+ * The column name used in the query. + *
+ *+ * Use uppercase for Oracle's default, non-case sensitive column + * names. Use the exact column name case for case-sensitive + * column names. + *
+ * @param mixed &$variable+ * The PHP variable that will contain the returned column value. + *
+ * @param int $type [optional]+ * The data type to be returned. Generally not needed. Note that + * Oracle-style data conversions are not performed. For example, + * SQLT_INT will be ignored and the returned + * data type will still be SQLT_CHR. + *
+ *+ * You can optionally use {@see oci_new_descriptor} + * to allocate LOB/ROWID/BFILE descriptors. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_define_by_name($statement, $column_name, &$variable, $type = SQLT_CHR) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI8 statement identifier. + *
+ * @param string $bv_name+ * The colon-prefixed bind variable placeholder used in the + * statement. The colon is optional + * in bv_name. Oracle does not use question + * marks for placeholders. + *
+ * @param mixed &$variable+ * The PHP variable to be associated with bv_name + *
+ * @param int $maxlength [optional]+ * Sets the maximum length for the data. If you set it to -1, this + * function will use the current length + * of variable to set the maximum + * length. In this case the variable must + * exist and contain data + * when {@see oci_bind_by_name} is called. + *
+ * @param int $type [optional]+ * The datatype that Oracle will treat the data as. The + * default type used + * is SQLT_CHR. Oracle will convert the data + * between this type and the database column (or PL/SQL variable + * type), when possible. + *
+ *+ * If you need to bind an abstract datatype (LOB/ROWID/BFILE) you + * need to allocate it first using the + * {@see oci_new_descriptor} function. The + * length is not used for abstract datatypes + * and should be set to -1. + *
+ *+ * Possible values for type are: + *
+ *+ * SQLT_BFILEE or OCI_B_BFILE + * - for BFILEs; + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_bind_by_name($statement, $bv_name, &$variable, $maxlength = -1, $type = SQLT_CHR) {} + +/** + * (PHP 5 >= 5.1.2, PECL OCI8 >= 1.2.0)+ * A valid OCI statement identifier. + *
+ * @param string $name+ * The Oracle placeholder. + *
+ * @param array &$var_array+ * An array. + *
+ * @param int $max_table_length+ * Sets the maximum length both for incoming and result arrays. + *
+ * @param int $max_item_length [optional]+ * Sets maximum length for array items. If not specified or equals to -1, + * {@see oci_bind_array_by_name} will find the longest + * element in the incoming array and will use it as the maximum length. + *
+ * @param int $type [optional]+ * Should be used to set the type of PL/SQL array items. See list of + * available types below: + *
+ *+ * SQLT_NUM - for arrays of NUMBER. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_bind_array_by_name($statement, $name, array &$var_array, $max_table_length, $max_item_length = -1, $type = SQLT_AFC) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param mixed $field+ * Can be a field's index or a field's name (uppercased). + *
+ * @return bool TRUE if field is NULL, FALSE otherwise. + */ +function oci_field_is_null($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param string|int $field+ * Can be the field's index (1-based) or name. + *
+ * @return string|false The name as a string, or FALSE on errors. + */ +function oci_field_name($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param mixed $field+ * Can be the field's index (1-based) or name. + *
+ * @return int|false The size of a field in bytes, or FALSE on + * errors. + */ +function oci_field_size($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param string|int $field+ * Can be the field's index (1-based) or name. + *
+ * @return int|false The scale as an integer, or FALSE on errors. + */ +function oci_field_scale($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param string|int $field+ * Can be the field's index (1-based) or name. + *
+ * @return int|false The precision as an integer, or FALSE on errors. + */ +function oci_field_precision($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param string|int $field+ * Can be the field's index (1-based) or name. + *
+ * @return mixed the field data type as a string, or FALSE on errors. + */ +function oci_field_type($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param int $field+ * Can be the field's index (1-based) or name. + *
+ * @return int|false Oracle's raw data type as a string, or FALSE on errors. + */ +function oci_field_type_raw($statement, $field) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @param int $mode [optional]+ * An optional second parameter can be one of the following constants: + *
| Constant | + *Description | + *
| OCI_COMMIT_ON_SUCCESS | + *Automatically commit all outstanding changes for + * this connection when the statement has succeeded. This + * is the default. | + *
| OCI_DESCRIBE_ONLY | + *Make query meta data available to functions + * like {@see oci_field_name} but do not + * create a result set. Any subsequent fetch call such + * as {@see oci_fetch_array} will + * fail. | + *
| OCI_NO_AUTO_COMMIT | + *Do not automatically commit changes. Prior to PHP + * 5.3.2 (PECL OCI8 1.4) + * use OCI_DEFAULT which is equivalent + * to OCI_NO_AUTO_COMMIT. | + *
+ * Using OCI_NO_AUTO_COMMIT mode starts or continues a + * transaction. Transactions are automatically rolled back when + * the connection is closed, or when the script ends. Explicitly + * call {@see oci_commit} to commit a transaction, + * or {@see oci_rollback} to abort it. + *
+ *+ * When inserting or updating data, using transactions is + * recommended for relational data consistency and for performance + * reasons. + *
+ *+ * If OCI_NO_AUTO_COMMIT mode is used for any + * statement including queries, and + * {@see oci_commit} + * or {@see oci_rollback} is not subsequently + * called, then OCI8 will perform a rollback at the end of the + * script even if no data was changed. To avoid an unnecessary + * rollback, many scripts do not + * use OCI_NO_AUTO_COMMIT mode for queries or + * PL/SQL. Be careful to ensure the appropriate transactional + * consistency for the application when + * using {@see oci_execute} with different modes in + * the same script. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_execute($statement, $mode = OCI_COMMIT_ON_SUCCESS) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An OCI statement. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_cancel($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @return bool TRUE on success or FALSE if there are no more rows in the + * statement. + */ +function oci_fetch($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @return object|falseAn object. Each attribute of the object corresponds to a + * column of the row. If there are no more rows in + * the statement then FALSE is returned. + *
+ *+ * Any LOB columns are returned as LOB descriptors. + *
+ *+ * DATE columns are returned as strings formatted + * to the current date format. The default format can be changed with + * Oracle environment variables such as NLS_LANG or + * by a previously executed ALTER SESSION SET + * NLS_DATE_FORMAT command. + *
+ *+ * Oracle's default, non-case sensitive column names will have + * uppercase attribute names. Case-sensitive column names will have + * attribute names using the exact column case. + * Use var_dump on the result object to verify + * the appropriate case for attribute access. + *
+ *+ * Attribute values will be NULL for any NULL + * data fields. + *
+ */ +function oci_fetch_object($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @return array|false A numerically indexed array. If there are no more rows in + * the statement then FALSE is returned. + */ +function oci_fetch_row($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @return array|false An associative array. If there are no more rows in + * the statement then FALSE is returned. + */ +function oci_fetch_assoc($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ *+ * Can also be a statement identifier returned by {@see oci_get_implicit_resultset}. + *
+ * @param int $mode [optional]+ * An optional second parameter can be any combination of the following + * constants: + *
| Constant | + *Description | + *
| OCI_BOTH | + *Returns an array with both associative and numeric + * indices. This is the same + * as OCI_ASSOC + * + OCI_NUM and is the default + * behavior. | + *
| OCI_ASSOC | + *Returns an associative array. | + *
| OCI_NUM | + *Returns a numeric array. | + *
| OCI_RETURN_NULLS | + *Creates elements for NULL fields. The element + * values will be a PHP NULL. + * | + *
| OCI_RETURN_LOBS | + *Returns the contents of LOBs instead of the LOB + * descriptors. | + *
+ * The default mode is OCI_BOTH. + *
+ *+ * Use the addition operator "+" to specify more than + * one mode at a time. + *
+ * @return array|falseAn array with associative and/or numeric indices. If there + * are no more rows in the statement then + * FALSE is returned. + *
+ *+ * By default, LOB columns are returned as LOB descriptors. + *
+ *+ * DATE columns are returned as strings formatted + * to the current date format. The default format can be changed with + * Oracle environment variables such as NLS_LANG or + * by a previously executed ALTER SESSION SET + * NLS_DATE_FORMAT command. + *
+ *+ * Oracle's default, non-case sensitive column names will have + * uppercase associative indices in the result array. Case-sensitive + * column names will have array indices using the exact column case. + * Use var_dump on the result array to verify the + * appropriate case to use for each query. + *
+ *+ * The table name is not included in the array index. If your query + * contains two different columns with the same name, + * use OCI_NUM or add a column alias to the query + * to ensure name uniqueness, see example #7. Otherwise only one + * column will be returned via PHP. + *
+ */ +function oci_fetch_array($statement, $mode = null) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @param array &$output+ * The variable to contain the returned rows. + *
+ *+ * LOB columns are returned as strings, where Oracle supports + * conversion. + *
+ *+ * See {@see oci_fetch_array} for more information + * on how data and types are fetched. + *
+ * @param int $skip [optional]+ * The number of initial rows to discard when fetching the + * result. The default value is 0, so the first row onwards is + * returned. + *
+ * @param int $maxrows [optional]+ * The number of rows to return. The default is -1 meaning return + * all the rows from skip + 1 onwards. + *
+ * @param int $flags [optional]+ * Parameter flags indicates the array + * structure and whether associative arrays should be used. + *
| Constant | + *Description | + *
| OCI_FETCHSTATEMENT_BY_ROW | + *The outer array will contain one sub-array per query + * row. | + *
| OCI_FETCHSTATEMENT_BY_COLUMN | + *The outer array will contain one sub-array per query + * column. This is the default. | + *
+ * Arrays can be indexed by column heading or numerically. + *
| Constant | + *Description | + *
| OCI_NUM | + *Numeric indexes are used for each column's array. | + *
| OCI_ASSOC | + *Associative indexes are used for each column's + * array. This is the default. | + *
+ * Use the addition operator "+" to choose a combination + * of array structure and index modes. + *
+ *+ * Oracle's default, non-case sensitive column names will have + * uppercase array keys. Case-sensitive column names will have + * array keys using the exact column case. + * Use var_dump + * on output to verify the appropriate case + * to use for each query. + *
+ *+ * Queries that have more than one column with the same name + * should use column aliases. Otherwise only one of the columns + * will appear in an associative array. + *
+ * @return int|false The number of rows in output, which + * may be 0 or more, or FALSE on failure. + */ +function oci_fetch_all($statement, array &$output, $skip = 0, $maxrows = -1, $flags = OCI_FETCHSTATEMENT_BY_COLUMN|OCI_ASSOC) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_free_statement($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Set this to FALSE to turn debug output off or TRUE to turn it on. + *
+ * @removed 8.0 + * @return void No value is returned. + */ +function oci_internal_debug($onoff) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * A valid OCI statement identifier. + *
+ * @return int|false The number of columns as an integer, or FALSE on errors. + */ +function oci_num_fields($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect}, {@see oci_pconnect}, or {@see oci_new_connect}. + *
+ * @param string $sql_text+ * The SQL or PL/SQL statement. + *
+ *+ * SQL statements should not end with a + * semi-colon (";"). PL/SQL + * statements should end with a semi-colon + * (";"). + *
+ * @return resource|false A statement handle on success, or FALSE on error. + */ +function oci_parse($connection, $sql_text) {} + +/** + * (PECL OCI8 >= 2.0.0)A valid OCI8 statement identifier created + * by {@see oci_parse} and executed + * by {@see oci_execute}. The statement + * identifier may or may not be associated with a SQL statement + * that returns Implicit Result Sets. + *
+ * @return resource|false A statement handle for the next child statement available + * on statement. Returns FALSE when child + * statements do not exist, or all child statements have been returned + * by previous calls + * to {@see oci_get_implicit_resultset}. + */ +function oci_get_implicit_resultset($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect} or {@see oci_pconnect}. + *
+ * @return resource|false A new statement handle, or FALSE on error. + */ +function oci_new_cursor($connection) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Can be either use the column number (1-based) or the column name. + * The case of the column name must be the case that Oracle meta data + * describes the column as, which is uppercase for columns created + * case insensitively. + *
+ * @return mixed everything as strings except for abstract types (ROWIDs, LOBs and + * FILEs). Returns FALSE on error. + */ +function oci_result($statement, $field) {} + +/** + * (PHP 5.3.7, PECL OCI8 >= 1.4.6)+ * A valid OCI8 statement identifier from {@see oci_parse}. + *
+ * @return string|false The type of statement as one of the + * following strings. + *| Return String | + *Notes | + *
| ALTER | + *+ * |
| BEGIN | + *+ * |
| CALL | + *Introduced in PHP 5.2.1 (PECL OCI8 1.2.3) | + *
| CREATE | + *+ * |
| DECLARE | + *+ * |
| DELETE | + *+ * |
| DROP | + *+ * |
| INSERT | + *+ * |
| SELECT | + *+ * |
| UPDATE | + *+ * |
| UNKNOWN | + *+ * |
+ * Returns FALSE on error.
+ */
+function oci_statement_type($statement) {}
+
+/**
+ * (PHP 5, PECL OCI8 >= 1.1.0)
+ * Returns number of rows affected during statement execution
+ * @link https://php.net/manual/en/function.oci-num-rows.php
+ * @param resource $statement
+ * A valid OCI statement identifier. + *
+ * @return int|false The number of rows affected as an integer, or FALSE on errors. + */ +function oci_num_rows($statement) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier returned by + * {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_close($connection) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The Oracle user name. + *
+ * @param string $password+ * The password for username. + *
+ * @param string $connection_string [optional]Contains + * the Oracle instance to connect to. It can be + * an Easy Connect + * string, or a Connect Name from + * the tnsnames.ora file, or the name of a local + * Oracle instance. + *
+ *+ * If not specified, PHP uses + * environment variables such as TWO_TASK (on Linux) + * or LOCAL (on Windows) + * and ORACLE_SID to determine the + * Oracle instance to connect to. + *
+ *+ * To use the Easy Connect naming method, PHP must be linked with Oracle + * 10g or greater Client libraries. The Easy Connect string for Oracle + * 10g is of the form: + * [//]host_name[:port][/service_name]. From Oracle + * 11g, the syntax is: + * [//]host_name[:port][/service_name][:server_type][/instance_name]. + * Service names can be found by running the Oracle + * utility lsnrctl status on the database server + * machine. + *
+ *+ * The tnsnames.ora file can be in the Oracle Net + * search path, which + * includes $ORACLE_HOME/network/admin + * and /etc. Alternatively + * set TNS_ADMIN so + * that $TNS_ADMIN/tnsnames.ora is read. Make sure + * the web daemon has read access to the file. + *
+ * @param string $character_set [optional]Determines + * the character set used by the Oracle Client libraries. The character + * set does not need to match the character set used by the database. If + * it doesn't match, Oracle will do its best to convert data to and from + * the database character set. Depending on the character sets this may + * not give usable results. Conversion also adds some time overhead. + *
+ *+ * If not specified, the + * Oracle Client libraries determine a character set from + * the NLS_LANG environment variable. + *
+ *+ * Passing this parameter can + * reduce the time taken to connect. + *
+ *+ * @param int $session_mode [optional] This + * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the + * following values: OCI_DEFAULT, + * OCI_SYSOPER and OCI_SYSDBA. + * If either OCI_SYSOPER or + * OCI_SYSDBA were specified, this function will try + * to establish privileged connection using external credentials. + * Privileged connections are disabled by default. To enable them you + * need to set oci8.privileged_connect + * to On. + *
+ *+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the + * OCI_CRED_EXT mode value. This tells Oracle to use + * External or OS authentication, which must be configured in the + * database. The OCI_CRED_EXT flag can only be used + * with username of "/" and a empty password. + * oci8.privileged_connect + * may be On or Off. + *
+ *+ * OCI_CRED_EXT may be combined with the + * OCI_SYSOPER or + * OCI_SYSDBA modes. + *
+ *+ * OCI_CRED_EXT is not supported on Windows for + * security reasons. + *
+ * @return resource|false A connection identifier or FALSE on error. + */ +function oci_connect($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The Oracle user name. + *
+ * @param string $password+ * The password for username. + *
+ * @param string $connection_string [optional]Contains + * the Oracle instance to connect to. It can be + * an Easy Connect + * string, or a Connect Name from + * the tnsnames.ora file, or the name of a local + * Oracle instance. + *
+ *+ * If not specified, PHP uses + * environment variables such as TWO_TASK (on Linux) + * or LOCAL (on Windows) + * and ORACLE_SID to determine the + * Oracle instance to connect to. + *
+ *+ * To use the Easy Connect naming method, PHP must be linked with Oracle + * 10g or greater Client libraries. The Easy Connect string for Oracle + * 10g is of the form: + * [//]host_name[:port][/service_name]. From Oracle + * 11g, the syntax is: + * [//]host_name[:port][/service_name][:server_type][/instance_name]. + * Service names can be found by running the Oracle + * utility lsnrctl status on the database server + * machine. + *
+ *+ * The tnsnames.ora file can be in the Oracle Net + * search path, which + * includes $ORACLE_HOME/network/admin + * and /etc. Alternatively + * set TNS_ADMIN so + * that $TNS_ADMIN/tnsnames.ora is read. Make sure + * the web daemon has read access to the file. + *
+ * @param string $character_set [optional]Determines + * the character set used by the Oracle Client libraries. The character + * set does not need to match the character set used by the database. If + * it doesn't match, Oracle will do its best to convert data to and from + * the database character set. Depending on the character sets this may + * not give usable results. Conversion also adds some time overhead. + *
+ *+ * If not specified, the + * Oracle Client libraries determine a character set from + * the NLS_LANG environment variable. + *
+ *+ * Passing this parameter can + * reduce the time taken to connect. + *
+ * @param int $session_mode [optional]This + * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the + * following values: OCI_DEFAULT, + * OCI_SYSOPER and OCI_SYSDBA. + * If either OCI_SYSOPER or + * OCI_SYSDBA were specified, this function will try + * to establish privileged connection using external credentials. + * Privileged connections are disabled by default. To enable them you + * need to set oci8.privileged_connect + * to On. + *
+ *+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the + * OCI_CRED_EXT mode value. This tells Oracle to use + * External or OS authentication, which must be configured in the + * database. The OCI_CRED_EXT flag can only be used + * with username of "/" and a empty password. + * oci8.privileged_connect + * may be On or Off. + *
+ *+ * OCI_CRED_EXT may be combined with the + * OCI_SYSOPER or + * OCI_SYSDBA modes. + *
+ *+ * OCI_CRED_EXT is not supported on Windows for + * security reasons. + *
+ * @return resource|false A connection identifier or FALSE on error. + */ +function oci_new_connect($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The Oracle user name. + *
+ * @param string $password+ * The password for username. + *
+ * @param string $connection_string [optional]Contains + * the Oracle instance to connect to. It can be + * an Easy Connect + * string, or a Connect Name from + * the tnsnames.ora file, or the name of a local + * Oracle instance. + *
+ *+ * If not specified, PHP uses + * environment variables such as TWO_TASK (on Linux) + * or LOCAL (on Windows) + * and ORACLE_SID to determine the + * Oracle instance to connect to. + *
+ *+ * To use the Easy Connect naming method, PHP must be linked with Oracle + * 10g or greater Client libraries. The Easy Connect string for Oracle + * 10g is of the form: + * [//]host_name[:port][/service_name]. From Oracle + * 11g, the syntax is: + * [//]host_name[:port][/service_name][:server_type][/instance_name]. + * Service names can be found by running the Oracle + * utility lsnrctl status on the database server + * machine. + *
+ *+ * The tnsnames.ora file can be in the Oracle Net + * search path, which + * includes $ORACLE_HOME/network/admin + * and /etc. Alternatively + * set TNS_ADMIN so + * that $TNS_ADMIN/tnsnames.ora is read. Make sure + * the web daemon has read access to the file. + *
+ * @param string $character_set [optional]Determines + * the character set used by the Oracle Client libraries. The character + * set does not need to match the character set used by the database. If + * it doesn't match, Oracle will do its best to convert data to and from + * the database character set. Depending on the character sets this may + * not give usable results. Conversion also adds some time overhead. + *
+ *+ * If not specified, the + * Oracle Client libraries determine a character set from + * the NLS_LANG environment variable. + *
+ *+ * Passing this parameter can + * reduce the time taken to connect. + *
+ * @param int $session_mode [optional]This + * parameter is available since version PHP 5 (PECL OCI8 1.1) and accepts the + * following values: OCI_DEFAULT, + * OCI_SYSOPER and OCI_SYSDBA. + * If either OCI_SYSOPER or + * OCI_SYSDBA were specified, this function will try + * to establish privileged connection using external credentials. + * Privileged connections are disabled by default. To enable them you + * need to set oci8.privileged_connect + * to On. + *
+ *+ * PHP 5.3 (PECL OCI8 1.3.4) introduced the + * OCI_CRED_EXT mode value. This tells Oracle to use + * External or OS authentication, which must be configured in the + * database. The OCI_CRED_EXT flag can only be used + * with username of "/" and a empty password. + * oci8.privileged_connect + * may be On or Off. + *
+ *+ * OCI_CRED_EXT may be combined with the + * OCI_SYSOPER or + * OCI_SYSDBA modes. + *
+ *+ * OCI_CRED_EXT is not supported on Windows for + * security reasons. + *
+ * @return resource|false A connection identifier or FALSE on error. + */ +function oci_pconnect($username, $password, $connection_string = null, $character_set = null, $session_mode = null) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * For most errors, resource is the + * resource handle that was passed to the failing function call. + * For connection errors with {@see oci_connect}, + * {@see oci_new_connect} or + * {@see oci_pconnect} do not pass resource. + *
+ * @return array|false If no error is found, {@see oci_error} returns + * FALSE. Otherwise, {@see oci_error} returns the + * error information as an associative array. + * + *+ *
| Array key | + *Type | + *Description | + *
| code | + *integer | + *+ * The Oracle error number. + * | + *
| message | + *string | + *+ * The Oracle error text. + * | + *
| offset | + *integer | + *+ * The byte position of an error in the SQL statement. If there + * was no statement, this is 0 + * | + *
| sqltext | + *string | + *+ * The SQL statement text. If there was no statement, this is + * an empty string. + * | + *
+ * A LOB identifier. + *
+ * @param OCI_Lob $lob2+ * A LOB identifier. + *
+ * @return bool TRUE if these objects are equal, FALSE otherwise. + */ +function oci_lob_is_equal( + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob1, + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob2 +) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The destination LOB. + *
+ * @param OCI_Lob $lob_from+ * The copied LOB. + *
+ * @param int $length [optional]+ * Indicates the length of data to be copied. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_lob_copy( + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_to, + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_from, + $length = 0 +) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect}, {@see oci_pconnect}, or {@see oci_new_connect}. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_commit($connection) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect}, {@see oci_pconnect} + * or {@see oci_new_connect}. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_rollback($connection) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect} or {@see oci_pconnect}. + *
+ * @param int $type [optional]+ * Valid values for type are: + * OCI_DTYPE_FILE, OCI_DTYPE_LOB and + * OCI_DTYPE_ROWID. + *
+ * @return OCI_Lob|OCILob|false A new LOB or FILE descriptor on success, FALSE on error. + */ +#[LanguageLevelTypeAware(['8.0' => 'OCILob|false'], default: 'OCI_Lob|false')] +function oci_new_descriptor($connection, $type = OCI_DTYPE_LOB) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)A valid OCI8 statement + * identifier created by {@see oci_parse} and executed + * by {@see oci_execute}, or a REF + * CURSOR statement identifier.
+ * @param int $rows+ * The number of rows to be prefetched, >= 0 + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_prefetch($statement, $rows) {} + +/** + * (PHP 5.3.2, PECL OCI8 >= 1.4.0)An Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param string $client_identifier+ * User chosen string up to 64 bytes long. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_client_identifier($connection, $client_identifier) {} + +/** + * (PHP 5.3.2, PECL OCI8 >= 1.4.0)+ * Oracle Database edition name previously created with the SQL + * "CREATE EDITION" command. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_edition($edition) {} + +/** + * (PHP 5.3.2, PECL OCI8 >= 1.4.0)An Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param string $module_name+ * User chosen string up to 48 bytes long. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_module_name($connection, $module_name) {} + +/** + * (PHP 5.3.2, PECL OCI8 >= 1.4.0)An Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param string $action_name+ * User chosen string up to 32 bytes long. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_action($connection, $action_name) {} + +/** + * (PHP 5.3.2, PECL OCI8 >= 1.4.0)An Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param string $client_info+ * User chosen string up to 64 bytes long. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_client_info($connection, $client_info) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect} or {@see oci_pconnect}. + *
+ * @param string $username+ * The Oracle user name. + *
+ * @param string $old_password+ * The old password. + *
+ * @param string $new_password+ * The new password to be set. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_password_change($connection, $username, $old_password, $new_password) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect} or {@see oci_pconnect}. + *
+ * @param string $tdo+ * Should be a valid named type (uppercase). + *
+ * @param string $schema [optional]+ * Should point to the scheme, where the named type was created. The name + * of the current user is the default value. + *
+ * @return OCI_Collection|false A new OCICollection object or FALSE on + * error. + */ +#[LanguageLevelTypeAware(['8.0' => 'OCICollection|false'], default: 'OCI_Collection|false')] +function oci_new_collection($connection, $tdo, $schema = null) {} + +/** + * Alias of {@see oci_free_statement()} + * @link https://php.net/manual/en/function.ocifreecursor.php + * @param $statement_resource + * @return bool Returns TRUE on success or FALSE on failure. + */ +function oci_free_cursor($statement_resource) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)A valid OCI8 statement identifier created by {@see oci_parse()} and executed by {@see oci_execute()}, or a REF CURSOR statement identifier.
+ * @param string $column_nameThe column name used in the query. Use uppercase for Oracle's default, non-case sensitive column names. Use the exact column name case for case-sensitive column names.
+ * @param mixed &$variableThe PHP variable that will contain the returned column value.
+ * @param int $type [optional]The data type to be returned. Generally not needed. Note that Oracle-style data conversions are not performed. For example, SQLT_INT will be ignored and the returned data type will still be SQLT_CHR. + * You can optionally use {@see oci_new_descriptor()} to allocate LOB/ROWID/BFILE descriptors.
+ * @return bool Returns TRUE on success or FALSE on failure. + */ +#[Deprecated(replacement: "oci_define_by_name", since: "5.4")] +function ocidefinebyname($statement, $column_name, &$variable, $type = SQLT_CHR) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)Returns a connection identifier or FALSE on error.
+ */ +#[Deprecated(replacement: "oci_new_connect", since: "5.4")] +function ocinlogon($username, $password, $connection_string, $character_set, $session_mode) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)The Oracle user name.
+ * @param string $passwordThe password for username
+ * @param $connection_string [optional] + * @param $character_set [optional] + * @param $session_mode [optional] + * @return resource|falseReturns a connection identifier or FALSE on error.
+ */ +#[Deprecated(replacement: "oci_pconnect", since: "5.4")] +function ociplogon($username, $password, $connection_string, $character_set, $session_mode) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)Returns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI-Lob::free", since: "5.4")] +function ocifreedesc($lob_descriptor) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)Path to the file.
+ * @param int $start [optional]Indicates from where to start exporting.
+ * @param int $length [optional]Indicates the length of data to be exported.
+ * @return bool Returns TRUE on success or FALSE on failure. + */ +#[Deprecated(replacement: "OCI_Lob::export", since: "5.4")] +function ociwritelobtofile( + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_descriptor, + $filename, + $start, + $length +) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)Returns the contents of the object, or FALSE on errors.
+ */ +#[Deprecated(replacement: "OCI_Lob::load", since: "5.4")] +function ociloadlob(#[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_descriptor) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect()}, + * {@see oci_pconnect()}, or + * {@see oci_new_connect()}. + *
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "oci_commit", since: "5.4")] +function ocicommit($connection_resource) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)Returns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "oci_rollback", since: "5.4")] +function ocirollback($connection_resource) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect()} or {@see oci_pconnect()}. + *
+ * @param $type [optional]Valid values for type are: OCI_DTYPE_FILE, OCI_DTYPE_LOB and OCI_DTYPE_ROWID.
+ * @return OCI_LOB|false Returns a new LOB or FILE descriptor on success, FALSE on error. + */ +#[Deprecated(replacement: "oci_new_descriptor", since: "5.4")] +#[LanguageLevelTypeAware(['8.0' => 'OCILob|false'], default: 'OCI_Lob|false')] +function ocinewdescriptor($connection_resource, $type = OCI_DTYPE_LOB) {} + +/** + * (PHP 4, PHP 5, PECL OCI8 >= 1.0.0)A valid OCI8 statement + * identifier created by + * {@see oci_parse()} and executed + * by + * {@see oci_execute()}, or a REF CURSOR statement identifier.
+ * @param $number_of_rows + * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "oci_set_prefetch", since: "5.4")] +function ocisetprefetch($statement_resource, $number_of_rows) {} + +/** + * (PHP 5, PECL OCI8 >= 1.1.0)An Oracle connection identifier, returned by + * {@see oci_connect()} or + * {@see oci_pconnect()}.
+ * @param string $usernameThe Oracle user name.
+ * @param string $old_passwordThe new password to be set.
+ * @param string $new_passwordThe new password to be set.
+ * @return resource|boolReturns TRUE on success or FALSE on failure or resource, depending on the function parameters.
+ */ +function ocipasswordchange($connection_resource_or_connection_string_or_dbname, $username, $old_password, $new_password) {} + +/** + * (PHP 4 >= 4.0.7, PHP 5, PECL OCI8 >= 1.0.0)+ * An Oracle connection identifier, returned by + * {@see oci_connect()} or + * {@see oci_pconnect()}. + * @param $tdo
Should be a valid named type (uppercase).
+ * @param $schemaShould point to the scheme, where the named type was created. The name of the current user is the default value.
+ * + * @return OCI_Collection|falseReturns a new OCI_Collection object or FALSE on error.
+ */ +#[Deprecated(replacement: "oci_new_collection", since: "5.4")] +#[LanguageLevelTypeAware(['8.0' => 'OCICollection|false'], default: 'OCI_Collection|false')] +function ocinewcollection($connection_resource, $tdo, $schema = null) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)The value to be added to the collection. Can be a string or a number.
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI_Collection::append", since: "5.4")] +function ocicollappend(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $collection, $value) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)The element index. First index is 0.
+ * @return mixedReturns FALSE if such element doesn't exist; NULL if element is NULL; string if element is column of a string datatype or number if element is numeric field.
+ */ +#[Deprecated(replacement: "OCI_COLLection::getElem", since: "5.4")] +function ocicollgetelem(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $collection, $index) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)The element index. First index is 0.
+ * @param $valueCan be a string or a number.
+ * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI_Collection::assignElem", since: "5.4")] +function ocicollassignelem(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $collection, $index, $value) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)Returns the number of elements in the collection or FALSE on error.
+ */ +#[Deprecated(replacement: "OCI_COLLection::size", since: "5.4")] +function ocicollsize(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $collection) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)Returns the maximum number as an integer, or FALSE on errors. + * If the returned value is 0, then the number of elements is not limited.
+ */ +#[Deprecated(replacement: "OCI_COLLection::max", since: "5.4")] +function ocicollmax(#[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $collection) {} + +/** + * (PHP 4 >= 4.0.6, PHP 5, PECL OCI8 >= 1.0.0)The data to write.
+ * @param int $lob_type+ * Can be one of the following: + *
Returns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI-Lob::writeTemporary", since: "5.4")] +function ociwritetemporarylob( + #[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_descriptor, + $data, + $lob_type = OCI_TEMP_CLOB +) {} + +/** + * (PHP 4 >= 4.0.6, PECL OCI8 1.0) + * Alias of {@see OCI-Lob::close()} + * @link https://php.net/manual/en/function.ocicloselob.php + * @param OCI_Lob|OCILob $lob_descriptor + * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI-Lob::close()", since: "5.4")] +function ocicloselob(#[LanguageLevelTypeAware(['8.0' => 'OCILob'], default: 'OCI_Lob')] $lob_descriptor) {} + +/** + * (PHP 4 >= 4.0.6, PECL OCI8 1.0) + * Alias of {@see OCI-Collection::assign()} + * Assigns a value to the collection from another existing collection + * @link https://php.net/manual/en/function.ocicollassign.php + * @param OCI_Collection $to + * @param OCI_Collection $from An instance of OCI-Collection. + * @return boolReturns TRUE on success or FALSE on failure.
+ */ +#[Deprecated(replacement: "OCI-Collection::assign", since: "5.4")] +function ocicollassign( + #[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $to, + #[LanguageLevelTypeAware(['8.0' => 'OCICollection'], default: 'OCI_Collection')] $from +) {} +/** + * See OCI_NO_AUTO_COMMIT. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_DEFAULT', 0); + +/** + * Used with {@see oci_connect} to connect with + * the SYSOPER privilege. The php.ini setting + * oci8.privileged_connect + * should be enabled to use this. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SYSOPER', 4); + +/** + * Used with {@see oci_connect} to connect with + * the SYSDBA privilege. The php.ini setting + * oci8.privileged_connect + * should be enabled to use this. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SYSDBA', 2); + +/** + * Used with {@see oci_connect} for using + * Oracles' External or OS authentication. Introduced in PHP + * 5.3 and PECL OCI8 1.3.4. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_CRED_EXT', -2147483648); + +/** + * Statement execution mode + * for {@see oci_execute}. Use this mode if you + * want meta data such as the column names but don't want to + * fetch rows from the query. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_DESCRIBE_ONLY', 16); + +/** + * Statement execution mode for {@see oci_execute} + * call. Automatically commit changes when the statement has + * succeeded. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_COMMIT_ON_SUCCESS', 32); + +/** + * Statement execution mode + * for {@see oci_execute}. The transaction is not + * automatically committed when using this mode. For + * readability in new code, use this value instead of the + * older, equivalent OCI_DEFAULT constant. + * Introduced in PHP 5.3.2 (PECL OCI8 1.4). + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_NO_AUTO_COMMIT', 0); + +/** + * Obsolete. Statement fetch mode. Used when the application + * knows in advance exactly how many rows it will be fetching. + * This mode turns prefetching off for Oracle release 8 or + * later mode. The cursor is canceled after the desired rows + * are fetched which may result in reduced server-side + * resource usage. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_EXACT_FETCH', 2); + +/** + * Used with to set the seek position. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SEEK_SET', 0); + +/** + * Used with to set the seek position. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SEEK_CUR', 1); + +/** + * Used with to set the seek position. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SEEK_END', 2); + +/** + * Used with to free + * buffers used. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_LOB_BUFFER_FREE', 1); + +/** + * The same as OCI_B_BFILE. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_BFILEE', 114); + +/** + * The same as OCI_B_CFILEE. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_CFILEE', 115); + +/** + * The same as OCI_B_CLOB. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_CLOB', 112); + +/** + * The same as OCI_B_BLOB. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_BLOB', 113); + +/** + * The same as OCI_B_ROWID. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_RDD', 104); + +/** + * The same as OCI_B_INT. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_INT', 3); + +/** + * The same as OCI_B_NUM. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_NUM', 2); + +/** + * The same as OCI_B_CURSOR. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_RSET', 116); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * CHAR. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_AFC', 96); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * VARCHAR2. + * Also used with {@see oci_bind_by_name}. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_CHR', 1); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * VARCHAR. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_VCS', 9); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * VARCHAR2. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_AVC', 97); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * STRING. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_STR', 5); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * LONG VARCHAR. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_LVC', 94); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * FLOAT. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_FLT', 4); + +/** + * Not supported. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_UIN', 68); + +/** + * Used with {@see oci_bind_by_name} to bind LONG values. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_LNG', 8); + +/** + * Used with {@see oci_bind_by_name} to bind LONG RAW values. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_LBI', 24); + +/** + * The same as OCI_B_BIN. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_BIN', 23); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * LONG. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_ODT', 156); + +/** + * Not supported. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_BDOUBLE', 22); + +/** + * Not supported. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_BFLOAT', 21); + +/** + * Used with {@see oci_bind_by_name} when binding + * named data types. Note: in PHP < 5.0 it was called + * OCI_B_SQLT_NTY. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_NTY', 108); + +/** + * The same as OCI_B_NTY. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('SQLT_NTY', 108); + +/** + * Obsolete. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_SYSDATE', "SYSDATE"); + +/** + * Used with {@see oci_bind_by_name} when binding + * BFILEs. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_BFILE', 114); + +/** + * Used with {@see oci_bind_by_name} when binding + * CFILEs. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_CFILEE', 115); + +/** + * Used with {@see oci_bind_by_name} when binding + * CLOBs. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_CLOB', 112); + +/** + * Used with {@see oci_bind_by_name} when + * binding BLOBs. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_BLOB', 113); + +/** + * Used with {@see oci_bind_by_name} when binding + * ROWIDs. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_ROWID', 104); + +/** + * Used with {@see oci_bind_by_name} when binding + * cursors, previously allocated + * with {@see oci_new_descriptor}. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_CURSOR', 116); + +/** + * Used with {@see oci_bind_by_name} to bind RAW values. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_BIN', 23); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * INTEGER. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_INT', 3); + +/** + * Used with {@see oci_bind_array_by_name} to bind arrays of + * NUMBER. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_B_NUM', 2); + +/** + * Default mode of {@see oci_fetch_all}. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_FETCHSTATEMENT_BY_COLUMN', 16); + +/** + * Alternative mode of {@see oci_fetch_all}. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_FETCHSTATEMENT_BY_ROW', 32); + +/** + * Used with {@see oci_fetch_all} and + * {@see oci_fetch_array} to get results as an associative + * array. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_ASSOC', 1); + +/** + * Used with {@see oci_fetch_all} and + * {@see oci_fetch_array} to get results as an + * enumerated array. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_NUM', 2); + +/** + * Used with {@see oci_fetch_all} and + * {@see oci_fetch_array} to get results as an + * array with both associative and number indices. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_BOTH', 3); + +/** + * Used with {@see oci_fetch_array} to get empty + * array elements if the row items value is NULL. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_RETURN_NULLS', 4); + +/** + * Used with {@see oci_fetch_array} to get the + * data value of the LOB instead of the descriptor. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_RETURN_LOBS', 8); + +/** + * This flag tells {@see oci_new_descriptor} to + * initialize a new FILE descriptor. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_DTYPE_FILE', 56); + +/** + * This flag tells {@see oci_new_descriptor} to + * initialize a new LOB descriptor. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_DTYPE_LOB', 50); + +/** + * This flag tells {@see oci_new_descriptor} to + * initialize a new ROWID descriptor. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_DTYPE_ROWID', 54); + +/** + * The same as OCI_DTYPE_FILE. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_D_FILE', 56); + +/** + * The same as OCI_DTYPE_LOB. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_D_LOB', 50); + +/** + * The same as OCI_DTYPE_ROWID. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_D_ROWID', 54); + +/** + * Used with + * to indicate that a temporary CLOB should be created. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_TEMP_CLOB', 2); + +/** + * Used with + * to indicate that a temporary BLOB should be created. + * @link https://php.net/manual/en/oci8.constants.php + */ +define('OCI_TEMP_BLOB', 1); + +/** + * (PECL OCI8 >= 2.0.7)+ * If provided, this method will truncate the LOB to + * length bytes. Otherwise, it will completely + * purge the LOB. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function truncate($length = 0) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * By default, resources are not freed, but using flag + * OCI_LOB_BUFFER_FREE you can do it explicitly. + * Be sure you know what you're doing - next read/write operation to the + * same part of LOB will involve a round-trip to the server and initialize + * new buffer resources. It is recommended to use + * OCI_LOB_BUFFER_FREE flag only when you are not + * going to work with the LOB anymore. + *
+ * @return bool TRUE on success or FALSE on failure. + * + *
+ * Returns FALSE if buffering was not enabled or an error occurred.
+ */
+ public function flush($flag = null) {}
+
+ /**
+ * (PHP 5, PECL OCI8 >= 1.1.0)
+ * Changes current state of buffering for the large object
+ * @link https://php.net/manual/en/oci-lob.setbuffering.php
+ * @param bool $on_off
+ * TRUE for on and FALSE for off. + *
+ * @return bool TRUE on success or FALSE on failure. Repeated calls to this method with the same flag will + * return TRUE. + */ + public function setbuffering($on_off) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The length of data to read, in bytes. Large values will be rounded down to 1 MB. + *
+ * @return string|false The contents as a string, or FALSE on failure. + */ + public function read($length) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Indicates the amount of bytes, on which internal pointer should be + * moved from the position, pointed by whence. + *
+ * @param int $whence [optional]+ * May be one of: + * OCI_SEEK_SET - sets the position equal to + * offset + * OCI_SEEK_CUR - adds offset + * bytes to the current position + * OCI_SEEK_END - adds offset + * bytes to the end of large object (use negative value to move to a position + * before the end of large object) + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function seek($offset, $whence = OCI_SEEK_SET) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to write in the LOB. + *
+ * @param int $length [optional]+ * If this parameter is given, writing will stop after + * length bytes have been written or the end of + * data is reached, whichever comes first. + *
+ * @return int|false The number of bytes written or FALSE on failure. + */ + public function write($data, $length = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The copied LOB. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function append(OCILob $lob_from) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Path to the file. + *
+ * @param int $start [optional]+ * Indicates from where to start exporting. + *
+ * @param int $length [optional]+ * Indicates the length of data to be exported. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function export($filename, $start = null, $length = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * Path to the file. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function import($filename) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to write. + *
+ * @param int $lob_type [optional]+ * Can be one of the following: + * OCI_TEMP_BLOB is used to create temporary BLOBs + * OCI_TEMP_CLOB is used to create + * temporary CLOBs + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function writeTemporary($data, $lob_type = OCI_TEMP_CLOB) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The data to be saved. + *
+ * @param int $offset [optional]+ * Can be used to indicate offset from the beginning of the large object. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function save($data, $offset = null) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The value to be added to the collection. Can be a string or a number. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function append($value) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The element index. First index is 0. + *
+ * @return mixed FALSE if such element doesn't exist; NULL if element is NULL; + * string if element is column of a string datatype or number if element is + * numeric field. + */ + public function getelem($index) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * The element index. First index is 0. + *
+ * @param mixed $value+ * Can be a string or a number. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function assignelem($index, $value) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)+ * An instance of OCICollection. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function assign(OCICollection $from) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)
+ * If the returned value is 0, then the number of elements is not limited.
+ */
+ public function max() {}
+
+ /**
+ * (PHP 5, PECL OCI8 >= 1.1.0)
+ * Trims elements from the end of the collection
+ * @link https://php.net/manual/en/oci-collection.trim.php
+ * @param int $num
+ * The number of elements to be trimmed. + *
+ * @return bool TRUE on success or FALSE on failure. + */ + public function trim($num) {} + + /** + * (PHP 5, PECL OCI8 >= 1.1.0)An Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param int $time_outThe maximum time in milliseconds that any + * single round-trip between PHP and Oracle Database may take. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_call_timeout($connection, int $time_out) {} + +/** + * (PHP 7 >== 7.2.14, PHP 8, PHP 7 >= 7.3.1, PHP 8, PECL OCI8 >= 2.2.0) + * Sets the database operation + * @link https://www.php.net/manual/en/function.oci-set-db-operation.php + * @param resource $connectionAn Oracle connection identifier, + * returned by {@see oci_connect}, {@see oci_pconnect}, + * or {@see oci_new_connect}.
+ * @param string $dbopUser chosen string.
+ * @return bool TRUE on success or FALSE on failure. + */ +function oci_set_db_operation($connection, string $dbop) {} + +/** + * Sets the size of the LOB column that will be prefetched by OCI8 when executing a query. + * This can improve performance when working with large LOB data. + * + * @param resource $statement The OCI8 statement resource. + * @param int $prefetch_lob_size The size of the LOB column, in bytes, to be prefetched. + * @return bool Returns TRUE on success or FALSE on failure. + * @link https://php.net/manual/en/function.oci-set-prefetch-lob.php + * @since 8.2 + */ +function oci_set_prefetch_lob($statement, int $prefetch_lob_size): bool {} diff --git a/phpstorm-stubs/odbc/odbc.php b/phpstorm-stubs/odbc/odbc.php new file mode 100644 index 0000000..ad8e6ba --- /dev/null +++ b/phpstorm-stubs/odbc/odbc.php @@ -0,0 +1,964 @@ +The ODBC connection identifier, + * see odbc_connect for details. + * @param bool $OnOff [optional]+ * If OnOff is TRUE, auto-commit is enabled, if + * it is FALSE auto-commit is disabled. + *
+ * @return mixed Without the OnOff parameter, this function returns + * auto-commit status for connection_id. Non-zero is + * returned if auto-commit is on, 0 if it is off, or FALSE if an error + * occurs. + *+ * If OnOff is set, this function returns TRUE on + * success and FALSE on failure. + *
+ */ +function odbc_autocommit($connection_id, $OnOff = false) {} + +/** + * Handling of binary column data + * @link https://php.net/manual/en/function.odbc-binmode.php + * @param resource $result_id+ * The result identifier. + *
+ *+ * If result_id is 0, the + * settings apply as default for new results. + * Default for longreadlen is 4096 and + * mode defaults to + * ODBC_BINMODE_RETURN. Handling of binary long + * columns is also affected by odbc_longreadlen. + *
+ * @param int $mode+ * Possible values for mode are: + * ODBC_BINMODE_PASSTHRU: Passthru BINARY data + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function odbc_binmode($result_id, $mode) {} + +/** + * Close an ODBC connection + * @link https://php.net/manual/en/function.odbc-close.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @return void No value is returned. + */ +function odbc_close($connection_id) {} + +/** + * Close all ODBC connections + * @link https://php.net/manual/en/function.odbc-close-all.php + * @return void No value is returned. + */ +function odbc_close_all() {} + +/** + * Lists the column names in specified tables + * @link https://php.net/manual/en/function.odbc-columns.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier [optional]+ * The qualifier. + *
+ * @param string $schema [optional]+ * The owner. + *
+ * @param string $table_name [optional]+ * The table name. + *
+ * @param string $column_name [optional]+ * The column name. + *
+ * @return resource|false an ODBC result identifier or FALSE on failure. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_SCHEM + * TABLE_NAME + * COLUMN_NAME + * DATA_TYPE + * TYPE_NAME + * PRECISION + * LENGTH + * SCALE + * RADIX + * NULLABLE + * REMARKS + *
+ *+ * The result set is ordered by TABLE_QUALIFIER, TABLE_SCHEM and + * TABLE_NAME. + *
+ */ +function odbc_columns($connection_id, $qualifier = null, $schema = null, $table_name = null, $column_name = null) {} + +/** + * Commit an ODBC transaction + * @link https://php.net/manual/en/function.odbc-commit.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @return bool TRUE on success or FALSE on failure. + */ +function odbc_commit($connection_id) {} + +/** + * Connect to a datasource + * @link https://php.net/manual/en/function.odbc-connect.php + * @param string $dsn+ * The database source name for the connection. Alternatively, a + * DSN-less connection string can be used. + *
+ * @param string $user+ * The username. + *
+ * @param string $password+ * The password. + *
+ * @param int $cursor_option [optional]+ * This sets the type of cursor to be used + * for this connection. This parameter is not normally needed, but + * can be useful for working around problems with some ODBC drivers. + *
+ *+ * The following constants are defined for cursortype: + * SQL_CUR_USE_IF_NEEDED + *
+ * @return resource|false an ODBC connection or (FALSE) on error. + */ +function odbc_connect($dsn, $user, $password, $cursor_option = SQL_CUR_USE_DRIVER) {} + +/** + * Get cursorname + * @link https://php.net/manual/en/function.odbc-cursor.php + * @param resource $result_id+ * The result identifier. + *
+ * @return string the cursor name, as a string. + */ +function odbc_cursor($result_id) {} + +/** + * Returns information about a current connection + * @link https://php.net/manual/en/function.odbc-data-source.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param int $fetch_type+ * The fetch_type can be one of two constant types: + * SQL_FETCH_FIRST, SQL_FETCH_NEXT. + * Use SQL_FETCH_FIRST the first time this function is + * called, thereafter use the SQL_FETCH_NEXT. + *
+ * @return array|false FALSE on error, and an array upon success. + */ +#[ArrayShape(["server" => "string", "description" => "string"])] +function odbc_data_source($connection_id, $fetch_type) {} + +/** + * Execute a prepared statement + * @link https://php.net/manual/en/function.odbc-execute.php + * @param resource $statement+ * The result id resource, from odbc_prepare. + *
+ * @param array $params [optional]+ * Parameters in parameter_array will be + * substituted for placeholders in the prepared statement in order. + * Elements of this array will be converted to strings by calling this + * function. + *
+ *+ * Any parameters in parameter_array which + * start and end with single quotes will be taken as the name of a + * file to read and send to the database server as the data for the + * appropriate placeholder. + *
+ * If you wish to store a string which actually begins and ends with + * single quotes, you must add a space or other non-single-quote character + * to the beginning or end of the parameter, which will prevent the + * parameter from being taken as a file name. If this is not an option, + * then you must use another mechanism to store the string, such as + * executing the query directly with odbc_exec). + * @return bool TRUE on success or FALSE on failure. + */ +function odbc_execute($statement, array $params = []) {} + +/** + * Get the last error code + * @link https://php.net/manual/en/function.odbc-error.php + * @param resource $connection_id [optional]The ODBC connection identifier, + * see odbc_connect for details.
+ * @return string If connection_id is specified, the last state + * of that connection is returned, else the last state of any connection + * is returned. + *+ * This function returns meaningful value only if last odbc query failed + * (i.e. odbc_exec returned FALSE). + *
+ */ +function odbc_error($connection_id = null) {} + +/** + * Get the last error message + * @link https://php.net/manual/en/function.odbc-errormsg.php + * @param resource $connection_id [optional]The ODBC connection identifier, + * see odbc_connect for details.
+ * @return string If connection_id is specified, the last state + * of that connection is returned, else the last state of any connection + * is returned. + *+ * This function returns meaningful value only if last odbc query failed + * (i.e. odbc_exec returned FALSE). + *
+ */ +function odbc_errormsg($connection_id = null) {} + +/** + * Prepare and execute an SQL statement + * @link https://php.net/manual/en/function.odbc-exec.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $query_string+ * The SQL statement. + *
+ * @param int $flags [optional]+ * This parameter is currently not used. + *
+ * @return resource|false an ODBC result identifier if the SQL command was executed + * successfully, or FALSE on error. + */ +function odbc_exec($connection_id, $query_string, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $flags = null) {} + +/** + * Fetch a result row as an associative array + * @link https://php.net/manual/en/function.odbc-fetch-array.php + * @param resource $statement+ * The result resource from odbc_exec. + *
+ * @param int $row [optional]+ * Optionally choose which row number to retrieve. + *
+ * @return array|false an array that corresponds to the fetched row, or FALSE if there + * are no more rows. + */ +function odbc_fetch_array($statement, $row = -1) {} + +/** + * Fetch a result row as an object + * @link https://php.net/manual/en/function.odbc-fetch-object.php + * @param resource $statement+ * The result resource from odbc_exec. + *
+ * @param int $row [optional]+ * Optionally choose which row number to retrieve. + *
+ * @return object|false an object that corresponds to the fetched row, or FALSE if there + * are no more rows. + */ +function odbc_fetch_object($statement, $row = -1) {} + +/** + * Fetch a row + * @link https://php.net/manual/en/function.odbc-fetch-row.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $row_number [optional]+ * If row_number is not specified, + * odbc_fetch_row will try to fetch the next row in + * the result set. Calls to odbc_fetch_row with and + * without row_number can be mixed. + *
+ *+ * To step through the result more than once, you can call + * odbc_fetch_row with + * row_number 1, and then continue doing + * odbc_fetch_row without + * row_number to review the result. If a driver + * doesn't support fetching rows by number, the + * row_number parameter is ignored. + *
+ * @return bool TRUE if there was a row, FALSE otherwise. + */ +function odbc_fetch_row($result_id, $row_number = null) {} + +/** + * Fetch one result row into array + * @link https://php.net/manual/en/function.odbc-fetch-into.php + * @param resource $statement+ * The result resource. + *
+ * @param array &$array+ * The result array + * that can be of any type since it will be converted to type + * array. The array will contain the column values starting at array + * index 0. + *
+ * @param int $row [optional]+ * The row number. + *
+ * @return int the number of columns in the result; + * FALSE on error. + */ +function odbc_fetch_into($statement, array &$array, $row = 0) {} + +/** + * Get the length (precision) of a field + * @link https://php.net/manual/en/function.odbc-field-len.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $field_number+ * The field number. Field numbering starts at 1. + *
+ * @return int|false the field name as a string, or FALSE on error. + */ +function odbc_field_len($result_id, $field_number) {} + +/** + * Get the scale of a field + * @link https://php.net/manual/en/function.odbc-field-scale.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $field_number+ * The field number. Field numbering starts at 1. + *
+ * @return int|false the field scale as a integer, or FALSE on error. + */ +function odbc_field_scale($result_id, $field_number) {} + +/** + * Get the columnname + * @link https://php.net/manual/en/function.odbc-field-name.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $field_number+ * The field number. Field numbering starts at 1. + *
+ * @return string|false the field name as a string, or FALSE on error. + */ +function odbc_field_name($result_id, $field_number) {} + +/** + * Datatype of a field + * @link https://php.net/manual/en/function.odbc-field-type.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $field_number+ * The field number. Field numbering starts at 1. + *
+ * @return string|false the field type as a string, or FALSE on error. + */ +function odbc_field_type($result_id, $field_number) {} + +/** + * Return column number + * @link https://php.net/manual/en/function.odbc-field-num.php + * @param resource $result_id+ * The result identifier. + *
+ * @param string $field_name+ * The field name. + *
+ * @return int|false the field number as a integer, or FALSE on error. + * Field numbering starts at 1. + */ +function odbc_field_num($result_id, $field_name) {} + +/** + * Free resources associated with a result + * @link https://php.net/manual/en/function.odbc-free-result.php + * @param resource $result_id+ * The result identifier. + *
+ * @return bool Always returns TRUE. + */ +function odbc_free_result($result_id) {} + +/** + * Retrieves information about data types supported by the data source + * @link https://php.net/manual/en/function.odbc-gettypeinfo.php + * @param resource $odbcThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param int $data_type [optional]+ * The data type, which can be used to restrict the information to a + * single data type. + *
+ * @return resource|false an ODBC result identifier or + * FALSE on failure. + *+ * The result set has the following columns: + * TYPE_NAME + * DATA_TYPE + * PRECISION + * LITERAL_PREFIX + * LITERAL_SUFFIX + * CREATE_PARAMS + * NULLABLE + * CASE_SENSITIVE + * SEARCHABLE + * UNSIGNED_ATTRIBUTE + * MONEY + * AUTO_INCREMENT + * LOCAL_TYPE_NAME + * MINIMUM_SCALE + * MAXIMUM_SCALE + *
+ *+ * The result set is ordered by DATA_TYPE and TYPE_NAME. + *
+ */ +function odbc_gettypeinfo($odbc, $data_type = 0) {} + +/** + * Handling of LONG columns + * @link https://php.net/manual/en/function.odbc-longreadlen.php + * @param resource $result_id+ * The result identifier. + *
+ * @param int $length+ * The number of bytes returned to PHP is controlled by the parameter + * length. If it is set to 0, Long column data is passed through to the + * client. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function odbc_longreadlen($result_id, $length) {} + +/** + * Checks if multiple results are available + * @link https://php.net/manual/en/function.odbc-next-result.php + * @param resource $result_id+ * The result identifier. + *
+ * @return bool TRUE if there are more result sets, FALSE otherwise. + */ +function odbc_next_result($result_id) {} + +/** + * Number of columns in a result + * @link https://php.net/manual/en/function.odbc-num-fields.php + * @param resource $result_id+ * The result identifier returned by odbc_exec. + *
+ * @return int the number of fields, or -1 on error. + */ +function odbc_num_fields($result_id) {} + +/** + * Number of rows in a result + * @link https://php.net/manual/en/function.odbc-num-rows.php + * @param resource $result_id+ * The result identifier returned by odbc_exec. + *
+ * @return int the number of rows in an ODBC result. + * This function will return -1 on error. + */ +function odbc_num_rows($result_id) {} + +/** + * Open a persistent database connection + * @link https://php.net/manual/en/function.odbc-pconnect.php + * @param string $dsn + * @param string $user + * @param string $password + * @param int $cursor_option [optional] + * @return resource|false an ODBC connection id or 0 (FALSE) on + * error. + */ +function odbc_pconnect($dsn, $user, $password, $cursor_option = SQL_CUR_USE_DRIVER) {} + +/** + * Prepares a statement for execution + * @link https://php.net/manual/en/function.odbc-prepare.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $query_string+ * The query string statement being prepared. + *
+ * @return resource|false an ODBC result identifier if the SQL command was prepared + * successfully. Returns FALSE on error. + */ +function odbc_prepare($connection_id, $query_string) {} + +/** + * Get result data + * @link https://php.net/manual/en/function.odbc-result.php + * @param resource $result_id+ * The ODBC resource. + *
+ * @param mixed $field+ * The field name being retrieved. It can either be an integer containing + * the column number of the field you want; or it can be a string + * containing the name of the field. + *
+ * @return mixed the string contents of the field, FALSE on error, NULL for + * NULL data, or TRUE for binary data. + */ +function odbc_result($result_id, $field) {} + +/** + * Print result as HTML table + * @link https://php.net/manual/en/function.odbc-result-all.php + * @param resource $statement+ * The result identifier. + *
+ * @param string $format [optional]+ * Additional overall table formatting. + *
+ * @return int|false the number of rows in the result or FALSE on error. + * @deprecated 8.1 + */ +function odbc_result_all($statement, $format = '') {} + +/** + * Rollback a transaction + * @link https://php.net/manual/en/function.odbc-rollback.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @return bool TRUE on success or FALSE on failure. + */ +function odbc_rollback($connection_id) {} + +/** + * Adjust ODBC settings + * @link https://php.net/manual/en/function.odbc-setoption.php + * @param resource $id+ * Is a connection id or result id on which to change the settings. + * For SQLSetConnectOption(), this is a connection id. + * For SQLSetStmtOption(), this is a result id. + *
+ * @param int $function+ * Is the ODBC function to use. The value should be + * 1 for SQLSetConnectOption() and + * 2 for SQLSetStmtOption(). + *
+ * @param int $option+ * The option to set. + *
+ * @param int $param+ * The value for the given option. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function odbc_setoption($id, $function, $option, $param) {} + +/** + * Retrieves special columns + * @link https://php.net/manual/en/function.odbc-specialcolumns.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param int $type When the type argument is SQL_BEST_ROWID, + * odbc_specialcolumns returns the + * column or columns that uniquely identify each row in the table. + * When the type argument is SQL_ROWVER, + * odbc_specialcolumns returns the column or columns in the + * specified table, if any, that are automatically updated by the data source + * when any value in the row is updated by any transaction. + * @param string $qualifier+ * The qualifier. + *
+ * @param string $owner+ * The owner. + *
+ * @param string $table+ * The table. + *
+ * @param int $scope+ * The scope, which orders the result set. + *
+ * @param int $nullable+ * The nullable option. + *
+ * @return resource|false an ODBC result identifier or FALSE on + * failure. + *+ * The result set has the following columns: + * SCOPE + * COLUMN_NAME + * DATA_TYPE + * TYPE_NAME + * PRECISION + * LENGTH + * SCALE + * PSEUDO_COLUMN + *
+ */ +function odbc_specialcolumns($connection_id, $type, $qualifier, $owner, $table, $scope, $nullable) {} + +/** + * Retrieve statistics about a table + * @link https://php.net/manual/en/function.odbc-statistics.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier+ * The qualifier. + *
+ * @param string $owner+ * The owner. + *
+ * @param string $table_name+ * The table name. + *
+ * @param int $unique+ * The unique attribute. + *
+ * @param int $accuracy+ * The accuracy. + *
+ * @return resource|false an ODBC result identifier or FALSE on failure. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_OWNER + * TABLE_NAME + * NON_UNIQUE + * INDEX_QUALIFIER + * INDEX_NAME + * TYPE + * SEQ_IN_INDEX + * COLUMN_NAME + * COLLATION + * CARDINALITY + * PAGES + * FILTER_CONDITION + *
+ */ +function odbc_statistics($connection_id, $qualifier, $owner, $table_name, $unique, $accuracy) {} + +/** + * Get the list of table names stored in a specific data source + * @link https://php.net/manual/en/function.odbc-tables.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier [optional]+ * The qualifier. + *
+ * @param string $owner [optional]+ * The owner. Accepts search patterns ('%' to match zero or more + * characters and '_' to match a single character). + *
+ * @param string $name [optional]+ * The name. Accepts search patterns ('%' to match zero or more + * characters and '_' to match a single character). + *
+ * @param string $types [optional]+ * If table_type is not an empty string, it + * must contain a list of comma-separated values for the types of + * interest; each value may be enclosed in single quotes (') or + * unquoted. For example, "'TABLE','VIEW'" or "TABLE, VIEW". If the + * data source does not support a specified table type, + * odbc_tables does not return any results for + * that type. + *
+ * @return resource|false an ODBC result identifier containing the information + * or FALSE on failure. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_OWNER + * TABLE_NAME + * TABLE_TYPE + * REMARKS + *
+ */ +function odbc_tables($connection_id, $qualifier = null, $owner = null, $name = null, $types = null) {} + +/** + * Gets the primary keys for a table + * @link https://php.net/manual/en/function.odbc-primarykeys.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier + * @param string $owner + * @param string $table + * @return resource|false an ODBC result identifier or FALSE on failure. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_OWNER + * TABLE_NAME + * COLUMN_NAME + * KEY_SEQ + * PK_NAME + *
+ */ +function odbc_primarykeys($connection_id, $qualifier, $owner, $table) {} + +/** + * Lists columns and associated privileges for the given table + * @link https://php.net/manual/en/function.odbc-columnprivileges.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier+ * The qualifier. + *
+ * @param string $owner+ * The owner. + *
+ * @param string $table_name+ * The table name. + *
+ * @param string $column_name+ * The column_name argument accepts search + * patterns ('%' to match zero or more characters and '_' to match a + * single character). + *
+ * @return resource|false an ODBC result identifier or FALSE on failure. + * This result identifier can be used to fetch a list of columns and + * associated privileges. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_OWNER + * TABLE_NAME + * GRANTOR + * GRANTEE + * PRIVILEGE + * IS_GRANTABLE + *
+ *+ * The result set is ordered by TABLE_QUALIFIER, TABLE_OWNER and + * TABLE_NAME. + *
+ */ +function odbc_columnprivileges($connection_id, $qualifier, $owner, $table_name, $column_name) {} + +/** + * Lists tables and the privileges associated with each table + * @link https://php.net/manual/en/function.odbc-tableprivileges.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $qualifier+ * The qualifier. + *
+ * @param string $owner+ * The owner. Accepts the following search patterns: + * ('%' to match zero or more characters and '_' to match a single character) + *
+ * @param string $name+ * The name. Accepts the following search patterns: + * ('%' to match zero or more characters and '_' to match a single character) + *
+ * @return resource|false An ODBC result identifier or FALSE on failure. + *+ * The result set has the following columns: + * TABLE_QUALIFIER + * TABLE_OWNER + * TABLE_NAME + * GRANTOR + * GRANTEE + * PRIVILEGE + * IS_GRANTABLE + *
+ */ +function odbc_tableprivileges($connection_id, $qualifier, $owner, $name) {} + +/** + * Retrieves a list of foreign keys + * @link https://php.net/manual/en/function.odbc-foreignkeys.php + * @param resource $connection_idThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string $pk_qualifier+ * The primary key qualifier. + *
+ * @param string $pk_owner+ * The primary key owner. + *
+ * @param string $pk_table+ * The primary key table. + *
+ * @param string $fk_qualifier+ * The foreign key qualifier. + *
+ * @param string $fk_owner+ * The foreign key owner. + *
+ * @param string $fk_table+ * The foreign key table. + *
+ * @return resource|false an ODBC result identifier or FALSE on failure. + *+ * The result set has the following columns: + * PKTABLE_QUALIFIER + * PKTABLE_OWNER + * PKTABLE_NAME + * PKCOLUMN_NAME + * FKTABLE_QUALIFIER + * FKTABLE_OWNER + * FKTABLE_NAME + * FKCOLUMN_NAME + * KEY_SEQ + * UPDATE_RULE + * DELETE_RULE + * FK_NAME + * PK_NAME + *
+ *+ * If pk_table contains a table name, + * odbc_foreignkeys returns a result set + * containing the primary key of the specified table and all of the + * foreign keys that refer to it. + * If fk_table contains a table name, + * odbc_foreignkeys returns a result set + * containing all of the foreign keys in the specified table and the + * primary keys (in other tables) to which they refer. + * If both pk_table and + * fk_table contain table names, + * odbc_foreignkeys returns the foreign keys in + * the table specified in fk_table that refer + * to the primary key of the table specified in + * pk_table + *
+ */ +function odbc_foreignkeys($connection_id, $pk_qualifier, $pk_owner, $pk_table, $fk_qualifier, $fk_owner, $fk_table) {} + +/** + * Get the list of procedures stored in a specific data source + * @link https://php.net/manual/en/function.odbc-procedures.php + * @param resource $odbcThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string|null $catalogThe catalog ('qualifier' in ODBC 2 parlance).
+ * @param string|null $schemaThe schema ('owner' in ODBC 2 parlance). This parameter accepts the + * following search patterns: % to match zero or more characters, and _ to match a single character.
+ * @param string|null $procedureThe proc. This parameter accepts the following search patterns: + * % to match zero or more characters, and _ to match a single character.
+ * @return resource|falsean ODBC + * result identifier containing the information or FALSE on failure. + *
+ *+ * The result set has the following columns: + * PROCEDURE_QUALIFIER + * PROCEDURE_OWNER + * PROCEDURE_NAME + * NUM_INPUT_PARAMS + * NUM_OUTPUT_PARAMS + * NUM_RESULT_SETS + * REMARKS + * PROCEDURE_TYPE + *
+ */ +function odbc_procedures($odbc, $catalog = null, $schema = null, $procedure = null) {} + +/** + * Retrieve information about parameters to procedures + * @link https://php.net/manual/en/function.odbc-procedurecolumns.php + * @param resource $odbcThe ODBC connection identifier, + * see odbc_connect for details.
+ * @param string|null $catalogThe catalog ('qualifier' in ODBC 2 parlance).
+ * @param string|null $schemaThe schema ('owner' in ODBC 2 parlance). This parameter accepts the + * following search patterns: % to match zero or more characters, and _ to match a single character.
+ * @param string|null $procedureThe proc. This parameter accepts the following search patterns: + * % to match zero or more characters, and _ to match a single character.
+ * @param string|null $columnThe column. This parameter accepts the following search patterns: + * % to match zero or more characters, and _ to match a single character.
+ * @return resource|falsethe list of input and output parameters, as well as the + * columns that make up the result set for the specified procedures. + * Returns an ODBC result identifier or FALSE on failure. + *
+ *+ * The result set has the following columns: + * PROCEDURE_QUALIFIER + * PROCEDURE_OWNER + * PROCEDURE_NAME + * COLUMN_NAME + * COLUMN_TYPE + * DATA_TYPE + * TYPE_NAME + * PRECISION + * LENGTH + * SCALE + * RADIX + * NULLABLE + * REMARKS + *
+ */ +function odbc_procedurecolumns($odbc, $catalog = null, $schema = null, $procedure = null, $column = null) {} + +/** + * Alias of odbc_exec + * @link https://php.net/manual/en/function.odbc-do.php + * @param $connection_id + * @param $query + * @param $flags [optional] + */ +function odbc_do($connection_id, $query, $flags) {} + +/** + * Alias of odbc_field_len + * @link https://php.net/manual/en/function.odbc-field-precision.php + * @param $result_id + * @param $field_number + */ +function odbc_field_precision($result_id, $field_number) {} + +define('ODBC_TYPE', "unixODBC"); +define('ODBC_BINMODE_PASSTHRU', 0); +define('ODBC_BINMODE_RETURN', 1); +define('ODBC_BINMODE_CONVERT', 2); +define('SQL_ODBC_CURSORS', 110); +define('SQL_CUR_USE_DRIVER', 2); +define('SQL_CUR_USE_IF_NEEDED', 0); +define('SQL_CUR_USE_ODBC', 1); +define('SQL_CONCURRENCY', 7); +define('SQL_CONCUR_READ_ONLY', 1); +define('SQL_CONCUR_LOCK', 2); +define('SQL_CONCUR_ROWVER', 3); +define('SQL_CONCUR_VALUES', 4); +define('SQL_CURSOR_TYPE', 6); +define('SQL_CURSOR_FORWARD_ONLY', 0); +define('SQL_CURSOR_KEYSET_DRIVEN', 1); +define('SQL_CURSOR_DYNAMIC', 2); +define('SQL_CURSOR_STATIC', 3); +define('SQL_KEYSET_SIZE', 8); +define('SQL_FETCH_FIRST', 2); +define('SQL_FETCH_NEXT', 1); +define('SQL_CHAR', 1); +define('SQL_VARCHAR', 12); +define('SQL_LONGVARCHAR', -1); +define('SQL_DECIMAL', 3); +define('SQL_NUMERIC', 2); +define('SQL_BIT', -7); +define('SQL_TINYINT', -6); +define('SQL_SMALLINT', 5); +define('SQL_INTEGER', 4); +define('SQL_BIGINT', -5); +define('SQL_REAL', 7); +define('SQL_FLOAT', 6); +define('SQL_DOUBLE', 8); +define('SQL_BINARY', -2); +define('SQL_VARBINARY', -3); +define('SQL_LONGVARBINARY', -4); +define('SQL_DATE', 9); +define('SQL_TIME', 10); +define('SQL_TIMESTAMP', 11); +define('SQL_TYPE_DATE', 91); +define('SQL_TYPE_TIME', 92); +define('SQL_TYPE_TIMESTAMP', 93); +define('SQL_WCHAR', -8); +define('SQL_WVARCHAR', -9); +define('SQL_WLONGVARCHAR', -10); +define('SQL_BEST_ROWID', 1); +define('SQL_ROWVER', 2); +define('SQL_SCOPE_CURROW', 0); +define('SQL_SCOPE_TRANSACTION', 1); +define('SQL_SCOPE_SESSION', 2); +define('SQL_NO_NULLS', 0); +define('SQL_NULLABLE', 1); +define('SQL_INDEX_UNIQUE', 0); +define('SQL_INDEX_ALL', 1); +define('SQL_ENSURE', 1); +define('SQL_QUICK', 0); + +// End of odbc v.1.0 diff --git a/phpstorm-stubs/openssl/openssl.php b/phpstorm-stubs/openssl/openssl.php new file mode 100644 index 0000000..39638e8 --- /dev/null +++ b/phpstorm-stubs/openssl/openssl.php @@ -0,0 +1,1524 @@ + + * Resource holding the key. + * + * @return void + */ +#[Deprecated(since: '8.0')] +function openssl_pkey_free(#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey"], default: "resource")] $key): void {} + +/** + * Generates a new private key + * @link https://php.net/manual/en/function.openssl-pkey-new.php + * @param array|null $options [optional]+ * You can finetune the key generation (such as specifying the number of + * bits) using configargs. See + * openssl_csr_new for more information about + * configargs. + *
+ * @return OpenSSLAsymmetricKey|resource|false a resource identifier for the pkey on success, or false on + * error. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|false"], default: "resource|false")] +function openssl_pkey_new(?array $options) {} + +/** + * Gets an exportable representation of a key into a string + * @link https://php.net/manual/en/function.openssl-pkey-export.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key + * @param string &$output + * @param string|null $passphrase [optional]+ * The key is optionally protected by passphrase. + *
+ * @param array|null $options [optional]+ * configargs can be used to fine-tune the export + * process by specifying and/or overriding options for the openssl + * configuration file. See openssl_csr_new for more + * information about configargs. + *
+ * @return bool true on success or false on failure. + */ +function openssl_pkey_export( + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $key, + &$output, + ?string $passphrase, + ?array $options +): bool {} + +/** + * Gets an exportable representation of a key into a file + * @link https://php.net/manual/en/function.openssl-pkey-export-to-file.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $key + * @param string $output_filename+ * Path to the output file. + *
+ * @param string|null $passphrase [optional]+ * The key can be optionally protected by a + * passphrase. + *
+ * @param array|null $options [optional]+ * configargs can be used to fine-tune the export + * process by specifying and/or overriding options for the openssl + * configuration file. See openssl_csr_new for more + * information about configargs. + *
+ * @return bool true on success or false on failure. + */ +function openssl_pkey_export_to_file( + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $key, + string $output_filename, + ?string $passphrase, + ?array $options +): bool {} + +/** + * Get a private key + * @link https://php.net/manual/en/function.openssl-pkey-get-private.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + *+ * key can be one of the following: + *
+ * The optional parameter passphrase must be used + * if the specified key is encrypted (protected by a passphrase). + *
+ * @return OpenSSLAsymmetricKey|resource|false Returns a positive key resource identifier on success, or FALSE on error. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|false"], default: "resource|false")] +function openssl_pkey_get_private( + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + ?string $passphrase = null +) {} + +/** + * Extract public key from certificate and prepare it for use + * @link https://php.net/manual/en/function.openssl-pkey-get-public.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_keycertificate can be one of the following: + *
+ * Resource holding the key. + *
+ * @return array|false an array with the key details in success or false in failure. + * Returned array has indexes bits (number of bits), + * key (string representation of the public key) and + * type (type of the key which is one of + * OPENSSL_KEYTYPE_RSA, + * OPENSSL_KEYTYPE_DSA, + * OPENSSL_KEYTYPE_DH, + * OPENSSL_KEYTYPE_EC or -1 meaning unknown). + * + *+ * Depending on the key type used, additional details may be returned. Note that + * some elements may not always be available. + */ +#[ArrayShape(["bits" => "int", "key" => "string", "rsa" => "array", "dsa" => "array", "dh" => "array", "ec" => "array", "type" => "int"])] +function openssl_pkey_get_details(#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey"], default: "resource")] $key): array|false {} + +/** + * Free key resource + * @link https://php.net/manual/en/function.openssl-free-key.php + * @param OpenSSLAsymmetricKey|resource $key + * @return void + */ +#[Deprecated(since: '8.0')] +function openssl_free_key(#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey"], default: "resource")] $key): void {} + +/** + * Alias of openssl_pkey_get_private + * @link https://php.net/manual/en/function.openssl-get-privatekey.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + *
+ * key can be one of the following: + *
+ * The optional parameter passphrase must be used + * if the specified key is encrypted (protected by a passphrase). + *
+ * @return OpenSSLAsymmetricKey|resource|false Returns a positive key resource identifier on success, or FALSE on error. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|false"], default: "resource|false")] +function openssl_get_privatekey( + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + ?string $passphrase +) {} + +/** + * Alias of openssl_pkey_get_public + * @link https://php.net/manual/en/function.openssl-get-publickey.php + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key+ * certificate can be one of the following: + *
+ * privkey should be set to a private key that was + * previously generated by {@link https://php.net/en/manual/function.openssl-pkey-new.php openssl_pkey_new()} (or + * otherwise obtained from the other openssl_pkey family of functions). + * The corresponding public portion of the key will be used to sign the + * CSR. + *
+ * @param string $challengeThe challenge associated to associate with the SPKAC
+ * @param int $digest_algoThe digest algorithm. See openssl_get_md_method().
+ * @return string|false Returns a signed public key and challenge string or NULL on failure. + * @since 5.6 + */ +function openssl_spki_new(#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey"], default: "resource")] $private_key, string $challenge, int $digest_algo = 2): string|false {} + +/** + * Verifies a signed public key and challenge + * @link https://php.net/manual/en/function.openssl-spki-verify.php + * @param string $spkiExpects a valid signed public key and challenge
+ * @return bool Returns a boolean on success or failure. + * @since 5.6 + */ +function openssl_spki_verify(string $spki): bool {} + +/** + * Exports the challenge associated with a signed public key and challenge + * @link https://php.net/manual/en/function.openssl-spki-export-challenge.php + * @param string $spkiExpects a valid signed public key and challenge
+ * @return string|false Returns the associated challenge string or NULL on failure. + * @since 5.6 + */ +function openssl_spki_export_challenge(string $spki): string|false {} + +/** + * Exports a valid PEM formatted public key signed public key and challenge + * @link https://php.net/manual/en/function.openssl-spki-export.php + * @param string $spkiExpects a valid signed public key and challenge
+ * @return string|false Returns the associated PEM formatted public key or NULL on failure. + * @since 5.6 + */ +function openssl_spki_export(string $spki): string|false {} +/** + * Parse an X.509 certificate and return a resource identifier for + * it + * @link https://php.net/manual/en/function.openssl-x509-read.php + * @param OpenSSLCertificate|string|resource $certificate + * @return OpenSSLCertificate|resource|false a resource identifier on success or false on failure. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|false"], default: "resource|false")] +function openssl_x509_read(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate) {} + +/** + * @param string $certificate + * @param string $digest_algo [optional] hash method + * @param bool $binary [optional] + * @return string|false FALSE on failure + * @since 5.6 + */ +function openssl_x509_fingerprint(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, string $digest_algo = 'sha1', bool $binary = false): string|false {} +/** + * Free certificate resource + * @link https://php.net/manual/en/function.openssl-x509-free.php + * @param OpenSSLCertificate|resource|string $certificate + * @return void + */ +#[Deprecated(since: '8.0')] +function openssl_x509_free(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate"], default: "resource|string")] $certificate): void {} + +/** + * Parse an X509 certificate and return the information as an array + * @link https://php.net/manual/en/function.openssl-x509-parse.php + * @param OpenSSLCertificate|string|resource $certificate + * @param bool $short_names [optional]+ * shortnames controls how the data is indexed in the + * array - if shortnames is true (the default) then + * fields will be indexed with the short name form, otherwise, the long name + * form will be used - e.g.: CN is the shortname form of commonName. + *
+ * @return array|false The structure of the returned data is (deliberately) not + * yet documented, as it is still subject to change. + */ +#[ArrayShape([ + 'name' => 'string', + 'subject' => 'string', + 'hash' => 'string', + 'issuer' => 'string', + 'version' => 'int', + 'serialNumber' => 'string', + 'serialNumberHex' => 'string', + 'validFrom' => 'string', + 'validTo' => 'string', + 'validFrom_time_t' => 'int', + 'validTo_time_t' => 'int', + 'alias' => 'string', + 'signatureTypeSN' => 'string', + 'signatureTypeLN' => 'string', + 'signatureTypeNID' => 'int', + 'purposes' => 'array', + 'extensions' => 'array' +])] +function openssl_x509_parse( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] bool $shortname, + #[PhpStormStubsElementAvailable(from: '7.1')] bool $short_names = true +): array|false {} + +/** + * Verifies if a certificate can be used for a particular purpose + * @link https://php.net/manual/en/function.openssl-x509-checkpurpose.php + * @param OpenSSLCertificate|string|resource $certificate+ * The examined certificate. + *
+ * @param int $purpose+ *
| Constant | + *Description | + *
| X509_PURPOSE_SSL_CLIENT | + *Can the certificate be used for the client side of an SSL + * connection? | + *
| X509_PURPOSE_SSL_SERVER | + *Can the certificate be used for the server side of an SSL + * connection? | + *
| X509_PURPOSE_NS_SSL_SERVER | + *Can the cert be used for Netscape SSL server? | + *
| X509_PURPOSE_SMIME_SIGN | + *Can the cert be used to sign S/MIME email? | + *
| X509_PURPOSE_SMIME_ENCRYPT | + *Can the cert be used to encrypt S/MIME email? | + *
| X509_PURPOSE_CRL_SIGN | + *Can the cert be used to sign a certificate revocation list + * (CRL)? | + *
| X509_PURPOSE_ANY | + *Can the cert be used for Any/All purposes? | + *
+ * cainfo should be an array of trusted CA files/dirs + * as described in Certificate + * Verification. + *
+ * @param string|null $untrusted_certificates_file [optional]+ * If specified, this should be the name of a PEM encoded file holding + * certificates that can be used to help verify the certificate, although + * no trust is placed in the certificates that come from that file. + *
+ * @return int|bool true if the certificate can be used for the intended purpose, + * false if it cannot, or -1 on error. + */ +function openssl_x509_checkpurpose( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + int $purpose, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] array $ca_info, + #[PhpStormStubsElementAvailable(from: '7.1')] array $ca_info = [], + ?string $untrusted_certificates_file +): int|bool {} + +/** + * Checks if a private key corresponds to a certificate + * @link https://php.net/manual/en/function.openssl-x509-check-private-key.php + * @param OpenSSLCertificate|string|resource $certificate+ * The certificate. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key+ * The private key. + *
+ * @return bool true if key is the private key that + * corresponds to cert, or false otherwise. + */ +function openssl_x509_check_private_key( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key +): bool {} + +/** + * Exports a certificate as a string + * @link https://php.net/manual/en/function.openssl-x509-export.php + * @param OpenSSLCertificate|string|resource $certificate + * @param string &$output+ * On success, this will hold the PEM. + *
+ * @param bool $no_text [optional] + * @return bool true on success or false on failure. + */ +function openssl_x509_export(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, &$output, bool $no_text = true): bool {} + +/** + * Exports a certificate to file + * @link https://php.net/manual/en/function.openssl-x509-export-to-file.php + * @param OpenSSLCertificate|string|resource $certificate + * @param string $output_filename+ * Path to the output file. + *
+ * @param bool $no_text [optional] + * @return bool true on success or false on failure. + */ +function openssl_x509_export_to_file(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $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( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $public_key +): int {} + +/** + * Exports a PKCS#12 Compatible Certificate Store File to variable. + * @link https://php.net/manual/en/function.openssl-pkcs12-export.php + * @param OpenSSLCertificate|string|resource $certificate + * @param string &$output+ * On success, this will hold the PKCS#12. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key+ * Private key component of PKCS#12 file. + *
+ * @param string $passphrase+ * Encryption password for unlocking the PKCS#12 file. + *
+ * @param array $options + * @return bool true on success or false on failure. + * @since 5.2.2 + */ +function openssl_pkcs12_export( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + &$output, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + string $passphrase, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $args, + #[PhpStormStubsElementAvailable(from: '7.1')] array $options = [] +): bool {} + +/** + * Exports a PKCS#12 Compatible Certificate Store File + * @link https://php.net/manual/en/function.openssl-pkcs12-export-to-file.php + * @param OpenSSLCertificate|string|resource $certificate + * @param string $output_filename+ * Path to the output file. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key+ * Private key component of PKCS#12 file. + *
+ * @param string $passphrase+ * Encryption password for unlocking the PKCS#12 file. + *
+ * @param array $options + * @return bool true on success or false on failure. + * @since 5.2.2 + */ +function openssl_pkcs12_export_to_file(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, string $output_filename, $private_key, string $passphrase, array $options = []): bool {} + +/** + * Parse a PKCS#12 Certificate Store into an array + * @link https://php.net/manual/en/function.openssl-pkcs12-read.php + * @param string $pkcs12 + * @param array &$certificates+ * On success, this will hold the Certificate Store Data. + *
+ * @param string $passphrase+ * Encryption password for unlocking the PKCS#12 file. + *
+ * @return bool true on success or false on failure. + * @since 5.2.2 + */ +function openssl_pkcs12_read(string $pkcs12, &$certificates, string $passphrase): bool {} + +/** + * Generates a CSR + * @link https://php.net/manual/en/function.openssl-csr-new.php + * @param array $distinguished_names+ * The Distinguished Name to be used in the certificate. + *
+ * @param OpenSSLAsymmetricKey &$private_key+ * privkey should be set to a private key that was + * previously generated by openssl_pkey_new (or + * otherwise obtained from the other openssl_pkey family of functions). + * The corresponding public portion of the key will be used to sign the + * CSR. + *
+ * @param array|null $options [optional]+ * By default, the information in your system openssl.conf + * is used to initialize the request; you can specify a configuration file + * section by setting the config_section_section key of + * configargs. You can also specify an alternative + * openssl configuration file by setting the value of the + * config key to the path of the file you want to use. + * The following keys, if present in configargs + * behave as their equivalents in the openssl.conf, as + * listed in the table below. + *
| configargs key | + *type | + *openssl.conf equivalent | + *description | + *
| digest_alg | + *string | + *default_md | + *Selects which digest method to use | + *
| x509_extensions | + *string | + *x509_extensions | + *Selects which extensions should be used when creating an x509 + * certificate | + *
| req_extensions | + *string | + *req_extensions | + *Selects which extensions should be used when creating a CSR | + *
| private_key_bits | + *integer | + *default_bits | + *Specifies how many bits should be used to generate a private + * key | + *
| private_key_type | + *integer | + *none | + *Specifies the type of private key to create. This can be one + * of OPENSSL_KEYTYPE_DSA, + * OPENSSL_KEYTYPE_DH or + * OPENSSL_KEYTYPE_RSA. + * The default value is OPENSSL_KEYTYPE_RSA which + * is currently the only supported key type. + * | + *
| encrypt_key | + *boolean | + *encrypt_key | + *Should an exported key (with passphrase) be encrypted? | + *
| encrypt_key_cipher | + *integer | + *none | + *+ * One of cipher constants. + * | + *
+ * extraattribs is used to specify additional + * configuration options for the CSR. Both dn and + * extraattribs are associative arrays whose keys are + * converted to OIDs and applied to the relevant part of the request. + *
+ * @return OpenSSLCertificateSigningRequest|resource|false the CSR. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|false"], default: "resource|false")] +function openssl_csr_new( + array $distinguished_names, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey'], default: 'resource')] &$private_key, + ?array $options, + ?array $extra_attributes +) {} + +/** + * Exports a CSR as a string + * @link https://php.net/manual/en/function.openssl-csr-export.php + * @param OpenSSLCertificateSigningRequest|string|resource $csr + * @param string &$output + * @param bool $no_text [optional] + * @return bool true on success or false on failure. + */ +function openssl_csr_export(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|string"], default: "resource|string")] $csr, &$output, bool $no_text = true): bool {} + +/** + * Exports a CSR to a file + * @link https://php.net/manual/en/function.openssl-csr-export-to-file.php + * @param OpenSSLCertificateSigningRequest|string|resource $csr + * @param string $output_filename+ * Path to the output file. + *
+ * @param bool $no_text [optional] + * @return bool true on success or false on failure. + */ +function openssl_csr_export_to_file(#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|string"], default: "resource|string")] $csr, string $output_filename, bool $no_text = true): bool {} + +/** + * Sign a CSR with another certificate (or itself) and generate a certificate + * @link https://php.net/manual/en/function.openssl-csr-sign.php + * @param OpenSSLCertificateSigningRequest|string|resource $csr+ * A CSR previously generated by openssl_csr_new. + * It can also be the path to a PEM encoded CSR when specified as + * file://path/to/csr or an exported string generated + * by openssl_csr_export. + *
+ * @param OpenSSLCertificate|resource|string|null $ca_certificate+ * The generated certificate will be signed by cacert. + * If cacert is null, the generated certificate + * will be a self-signed certificate. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key+ * priv_key is the private key that corresponds to + * cacert. + *
+ * @param int $days+ * days specifies the length of time for which the + * generated certificate will be valid, in days. + *
+ * @param array|null $options [optional]+ * You can finetune the CSR signing by configargs. + * See openssl_csr_new for more information about + * configargs. + *
+ * @param int $serial [optional]+ * An optional the serial number of issued certificate. If not specified + * it will default to 0. + *
+ * @return OpenSSLCertificate|resource|false an x509 certificate resource on success, false on failure. + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|false"], default: "resource|false")] +function openssl_csr_sign( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|string"], default: "resource|string")] $csr, + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string|null"], default: "resource|string|null")] $ca_certificate, + #[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|OpenSSLCertificate|array|string"], default: "resource|array|string")] $private_key, + int $days, + ?array $options, + int $serial = 0 +) {} + +/** + * Returns the subject of a CERT + * @link https://php.net/manual/en/function.openssl-csr-get-subject.php + * @param OpenSSLCertificateSigningRequest|string|resource $csr + * @param bool $short_names [optional] + * @return array|false + */ +function openssl_csr_get_subject( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|string"], default: "resource|string")] $csr, + #[PhpStormStubsElementAvailable(from: '7.1')] bool $short_names = true +): array|false {} + +/** + * Returns the public key of a CERT + * @link https://php.net/manual/en/function.openssl-csr-get-public-key.php + * @param OpenSSLCertificateSigningRequest|string|resource $csr + * @param bool $short_names [optional] + * @return OpenSSLAsymmetricKey|resource|false + */ +#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|false"], default: "resource|false")] +function openssl_csr_get_public_key( + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificateSigningRequest|string"], default: "resource|string")] $csr, + #[PhpStormStubsElementAvailable(from: '7.1')] bool $short_names = true +) {} + +/** + * Computes a digest + * @link https://php.net/manual/en/function.openssl-digest.php + * @param string $data+ * The data. + *
+ * @param string $digest_algo+ * The digest method. + *
+ * @param bool $binary [optional]+ * Setting to true will return as raw output data, otherwise the return + * value is binhex encoded. + *
+ * @return string|false the digested hash value on success or false on failure. + */ +function openssl_digest(string $data, string $digest_algo, bool $binary = false): string|false {} + +/** + * Encrypts data + * @link https://php.net/manual/en/function.openssl-encrypt.php + * @param string $data+ * The data. + *
+ * @param string $cipher_algo+ * The cipher method. For a list of available cipher methods, use {@see openssl_get_cipher_methods()}. + *
+ * @param string $passphrase+ * The key. + *
+ * @param int $options [optional]+ * options is a bitwise disjunction of the flags OPENSSL_RAW_DATA and OPENSSL_ZERO_PADDING. + *
+ * @param string $iv [optional]+ * A non-NULL Initialization Vector. + *
+ * @param string &$tag [optional]The authentication tag passed by reference when using AEAD cipher mode (GCM or CCM).
+ * @param string $aad [optional]Additional authentication data.
+ * @param int $tag_length [optional]+ * The length of the authentication tag. Its value can be between 4 and 16 for GCM mode. + *
+ * @return string|false the encrypted string on success or false on failure. + */ +function openssl_encrypt( + string $data, + string $cipher_algo, + string $passphrase, + int $options = 0, + string $iv = "", + #[PhpStormStubsElementAvailable(from: '7.1')] &$tag, + #[PhpStormStubsElementAvailable(from: '7.1')] string $aad = "", + #[PhpStormStubsElementAvailable(from: '7.1')] int $tag_length = 16 +): string|false {} + +/** + * Decrypts data + * @link https://php.net/manual/en/function.openssl-decrypt.php + * @param string $data+ * The data. + *
+ * @param string $cipher_algo+ * The cipher method. + *
+ * @param string $passphrase+ * The password. + *
+ * @param int $options [optional]+ * Setting to true will take a raw encoded string, + * otherwise a base64 string is assumed for the + * data parameter. + *
+ * @param string $iv [optional]+ * A non-NULL Initialization Vector. + *
+ * @param string|null $tag+ * The authentication tag in AEAD cipher mode. If it is incorrect, the authentication fails and the function returns FALSE. + *
+ * @param string $aad [optional]Additional authentication data.
+ * @return string|false The decrypted string on success or false on failure. + */ +function openssl_decrypt( + string $data, + string $cipher_algo, + string $passphrase, + int $options = 0, + string $iv = "", + #[PhpStormStubsElementAvailable(from: '7.1')] #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: 'string')] $tag = null, + #[PhpStormStubsElementAvailable(from: '7.1')] string $aad = "" +): string|false {} + +/** + * (PHP 5 >= PHP 5.3.3)+ * The method. + *
+ * @return int|false the cipher length on success, or false on failure. + */ +function openssl_cipher_iv_length(string $cipher_algo): int|false {} + +/** + * This function works in exactly the same way as openssl_cipher_iv_length but for a key length. This is especially + * useful to make sure that the right key length is provided to openssl_encrypt and openssl_decrypt. + * @param string $cipher_algo + * @return int|false + * @since 8.2 + */ +function openssl_cipher_key_length(string $cipher_algo): int|false {} + +/** + * Generate signature + * @link https://php.net/manual/en/function.openssl-sign.php + * @param string $data + * @param string &$signature+ * If the call was successful the signature is returned in + * signature. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param string|int $algorithm [optional]+ * For more information see the list of Signature Algorithms. + *
+ * @return bool true on success or false on failure. + */ +function openssl_sign( + string $data, + &$signature, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + string|int $algorithm = OPENSSL_ALGO_SHA1 +): bool {} + +/** + * Verify signature + * @link https://php.net/manual/en/function.openssl-verify.php + * @param string $data + * @param string $signature + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key + * @param string|int $algorithm [optional]+ * For more information see the list of Signature Algorithms. + *
+ * @return int|false 1 if the signature is correct, 0 if it is incorrect, and + * -1 on error. + */ +function openssl_verify( + string $data, + string $signature, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $public_key, + string|int $algorithm = OPENSSL_ALGO_SHA1 +): int|false {} + +/** + * Seal (encrypt) data + * @link https://php.net/manual/en/function.openssl-seal.php + * @param string $data + * @param string &$sealed_data + * @param array &$encrypted_keys + * @param array $public_key + * @param string $cipher_algo + * @param string &$iv + * @return int|false the length of the sealed data on success, or false on error. + * If successful the sealed data is returned in + * sealed_data, and the envelope keys in + * env_keys. + */ +function openssl_seal( + string $data, + &$sealed_data, + &$encrypted_keys, + array $public_key, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $cipher_algo = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $cipher_algo, + #[PhpStormStubsElementAvailable(from: '7.0')] &$iv = null +): int|false {} + +/** + * Open sealed data + * @link https://php.net/manual/en/function.openssl-open.php + * @param string $data + * @param string &$output+ * If the call is successful the opened data is returned in this + * parameter. + *
+ * @param string $encrypted_key + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param string $cipher_algo The cipher method. + * @param string|null $iv [optional] The initialization vector. + * @return bool true on success or false on failure. + */ +function openssl_open( + string $data, + &$output, + string $encrypted_key, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + #[PhpStormStubsElementAvailable(from: '7.0', to: '7.4')] string $cipher_algo = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $cipher_algo, + #[PhpStormStubsElementAvailable(from: '7.0')] ?string $iv +): bool {} + +/** + * Generates a PKCS5 v2 PBKDF2 string, defaults to SHA-1 + * @link https://secure.php.net/manual/en/function.openssl-pbkdf2.php + * @param string $password + * @param string $salt + * @param int $key_length + * @param int $iterations + * @param string $digest_algo [optional] + * @return string|false Returns string or FALSE on failure. + * @since 5.5 + */ +function openssl_pbkdf2(string $password, string $salt, int $key_length, int $iterations, string $digest_algo = 'sha1'): string|false {} + +/** + * Verifies the signature of an S/MIME signed message + * @link https://php.net/manual/en/function.openssl-pkcs7-verify.php + * @param string $input_filename+ * Path to the message. + *
+ * @param int $flags+ * flags can be used to affect how the signature is + * verified - see PKCS7 constants + * for more information. + *
+ * @param string|null $signers_certificates_filename [optional]+ * If the outfilename is specified, it should be a + * string holding the name of a file into which the certificates of the + * persons that signed the messages will be stored in PEM format. + *
+ * @param array $ca_info+ * If the cainfo is specified, it should hold + * information about the trusted CA certificates to use in the verification + * process - see certificate + * verification for more information about this parameter. + *
+ * @param string|null $untrusted_certificates_filename [optional]+ * If the extracerts is specified, it is the filename + * of a file containing a bunch of certificates to use as untrusted CAs. + *
+ * @param string|null $content [optional]+ * You can specify a filename with content that will + * be filled with the verified data, but with the signature information + * stripped. + * @param string|null $output_filename [optional] + *
+ * @return bool|int true if the signature is verified, false if it is not correct + * (the message has been tampered with, or the signing certificate is invalid), + * or -1 on error. + */ +function openssl_pkcs7_verify( + string $input_filename, + int $flags, + ?string $signers_certificates_filename, + array $ca_info = [], + ?string $untrusted_certificates_filename, + ?string $content, + #[PhpStormStubsElementAvailable("7.2")] ?string $output_filename +): int|bool {} + +/** + * Decrypts an S/MIME encrypted message + * @link https://php.net/manual/en/function.openssl-pkcs7-decrypt.php + * @param string $input_filename + * @param string $output_filename+ * The decrypted message is written to the file specified by + * outfilename. + *
+ * @param OpenSSLCertificate|string|resource $certificate + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null $private_key [optional] + * @return bool true on success or false on failure. + */ +function openssl_pkcs7_decrypt( + string $input_filename, + string $output_filename, + $certificate, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string|null'], default: 'resource|array|string|null')] $private_key +): bool {} + +/** + * Sign an S/MIME message + * @link https://php.net/manual/en/function.openssl-pkcs7-sign.php + * @param string $input_filename + * @param string $output_filename + * @param OpenSSLCertificate|string|resource $certificate + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param array|null $headers+ * headers is an array of headers that + * will be prepended to the data after it has been signed (see + * openssl_pkcs7_encrypt for more information about + * the format of this parameter). + *
+ * @param int $flags [optional]+ * flags can be used to alter the output - see PKCS7 constants. + *
+ * @param string|null $untrusted_certificates_filename [optional]+ * extracerts specifies the name of a file containing + * a bunch of extra certificates to include in the signature which can for + * example be used to help the recipient to verify the certificate that you used. + *
+ * @return bool true on success or false on failure. + */ +function openssl_pkcs7_sign( + string $input_filename, + string $output_filename, + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|string"], default: "resource|string")] $certificate, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + ?array $headers, + int $flags = PKCS7_DETACHED, + ?string $untrusted_certificates_filename +): bool {} + +/** + * Encrypt an S/MIME message + * @link https://php.net/manual/en/function.openssl-pkcs7-encrypt.php + * @param string $input_filename + * @param string $output_filename + * @param OpenSSLCertificate|array|string|resource $certificate+ * Either a lone X.509 certificate, or an array of X.509 certificates. + *
+ * @param array|null $headers+ * headers is an array of headers that + * will be prepended to the data after it has been encrypted. + *
+ *+ * headers can be either an associative array + * keyed by header name, or an indexed array, where each element contains + * a single header line. + *
+ * @param int $flags [optional]+ * flags can be used to specify options that affect + * the encoding process - see PKCS7 + * constants. + *
+ * @param int $cipher_algo [optional]+ * One of cipher constants. + *
+ * @return bool true on success or false on failure. + */ +function openssl_pkcs7_encrypt( + string $input_filename, + string $output_filename, + #[LanguageLevelTypeAware(["8.0" => "OpenSSLCertificate|array|string"], default: "resource|array|string")] $certificate, + ?array $headers, + int $flags = 0, + int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC +): bool {} + +/** + * Encrypts data with private key + * @link https://php.net/manual/en/function.openssl-private-encrypt.php + * @param string $data + * @param string &$encrypted_data + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param int $padding [optional]+ * padding can be one of + * OPENSSL_PKCS1_PADDING, + * OPENSSL_NO_PADDING. + *
+ * @return bool true on success or false on failure. + */ +function openssl_private_encrypt( + string $data, + &$encrypted_data, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + int $padding = OPENSSL_PKCS1_PADDING +): bool {} + +/** + * Decrypts data with private key + * @link https://php.net/manual/en/function.openssl-private-decrypt.php + * @param string $data + * @param string &$decrypted_data + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key+ * key must be the private key corresponding that + * was used to encrypt the data. + *
+ * @param int $padding [optional]+ * padding can be one of + * OPENSSL_PKCS1_PADDING, + * OPENSSL_SSLV23_PADDING, + * OPENSSL_PKCS1_OAEP_PADDING, + * OPENSSL_NO_PADDING. + *
+ * @return bool true on success or false on failure. + */ +function openssl_private_decrypt( + string $data, + &$decrypted_data, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + int $padding = OPENSSL_PKCS1_PADDING +): bool {} + +/** + * Encrypts data with public key + * @link https://php.net/manual/en/function.openssl-public-encrypt.php + * @param string $data + * @param string &$encrypted_data+ * This will hold the result of the encryption. + *
+ * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key+ * The public key. + *
+ * @param int $padding [optional]+ * padding can be one of + * OPENSSL_PKCS1_PADDING, + * OPENSSL_SSLV23_PADDING, + * OPENSSL_PKCS1_OAEP_PADDING, + * OPENSSL_NO_PADDING. + *
+ * @return bool true on success or false on failure. + */ +function openssl_public_encrypt( + string $data, + &$encrypted_data, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $public_key, + int $padding = OPENSSL_PKCS1_PADDING +): bool {} + +/** + * Decrypts data with public key + * @link https://php.net/manual/en/function.openssl-public-decrypt.php + * @param string $data + * @param string &$decrypted_data + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key+ * key must be the public key corresponding that + * was used to encrypt the data. + *
+ * @param int $padding [optional]+ * padding can be one of + * OPENSSL_PKCS1_PADDING, + * OPENSSL_NO_PADDING. + *
+ * @return bool true on success or false on failure. + */ +function openssl_public_decrypt( + string $data, + &$decrypted_data, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $public_key, + int $padding = OPENSSL_PKCS1_PADDING +): bool {} + +/** + * Gets available digest methods + * @link https://php.net/manual/en/function.openssl-get-md-methods.php + * @param bool $aliases [optional]+ * Set to true if digest aliases should be included within the + * returned array. + *
+ * @return array An array of available digest methods. + */ +function openssl_get_md_methods(bool $aliases = false): array {} + +/** + * Gets available cipher methods + * @link https://php.net/manual/en/function.openssl-get-cipher-methods.php + * @param bool $aliases [optional]+ * Set to true if cipher aliases should be included within the + * returned array. + *
+ * @return array An array of available cipher methods. + */ +function openssl_get_cipher_methods(bool $aliases = false): array {} + +/** + * Computes shared secret for public value of remote DH key and local DH key + * @link https://php.net/manual/en/function.openssl-dh-compute-key.php + * @param string $public_key+ * Public key + *
+ * @param OpenSSLAsymmetricKey|resource $private_key+ * DH key + *
+ * @return string|false computed key on success or false on failure. + * @since 5.3 + */ +function openssl_dh_compute_key(string $public_key, #[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey"], default: "resource")] $private_key): string|false {} + +/** + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param int $key_length + * @return string|false + * @since 7.3 + */ +function openssl_pkey_derive( + $public_key, + #[LanguageLevelTypeAware(['8.0' => 'OpenSSLAsymmetricKey|OpenSSLCertificate|array|string'], default: 'resource|array|string')] $private_key, + int $key_length = 0 +): string|false {} + +/** + * Generates a string of pseudo-random bytes, with the number of bytes determined by the length parameter. + *It also indicates if a cryptographically strong algorithm was used to produce the pseudo-random bytes, + * and does this via the optional crypto_strong parameter. It's rare for this to be FALSE, but some systems may be broken or old.
+ * @link https://php.net/manual/en/function.openssl-random-pseudo-bytes.php + * @param positive-int $length+ * The length of the desired string of bytes. Must be a positive integer. PHP will + * try to cast this parameter to a non-null integer to use it. + *
+ * @param bool &$strong_result [optional]+ * If passed into the function, this will hold a boolean value that determines + * if the algorithm used was "cryptographically strong", e.g., safe for usage with GPG, + * passwords, etc. true if it did, otherwise false + *
+ * @return string|false the generated string of bytes on success, or false on failure. + */ +#[LanguageLevelTypeAware(["7.4" => "string"], default: "string|false")] +function openssl_random_pseudo_bytes(int $length, &$strong_result) {} + +/** + * Return openSSL error message + * @link https://php.net/manual/en/function.openssl-error-string.php + * @return string|false an error message string, or false if there are no more error + * messages to return. + */ +function openssl_error_string(): string|false {} + +/** + * Retrieve the available certificate locations + * @link https://php.net/manual/en/function.openssl-get-cert-locations.php + * @return array an array with the available certificate locations + * @since 5.6 + */ +#[ArrayShape([ + 'default_cert_file' => 'string', + 'default_cert_file_env' => 'string', + 'default_cert_dir' => 'string', + 'default_cert_dir_env' => 'string', + 'default_private_dir' => 'string', + 'default_default_cert_area' => 'string', + 'ini_cafile' => 'string', + 'ini_capath' => 'string' +])] +function openssl_get_cert_locations(): array {} + +function openssl_get_curve_names(): array|false {} + +/** + * @param string $data + * @param array &$certificates + * @return bool + * @since 7.2 + */ +function openssl_pkcs7_read(string $data, &$certificates): bool {} + +/** + * Verifies that the data block is intact, the signer is who they say they are, and returns the certs of the signers. + * @param string $input_filename + * @param int $flags [optional] + * @param string|null $certificates [optional] + * @param array $ca_info + * @param string|null $untrusted_certificates_filename [optional] + * @param string|null $content [optional] + * @param string|null $pk7 [optional] + * @param string|null $sigfile [optional] + * @param int $encoding [optional] + * @return bool + * @since 8.0 + */ +function openssl_cms_verify(string $input_filename, int $flags = 0, ?string $certificates, array $ca_info = [], ?string $untrusted_certificates_filename, ?string $content, ?string $pk7, ?string $sigfile, int $encoding = OPENSSL_ENCODING_SMIME): bool {} + +/** + * Encrypts the message in the file with the certificates and outputs the result to the supplied file. + * @param string $input_filename + * @param string $output_filename + * @param resource|string|array $certificate + * @param null|array $headers + * @param int $flags + * @param int $encoding + * @param int $cipher_algo + * @return bool + * @since 8.0 + */ +function openssl_cms_encrypt(string $input_filename, string $output_filename, $certificate, ?array $headers, int $flags = 0, int $encoding = OPENSSL_ENCODING_SMIME, int $cipher_algo = OPENSSL_CIPHER_AES_128_CBC): bool {} + +/** + * Signs the MIME message in the file with a cert and key and output the result to the supplied file. + * @param string $input_filename + * @param string $output_filename + * @param OpenSSLCertificate|string $certificate + * @param OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $private_key + * @param array|null $headers + * @param int $flags [optional] + * @param int $encoding [optional] + * @param string|null $untrusted_certificates_filename [optional] + * @return bool + * @since 8.0 + */ +function openssl_cms_sign(string $input_filename, string $output_filename, OpenSSLCertificate|string $certificate, $private_key, ?array $headers, int $flags = 0, int $encoding = OPENSSL_ENCODING_SMIME, ?string $untrusted_certificates_filename): bool {} + +/** + * Decrypts the S/MIME message in the file and outputs the results to the supplied file. + * @param string $input_filename + * @param string $output_filename + * @param resource|string $certificate + * @param resource|string|array $private_key + * @param int $encoding + * @return bool + * @since 8.0 + */ +function openssl_cms_decrypt(string $input_filename, string $output_filename, $certificate, $private_key = null, int $encoding = OPENSSL_ENCODING_SMIME): bool {} + +/** + * Exports the CMS file to an array of PEM certificates. + * @param string $input_filename + * @param array &$certificates + * @return bool + * @since 8.0 + */ +function openssl_cms_read(string $input_filename, &$certificates): bool {} + +define('OPENSSL_VERSION_TEXT', "OpenSSL 1.0.0e 6 Sep 2011"); +define('OPENSSL_VERSION_NUMBER', 268435551); +define('X509_PURPOSE_SSL_CLIENT', 1); +define('X509_PURPOSE_SSL_SERVER', 2); +define('X509_PURPOSE_NS_SSL_SERVER', 3); +define('X509_PURPOSE_SMIME_SIGN', 4); +define('X509_PURPOSE_SMIME_ENCRYPT', 5); +define('X509_PURPOSE_CRL_SIGN', 6); +define('X509_PURPOSE_ANY', 7); + +/** + * Used as default algorithm by openssl_sign and + * openssl_verify. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('OPENSSL_ALGO_SHA1', 1); +define('OPENSSL_ALGO_MD5', 2); +define('OPENSSL_ALGO_MD4', 3); +define('OPENSSL_ALGO_MD2', 4); +define('OPENSSL_ALGO_DSS1', 5); +define('OPENSSL_ALGO_SHA224', 6); +define('OPENSSL_ALGO_SHA256', 7); +define('OPENSSL_ALGO_SHA384', 8); +define('OPENSSL_ALGO_SHA512', 9); +define('OPENSSL_ALGO_RMD160', 10); +/** + * When signing a message, use cleartext signing with the MIME + * type "multipart/signed". This is the default + * if you do not specify any flags to + * openssl_pkcs7_sign. + * If you turn this option off, the message will be signed using + * opaque signing, which is more resistant to translation by mail relays + * but cannot be read by mail agents that do not support S/MIME. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_DETACHED', 64); + +/** + * Adds text/plain content type headers to encrypted/signed + * message. If decrypting or verifying, it strips those headers from + * the output - if the decrypted or verified message is not of MIME type + * text/plain then an error will occur. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_TEXT', 1); + +/** + * When verifying a message, certificates (if + * any) included in the message are normally searched for the + * signing certificate. With this option only the + * certificates specified in the extracerts + * parameter of openssl_pkcs7_verify are + * used. The supplied certificates can still be used as + * untrusted CAs however. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOINTERN', 16); + +/** + * Do not verify the signers certificate of a signed + * message. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOVERIFY', 32); + +/** + * Do not chain verification of signers certificates: that is + * don't use the certificates in the signed message as untrusted CAs. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOCHAIN', 8); + +/** + * When signing a message the signer's certificate is normally + * included - with this option it is excluded. This will reduce the + * size of the signed message but the verifier must have a copy of the + * signers certificate available locally (passed using the + * extracerts to + * openssl_pkcs7_verify for example). + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOCERTS', 2); + +/** + * Normally when a message is signed, a set of attributes are + * included which include the signing time and the supported symmetric + * algorithms. With this option they are not included. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOATTR', 256); + +/** + * Normally the input message is converted to "canonical" format + * which is effectively using CR and LF + * as end of line: as required by the S/MIME specification. When this + * option is present, no translation occurs. This is useful when + * handling binary data which may not be in MIME format. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_BINARY', 128); + +/** + * @since 8.3 + */ +define('PKCS7_NOOLDMIMETYPE', 1024); + +/** + * Don't try and verify the signatures on a message + * @link https://php.net/manual/en/openssl.constants.php + */ +define('PKCS7_NOSIGS', 4); +define('OPENSSL_PKCS1_PADDING', 1); +define('OPENSSL_SSLV23_PADDING', 2); +define('OPENSSL_NO_PADDING', 3); +define('OPENSSL_PKCS1_OAEP_PADDING', 4); +define('OPENSSL_CIPHER_RC2_40', 0); +define('OPENSSL_CIPHER_RC2_128', 1); +define('OPENSSL_CIPHER_RC2_64', 2); +define('OPENSSL_CIPHER_DES', 3); +define('OPENSSL_CIPHER_3DES', 4); +define('OPENSSL_KEYTYPE_RSA', 0); +define('OPENSSL_KEYTYPE_DSA', 1); +define('OPENSSL_KEYTYPE_DH', 2); +define('OPENSSL_KEYTYPE_EC', 3); + +/** + * Whether SNI support is available or not. + * @link https://php.net/manual/en/openssl.constants.php + */ +define('OPENSSL_TLSEXT_SERVER_NAME', 1); + +// End of openssl v. + +/** @link https://php.net/manual/en/openssl.ciphers.php */ +define('OPENSSL_CIPHER_AES_128_CBC', 5); +/** @link https://php.net/manual/en/openssl.ciphers.php */ +define('OPENSSL_CIPHER_AES_192_CBC', 6); +/** @link https://php.net/manual/en/openssl.ciphers.php */ +define('OPENSSL_CIPHER_AES_256_CBC', 7); +define('OPENSSL_RAW_DATA', 1); +define('OPENSSL_ZERO_PADDING', 2); +define('OPENSSL_DONT_ZERO_PAD_KEY', 4); + +/** + * @since 8.0 + */ +define('OPENSSL_CMS_DETACHED', 64); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_TEXT', 1); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_NOINTERN', 16); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_NOVERIFY', 32); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_NOCERTS', 2); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_NOATTR', 256); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_BINARY', 128); +/** + * @since 8.0 + */ +define('OPENSSL_CMS_NOSIGS', 12); +/** + * @since 8.0 + */ +define('OPENSSL_ENCODING_DER', 0); +/** + * @since 8.0 + */ +define('OPENSSL_ENCODING_SMIME', 1); +/** + * @since 8.0 + */ +define('OPENSSL_ENCODING_PEM', 2); + +define('OPENSSL_DEFAULT_STREAM_CIPHERS', "ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:" . +"ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:" . +"DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:" . +"ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:" . +"ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:" . +"DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:" . +"AES256-GCM-SHA384:AES128:AES256:HIGH:!SSLv2:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!RC4:!ADH"); + +/** + * @since 8.3 + */ +define('OPENSSL_CMS_OLDMIMETYPE', 1024); + +/** + * @since 8.0 + */ +final class OpenSSLCertificate +{ + /** + * Cannot directly construct OpenSSLCertificate, use openssl_x509_read() instead + * @see openssl_x509_read() + */ + private function __construct() {} +} + +/** + * @since 8.0 + */ +final class OpenSSLCertificateSigningRequest +{ + /** + * Cannot directly construct OpenSSLCertificateSigningRequest, use openssl_csr_new() instead + * @see openssl_csr_new() + */ + private function __construct() {} +} + +/** + * @since 8.0 + */ +final class OpenSSLAsymmetricKey +{ + /** + * Cannot directly construct OpenSSLAsymmetricKey, use openssl_pkey_new() instead + * @see openssl_pkey_new() + */ + private function __construct() {} +} diff --git a/phpstorm-stubs/opentelemetry/opentelemetry.php b/phpstorm-stubs/opentelemetry/opentelemetry.php new file mode 100644 index 0000000..5646448 --- /dev/null +++ b/phpstorm-stubs/opentelemetry/opentelemetry.php @@ -0,0 +1,23 @@ + + * The username to check. + * + * @param string $password+ * The user-supplied password to check. + *
+ * @param string $error+ * Output parameter to put any error messages in. + *
+ * @param bool $check_account_management+ * Call pam_acct_mgmt() to check account expiration and access. (Requires root access!) + *
+ * @param string $service_name+ * PAM service name to use. (Defaults to "php") + *
+ * @return bool Returns a bool when complete. If false, $error contains any error messages generated. + */ +#[Pure] +function pam_auth(string $username, string $password, string $error, bool $check_account_management = true, string $service_name = 'php') {} + +/** + * Change a password for a PAM unix account. + * + * @param string $username+ * The username to check. + *
+ * @param string $old_password+ * The current password for the account. + *
+ * @param string $new_password+ * The new password for the account. + *
+ * @param string $error+ * Output parameter to put any error messages in. + *
+ * @param string $service_name+ * PAM service name to use. (Defaults to "php") + *
+ * @return bool Returns a bool when complete. If false, $error contains any error messages generated. + */ +#[Pure] +function pam_chpass(string $username, string $old_password, string $new_password, string $error, string $service_name = 'php') {} diff --git a/phpstorm-stubs/parallel/parallel.php b/phpstorm-stubs/parallel/parallel.php new file mode 100644 index 0000000..6d10c81 --- /dev/null +++ b/phpstorm-stubs/parallel/parallel.php @@ -0,0 +1,45 @@ + + * The value of pid can be one of the following: + *| < -1 | + *+ * wait for any child process whose process group ID is equal to + * the absolute value of pid. + * | + *
| -1 | + *+ * wait for any child process; this is the same behaviour that + * the wait function exhibits. + * | + *
| 0 | + *+ * wait for any child process whose process group ID is equal to + * that of the calling process. + * | + *
| > 0 | + *+ * wait for the child whose process ID is equal to the value of + * pid. + * | + *
+ * Specifying -1 as the pid is + * equivalent to the functionality pcntl_wait provides + * (minus options). + *
+ * @param int &$status+ * pcntl_waitpid will store status information + * in the status parameter which can be + * evaluated using the following functions: + * pcntl_wifexited, + * pcntl_wifstopped, + * pcntl_wifsignaled, + * pcntl_wexitstatus, + * pcntl_wtermsig and + * pcntl_wstopsig. + *
+ * @param int $flags [optional]+ * The value of options is the value of zero + * or more of the following two global constants + * OR'ed together: + *
| WNOHANG | + *+ * return immediately if no child has exited. + * | + *
| WUNTRACED | + *+ * return for children which are stopped, and whose status has + * not been reported. + * | + *
+ * pcntl_wait will store status information + * in the status parameter which can be + * evaluated using the following functions: + * pcntl_wifexited, + * pcntl_wifstopped, + * pcntl_wifsignaled, + * pcntl_wexitstatus, + * pcntl_wtermsig and + * pcntl_wstopsig. + *
+ * @param int $flags [optional]+ * If wait3 is available on your system (mostly BSD-style systems), you can + * provide the optional flags parameter. If this + * parameter is not provided, wait will be used for the system call. If + * wait3 is not available, providing a value for flags + * will have no effect. The value of flags + * is the value of zero or more of the following two constants + * OR'ed together: + *
| WNOHANG | + *+ * Return immediately if no child has exited. + * | + *
| WUNTRACED | + *+ * Return for children which are stopped, and whose status has + * not been reported. + * | + *
+ * The signal number. + *
+ * @param callable|int $handler+ * The signal handler. This may be either a callable, which + * will be invoked to handle the signal, or either of the two global + * constants SIG_IGN or SIG_DFL, + * which will ignore the signal or restore the default signal handler + * respectively. + *
+ *+ * If a callable is given, it must implement the following + * signature: + *
+ *+ * voidhandler + * intsigno + * signo + * The signal being handled.
+ * @param bool $restart_syscalls [optional]+ * Specifies whether system call restarting should be used when this + * signal arrives. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pcntl_signal(int $signal, $handler, bool $restart_syscalls = true): bool {} + +/** + * Calls signal handlers for pending signals + * @link https://php.net/manual/en/function.pcntl-signal-dispatch.php + * @return bool TRUE on success or FALSE on failure. + */ +function pcntl_signal_dispatch(): bool {} + +/** + * Checks if status code represents a normal exit + * @link https://php.net/manual/en/function.pcntl-wifexited.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return bool TRUE if the child status code represents a normal exit, FALSE + * otherwise. + */ +#[Pure] +function pcntl_wifexited(int $status): bool {} + +/** + * Checks whether the child process is currently stopped + * @link https://php.net/manual/en/function.pcntl-wifstopped.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return bool TRUE if the child process which caused the return is + * currently stopped, FALSE otherwise. + */ +#[Pure] +function pcntl_wifstopped(int $status): bool {} + +/** + * Checks whether the status code represents a termination due to a signal + * @link https://php.net/manual/en/function.pcntl-wifsignaled.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return bool TRUE if the child process exited because of a signal which was + * not caught, FALSE otherwise. + */ +#[Pure] +function pcntl_wifsignaled(int $status): bool {} + +/** + * Returns the return code of a terminated child + * @link https://php.net/manual/en/function.pcntl-wexitstatus.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return int|false the return code, as an integer. + */ +#[Pure] +function pcntl_wexitstatus(int $status): int|false {} + +/** + * @param int $status + * @return bool + */ +#[Pure] +function pcntl_wifcontinued(int $status): bool {} + +/** + * Returns the signal which caused the child to terminate + * @link https://php.net/manual/en/function.pcntl-wtermsig.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return int|false the signal number, as an integer. + */ +#[Pure] +function pcntl_wtermsig(int $status): int|false {} + +/** + * Returns the signal which caused the child to stop + * @link https://php.net/manual/en/function.pcntl-wstopsig.php + * @param int $statusThe status + * parameter is the status parameter supplied to a successful + * call to pcntl_waitpid.
+ * @return int|false the signal number. + */ +#[Pure] +function pcntl_wstopsig(int $status): int|false {} + +/** + * Executes specified program in current process space + * @link https://php.net/manual/en/function.pcntl-exec.php + * @param string $path+ * path must be the path to a binary executable or a + * script with a valid path pointing to an executable in the shebang ( + * #!/usr/local/bin/perl for example) as the first line. See your system's + * man execve(2) page for additional information. + *
+ * @param array $args+ * args is an array of argument strings passed to the + * program. + *
+ * @param array $env_vars+ * envs is an array of strings which are passed as + * environment to the program. The array is in the format of name => value, + * the key being the name of the environmental variable and the value being + * the value of that variable. + *
+ * @return bool FALSE on error and does not return on success. + */ +function pcntl_exec(string $path, array $args = [], array $env_vars = []): bool {} + +/** + * Set an alarm clock for delivery of a signal + * @link https://php.net/manual/en/function.pcntl-alarm.php + * @param int $seconds+ * The number of seconds to wait. If seconds is + * zero, no new alarm is created. + *
+ * @return int the time in seconds that any previously scheduled alarm had + * remaining before it was to be delivered, or 0 if there + * was no previously scheduled alarm. + */ +function pcntl_alarm(int $seconds): int {} + +/** + * Retrieve the error number set by the last pcntl function which failed + * @link https://php.net/manual/en/function.pcntl-get-last-error.php + * @return int error code. + * @since 5.3.4 + */ +#[Pure(true)] +function pcntl_get_last_error(): int {} + +/** + * Alias of pcntl_get_last_error + * @link https://php.net/manual/en/function.pcntl-errno.php + * @return int error code. + * @since 5.3.4 + */ +#[Pure(true)] +function pcntl_errno(): int {} + +/** + * Retrieve the system error message associated with the given errno + * @link https://php.net/manual/en/function.pcntl-strerror.php + * @param int $error_code+ *
+ * @return string|false error description on success or FALSE on failure. + * @since 5.3.4 + */ +#[Pure] +#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")] +function pcntl_strerror(int $error_code): false|string {} + +/** + * Get the priority of any process + * @link https://php.net/manual/en/function.pcntl-getpriority.php + * @param int|null $process_id [optional]+ * If not specified, the pid of the current process (getmypid()) is used. + *
+ * @param int $mode [optional]+ * One of PRIO_PGRP, PRIO_USER + * or PRIO_PROCESS. + *
+ * @return int|false pcntl_getpriority returns the priority of the process + * or FALSE on error. A lower numerical value causes more favorable + * scheduling. + */ +#[Pure] +function pcntl_getpriority(?int $process_id, int $mode = PRIO_PROCESS): int|false {} + +/** + * Change the priority of any process + * @link https://php.net/manual/en/function.pcntl-setpriority.php + * @param int $priority+ * priority is generally a value in the range + * -20 to 20. The default priority + * is 0 while a lower numerical value causes more + * favorable scheduling. Because priority levels can differ between + * system types and kernel versions, please see your system's setpriority(2) + * man page for specific details. + *
+ * @param int|null $process_id [optional]+ * If not specified, the pid of the current process (getmypid()) is used. + *
+ * @param int $mode [optional]+ * One of PRIO_PGRP, PRIO_USER + * or PRIO_PROCESS. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pcntl_setpriority(int $priority, ?int $process_id, int $mode = PRIO_PROCESS): bool {} + +/** + * Sets and retrieves blocked signals + * @link https://php.net/manual/en/function.pcntl-sigprocmask.php + * @param int $mode+ * Sets the behavior of pcntl_sigprocmask. Possible + * values: + * SIG_BLOCK: Add the signals to the + * currently blocked signals. + * SIG_UNBLOCK: Remove the signals from the + * currently blocked signals. + * SIG_SETMASK: Replace the currently + * blocked signals by the given list of signals. + *
+ * @param array $signals+ * List of signals. + *
+ * @param array &$old_signals [optional]+ * The old_signals parameter is set to an array + * containing the list of the previously blocked signals. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pcntl_sigprocmask(int $mode, array $signals, &$old_signals): bool {} + +/** + * Waits for signals + * @link https://php.net/manual/en/function.pcntl-sigwaitinfo.php + * @param array $signals+ * Array of signals to wait for. + *
+ * @param array &$info+ * The info parameter is set to an array containing + * informations about the signal. + *
+ *+ * The following elements are set for all signals: + * signo: Signal number + * errno: An error number + * code: Signal code + *
+ *+ * The following elements may be set for the SIGCHLD signal: + * status: Exit value or signal + * utime: User time consumed + * stime: System time consumed + * pid: Sending process ID + * uid: Real user ID of sending process + *
+ *+ * The following elements may be set for the SIGILL, + * SIGFPE, SIGSEGV and + * SIGBUS signals: + * addr: Memory location which caused fault + *
+ *+ * The following element may be set for the SIGPOLL + * signal: + * band: Band event + * fd: File descriptor number + *
+ * @return int|false On success, pcntl_sigwaitinfo returns a signal number. + */ +function pcntl_sigwaitinfo(array $signals, &$info = []): int|false {} + +/** + * Waits for signals, with a timeout + * @link https://php.net/manual/en/function.pcntl-sigtimedwait.php + * @param array $signals+ * Array of signals to wait for. + *
+ * @param array &$info+ * The siginfo is set to an array containing + * informations about the signal. See + * pcntl_sigwaitinfo. + *
+ * @param int $seconds [optional]+ * Timeout in seconds. + *
+ * @param int $nanoseconds [optional]+ * Timeout in nanoseconds. + *
+ * @return int|false On success, pcntl_sigtimedwait returns a signal number. + */ +function pcntl_sigtimedwait(array $signals, &$info = [], int $seconds = 0, int $nanoseconds = 0): int|false {} + +/** + * Enable/disable asynchronous signal handling or return the old setting.+ * Whether asynchronous signal handling should be enabled. + *
+ * + * @return bool + * @since 7.1 + */ +function pcntl_async_signals( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] ?bool $enable, + #[PhpStormStubsElementAvailable(from: '8.0')] ?bool $enable = null +): bool {} + +/** + * Get the current handler for specified signal. + * @link https://www.php.net/manual/en/function.pcntl-signal-get-handler.php + * + * @param int $signal+ * The signal number. + *
+ * + * @return bool|resource + * @since 7.1 + */ +function pcntl_signal_get_handler(int $signal) {} + +/** + * @param int $flags + * @return bool + * @since 7.4 + */ +function pcntl_unshare(int $flags): bool {} + +define('WNOHANG', 1); +define('WUNTRACED', 2); +define('WCONTINUED', 8); +define('SIG_IGN', 1); +define('SIG_DFL', 0); +define('SIG_ERR', -1); +define('SIGHUP', 1); +define('SIGINT', 2); +define('SIGQUIT', 3); +define('SIGILL', 4); +define('SIGTRAP', 5); +define('SIGABRT', 6); +define('SIGIOT', 6); +define('SIGBUS', 7); +define('SIGFPE', 8); +define('SIGKILL', 9); +define('SIGUSR1', 10); +define('SIGSEGV', 11); +define('SIGUSR2', 12); +define('SIGPIPE', 13); +define('SIGALRM', 14); +define('SIGTERM', 15); +define('SIGSTKFLT', 16); +define('SIGCLD', 17); +define('SIGCHLD', 17); +define('SIGCONT', 18); +define('SIGSTOP', 19); +define('SIGTSTP', 20); +define('SIGTTIN', 21); +define('SIGTTOU', 22); +define('SIGURG', 23); +define('SIGXCPU', 24); +define('SIGXFSZ', 25); +define('SIGVTALRM', 26); +define('SIGPROF', 27); +define('SIGWINCH', 28); +define('SIGPOLL', 29); +define('SIGIO', 29); +define('SIGPWR', 30); +define('SIGSYS', 31); +define('SIGBABY', 31); +define('PRIO_PGRP', 1); +define('PRIO_USER', 2); +define('PRIO_PROCESS', 0); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SIG_BLOCK', 0); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SIG_UNBLOCK', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SIG_SETMASK', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SIGRTMIN', 35); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SIGRTMAX', 64); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_USER', 0); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_KERNEL', 128); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_QUEUE', -1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_TIMER', -2); +define('SI_MESGQ', -3); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_ASYNCIO', -4); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_SIGIO', -5); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SI_TKILL', -6); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_EXITED', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_KILLED', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_DUMPED', 3); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_TRAPPED', 4); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_STOPPED', 5); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('CLD_CONTINUED', 6); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('TRAP_BRKPT', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('TRAP_TRACE', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_IN', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_OUT', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_MSG', 3); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_ERR', 4); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_PRI', 5); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('POLL_HUP', 6); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_ILLOPC', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_ILLOPN', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_ILLADR', 3); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_ILLTRP', 4); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_PRVOPC', 5); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_PRVREG', 6); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_COPROC', 7); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('ILL_BADSTK', 8); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_INTDIV', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_INTOVF', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTDIV', 3); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTOVF', 4); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTUND', 5); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTRES', 6); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTINV', 7); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('FPE_FLTSUB', 8); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SEGV_MAPERR', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('SEGV_ACCERR', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('BUS_ADRALN', 1); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('BUS_ADRERR', 2); + +/** + * @link https://php.net/manual/en/pcntl.constants.php + */ +define('BUS_OBJERR', 3); +define('PCNTL_EINTR', 4); +define('PCNTL_ECHILD', 10); +define('PCNTL_EINVAL', 22); +define('PCNTL_EAGAIN', 11); +define('PCNTL_ESRCH', 3); +define('PCNTL_EACCES', 13); +define('PCNTL_EPERM', 1); +define('PCNTL_ENOMEM', 12); +define('PCNTL_E2BIG', 7); +define('PCNTL_EFAULT', 14); +define('PCNTL_EIO', 5); +define('PCNTL_EISDIR', 21); +define('PCNTL_ELIBBAD', 80); +define('PCNTL_ELOOP', 40); +define('PCNTL_EMFILE', 24); +define('PCNTL_ENAMETOOLONG', 36); +define('PCNTL_ENFILE', 23); +define('PCNTL_ENOENT', 2); +define('PCNTL_ENOEXEC', 8); +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); + +// End of pcntl v. diff --git a/phpstorm-stubs/pcov/pcov.php b/phpstorm-stubs/pcov/pcov.php new file mode 100644 index 0000000..76d49f4 --- /dev/null +++ b/phpstorm-stubs/pcov/pcov.php @@ -0,0 +1,67 @@ + + * Shall start recording coverage information + * @return void + */ + function start() {} + + /** + * (PHP >= 7.0, PECL pcov >= 1.0.0)+ * pcov\all shall collect coverage information for all files + * pcov\inclusive shall collect coverage information for the specified files + * pcov\exclusive shall collect coverage information for all but the specified files + *
+ * @param array $filter+ * path of files (realpath) that should be filtered + *
+ * @return array + */ + function collect(int $type = all, array $filter = []) {} + + /** + * (PHP >= 7.0, PECL pcov >= 1.0.0)+ * set true to clear file tables + * Note: clearing the file tables may have surprising consequences + *
+ * @return void + */ + function clear(bool $files = false) {} + + /** + * (PHP >= 7.0, PECL pcov >= 1.0.0)+ * The input string. + *
+ * @param string[] &$matches [optional]+ * If matches is provided, then it is filled with + * the results of search. $matches[0] will contain the + * text that matched the full pattern, $matches[1] + * will have the text that matched the first captured parenthesized + * subpattern, and so on. + *
+ * @param int $flags [optional]+ * flags can be the following flag: + * PREG_OFFSET_CAPTURE + *
+ * If this flag is passed, for every occurring match the appendant string + * offset will also be returned. Note that this changes the value of + * matches into an array where every element is an + * array consisting of the matched string at offset 0 + * and its string offset into subject at offset 1. + *+ * PREG_UNMATCHED_AS_NULL + *+ * + *+ * The above example will output: + *+ * Array + * ( + * [0] => Array + * ( + * [0] => foobarbaz + * [1] => 0 + * ) + * + * [1] => Array + * ( + * [0] => foo + * [1] => 0 + * ) + * + * [2] => Array + * ( + * [0] => bar + * [1] => 3 + * ) + * + * [3] => Array + * ( + * [0] => baz + * [1] => 6 + * ) + * + * ) + *+ *
+ * If this flag is passed, unmatched subpatterns are reported as NULL; + * otherwise they are reported as an empty string. + *+ * @param int $offset [optional]+ * + *+ * The above example will output: + *+ * array(4) { + * [0]=> + * string(2) "ac" + * [1]=> + * string(1) "a" + * [2]=> + * string(0) "" + * [3]=> + * string(1) "c" + * } + * array(4) { + * [0]=> + * string(2) "ac" + * [1]=> + * string(1) "a" + * [2]=> + * NULL + * [3]=> + * string(1) "c" + * } + *+ *
+ * Normally, the search starts from the beginning of the subject string. + * The optional parameter offset can be used to + * specify the alternate place from which to start the search (in bytes). + *
+ *+ * Using offset is not equivalent to passing + * substr($subject, $offset) to + * preg_match in place of the subject string, + * because pattern can contain assertions such as + * ^, $ or + * (?<=x). Compare: + *
+ * $subject = "abcdef"; + * $pattern = '/^def/'; + * preg_match($pattern, $subject, $matches, PREG_OFFSET_CAPTURE, 3); + * print_r($matches); + *+ * The above example will output: + *
+ * Array + * ( + * ) + *+ *
+ * while this example + *
+ *
+ * $subject = "abcdef";
+ * $pattern = '/^def/';
+ * preg_match($pattern, substr($subject,3), $matches, PREG_OFFSET_CAPTURE);
+ * print_r($matches);
+ *
+ * + * will produce + *
+ *+ * Array + * ( + * [0] => Array + * ( + * [0] => def + * [1] => 0 + * ) + * ) + *+ * Alternatively, to avoid using substr(), use the \G assertion rather + * than the ^ anchor, or the A modifier instead, both of which work with + * the offset parameter. + * + * @return int|false preg_match returns 1 if the pattern + * matches given subject, 0 if it does not, or FALSE + * if an error occurred. + */ +function preg_match(string $pattern, string $subject, &$matches, int $flags = 0, int $offset = 0): int|false {} + +/** + * Perform a global regular expression match + * @link https://php.net/manual/en/function.preg-match-all.php + * @param string $pattern
+ * The pattern to search for, as a string. + *
+ * @param string $subject+ * The input string. + *
+ * @param string[][] &$matches [optional]+ * Array of all matches in multi-dimensional array ordered according to flags. + *
+ * @param int $flags
+ * Can be a combination of the following flags (note that it doesn't make
+ * sense to use PREG_PATTERN_ORDER together with
+ * PREG_SET_ORDER):
+ * PREG_PATTERN_ORDER
+ *
+ * Orders results so that $matches[0] is an array of full
+ * pattern matches, $matches[1] is an array of strings matched by
+ * the first parenthesized subpattern, and so on.
+ *
+ * Normally, the search starts from the beginning of the subject string. + * The optional parameter offset can be used to + * specify the alternate place from which to start the search (in bytes). + *
+ *+ * Using offset is not equivalent to passing + * substr($subject, $offset) to + * preg_match_all in place of the subject string, + * because pattern can contain assertions such as + * ^, $ or + * (?<=x). See preg_match + * for examples. + *
+ *
+ *
+ * preg_match_all("|]+>(.*)]+>|U",
+ * "example: this is a test",
+ * $out, PREG_PATTERN_ORDER);
+ * echo $out[0][0] . ", " . $out[0][1] . "\n";
+ * echo $out[1][0] . ", " . $out[1][1] . "\n";
+ *
+ * The above example will output:
+ * example: , this is a test + * example: , this is a test + *+ *
+ * So, $out[0] contains array of strings that matched full pattern, + * and $out[1] contains array of strings enclosed by tags. + *
+ * @return int|false|null the number of full pattern matches (which might be zero), + * or FALSE if an error occurred. + */ +#[LanguageLevelTypeAware(['8.0' => 'int|false'], default: 'int|false|null')] +function preg_match_all(string $pattern, string $subject, &$matches, int $flags = 0, int $offset = 0) {} + +/** + * Perform a regular expression search and replace + * @link https://php.net/manual/en/function.preg-replace.php + * @param string|string[] $pattern+ * The pattern to search for. It can be either a string or an array with + * strings. + *
+ *+ * Several PCRE modifiers + * are also available, including the deprecated 'e' + * (PREG_REPLACE_EVAL), which is specific to this function. + *
+ * @param string|string[] $replacement+ * The string or an array with strings to replace. If this parameter is a + * string and the pattern parameter is an array, + * all patterns will be replaced by that string. If both + * pattern and replacement + * parameters are arrays, each pattern will be + * replaced by the replacement counterpart. If + * there are fewer elements in the replacement + * array than in the pattern array, any extra + * patterns will be replaced by an empty string. + *
+ *+ * replacement may contain references of the form + * \\n or (since PHP 4.0.4) + * $n, with the latter form + * being the preferred one. Every such reference will be replaced by the text + * captured by the n'th parenthesized pattern. + * n can be from 0 to 99, and + * \\0 or $0 refers to the text matched + * by the whole pattern. Opening parentheses are counted from left to right + * (starting from 1) to obtain the number of the capturing subpattern. + * To use backslash in replacement, it must be doubled + * ("\\\\" PHP string). + *
+ *+ * When working with a replacement pattern where a backreference is + * immediately followed by another number (i.e.: placing a literal number + * immediately after a matched pattern), you cannot use the familiar + * \\1 notation for your backreference. + * \\11, for example, would confuse + * preg_replace since it does not know whether you + * want the \\1 backreference followed by a literal + * 1, or the \\11 backreference + * followed by nothing. In this case the solution is to use + * \${1}1. This creates an isolated + * $1 backreference, leaving the 1 + * as a literal. + *
+ *+ * When using the deprecated e modifier, this function escapes + * some characters (namely ', ", + * \ and NULL) in the strings that replace the + * backreferences. This is done to ensure that no syntax errors arise + * from backreference usage with either single or double quotes (e.g. + * 'strlen(\'$1\')+strlen("$2")'). Make sure you are + * aware of PHP's string + * syntax to know exactly how the interpreted string will look. + *
+ * @param string|string[] $subject+ * The string or an array with strings to search and replace. + *
+ *+ * If subject is an array, then the search and + * replace is performed on every entry of subject, + * and the return value is an array as well. + *
+ * @param int $limit [optional]+ * The maximum possible replacements for each pattern in each + * subject string. Defaults to + * -1 (no limit). + *
+ * @param int &$count [optional]+ * If specified, this variable will be filled with the number of + * replacements done. + *
+ * @return string|string[]|null preg_replace returns an array if the + * subject parameter is an array, or a string + * otherwise. + * + *+ * If matches are found, the new subject will + * be returned, otherwise subject will be + * returned unchanged or NULL if an error occurred. + */ +function preg_replace(array|string $pattern, array|string $replacement, array|string $subject, int $limit = -1, &$count): array|string|null {} + +/** + * Perform a regular expression search and replace using a callback + * @link https://php.net/manual/en/function.preg-replace-callback.php + * @param string|string[] $pattern
+ * The pattern to search for. It can be either a string or an array with + * strings. + *
+ * @param callable $callback+ * A callback that will be called and passed an array of matched elements + * in the subject string. The callback should + * return the replacement string. This is the callback signature: + *
+ *+ * stringhandler + * arraymatches + *
+ *+ * You'll often need the callback function + * for a preg_replace_callback in just one place. + * In this case you can use an + * anonymous function to + * declare the callback within the call to + * preg_replace_callback. By doing it this way + * you have all information for the call in one place and do not + * clutter the function namespace with a callback function's name + * not used anywhere else. + *
+ *
+ * preg_replace_callback and
+ * anonymous function
+ * \s*\w|',
+ * function ($matches) {
+ * return strtolower($matches[0]);
+ * },
+ * $line
+ * );
+ * echo $line;
+ * }
+ * fclose($fp);
+ *
+ * /* a unix-style command line filter to convert uppercase
+ * * letters at the beginning of paragraphs to lowercase * /
+ * $fp = fopen("php://stdin", "r") or die("can't read stdin");
+ * while (!feof($fp)) {
+ * $line = fgets($fp);
+ * $line = preg_replace_callback(
+ * '|
+ *
+ * The string or an array with strings to search and replace. + *
+ * @param int $limit [optional]+ * The maximum possible replacements for each pattern in each + * subject string. Defaults to + * -1 (no limit). + *
+ * @param int &$count [optional]+ * If specified, this variable will be filled with the number of + * replacements done. + *
+ * @param int $flags [optional] + * @return string|string[]|null preg_replace_callback returns an array if the + * subject parameter is an array, or a string + * otherwise. On errors the return value is NULL + * + *+ * If matches are found, the new subject will be returned, otherwise + * subject will be returned unchanged. + */ +function preg_replace_callback( + array|string $pattern, + callable $callback, + array|string $subject, + int $limit = -1, + &$count, + #[PhpStormStubsElementAvailable(from: '7.4')] int $flags = 0 +): array|string|null {} + +/** + * Perform a regular expression search and replace using callbacks + * @link https://php.net/manual/en/function.preg-replace-callback-array.php + * @param callable[] $pattern An associative array mapping patterns (keys) to callbacks (values) + * @param string|string[] $subject + * @param int $limit [optional] + * @param int &$count [optional] + * @param int $flags [optional] + * @return string|string[]|null
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
+ *If matches are found, the new subject will be returned, otherwise subject will be returned unchanged.
+ */ +function preg_replace_callback_array( + array $pattern, + array|string $subject, + int $limit = -1, + &$count, + #[PhpStormStubsElementAvailable(from: '7.4')] int $flags = 0 +): array|string|null {} + +/** + * Perform a regular expression search and replace + * @link https://php.net/manual/en/function.preg-filter.php + * @param string|string[] $pattern + * @param string|string[] $replacement + * @param string|string[] $subject + * @param int $limit [optional] + * @param int &$count [optional] + * @return string|string[]|null an array if the subject + * parameter is an array, or a string otherwise. + * + *+ * If no matches are found or an error occurred, an empty array + * is returned when subject is an array + * or NULL otherwise. + */ +function preg_filter(array|string $pattern, array|string $replacement, array|string $subject, int $limit = -1, &$count): array|string|null {} + +/** + * Split string by a regular expression + * @link https://php.net/manual/en/function.preg-split.php + * @param string $pattern
+ * The pattern to search for, as a string. + *
+ * @param string $subject+ * The input string. + *
+ * @param int $limit [optional]+ * If specified, then only substrings up to limit + * are returned with the rest of the string being placed in the last + * substring. A limit of -1, 0 or NULL means "no limit" + * and, as is standard across PHP, you can use NULL to skip to the + * flags parameter. + *
+ * @param int $flags [optional]+ * flags can be any combination of the following + * flags (combined with the | bitwise operator): + * PREG_SPLIT_NO_EMPTY + * If this flag is set, only non-empty pieces will be returned by + * preg_split. + *
+ * @return string[]|false an array containing substrings of subject + * split along boundaries matched by pattern, or FALSE + * if an error occurred. + */ +#[Pure] +function preg_split(string $pattern, string $subject, int $limit = -1, int $flags = 0): array|false {} + +/** + * Quote regular expression characters + * @link https://php.net/manual/en/function.preg-quote.php + * @param string $str+ * The input string. + *
+ * @param string|null $delimiter [optional]+ * If the optional delimiter is specified, it + * will also be escaped. This is useful for escaping the delimiter + * that is required by the PCRE functions. The / is the most commonly + * used delimiter. + *
+ * @return string the quoted (escaped) string. + */ +#[Pure] +function preg_quote(string $str, ?string $delimiter = null): string {} + +/** + * Return array entries that match the pattern + * @link https://php.net/manual/en/function.preg-grep.php + * @param string $pattern+ * The pattern to search for, as a string. + *
+ * @param array $array+ * The input array. + *
+ * @param int $flags [optional]+ * If set to PREG_GREP_INVERT, this function returns + * the elements of the input array that do not match + * the given pattern. + *
+ * @return array|false an array indexed using the keys from the + * input array or false when pattern cannot be compiled. + */ +#[Pure] +function preg_grep(string $pattern, array $array, int $flags = 0): array|false {} + +/** + * Returns the error code of the last PCRE regex execution + * @link https://php.net/manual/en/function.preg-last-error.php + * @return int one of the following constants (explained on their own page): + * PREG_NO_ERROR + * PREG_INTERNAL_ERROR + * PREG_BACKTRACK_LIMIT_ERROR (see also pcre.backtrack_limit) + * PREG_RECURSION_LIMIT_ERROR (see also pcre.recursion_limit) + * PREG_BAD_UTF8_ERROR + * PREG_BAD_UTF8_OFFSET_ERROR (since PHP 5.3.0) + */ +#[Pure(true)] +function preg_last_error(): int {} + +/** + * Returns the error message of the last PCRE regex execution + * + * @return string one of the error messages or "No error" if there is no error. + * @since 8.0 + */ +#[Pure(true)] +function preg_last_error_msg(): string {} + +/** + * Orders results so that $matches[0] is an array of full pattern + * matches, $matches[1] is an array of strings matched by the first + * parenthesized subpattern, and so on. This flag is only used with + * preg_match_all. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_PATTERN_ORDER', 1); + +/** + * Returned by {@see preg_last_error()} if the last PCRE function failed due to limited JIT stack space. + * @since 7.0 + */ +define('PREG_JIT_STACKLIMIT_ERROR', 6); +/** + * Orders results so that $matches[0] is an array of first set of + * matches, $matches[1] is an array of second set of matches, and so + * on. This flag is only used with preg_match_all. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_SET_ORDER', 2); + +/** + * See the description of + * PREG_SPLIT_OFFSET_CAPTURE. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_OFFSET_CAPTURE', 256); + +/** + * This flag tells preg_split to return only non-empty + * pieces. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_SPLIT_NO_EMPTY', 1); + +/** + * This flag tells preg_split to capture + * parenthesized expression in the delimiter pattern as well. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_SPLIT_DELIM_CAPTURE', 2); + +/** + * If this flag is set, for every occurring match the appendant string + * offset will also be returned. Note that this changes the return + * values in an array where every element is an array consisting of the + * matched string at offset 0 and its string offset within subject at + * offset 1. This flag is only used for preg_split. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_SPLIT_OFFSET_CAPTURE', 4); +define('PREG_GREP_INVERT', 1); + +/** + * Returned by preg_last_error if there were no + * errors. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_NO_ERROR', 0); + +/** + * Returned by preg_last_error if there was an + * internal PCRE error. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_INTERNAL_ERROR', 1); + +/** + * Returned by preg_last_error if backtrack limit was exhausted. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_BACKTRACK_LIMIT_ERROR', 2); + +/** + * Returned by preg_last_error if recursion limit was exhausted. + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_RECURSION_LIMIT_ERROR', 3); + +/** + * Returned by preg_last_error if the last error was + * caused by malformed UTF-8 data (only when running a regex in UTF-8 mode). + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_BAD_UTF8_ERROR', 4); + +/** + * Returned by preg_last_error if the offset didn't + * correspond to the begin of a valid UTF-8 code point (only when running + * a regex in UTF-8 + * mode). + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PREG_BAD_UTF8_OFFSET_ERROR', 5); + +/** + * This flag tells {@see preg_match()} and {@see preg_match_all()} + * to include unmatched subpatterns in $matches as NULL values. + * Without this flag, unmatched subpatterns are reported as empty strings, + * as if they were empty matches. Setting this flag allows to distinguish between these two cases. + * @since 7.2 + */ +define('PREG_UNMATCHED_AS_NULL', 512); +/** + * PCRE version and release date (e.g. "7.0 18-Dec-2006"). + * @link https://php.net/manual/en/pcre.constants.php + */ +define('PCRE_VERSION', "8.31 2012-07-06"); + +/** + * @since 7.3 + */ +define('PCRE_VERSION_MAJOR', 10); + +/** + * @since 7.3 + */ +define('PCRE_VERSION_MINOR', 42); + +/** + * @since 7.3 + */ +define('PCRE_JIT_SUPPORT', 1); +// End of pcre v. diff --git a/phpstorm-stubs/pdflib/PDFlib.php b/phpstorm-stubs/pdflib/PDFlib.php new file mode 100644 index 0000000..4012e18 --- /dev/null +++ b/phpstorm-stubs/pdflib/PDFlib.php @@ -0,0 +1,3481 @@ + + * The connection_string can be empty to use all default parameters, or it + * can contain one or more parameter settings separated by whitespace. + * Each parameter setting is in the form keyword = value. Spaces around + * the equal sign are optional. To write an empty value or a value + * containing spaces, surround it with single quotes, e.g., keyword = + * 'a value'. Single quotes and backslashes within the value must be + * escaped with a backslash, i.e., \' and \\. + * + *+ * The currently recognized parameter keywords are: + * host, hostaddr, port, + * dbname (defaults to value of user), + * user, + * password, connect_timeout, + * options, tty (ignored), sslmode, + * requiressl (deprecated in favor of sslmode), and + * service. Which of these arguments exist depends + * on your PostgreSQL version. + *
+ *+ * The options parameter can be used to set command line parameters + * to be invoked by the server. + *
+ * @param int $flags+ * If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection + * is created, even if the connection_string is identical to + * an existing connection. + *
+ * @return resource|false PostgreSQL connection resource on success, FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|false'], default: 'resource|false')] +function pg_connect( + string $connection_string, + int $flags = 0, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $host = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $port = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $options = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $tty = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $dbname = '', +) {} + +/** + * Open a persistent PostgreSQL connection + * @link https://php.net/manual/en/function.pg-pconnect.php + * @param string $connection_string+ * The connection_string can be empty to use all default parameters, or it + * can contain one or more parameter settings separated by whitespace. + * Each parameter setting is in the form keyword = value. Spaces around + * the equal sign are optional. To write an empty value or a value + * containing spaces, surround it with single quotes, e.g., keyword = + * 'a value'. Single quotes and backslashes within the value must be + * escaped with a backslash, i.e., \' and \\. + *
+ *+ * The currently recognized parameter keywords are: + * host, hostaddr, port, + * dbname, user, + * password, connect_timeout, + * options, tty (ignored), sslmode, + * requiressl (deprecated in favor of sslmode), and + * service. Which of these arguments exist depends + * on your PostgreSQL version. + *
+ * @param int $flags+ * If PGSQL_CONNECT_FORCE_NEW is passed, then a new connection + * is created, even if the connection_string is identical to + * an existing connection. + *
+ * @return resource|false PostgreSQL connection resource on success, FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|false'], default: 'resource|false')] +function pg_pconnect( + string $connection_string, + #[PhpStormStubsElementAvailable(from: '8.0')] int $flags = 0, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $host = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $port = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $options = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $tty = '', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $dbname = '', +) {} + +/** + * Closes a PostgreSQL connection + * @link https://php.net/manual/en/function.pg-close.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function pg_close(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null) {} + +/** + * Poll the status of an in-progress asynchronous PostgreSQL connection attempt. + * @link https://php.net/manual/en/function.pg-connect-poll.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return int PGSQL_POLLING_FAILED, PGSQL_POLLING_READING, PGSQL_POLLING_WRITING, + * PGSQL_POLLING_OK, or PGSQL_POLLING_ACTIVE. + * @since 5.6 + */ +function pg_connect_poll( + #[PhpStormStubsElementAvailable(from: '5.6', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection +): int {} + +/** + * Get connection status + * @link https://php.net/manual/en/function.pg-connection-status.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return int PGSQL_CONNECTION_OK or + * PGSQL_CONNECTION_BAD. + */ +function pg_connection_status(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): int {} + +/** + * Get connection is busy or not + * @link https://php.net/manual/en/function.pg-connection-busy.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return bool TRUE if the connection is busy, FALSE otherwise. + */ +function pg_connection_busy(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): bool {} + +/** + * Reset connection (reconnect) + * @link https://php.net/manual/en/function.pg-connection-reset.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_connection_reset(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): bool {} + +/** + * Get a read only handle to the socket underlying a PostgreSQL connection + * @link https://php.net/manual/en/function.pg-socket.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return resource|false A socket resource on success or FALSE on failure. + * @since 5.6 + */ +function pg_socket(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection) {} + +/** + * Returns the host name associated with the connection + * @link https://php.net/manual/en/function.pg-host.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string|false A string containing the name of the host the + * connection is to, or FALSE on error. + */ +function pg_host(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Get the database name + * @link https://php.net/manual/en/function.pg-dbname.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string|false A string containing the name of the database the + * connection is to, or FALSE on error. + */ +function pg_dbname(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Return the port number associated with the connection + * @link https://php.net/manual/en/function.pg-port.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string A string containing the port number of the database server the connection is to, or empty string on error. + */ +function pg_port(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Return the TTY name associated with the connection + * @link https://php.net/manual/en/function.pg-tty.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string A string containing the debug TTY of + * the connection, or FALSE on error. + */ +function pg_tty(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Get the options associated with the connection + * @link https://php.net/manual/en/function.pg-options.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string A string containing the connection + * options, or FALSE on error. + */ +function pg_options(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Returns an array with client, protocol and server version (when available) + * @link https://php.net/manual/en/function.pg-version.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return array an array with client, protocol + * and server keys and values (if available). Returns + * FALSE on error or invalid connection. + */ +#[ArrayShape(["client" => "string", "protocol" => "int", "server" => "string"])] +function pg_version(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): array {} + +/** + * Ping database connection + * @link https://php.net/manual/en/function.pg-ping.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_ping(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): bool {} + +/** + * Looks up a current parameter setting of the server. + * @link https://php.net/manual/en/function.pg-parameter-status.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $name [optional]+ * Possible param_name values include server_version, + * server_encoding, client_encoding, + * is_superuser, session_authorization, + * DateStyle, TimeZone, and + * integer_datetimes. + *
+ * @return string|false A string containing the value of the parameter, FALSE on failure or invalid + * param_name. + */ +function pg_parameter_status(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, string $name): string|false {} + +/** + * Returns the current in-transaction status of the server. + * @link https://php.net/manual/en/function.pg-transaction-status.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return int The status can be PGSQL_TRANSACTION_IDLE (currently idle), + * PGSQL_TRANSACTION_ACTIVE (a command is in progress), + * PGSQL_TRANSACTION_INTRANS (idle, in a valid transaction block), + * or PGSQL_TRANSACTION_INERROR (idle, in a failed transaction block). + * PGSQL_TRANSACTION_UNKNOWN is reported if the connection is bad. + * PGSQL_TRANSACTION_ACTIVE is reported only when a query + * has been sent to the server and not yet completed. + */ +function pg_transaction_status(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): int {} + +/** + * Execute a query + * @link https://php.net/manual/en/function.pg-query.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $query [optional]+ * The SQL statement or statements to be executed. When multiple statements are passed to the function, + * they are automatically executed as one transaction, unless there are explicit BEGIN/COMMIT commands + * included in the query string. However, using multiple transactions in one function call is not recommended. + *
+ *+ * String interpolation of user-supplied data is extremely dangerous and is + * likely to lead to SQL + * injection vulnerabilities. In most cases + * pg_query_params should be preferred, passing + * user-supplied values as parameters rather than substituting them into + * the query string. + *
+ *+ * Any user-supplied data substituted directly into a query string should + * be properly escaped. + *
+ * @return resource|false A query result resource on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_query( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $query +) {} + +/** + * Submits a command to the server and waits for the result, with the ability to pass parameters separately from the SQL command text. + * @link https://php.net/manual/en/function.pg-query-params.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $query+ * The parameterized SQL statement. Must contain only a single statement. + * (multiple statements separated by semi-colons are not allowed.) If any parameters + * are used, they are referred to as $1, $2, etc. + *
+ *+ * User-supplied values should always be passed as parameters, not + * interpolated into the query string, where they form possible + * SQL injection + * attack vectors and introduce bugs when handling data containing quotes. + * If for some reason you cannot use a parameter, ensure that interpolated + * values are properly escaped. + *
+ * @param array $params [optional]+ * An array of parameter values to substitute for the $1, $2, etc. placeholders + * in the original prepared query string. The number of elements in the array + * must match the number of placeholders. + *
+ *+ * Values intended for bytea fields are not supported as + * parameters. Use pg_escape_bytea instead, or use the + * large object functions. + *
+ * @return resource|false A query result resource on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_query_params( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $query = '', + #[PhpStormStubsElementAvailable(from: '8.0')] $query, + array $params +) {} + +/** + * Submits a request to create a prepared statement with the + * given parameters, and waits for completion. + * @link https://php.net/manual/en/function.pg-prepare.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $statement_name+ * The name to give the prepared statement. Must be unique per-connection. If + * "" is specified, then an unnamed statement is created, overwriting any + * previously defined unnamed statement. + *
+ * @param string $query [optional]+ * The parameterized SQL statement. Must contain only a single statement. + * (multiple statements separated by semi-colons are not allowed.) If any parameters + * are used, they are referred to as $1, $2, etc. + *
+ * @return resource|false A query result resource on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_prepare( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $statement_name = '', + #[PhpStormStubsElementAvailable(from: '8.0')] string $statement_name, + string $query +) {} + +/** + * Sends a request to execute a prepared statement with given parameters, and waits for the result. + * @link https://php.net/manual/en/function.pg-execute.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $statement_name+ * The name of the prepared statement to execute. if + * "" is specified, then the unnamed statement is executed. The name must have + * been previously prepared using pg_prepare, + * pg_send_prepare or a PREPARE SQL + * command. + *
+ * @param array $params [optional]+ * An array of parameter values to substitute for the $1, $2, etc. placeholders + * in the original prepared query string. The number of elements in the array + * must match the number of placeholders. + *
+ *+ * Elements are converted to strings by calling this function. + *
+ * @return resource|false A query result resource on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_execute( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] string $statement_name = '', + #[PhpStormStubsElementAvailable(from: '8.0')] $statement_name, + array $params +) {} + +/** + * Sends asynchronous query + * @link https://php.net/manual/en/function.pg-send-query.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $query+ * The SQL statement or statements to be executed. + *
+ *+ * Data inside the query should be properly escaped. + *
+ * @return int|bool TRUE on success or FALSE on failure. + *+ * Use pg_get_result to determine the query result. + */ +function pg_send_query( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $query +): int|bool {} + +/** + * Submits a command and separate parameters to the server without waiting for the result(s). + * @link https://php.net/manual/en/function.pg-send-query-params.php + * @param resource $connection
+ * PostgreSQL database connection resource. + *
+ * @param string $query+ * The parameterized SQL statement. Must contain only a single statement. + * (multiple statements separated by semi-colons are not allowed.) If any parameters + * are used, they are referred to as $1, $2, etc. + *
+ * @param array $params+ * An array of parameter values to substitute for the $1, $2, etc. placeholders + * in the original prepared query string. The number of elements in the array + * must match the number of placeholders. + *
+ * @return int|bool TRUE on success or FALSE on failure. + *+ * Use pg_get_result to determine the query result. + */ +function pg_send_query_params( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $query, + array $params +): int|bool {} + +/** + * Sends a request to create a prepared statement with the given parameters, without waiting for completion. + * @link https://php.net/manual/en/function.pg-send-prepare.php + * @param resource $connection
+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $statement_name+ * The name to give the prepared statement. Must be unique per-connection. If + * "" is specified, then an unnamed statement is created, overwriting any + * previously defined unnamed statement. + *
+ * @param string $query+ * The parameterized SQL statement. Must contain only a single statement. + * (multiple statements separated by semi-colons are not allowed.) If any parameters + * are used, they are referred to as $1, $2, etc. + *
+ * @return int|bool TRUE on success, FALSE on failure. Use pg_get_result + * to determine the query result. + */ +function pg_send_prepare( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $statement_name, + string $query +): int|bool {} + +/** + * Sends a request to execute a prepared statement with given parameters, without waiting for the result(s). + * @link https://php.net/manual/en/function.pg-send-execute.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $statement_name+ * The name of the prepared statement to execute. if + * "" is specified, then the unnamed statement is executed. The name must have + * been previously prepared using pg_prepare, + * pg_send_prepare or a PREPARE SQL + * command. + *
+ * @param array $params+ * An array of parameter values to substitute for the $1, $2, etc. placeholders + * in the original prepared query string. The number of elements in the array + * must match the number of placeholders. + *
+ * @return int|bool TRUE on success, FALSE on failure. Use pg_get_result + * to determine the query result. + */ +function pg_send_execute( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $statement_name, + array $params +): int|bool {} + +/** + * Cancel an asynchronous query + * @link https://php.net/manual/en/function.pg-cancel-query.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_cancel_query(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): bool {} + +/** + * Returns values from a result resource + * @link https://php.net/manual/en/function.pg-fetch-result.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row+ * Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, + * next row is fetched. + *
+ * @param mixed $field [optional]+ * A string representing the name of the field (column) to fetch, otherwise + * an int representing the field number to fetch. Fields are + * numbered from 0 upwards. + *
+ * @return string|false|null Boolean is returned as "t" or "f". All + * other types, including arrays are returned as strings formatted + * in the same default PostgreSQL manner that you would see in the + * psql program. Database NULL + * values are returned as NULL. + * + *+ * FALSE is returned if row exceeds the number + * of rows in the set, or on any other error. + */ +function pg_fetch_result( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $row = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + string|int $field +): string|false|null {} + +/** + * Get a row as an enumerated array + * @link https://php.net/manual/en/function.pg-fetch-row.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row [optional]+ * Row number in result to fetch. Rows are numbered from 0 upwards. If + * omitted or NULL, the next row is fetched. + *
+ * @param int $mode [optional] + * @return array|false An array, indexed from 0 upwards, with each value + * represented as a string. Database NULL + * values are returned as NULL. + * + *+ * FALSE is returned if row exceeds the number + * of rows in the set, there are no more rows, or on any other error. + */ +function pg_fetch_row(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, ?int $row = null, int $mode = 2): array|false {} + +/** + * Fetch a row as an associative array + * @link https://php.net/manual/en/function.pg-fetch-assoc.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row [optional]+ * Row number in result to fetch. Rows are numbered from 0 upwards. If + * omitted or NULL, the next row is fetched. + *
+ * @return array|false An array indexed associatively (by field name). + * Each value in the array is represented as a + * string. Database NULL + * values are returned as NULL. + * + *+ * FALSE is returned if row exceeds the number + * of rows in the set, there are no more rows, or on any other error. + */ +function pg_fetch_assoc(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, ?int $row = null): array|false {} + +/** + * Fetch a row as an array + * @link https://php.net/manual/en/function.pg-fetch-array.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row [optional]+ * Row number in result to fetch. Rows are numbered from 0 upwards. If + * omitted or NULL, the next row is fetched. + *
+ * @param int $mode [optional]+ * An optional parameter that controls + * how the returned array is indexed. + * result_type is a constant and can take the + * following values: PGSQL_ASSOC, + * PGSQL_NUM and PGSQL_BOTH. + * Using PGSQL_NUM, pg_fetch_array + * will return an array with numerical indices, using + * PGSQL_ASSOC it will return only associative indices + * while PGSQL_BOTH, the default, will return both + * numerical and associative indices. + *
+ * @return array|false An array indexed numerically (beginning with 0) or + * associatively (indexed by field name), or both. + * Each value in the array is represented as a + * string. Database NULL + * values are returned as NULL. + * + *+ * FALSE is returned if row exceeds the number + * of rows in the set, there are no more rows, or on any other error. + */ +function pg_fetch_array(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, ?int $row = null, int $mode = PGSQL_BOTH): array|false {} + +/** + * Fetch a row as an object + * @link https://php.net/manual/en/function.pg-fetch-object.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int|null $row [optional]+ * Row number in result to fetch. Rows are numbered from 0 upwards. If + * omitted or NULL, the next row is fetched. + *
+ * @param string $class [optional]+ * Ignored and deprecated. + *
+ * @param array $constructor_args [optional]+ *
+ * @return object|false An object with one attribute for each field + * name in the result. Database NULL + * values are returned as NULL. + * + *+ * FALSE is returned if row exceeds the number + * of rows in the set, there are no more rows, or on any other error. + */ +function pg_fetch_object( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + ?int $row = null, + string $class = 'stdClass', + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $l = null, + array $constructor_args = [] +): object|false {} + +/** + * Fetches all rows from a result as an array + * @link https://php.net/manual/en/function.pg-fetch-all.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $mode [optional]+ * An optional parameter that controls + * how the returned array is indexed. + * result_type is a constant and can take the + * following values: PGSQL_ASSOC, + * PGSQL_NUM and PGSQL_BOTH. + * Using PGSQL_NUM, pg_fetch_array + * will return an array with numerical indices, using + * PGSQL_ASSOC it will return only associative indices + * while PGSQL_BOTH, the default, will return both + * numerical and associative indices. + *
+ * @return array|false An array with all rows in the result. Each row is an array + * of field values indexed by field name. + * + *+ * FALSE is returned if there are no rows in the result, or on any + * other error. + */ +#[LanguageLevelTypeAware(['8.0' => 'array'], default: 'array|false')] +function pg_fetch_all(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $mode = PGSQL_ASSOC) {} + +/** + * Fetches all rows in a particular result column as an array + * @link https://php.net/manual/en/function.pg-fetch-all-columns.php + * @param resource $result
+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field [optional]+ * Column number, zero-based, to be retrieved from the result resource. Defaults + * to the first column if not specified. + *
+ * @return array An array with all values in the result column. + *+ * FALSE is returned if column is larger than the number + * of columns in the result, or on any other error. + *
+ */ +function pg_fetch_all_columns(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field = 0): array {} + +/** + * Returns number of affected records (tuples) + * @link https://php.net/manual/en/function.pg-affected-rows.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return int The number of rows affected by the query. If no tuple is + * affected, it will return 0. + */ +function pg_affected_rows(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} + +/** + * Get asynchronous query result + * @link https://php.net/manual/en/function.pg-get-result.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return resource|false The result resource, or FALSE if no more results are available. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_get_result(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection) {} + +/** + * Set internal row offset in result resource + * @link https://php.net/manual/en/function.pg-result-seek.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row+ * Row to move the internal offset to in the result resource. + * Rows are numbered starting from zero. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_result_seek(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $row): bool {} + +/** + * Get status of query result + * @link https://php.net/manual/en/function.pg-result-status.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $mode [optional]+ * Either PGSQL_STATUS_LONG to return the numeric status + * of the result, or PGSQL_STATUS_STRING + * to return the command tag of the result. + * If not specified, PGSQL_STATUS_LONG is the default. + *
+ * @return string|int Possible return values are PGSQL_EMPTY_QUERY, + * PGSQL_COMMAND_OK, PGSQL_TUPLES_OK, PGSQL_COPY_OUT, + * PGSQL_COPY_IN, PGSQL_BAD_RESPONSE, PGSQL_NONFATAL_ERROR and + * PGSQL_FATAL_ERROR if PGSQL_STATUS_LONG is + * specified. Otherwise, a string containing the PostgreSQL command tag is returned. + */ +function pg_result_status(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $mode = PGSQL_STATUS_LONG): string|int {} + +/** + * Free result memory + * @link https://php.net/manual/en/function.pg-free-result.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_free_result(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): bool {} + +/** + * Returns the last row's OID + * @link https://php.net/manual/en/function.pg-last-oid.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return string|int|false A string containing the OID assigned to the most recently inserted + * row in the specified connection, or FALSE on error or + * no available OID. + */ +function pg_last_oid(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): string|int|false {} + +/** + * Returns the number of rows in a result + * @link https://php.net/manual/en/function.pg-num-rows.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return int The number of rows in the result. On error, -1 is returned. + */ +function pg_num_rows(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} + +/** + * Returns the number of fields in a result + * @link https://php.net/manual/en/function.pg-num-fields.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return int The number of fields (columns) in the result. On error, -1 is returned. + */ +function pg_num_fields(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} + +/** + * Returns the name of a field + * @link https://php.net/manual/en/function.pg-field-name.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field+ * Field number, starting from 0. + *
+ * @return string|false The field name, or FALSE on error. + */ +function pg_field_name(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {} + +/** + * Returns the field number of the named field + * @link https://php.net/manual/en/function.pg-field-num.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param string $field+ * The name of the field. + *
+ * @return int The field number (numbered from 0), or -1 on error. + */ +function pg_field_num(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, string $field): int {} + +/** + * Returns the internal storage size of the named field + * @link https://php.net/manual/en/function.pg-field-size.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field+ * Field number, starting from 0. + *
+ * @return int The internal field storage size (in bytes). -1 indicates a variable + * length field. FALSE is returned on error. + */ +function pg_field_size(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): int {} + +/** + * Returns the type name for the corresponding field number + * @link https://php.net/manual/en/function.pg-field-type.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field+ * Field number, starting from 0. + *
+ * @return string|false A string containing the base name of the field's type, or FALSE + * on error. + */ +function pg_field_type(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {} + +/** + * Returns the type ID (OID) for the corresponding field number + * @link https://php.net/manual/en/function.pg-field-type-oid.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field+ * Field number, starting from 0. + *
+ * @return string|int The OID of the field's base type. FALSE is returned on error. + */ +function pg_field_type_oid(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string|int {} + +/** + * Returns the printed length + * @link https://php.net/manual/en/function.pg-field-prtlen.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row + * @param mixed $field [optional] + * @return int|false The field printed length, or FALSE on error. + */ +function pg_field_prtlen( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $row = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + string|int $field +): int|false {} + +/** + * Test if a field is SQL NULL + * @link https://php.net/manual/en/function.pg-field-is-null.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $row+ * Row number in result to fetch. Rows are numbered from 0 upwards. If omitted, + * current row is fetched. + *
+ * @param mixed $field [optional]+ * Field number (starting from 0) as an integer or + * the field name as a string. + *
+ * @return int|false 1 if the field in the given row is SQL NULL, 0 + * if not. FALSE is returned if the row is out of range, or upon any other error. + */ +function pg_field_is_null( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $row = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + string|int $field +): int|false {} + +/** + * Returns the name or oid of the tables field + * @link https://php.net/manual/en/function.pg-field-table.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @param int $field+ * Field number, starting from 0. + *
+ * @param bool $oid_only [optional]+ * By default the tables name that field belongs to is returned but + * if oid_only is set to TRUE, then the + * oid will instead be returned. + *
+ * @return string|int|false On success either the fields table name or oid. Or, FALSE on failure. + */ +function pg_field_table(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field, bool $oid_only = false): string|int|false {} + +/** + * Gets SQL NOTIFY message + * @link https://php.net/manual/en/function.pg-get-notify.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param int $mode [optional]+ * An optional parameter that controls + * how the returned array is indexed. + * result_type is a constant and can take the + * following values: PGSQL_ASSOC, + * PGSQL_NUM and PGSQL_BOTH. + * Using PGSQL_NUM, pg_get_notify + * will return an array with numerical indices, using + * PGSQL_ASSOC it will return only associative indices + * while PGSQL_BOTH, the default, will return both + * numerical and associative indices. + *
+ * @return array|false An array containing the NOTIFY message name and backend PID. + * Otherwise if no NOTIFY is waiting, then FALSE is returned. + */ +#[ArrayShape(["message" => "string", "pid" => "int", "payload" => "string"])] +function pg_get_notify( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + int $mode = 1 +): array|false {} + +/** + * Gets the backend's process ID + * @link https://php.net/manual/en/function.pg-get-pid.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @return int The backend database process ID. + */ +function pg_get_pid( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, +): int {} + +/** + * Get error message associated with result + * @link https://php.net/manual/en/function.pg-result-error.php + * @param resource $result+ * PostgreSQL query result resource, returned by pg_query, + * pg_query_params or pg_execute + * (among others). + *
+ * @return string|false a string if there is an error associated with the + * result parameter, FALSE otherwise. + */ +function pg_result_error(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): string|false {} + +/** + * Returns an individual field of an error report. + * @link https://php.net/manual/en/function.pg-result-error-field.php + * @param resource $result+ * A PostgreSQL query result resource from a previously executed + * statement. + *
+ * @param int $field_code+ * Possible fieldcode values are: PGSQL_DIAG_SEVERITY, + * PGSQL_DIAG_SQLSTATE, PGSQL_DIAG_MESSAGE_PRIMARY, + * PGSQL_DIAG_MESSAGE_DETAIL, + * PGSQL_DIAG_MESSAGE_HINT, PGSQL_DIAG_STATEMENT_POSITION, + * PGSQL_DIAG_INTERNAL_POSITION (PostgreSQL 8.0+ only), + * PGSQL_DIAG_INTERNAL_QUERY (PostgreSQL 8.0+ only), + * PGSQL_DIAG_CONTEXT, PGSQL_DIAG_SOURCE_FILE, + * PGSQL_DIAG_SOURCE_LINE or + * PGSQL_DIAG_SOURCE_FUNCTION. + *
+ * @return string|null|false A string containing the contents of the error field, NULL if the field does not exist or FALSE + * on failure. + */ +function pg_result_error_field( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + int $field_code +): string|false|null {} + +/** + * Get the last error message string of a connection + * @link https://php.net/manual/en/function.pg-last-error.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string A string containing the last error message on the + * given connection, or FALSE on error. + */ +function pg_last_error(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Returns the last notice message from PostgreSQL server + * @link https://php.net/manual/en/function.pg-last-notice.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param int $mode [optional]+ * One of PGSQL_NOTICE_LAST (to return last notice), + * PGSQL_NOTICE_ALL (to return all notices), or + * PGSQL_NOTICE_CLEAR (to clear notices). + *
+ * @return array|string|bool A string containing the last notice on the + * given connection with PGSQL_NOTICE_LAST, + * an array with PGSQL_NOTICE_ALL, + * a bool with PGSQL_NOTICE_CLEAR, or + * FALSE on error. + */ +function pg_last_notice(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, int $mode = PGSQL_NOTICE_LAST): array|string|bool {} + +/** + * Send a NULL-terminated string to PostgreSQL backend + * @link https://php.net/manual/en/function.pg-put-line.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $query [optional]+ * A line of text to be sent directly to the PostgreSQL backend. A NULL + * terminator is added automatically. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_put_line( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $query +): bool {} + +/** + * Sync with PostgreSQL backend + * @link https://php.net/manual/en/function.pg-end-copy.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_end_copy(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): bool {} + +/** + * Copy a table to an array + * @link https://php.net/manual/en/function.pg-copy-to.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table from which to copy the data into rows. + *
+ * @param string $separator [optional]+ * The token that separates values for each field in each element of + * rows. Default is TAB. + *
+ * @param string $null_as [optional]+ * How SQL NULL values are represented in the + * rows. Default is \N ("\\N"). + *
+ * @return array|false An array with one element for each line of COPY data. + * It returns FALSE on failure. + */ +function pg_copy_to( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + string $separator = ' ', + string $null_as = '\\\\N' +): array|false {} + +/** + * Insert records into a table from an array + * @link https://php.net/manual/en/function.pg-copy-from.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table into which to copy the rows. + *
+ * @param array $rows+ * An array of data to be copied into table_name. + * Each value in rows becomes a row in table_name. + * Each value in rows should be a delimited string of the values + * to insert into each field. Values should be linefeed terminated. + *
+ * @param string $separator [optional]+ * The token that separates values for each field in each element of + * rows. Default is TAB. + *
+ * @param string $null_as [optional]+ * How SQL NULL values are represented in the + * rows. Default is \N ("\\N"). + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_copy_from( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $rows, + string $separator = ' ', + string $null_as = '\\\\N' +): bool {} + +/** + * Enable tracing a PostgreSQL connection + * @link https://php.net/manual/en/function.pg-trace.php + * @param string $filename+ * The full path and file name of the file in which to write the + * trace log. Same as in fopen. + *
+ * @param string $mode [optional]+ * An optional file access mode, same as for fopen. + *
+ * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param int $trace_mode Since PHP 8.3 optional trace mode + * @return bool TRUE on success or FALSE on failure. + */ +function pg_trace( + string $filename, + string $mode = "w", + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.3')] int $trace_mode = 0 +): bool {} + +/** + * Disable tracing of a PostgreSQL connection + * @link https://php.net/manual/en/function.pg-untrace.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ */ +#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')] +function pg_untrace(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null) {} + +/** + * Create a large object + * @link https://php.net/manual/en/function.pg-lo-create.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param mixed $oid [optional]+ * If an object_id is given the function + * will try to create a large object with this id, else a free + * object id is assigned by the server. The parameter + * was added in PHP 5.3 and relies on functionality that first + * appeared in PostgreSQL 8.1. + *
+ * @return string|int|false A large object OID or FALSE on error. + */ +function pg_lo_create(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, $oid): string|int|false {} + +/** + * Delete a large object + * @link https://php.net/manual/en/function.pg-lo-unlink.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param int $oid [optional]+ * The OID of the large object in the database. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_lo_unlink( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $oid +): bool {} + +/** + * Open a large object + * @link https://php.net/manual/en/function.pg-lo-open.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param int $oid [optional]+ * The OID of the large object in the database. + *
+ * @param string $mode [optional]+ * Can be either "r" for read-only, "w" for write only or "rw" for read and + * write. + *
+ * @return resource|false A large object resource or FALSE on error. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob|false'], default: 'resource|false')] +function pg_lo_open( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $oid, + string $mode +) {} + +/** + * Close a large object + * @link https://php.net/manual/en/function.pg-lo-close.php + * @param resource $lob + * @return bool TRUE on success or FALSE on failure. + */ +function pg_lo_close(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): bool {} + +/** + * Read a large object + * @link https://php.net/manual/en/function.pg-lo-read.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @param int $length [optional]+ * An optional maximum number of bytes to return. + *
+ * @return string|false A string containing len bytes from the + * large object, or FALSE on error. + */ +function pg_lo_read(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, int $length = 8192): string|false {} + +/** + * Write to a large object + * @link https://php.net/manual/en/function.pg-lo-write.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @param string $data+ * The data to be written to the large object. If len is + * specified and is less than the length of data, only + * len bytes will be written. + *
+ * @param int $length [optional]+ * An optional maximum number of bytes to write. Must be greater than zero + * and no greater than the length of data. Defaults to + * the length of data. + *
+ * @return int|false The number of bytes written to the large object, or FALSE on error. + */ +function pg_lo_write(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, string $data, ?int $length = null): int|false {} + +/** + * Reads an entire large object and send straight to browser + * @link https://php.net/manual/en/function.pg-lo-read-all.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @return int|false Number of bytes read or FALSE on error. + */ +function pg_lo_read_all(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): int {} + +/** + * Import a large object from file + * @link https://php.net/manual/en/function.pg-lo-import.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $pathname+ * The full path and file name of the file on the client + * filesystem from which to read the large object data. + *
+ * @param mixed $object_id [optional]+ * If an object_id is given the function + * will try to create a large object with this id, else a free + * object id is assigned by the server. The parameter + * was added in PHP 5.3 and relies on functionality that first + * appeared in PostgreSQL 8.1. + *
+ * @return string|int|false The OID of the newly created large object, or + * FALSE on failure. + */ +function pg_lo_import( + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + $pathname, + $object_id = null +): string|int|false {} + +/** + * Export a large object to file + * @link https://php.net/manual/en/function.pg-lo-export.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param int $oid+ * The OID of the large object in the database. + *
+ * @param string $pathname+ * The full path and file name of the file in which to write the + * large object on the client filesystem. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_lo_export( + #[PhpStormStubsElementAvailable('8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + $oid, + $pathname +): bool {} + +/** + * Seeks position within a large object + * @link https://php.net/manual/en/function.pg-lo-seek.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @param int $offset+ * The number of bytes to seek. + *
+ * @param int $whence [optional]+ * One of the constants PGSQL_SEEK_SET (seek from object start), + * PGSQL_SEEK_CUR (seek from current position) + * or PGSQL_SEEK_END (seek from object end) . + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pg_lo_seek(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, int $offset, int $whence = PGSQL_SEEK_CUR): bool {} + +/** + * Returns current seek position a of large object + * @link https://php.net/manual/en/function.pg-lo-tell.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @return int The current seek offset (in number of bytes) from the beginning of the large + * object. If there is an error, the return value is negative. + */ +function pg_lo_tell(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): int {} + +/** + * Truncates a large object + * @link https://www.php.net/manual/en/function.pg-lo-truncate.php + * @param resource $lob+ * PostgreSQL large object (LOB) resource, returned by pg_lo_open. + *
+ * @param int $size The number of bytes to truncate. + * @return bool Returns true on success or false on failure. + */ +function pg_lo_truncate( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] int $size = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] int $size +): bool {} + +/** + * Escape a string for query + * @link https://php.net/manual/en/function.pg-escape-string.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $string [optional]+ * A string containing text to be escaped. + *
+ * @return string A string containing the escaped data. + */ +function pg_escape_string( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $string +): string {} + +/** + * Escape a string for insertion into a bytea field + * @link https://php.net/manual/en/function.pg-escape-bytea.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $string [optional]+ * A string containing text or binary data to be inserted into a bytea + * column. + *
+ * @return string A string containing the escaped data. + */ +function pg_escape_bytea( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $string +): string {} + +/** + * Escape a identifier for insertion into a text field + * @link https://php.net/manual/en/function.pg-escape-identifier.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $string [optional]+ * A string containing text to be escaped. + *
+ * @return string|false A string containing the escaped data. + * @since 5.4.4 + */ +function pg_escape_identifier( + #[PhpStormStubsElementAvailable(from: '5.4', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $string +): string|false {} + +/** + * Escape a literal for insertion into a text field + * @link https://php.net/manual/en/function.pg-escape-literal.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $string [optional]+ * A string containing text to be escaped. + *
+ * @return string|false A string containing the escaped data. + * @since 5.4.4 + */ +function pg_escape_literal( + #[PhpStormStubsElementAvailable(from: '5.4', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $string +): string|false {} + +/** + * Unescape binary for bytea type + * @link https://php.net/manual/en/function.pg-unescape-bytea.php + * @param string $string+ * A string containing PostgreSQL bytea data to be converted into + * a PHP binary string. + *
+ * @return string A string containing the unescaped data. + */ +function pg_unescape_bytea(string $string): string {} + +/** + * Determines the verbosity of messages returned by pg_last_error + * and pg_result_error. + * @link https://php.net/manual/en/function.pg-set-error-verbosity.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param int $verbosity [optional]+ * The required verbosity: PGSQL_ERRORS_TERSE, + * PGSQL_ERRORS_DEFAULT + * or PGSQL_ERRORS_VERBOSE. + *
+ * @return int|false The previous verbosity level: PGSQL_ERRORS_TERSE, + * PGSQL_ERRORS_DEFAULT + * or PGSQL_ERRORS_VERBOSE. + */ +function pg_set_error_verbosity( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + int $verbosity +): int|false {} + +/** + * Gets the client encoding + * @link https://php.net/manual/en/function.pg-client-encoding.php + * @param resource $connection [optional]+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @return string|false The client encoding, or FALSE on error. + */ +function pg_client_encoding(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection = null): string {} + +/** + * Set the client encoding + * @link https://php.net/manual/en/function.pg-set-client-encoding.php + * @param resource $connection+ * PostgreSQL database connection resource. When + * connection is not present, the default connection + * is used. The default connection is the last connection made by + * pg_connect or pg_pconnect. + *
+ * @param string $encoding [optional]+ * The required client encoding. One of SQL_ASCII, EUC_JP, + * EUC_CN, EUC_KR, EUC_TW, + * UNICODE, MULE_INTERNAL, LATINX (X=1...9), + * KOI8, WIN, ALT, SJIS, + * BIG5 or WIN1250. + *
+ *+ * The exact list of available encodings depends on your PostgreSQL version, so check your + * PostgreSQL manual for a more specific list. + *
+ * @return int 0 on success or -1 on error. + */ +function pg_set_client_encoding( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $encoding +): int {} + +/** + * Get meta data for table + * @link https://php.net/manual/en/function.pg-meta-data.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * The name of the table. + *
+ * @return array|false An array of the table definition, or FALSE on error. + */ +function pg_meta_data( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + #[PhpStormStubsElementAvailable(from: '8.0')] bool $extended = false +): array|false {} + +/** + * Convert associative array values into suitable for SQL statement + * @link https://php.net/manual/en/function.pg-convert.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table against which to convert types. + *
+ * @param array $values+ * Data to be converted. + *
+ * @param int $flags [optional]+ * Any number of PGSQL_CONV_IGNORE_DEFAULT, + * PGSQL_CONV_FORCE_NULL or + * PGSQL_CONV_IGNORE_NOT_NULL, combined. + *
+ * @return array|false An array of converted values, or FALSE on error. + */ +function pg_convert( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $values, + int $flags = 0 +): array|false {} + +/** + * Insert array into table + * @link https://php.net/manual/en/function.pg-insert.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table into which to insert rows. The table table_name must at least + * have as many columns as assoc_array has elements. + *
+ * @param array $values+ * An array whose keys are field names in the table table_name, + * and whose values are the values of those fields that are to be inserted. + *
+ * @param int $flags [optional]+ * Any number of PGSQL_CONV_OPTS, + * PGSQL_DML_NO_CONV, + * PGSQL_DML_EXEC, + * PGSQL_DML_ASYNC or + * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the + * options then query string is returned. + *
+ * @return mixed TRUE on success or FALSE on failure. Returns string if PGSQL_DML_STRING is passed + * via options. + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|string|bool'], default: 'resource|string|bool')] +function pg_insert( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $values, + int $flags = PGSQL_DML_EXEC +) {} + +/** + * Update table + * @link https://php.net/manual/en/function.pg-update.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table into which to update rows. + *
+ * @param array $values+ * An array whose keys are field names in the table table_name, + * and whose values are what matched rows are to be updated to. + *
+ * @param array $conditions+ * An array whose keys are field names in the table table_name, + * and whose values are the conditions that a row must meet to be updated. + *
+ * @param int $flags [optional]+ * Any number of PGSQL_CONV_OPTS, + * PGSQL_DML_NO_CONV, + * PGSQL_DML_EXEC or + * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the + * options then query string is returned. + *
+ * @return string|bool TRUE on success or FALSE on failure. Returns string if PGSQL_DML_STRING is passed + * via options. + */ +function pg_update( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $values, + array $conditions, + int $flags = PGSQL_DML_EXEC +): string|bool {} + +/** + * Deletes records + * @link https://php.net/manual/en/function.pg-delete.php + * @param resource $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table from which to delete rows. + *
+ * @param array $conditions+ * An array whose keys are field names in the table table_name, + * and whose values are the values of those fields that are to be deleted. + *
+ * @param int $flags [optional]+ * Any number of PGSQL_CONV_FORCE_NULL, + * PGSQL_DML_NO_CONV, + * PGSQL_DML_EXEC or + * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the + * options then query string is returned. + *
+ * @return string|bool TRUE on success or FALSE on failure. Returns string if PGSQL_DML_STRING is passed + * via options. + */ +function pg_delete( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $conditions, + int $flags = PGSQL_DML_EXEC +): string|bool {} + +/** + * Select records + * @link https://php.net/manual/en/function.pg-select.php + * @param resource|PgSql\Connection $connection+ * PostgreSQL database connection resource. + *
+ * @param string $table_name+ * Name of the table from which to select rows. + *
+ * @param array $conditions+ * An array whose keys are field names in the table table_name, + * and whose values are the conditions that a row must meet to be retrieved. + *
+ * @param int $flags [optional]+ * Any number of PGSQL_CONV_FORCE_NULL, + * PGSQL_DML_NO_CONV, + * PGSQL_DML_EXEC, + * PGSQL_DML_ASYNC or + * PGSQL_DML_STRING combined. If PGSQL_DML_STRING is part of the + * options then query string is returned. + *
+ * @param int $mode [optional]+ * An optional parameter that controls + * how the returned array is indexed. + * result_type is a constant and can take the + * following values: PGSQL_ASSOC, + * PGSQL_NUM and PGSQL_BOTH. + * Using PGSQL_NUM, pg_fetch_array + * will return an array with numerical indices, using + * PGSQL_ASSOC it will return only associative indices + * while PGSQL_BOTH, the default, will return both + * numerical and associative indices. + *
+ * @return array|string|false TRUE on success or FALSE on failure. Returns string if PGSQL_DML_STRING is passed + * via options. + */ +function pg_select( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $table_name, + array $conditions, + int $flags = PGSQL_DML_EXEC, + int $mode = PGSQL_ASSOC +): array|string|false {} + +/** + * @param $connection + * @param $query [optional] + * @return mixed + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result|false'], default: 'resource|false')] +function pg_exec( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $query +) {} + +/** + * @param $result + * @return string|int|false + * @deprecated + */ +function pg_getlastoid(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): string|int|false {} + +/** + * @param $result + * @return int + * @deprecated + */ +function pg_cmdtuples(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} // TODO remove + +/** + * @param $connection [optional] + * @return string + * @deprecated + */ +function pg_errormessage(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection): string {} + +/** + * @param $result + * @return int + * @deprecated + */ +function pg_numrows(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} + +/** + * @param $result + * @return int + * @deprecated + */ +function pg_numfields(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} + +/** + * @param $result + * @param $field + * @return string + * @deprecated + */ +function pg_fieldname(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {} + +/** + * @param $result + * @param $field + * @return int + * @deprecated + */ +function pg_fieldsize(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): int {} + +/** + * @param $result + * @param $field + * @return string + * @deprecated + */ +function pg_fieldtype(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {} + +/** + * @param $result + * @param $field + * @return int + * @deprecated + */ +function pg_fieldnum(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, string $field): int {} + +/** + * @param $result + * @param $row + * @param $field [optional] + * @return int|false + * @deprecated + */ +function pg_fieldprtlen( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $row = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + string|int $field +): int|false {} + +/** + * @param $result + * @param $row + * @param $field [optional] + * @return int|false + * @deprecated + */ +function pg_fieldisnull( + #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $row = 0, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + string|int $field +): int|false {} + +/** + * @param $result + * @return bool + * @deprecated + */ +function pg_freeresult(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): bool {} + +/** + * @param PgSql\Result|resource $result + * @param $row + * @param $field [optional] + * @deprecated + */ +function pg_result( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, + #[PhpStormStubsElementAvailable(from: '8.0')] $row, + #[PhpStormStubsElementAvailable(from: '8.0')] string|int $field +): string|null|false {} + +/** + * @param $lob + * @deprecated + */ +function pg_loreadall(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): int {} // TODO remove + +/** + * @param $connection [optional] + * @param $oid [optional] + * @return string|int|false + * @deprecated + */ +function pg_locreate(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, $oid): string|int|false {} + +/** + * @param $connection + * @param $oid [optional] + * @return bool + * @deprecated + */ +function pg_lounlink( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $oid +): bool {} + +/** + * @param $connection + * @param $oid [optional] + * @param $mode [optional] + * @return resource + * @deprecated + */ +#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob|false'], default: 'resource|false')] +function pg_loopen( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $oid, + string $mode +) {} + +/** + * @param $lob + * @return bool + * @deprecated + */ +function pg_loclose(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): bool {} + +/** + * @param $lob + * @param $length + * @return string|false + * @deprecated + */ +function pg_loread(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, int $length = 8192): string|false {} + +/** + * @param $lob + * @param $data + * @param $length [optional] + * @return int|false + * @deprecated + */ +function pg_lowrite(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, string $data, ?int $length): int|false {} + +/** + * @param $connection + * @param $filename [optional] + * @param $oid [optional] + * @return string|int|false + * @deprecated + */ +function pg_loimport( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $filename, + $oid +): string|int|false {} + +/** + * @param $connection + * @param $oid [optional] + * @param $filename [optional] + * @return bool + * @deprecated + */ +function pg_loexport( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + $oid, + $filename +): bool {} + +/** + * @param $connection [optional] + * @return string + * @deprecated + */ +function pg_clientencoding(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection): string {} + +/** + * @param $connection + * @param $encoding [optional] + * @return int + * @deprecated + */ +function pg_setclientencoding( + #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null, + #[PhpStormStubsElementAvailable(from: '8.0')] #[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, + string $encoding +): int {} + +/** + * Reads input on the connection + * @link https://www.php.net/manual/en/function.pg-consume-input.php + * @param PgSql\Connection|resource $connection + * @return bool true if no error occurred, or false if there was an error. + * Note that true does not necessarily indicate that input was waiting to be read. + */ +function pg_consume_input(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): bool {} + +/** + * Flush outbound query data on the connection + * @link https://www.php.net/manual/en/function.pg-flush.php + * @param PgSql\Connection|resource $connection + * @return int|bool Returns true if the flush was successful or no data was waiting to be flushed, 0 if part of the pending + * data was flushed but more remains or false on failure. + */ +function pg_flush(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection): int|bool {} + +/** + * @since 8.3 + */ +function pg_set_error_context_visibility(PgSql\Connection $connection, int $visibility): int {} + +/** + * @since 8.3 + */ +function pg_pipeline_status(PgSql\Connection $connection): int {} + +/** + * @since 8.3 + */ +function pg_pipeline_sync(PgSql\Connection $connection): bool {} + +/** + * @since 8.3 + */ +function pg_exit_pipeline_mode(PgSql\Connection $connection): bool {} + +/** + * @since 8.3 + */ +function pg_enter_pipeline_mode(PgSql\Connection $connection): bool {} + +define('PGSQL_LIBPQ_VERSION', "16.1"); +define('PGSQL_LIBPQ_VERSION_STR', "16.1"); + +/** + * Passed to pg_connect to force the creation of a new connection, + * rather than re-using an existing identical connection. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONNECT_FORCE_NEW', 2); + +/** + * Passed to pg_fetch_array. Return an associative array of field + * names and values. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_ASSOC', 1); + +/** + * Passed to pg_fetch_array. Return a numerically indexed array of field + * numbers and values. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_NUM', 2); + +/** + * Passed to pg_fetch_array. Return an array of field values + * that is both numerically indexed (by field number) and associated (by field name). + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_BOTH', 3); + +/** + * Returned by pg_connection_status indicating that the database + * connection is in an invalid state. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONNECTION_BAD', 1); + +/** + * Returned by pg_connection_status indicating that the database + * connection is in a valid state. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONNECTION_OK', 0); + +/** + * Returned by pg_transaction_status. Connection is + * currently idle, not in a transaction. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TRANSACTION_IDLE', 0); + +/** + * Returned by pg_transaction_status. A command + * is in progress on the connection. A query has been sent via the connection + * and not yet completed. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TRANSACTION_ACTIVE', 1); + +/** + * Returned by pg_transaction_status. The connection + * is idle, in a transaction block. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TRANSACTION_INTRANS', 2); + +/** + * Returned by pg_transaction_status. The connection + * is idle, in a failed transaction block. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TRANSACTION_INERROR', 3); + +/** + * Returned by pg_transaction_status. The connection + * is bad. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TRANSACTION_UNKNOWN', 4); + +/** + * Passed to pg_set_error_verbosity. + * Specified that returned messages include severity, primary text, + * and position only; this will normally fit on a single line. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_ERRORS_TERSE', 0); + +/** + * Passed to pg_set_error_verbosity. + * The default mode produces messages that include the above + * plus any detail, hint, or context fields (these may span + * multiple lines). + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_ERRORS_DEFAULT', 1); + +/** + * Passed to pg_set_error_verbosity. + * The verbose mode includes all available fields. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_ERRORS_VERBOSE', 2); + +/** + * Passed to pg_lo_seek. Seek operation is to begin + * from the start of the object. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_SEEK_SET', 0); + +/** + * Passed to pg_lo_seek. Seek operation is to begin + * from the current position. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_SEEK_CUR', 1); + +/** + * Passed to pg_lo_seek. Seek operation is to begin + * from the end of the object. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_SEEK_END', 2); + +/** + * Passed to pg_result_status. Indicates that + * numerical result code is desired. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_STATUS_LONG', 1); + +/** + * Passed to pg_result_status. Indicates that + * textual result command tag is desired. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_STATUS_STRING', 2); + +/** + * Returned by pg_result_status. The string sent to the server + * was empty. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_EMPTY_QUERY', 0); + +/** + * Returned by pg_result_status. Successful completion of a + * command returning no data. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_COMMAND_OK', 1); + +/** + * Returned by pg_result_status. Successful completion of a command + * returning data (such as a SELECT or SHOW). + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_TUPLES_OK', 2); + +/** + * Returned by pg_result_status. Copy Out (from server) data + * transfer started. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_COPY_OUT', 3); + +/** + * Returned by pg_result_status. Copy In (to server) data + * transfer started. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_COPY_IN', 4); + +/** + * Returned by pg_result_status. The server's response + * was not understood. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_BAD_RESPONSE', 5); + +/** + * Returned by pg_result_status. A nonfatal error + * (a notice or warning) occurred. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_NONFATAL_ERROR', 6); + +/** + * Returned by pg_result_status. A fatal error + * occurred. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_FATAL_ERROR', 7); + +/** + * Passed to pg_result_error_field. + * The severity; the field contents are ERROR, + * FATAL, or PANIC (in an error message), or + * WARNING, NOTICE, DEBUG, + * INFO, or LOG (in a notice message), or a localized + * translation of one of these. Always present. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_SEVERITY', 83); + +/** + * Passed to pg_result_error_field. + * The SQLSTATE code for the error. The SQLSTATE code identifies the type of error + * that has occurred; it can be used by front-end applications to perform specific + * operations (such as error handling) in response to a particular database error. + * This field is not localizable, and is always present. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_SQLSTATE', 67); + +/** + * Passed to pg_result_error_field. + * The primary human-readable error message (typically one line). Always present. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_MESSAGE_PRIMARY', 77); + +/** + * Passed to pg_result_error_field. + * Detail: an optional secondary error message carrying more detail about the problem. May run to multiple lines. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_MESSAGE_DETAIL', 68); + +/** + * Passed to pg_result_error_field. + * Hint: an optional suggestion what to do about the problem. This is intended to differ from detail in that it + * offers advice (potentially inappropriate) rather than hard facts. May run to multiple lines. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_MESSAGE_HINT', 72); + +/** + * Passed to pg_result_error_field. + * A string containing a decimal integer indicating an error cursor position as an index into the original + * statement string. The first character has index 1, and positions are measured in characters not bytes. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_STATEMENT_POSITION', 80); + +/** + * Passed to pg_result_error_field. + * This is defined the same as the PG_DIAG_STATEMENT_POSITION field, but + * it is used when the cursor position refers to an internally generated + * command rather than the one submitted by the client. The + * PG_DIAG_INTERNAL_QUERY field will always appear when this + * field appears. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_INTERNAL_POSITION', 112); + +/** + * Passed to pg_result_error_field. + * The text of a failed internally-generated command. This could be, for example, a + * SQL query issued by a PL/pgSQL function. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_INTERNAL_QUERY', 113); + +/** + * Passed to pg_result_error_field. + * An indication of the context in which the error occurred. Presently + * this includes a call stack traceback of active procedural language + * functions and internally-generated queries. The trace is one entry + * per line, most recent first. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_CONTEXT', 87); + +/** + * Passed to pg_result_error_field. + * The file name of the PostgreSQL source-code location where the error + * was reported. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_SOURCE_FILE', 70); + +/** + * Passed to pg_result_error_field. + * The line number of the PostgreSQL source-code location where the + * error was reported. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_SOURCE_LINE', 76); + +/** + * Passed to pg_result_error_field. + * The name of the PostgreSQL source-code function reporting the error. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_DIAG_SOURCE_FUNCTION', 82); + +/** + * Passed to pg_convert. + * Ignore default values in the table during conversion. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONV_IGNORE_DEFAULT', 2); + +/** + * Passed to pg_convert. + * Use SQL NULL in place of an empty string. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONV_FORCE_NULL', 4); + +/** + * Passed to pg_convert. + * Ignore conversion of NULL into SQL NOT NULL columns. + * @link https://php.net/manual/en/pgsql.constants.php + */ +define('PGSQL_CONV_IGNORE_NOT_NULL', 8); +define('PGSQL_DML_NO_CONV', 256); +define('PGSQL_DML_EXEC', 512); +define('PGSQL_DML_ASYNC', 1024); +define('PGSQL_DML_STRING', 2048); + +/** + * @link https://php.net/manual/en/function.pg-last-notice.php + * @since 7.1 + */ +define('PGSQL_NOTICE_LAST', 1); + +/** + * @link https://php.net/manual/en/function.pg-last-notice.php + * @since 7.1 + */ +define('PGSQL_NOTICE_ALL', 2); + +/** + * @link https://php.net/manual/en/function.pg-last-notice.php + * @since 7.1 + */ +define('PGSQL_NOTICE_CLEAR', 3); + +const PGSQL_CONNECT_ASYNC = 4; +const PGSQL_CONNECTION_AUTH_OK = 5; +const PGSQL_CONNECTION_AWAITING_RESPONSE = 4; +const PGSQL_CONNECTION_MADE = 3; +const PGSQL_CONNECTION_SETENV = 6; +const PGSQL_CONNECTION_STARTED = 2; +const PGSQL_DML_ESCAPE = 4096; +const PGSQL_POLLING_ACTIVE = 4; +const PGSQL_POLLING_FAILED = 0; +const PGSQL_POLLING_OK = 3; +const PGSQL_POLLING_READING = 1; +const PGSQL_POLLING_WRITING = 2; +const PGSQL_DIAG_SCHEMA_NAME = 115; +const PGSQL_DIAG_TABLE_NAME = 116; +const PGSQL_DIAG_COLUMN_NAME = 99; +const PGSQL_DIAG_DATATYPE_NAME = 100; +const PGSQL_DIAG_CONSTRAINT_NAME = 110; +const PGSQL_DIAG_SEVERITY_NONLOCALIZED = 86; + +const PGSQL_ERRORS_SQLSTATE = 0; +const PGSQL_TRACE_REGRESS_MODE = 2; +const PGSQL_PIPELINE_SYNC = 10; +const PGSQL_PIPELINE_ON = 1; +const PGSQL_PIPELINE_OFF = 0; +const PGSQL_PIPELINE_ABORTED = 2; +const PGSQL_SHOW_CONTEXT_NEVER = 0; +const PGSQL_SHOW_CONTEXT_ERRORS = 1; +const PGSQL_SHOW_CONTEXT_ALWAYS = 2; + +// End of pgsql v. diff --git a/phpstorm-stubs/pgsql/pgsql_c.php b/phpstorm-stubs/pgsql/pgsql_c.php new file mode 100644 index 0000000..b7284a9 --- /dev/null +++ b/phpstorm-stubs/pgsql/pgsql_c.php @@ -0,0 +1,24 @@ + ++ * One of the PCNTL signals constants. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_kill(int $process_id, int $signal): bool {} + +/** + * Return the current process identifier + * @link https://php.net/manual/en/function.posix-getpid.php + * @return int the identifier, as an integer. + */ +#[Pure] +function posix_getpid(): int {} + +/** + * Return the parent process identifier + * @link https://php.net/manual/en/function.posix-getppid.php + * @return int the identifier, as an integer. + */ +#[Pure] +function posix_getppid(): int {} + +/** + * Return the real user ID of the current process + * @link https://php.net/manual/en/function.posix-getuid.php + * @return int the user id, as an integer + */ +#[Pure] +function posix_getuid(): int {} + +/** + * Set the UID of the current process + * @link https://php.net/manual/en/function.posix-setuid.php + * @param int $user_id+ * The user id. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_setuid(int $user_id): bool {} + +/** + * Return the effective user ID of the current process + * @link https://php.net/manual/en/function.posix-geteuid.php + * @return int the user id, as an integer + */ +#[Pure] +function posix_geteuid(): int {} + +/** + * Set the effective UID of the current process + * @link https://php.net/manual/en/function.posix-seteuid.php + * @param int $user_id+ * The user id. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_seteuid(int $user_id): bool {} + +/** + * Set system resource limits + * @link https://php.net/manual/en/function.posix-setrlimit.php + * @param int $resource+ * The + * {@link https://php.net/manual/en/posix.constants.setrlimit.php resource limit constant} + * corresponding to the limit that is being set. + *
+ * @param int $soft_limit The soft limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY. + * @param int $hard_limit The hard limit, in whatever unit the resource limit requires, or POSIX_RLIMIT_INFINITY. + * @return bool Returns TRUE on success or FALSE on failure. + * @since 7.0 + */ +function posix_setrlimit(int $resource, int $soft_limit, int $hard_limit): bool {} +/** + * Return the real group ID of the current process + * @link https://php.net/manual/en/function.posix-getgid.php + * @return int the real group id, as an integer. + */ +#[Pure] +function posix_getgid(): int {} + +/** + * Set the GID of the current process + * @link https://php.net/manual/en/function.posix-setgid.php + * @param int $group_id+ * The group id. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_setgid(int $group_id): bool {} + +/** + * Return the effective group ID of the current process + * @link https://php.net/manual/en/function.posix-getegid.php + * @return int an integer of the effective group ID. + */ +#[Pure] +function posix_getegid(): int {} + +/** + * Set the effective GID of the current process + * @link https://php.net/manual/en/function.posix-setegid.php + * @param int $group_id+ * The group id. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_setegid(int $group_id): bool {} + +/** + * Return the group set of the current process + * @link https://php.net/manual/en/function.posix-getgroups.php + * @return array|false an array of integers containing the numeric group ids of the group + * set of the current process. + */ +#[Pure] +function posix_getgroups(): array|false {} + +/** + * Return login name + * @link https://php.net/manual/en/function.posix-getlogin.php + * @return string|false the login name of the user, as a string. + */ +#[Pure] +function posix_getlogin(): string|false {} + +/** + * Return the current process group identifier + * @link https://php.net/manual/en/function.posix-getpgrp.php + * @return int the identifier, as an integer. + */ +#[Pure] +function posix_getpgrp(): int {} + +/** + * Make the current process a session leader + * @link https://php.net/manual/en/function.posix-setsid.php + * @return int the session id, or -1 on errors. + */ +function posix_setsid(): int {} + +/** + * Set process group id for job control + * @link https://php.net/manual/en/function.posix-setpgid.php + * @param int $process_id+ * The process id. + *
+ * @param int $process_group_id+ * The process group id. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_setpgid(int $process_id, int $process_group_id): bool {} + +/** + * Get process group id for job control + * @link https://php.net/manual/en/function.posix-getpgid.php + * @param int $process_id+ * The process id. + *
+ * @return int|false the identifier, as an integer. + */ +#[Pure] +function posix_getpgid(int $process_id): int|false {} + +/** + * Get the current sid of the process + * @link https://php.net/manual/en/function.posix-getsid.php + * @param int $process_id+ * The process identifier. If set to 0, the current process is + * assumed. If an invalid pid is + * specified, then FALSE is returned and an error is set which + * can be checked with posix_get_last_error. + *
+ * @return int|false the identifier, as an integer. + */ +#[Pure] +function posix_getsid(int $process_id): int|false {} + +/** + * Get system name + * @link https://php.net/manual/en/function.posix-uname.php + * @return array|false a hash of strings with information about the + * system. The indices of the hash are + * sysname - operating system name (e.g. Linux) + * nodename - system name (e.g. valiant) + * release - operating system release (e.g. 2.2.10) + * version - operating system version (e.g. #4 Tue Jul 20 + * 17:01:36 MEST 1999) + * machine - system architecture (e.g. i586) + * domainname - DNS domainname (e.g. example.com) + * + *+ * domainname is a GNU extension and not part of POSIX.1, so this + * field is only available on GNU systems or when using the GNU + * libc. + */ +#[Pure] +#[ArrayShape([ + 'sysname' => 'string', + 'nodename' => 'string', + 'release' => 'string', + 'version' => 'string', + 'machine' => 'string', + 'domainname' => 'string', +])] +function posix_uname(): array|false {} + +/** + * Get process times + * @link https://php.net/manual/en/function.posix-times.php + * @return array|false a hash of strings with information about the current + * process CPU usage. The indices of the hash are: + * ticks - the number of clock ticks that have elapsed since + * reboot. + * utime - user time used by the current process. + * stime - system time used by the current process. + * cutime - user time used by current process and children. + * cstime - system time used by current process and children. + */ +#[Pure] +#[ArrayShape([ + 'ticks' => 'int', + 'utime' => 'int', + 'stime' => 'int', + 'cutime' => 'int', + 'cstime' => 'int' +])] +function posix_times(): array|false {} + +/** + * Get path name of controlling terminal + * @link https://php.net/manual/en/function.posix-ctermid.php + * @return string|false Upon successful completion, returns string of the pathname to + * the current controlling terminal. Otherwise FALSE is returned and errno + * is set, which can be checked with posix_get_last_error. + */ +#[Pure] +function posix_ctermid(): string|false {} + +/** + * Determine terminal device name + * @link https://php.net/manual/en/function.posix-ttyname.php + * @param int $file_descriptor
+ * The file descriptor. + *
+ * @return string|false On success, returns a string of the absolute path of the + * fd. On failure, returns FALSE + */ +#[Pure] +function posix_ttyname($file_descriptor): string|false {} + +/** + * Determine if a file descriptor is an interactive terminal + * @link https://php.net/manual/en/function.posix-isatty.php + * @param mixed $file_descriptor
+ * The file descriptor, which is expected to be either a file resource or an integer.
+ * An integer will be assumed to be a file descriptor that can be passed
+ * directly to the underlying system call.
+ * In almost all cases, you will want to provide a file resource.
+ *
+ * Path to the FIFO file. + *
+ * @param int $permissions+ * The second parameter mode has to be given in + * octal notation (e.g. 0644). The permission of the newly created + * FIFO also depends on the setting of the current + * umask. The permissions of the created file are + * (mode & ~umask). + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_mkfifo(string $filename, int $permissions): bool {} + +/** + * Create a special or ordinary file (POSIX.1) + * @link https://php.net/manual/en/function.posix-mknod.php + * @param string $filename+ * The file to create + *
+ * @param int $flags+ * This parameter is constructed by a bitwise OR between file type (one of + * the following constants: POSIX_S_IFREG, + * POSIX_S_IFCHR, POSIX_S_IFBLK, + * POSIX_S_IFIFO or + * POSIX_S_IFSOCK) and permissions. + *
+ * @param int $major [optional]+ * The major device kernel identifier (required to pass when using + * S_IFCHR or S_IFBLK). + *
+ * @param int $minor [optional]+ * The minor device kernel identifier. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_mknod(string $filename, int $flags, int $major = 0, int $minor = 0): bool {} + +/** + * Determine accessibility of a file + * @link https://php.net/manual/en/function.posix-access.php + * @param string $filename+ * The name of the file to be tested. + *
+ * @param int $flags [optional]+ * A mask consisting of one or more of POSIX_F_OK, + * POSIX_R_OK, POSIX_W_OK and + * POSIX_X_OK. + *
+ *+ * POSIX_R_OK, POSIX_W_OK and + * POSIX_X_OK request checking whether the file + * exists and has read, write and execute permissions, respectively. + * POSIX_F_OK just requests checking for the + * existence of the file. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function posix_access(string $filename, int $flags = POSIX_F_OK): bool {} + +/** + * Return info about a group by name + * @link https://php.net/manual/en/function.posix-getgrnam.php + * @param string $nameThe name of the group
+ * @return array|false The array elements returned are: + *| Element | + *Description | + *
| name | + *+ * The name element contains the name of the group. This is + * a short, usually less than 16 character "handle" of the + * group, not the real, full name. This should be the same as + * the name parameter used when + * calling the function, and hence redundant. + * | + *
| passwd | + *+ * The passwd element contains the group's password in an + * encrypted format. Often, for example on a system employing + * "shadow" passwords, an asterisk is returned instead. + * | + *
| gid | + *+ * Group ID of the group in numeric form. + * | + *
| members | + *+ * This consists of an array of + * string's for all the members in the group. + * | + *
+ * The group id. + *
+ * @return array|false The array elements returned are: + *| Element | + *Description | + *
| name | + *+ * The name element contains the name of the group. This is + * a short, usually less than 16 character "handle" of the + * group, not the real, full name. + * | + *
| passwd | + *+ * The passwd element contains the group's password in an + * encrypted format. Often, for example on a system employing + * "shadow" passwords, an asterisk is returned instead. + * | + *
| gid | + *+ * Group ID, should be the same as the + * gid parameter used when calling the + * function, and hence redundant. + * | + *
| members | + *+ * This consists of an array of + * string's for all the members in the group. + * | + *
+ * An alphanumeric username. + *
+ * @return array|false On success an array with the following elements is returned, else + * FALSE is returned: + *| Element | + *Description | + *
| name | + *+ * The name element contains the username of the user. This is + * a short, usually less than 16 character "handle" of the + * user, not the real, full name. This should be the same as + * the username parameter used when + * calling the function, and hence redundant. + * | + *
| passwd | + *+ * The passwd element contains the user's password in an + * encrypted format. Often, for example on a system employing + * "shadow" passwords, an asterisk is returned instead. + * | + *
| uid | + *+ * User ID of the user in numeric form. + * | + *
| gid | + *+ * The group ID of the user. Use the function + * posix_getgrgid to resolve the group + * name and a list of its members. + * | + *
| gecos | + *+ * GECOS is an obsolete term that refers to the finger + * information field on a Honeywell batch processing system. + * The field, however, lives on, and its contents have been + * formalized by POSIX. The field contains a comma separated + * list containing the user's full name, office phone, office + * number, and home phone number. On most systems, only the + * user's full name is available. + * | + *
| dir | + *+ * This element contains the absolute path to the home + * directory of the user. + * | + *
| shell | + *+ * The shell element contains the absolute path to the + * executable of the user's default shell. + * | + *
+ * The user identifier. + *
+ * @return array|false an associative array with the following elements: + *| Element | + *Description | + *
| name | + *+ * The name element contains the username of the user. This is + * a short, usually less than 16 character "handle" of the + * user, not the real, full name. + * | + *
| passwd | + *+ * The passwd element contains the user's password in an + * encrypted format. Often, for example on a system employing + * "shadow" passwords, an asterisk is returned instead. + * | + *
| uid | + *+ * User ID, should be the same as the + * uid parameter used when calling the + * function, and hence redundant. + * | + *
| gid | + *+ * The group ID of the user. Use the function + * posix_getgrgid to resolve the group + * name and a list of its members. + * | + *
| gecos | + *+ * GECOS is an obsolete term that refers to the finger + * information field on a Honeywell batch processing system. + * The field, however, lives on, and its contents have been + * formalized by POSIX. The field contains a comma separated + * list containing the user's full name, office phone, office + * number, and home phone number. On most systems, only the + * user's full name is available. + * | + *
| dir | + *+ * This element contains the absolute path to the + * home directory of the user. + * | + *
| shell | + *+ * The shell element contains the absolute path to the + * executable of the user's default shell. + * | + *
| Limit name | + *Limit description | + *
| core | + *+ * The maximum size of the core file. When 0, not core files are + * created. When core files are larger than this size, they will + * be truncated at this size. + * | + *
| totalmem | + *+ * The maximum size of the memory of the process, in bytes. + * | + *
| virtualmem | + *+ * The maximum size of the virtual memory for the process, in bytes. + * | + *
| data | + *+ * The maximum size of the data segment for the process, in bytes. + * | + *
| stack | + *+ * The maximum size of the process stack, in bytes. + * | + *
| rss | + *+ * The maximum number of virtual pages resident in RAM + * | + *
| maxproc | + *+ * The maximum number of processes that can be created for the + * real user ID of the calling process. + * | + *
| memlock | + *+ * The maximum number of bytes of memory that may be locked into RAM. + * | + *
| cpu | + *+ * The amount of time the process is allowed to use the CPU. + * | + *
| filesize | + *+ * The maximum size of the data segment for the process, in bytes. + * | + *
| openfiles | + *+ * One more than the maximum number of open file descriptors. + * | + *
+ * A POSIX error number, returned by + * posix_get_last_error. If set to 0, then the + * string "Success" is returned. + *
+ * @return string the error message, as a string. + */ +#[Pure] +function posix_strerror(int $error_code): string {} + +/** + * Calculate the group access list + * @link https://php.net/manual/en/function.posix-initgroups.php + * @param string $username+ * The user to calculate the list for. + *
+ * @param int $group_id+ * Typically the group number from the password file. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +#[Pure] +function posix_initgroups(string $username, int $group_id): bool {} + +/** + * @since 8.3 + */ +function posix_sysconf(int $conf_id): int {} + +/** + * @since 8.3 + */ +function posix_eaccess(string $filename, int $flags = 0): bool {} + +/** + * Check whether the file exists. + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_F_OK', 0); + +/** + * Check whether the file exists and has execute permissions. + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_X_OK', 1); + +/** + * Check whether the file exists and has write permissions. + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_W_OK', 2); + +/** + * Check whether the file exists and has read permissions. + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_R_OK', 4); + +/** + * Normal file + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_S_IFREG', 32768); + +/** + * Character special file + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_S_IFCHR', 8192); + +/** + * Block special file + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_S_IFBLK', 24576); + +/** + * FIFO (named pipe) special file + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_S_IFIFO', 4096); + +/** + * Socket + * @link https://php.net/manual/en/posix.constants.php + */ +define('POSIX_S_IFSOCK', 49152); + +/** + * The maximum size of the process's address space in bytes. See also PHP's memory_limit configuration directive. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_AS', 5); +/** + * The maximum size of a core file. If the limit is set to 0, no core file will be generated. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_CORE', 4); + +/** + * The maximum amount of CPU time that the process can use, in seconds. + * When the soft limit is hit, a SIGXCPU signal will be sent, which can be caught with pcntl_signal(). + * Depending on the operating system, additional SIGXCPU signals may be sent each second until the hard limit is hit, + * at which point an uncatchable SIGKILL signal is sent. See also set_time_limit(). + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_CPU', 0); + +/** + * The maximum size of the process's data segment, in bytes. + * It is extremely unlikely that this will have any effect on + * the execution of PHP unless an extension is in use that calls brk() or sbrk(). + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_DATA', 2); + +/** + * The maximum size of files that the process can create, in bytes. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_FSIZE', 1); + +/** + * The maximum number of locks that the process can create. + * This is only supported on extremely old Linux kernels. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_LOCKS', 10); + +/** + * The maximum number of bytes that can be allocated for POSIX message queues. + * PHP does not ship with support for POSIX message queues, + * so this limit will not have any effect unless you are using an extension that implements that support. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_MSGQUEUE', 12); + +/** + * The maximum value to which the process can be reniced to. The value that will be used will be 20 - limit, as resource limit values cannot be negative. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_NICE', 13); + +/** + * The maximum real time priority that can be set via the sched_setscheduler() and sched_setparam() system calls. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_RTPRIO', 14); + +/** + * The maximum amount of CPU time, in microseconds, + * that the process can consume without making a blocking system call if it is using real time scheduling. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_RTTIME', 15); + +/** + * The maximum number of signals that can be queued for the real user ID of the process. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_SIGPENDING', 11); + +/** + * The maximum number of bytes that can be locked into memory. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_MEMLOCK', 6); + +/** + * A value one greater than the maximum file descriptor number that can be opened by this process. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_NOFILE', 8); + +/** + * The maximum number of processes (and/or threads, on some operating systems) + * that can be created for the real user ID of the process. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_NPROC', 7); + +/** + * The maximum size of the process's resident set, in pages. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_RSS', 5); + +/** + * The maximum size of the process stack, in bytes. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_STACK', 3); + +/** + * Used to indicate an infinite value for a resource limit. + * @link https://php.net/manual/en/posix.constants.setrlimit.php + */ +define('POSIX_RLIMIT_INFINITY', 9223372036854775807); + +define('POSIX_SC_ARG_MAX', 0); +define('POSIX_SC_PAGESIZE', 30); +define('POSIX_SC_NPROCESSORS_CONF', 83); +define('POSIX_SC_NPROCESSORS_ONLN', 84); +define('POSIX_PC_LINK_MAX', 0); +define('POSIX_PC_MAX_CANON', 1); +define('POSIX_PC_MAX_INPUT', 2); +define('POSIX_PC_NAME_MAX', 3); +define('POSIX_PC_PATH_MAX', 4); +define('POSIX_PC_PIPE_BUF', 5); +define('POSIX_PC_CHOWN_RESTRICTED', 6); +define('POSIX_PC_NO_TRUNC', 7); +define('POSIX_PC_ALLOC_SIZE_MIN', 18); +define('POSIX_PC_SYMLINK_MAX', 19); + +// End of posix v. diff --git a/phpstorm-stubs/pq/pq.php b/phpstorm-stubs/pq/pq.php new file mode 100644 index 0000000..4336821 --- /dev/null +++ b/phpstorm-stubs/pq/pq.php @@ -0,0 +1,2749 @@ + ***NOTE***: + * If pq\Connection::$unbuffered is TRUE, each call to pq\Connection::getResult() will generate a distinct pq\Result containing exactly one row. + * + * @param string $name The identifying name of the cursor. + * @param int $flags Any combination of pq\Cursor constants. + * @param string $query The query for which to open a cursor. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\BadMethodCallException + * @return \pq\Cursor an open cursor instance. + */ + public function declareAsync(string $name, int $flags, string $query) {} + + /** + * Escape binary data for use within a query with the type bytea. + * + * ***NOTE:*** + * The result is not wrapped in single quotes. + * + * @param string $binary The binary data to escape. + * @throws \pq\Exception\BadMethodCallException + * @return string|false string the escaped binary data. + * or FALSE if escaping fails. + */ + public function escapeBytea(string $binary) {} + + /** + * [Execute one or multiple SQL queries](pq/Connection/: Executing Queries) on the connection. + * + * ***NOTE:*** + * Only the last result will be returned, if the query string contains more than one SQL query. + * + * @param string $query The queries to send to the server, separated by semi-colon. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + * @return \pq\Result + */ + public function exec(string $query) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) [execute an SQL query](pq/Connection: Executing Queries) on the connection. + * + * > ***NOTE***: + * If pq\Connection::$unbuffered is TRUE, each call to pq\Connection::getResult() will generate a distinct pq\Result containing exactly one row. + * + * @param string $query The query to send to the server. + * @param callable $callback as function(pq\Result $res) + * The callback to execute when the query finishes. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function execAsync(string $query, callable $callback = null) {} + + /** + * [Execute an SQL query](pq/Connection: Executing Queries) with properly escaped parameters substituted. + * + * @param string $query The query to execute. + * @param array $params The parameter list to substitute. + * @param array $types Corresponding list of type OIDs for the parameters. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + * @return \pq\Result + */ + public function execParams(string $query, array $params, array $types = null) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) [execute an SQL query](pq/Connection: Executing Queries) with properly escaped parameters substituted. + * + * > ***NOTE***: + * If pq\Connection::$unbuffered is TRUE, each call to pq\Connection::getResult() will generate a distinct pq\Result containing exactly one row. + * + * @param string $query The query to execute. + * @param array $params The parameter list to substitute. + * @param array $types Corresponding list of type OIDs for the parameters. + * @param callable $cb as function(\pq\Result $res) : void + * Result handler callback. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\BadMethodCallException + */ + public function execParamsAsync(string $query, array $params, array $types = null, callable $cb = null) {} + + /** + * Flush pending writes on the connection. + * Call after sending any command or data on a nonblocking connection. + * + * If it returns FALSE, wait for the socket to become read or write-ready. + * If it becomes write-ready, call pq\Connection::flush() again. + * If it becomes read-ready, call pq\Connection::poll(), then call pq\Connection::flush() again. + * Repeat until pq\Connection::flush() returns TRUE. + * + * ***NOTE:*** + * This method was added in v1.1.0, resp. v2.1.0. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\RuntimeException + * @return bool whether everything has been flushed. + */ + public function flush() {} + + /** + * Fetch the result of an [asynchronous](pq/Connection/: Asynchronous Usage) query. + * + * If the query hasn't finished yet, the call will block until the result is available. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return \pq\Result|null NULL if there has not been a query + * or \pq\Result when the query has finished + */ + public function getResult() {} + + /** + * Listen on $channel for notifications. + * See pq\Connection::unlisten(). + * + * @param string $channel The channel to listen on. + * @param callable $listener as function(string $channel, string $message, int $pid) + * A callback automatically called whenever a notification on $channel arrives. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function listen(string $channel, callable $listener) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) start listening on $channel for notifications. + * See pq\Connection::listen(). + * + * @param string $channel The channel to listen on. + * @param callable $listener as function(string $channel, string $message, int $pid) + * A callback automatically called whenever a notification on $channel arrives. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function listenAsync(string $channel, callable $listener) {} + + /** + * Notify all listeners on $channel with $message. + * + * @param string $channel The channel to notify. + * @param string $message The message to send. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function notify(string $channel, string $message) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) start notifying all listeners on $channel with $message. + * + * @param string $channel The channel to notify. + * @param string $message The message to send. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function notifyAsync(string $channel, string $message) {} + + /** + * Stops listening for an event type. + * + * @param string $event Any pq\Connection::EVENT_*. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return bool success. + */ + public function off(string $event) {} + + /** + * Listen for an event. + * + * @param string $event Any pq\Connection::EVENT_*. + * @param callable $callback as function(pq\Connection $c[, pq\Result $r) + * The callback to invoke on event. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return int number of previously attached event listeners. + */ + public function on(string $event, callable $callback) {} + + /** + * Poll an [asynchronously](pq/Connection/: Asynchronous Usage) operating connection. + * See pq\Connection::resetAsync() for an usage example. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\BadMethodCallException + * @return int pq\Connection::POLLING_* constant + */ + public function poll() {} + + /** + * Prepare a named statement for later execution with pq\Statement::execute(). + * + * @param string $name The identifying name of the prepared statement. + * @param string $query The query to prepare. + * @param array $types An array of type OIDs for the substitution parameters. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\Statement a prepared statement instance. + */ + public function prepare(string $name, string $query, array $types = null) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) prepare a named statement for later execution with pq\Statement::exec(). + * + * > ***NOTE***: + * If pq\Connection::$unbuffered is TRUE, each call to pq\Connection::getResult() will generate a distinct pq\Result containing exactly one row. + * + * @param string $name The identifying name of the prepared statement. + * @param string $query The query to prepare. + * @param array $types An array of type OIDs for the substitution parameters. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\Statement a prepared statement instance. + */ + public function prepareAsync(string $name, string $query, array $types = null) {} + + /** + * Quote a string for safe use in a query. + * The result is truncated at any zero byte and wrapped in single quotes. + * + * ***NOTE:*** + * Beware of matching character encodings. + * + * @param string $payload The payload to quote for use in a query. + * @throws \pq\Exception\BadMethodCallException + * @return string|false string a single-quote wrapped string safe for literal use in a query. + * or FALSE if quoting fails. + */ + public function quote(string $payload) {} + + /** + * Quote an identifier for safe usage as name. + * + * ***NOTE:*** + * Beware of case-sensitivity. + * + * @param string $name The name to quote. + * @throws \pq\Exception\BadMethodCallException + * @return string|false string the quoted identifier. + * or FALSE if quoting fails. + */ + public function quoteName(string $name) {} + + /** + * Attempt to reset a possibly broken connection to a working state. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function reset() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) reset a possibly broken connection to a working state. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function resetAsync() {} + + /** + * Set a data type converter. + * + * @param \pq\Converter $converter An instance implementing pq\Converter. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + */ + public function setConverter(Converter $converter) {} + + /** + * Begin a transaction. + * + * @param int $isolation Any pq\Transaction isolation level constant + * (defaults to pq\Connection::$defaultTransactionIsolation). + * @param bool $readonly Whether the transaction executes only reads + * (defaults to pq\Connection::$defaultTransactionReadonly). + * @param bool $deferrable Whether the transaction is deferrable + * (defaults to pq\Connection::$defaultTransactionDeferrable). + * + * ***NOTE:*** + * A transaction can only be deferrable if it also is readonly and serializable. + * See the official [PostgreSQL documentation](http://www.postgresql.org/docs/current/static/sql-set-transaction.html) for further information. + * + * @return \pq\Transaction a begun transaction instance. + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\InvalidArgumentException + */ + public function startTransaction(int $isolation = \pq\Transaction::READ_COMMITTED, bool $readonly = false, bool $deferrable = false) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) begin a transaction. + * + * @param int $isolation Any pq\Transaction isolation level constant + * (defaults to pq\Connection::$defaultTransactionIsolation). + * @param bool $readonly Whether the transaction executes only reads + * (defaults to pq\Connection::$defaultTransactionReadonly). + * @param bool $deferrable Whether the transaction is deferrable + * (defaults to pq\Connection::$defaultTransactionDeferrable). + * + * ***NOTE:*** + * A transaction can only be deferrable if it also is readonly and serializable. + * See the official [PostgreSQL documentation](http://www.postgresql.org/docs/current/static/sql-set-transaction.html) for further information. + * + * @return \pq\Transaction an asynchronously begun transaction instance. + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\InvalidArgumentException + */ + public function startTransactionAsync(int $isolation = \pq\Transaction::READ_COMMITTED, bool $readonly = false, bool $deferrable = false) {} + + /** + * Trace protocol communication with the server. + * + * ***NOTE:*** + * Calling pq\Connection::trace() without argument or NULL stops tracing. + * + * @param resource $stream The resource to which the protocol trace will be output. + * (The stream must be castable to STDIO). + * @throws \pq\Exception\BadMethodCallException + * @return bool success. + */ + public function trace($stream = null) {} + + /** + * Unescape bytea data retrieved from the server. + * + * @param string $bytea Bytea data retrieved from the server. + * @throws \pq\Exception\BadMethodCallException + * @return string|false string unescaped binary data. + * or FALSE if unescaping fails. + */ + public function unescapeBytea(string $bytea) {} + + /** + * Stop listening for notifications on channel $channel. + * See pq\Connection::listen(). + * + * @param string $channel The name of a channel which is currently listened on. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function unlisten(string $channel) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) stop listening for notifications on channel $channel. + * See pq\Connection::unlisten() and pq\Connection::listenAsync(). + * + * @param string $channel The name of a channel which is currently listened on. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function unlistenAsync(string $channel) {} + + /** + * Stop applying a data type converter. + * + * @param \pq\Converter $converter A converter previously set with pq\Connection::setConverter(). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + */ + public function unsetConverter(Converter $converter) {} +} +/** + * Interface for type conversions. + */ +interface Converter +{ + /** + * Convert a string received from the PostgreSQL server back to a PHP type. + * + * @param string $data String data received from the server. + * @param int $type The type OID of the data. Irrelevant for single-type converters. + * @return mixed the value converted to a PHP type. + */ + public function convertFromString(string $data, int $type); + + /** + * Convert a value to a string for use in a query. + * + * @param mixed $value The PHP value which should be converted to a string. + * @param int $type The type OID the converter should handle. Irrelevant for singly-type converters. + * @return string a textual representation of the value accepted by the PostgreSQL server. + */ + public function convertToString($value, int $type); + + /** + * Announce which types the implementing converter can handle. + * + * @return array OIDs of handled types. + */ + public function convertTypes(); +} +/** + * Declare a cursor. + */ +class Cursor +{ + /** + * Causes the cursor to return data in binary rather than in text format. You probably do not want to use that. + */ + public const BINARY = 1; + + /** + * The data returned by the cursor should be unaffected by updates to the tables underlying the cursor that take place after the cursor was opened. + */ + public const INSENSITIVE = 2; + + /** + * The cursor should stay usable after the transaction that created it was successfully committed. + */ + public const WITH_HOLD = 4; + + /** + * Force that rows can be retrieved in any order from the cursor. + */ + public const SCROLL = 16; + + /** + * Force that rows are only retrievable in sequiential order. + * + * ***NOTE:*** + * See the [notes in the official PostgreSQL documentation](http://www.postgresql.org/docs/current/static/sql-declare.html#SQL-DECLARE-NOTES) for more information. + */ + public const NO_SCROLL = 32; + + /** + * The connection the cursor was declared on. + * + * @public + * @readonly + * @var \pq\Connection + */ + public $connection; + + /** + * The identifying name of the cursor. + * + * @public + * @readonly + * @var string + */ + public $name; + + /** + * Declare a cursor. + * See pq\Connection::declare(). + * + * @param \pq\Connection $connection The connection on which the cursor should be declared. + * @param string $name The name of the cursor. + * @param int $flags See pq\Cursor constants. + * @param string $query The query for which the cursor should be opened. + * @param bool $async Whether to declare the cursor [asynchronously](pq/Connection/: Asynchronous Usage). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function __construct(Connection $connection, string $name, int $flags, string $query, bool $async) {} + + /** + * Close an open cursor. + * This is a no-op on already closed cursors. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function close() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) close an open cursor. + * See pq\Cursor::close(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function closeAsync() {} + + /** + * Fetch rows from the cursor. + * See pq\Cursor::move(). + * + * @param string $spec What to fetch. + * + * ### Fetch argument: + * + * FETCH and MOVE usually accepts arguments like the following, where `count` is the number of rows: + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\Result the fetched row(s). + */ + public function fetch(string $spec = "1") {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) fetch rows from the cursor. + * See pq\Cursor::fetch(). + * + * @param string $spec What to fetch. + * @param callable $callback as function(pq\Result $res) + * A callback to execute when the result is ready. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function fetchAsync(string $spec = "1", callable $callback = null) {} + + /** + * Move the cursor. + * See pq\Cursor::fetch(). + * + * @param string $spec What to fetch. + * + * ### Fetch argument: + * + * FETCH and MOVE usually accepts arguments like the following, where `count` is the number of rows: + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\Result command status. + */ + public function move(string $spec = "1") {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) move the cursor. + * See pq\Cursor::move(). + * + * @param string $spec What to fetch. + * @param callable $callback as function(pq\Result $res) + * A callback to execute when the command completed. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function moveAsync(string $spec = "1", callable $callback = null) {} + + /** + * Reopen a cursor. + * This is a no-op on already open cursors. + * + * ***NOTE:*** + * Only cursors closed by pq\Cursor::close() will be reopened. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function open() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) reopen a cursor. + * See pq\Cursor::open(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function openAsync() {} +} +/** + * A simple DateTime wrapper with predefined formats which supports stringification and JSON. + */ +class DateTime extends \DateTime implements \JsonSerializable +{ + /** + * The default format of any date/time type automatically converted by pq\Result (depends on the actual type of the column). + * + * @public + * @var string + */ + public $format = "Y-m-d H:i:s.uO"; + + /** + * Stringify the DateTime instance according to pq\DateTime::$format. + * + * @return string the DateTime as string. + */ + public function __toString() {} + + /** + * Serialize to JSON. + * Alias of pq\DateTime::__toString(). + * + * @return string the DateTime stringified according to pq\DateTime::$format. + */ + public function jsonSerialize() {} +} +/** + * A base interface for all pq\Exception classes. + */ +interface Exception +{ + /** + * An invalid argument was passed to a method (pq\Exception\InvalidArgumentException). + */ + public const INVALID_ARGUMENT = 0; + + /** + * A runtime exception occurred (pq\Exception\RuntimeException). + */ + public const RUNTIME = 1; + + /** + * The connection failed (pq\Exception\RuntimeException). + */ + public const CONNECTION_FAILED = 2; + + /** + * An input/output exception occurred (pq\Exception\RuntimeException). + */ + public const IO = 3; + + /** + * Escaping an argument or identifier failed internally (pq\Exception\RuntimeException). + */ + public const ESCAPE = 4; + + /** + * An object's constructor was not called (pq\Exception\BadMethodCallException). + */ + public const UNINITIALIZED = 6; + + /** + * Calling this method was not expected (yet) (pq\Exception\BadMethodCallException). + */ + public const BAD_METHODCALL = 5; + + /** + * SQL syntax error (pq\Exception\DomainException). + */ + public const SQL = 8; + + /** + * Implementation domain error (pq\Exception\DomainException). + */ + public const DOMAIN = 7; +} +/** + * A *large object*. + * + * ***NOTE:*** + * Working with *large objects* requires an active transaction. + */ +class LOB +{ + /** + * 0, representing an invalid OID. + */ + public const INVALID_OID = 0; + + /** + * Read/write mode. + */ + public const RW = 393216; + + /** + * The transaction wrapping the operations on the *large object*. + * + * @public + * @readonly + * @var \pq\Transaction + */ + public $transaction; + + /** + * The OID of the *large object*. + * + * @public + * @readonly + * @var int + */ + public $oid; + + /** + * The stream connected to the *large object*. + * + * @public + * @readonly + * @var resource + */ + public $stream; + + /** + * Open or create a *large object*. + * See pq\Transaction::openLOB() and pq\Transaction::createLOB(). + * + * @param \pq\Transaction $txn The transaction which wraps the *large object* operations. + * @param int $oid The OID of the existing *large object* to open. + * @param int $mode Access mode (read, write or read/write). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function __construct(Transaction $txn, int $oid = \pq\LOB::INVALID_OID, int $mode = \pq\LOB::RW) {} + + /** + * Read a string of data from the current position of the *large object*. + * + * @param int $length The amount of bytes to read from the *large object*. + * @param int &$read The amount of bytes actually read from the *large object*. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return string the data read. + */ + public function read(int $length = 0x1000, int &$read = null) {} + + /** + * Seek to a position within the *large object*. + * + * @param int $offset The position to seek to. + * @param int $whence From where to seek (SEEK_SET, SEEK_CUR or SEEK_END). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return int the new position. + */ + public function seek(int $offset, int $whence = SEEK_SET) {} + + /** + * Retrieve the current position within the *large object*. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return int the current position. + */ + public function tell() {} + + /** + * Truncate the *large object*. + * + * @param int $length The length to truncate to. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function truncate(int $length = 0) {} + + /** + * Write data to the *large object*. + * + * @param string $data The data that should be written to the current position. + * @return int the number of bytes written. + */ + public function write(string $data) {} +} +/** + * A query result. + * + * See [Fetching Results](pq/Result/: Fetching Results) for a general overview. + */ +class Result implements \Traversable, \Countable +{ + /** + * The query sent to the server was empty. + */ + public const EMPTY_QUERY = 0; + + /** + * The query did not generate a result set and completed successfully. + */ + public const COMMAND_OK = 1; + + /** + * The query successfully generated a result set. + */ + public const TUPLES_OK = 2; + + /** + * The result contains a single row of the result set when using pq\Connection::$unbuffered. + */ + public const SINGLE_TUPLE = 9; + + /** + * COPY data can be received from the server. + */ + public const COPY_OUT = 3; + + /** + * COPY data can be sent to the server. + */ + public const COPY_IN = 4; + + /** + * COPY in/out data transfer in progress. + */ + public const COPY_BOTH = 8; + + /** + * The server sent a bad response. + */ + public const BAD_RESPONSE = 5; + + /** + * A nonfatal error (notice or warning) occurred. + */ + public const NONFATAL_ERROR = 6; + + /** + * A fatal error occurred. + */ + public const FATAL_ERROR = 7; + + /** + * Fetch rows numerically indexed, where the index start with 0. + */ + public const FETCH_ARRAY = 0; + + /** + * Fetch rows associatively indexed by column name. + */ + public const FETCH_ASSOC = 1; + + /** + * Fetch rows as stdClass instance, where the column names are the property names. + */ + public const FETCH_OBJECT = 2; + + /** + * Automatically convert 'f' and 't' to FALSE and TRUE and vice versa. + */ + public const CONV_BOOL = 1; + + /** + * Automatically convert integral strings to either int if it fits into maximum integer size or else to float and vice versa. + */ + public const CONV_INT = 2; + + /** + * Automatically convert floating point numbers. + */ + public const CONV_FLOAT = 4; + + /** + * Do all scalar conversions listed above. + */ + public const CONV_SCALAR = 15; + + /** + * Automatically convert arrays. + */ + public const CONV_ARRAY = 16; + + /** + * Automatically convert date strings to pq\DateTime and vice versa. + */ + public const CONV_DATETIME = 32; + + /** + * Automatically convert JSON. + */ + public const CONV_JSON = 256; + + /** + * Do all of the above. + */ + public const CONV_ALL = 65535; + + /** + * A [status constant](pq/Result#Status.values:). + * + * @public + * @readonly + * @var int + */ + public $status; + + /** + * The accompanying status message. + * + * @public + * @readonly + * @var string + */ + public $statusMessage; + + /** + * Any error message if $status indicates an error. + * + * @public + * @readonly + * @var string + */ + public $errorMessage; + + /** + * The number of rows in the result set. + * + * @public + * @readonly + * @var int + */ + public $numRows; + + /** + * The number of fields in a single tuple of the result set. + * + * @public + * @readonly + * @var int + */ + public $numCols; + + /** + * The number of rows affected by a statement. + * + * @public + * @readonly + * @var int + */ + public $affectedRows; + + /** + * Error details. See [PQresultErrorField](https://www.postgresql.org/docs/current/static/libpq-exec.html#LIBPQ-PQRESULTERRORFIELD) docs. + * + * @public + * @readonly + * @var array + */ + public $diag; + + /** + * The [type of return value](pq/Result#Fetch.types:) the fetch methods should return when no fetch type argument was given. Defaults to pq\Connection::$defaultFetchType. + * + * @public + * @var int + */ + public $fetchType = \pq\Result::FETCH_ARRAY; + + /** + * What [type of conversions](pq/Result#Conversion.bits:) to perform automatically. + * + * @public + * @var int + */ + public $autoConvert = \pq\Result::CONV_ALL; + + /** + * Bind a variable to a result column. + * See pq\Result::fetchBound(). + * + * @param mixed $col The column name or index to bind to. + * @param mixed $var The variable reference. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return bool success. + */ + public function bind($col, $var) {} + + /** + * Count number of rows in this result set. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return int the number of rows. + */ + public function count() {} + + /** + * Describe a prepared statement. + * + * ***NOTE:*** + * This will only return meaningful information for a result of pq\Statement::desc(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return array list of parameter type OIDs for the prepared statement. + */ + public function desc() {} + + /** + * Fetch all rows at once. + * + * @param int $fetch_type The type the return value should have, see pq\Result::FETCH_* constants, defaults to pq\Result::$fetchType. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @return array all fetched rows. + */ + public function fetchAll(int $fetch_type = null) {} + + /** + * Fetch all rows of a single column. + * + * @param int $col The column name or index to fetch. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return array list of column values. + */ + public function fetchAllCols(int $col = 0) {} + + /** + * Iteratively fetch a row into bound variables. + * See pq\Result::bind(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return array|null array the fetched row as numerically indexed array. + * or NULL when iteration ends. + */ + public function fetchBound() {} + + /** + * Iteratively fetch a single column. + * + * @param mixed $ref The variable where the column value will be stored in. + * @param mixed $col The column name or index. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return bool|null bool success. + * or NULL when iteration ends. + */ + public function fetchCol($ref, $col = 0) {} + + /** + * Iteratively fetch a row. + * + * @param int $fetch_type The type the return value should have, see pq\Result::FETCH_* constants, defaults to pq\Result::$fetchType. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return array|array|object|null array numerically indexed for pq\Result::FETCH_ARRAY + * or array associatively indexed for pq\Result::FETCH_ASSOC + * or object stdClass instance for pq\Result::FETCH_OBJECT + * or NULL when iteration ends. + */ + public function fetchRow(int $fetch_type = null) {} + + /** + * Fetch the complete result set as a simple map, a *multi dimensional array*, each dimension indexed by a column. + * + * @param mixed $keys The the column indices/names used to index the map. + * @param mixed $vals The column indices/names which should build up the leaf entry of the map. + * @param int $fetch_type The type the return value should have, see pq\Result::FETCH_* constants, defaults to pq\Result::$fetchType. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return array |object, the mapped columns. + */ + public function map($keys = 0, $vals = null, int $fetch_type = null) {} +} +/** + * A named prepared statement. + * See pq\Connection::prepare(). + */ +class Statement +{ + /** + * The connection to the server. + * + * @public + * @readonly + * @var \pq\Connection + */ + public $connection; + + /** + * The identifiying name of the prepared statement. + * + * @public + * @readonly + * @var string + */ + public $name; + + /** + * The query string used to prepare the statement. + * + * @public + * @readonly + * @var string + */ + public $query; + + /** + * List of corresponding query parameter type OIDs for the prepared statement. + * + * @public + * @readonly + * @var array + */ + public $types; + + /** + * Prepare a new statement. + * See pq\Connection::prepare(). + * + * @param \pq\Connection $conn The connection to prepare the statement on. + * @param string $name The name identifying this statement. + * @param string $query The actual query to prepare. + * @param array $types A list of corresponding query parameter type OIDs. + * @param bool $async Whether to prepare the statement [asynchronously](pq/Connection/: Asynchronous Usage). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + */ + public function __construct(Connection $conn, string $name, string $query, array $types = null, bool $async = false) {} + + /** + * Bind a variable to an input parameter. + * + * @param int $param_no The parameter index to bind to. + * @param mixed &$param_ref The variable to bind. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + */ + public function bind(int $param_no, &$param_ref) {} + + /** + * Free the server resources used by the prepared statement, so it can no longer be executed. + * This is done implicitly when the object is destroyed. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function deallocate() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) free the server resources used by the + * prepared statement, so it can no longer be executed. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function deallocateAsync() {} + + /** + * Describe the parameters of the prepared statement. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + * @return array list of type OIDs of the substitution parameters. + */ + public function desc() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) describe the parameters of the prepared statement. + * + * @param callable $callback as function(array $oids) + * A callback to receive list of type OIDs of the substitution parameters. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function descAsync(callable $callback) {} + + /** + * Execute the prepared statement. + * + * @param array $params Any parameters to substitute in the prepared statement (defaults to any bou + * nd variables). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\Result the result of the execution of the prepared statement. + */ + public function exec(array $params = null) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) execute the prepared statement. + * + * @param array $params Any parameters to substitute in the prepared statement (defaults to any bou + * nd variables). + * @param callable $cb as function(\pq\Result $res) : void + * Result handler callback. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function execAsync(array $params = null, callable $cb = null) {} + + /** + * Re-prepare a statement that has been deallocated. This is a no-op on already open statements. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function prepare() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) re-prepare a statement that has been + * deallocated. This is a no-op on already open statements. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function prepareAsync() {} +} +/** + * A database transaction. + * + * ***NOTE:*** + * Transactional properties like pq\Transaction::$isolation, pq\Transaction::$readonly and pq\Transaction::$deferrable can be changed after the transaction begun and the first query has been executed. Doing this will lead to appropriate `SET TRANSACTION` queries. + */ +class Transaction +{ + /** + * Transaction isolation level where only rows committed before the transaction began can be seen. + */ + public const READ_COMMITTED = 0; + + /** + * Transaction isolation level where only rows committed before the first query was executed in this transaction. + */ + public const REPEATABLE_READ = 1; + + /** + * Transaction isolation level that guarantees serializable repeatability which might lead to serialization_failure on high concurrency. + */ + public const SERIALIZABLE = 2; + + /** + * The connection the transaction was started on. + * + * @public + * @readonly + * @var \pq\Connection + */ + public $connection; + + /** + * The transaction isolation level. + * + * @public + * @var int + */ + public $isolation = \pq\Transaction::READ_COMMITTED; + + /** + * Whether this transaction performs read only queries. + * + * @public + * @var bool + */ + public $readonly = false; + + /** + * Whether the transaction is deferrable. See pq\Connection::startTransaction(). + * + * @public + * @var bool + */ + public $deferrable = false; + + /** + * Start a transaction. + * See pq\Connection::startTransaction(). + * + * @param \pq\Connection $conn The connection to start the transaction on. + * @param bool $async Whether to start the transaction [asynchronously](pq/Connection/: Asynchronous Usage). + * @param int $isolation The transaction isolation level (defaults to pq\Connection::$defaultTransactionIsolation). + * @param bool $readonly Whether the transaction is readonly (defaults to pq\Connection::$defaultTransactionReadonly). + * @param bool $deferrable Whether the transaction is deferrable (defaults to pq\Connection::$defaultTransactionDeferrable). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function __construct(Connection $conn, bool $async = false, int $isolation = \pq\Transaction::READ_COMMITTED, bool $readonly = false, bool $deferrable = false) {} + + /** + * Commit the transaction or release the previous savepoint. + * See pq\Transaction::savepoint(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + */ + public function commit() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) commit the transaction or release the previous savepoint. + * See pq\Transaction::commit() and pq\Transaction::savepoint(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function commitAsync() {} + + /** + * Create a new *large object* and open it. + * See pq\Transaction::openLOB(). + * + * @param int $mode How to open the *large object* (read, write or both; see pq\LOB constants). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\LOB instance of the new *large object*. + */ + public function createLOB(int $mode = \pq\LOB::RW) {} + + /** + * Export a *large object* to a local file. + * See pq\Transaction::importLOB(). + * + * @param int $oid The OID of the *large object*. + * @param string $path The path of a local file to export to. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function exportLOB(int $oid, string $path) {} + + /** + * Export a snapshot for transaction synchronization. + * See pq\Transaction::importSnapshot(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + * @return string the snapshot identifier usable with pq\Transaction::importSnapshot(). + */ + public function exportSnapshot() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) export a snapshot for transaction synchronization. + * See pq\Transaction::exportSnapshot(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function exportSnapshotAsync() {} + + /** + * Import a local file into a *large object*. + * + * @param string $local_path A path to a local file to import. + * @param int $oid The target OID. A new *large object* will be created if INVALID_OID. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return int the (new) OID of the *large object*. + */ + public function importLOB(string $local_path, int $oid = \pq\LOB::INVALID_OID) {} + + /** + * Import a snapshot from another transaction to synchronize with. + * See pq\Transaction::exportSnapshot(). + * + * ***NOTE:*** + * The transaction must have an isolation level of at least pq\Transaction::REPEATABLE_READ. + * + * @param string $snapshot_id The snapshot identifier obtained by exporting a snapshot from a transaction. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + */ + public function importSnapshot(string $snapshot_id) {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) import a snapshot from another transaction to synchronize with. + * See pq\Transaction::importSnapshot(). + * + * ***NOTE:*** + * The transaction must have an isolation level of at least pq\Transaction::REPEATABLE_READ. + * + * @param string $snapshot_id The snapshot identifier obtained by exporting a snapshot from a transaction. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function importSnapshotAsync(string $snapshot_id) {} + + /** + * Open a *large object*. + * See pq\Transaction::createLOB(). + * + * @param int $oid The OID of the *large object*. + * @param int $mode Operational mode; read, write or both. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\LOB instance of the opened *large object*. + */ + public function openLOB(int $oid, int $mode = \pq\LOB::RW) {} + + /** + * Rollback the transaction or to the previous savepoint within this transaction. + * See pq\Transaction::commit() and pq\Transaction::savepoint(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @throws \pq\Exception\DomainException + */ + public function rollback() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) rollback the transaction or to the previous savepoint within this transaction. + * See pq\Transaction::rollback() and pq\Transaction::savepoint(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function rollbackAsync() {} + + /** + * Create a `SAVEPOINT` within this transaction. + * + * ***NOTE:*** + * pq\Transaction tracks an internal counter as savepoint identifier. + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function savepoint() {} + + /** + * [Asynchronously](pq/Connection/: Asynchronous Usage) create a `SAVEPOINT` within this transaction. + * See pq\Transaction::savepoint(). + * + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function savepointAsync() {} + + /** + * Unlink a *large object*. + * See pq\Transaction::createLOB(). + * + * @param int $oid The OID of the *large object*. + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + * @return \pq\LOB instance of the opened *large object*. + */ + public function unlinkLOB(int $oid) {} +} +/** + * Accessor to the PostgreSQL `pg_type` relation. + * See [here for an overview](pq/Types/: Overview). + */ +class Types implements \ArrayAccess +{ + /** + * OID of the `bool` type. + */ + public const BOOL = 16; + + /** + * OID of the `bytea` type. + */ + public const BYTEA = 17; + + /** + * OID of the `char` type. + */ + public const CHAR = 18; + + /** + * OID of the `name` type. + */ + public const NAME = 19; + + /** + * OID of the `int8` type. + */ + public const INT8 = 20; + + /** + * OID of the `int2` type. + */ + public const INT2 = 21; + + /** + * OID of the `int2vector` type. + */ + public const INT2VECTOR = 22; + + /** + * OID of the `int4` type. + */ + public const INT4 = 23; + + /** + * OID of the `regproc` type. + */ + public const REGPROC = 24; + + /** + * OID of the `text` type. + */ + public const TEXT = 25; + + /** + * OID of the `oid` type. + */ + public const OID = 26; + + /** + * OID of the `tid` type. + */ + public const TID = 27; + + /** + * OID of the `xid` type. + */ + public const XID = 28; + + /** + * OID of the `cid` type. + */ + public const CID = 29; + + /** + * OID of the `oidvector` type. + */ + public const OIDVECTOR = 30; + + /** + * OID of the `pg_type` type. + */ + public const PG_TYPE = 71; + + /** + * OID of the `pg_attribute` type. + */ + public const PG_ATTRIBUTE = 75; + + /** + * OID of the `pg_proc` type. + */ + public const PG_PROC = 81; + + /** + * OID of the `pg_class` type. + */ + public const PG_CLASS = 83; + + /** + * OID of the `json` type. + */ + public const JSON = 114; + + /** + * OID of the `xml` type. + */ + public const XML = 142; + + /** + * OID of the `xmlarray` type. + */ + public const XMLARRAY = 143; + + /** + * OID of the `jsonarray` type. + */ + public const JSONARRAY = 199; + + /** + * OID of the `pg_node_tree` type. + */ + public const PG_NODE_TREE = 194; + + /** + * OID of the `smgr` type. + */ + public const SMGR = 210; + + /** + * OID of the `point` type. + */ + public const POINT = 600; + + /** + * OID of the `lseg` type. + */ + public const LSEG = 601; + + /** + * OID of the `path` type. + */ + public const PATH = 602; + + /** + * OID of the `box` type. + */ + public const BOX = 603; + + /** + * OID of the `polygon` type. + */ + public const POLYGON = 604; + + /** + * OID of the `line` type. + */ + public const LINE = 628; + + /** + * OID of the `linearray` type. + */ + public const LINEARRAY = 629; + + /** + * OID of the `float4` type. + */ + public const FLOAT4 = 700; + + /** + * OID of the `float8` type. + */ + public const FLOAT8 = 701; + + /** + * OID of the `abstime` type. + */ + public const ABSTIME = 702; + + /** + * OID of the `reltime` type. + */ + public const RELTIME = 703; + + /** + * OID of the `tinterval` type. + */ + public const TINTERVAL = 704; + + /** + * OID of the `unknown` type. + */ + public const UNKNOWN = 705; + + /** + * OID of the `circle` type. + */ + public const CIRCLE = 718; + + /** + * OID of the `circlearray` type. + */ + public const CIRCLEARRAY = 719; + + /** + * OID of the `money` type. + */ + public const MONEY = 790; + + /** + * OID of the `moneyarray` type. + */ + public const MONEYARRAY = 791; + + /** + * OID of the `macaddr` type. + */ + public const MACADDR = 829; + + /** + * OID of the `inet` type. + */ + public const INET = 869; + + /** + * OID of the `cidr` type. + */ + public const CIDR = 650; + + /** + * OID of the `boolarray` type. + */ + public const BOOLARRAY = 1000; + + /** + * OID of the `byteaarray` type. + */ + public const BYTEAARRAY = 1001; + + /** + * OID of the `chararray` type. + */ + public const CHARARRAY = 1002; + + /** + * OID of the `namearray` type. + */ + public const NAMEARRAY = 1003; + + /** + * OID of the `int2array` type. + */ + public const INT2ARRAY = 1005; + + /** + * OID of the `int2vectorarray` type. + */ + public const INT2VECTORARRAY = 1006; + + /** + * OID of the `int4array` type. + */ + public const INT4ARRAY = 1007; + + /** + * OID of the `regprocarray` type. + */ + public const REGPROCARRAY = 1008; + + /** + * OID of the `textarray` type. + */ + public const TEXTARRAY = 1009; + + /** + * OID of the `oidarray` type. + */ + public const OIDARRAY = 1028; + + /** + * OID of the `tidarray` type. + */ + public const TIDARRAY = 1010; + + /** + * OID of the `xidarray` type. + */ + public const XIDARRAY = 1011; + + /** + * OID of the `cidarray` type. + */ + public const CIDARRAY = 1012; + + /** + * OID of the `oidvectorarray` type. + */ + public const OIDVECTORARRAY = 1013; + + /** + * OID of the `bpchararray` type. + */ + public const BPCHARARRAY = 1014; + + /** + * OID of the `varchararray` type. + */ + public const VARCHARARRAY = 1015; + + /** + * OID of the `int8array` type. + */ + public const INT8ARRAY = 1016; + + /** + * OID of the `pointarray` type. + */ + public const POINTARRAY = 1017; + + /** + * OID of the `lsegarray` type. + */ + public const LSEGARRAY = 1018; + + /** + * OID of the `patharray` type. + */ + public const PATHARRAY = 1019; + + /** + * OID of the `boxarray` type. + */ + public const BOXARRAY = 1020; + + /** + * OID of the `float4array` type. + */ + public const FLOAT4ARRAY = 1021; + + /** + * OID of the `float8array` type. + */ + public const FLOAT8ARRAY = 1022; + + /** + * OID of the `abstimearray` type. + */ + public const ABSTIMEARRAY = 1023; + + /** + * OID of the `reltimearray` type. + */ + public const RELTIMEARRAY = 1024; + + /** + * OID of the `tintervalarray` type. + */ + public const TINTERVALARRAY = 1025; + + /** + * OID of the `polygonarray` type. + */ + public const POLYGONARRAY = 1027; + + /** + * OID of the `aclitem` type. + */ + public const ACLITEM = 1033; + + /** + * OID of the `aclitemarray` type. + */ + public const ACLITEMARRAY = 1034; + + /** + * OID of the `macaddrarray` type. + */ + public const MACADDRARRAY = 1040; + + /** + * OID of the `inetarray` type. + */ + public const INETARRAY = 1041; + + /** + * OID of the `cidrarray` type. + */ + public const CIDRARRAY = 651; + + /** + * OID of the `cstringarray` type. + */ + public const CSTRINGARRAY = 1263; + + /** + * OID of the `bpchar` type. + */ + public const BPCHAR = 1042; + + /** + * OID of the `varchar` type. + */ + public const VARCHAR = 1043; + + /** + * OID of the `date` type. + */ + public const DATE = 1082; + + /** + * OID of the `time` type. + */ + public const TIME = 1083; + + /** + * OID of the `timestamp` type. + */ + public const TIMESTAMP = 1114; + + /** + * OID of the `timestamparray` type. + */ + public const TIMESTAMPARRAY = 1115; + + /** + * OID of the `datearray` type. + */ + public const DATEARRAY = 1182; + + /** + * OID of the `timearray` type. + */ + public const TIMEARRAY = 1183; + + /** + * OID of the `timestamptz` type. + */ + public const TIMESTAMPTZ = 1184; + + /** + * OID of the `timestamptzarray` type. + */ + public const TIMESTAMPTZARRAY = 1185; + + /** + * OID of the `interval` type. + */ + public const INTERVAL = 1186; + + /** + * OID of the `intervalarray` type. + */ + public const INTERVALARRAY = 1187; + + /** + * OID of the `numericarray` type. + */ + public const NUMERICARRAY = 1231; + + /** + * OID of the `timetz` type. + */ + public const TIMETZ = 1266; + + /** + * OID of the `timetzarray` type. + */ + public const TIMETZARRAY = 1270; + + /** + * OID of the `bit` type. + */ + public const BIT = 1560; + + /** + * OID of the `bitarray` type. + */ + public const BITARRAY = 1561; + + /** + * OID of the `varbit` type. + */ + public const VARBIT = 1562; + + /** + * OID of the `varbitarray` type. + */ + public const VARBITARRAY = 1563; + + /** + * OID of the `numeric` type. + */ + public const NUMERIC = 1700; + + /** + * OID of the `refcursor` type. + */ + public const REFCURSOR = 1790; + + /** + * OID of the `refcursorarray` type. + */ + public const REFCURSORARRAY = 2201; + + /** + * OID of the `regprocedure` type. + */ + public const REGPROCEDURE = 2202; + + /** + * OID of the `regoper` type. + */ + public const REGOPER = 2203; + + /** + * OID of the `regoperator` type. + */ + public const REGOPERATOR = 2204; + + /** + * OID of the `regclass` type. + */ + public const REGCLASS = 2205; + + /** + * OID of the `regtype` type. + */ + public const REGTYPE = 2206; + + /** + * OID of the `regprocedurearray` type. + */ + public const REGPROCEDUREARRAY = 2207; + + /** + * OID of the `regoperarray` type. + */ + public const REGOPERARRAY = 2208; + + /** + * OID of the `regoperatorarray` type. + */ + public const REGOPERATORARRAY = 2209; + + /** + * OID of the `regclassarray` type. + */ + public const REGCLASSARRAY = 2210; + + /** + * OID of the `regtypearray` type. + */ + public const REGTYPEARRAY = 2211; + + /** + * OID of the `uuid` type. + */ + public const UUID = 2950; + + /** + * OID of the `uuidarray` type. + */ + public const UUIDARRAY = 2951; + + /** + * OID of the `tsvector` type. + */ + public const TSVECTOR = 3614; + + /** + * OID of the `gtsvector` type. + */ + public const GTSVECTOR = 3642; + + /** + * OID of the `tsquery` type. + */ + public const TSQUERY = 3615; + + /** + * OID of the `regconfig` type. + */ + public const REGCONFIG = 3734; + + /** + * OID of the `regdictionary` type. + */ + public const REGDICTIONARY = 3769; + + /** + * OID of the `tsvectorarray` type. + */ + public const TSVECTORARRAY = 3643; + + /** + * OID of the `gtsvectorarray` type. + */ + public const GTSVECTORARRAY = 3644; + + /** + * OID of the `tsqueryarray` type. + */ + public const TSQUERYARRAY = 3645; + + /** + * OID of the `regconfigarray` type. + */ + public const REGCONFIGARRAY = 3735; + + /** + * OID of the `regdictionaryarray` type. + */ + public const REGDICTIONARYARRAY = 3770; + + /** + * OID of the `txid_snapshot` type. + */ + public const TXID_SNAPSHOT = 2970; + + /** + * OID of the `txid_snapshotarray` type. + */ + public const TXID_SNAPSHOTARRAY = 2949; + + /** + * OID of the `int4range` type. + */ + public const INT4RANGE = 3904; + + /** + * OID of the `int4rangearray` type. + */ + public const INT4RANGEARRAY = 3905; + + /** + * OID of the `numrange` type. + */ + public const NUMRANGE = 3906; + + /** + * OID of the `numrangearray` type. + */ + public const NUMRANGEARRAY = 3907; + + /** + * OID of the `tsrange` type. + */ + public const TSRANGE = 3908; + + /** + * OID of the `tsrangearray` type. + */ + public const TSRANGEARRAY = 3909; + + /** + * OID of the `tstzrange` type. + */ + public const TSTZRANGE = 3910; + + /** + * OID of the `tstzrangearray` type. + */ + public const TSTZRANGEARRAY = 3911; + + /** + * OID of the `daterange` type. + */ + public const DATERANGE = 3912; + + /** + * OID of the `daterangearray` type. + */ + public const DATERANGEARRAY = 3913; + + /** + * OID of the `int8range` type. + */ + public const INT8RANGE = 3926; + + /** + * OID of the `int8rangearray` type. + */ + public const INT8RANGEARRAY = 3927; + + /** + * OID of the `record` type. + */ + public const RECORD = 2249; + + /** + * OID of the `recordarray` type. + */ + public const RECORDARRAY = 2287; + + /** + * OID of the `cstring` type. + */ + public const CSTRING = 2275; + + /** + * OID of the `any` type. + */ + public const ANY = 2276; + + /** + * OID of the `anyarray` type. + */ + public const ANYARRAY = 2277; + + /** + * OID of the `void` type. + */ + public const VOID = 2278; + + /** + * OID of the `trigger` type. + */ + public const TRIGGER = 2279; + + /** + * OID of the `event_trigger` type. + */ + public const EVENT_TRIGGER = 3838; + + /** + * OID of the `language_handler` type. + */ + public const LANGUAGE_HANDLER = 2280; + + /** + * OID of the `internal` type. + */ + public const INTERNAL = 2281; + + /** + * OID of the `opaque` type. + */ + public const OPAQUE = 2282; + + /** + * OID of the `anyelement` type. + */ + public const ANYELEMENT = 2283; + + /** + * OID of the `anynonarray` type. + */ + public const ANYNONARRAY = 2776; + + /** + * OID of the `anyenum` type. + */ + public const ANYENUM = 3500; + + /** + * OID of the `fdw_handler` type. + */ + public const FDW_HANDLER = 3115; + + /** + * OID of the `anyrange` type. + */ + public const ANYRANGE = 3831; + + /** + * The connection which was used to obtain type information. + * + * @public + * @readonly + * @var \pq\Connection + */ + public $connection; + + /** + * Create a new instance populated with information obtained from the `pg_type` relation. + * + * @param \pq\Connection $conn The connection to use. + * @param array $namespaces Which namespaces to query (defaults to `public` and `pg_catalog`). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function __construct(Connection $conn, array $namespaces = null) {} + + /** + * Refresh type information from `pg_type`. + * + * @param array $namespaces Which namespaces to query (defaults to `public` and `pg_catalog`). + * @throws \pq\Exception\InvalidArgumentException + * @throws \pq\Exception\BadMethodCallException + * @throws \pq\Exception\RuntimeException + */ + public function refresh(array $namespaces = null) {} +} + +namespace pq\Exception; + +/** + * A method call was not expected. + */ +class BadMethodCallException extends \BadMethodCallException implements \pq\Exception {} +/** + * Implementation or SQL syntax error. + */ +class DomainException extends \DomainException implements \pq\Exception +{ + /** + * The SQLSTATE code, see the [official documentation](http://www.postgresql.org/docs/current/static/errcodes-appendix.html) for further information. + * + * @public + * @readonly + * @var string + */ + public $sqlstate; +} +/** + * An invalid argument was passed to a method. + */ +class InvalidArgumentException extends \InvalidArgumentException implements \pq\Exception {} +/** + * A runtime exception occurred. + */ +class RuntimeException extends \RuntimeException implements \pq\Exception {} diff --git a/phpstorm-stubs/pspell/pspell.php b/phpstorm-stubs/pspell/pspell.php new file mode 100644 index 0000000..96f5222 --- /dev/null +++ b/phpstorm-stubs/pspell/pspell.php @@ -0,0 +1,295 @@ + + * The language parameter is the language code which consists of the + * two letter ISO 639 language code and an optional two letter ISO + * 3166 country code after a dash or underscore. + * + * @param string $spelling+ * The spelling parameter is the requested spelling for languages + * with more than one spelling such as English. Known values are + * 'american', 'british', and 'canadian'. + *
+ * @param string $jargon+ * The jargon parameter contains extra information to distinguish + * two different words lists that have the same language and + * spelling parameters. + *
+ * @param string $encoding+ * The encoding parameter is the encoding that words are expected to + * be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', + * 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned + * 32'. This parameter is largely untested, so be careful when + * using. + *
+ * @param int $mode+ * The mode parameter is the mode in which spellchecker will work. + * There are several modes available: + * PSPELL_FAST - Fast mode (least number of + * suggestions)
+ * @return int|false the dictionary link identifier on success or FALSE on failure. + */ +#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary|false'], default: 'int|false')] +function pspell_new(string $language, string $spelling = "", string $jargon = "", string $encoding = "", int $mode = 0) {} + +/** + * Load a new dictionary with personal wordlist + * @link https://php.net/manual/en/function.pspell-new-personal.php + * @param string $filename+ * The file where words added to the personal list will be stored. + * It should be an absolute filename beginning with '/' because otherwise + * it will be relative to $HOME, which is "/root" for most systems, and + * is probably not what you want. + *
+ * @param string $language+ * The language code which consists of the two letter ISO 639 language + * code and an optional two letter ISO 3166 country code after a dash + * or underscore. + *
+ * @param string $spelling+ * The requested spelling for languages with more than one spelling such + * as English. Known values are 'american', 'british', and 'canadian'. + *
+ * @param string $jargon+ * Extra information to distinguish two different words lists that have + * the same language and spelling parameters. + *
+ * @param string $encoding+ * The encoding that words are expected to be in. Valid values are + * utf-8, iso8859-*, + * koi8-r, viscii, + * cp1252, machine unsigned 16, + * machine unsigned 32. + *
+ * @param int $mode+ * The mode in which spellchecker will work. There are several modes available: + * PSPELL_FAST - Fast mode (least number of + * suggestions)
+ * @return int|false the dictionary link identifier for use in other pspell functions. + */ +#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary|false'], default: 'int|false')] +function pspell_new_personal(string $filename, string $language, string $spelling = "", string $jargon = "", string $encoding = "", int $mode = 0) {} + +/** + * Load a new dictionary with settings based on a given config + * @link https://php.net/manual/en/function.pspell-new-config.php + * @param int $config+ * The config parameter is the one returned by + * pspell_config_create when the config was created. + *
+ * @return int|false a dictionary link identifier on success. + */ +#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary|false'], default: 'int|false')] +function pspell_new_config(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config) {} + +/** + * Check a word + * @link https://php.net/manual/en/function.pspell-check.php + * @param int $dictionary + * @param string $word+ * The tested word. + *
+ * @return bool TRUE if the spelling is correct, FALSE if not. + */ +function pspell_check(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary, string $word): bool {} + +/** + * Suggest spellings of a word + * @link https://php.net/manual/en/function.pspell-suggest.php + * @param int $dictionary + * @param string $word+ * The tested word. + *
+ * @return array|false an array of possible spellings. + */ +function pspell_suggest(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary, string $word): array|false {} + +/** + * Store a replacement pair for a word + * @link https://php.net/manual/en/function.pspell-store-replacement.php + * @param int $dictionary+ * A dictionary link identifier, opened with + * pspell_new_personal + *
+ * @param string $misspelled+ * The misspelled word. + *
+ * @param string $correct+ * The fixed spelling for the misspelled word. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_store_replacement(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary, string $misspelled, string $correct): bool {} + +/** + * Add the word to a personal wordlist + * @link https://php.net/manual/en/function.pspell-add-to-personal.php + * @param int $dictionary + * @param string $word+ * The added word. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_add_to_personal(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary, string $word): bool {} + +/** + * Add the word to the wordlist in the current session + * @link https://php.net/manual/en/function.pspell-add-to-session.php + * @param int $dictionary + * @param string $word+ * The added word. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_add_to_session(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary, string $word): bool {} + +/** + * Clear the current session + * @link https://php.net/manual/en/function.pspell-clear-session.php + * @param int $dictionary + * @return bool TRUE on success or FALSE on failure. + */ +function pspell_clear_session(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary): bool {} + +/** + * Save the personal wordlist to a file + * @link https://php.net/manual/en/function.pspell-save-wordlist.php + * @param int $dictionary+ * A dictionary link identifier opened with + * pspell_new_personal. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_save_wordlist(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Dictionary'], default: 'int')] $dictionary): bool {} + +/** + * Create a config used to open a dictionary + * @link https://php.net/manual/en/function.pspell-config-create.php + * @param string $language+ * The language parameter is the language code which consists of the + * two letter ISO 639 language code and an optional two letter ISO + * 3166 country code after a dash or underscore. + *
+ * @param string $spelling+ * The spelling parameter is the requested spelling for languages + * with more than one spelling such as English. Known values are + * 'american', 'british', and 'canadian'. + *
+ * @param string $jargon+ * The jargon parameter contains extra information to distinguish + * two different words lists that have the same language and + * spelling parameters. + *
+ * @param string $encoding+ * The encoding parameter is the encoding that words are expected to + * be in. Valid values are 'utf-8', 'iso8859-*', 'koi8-r', + * 'viscii', 'cp1252', 'machine unsigned 16', 'machine unsigned + * 32'. This parameter is largely untested, so be careful when + * using. + *
+ * @return int Retuns a pspell config identifier. + */ +#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] +function pspell_config_create(string $language, string $spelling = "", string $jargon = "", string $encoding = "") {} + +/** + * Consider run-together words as valid compounds + * @link https://php.net/manual/en/function.pspell-config-runtogether.php + * @param int $config + * @param bool $allow+ * TRUE if run-together words should be treated as legal compounds, + * FALSE otherwise. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_runtogether(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, bool $allow): bool {} + +/** + * Change the mode number of suggestions returned + * @link https://php.net/manual/en/function.pspell-config-mode.php + * @param int $config + * @param int $mode+ * The mode parameter is the mode in which spellchecker will work. + * There are several modes available: + * PSPELL_FAST - Fast mode (least number of + * suggestions)
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_mode(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, int $mode): bool {} + +/** + * Ignore words less than N characters long + * @link https://php.net/manual/en/function.pspell-config-ignore.php + * @param int $config + * @param int $min_length+ * Words less than n characters will be skipped. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_ignore(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, int $min_length): bool {} + +/** + * Set a file that contains personal wordlist + * @link https://php.net/manual/en/function.pspell-config-personal.php + * @param int $config + * @param string $filename+ * The personal wordlist. If the file does not exist, it will be created. + * The file should be writable by whoever PHP runs as (e.g. nobody). + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_personal(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, string $filename): bool {} + +/** + * Location of the main word list + * @link https://php.net/manual/en/function.pspell-config-dict-dir.php + * @param int $config + * @param string $directory + * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_dict_dir(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, string $directory): bool {} + +/** + * location of language data files + * @link https://php.net/manual/en/function.pspell-config-data-dir.php + * @param int $config + * @param string $directory + * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_data_dir(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, string $directory): bool {} + +/** + * Set a file that contains replacement pairs + * @link https://php.net/manual/en/function.pspell-config-repl.php + * @param int $config + * @param string $filename+ * The file should be writable by whoever PHP runs as (e.g. nobody). + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_repl(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, string $filename): bool {} + +/** + * Determine whether to save a replacement pairs list + * along with the wordlist + * @link https://php.net/manual/en/function.pspell-config-save-repl.php + * @param int $config + * @param bool $save+ * TRUE if replacement pairs should be saved, FALSE otherwise. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function pspell_config_save_repl(#[LanguageLevelTypeAware(['8.1' => 'PSpell\Config'], default: 'int')] $config, bool $save): bool {} + +define('PSPELL_FAST', 1); +define('PSPELL_NORMAL', 2); +define('PSPELL_BAD_SPELLERS', 3); +define('PSPELL_RUN_TOGETHER', 8); + +// End of pspell v. diff --git a/phpstorm-stubs/pspell/pspell_c.php b/phpstorm-stubs/pspell/pspell_c.php new file mode 100644 index 0000000..d310d74 --- /dev/null +++ b/phpstorm-stubs/pspell/pspell_c.php @@ -0,0 +1,15 @@ + + * A Pool is a container for, and controller of, an adjustable number of + * Workers.The maximum number of workers for this pool to create
+ * @param string $class [optional]The class for new Workers. If no class is + * given, then it defaults to the {@link Worker} class.
+ * @param array $ctor [optional]An array of arguments to be passed to new + * Workers
+ */ + public function __construct(int $size, string $class = 'Worker', array $ctor = []) {} + + /** + * (PECL pthreads >= 2.0.0)A Callable collector that returns a + * boolean on whether the task can be collected or not. Only in rare cases should + * a custom collector need to be used.
+ * @return intThe number of remaining tasks in the pool to be collected
+ */ + public function collect(?callable $collector = null) {} + + /** + * (PECL pthreads >= 2.0.0)The maximum number of Workers this Pool can create
+ * @return void + */ + public function resize(int $size) {} + + /** + * (PECL pthreads >= 2.0.0)The task for execution
+ * @return intthe identifier of the Worker executing the object
+ */ + public function submit(Threaded $task) {} + + /** + * (PECL pthreads >= 2.0.0)The worker to stack the task onto, indexed from 0
+ * @param Threaded $taskThe task for execution
+ * @return intThe identifier of the worker that accepted the task
+ */ + public function submitTo(int $worker, Threaded $task) {} +} + +/** + * Threaded objects form the basis of pthreads ability to execute user code + * in parallel; they expose synchronization methods and various useful + * interfaces.The number of items to fetch
+ * @param bool $preserve [optional]Preserve the keys of members, by default false
+ * @return arrayAn array of items from the objects property table
+ */ + public function chunk($size, $preserve = false) {} + + /** + * (PECL pthreads >= 2.0.0)The number of properties for this object
+ */ + public function count() {} + + /** + * (PECL pthreads >= 3.0.0)The class to extend
+ * @return boolA boolean indication of success
+ */ + public static function extend($class) {} + + /** + * (PECL pthreads >= 3.0.0)The number of references to the Threaded object
+ */ + public function getRefCount() {} + + /** + * (PECL pthreads >= 2.0.0)A boolean indication of state
+ */ + public function isRunning() {} + + /** + * (PECL pthreads >= 3.1.0)A boolean indication of state
+ */ + public function isTerminated() {} + + /** + * (PECL pthreads >= 2.0.0)The data to merge
+ * @var bool [optional]Overwrite existing keys, by default true
+ * @return boolA boolean indication of success
+ */ + public function merge($from, $overwrite = true) {} + + /** + * (PECL pthreads >= 2.0.0)A boolean indication of success
+ */ + public function notify() {} + + /** + * (PECL pthreads >= 3.0.0)A boolean indication of success
+ */ + public function notifyOne() {} + + /** + * (PECL pthreads >= 2.0.0)The last item from the objects property table
+ */ + public function pop() {} + + /** + * (PECL pthreads >= 2.0.0)The first item from the objects property table
+ */ + public function shift() {} + + /** + * (PECL pthreads >= 2.0.0)The block of code to execute
+ * @param mixed ...$_ [optional]Variable length list of arguments + * to use as function arguments to the block
+ * @return mixedThe return value from the block
+ */ + public function synchronized(Closure $block, ...$_) {} + + /** + * (PECL pthreads >= 2.0.0)An optional timeout in microseconds
+ * @return boolA boolean indication of success
+ */ + public function wait(int $timeout = 0) {} + + /** + * @inheritdoc + * @see ArrayAccess::offsetExists() + */ + public function offsetExists($offset) {} + + /** + * @inheritdoc + * @see ArrayAccess::offsetGet() + */ + public function offsetGet($offset) {} + + /** + * @inheritdoc + * @see ArrayAccess::offsetSet() + */ + public function offsetSet($offset, $value) {} + + /** + * @inheritdoc + * @see ArrayAccess::offsetUnset() + */ + public function offsetUnset($offset) {} +} + +/** + * (PECL pthreads >= 2.0.0)A numeric identity
+ */ + public function getCreatorId() {} + + /** + * (PECL pthreads >= 2.0.0)An object representing the currently executing Thread
+ */ + public static function getCurrentThread() {} + + /** + * (PECL pthreads >= 2.0.0)A numeric identity
+ */ + public static function getCurrentThreadId() {} + + /** + * (PECL pthreads >= 2.0.0)A numeric identity
+ */ + public function getThreadId() {} + + /** + * (PECL pthreads >= 2.0.0)A boolean indication of state
+ */ + public function isJoined() {} + + /** + * (PECL pthreads >= 2.0.0)A boolean indication of state
+ */ + public function isStarted() {} + + /** + * (PECL pthreads >= 2.0.0)A boolean indication of success
+ */ + public function join() {} + + /** + * (PECL pthreads >= 2.0.0)An optional mask of inheritance + * constants, by default {@link PTHREADS_INHERIT_ALL}
+ * @return boolA boolean indication of success
+ */ + public function start(int $options = PTHREADS_INHERIT_ALL) {} +} + +/** + * (PECL pthreads >= 2.0.0)A Callable collector that returns + * a boolean on whether the task can be collected or not. Only in rare cases + * should a custom collector need to be used
+ * @return intThe number of remaining tasks on the worker's stack to be + * collected
+ */ + public function collect(?callable $collector = null) {} + + /** + * (PECL pthreads >= 2.0.0)Returns the number of tasks currently waiting to be + * executed by the worker
+ */ + public function getStacked() {} + + /** + * (PECL pthreads >= 2.0.0)Returns whether the worker has been shutdown or not
+ */ + public function isShutdown() {} + + /** + * (PECL pthreads >= 2.0.0)Whether the worker was successfully shutdown or not
+ */ + public function shutdown() {} + + /** + * (PECL pthreads >= 2.0.0)A Threaded object to be executed by the Worker
+ * @return intThe new size of the stack
+ */ + public function stack(Threaded $work) {} + + /** + * (PECL pthreads >= 2.0.0)The item removed from the stack
+ */ + public function unstack() {} +} + +/** + * (PECL pthreads >= 2.0.8)Whether this object is garbage or not
+ */ + public function isGarbage(): bool; +} + +/** + * (PECL pthreads >= 3.0.0)+ * Use one of the following constants to specify the implementation of the algorithm to use. + *
+ * @return void + */ + function mt_srand( + #[LanguageLevelTypeAware(['8.3' => 'int|null'], default: 'int')] $seed = null, + #[PhpStormStubsElementAvailable(from: '7.1')] int $mode = MT_RAND_MT19937 + ): void {} + + /** + * Seed the random number generator + *Note: As of PHP 7.1.0, {@see srand()} has been made + * an alias of {@see mt_srand()}. + *
+ * @link https://php.net/manual/en/function.srand.php + * @param int|null $seed+ * Optional seed value + *
+ * @param int $mode [optional]+ * Use one of the following constants to specify the implementation of the algorithm to use. + *
+ * @return void + */ + function srand( + #[LanguageLevelTypeAware(['8.3' => 'int|null'], default: 'int')] $seed = null, + #[PhpStormStubsElementAvailable(from: '7.1')] int $mode = MT_RAND_MT19937 + ): void {} + + /** + * Generate a random integer + * @link https://php.net/manual/en/function.rand.php + * @param int $min [optional] + * @param int $max [optional] + * @return int A pseudo random value between min + * (or 0) and max (or getrandmax, inclusive). + */ + function rand(int $min, int $max): int {} + + /** + * Generate a random value via the Mersenne Twister Random Number Generator + * @link https://php.net/manual/en/function.mt-rand.php + * @param int $min [optional]+ * Optional lowest value to be returned (default: 0) + *
+ * @param int $max [optional]+ * Optional highest value to be returned (default: mt_getrandmax()) + *
+ * @return int A random integer value between min (or 0) + * and max (or mt_getrandmax, inclusive) + */ + function mt_rand(int $min, int $max): int {} + + /** + * Show largest possible random value + * @link https://php.net/manual/en/function.mt-getrandmax.php + * @return int the maximum random value returned by mt_rand + */ + #[Pure] + function mt_getrandmax(): int {} + + /** + * Show largest possible random value + * @link https://php.net/manual/en/function.getrandmax.php + * @return int The largest possible random value returned by rand + */ + #[Pure] + function getrandmax(): int {} + + /** + * Generates cryptographically secure pseudo-random bytes + * @link https://php.net/manual/en/function.random-bytes.php + * @param int $length The length of the random string that should be returned in bytes. + * @return string Returns a string containing the requested number of cryptographically secure random bytes. + * @since 7.0 + * @throws Random\RandomException if an appropriate source of randomness cannot be found. + */ + function random_bytes(int $length): string {} + + /** + * Generates cryptographically secure pseudo-random integers + * @link https://php.net/manual/en/function.random-int.php + * @param int $min The lowest value to be returned, which must be PHP_INT_MIN or higher. + * @param int $max The highest value to be returned, which must be less than or equal to PHP_INT_MAX. + * @return int Returns a cryptographically secure random integer in the range min to max, inclusive. + * @since 7.0 + * @throws Random\RandomException if an appropriate source of randomness cannot be found. + */ + function random_int(int $min, int $max): int {} +} + +namespace Random\Engine +{ + /** + * @since 8.2 + */ + final class Mt19937 implements \Random\Engine + { + public function __construct(int|null $seed = null, int $mode = MT_RAND_MT19937) {} + + public function generate(): string {} + + public function __serialize(): array {} + + public function __unserialize(array $data): void {} + + public function __debugInfo(): array {} + } + + /** + * @since 8.2 + */ + final class PcgOneseq128XslRr64 implements \Random\Engine + { + public function __construct(string|int|null $seed = null) {} + + public function generate(): string {} + + public function jump(int $advance): void {} + + public function __serialize(): array {} + + public function __unserialize(array $data): void {} + + public function __debugInfo(): array {} + } + + /** + * @since 8.2 + */ + final class Xoshiro256StarStar implements \Random\Engine + { + public function __construct(string|int|null $seed = null) {} + + public function generate(): string {} + + public function jump(): void {} + + public function jumpLong(): void {} + + public function __serialize(): array {} + + public function __unserialize(array $data): void {} + + public function __debugInfo(): array {} + } + + /** + * @since 8.2 + */ + final class Secure implements \Random\CryptoSafeEngine + { + public function generate(): string {} + } +} + +namespace Random +{ + use Error; + use Exception; + + /** + * @since 8.2 + */ + interface Engine + { + public function generate(): string; + } + /** + * @since 8.2 + */ + interface CryptoSafeEngine extends Engine {} + + /** + * @since 8.2 + */ + final class Randomizer + { + public readonly Engine $engine; + + public function __construct(?Engine $engine = null) {} + + public function nextInt(): int {} + + public function getInt(int $min, int $max): int {} + + public function getBytes(int $length): string {} + + public function shuffleArray(array $array): array {} + + public function shuffleBytes(string $bytes): string {} + + public function pickArrayKeys(array $array, int $num): array {} + + public function __serialize(): array {} + + public function __unserialize(array $data): void {} + + /** + * @since 8.3 + */ + public function nextFloat(): float {} + + /** + * @since 8.3 + */ + public function getFloat(float $min, float $max, IntervalBoundary $boundary = IntervalBoundary::ClosedOpen): float {} + + /** + * @since 8.3 + */ + public function getBytesFromString(string $string, int $length): string {} + } + + /** + * @since 8.2 + */ + class RandomError extends Error {} + + /** + * @since 8.2 + */ + class BrokenRandomEngineError extends RandomError {} + + /** + * @since 8.2 + */ + class RandomException extends Exception {} + + /** + * @since 8.3 + */ + enum IntervalBoundary + { + public string $name; + + case ClosedOpen; + case ClosedClosed; + case OpenClosed; + case OpenOpen; + + public static function cases(): array {} + } +} diff --git a/phpstorm-stubs/rar/rar.php b/phpstorm-stubs/rar/rar.php new file mode 100644 index 0000000..e58c50a --- /dev/null +++ b/phpstorm-stubs/rar/rar.php @@ -0,0 +1,605 @@ + + * The following error codes are used:+ * A variable name. + *
+ * @param string $value [optional]+ * If provided, this will be the new value of the setting. + *
+ * @return mixed If called with no parameters, this function returns an array of + * values for all the setting readline uses. The elements will + * be indexed by the following values: done, end, erase_empty_line, + * library_version, line_buffer, mark, pending_input, point, prompt, + * readline_name, and terminal_name. + * + *+ * If called with one or two parameters, the old value is returned. + */ +#[ArrayShape([ + 'line_buffer' => 'string', + 'point' => 'int', + 'end' => 'int', + 'mark' => 'int', + 'done' => 'int', + 'pending_input' => 'int', + 'prompt' => 'string', + 'terminal_name' => 'string', + 'completion_append_character' => 'string', + 'completion_suppress_append' => 'bool', + 'erase_empty_line' => 'int', + 'library_version' => 'string', + 'readline_name' => 'string', + 'attempted_completion_over' => 'int', +])] +function readline_info(?string $var_name, $value): mixed {} + +/** + * Adds a line to the history + * @link https://php.net/manual/en/function.readline-add-history.php + * @param string $prompt
+ * The line to be added in the history. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function readline_add_history(string $prompt): bool {} + +/** + * Clears the history + * @link https://php.net/manual/en/function.readline-clear-history.php + * @return bool TRUE on success or FALSE on failure. + */ +function readline_clear_history(): bool {} + +/** + * Lists the history + * @link https://php.net/manual/en/function.readline-list-history.php + * @return array an array of the entire command line history. The elements are + * indexed by integers starting at zero. + */ +function readline_list_history(): array {} + +/** + * Reads the history + * @link https://php.net/manual/en/function.readline-read-history.php + * @param string|null $filename [optional]+ * Path to the filename containing the command history. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function readline_read_history(?string $filename): bool {} + +/** + * Writes the history + * @link https://php.net/manual/en/function.readline-write-history.php + * @param string|null $filename [optional]+ * Path to the saved file. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function readline_write_history(?string $filename): bool {} + +/** + * Registers a completion function + * @link https://php.net/manual/en/function.readline-completion-function.php + * @param callable $callback+ * You must supply the name of an existing function which accepts a + * partial command line and returns an array of possible matches. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function readline_completion_function(callable $callback): bool {} + +/** + * Initializes the readline callback interface and terminal, prints the prompt and returns immediately + * @link https://php.net/manual/en/function.readline-callback-handler-install.php + * @param string $prompt+ * The prompt message. + *
+ * @param callable $callback+ * The callback function takes one parameter; the + * user input returned. + *
+ * @return bool TRUE on success or FALSE on failure. + */ +function readline_callback_handler_install(string $prompt, callable $callback): bool {} + +/** + * Reads a character and informs the readline callback interface when a line is received + * @link https://php.net/manual/en/function.readline-callback-read-char.php + * @return void No value is returned. + */ +function readline_callback_read_char(): void {} + +/** + * Removes a previously installed callback handler and restores terminal settings + * @link https://php.net/manual/en/function.readline-callback-handler-remove.php + * @return bool TRUE if a previously installed callback handler was removed, or + * FALSE if one could not be found. + */ +function readline_callback_handler_remove(): bool {} + +/** + * Redraws the display + * @link https://php.net/manual/en/function.readline-redisplay.php + * @return void No value is returned. + */ +function readline_redisplay(): void {} + +/** + * Inform readline that the cursor has moved to a new line + * @link https://php.net/manual/en/function.readline-on-new-line.php + * @return void No value is returned. + */ +function readline_on_new_line(): void {} + +define('READLINE_LIB', "readline"); + +// End of readline v.5.5.3-1ubuntu2.1 diff --git a/phpstorm-stubs/recode/recode.php b/phpstorm-stubs/recode/recode.php new file mode 100644 index 0000000..b6b9ded --- /dev/null +++ b/phpstorm-stubs/recode/recode.php @@ -0,0 +1,48 @@ + + * The desired recode request type + * + * @param string $string+ * The string to be recoded + *
+ * @return string|false the recoded string or FALSE, if unable to + * perform the recode request. + * @removed 7.4 + */ +function recode_string($request, $string) {} + +/** + * Recode from file to file according to recode request + * @link https://php.net/manual/en/function.recode-file.php + * @param string $request+ * The desired recode request type + *
+ * @param resource $input+ * A local file handle resource for + * the input + *
+ * @param resource $output+ * A local file handle resource for + * the output + *
+ * @return bool FALSE, if unable to comply, TRUE otherwise. + * @removed 7.4 + */ +function recode_file($request, $input, $output) {} + +/** + * Alias of recode_string + * @link https://php.net/manual/en/function.recode.php + * @param $request + * @param $str + * @removed 7.4 + */ +function recode($request, $str) {} + +// End of recode v. diff --git a/phpstorm-stubs/redis/Redis.php b/phpstorm-stubs/redis/Redis.php new file mode 100644 index 0000000..89ce569 --- /dev/null +++ b/phpstorm-stubs/redis/Redis.php @@ -0,0 +1,6284 @@ + '127.0.0.1', + * 'port' => 6379, + * 'readTimeout' => 2.5, + * 'connectTimeout' => 2.5, + * 'persistent' => true, + * // Valid formats: NULL, ['user', 'pass'], 'pass', or ['pass'] + * 'auth' => ['phpredis', 'phpredis'], + * // See PHP stream options for valid SSL configuration settings. + * 'ssl' => ['verify_peer' => false], + * // How quickly to retry a connection after we time out or it closes. + * // Note that this setting is overridden by 'backoff' strategies. + * 'retryInterval' => 100, + * // Which backoff algorithm to use. 'decorrelated jitter' is likely the + * // bestone for most solution, but there are many to choose from + * 'backoff' => [ + * 'algorithm' => Redis::BACKOFF_ALGORITHM_DECORRELATED_JITTER, + * // 'base', and 'cap' are in milliseconds and represent the first delay redis will + * // use when reconnecting, and the maximum delay we will reach while retrying. + * 'base' => 500, + * 'cap' => 750, + * ], + * ]); + */ + public function __construct($options = null) {} + + /** + * Connects to a Redis instance. + * + * @param string $host can be a host, or the path to a unix domain socket + * @param int $port optional + * @param float $timeout value in seconds (optional, default is 0.0 meaning it will use `default_socket_timeout`) + * @param string|null $persistent_id identity for the requested persistent connection + * @param int $retry_interval retry interval in milliseconds. + * @param float $read_timeout value in seconds (optional, default is 0 meaning it will use `default_socket_timeout`) + * @param array|null $context since PhpRedis >= 5.3.0 can specify authentication and stream information on connect + * + * @return bool TRUE on success, FALSE on error + * + * @throws RedisException + * + * @example + *
+ * $redis->connect('127.0.0.1', 6379);
+ * $redis->connect('127.0.0.1'); // port 6379 by default
+ * $redis->connect('127.0.0.1', 6379, 2.5); // 2.5 sec timeout.
+ * $redis->connect('/tmp/redis.sock'); // unix domain socket.
+ * // since PhpRedis >= 5.3.0 can specify authentication and stream information on connect
+ * $redis->connect('127.0.0.1', 6379, 1, NULL, 0, 0, ['auth' => ['phpredis', 'phpredis']]);
+ *
+ */
+ public function connect(
+ $host,
+ $port = 6379,
+ $timeout = 0,
+ $persistent_id = null,
+ $retry_interval = 0,
+ $read_timeout = 0,
+ $context = null
+ ) {}
+
+ /**
+ * Connects to a Redis instance.
+ *
+ * @param string $host can be a host, or the path to a unix domain socket
+ * @param int $port optional
+ * @param float $timeout value in seconds (optional, default is 0.0 meaning it will use `default_socket_timeout`)
+ * @param string $persistent_id identity for the requested persistent connection
+ * @param int $retry_interval retry interval in milliseconds.
+ * @param float $read_timeout value in seconds (optional, default is 0 meaning it will use `default_socket_timeout`)
+ * @param array $context since PhpRedis >= 5.3.0 can specify authentication and stream information on connect
+ *
+ * @return bool TRUE on success, FALSE on error
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->connect(%parametersList%)')]
+ public function open(
+ $host,
+ $port = 6379,
+ $timeout = 0,
+ $persistent_id = null,
+ $retry_interval = 0,
+ $read_timeout = 0,
+ $context = null
+ ) {}
+
+ /**
+ * A method to determine if a phpredis object thinks it's connected to a server
+ *
+ * @return bool Returns TRUE if phpredis thinks it's connected and FALSE if not
+ *
+ * @throws RedisException
+ */
+ public function isConnected() {}
+
+ /**
+ * Retrieve our host or unix socket that we're connected to
+ *
+ * @return string|false The host or unix socket we're connected to or FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getHost() {}
+
+ /**
+ * Get the port we're connected to
+ *
+ * This number will be zero if we are connected to a unix socket.
+ *
+ * @return int|false Returns the port we're connected to or FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getPort() {}
+
+ /**
+ * Get the database number phpredis is pointed to
+ *
+ * @return int|bool Returns the database number (int) phpredis thinks it's pointing to
+ * or FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getDbNum() {}
+
+ /**
+ * Get the (write) timeout in use for phpredis
+ *
+ * @return float|false The timeout (DOUBLE) specified in our connect call or FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getTimeout() {}
+
+ /**
+ * Get the read timeout specified to phpredis or FALSE if we're not connected
+ *
+ * @return float|bool Returns the read timeout (which can be set using setOption and Redis::OPT_READ_TIMEOUT)
+ * or FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getReadTimeout() {}
+
+ /**
+ * Gets the persistent ID that phpredis is using
+ *
+ * @return string|null|bool Returns the persistent id phpredis is using
+ * (which will only be set if connected with pconnect),
+ * NULL if we're not using a persistent ID,
+ * and FALSE if we're not connected
+ *
+ * @throws RedisException
+ */
+ public function getPersistentID() {}
+
+ /**
+ * Get the authentication information on the connection, if any.
+ *
+ * @return mixed The authentication information used to authenticate the connection.
+ *
+ * @throws RedisException
+ */
+ public function getAuth() {}
+
+ /**
+ * Connects to a Redis instance or reuse a connection already established with pconnect/popen.
+ *
+ * The connection will not be closed on close or end of request until the php process ends.
+ * So be patient on to many open FD's (specially on redis server side) when using persistent connections on
+ * many servers connecting to one redis server.
+ *
+ * Also more than one persistent connection can be made identified by either host + port + timeout
+ * or host + persistentId or unix socket + timeout.
+ *
+ * This feature is not available in threaded versions. pconnect and popen then working like their non persistent
+ * equivalents.
+ *
+ * @param string $host can be a host, or the path to a unix domain socket
+ * @param int $port optional
+ * @param float $timeout value in seconds (optional, default is 0.0 meaning it will use `default_socket_timeout`)
+ * @param string|null $persistent_id identity for the requested persistent connection
+ * @param int $retry_interval retry interval in milliseconds.
+ * @param float $read_timeout value in seconds (optional, default is 0 meaning it will use `default_socket_timeout`)
+ * @param array|null $context since PhpRedis >= 5.3.0 can specify authentication and stream information on connect
+ *
+ * @return bool TRUE on success, FALSE on error.
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->pconnect('127.0.0.1', 6379);
+ *
+ * // port 6379 by default - same connection like before
+ * $redis->pconnect('127.0.0.1');
+ *
+ * // 2.5 sec timeout and would be another connection than the two before.
+ * $redis->pconnect('127.0.0.1', 6379, 2.5);
+ *
+ * // x is sent as persistent_id and would be another connection than the three before.
+ * $redis->pconnect('127.0.0.1', 6379, 2.5, 'x');
+ *
+ * // unix domain socket - would be another connection than the four before.
+ * $redis->pconnect('/tmp/redis.sock');
+ *
+ */
+ public function pconnect(
+ $host,
+ $port = 6379,
+ $timeout = 0,
+ $persistent_id = null,
+ $retry_interval = 0,
+ $read_timeout = 0,
+ $context = null
+ ) {}
+
+ /**
+ * @param string $host
+ * @param int $port
+ * @param float $timeout
+ * @param string|null $persistent_id
+ * @param int $retry_interval
+ * @param float $read_timeout
+ * @param array|null $context
+ *
+ * @return bool
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->pconnect(%parametersList%)')]
+ public function popen(
+ $host,
+ $port = 6379,
+ $timeout = 0,
+ $persistent_id = null,
+ $retry_interval = 0,
+ $read_timeout = 0,
+ $context = null
+ ) {}
+
+ /**
+ * Disconnects from the Redis instance.
+ *
+ * Note: Closing a persistent connection requires PhpRedis >= 4.2.0
+ *
+ * @since >= 4.2 Closing a persistent connection requires PhpRedis
+ *
+ * @return bool TRUE on success, FALSE on error
+ *
+ * @throws RedisException
+ */
+ public function close() {}
+
+ /**
+ * Swap one Redis database with another atomically
+ *
+ * Note: Requires Redis >= 4.0.0
+ *
+ * @param int $db1
+ * @param int $db2
+ *
+ * @return bool TRUE on success and FALSE on failure
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/swapdb
+ * @since >= 4.0
+ * @example
+ * + * // Swaps DB 0 with DB 1 atomically + * $redis->swapdb(0, 1); + *+ */ + public function swapdb(int $db1, int $db2) {} + + /** + * Set a configurable option on the Redis object. + * + * @param int $option The option constant. + * @param mixed $value The option value. + * + * @return bool TRUE on success, FALSE on error + * + * @throws RedisException + * + * @example + *
+ * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); // don't serialize data + * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP); // use built-in serialize/unserialize + * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_IGBINARY); // use igBinary serialize/unserialize + * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_MSGPACK); // Use msgpack serialize/unserialize + * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON); // Use json serialize/unserialize + * + * $redis->setOption(Redis::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys + * + * // Options for the SCAN family of commands, indicating whether to abstract + * // empty results from the user. If set to SCAN_NORETRY (the default), phpredis + * // will just issue one SCAN command at a time, sometimes returning an empty + * // array of results. If set to SCAN_RETRY, phpredis will retry the scan command + * // until keys come back OR Redis returns an iterator of zero + * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY); + * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY); + *+ */ + public function setOption($option, $value) {} + + /** + * Retrieve the value of a configuration setting as set by Redis::setOption() + * + * @param int $option parameter name + * + * @return mixed|null The setting itself or false on failure. + * + * @throws RedisException + * + * @see setOption() + * @example + * // return option value + * $redis->getOption(Redis::OPT_SERIALIZER); + */ + public function getOption($option) {} + + /** + * Check the current connection status + * + * @param string $message An optional string message that Redis will reply with, if passed. + * + * @return bool|string TRUE if the command is successful or returns message + * Throws a RedisException object on connectivity error, as described above. + * @throws RedisException + * @link https://redis.io/commands/ping + * + * @example + * // When called without an argument, PING returns `TRUE` + * $redis->ping(); + * + * // If passed an argument, that argument is returned. Here 'hello' will be returned + * $redis->ping('hello'); + */ + public function ping($message = null) {} + + /** + * Sends a string to Redis, which replies with the same string + * + * @param string $message + * + * @return string|Redis The string sent to Redis or false on failure or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/echo + * + * @example $redis->echo('Hello, World'); + */ + public function echo($message) {} + + /** + * Get the value related to the specified key + * + * @param string $key + * + * @return string|mixed|false|Redis If key didn't exist, FALSE is returned or Redis if in multimode + * Otherwise, the value related to this key is returned + * + * @throws RedisException + * + * @link https://redis.io/commands/get + * @example + *
+ * $redis->set('key', 'hello');
+ * $redis->get('key');
+ *
+ * // set and get with serializer
+ * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_JSON);
+ *
+ * $redis->set('key', ['asd' => 'as', 'dd' => 123, 'b' => true]);
+ * var_dump($redis->get('key'));
+ * // Output:
+ * array(3) {
+ * 'asd' => string(2) "as"
+ * 'dd' => int(123)
+ * 'b' => bool(true)
+ * }
+ *
+ */
+ public function get($key) {}
+
+ /**
+ * Set the string value in argument as value of the key.
+ *
+ * @since If you're using Redis >= 2.6.12, you can pass extended options as explained in example
+ *
+ * @param string $key The key name to set.
+ * @param mixed $value The value to set the key to.
+ * @param mixed $options Either an array with options for how to perform the set or an integer with an expiration.
+ * If an expiration is set PhpRedis will actually send the `SETEX` command.
+ * Since 2.6.12 it also supports different flags inside an array.
+ * OPTION DESCRIPTION
+ * ------------ --------------------------------------------------------------
+ * ['EX' => 60] expire 60 seconds.
+ * ['PX' => 6000] expire in 6000 milliseconds.
+ * ['EXAT' => time() + 10] expire in 10 seconds.
+ * ['PXAT' => time()*1000 + 1000] expire in 1 second.
+ * ['KEEPTTL' => true] Redis will not update the key's current TTL.
+ * ['XX'] Only set the key if it already exists.
+ * ['NX'] Only set the key if it doesn't exist.
+ * ['GET'] Instead of returning `+OK` return the previous value of the
+ * key or NULL if the key didn't exist.
+ *
+ * @example
+ *
+ * // Simple key -> value set
+ * $redis->set('key', 'value');
+ *
+ * // Will redirect, and actually make an SETEX call
+ * $redis->set('key','value', 10);
+ *
+ * // Will set the key, if it doesn't exist, with a ttl of 10 seconds
+ * $redis->set('key', 'value', ['nx', 'ex' => 10]);
+ *
+ * // Will set a key, if it does exist, with a ttl of 1000 milliseconds
+ * $redis->set('key', 'value', ['xx', 'px' => 1000]);
+ *
+ *
+ * @return bool|Redis TRUE if the command is successful or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/set
+ */
+ public function set($key, $value, $options = null) {}
+
+ /**
+ * Set the string value in argument as value of the key, with a time to live.
+ *
+ * @param string $key The name of the key to set.
+ * @param int $expire The key's expiration in seconds.
+ * @param mixed $value The value to set the key.
+ *
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/setex
+ * @example $redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
+ */
+ public function setex($key, $expire, $value) {}
+
+ /**
+ * Set the value and expiration in milliseconds of a key.
+ *
+ * @see setex()
+ * @param string $key The key to set
+ * @param int $expire The TTL to set, in milliseconds.
+ * @param mixed $value The value to set the key to.
+ *
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/psetex
+ * @example $redis->psetex('key', 1000, 'value'); // sets key → value, with 1sec TTL.
+ */
+ public function psetex($key, $expire, $value) {}
+
+ /**
+ * Set the string value in argument as value of the key if the key doesn't already exist in the database.
+ *
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return bool|array|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/setnx
+ * @example
+ *
+ * $redis->setnx('key', 'value'); // return TRUE
+ * $redis->setnx('key', 'value'); // return FALSE
+ *
+ */
+ public function setnx(string $key, $value) {}
+
+ /**
+ * Remove specified keys.
+ *
+ * @param string|array $key1 Either an array with one or more key names or a string with the name of a key.
+ * @param string ...$otherKeys One or more additional keys passed in a variadic fashion.
+ *
+ * @return false|int|Redis Number of keys deleted or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/del
+ * @example
+ *
+ * $redis->set('key1', 'val1');
+ * $redis->set('key2', 'val2');
+ * $redis->set('key3', 'val3');
+ * $redis->set('key4', 'val4');
+ *
+ * $redis->del('key1', 'key2'); // return 2
+ * $redis->del(['key3', 'key4']); // return 2
+ *
+ */
+ public function del($key1, ...$otherKeys) {}
+
+ /**
+ * Remove specified keys.
+ *
+ * @param string|array $key An array of keys, or an undefined number of parameters, each a key: key1 key2 key3 ... keyN
+ * @param string ...$otherKeys
+ *
+ * @return false|int|Redis Number of keys deleted or Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: "%class%->del(%parametersList%)")]
+ public function delete($key, ...$otherKeys) {}
+
+ /**
+ * Delete a key asynchronously in another thread. Otherwise it is just as DEL, but non blocking.
+ *
+ * @see del()
+ * @param string|array $key An array of keys, or an undefined number of parameters, each a key: key1 key2 key3 ... keyN
+ * @param string ...$other_keys
+ *
+ * @return false|int|Redis Number of keys unlinked or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/unlink
+ * @example
+ *
+ * $redis->set('key1', 'val1');
+ * $redis->set('key2', 'val2');
+ * $redis->set('key3', 'val3');
+ * $redis->set('key4', 'val4');
+ * $redis->unlink('key1', 'key2'); // return 2
+ * $redis->unlink(array('key3', 'key4')); // return 2
+ *
+ */
+ public function unlink($key, ...$other_keys) {}
+
+ /**
+ * Enter and exit transactional mode.
+ *
+ * @param int $mode Redis::MULTI|Redis::PIPELINE
+ * Defaults to Redis::MULTI.
+ * A Redis::MULTI block of commands runs as a single transaction;
+ * a Redis::PIPELINE block is simply transmitted faster to the server, but without any guarantee of atomicity.
+ * discard cancels a transaction.
+ *
+ * @return static|Redis returns the Redis instance and enters multi-mode or Redis if in multimode
+ * Once in multi-mode, all subsequent method calls return the same object until exec() is called.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/multi
+ * @example
+ *
+ * $ret = $redis->multi()
+ * ->set('key1', 'val1')
+ * ->get('key1')
+ * ->set('key2', 'val2')
+ * ->get('key2')
+ * ->exec();
+ *
+ * //$ret == array (
+ * // 0 => TRUE,
+ * // 1 => 'val1',
+ * // 2 => TRUE,
+ * // 3 => 'val2');
+ *
+ */
+ public function multi($mode = Redis::MULTI) {}
+
+ /**
+ * Returns a Redis instance which can simply transmitted faster to the server.
+ *
+ * @return bool|Redis returns the Redis instance.
+ * Once in pipeline-mode, all subsequent method calls return the same object until exec() is called.
+ * Pay attention, that Pipeline is not a transaction, so you can get unexpected
+ * results in case of big pipelines and small read/write timeouts.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/topics/pipelining
+ * @example
+ *
+ * $ret = $this->redis->pipeline()
+ * ->ping()
+ * ->multi()->set('x', 42)->incr('x')->exec()
+ * ->ping()
+ * ->multi()->get('x')->del('x')->exec()
+ * ->ping()
+ * ->exec();
+ *
+ * //$ret == array (
+ * // 0 => '+PONG',
+ * // 1 => [TRUE, 43],
+ * // 2 => '+PONG',
+ * // 3 => [43, 1],
+ * // 4 => '+PONG');
+ *
+ */
+ public function pipeline() {}
+
+ /**
+ * Execute either a MULTI or PIPELINE block and return the array of replies.
+ *
+ * @return array|false|Redis The array of pipeline'd or multi replies or false on failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @see multi()
+ * @link https://redis.io/commands/exec
+ * @link https://redis.io/commands/multi
+ *
+ * @example
+ * $res = $redis->multi()
+ * ->set('foo', 'bar')
+ * ->get('foo')
+ * ->del('list')
+ * ->rpush('list', 'one', 'two', 'three')
+ * ->exec();
+ */
+ public function exec() {}
+
+ /**
+ * Flushes all previously queued commands in a transaction and restores the connection state to normal.
+ *
+ * @return bool|Redis True if we could discard the transaction or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @see multi()
+ * @link https://redis.io/commands/discard
+ *
+ * @example
+ * $redis->getMode();
+ * $redis->set('foo', 'bar');
+ * $redis->discard();
+ * $redis->getMode();
+ */
+ public function discard() {}
+
+ /**
+ * Watches a key for modifications by another client. If the key is modified between WATCH and EXEC,
+ * the MULTI/EXEC transaction will fail (return FALSE). unwatch cancels all the watching of all keys by this client.
+ *
+ * @param string|array $key Either an array with one or more key names, or a string key name
+ * @param string ...$other_keys If the first argument was passed as a string, any number of
+ * additional string key names may be passed variadically.
+ *
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/watch
+ * @example
+ *
+ * $redis->watch('x');
+ * // long code here during the execution of which other clients could well modify `x`
+ * $ret = $redis->multi()
+ * ->incr('x')
+ * ->exec();
+ * // $ret = FALSE if x has been modified between the call to WATCH and the call to EXEC.
+ *
+ */
+ public function watch($key, ...$other_keys) {}
+
+ /**
+ * Remove any previously WATCH'ed keys in a transaction.
+ *
+ * @throws RedisException
+ *
+ * @see watch()
+ * @return bool|Redis
+ * @link https://redis.io/commands/unwatch
+ */
+ public function unwatch() {}
+
+ /**
+ * Subscribes the client to the specified channels.
+ *
+ * Once the client enters the subscribed state it is not supposed to issue any other commands, except for additional SUBSCRIBE, SSUBSCRIBE, PSUBSCRIBE, UNSUBSCRIBE, SUNSUBSCRIBE, PUNSUBSCRIBE, PING, RESET and QUIT commands.
+ *
+ * @param array|string $channels One or more channel names.
+ * @param callable $callback The callback PhpRedis will invoke when we receive a message from one of the subscribed channels.
+ *
+ * @return false|array|Redis False on faiilure. Note that this command will block the client in a subscribe loop, waiting for messages to arrive
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/subscribe
+ * @since 2.0
+ *
+ * @example
+ * $redis->subscribe(['channel-1', 'channel-2'], function ($redis, $channel, $message) {
+ * echo "[$channel]: $message\n";
+ *
+ * // Unsubscribe from the message channel when we read 'quit'
+ * if ($message == 'quit') {
+ * echo "Unsubscribing from '$channel'\n";
+ * $redis->unsubscribe([$channel]);
+ * }
+ * });
+ *
+ * // Once we read 'quit' from both channel-1 and channel-2 the subscribe loop will be broken and this command will execute.
+ * echo "Subscribe loop ended\n";
+ */
+ public function subscribe($channels, $callback) {}
+
+ /**
+ * Subscribe to channels by pattern
+ *
+ * @param array $patterns an array of glob-style patterns to subscribe
+ * @param string|array|callable $callback Either a string or an array with an object and method.
+ * The callback will get four arguments ($redis, $pattern, $channel, $message)
+ * @return mixed|Redis Any non-null return value in the callback will be returned to the caller or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/psubscribe
+ * @example
+ *
+ * function f($redis, $pattern, $chan, $msg) {
+ * echo "Pattern: $pattern\n";
+ * echo "Channel: $chan\n";
+ * echo "Payload: $msg\n";
+ * }
+ *
+ * $redis->psubscribe(array('chan-1', 'chan-2', 'chan-3'), 'f')
+ *
+ */
+ public function psubscribe($patterns, $callback) {}
+
+ /**
+ * Publish messages to channels.
+ *
+ * Warning: this function will probably change in the future.
+ *
+ * @param string $channel The channel to publish to.
+ * @param string $message The message itself.
+ *
+ * @return false|int|Redis Number of clients that received the message or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/publish
+ * @example $redis->publish('chan-1', 'hello, world!'); // send message.
+ */
+ public function publish($channel, $message) {}
+
+ /**
+ * A command allowing you to get information on the Redis pub/sub system
+ *
+ * @param string $keyword String, which can be: "channels", "numsub", or "numpat"
+ * @param mixed $argument Optional, variant.
+ * For the "channels" subcommand, you can pass a string pattern.
+ * For "numsub" an array of channel names
+ *
+ * @return mixed|Redis Either an integer or an array or Redis if in multimode
+ * - channels Returns an array where the members are the matching channels.
+ * - numsub Returns a key/value array where the keys are channel names and
+ * values are their counts.
+ * - numpat Integer return containing the number active pattern subscriptions
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pubsub
+ * @example
+ *
+ * $redis->pubsub('channels'); // All channels
+ * $redis->pubsub('channels', '*pattern*'); // Just channels matching your pattern
+ * $redis->pubsub('numsub', array('chan1', 'chan2')); // Get subscriber counts for 'chan1' and 'chan2'
+ * $redis->pubsub('numpat'); // Get the number of pattern subscribers
+ *
+ */
+ public function pubsub($keyword, $argument = null) {}
+
+ /**
+ * Stop listening for messages posted to the given channels.
+ *
+ * @param array $channels One or more channels to unsubscribe from.
+ *
+ * @return bool|array|Redis The array of unsubscribed channels.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/unsubscribe
+ *
+ * @example
+ * $redis->subscribe(['channel-1', 'channel-2'], function ($redis, $channel, $message) {
+ * if ($message == 'quit') {
+ * echo "$channel => 'quit' detected, unsubscribing!\n";
+ * $redis->unsubscribe([$channel]);
+ * } else {
+ * echo "$channel => $message\n";
+ * }
+ * });
+ */
+ public function unsubscribe(array $channels) {}
+
+ /**
+ * Stop listening for messages posted to the given channels.
+ *
+ * @param array $patterns an array of glob-style patterns to unsubscribe
+ *
+ * @return false|array
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/punsubscribe
+ */
+ public function punsubscribe(array $patterns) {}
+
+ /**
+ * Verify if the specified key/keys exists
+ *
+ * This function took a single argument and returned TRUE or FALSE in phpredis versions < 4.0.0.
+ *
+ * @since >= 4.0 Returned int, if < 4.0 returned bool
+ *
+ * @param mixed $key Either an array of keys or a string key
+ * @param mixed ...$other_keys If the previous argument was a string, you may send any number of additional keys to test.
+ *
+ * @return int|bool|Redis The number of keys tested that do exist or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/exists
+ * @link https://github.com/phpredis/phpredis#exists
+ * @example
+ *
+ * $redis->exists('key'); // 1
+ * $redis->exists('NonExistingKey'); // 0
+ *
+ * $redis->mset(['foo' => 'foo', 'bar' => 'bar', 'baz' => 'baz']);
+ * $redis->exists(['foo', 'bar', 'baz]); // 3
+ * $redis->exists('foo', 'bar', 'baz'); // 3
+ *
+ */
+ public function exists($key, ...$other_keys) {}
+
+ /**
+ * Increment the number stored at key by one.
+ *
+ * @param string $key The key to increment
+ * @param int $by An optional amount to increment by.
+ *
+ * @return false|int|Redis the new value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/incr
+ * @example
+ *
+ * $redis->incr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value 1
+ * $redis->incr('key1'); // 2
+ * $redis->incr('key1'); // 3
+ * $redis->incr('key1'); // 4
+ * $redis->incr('key1', 2); // 6
+ *
+ */
+ public function incr($key, $by = 1) {}
+
+ /**
+ * Increment the float value of a key by the given amount
+ *
+ * @param string $key
+ * @param float $increment
+ *
+ * @return float|false|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/incrbyfloat
+ * @example
+ *
+ * $redis->set('x', 3);
+ * $redis->incrByFloat('x', 1.5); // float(4.5)
+ * $redis->get('x'); // float(4.5)
+ * $redis->incrByFloat('x', 3.1415926);
+ *
+ */
+ public function incrByFloat($key, $increment) {}
+
+ /**
+ * Increment the number stored at key by one.
+ *
+ * @param string $key The key to increment.
+ * @param int $value The amount to increment.
+ *
+ * @return false|int|Redis the new value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/incrby
+ * @example
+ *
+ * $redis->incr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value 1
+ * $redis->incr('key1'); // 2
+ * $redis->incr('key1'); // 3
+ * $redis->incr('key1'); // 4
+ * $redis->incrBy('key1', 10); // 14
+ *
+ */
+ public function incrBy($key, $value) {}
+
+ /**
+ * Decrement the number stored at key by one.
+ *
+ * @param string $key The key to decrement
+ * @param int $by How much to decrement the key. Note that if this value is not sent or is set to `1`
+ *
+ * @return false|int|Redis The new value of the key or false on failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/decr
+ * @example
+ *
+ * $redis->decr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value -1
+ * $redis->decr('key1'); // -2
+ * $redis->decr('key1'); // -3
+ * $redis->decr('key1', 2); // -5
+ *
+ */
+ public function decr($key, $by = 1) {}
+
+ /**
+ * Decrement the number stored at key by one.
+ *
+ * @param string $key The integer key to decrement.
+ * @param int $value How much to decrement the key.
+ *
+ * @return false|int|Redis The new value of the key or false on failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/decrby
+ * @example
+ *
+ * $redis->decr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value -1
+ * $redis->decr('key1'); // -2
+ * $redis->decr('key1'); // -3
+ * $redis->decrBy('key1', 10); // -13
+ *
+ */
+ public function decrBy($key, $value) {}
+
+ /**
+ * Adds the string values to the head (left) of the list.
+ * Creates the list if the key didn't exist.
+ * If the key exists and is not a list, FALSE is returned.
+ *
+ * @param string $key The list to prepend.
+ * @param mixed ...$value1 One or more elements to prepend.
+ *
+ * @return int|false|Redis The new length of the list in case of success, FALSE in case of Failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lpush
+ * @example
+ *
+ * $redis->lPush('l', 'v1', 'v2', 'v3', 'v4') // int(4)
+ * var_dump( $redis->lRange('l', 0, -1) );
+ * // Output:
+ * // array(4) {
+ * // [0]=> string(2) "v4"
+ * // [1]=> string(2) "v3"
+ * // [2]=> string(2) "v2"
+ * // [3]=> string(2) "v1"
+ * // }
+ *
+ */
+ public function lPush($key, ...$value1) {}
+
+ /**
+ * Adds the string values to the tail (right) of the list.
+ * Creates the list if the key didn't exist.
+ * If the key exists and is not a list, FALSE is returned.
+ *
+ * @param string $key The list to append to.
+ * @param mixed ...$value1 one or more elements to append.
+ *
+ * @return int|false|Redis The new length of the list in case of success, FALSE in case of Failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/rpush
+ * @example
+ *
+ * $redis->rPush('l', 'v1', 'v2', 'v3', 'v4'); // int(4)
+ * var_dump( $redis->lRange('l', 0, -1) );
+ * // Output:
+ * // array(4) {
+ * // [0]=> string(2) "v1"
+ * // [1]=> string(2) "v2"
+ * // [2]=> string(2) "v3"
+ * // [3]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function rPush($key, ...$value1) {}
+
+ /**
+ * Adds the string value to the head (left) of the list if the list exists.
+ *
+ * @param string $key The key to prepend to.
+ * @param mixed $value The value to prepend.
+ *
+ * @return int|false|Redis The new length of the list in case of success, FALSE in case of Failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lpushx
+ * @example
+ *
+ * $redis->del('key1');
+ * $redis->lPushx('key1', 'A'); // returns 0
+ * $redis->lPush('key1', 'A'); // returns 1
+ * $redis->lPushx('key1', 'B'); // returns 2
+ * $redis->lPushx('key1', 'C'); // returns 3
+ * // key1 now points to the following list: [ 'A', 'B', 'C' ]
+ *
+ */
+ public function lPushx($key, $value) {}
+
+ /**
+ * Adds the string value to the tail (right) of the list if the ist exists. FALSE in case of Failure.
+ *
+ * @param string $key The key to prepend to.
+ * @param mixed $value The value to prepend.
+ *
+ * @return int|false|Redis The new length of the list in case of success, FALSE in case of Failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/rpushx
+ * @example
+ *
+ * $redis->del('key1');
+ * $redis->rPushx('key1', 'A'); // returns 0
+ * $redis->rPush('key1', 'A'); // returns 1
+ * $redis->rPushx('key1', 'B'); // returns 2
+ * $redis->rPushx('key1', 'C'); // returns 3
+ * // key1 now points to the following list: [ 'A', 'B', 'C' ]
+ *
+ */
+ public function rPushx($key, $value) {}
+
+ /**
+ * Returns and removes the first element of the list.
+ *
+ * @param string $key The list to pop from.
+ * @param int $count Optional number of elements to remove. By default one element is popped.
+ *
+ * @return mixed|bool|Redis if command executed successfully BOOL FALSE in case of failure (empty list) or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lpop
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redis->lPop('key1'); // key1 => [ 'B', 'C' ]
+ *
+ */
+ public function lPop($key, $count = 0) {}
+
+ /**
+ * Returns and removes the last element of the list.
+ *
+ * @param string $key A redis LIST key name.
+ * @param int $count The maximum number of elements to pop at once. NOTE: The `count` argument requires Redis >= 6.2.0
+ *
+ * @return mixed|array|string|bool|Redis if command executed successfully BOOL FALSE in case of failure (empty list) or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/rpop
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redis->rPop('key1'); // key1 => [ 'A', 'B' ]
+ *
+ */
+ public function rPop($key, $count = 0) {}
+
+ /**
+ * Is a blocking lPop primitive. If at least one of the lists contains at least one element,
+ * the element will be popped from the head of the list and returned to the caller.
+ * Il all the list identified by the keys passed in arguments are empty, blPop will block
+ * during the specified timeout until an element is pushed to one of those lists. This element will be popped.
+ *
+ * @param string|string[] $key_or_keys String array containing the keys of the lists OR variadic list of strings
+ * @param string|float|int $timeout_or_key Timeout is always the required final parameter
+ * @param mixed ...$extra_args
+ *
+ * @return array|null|false|Redis Can return various things depending on command and data or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/blpop
+ * @example
+ *
+ * // Non blocking feature
+ * $redis->lPush('key1', 'A');
+ * $redis->del('key2');
+ *
+ * $redis->blPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redis->blPop(['key1', 'key2'], 10); // array('key1', 'A')
+ *
+ * $redis->blPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redis->blPop(['key1', 'key2'], 10); // array('key1', 'A')
+ *
+ * // Blocking feature
+ *
+ * // process 1
+ * $redis->del('key1');
+ * $redis->blPop('key1', 10);
+ * // blocking for 10 seconds
+ *
+ * // process 2
+ * $redis->lPush('key1', 'A');
+ *
+ * // process 1
+ * // array('key1', 'A') is returned
+ *
+ */
+ public function blPop($key_or_keys, $timeout_or_key, ...$extra_args) {}
+
+ /**
+ * Is a blocking rPop primitive. If at least one of the lists contains at least one element,
+ * the element will be popped from the head of the list and returned to the caller.
+ * Il all the list identified by the keys passed in arguments are empty, brPop will
+ * block during the specified timeout until an element is pushed to one of those lists.
+ * This element will be popped.
+ *
+ * @param string|string[] $key_or_keys String array containing the keys of the lists OR variadic list of strings
+ * @param string|float|int $timeout_or_key Timeout is always the required final parameter
+ * @param mixed ...$extra_args
+ *
+ * @return array|null|true|Redis Can return various things depending on command and data or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/brpop
+ * @example
+ *
+ * // Non blocking feature
+ * $redis->rPush('key1', 'A');
+ * $redis->del('key2');
+ *
+ * $redis->brPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redis->brPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * $redis->brPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redis->brPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * // Blocking feature
+ *
+ * // process 1
+ * $redis->del('key1');
+ * $redis->brPop('key1', 10);
+ * // blocking for 10 seconds
+ *
+ * // process 2
+ * $redis->lPush('key1', 'A');
+ *
+ * // process 1
+ * // array('key1', 'A') is returned
+ *
+ */
+ public function brPop($key_or_keys, $timeout_or_key, ...$extra_args) {}
+
+ /**
+ * Returns the size of a list identified by Key. If the list didn't exist or is empty,
+ * the command returns 0. If the data type identified by Key is not a list, the command return FALSE.
+ *
+ * @param string $key
+ *
+ * @return int|bool|Redis The size of the list identified by Key exists or Redis if in multimode
+ * bool FALSE if the data type identified by Key is not list
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/llen
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redis->lLen('key1'); // 3
+ * $redis->rPop('key1');
+ * $redis->lLen('key1'); // 2
+ *
+ */
+ public function lLen($key) {}
+
+ /**
+ * @link https://redis.io/commands/llen
+ *
+ * @param string $key
+ *
+ * @return false|int|Redis The size of the list identified by Key exists or Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->lLen(%parametersList%)')]
+ public function lSize($key) {}
+
+ /**
+ * Return the specified element of the list stored at the specified key.
+ * 0 the first element, 1 the second ... -1 the last element, -2 the penultimate ...
+ * Return FALSE in case of a bad index or a key that doesn't point to a list.
+ *
+ * @param string $key
+ * @param int $index
+ *
+ * @return mixed|bool|Redis the element at this index or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * Bool FALSE if the key identifies a non-string data type, or no value corresponds to this index in the list Key.
+ *
+ * @link https://redis.io/commands/lindex
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redis->lIndex('key1', 0); // 'A'
+ * $redis->lIndex('key1', -1); // 'C'
+ * $redis->lIndex('key1', 10); // `FALSE`
+ *
+ */
+ public function lIndex($key, $index) {}
+
+ /**
+ * @link https://redis.io/commands/lindex
+ *
+ * @param string $key
+ * @param int $index
+ * @return mixed|bool|Redis the element at this index or Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->lIndex(%parametersList%)')]
+ public function lGet($key, $index) {}
+
+ /**
+ * Set the list at index with the new value.
+ *
+ * @param string $key The list to modify.
+ * @param int $index The position of the element to change.
+ * @param mixed $value The new value.
+ *
+ * @return bool|Redis TRUE if the new value is setted or Redis if in multimode
+ * FALSE if the index is out of range, or data type identified by key is not a list.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lset
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redis->lIndex('key1', 0); // 'A'
+ * $redis->lSet('key1', 0, 'X');
+ * $redis->lIndex('key1', 0); // 'X'
+ *
+ */
+ public function lSet($key, $index, $value) {}
+
+ /**
+ * Returns the specified elements of the list stored at the specified key in
+ * the range [start, end]. start and stop are interpretated as indices: 0 the first element,
+ * 1 the second ... -1 the last element, -2 the penultimate ...
+ *
+ * @param string $key The list to query.
+ * @param int $start The beginning index to retrieve. This number can be negative meaning start from the end of the list.
+ * @param int $end The end index to retrieve. This can also be negative to start from the end of the list.
+ *
+ * @return array|Redis containing the values in specified range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lrange
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C');
+ * $redis->lRange('key1', 0, -1); // array('A', 'B', 'C')
+ *
+ */
+ public function lRange($key, $start, $end) {}
+
+ /**
+ * @link https://redis.io/commands/lrange
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ * @return array|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->lRange(%parametersList%)')]
+ public function lGetRange($key, $start, $end) {}
+
+ /**
+ * Trims an existing list so that it will contain only a specified range of elements.
+ *
+ * @param string $key The list to trim
+ * @param int $start The starting index to keep
+ * @param int $end The ending index to keep.
+ *
+ * @return array|false|Redis Bool return FALSE if the key identify a non-list value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/ltrim
+ * @example
+ *
+ * $redis->rPush('key1', 'A');
+ * $redis->rPush('key1', 'B');
+ * $redis->rPush('key1', 'C');
+ * $redis->lRange('key1', 0, -1); // array('A', 'B', 'C')
+ * $redis->lTrim('key1', 0, 1);
+ * $redis->lRange('key1', 0, -1); // array('A', 'B')
+ *
+ */
+ public function lTrim($key, $start, $end) {}
+
+ /**
+ * @link https://redis.io/commands/ltrim
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $stop
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->lTrim(%parametersList%)')]
+ public function listTrim($key, $start, $stop) {}
+
+ /**
+ * Removes the first count occurrences of the value element from the list.
+ * If count is zero, all the matching elements are removed. If count is negative,
+ * elements are removed from tail to head.
+ *
+ * @param string $key The list to truncate.
+ * @param mixed $value The value to remove.
+ * @param int $count How many elements matching the value to remove.
+ *
+ * @return int|bool|Redis the number of elements to remove or Redis if in multimode
+ * bool FALSE if the value identified by key is not a list.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lrem
+ * @example
+ *
+ * $redis->lPush('key1', 'A');
+ * $redis->lPush('key1', 'B');
+ * $redis->lPush('key1', 'C');
+ * $redis->lPush('key1', 'A');
+ * $redis->lPush('key1', 'A');
+ *
+ * $redis->lRange('key1', 0, -1); // array('A', 'A', 'C', 'B', 'A')
+ * $redis->lRem('key1', 'A', 2); // 2
+ * $redis->lRange('key1', 0, -1); // array('C', 'B', 'A')
+ *
+ */
+ public function lRem($key, $value, $count = 0) {}
+
+ /**
+ * @link https://redis.io/commands/lremove
+ *
+ * @param string $key
+ * @param string $value
+ * @param int $count
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->lRem(%parametersList%)')]
+ public function lRemove($key, $value, $count) {}
+
+ /**
+ * Insert value in the list before or after the pivot value. the parameter options
+ * specify the position of the insert (before or after). If the list didn't exists,
+ * or the pivot didn't exists, the value is not inserted.
+ *
+ * @param string $key
+ * @param string $position Redis::BEFORE | Redis::AFTER
+ * @param mixed $pivot
+ * @param mixed $value
+ *
+ * @return false|int|Redis The number of the elements in the list, -1 if the pivot didn't exists or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/linsert
+ * @example
+ *
+ * $redis->del('key1');
+ * $redis->lInsert('key1', Redis::AFTER, 'A', 'X'); // 0
+ *
+ * $redis->lPush('key1', 'A');
+ * $redis->lPush('key1', 'B');
+ * $redis->lPush('key1', 'C');
+ *
+ * $redis->lInsert('key1', Redis::BEFORE, 'C', 'X'); // 4
+ * $redis->lRange('key1', 0, -1); // array('A', 'B', 'X', 'C')
+ *
+ * $redis->lInsert('key1', Redis::AFTER, 'C', 'Y'); // 5
+ * $redis->lRange('key1', 0, -1); // array('A', 'B', 'X', 'C', 'Y')
+ *
+ * $redis->lInsert('key1', Redis::AFTER, 'W', 'value'); // -1
+ *
+ */
+ public function lInsert($key, $position, $pivot, $value) {}
+
+ /**
+ * Adds a values to the set value stored at key.
+ *
+ * @param string $key Required key
+ * @param mixed $value
+ * @param mixed ...$other_values Variadic list of values
+ *
+ * @return int|bool|Redis The number of elements added to the set or Redis if in multimode
+ * If this value is already in the set, FALSE is returned
+ *
+ * @link https://redis.io/commands/sadd
+ * @example
+ *
+ * $redis->sAdd('k', 'v1'); // int(1)
+ * $redis->sAdd('k', 'v1', 'v2', 'v3'); // int(2)
+ *
+ */
+ public function sAdd(string $key, $value, ...$other_values) {}
+
+ /**
+ * Removes the specified members from the set value stored at key.
+ *
+ * @param string $key
+ * @param mixed $value
+ * @param mixed ...$other_values Variadic list of members
+ *
+ * @return false|int|Redis The number of elements removed from the set or Redis if in multimode
+ *
+ * @link https://redis.io/commands/srem
+ * @example
+ *
+ * var_dump( $redis->sAdd('k', 'v1', 'v2', 'v3') ); // int(3)
+ * var_dump( $redis->sRem('k', 'v2', 'v3') ); // int(2)
+ * var_dump( $redis->sMembers('k') );
+ * //// Output:
+ * // array(1) {
+ * // [0]=> string(2) "v1"
+ * // }
+ *
+ */
+ public function sRem(string $key, $value, ...$other_values) {}
+
+ /**
+ * @link https://redis.io/commands/srem
+ *
+ * @param string $key
+ * @param string|mixed ...$member1
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->sRem(%parametersList%)')]
+ public function sRemove($key, ...$member1) {}
+
+ /**
+ * Moves the specified member from the set at srcKey to the set at dstKey.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ * @param mixed $member
+ *
+ * @return bool|Redis If the operation is successful, return TRUE or Redis if in multimode
+ * If the srcKey and/or dstKey didn't exist, and/or the member didn't exist in srcKey, FALSE is returned.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/smove
+ * @example
+ *
+ * $redis->sAdd('key1' , 'set11');
+ * $redis->sAdd('key1' , 'set12');
+ * $redis->sAdd('key1' , 'set13'); // 'key1' => {'set11', 'set12', 'set13'}
+ * $redis->sAdd('key2' , 'set21');
+ * $redis->sAdd('key2' , 'set22'); // 'key2' => {'set21', 'set22'}
+ * $redis->sMove('key1', 'key2', 'set13'); // 'key1' => {'set11', 'set12'}
+ * // 'key2' => {'set21', 'set22', 'set13'}
+ *
+ */
+ public function sMove($srcKey, $dstKey, $member) {}
+
+ /**
+ * Checks if value is a member of the set stored at the key key.
+ *
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return bool|Redis TRUE if value is a member of the set at key key, FALSE otherwise or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sismember
+ * @example
+ *
+ * $redis->sAdd('key1' , 'set1');
+ * $redis->sAdd('key1' , 'set2');
+ * $redis->sAdd('key1' , 'set3'); // 'key1' => {'set1', 'set2', 'set3'}
+ *
+ * $redis->sIsMember('key1', 'set1'); // TRUE
+ * $redis->sIsMember('key1', 'setX'); // FALSE
+ *
+ */
+ public function sIsMember(string $key, $value) {}
+
+ /**
+ * @link https://redis.io/commands/sismember
+ *
+ * @param string $key
+ * @param string|mixed $value
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->sIsMember(%parametersList%)')]
+ public function sContains($key, $value) {}
+
+ /**
+ * Returns the cardinality of the set identified by key.
+ *
+ * @param string $key
+ *
+ * @return false|int|Redis the cardinality of the set identified by key, 0 if the set doesn't exist or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/scard
+ * @example
+ *
+ * $redis->sAdd('key1' , 'set1');
+ * $redis->sAdd('key1' , 'set2');
+ * $redis->sAdd('key1' , 'set3'); // 'key1' => {'set1', 'set2', 'set3'}
+ * $redis->sCard('key1'); // 3
+ * $redis->sCard('keyX'); // 0
+ *
+ */
+ public function sCard($key) {}
+
+ /**
+ * Removes and returns a random element from the set value at Key.
+ *
+ * @param string $key The set in question.
+ * @param int $count An optional number of members to pop. This defaults to removing one element.
+ *
+ * @return string|mixed|array|bool|Redis "popped" values or Redis if in multimode
+ * bool FALSE if set identified by key is empty or doesn't exist.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/spop
+ * @example
+ *
+ * $redis->sAdd('key1' , 'set1');
+ * $redis->sAdd('key1' , 'set2');
+ * $redis->sAdd('key1' , 'set3'); // 'key1' => {'set3', 'set1', 'set2'}
+ * $redis->sPop('key1'); // 'set1', 'key1' => {'set3', 'set2'}
+ * $redis->sPop('key1'); // 'set3', 'key1' => {'set2'}
+ *
+ * // With count
+ * $redis->sAdd('key2', 'set1', 'set2', 'set3');
+ * var_dump( $redis->sPop('key2', 3) ); // Will return all members but in no particular order
+ *
+ * // array(3) {
+ * // [0]=> string(4) "set2"
+ * // [1]=> string(4) "set3"
+ * // [2]=> string(4) "set1"
+ * // }
+ *
+ */
+ public function sPop($key, $count = 0) {}
+
+ /**
+ * Returns a random element(s) from the set value at Key, without removing it.
+ *
+ * @param string $key The set to query.
+ * @param int $count An optional count of members to return.
+ *
+ * If this value is positive, Redis will return *up to* the requested
+ * number but with unique elements that will never repeat. This means
+ * you may recieve fewer then `$count` replies.
+ *
+ * If the number is negative, Redis will return the exact number requested
+ * but the result may contain duplicate elements.
+ *
+ * @return string|mixed|array|bool|Redis value(s) from the set or Redis if in multimode
+ * bool FALSE if set identified by key is empty or doesn't exist and count argument isn't passed.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/srandmember
+ * @example
+ *
+ * $redis->sAdd('key1' , 'one');
+ * $redis->sAdd('key1' , 'two');
+ * $redis->sAdd('key1' , 'three'); // 'key1' => {'one', 'two', 'three'}
+ *
+ * var_dump( $redis->sRandMember('key1') ); // 'key1' => {'one', 'two', 'three'}
+ *
+ * // string(5) "three"
+ *
+ * var_dump( $redis->sRandMember('key1', 2) ); // 'key1' => {'one', 'two', 'three'}
+ *
+ * // array(2) {
+ * // [0]=> string(2) "one"
+ * // [1]=> string(5) "three"
+ * // }
+ *
+ */
+ public function sRandMember($key, $count = 0) {}
+
+ /**
+ * Returns the members of a set resulting from the intersection of all the sets
+ * held at the specified keys. If just a single key is specified, then this command
+ * produces the members of this set. If one of the keys is missing, FALSE is returned.
+ *
+ * @param string $key1 keys identifying the different sets on which we will apply the intersection.
+ * @param string ...$otherKeys variadic list of keys
+ *
+ * @return array|false|Redis contain the result of the intersection between those keys or Redis if in multimode
+ * If the intersection between the different sets is empty, the return value will be empty array.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sinter
+ * @example
+ *
+ * $redis->sAdd('key1', 'val1');
+ * $redis->sAdd('key1', 'val2');
+ * $redis->sAdd('key1', 'val3');
+ * $redis->sAdd('key1', 'val4');
+ *
+ * $redis->sAdd('key2', 'val3');
+ * $redis->sAdd('key2', 'val4');
+ *
+ * $redis->sAdd('key3', 'val3');
+ * $redis->sAdd('key3', 'val4');
+ *
+ * var_dump($redis->sInter('key1', 'key2', 'key3'));
+ *
+ * //array(2) {
+ * // [0]=>
+ * // string(4) "val4"
+ * // [1]=>
+ * // string(4) "val3"
+ * //}
+ *
+ */
+ public function sInter($key1, ...$otherKeys) {}
+
+ /**
+ * Performs a sInter command and stores the result in a new set.
+ *
+ * @param array|string $key Either a string key, or an array of keys (with at least two elements,
+ * consisting of the destination key name and one or more source keys names.
+ * @param string ...$otherKeys If the first argument was a string, subsequent arguments should be source key names.
+ *
+ * @return int|false|Redis The cardinality of the resulting set, or FALSE in case of a missing key or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sinterstore
+ * @example
+ *
+ * $redis->sAdd('key1', 'val1');
+ * $redis->sAdd('key1', 'val2');
+ * $redis->sAdd('key1', 'val3');
+ * $redis->sAdd('key1', 'val4');
+ *
+ * $redis->sAdd('key2', 'val3');
+ * $redis->sAdd('key2', 'val4');
+ *
+ * $redis->sAdd('key3', 'val3');
+ * $redis->sAdd('key3', 'val4');
+ *
+ * var_dump($redis->sInterStore('output', 'key1', 'key2', 'key3'));
+ * var_dump($redis->sMembers('output'));
+ *
+ * //int(2)
+ * //
+ * //array(2) {
+ * // [0]=>
+ * // string(4) "val4"
+ * // [1]=>
+ * // string(4) "val3"
+ * //}
+ *
+ */
+ public function sInterStore(string $key, ...$otherKeys) {}
+
+ /**
+ * Performs the union between N sets and returns it.
+ *
+ * @param string $key1 first key for union
+ * @param string ...$otherKeys variadic list of keys corresponding to sets in redis
+ *
+ * @return array|false|Redis The union of all these sets or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sunionstore
+ * @example
+ *
+ * $redis->sAdd('s0', '1');
+ * $redis->sAdd('s0', '2');
+ * $redis->sAdd('s1', '3');
+ * $redis->sAdd('s1', '1');
+ * $redis->sAdd('s2', '3');
+ * $redis->sAdd('s2', '4');
+ *
+ * var_dump($redis->sUnion('s0', 's1', 's2'));
+ *
+ * array(4) {
+ * // [0]=>
+ * // string(1) "3"
+ * // [1]=>
+ * // string(1) "4"
+ * // [2]=>
+ * // string(1) "1"
+ * // [3]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sUnion($key1, ...$otherKeys) {}
+
+ /**
+ * Performs the same action as sUnion, but stores the result in the first key
+ *
+ * @param string $dstKey The destination key
+ * @param string $key1 The first source key
+ * @param string ...$otherKeys One or more additional source keys
+ *
+ * @return false|int|Redis Any number of keys corresponding to sets in redis or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sunionstore
+ * @example
+ *
+ * $redis->del('s0', 's1', 's2');
+ *
+ * $redis->sAdd('s0', '1');
+ * $redis->sAdd('s0', '2');
+ * $redis->sAdd('s1', '3');
+ * $redis->sAdd('s1', '1');
+ * $redis->sAdd('s2', '3');
+ * $redis->sAdd('s2', '4');
+ *
+ * var_dump($redis->sUnionStore('dst', 's0', 's1', 's2'));
+ * var_dump($redis->sMembers('dst'));
+ *
+ * //int(4)
+ * //array(4) {
+ * // [0]=>
+ * // string(1) "3"
+ * // [1]=>
+ * // string(1) "4"
+ * // [2]=>
+ * // string(1) "1"
+ * // [3]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sUnionStore($dstKey, $key1, ...$otherKeys) {}
+
+ /**
+ * Performs the difference between N sets and returns it.
+ *
+ * @param string $key1 first key for diff
+ * @param string ...$otherKeys variadic list of keys corresponding to sets in redis
+ *
+ * @return array|false|Redis string[] The difference of the first set will all the others or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sdiff
+ * @example
+ *
+ * $redis->del('s0', 's1', 's2');
+ *
+ * $redis->sAdd('s0', '1');
+ * $redis->sAdd('s0', '2');
+ * $redis->sAdd('s0', '3');
+ * $redis->sAdd('s0', '4');
+ *
+ * $redis->sAdd('s1', '1');
+ * $redis->sAdd('s2', '3');
+ *
+ * var_dump($redis->sDiff('s0', 's1', 's2'));
+ *
+ * //array(2) {
+ * // [0]=>
+ * // string(1) "4"
+ * // [1]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sDiff($key1, ...$otherKeys) {}
+
+ /**
+ * Performs the same action as sDiff, but stores the result in the first key
+ *
+ * @param string $dstKey the key to store the diff into.
+ * @param string $key1 first key for diff
+ * @param string ...$otherKeys variadic list of keys corresponding to sets in redis
+ *
+ * @return int|false|Redis The cardinality of the resulting set, or FALSE in case of a missing key or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sdiffstore
+ * @example
+ *
+ * $redis->del('s0', 's1', 's2');
+ *
+ * $redis->sAdd('s0', '1');
+ * $redis->sAdd('s0', '2');
+ * $redis->sAdd('s0', '3');
+ * $redis->sAdd('s0', '4');
+ *
+ * $redis->sAdd('s1', '1');
+ * $redis->sAdd('s2', '3');
+ *
+ * var_dump($redis->sDiffStore('dst', 's0', 's1', 's2'));
+ * var_dump($redis->sMembers('dst'));
+ *
+ * //int(2)
+ * //array(2) {
+ * // [0]=>
+ * // string(1) "4"
+ * // [1]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sDiffStore($dstKey, $key1, ...$otherKeys) {}
+
+ /**
+ * Returns the contents of a set.
+ *
+ * @param string $key
+ *
+ * @return array|false|Redis An array of elements, the contents of the set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/smembers
+ * @example
+ *
+ * $redis->del('s');
+ * $redis->sAdd('s', 'a');
+ * $redis->sAdd('s', 'b');
+ * $redis->sAdd('s', 'a');
+ * $redis->sAdd('s', 'c');
+ * var_dump($redis->sMembers('s'));
+ *
+ * //array(3) {
+ * // [0]=>
+ * // string(1) "c"
+ * // [1]=>
+ * // string(1) "a"
+ * // [2]=>
+ * // string(1) "b"
+ * //}
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function sMembers($key) {}
+
+ /**
+ * Check if one or more values are members of a set.
+ *
+ * @link https://redis.io/commands/smismember
+ * @see smember()
+ *
+ * @param string $key The set to query.
+ * @param string $member The first value to test if exists in the set.
+ * @param string ...$other_members Any number of additional values to check.
+ *
+ * @return Redis|array|false An array of integers representing whether each passed value was a member of the set.
+ *
+ * @example
+ * $redis->sAdd('ds9-crew', ...["Sisko", "Kira", "Dax", "Worf", "Bashir", "O'Brien"]);
+ * $members = $redis->sMIsMember('ds9-crew', ...['Sisko', 'Picard', 'Data', 'Worf']);
+ */
+ public function sMisMember(string $key, string $member, string ...$other_members): array|false {}
+
+ /**
+ * @link https://redis.io/commands/smembers
+ *
+ * @param string $key
+ * @return array|Redis An array of elements, the contents of the set or Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->sMembers(%parametersList%)')]
+ public function sGetMembers($key) {}
+
+ /**
+ * Scan a set for members
+ *
+ * @param string $key The Redis SET key in question.
+ * @param int|null &$iterator A reference to an iterator which should be initialized to NULL that
+ * PhpRedis will update with the value returned from Redis after each
+ * subsequent call to SSCAN. Once this cursor is zero you know all
+ * members have been traversed.
+ * @param string $pattern An optional glob style pattern to match against, so Redis only
+ * returns the subset of members matching this pattern.
+ * @param int $count A hint to Redis as to how many members it should scan in one command
+ * before returning members for that iteration.
+ *
+ * @return array|false|Redis PHPRedis will return an array of keys or FALSE when we're done iterating or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sscan
+ * @example
+ *
+ * $redis->del('myset');
+ * for ($i = 0; $i < 10000; $i++) {
+ * $redis->sAdd('myset', "member:$i");
+ * }
+ * $redis->sadd('myset', 'foofoo');
+ *
+ * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);
+ *
+ * $scanned = 0;
+ * $it = null;
+ *
+ * // Without Redis::SCAN_RETRY we may receive empty results and
+ * // a nonzero iterator.
+ * do {
+ * // Scan members containing '5'
+ * $members = $redis->sscan('myset', $it, '*5*');
+ * foreach ($members as $member) {
+ * echo "NORETRY: $member\n";
+ * $scanned++;
+ * }
+ * } while ($it != 0);
+ * echo "TOTAL: $scanned\n";
+ *
+ * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
+ *
+ * $scanned = 0;
+ * $it = null;
+ *
+ * // With Redis::SCAN_RETRY PhpRedis will never return an empty array
+ * // when the cursor is non-zero
+ * while (($members = $redis->sScan('set', $it, '*5*'))) {
+ * foreach ($members as $member) {
+ * echo "RETRY: $member\n";
+ * $scanned++;
+ * }
+ * }
+ *
+ */
+ public function sScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Sets a value and returns the previous entry at that key.
+ *
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return string|mixed|false|Redis A string (mixed, if used serializer), the previous value located at this key or false if it didn't exist or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/getset
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $exValue = $redis->getSet('x', 'lol'); // return '42', replaces x by 'lol'
+ * $newValue = $redis->get('x')' // return 'lol'
+ *
+ */
+ public function getSet($key, $value) {}
+
+ /**
+ * Returns a random key
+ *
+ * @return string|false|Redis an existing key in redis or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/randomkey
+ * @example
+ * + * $key = $redis->randomKey(); + * $surprise = $redis->get($key); // who knows what's in there. + *+ */ + public function randomKey() {} + + /** + * Switches to a given database + * + * @param int $dbIndex + * + * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/select + * @example + *
+ * $redis->select(0); // switch to DB 0
+ * $redis->set('x', '42'); // write 42 to x
+ * $redis->move('x', 1); // move to DB 1
+ * $redis->select(1); // switch to DB 1
+ * $redis->get('x'); // will return 42
+ *
+ */
+ public function select($dbIndex) {}
+
+ /**
+ * Moves a key to a different database.
+ *
+ * @param string $key
+ * @param int $dbIndex
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/move
+ * @example
+ *
+ * $redis->select(0); // switch to DB 0
+ * $redis->set('x', '42'); // write 42 to x
+ * $redis->move('x', 1); // move to DB 1
+ * $redis->select(1); // switch to DB 1
+ * $redis->get('x'); // will return 42
+ *
+ */
+ public function move($key, $dbIndex) {}
+
+ /**
+ * Renames a key
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/rename
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $redis->rename('x', 'y');
+ * $redis->get('y'); // → 42
+ * $redis->get('x'); // → `FALSE`
+ *
+ */
+ public function rename($srcKey, $dstKey) {}
+
+ /**
+ * @link https://redis.io/commands/rename
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->rename(%parametersList%)')]
+ public function renameKey($srcKey, $dstKey) {}
+
+ /**
+ * Renames a key
+ *
+ * Same as rename, but will not replace a key if the destination already exists.
+ * This is the same behaviour as setnx.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/renamenx
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $redis->rename('x', 'y');
+ * $redis->get('y'); // → 42
+ * $redis->get('x'); // → `FALSE`
+ *
+ */
+ public function renameNx($srcKey, $dstKey) {}
+
+ /**
+ * Sets an expiration in seconds on the key in question. If connected to
+ * redis-server >= 7.0.0 you may send an additional "mode" argument which
+ * modifies how the command will execute.
+ *
+ * @param string $key The key to set an expiration on.
+ * @param int $ttl The key's remaining Time To Live, in seconds
+ * @param string|null $mode A two character modifier that changes how the command works.
+ * NX - Set expiry only if key has no expiry
+ * XX - Set expiry only if key has an expiry
+ * LT - Set expiry only when new expiry is < current expiry
+ * GT - Set expiry only when new expiry is > current expiry
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/expire
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $redis->expire('x', 3); // x will disappear in 3 seconds.
+ * sleep(5); // wait 5 seconds
+ * $redis->get('x'); // will return `FALSE`, as 'x' has expired.
+ *
+ */
+ public function expire($key, $ttl, $mode = null) {}
+
+ /**
+ * Sets an expiration date (a timeout in milliseconds) on an item
+ *
+ * If connected to Redis >= 7.0.0 you can pass an optional mode argument that modifies how the command will execute.
+ *
+ * @param string $key The key to set an expiration on.
+ * @param int $ttl The key's remaining Time To Live, in milliseconds
+ * @param string|null $mode A two character modifier that changes how the command works.
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pexpire
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $redis->pExpire('x', 11500); // x will disappear in 11500 milliseconds.
+ * $redis->ttl('x'); // 12
+ * $redis->pttl('x'); // 11500
+ *
+ */
+ public function pExpire($key, $ttl, $mode = null) {}
+
+ /**
+ * @link https://redis.io/commands/expire
+ *
+ * @param string $key
+ * @param int $ttl
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->expire(%parametersList%)')]
+ public function setTimeout($key, $ttl) {}
+
+ /**
+ * Sets an expiration date (a timestamp) on an item.
+ *
+ * If connected to Redis >= 7.0.0 you can pass an optional 'mode' argument.
+ * @see expire() For a description of the mode argument.
+ *
+ * @param string $key The key to set an expiration on.
+ * @param int $timestamp The unix timestamp to expire at.
+ * @param string|null $mode An option 'mode' that modifies how the command acts
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/expireat
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $now = time(NULL); // current timestamp
+ * $redis->expireAt('x', $now + 3); // x will disappear in 3 seconds.
+ * sleep(5); // wait 5 seconds
+ * $redis->get('x'); // will return `FALSE`, as 'x' has expired.
+ *
+ */
+ public function expireAt($key, $timestamp, $mode = null) {}
+
+ /**
+ * Sets an expiration date (a timestamp) on an item. Requires a timestamp in milliseconds
+ *
+ * If connected to Redis >= 7.0.0 you can pass an optional 'mode' argument.
+ *
+ * @param string $key The key to set an expiration on.
+ * @param int $timestamp Unix timestamp. The key's date of death, in seconds from Epoch time
+ * @param string|null $mode A two character modifier that changes how the command works.
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pexpireat
+ * @example
+ *
+ * $redis->set('x', '42');
+ * $redis->pExpireAt('x', 1555555555005);
+ * echo $redis->ttl('x'); // 218270121
+ * echo $redis->pttl('x'); // 218270120575
+ *
+ */
+ public function pExpireAt($key, $timestamp, $mode = null) {}
+
+ /**
+ * Returns the keys that match a certain pattern.
+ *
+ * @param string $pattern pattern, using '*' as a wildcard
+ *
+ * @return array|false|Redis The keys that match a certain pattern or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/keys
+ * @example
+ *
+ * $allKeys = $redis->keys('*'); // all keys will match this.
+ * $keyWithUserPrefix = $redis->keys('user*');
+ *
+ */
+ public function keys($pattern) {}
+
+ /**
+ * @param string $pattern
+ *
+ * @throws RedisException
+ * @link https://redis.io/commands/keys
+ */
+ #[Deprecated(replacement: '%class%->keys(%parametersList%)')]
+ public function getKeys($pattern) {}
+
+ /**
+ * Returns the current database's size
+ *
+ * @return false|int|Redis DB size, in number of keys or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/dbsize
+ * @example
+ * + * $count = $redis->dbSize(); + * echo "Redis has $count keys\n"; + *+ */ + public function dbSize() {} + + /** + * Authenticate a Redis connection after its been established. + * Warning: The password is sent in plain-text over the network. + * + * @param mixed $credentials A string password, or an array with one or two string elements. + * + * @return bool|Redis TRUE if the connection is authenticated, FALSE otherwise or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/auth + * + * @example + * $redis->auth('password'); + * $redis->auth(['password']); + * $redis->auth(['username', 'password']); + */ + public function auth($credentials) {} + + /** + * Starts the background rewrite of AOF (Append-Only File) + * + * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/bgrewriteaof + * @example $redis->bgrewriteaof(); + */ + public function bgrewriteaof() {} + + /** + * Changes the slave status + * Either host and port, or no parameter to stop being a slave. + * + * This method and the corresponding command in Redis has been marked deprecated + * and users should instead use replicaof() if connecting to redis-server >= 5.0.0. + * + * @param string $host [optional] + * @param int $port [optional] + * + * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/slaveof + * @example + *
+ * $redis->slaveof('10.0.1.7', 6379);
+ * // ...
+ * $redis->slaveof();
+ *
+ */
+ #[Deprecated(replacement: '%class%->replicaof(%parametersList%)')]
+ public function slaveof($host = '127.0.0.1', $port = 6379) {}
+
+ /**
+ * Access the Redis slowLog
+ *
+ * @param string $operation The operation you wish to perform. This can be one of the following values:
+ * 'GET' - Retrieve the Redis slowlog as an array.
+ * 'LEN' - Retrieve the length of the slowlog.
+ * 'RESET' - Remove all slowlog entries.
+ * @param int $length This optional argument can be passed when operation
+ * is 'get' and will specify how many elements to retrieve.
+ * If omitted Redis will send up to a default number of
+ * entries, which is configurable.
+ *
+ * Note: With Redis >= 7.0.0 you can send -1 to mean "all".
+ *
+ * @return mixed|Redis The return value of SLOWLOG will depend on which operation was performed or Redis if in multimode
+ * - SLOWLOG GET: Array of slowLog entries, as provided by Redis
+ * - SLOGLOG LEN: Integer, the length of the slowLog
+ * - SLOWLOG RESET: Boolean, depending on success
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * // Get ten slowLog entries
+ * $redis->slowLog('get', 10);
+ * // Get the default number of slowLog entries
+ *
+ * $redis->slowLog('get');
+ * // Reset our slowLog
+ * $redis->slowLog('reset');
+ *
+ * // Retrieve slowLog length
+ * $redis->slowLog('len');
+ *
+ *
+ * @link https://redis.io/commands/slowlog
+ */
+ public function slowLog(string $operation, int $length = 0) {}
+
+ /**
+ * Describes the object pointed to by a key.
+ * The information to retrieve (string) and the key (string).
+ * Info can be one of the following:
+ * - "encoding"
+ * - "refcount"
+ * - "idletime"
+ *
+ * @param string $subcommand
+ * @param string $key
+ *
+ * @return string|int|false|Redis for "encoding", int for "refcount" and "idletime", FALSE if the key doesn't exist or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/object
+ * @example
+ *
+ * $redis->lPush('l', 'Hello, world!');
+ * $redis->object("encoding", "l"); // → ziplist
+ * $redis->object("refcount", "l"); // → 1
+ * $redis->object("idletime", "l"); // → 400 (in seconds, with a precision of 10 seconds).
+ *
+ */
+ public function object($subcommand, $key) {}
+
+ /**
+ * Performs a synchronous save.
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ * If a save is already running, this command will fail and return FALSE.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/save
+ * @example $redis->save();
+ */
+ public function save() {}
+
+ /**
+ * Performs a background save.
+ *
+ * @return bool|Redis TRUE in case of success, FALSE in case of failure or Redis if in multimode
+ * If a save is already running, this command will fail and return FALSE
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/bgsave
+ * @example $redis->bgSave();
+ */
+ public function bgSave() {}
+
+ /**
+ * Returns the timestamp of the last disk save.
+ *
+ * @return false|int|Redis timestamp or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/lastsave
+ * @example $redis->lastSave();
+ */
+ public function lastSave() {}
+
+ /**
+ * Blocks the current client until all the previous write commands are successfully transferred and
+ * acknowledged by at least the specified number of slaves.
+ *
+ * @param int $numreplicas The number of replicas we want to confirm write operaions
+ * @param int $timeout How long to wait (zero meaning forever).
+ *
+ * @return int|false|Redis The command returns the number of slaves reached by all the writes performed in the or Redis if in multimode
+ * context of the current connection
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/wait
+ * @example $redis->wait(2, 1000);
+ */
+ public function wait($numreplicas, $timeout) {}
+
+ /**
+ * Returns the type of data pointed by a given key.
+ *
+ * @param string $key
+ *
+ * @return false|int|Redis returns Redis if in multimode
+ * Depending on the type of the data pointed by the key,
+ * this method will return the following value:
+ * - string: Redis::REDIS_STRING
+ * - set: Redis::REDIS_SET
+ * - list: Redis::REDIS_LIST
+ * - zset: Redis::REDIS_ZSET
+ * - hash: Redis::REDIS_HASH
+ * - stream: Redis::REDIS_STREAM
+ * - other: Redis::REDIS_NOT_FOUND
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/type
+ * @example $redis->type('key');
+ */
+ public function type(string $key) {}
+
+ /**
+ * Append specified string to the string stored in specified key.
+ *
+ * @param string $key
+ * @param mixed $value
+ *
+ * @return false|int|Redis Size of the value after the append or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/append
+ * @example
+ *
+ * $redis->set('key', 'value1');
+ * $redis->append('key', 'value2'); // 12
+ * $redis->get('key'); // 'value1value2'
+ *
+ */
+ public function append($key, $value) {}
+
+ /**
+ * Return a substring of a larger string
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @return string|Redis the substring or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/getrange
+ * @example
+ *
+ * $redis->set('key', 'string value');
+ * $redis->getRange('key', 0, 5); // 'string'
+ * $redis->getRange('key', -5, -1); // 'value'
+ *
+ */
+ public function getRange($key, $start, $end) {}
+
+ /**
+ * Return a substring of a larger string
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @throws RedisException
+ */
+ #[Deprecated]
+ public function substr($key, $start, $end) {}
+
+ /**
+ * Changes a substring of a larger string.
+ *
+ * @param string $key
+ * @param int $offset
+ * @param string $value
+ *
+ * @return false|int|Redis the length of the string after it was modified or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/setrange
+ * @example
+ *
+ * $redis->set('key', 'Hello world');
+ * $redis->setRange('key', 6, "redis"); // returns 11
+ * $redis->get('key'); // "Hello redis"
+ *
+ */
+ public function setRange($key, $offset, $value) {}
+
+ /**
+ * Get the length of a string value.
+ *
+ * @param string $key
+ * @return false|int|Redis The length of the string key if it exists, zero if it does not, and false on failure.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/strlen
+ * @example
+ *
+ * $redis->set('key', 'value');
+ * $redis->strlen('key'); // 5
+ *
+ */
+ public function strlen($key) {}
+
+ /**
+ * Return the position of the first bit set to 1 or 0 in a string. The position is returned, thinking of the
+ * string as an array of bits from left to right, where the first byte's most significant bit is at position 0,
+ * the second byte's most significant bit is at position 8, and so forth.
+ *
+ * @param string $key The key to check (must be a string)
+ * @param bool $bit Whether to look for an unset (0) or set (1) bit.
+ * @param int $start Where in the string to start looking.
+ * @param int $end Where in the string to stop looking.
+ * @param bool $bybit If true, Redis will treat $start and $end as BIT values and not bytes, so if start was 0 and end was 2, Redis would only search the first two bits.
+ *
+ * @return false|int|Redis The command returns the position of the first bit set to 1 or 0 according to the request or Redis if in multimode
+ * If we look for set bits (the bit argument is 1) and the string is empty or composed of just
+ * zero bytes, -1 is returned. If we look for clear bits (the bit argument is 0) and the string
+ * only contains bit set to 1, the function returns the first bit not part of the string on the
+ * right. So if the string is three bytes set to the value 0xff the command BITPOS key 0 will
+ * return 24, since up to bit 23 all the bits are 1. Basically, the function considers the right
+ * of the string as padded with zeros if you look for clear bits and specify no range or the
+ * start argument only. However, this behavior changes if you are looking for clear bits and
+ * specify a range with both start and end. If no clear bit is found in the specified range, the
+ * function returns -1 as the user specified a clear range and there are no 0 bits in that range.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/bitpos
+ * @example
+ *
+ * $redis->set('key', '\xff\xff');
+ * $redis->bitpos('key', 1); // int(0)
+ * $redis->bitpos('key', 1, 1); // int(8)
+ * $redis->bitpos('key', 1, 3); // int(-1)
+ * $redis->bitpos('key', 0); // int(16)
+ * $redis->bitpos('key', 0, 1); // int(16)
+ * $redis->bitpos('key', 0, 1, 5); // int(-1)
+ *
+ */
+ public function bitpos($key, $bit, $start = 0, $end = -1, $bybit = false) {}
+
+ /**
+ * Return a single bit out of a larger string
+ *
+ * @param string $key
+ * @param int $offset
+ *
+ * @return false|int|Redis the bit value (0 or 1) or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/getbit
+ * @example
+ *
+ * $redis->set('key', "\x7f"); // this is 0111 1111
+ * $redis->getBit('key', 0); // 0
+ * $redis->getBit('key', 1); // 1
+ *
+ */
+ public function getBit($key, $offset) {}
+
+ /**
+ * Changes a single bit of a string.
+ *
+ * @param string $key
+ * @param int $offset
+ * @param bool|int $value bool or int (1 or 0)
+ *
+ * @return false|int|Redis 0 or 1, the value of the bit before it was set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/setbit
+ * @example
+ *
+ * $redis->set('key', "*"); // ord("*") = 42 = 0x2f = "0010 1010"
+ * $redis->setBit('key', 5, 1); // returns 0
+ * $redis->setBit('key', 7, 1); // returns 0
+ * $redis->get('key'); // chr(0x2f) = "/" = b("0010 1111")
+ *
+ */
+ public function setBit($key, $offset, $value) {}
+
+ /**
+ * Count bits in a string
+ *
+ * @param string $key The key in question (must be a string key)
+ * @param int $start The index where Redis should start counting. If omitted it defaults to zero, which means the start of the string.
+ * @param int $end The index where Redis should stop counting. If omitted it defaults to -1, meaning the very end of the string.
+ * @param bool $bybit Whether or not Redis should treat $start and $end as bit positions, rather than bytes.
+ *
+ * @return false|int|Redis The number of bits set to 1 in the value behind the input key or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/bitcount
+ * @example
+ *
+ * $redis->set('bit', '345'); // // 11 0011 0011 0100 0011 0101
+ * var_dump( $redis->bitCount('bit', 0, 0) ); // int(4)
+ * var_dump( $redis->bitCount('bit', 1, 1) ); // int(3)
+ * var_dump( $redis->bitCount('bit', 2, 2) ); // int(4)
+ * var_dump( $redis->bitCount('bit', 0, 2) ); // int(11)
+ *
+ */
+ public function bitCount($key, $start = 0, $end = -1, $bybit = false) {}
+
+ /**
+ * Bitwise operation on multiple keys.
+ *
+ * @param string $operation either "AND", "OR", "NOT", "XOR"
+ * @param string $retKey return key
+ * @param string $key1 first key
+ * @param string ...$otherKeys variadic list of keys
+ *
+ * @return false|int|Redis The size of the string stored in the destination key or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/bitop
+ * @example
+ *
+ * $redis->set('bit1', '1'); // 11 0001
+ * $redis->set('bit2', '2'); // 11 0010
+ *
+ * $redis->bitOp('AND', 'bit', 'bit1', 'bit2'); // bit = 110000
+ * $redis->bitOp('OR', 'bit', 'bit1', 'bit2'); // bit = 110011
+ * $redis->bitOp('NOT', 'bit', 'bit1', 'bit2'); // bit = 110011
+ * $redis->bitOp('XOR', 'bit', 'bit1', 'bit2'); // bit = 11
+ *
+ */
+ public function bitOp($operation, $retKey, $key1, ...$otherKeys) {}
+
+ /**
+ * Removes all entries from the current database.
+ *
+ * @param bool|null $async Whether to perform the task in a blocking or non-blocking way. Requires server version 4.0.0 or greater
+ *
+ * @return bool|Redis Always TRUE or Redis if in multimode
+ * @throws RedisException
+ * @link https://redis.io/commands/flushdb
+ * @example $redis->flushDB();
+ */
+ public function flushDB($async = null) {}
+
+ /**
+ * Removes all entries from all databases.
+ *
+ * @param bool|null $async Whether to perform the task in a blocking or non-blocking way. Requires server version 4.0.0 or greater
+ *
+ * @return bool|Redis Always TRUE or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/flushall
+ * @example $redis->flushAll();
+ */
+ public function flushAll($async = null) {}
+
+ /**
+ * Sort the contents of a Redis key in various ways.
+ *
+ * @param string $key The key you wish to sort
+ * @param array|null $options Various options controlling how you would like the data sorted.
+ * See blow for a detailed description of this options array.
+ * 'SORT' => 'ASC'|| 'DESC' // Sort in descending or descending order.
+ * 'ALPHA' => true || false // Whether to sort alphanumerically.
+ * 'LIMIT' => [0, 10] // Return a subset of the data at offset, count
+ * 'BY' => 'weight_*' // For each element in the key, read data from the
+ * external key weight_* and sort based on that value.
+ * 'GET' => 'weight_*' // For each element in the source key, retrieve the
+ * data from key weight_* and return that in the result
+ * rather than the source keys' element. This can
+ * be used in combination with 'BY'
+ *
+ * @return mixed This command can either return an array with the sorted data or the
+ * number of elements placed in a destination set when using the STORE option.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sort
+ * @example
+ *
+ * $redis->del('s');
+ * $redis->sadd('s', 5);
+ * $redis->sadd('s', 4);
+ * $redis->sadd('s', 2);
+ * $redis->sadd('s', 1);
+ * $redis->sadd('s', 3);
+ *
+ * var_dump($redis->sort('s')); // 1,2,3,4,5
+ * var_dump($redis->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1
+ * var_dump($redis->sort('s', array('sort' => 'desc', 'store' => 'out'))); // (int)5
+ *
+ */
+ public function sort($key, $options = null) {}
+
+ /**
+ * Returns an associative array of strings and integers
+ *
+ * If connected to Redis server >= 7.0.0 you may pass multiple optional sections.
+ *
+ * @param string ...$sections Optional section(s) you wish Redis server to return.
+ * SERVER | CLIENTS | MEMORY | PERSISTENCE | STATS | REPLICATION | CPU | CLUSTER | KEYSPACE | COMMANDSTATS
+ *
+ * Returns an associative array of strings and integers, with the following keys:
+ * - redis_version
+ * - redis_git_sha1
+ * - redis_git_dirty
+ * - arch_bits
+ * - multiplexing_api
+ * - process_id
+ * - uptime_in_seconds
+ * - uptime_in_days
+ * - lru_clock
+ * - used_cpu_sys
+ * - used_cpu_user
+ * - used_cpu_sys_children
+ * - used_cpu_user_children
+ * - connected_clients
+ * - connected_slaves
+ * - client_longest_output_list
+ * - client_biggest_input_buf
+ * - blocked_clients
+ * - used_memory
+ * - used_memory_human
+ * - used_memory_peak
+ * - used_memory_peak_human
+ * - mem_fragmentation_ratio
+ * - mem_allocator
+ * - loading
+ * - aof_enabled
+ * - changes_since_last_save
+ * - bgsave_in_progress
+ * - last_save_time
+ * - total_connections_received
+ * - total_commands_processed
+ * - expired_keys
+ * - evicted_keys
+ * - keyspace_hits
+ * - keyspace_misses
+ * - hash_max_zipmap_entries
+ * - hash_max_zipmap_value
+ * - pubsub_channels
+ * - pubsub_patterns
+ * - latest_fork_usec
+ * - vm_enabled
+ * - role
+ *
+ * @return array|false|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/info
+ * @example
+ *
+ * $redis->info();
+ *
+ * or
+ *
+ * $redis->info("COMMANDSTATS"); //Information on the commands that have been run (>=2.6 only)
+ * $redis->info("CPU"); // just CPU information from Redis INFO
+ *
+ */
+ public function info(...$sections) {}
+
+ /**
+ * Returns an indexed array whose first element is the role
+ *
+ * @return mixed|Redis Will return an array with the role of the connected instance unless there is an error. returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/role
+ * @example
+ * + * $redis->role(); + *+ */ + public function role() {} + + /** + * Resets the statistics reported by Redis using the INFO command (`info()` function). + * These are the counters that are reset: + * - Keyspace hits + * - Keyspace misses + * - Number of commands processed + * - Number of connections received + * - Number of expired keys + * + * @return bool|Redis `TRUE` in case of success, `FALSE` in case of failure or Redis if in multimode + * + * @throws RedisException + * + * @example $redis->resetStat(); + * @link https://redis.io/commands/config-resetstat + */ + #[Deprecated(replacement: "%class%->rawCommand('CONFIG', 'RESETSTAT')")] + public function resetStat() {} + + /** + * Returns the time to live left for a given key, in seconds. If the key doesn't exist, FALSE is returned. + * + * @param string $key + * + * @return int|bool|Redis the time left to live in seconds or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/ttl + * @example + *
+ * $redis->setex('key', 123, 'test');
+ * $redis->ttl('key'); // int(123)
+ *
+ */
+ public function ttl($key) {}
+
+ /**
+ * Returns a time to live left for a given key, in milliseconds.
+ *
+ * If the key doesn't exist, FALSE is returned.
+ *
+ * @param string $key
+ *
+ * @return int|bool|Redis the time left to live in milliseconds or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pttl
+ * @example
+ *
+ * $redis->setex('key', 123, 'test');
+ * $redis->pttl('key'); // int(122999)
+ *
+ */
+ public function pttl($key) {}
+
+ /**
+ * Remove the expiration timer from a key.
+ *
+ * @param string $key
+ *
+ * @return bool|Redis TRUE if a timeout was removed, FALSE if the key didn’t exist or didn’t have an expiration timer or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/persist
+ * @example $redis->persist('key');
+ */
+ public function persist($key) {}
+
+ /**
+ * Sets multiple key-value pairs in one atomic command.
+ * MSETNX only returns TRUE if all the keys were set (see SETNX).
+ *
+ * @param array
+ * $redis->mSet(array('key0' => 'value0', 'key1' => 'value1'));
+ * var_dump($redis->get('key0'));
+ * var_dump($redis->get('key1'));
+ * // Output:
+ * // string(6) "value0"
+ * // string(6) "value1"
+ *
+ */
+ public function mSet($array) {}
+
+ /**
+ * Get the values of all the specified keys.
+ * If one or more keys dont exist, the array will contain FALSE at the position of the key.
+ *
+ * @param array $keys Array containing the list of the keys
+ *
+ * @return array|Redis Array containing the values related to keys in argument or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->set('key1', 'value1');
+ * $redis->set('key2', 'value2');
+ * $redis->set('key3', 'value3');
+ * $redis->getMultiple(array('key1', 'key2', 'key3')); // array('value1', 'value2', 'value3');
+ * $redis->getMultiple(array('key0', 'key1', 'key5')); // array(`FALSE`, 'value2', `FALSE`);
+ *
+ */
+ #[Deprecated(replacement: '%class%->mGet(%parametersList%)')]
+ public function getMultiple(array $keys) {}
+
+ /**
+ * Returns the values of all specified keys.
+ *
+ * For every key that does not hold a string value or does not exist,
+ * the special value false is returned. Because of this, the operation never fails.
+ *
+ * @param array $array
+ *
+ * @return false|list
+ * $redis->del('x', 'y', 'z', 'h'); // remove x y z
+ * $redis->mset(array('x' => 'a', 'y' => 'b', 'z' => 'c'));
+ * $redis->hset('h', 'field', 'value');
+ * var_dump($redis->mget(array('x', 'y', 'z', 'h')));
+ * // Output:
+ * // array(3) {
+ * // [0]=> string(1) "a"
+ * // [1]=> string(1) "b"
+ * // [2]=> string(1) "c"
+ * // [3]=> bool(false)
+ * // }
+ *
+ */
+ public function mGet(array $array) {}
+
+ /**
+ * Set one ore more string keys but only if none of the key exist.
+ *
+ * @see mSet()
+ *
+ * @param array
+ * $redis->del('x', 'y');
+ *
+ * $redis->lPush('x', 'abc');
+ * $redis->lPush('x', 'def');
+ * $redis->lPush('y', '123');
+ * $redis->lPush('y', '456');
+ *
+ * // move the last of x to the front of y.
+ * var_dump($redis->rpoplpush('x', 'y'));
+ * var_dump($redis->lRange('x', 0, -1));
+ * var_dump($redis->lRange('y', 0, -1));
+ *
+ * //Output:
+ * //
+ * //string(3) "abc"
+ * //array(1) {
+ * // [0]=>
+ * // string(3) "def"
+ * //}
+ * //array(3) {
+ * // [0]=>
+ * // string(3) "abc"
+ * // [1]=>
+ * // string(3) "456"
+ * // [2]=>
+ * // string(3) "123"
+ * //}
+ *
+ */
+ public function rPopLPush($srcKey, $dstKey) {}
+
+ /**
+ * A blocking version of rPopLPush, with an integral timeout in the third parameter.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ * @param int|float $timeout The number of seconds to wait. Note that you must be connected to Redis >= 6.0.0 to send a floating point timeout.
+ *
+ * @return string|mixed|bool|Redis The element that was moved in case of success, FALSE in case of timeout or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/brpoplpush
+ */
+ public function bRPopLPush($srcKey, $dstKey, $timeout) {}
+
+ /**
+ * Adds the specified member with a given score to the sorted set stored at key
+ *
+ * @param string $key The sorted set in question.
+ * @param array|float $score_or_options Either the score for the first element, or an array of options.
+ * 'NX', # Only update elements that already exist
+ * 'NX', # Only add new elements but don't update existing ones.
+ * 'LT' # Only update existing elements if the new score is
+ * # less than the existing one.
+ * 'GT' # Only update existing elements if the new score is
+ * # greater than the existing one.
+ * 'CH' # Instead of returning the number of elements added,
+ * # Redis will return the number Of elements that were
+ * # changed in the operation.
+ * 'INCR' # Instead of setting each element to the provide score,
+ * # increment the element by the
+ * # provided score, much like ZINCRBY. When this option
+ * # is passed, you may only send a single score and member.
+ *
+ * Note: 'GX', 'LT', and 'NX' cannot be passed together, and PhpRedis
+ * will send whichever one is last in the options array.
+ *
+ * @param mixed $more_scores_and_mems A variadic number of additional scores and members.
+ *
+ * @return false|int|Redis Number of values added or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zadd
+ * @example
+ *
+ * $redis->zAdd('z', 1, 'v1', 2, 'v2', 3, 'v3', 4, 'v4' ); // int(2)
+ * $redis->zRem('z', 'v2', 'v3'); // int(2)
+ * $redis->zAdd('z', ['NX'], 5, 'v5'); // int(1)
+ * $redis->zAdd('z', ['NX'], 6, 'v5'); // int(0)
+ * $redis->zAdd('z', 7, 'v6'); // int(1)
+ * $redis->zAdd('z', 8, 'v6'); // int(0)
+ *
+ * var_dump( $redis->zRange('z', 0, -1) );
+ * // Output:
+ * // array(4) {
+ * // [0]=> string(2) "v1"
+ * // [1]=> string(2) "v4"
+ * // [2]=> string(2) "v5"
+ * // [3]=> string(2) "v8"
+ * // }
+ *
+ * var_dump( $redis->zRange('z', 0, -1, true) );
+ * // Output:
+ * // array(4) {
+ * // ["v1"]=> float(1)
+ * // ["v4"]=> float(4)
+ * // ["v5"]=> float(5)
+ * // ["v6"]=> float(8)
+ *
+ */
+ public function zAdd($key, $score_or_options, ...$more_scores_and_mems) {}
+
+ /**
+ * Returns a range of elements from the ordered set stored at the specified key,
+ * with values in the range [start, end]. start and stop are interpreted as zero-based indices:
+ * 0 the first element,
+ * 1 the second ...
+ * -1 the last element,
+ * -2 the penultimate ...
+ *
+ * @param string $key The sorted set in question.
+ * @param string|int $start The starting index we want to return.
+ * @param string|int $end The final index we want to return.
+ *
+ * @param array|bool|null $options This value may either be an array of options to pass to
+ * the command, or for historical purposes a boolean which
+ * controls just the 'WITHSCORES' option.
+ * 'WITHSCORES' => true, # Return both scores and members.
+ * 'LIMIT' => [10, 10], # Start at offset 10 and return 10 elements.
+ * 'REV' # Return the elements in reverse order
+ * 'BYSCORE', # Treat `start` and `end` as scores instead
+ * 'BYLEX' # Treat `start` and `end` as lexicographical values.
+
+ * Note: 'BYLEX' and 'BYSCORE' are mutually exclusive.
+ *
+ * @return array|Redis Array containing the values in specified range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrange
+ * @example
+ *
+ * $redis->zAdd('key1', 0, 'val0');
+ * $redis->zAdd('key1', 2, 'val2');
+ * $redis->zAdd('key1', 10, 'val10');
+ * $redis->zRange('key1', 0, -1); // array('val0', 'val2', 'val10')
+ * // with scores
+ * $redis->zRange('key1', 0, -1, true); // array('val0' => 0, 'val2' => 2, 'val10' => 10)
+ *
+ */
+ public function zRange($key, $start, $end, $options = null) {}
+
+ /**
+ * Deletes a specified member from the ordered set.
+ *
+ * @param string $key
+ * @param string|mixed $member1
+ * @param string|mixed ...$otherMembers
+ *
+ * @return false|int|Redis Number of deleted values or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrem
+ * @example
+ *
+ * $redis->zAdd('z', 1, 'v1', 2, 'v2', 3, 'v3', 4, 'v4' ); // int(2)
+ * $redis->zRem('z', 'v2', 'v3'); // int(2)
+ * var_dump( $redis->zRange('z', 0, -1) );
+ * //// Output:
+ * // array(2) {
+ * // [0]=> string(2) "v1"
+ * // [1]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function zRem($key, $member1, ...$otherMembers) {}
+
+ /**
+ * @link https://redis.io/commands/zrem
+ *
+ * @param string $key
+ * @param string|mixed $member1
+ * @param string|mixed ...$otherMembers
+ *
+ * @return false|int|Redis Number of deleted values or Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zRem(%parametersList%)')]
+ public function zDelete($key, $member1, ...$otherMembers) {}
+
+ /**
+ * Returns the elements of the sorted set stored at the specified key in the range [start, end]
+ * in reverse order. start and stop are interpretated as zero-based indices:
+ * 0 the first element,
+ * 1 the second ...
+ * -1 the last element,
+ * -2 the penultimate ...
+ *
+ * @param string $key The sorted set in question.
+ * @param int $start The index to start listing elements
+ * @param int $end The index to stop listing elements.
+ * @param mixed $scores Whether or not Redis should also return each members score.
+ *
+ * @return array|Redis Array containing the values in specified range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrevrange
+ * @example
+ *
+ * $redis->zAdd('key', 0, 'val0');
+ * $redis->zAdd('key', 2, 'val2');
+ * $redis->zAdd('key', 10, 'val10');
+ * $redis->zRevRange('key', 0, -1); // array('val10', 'val2', 'val0')
+ *
+ * // with scores
+ * $redis->zRevRange('key', 0, -1, true); // array('val10' => 10, 'val2' => 2, 'val0' => 0)
+ * $redis->zRevRange('key', 0, -1, ['withscores' => true]);
+ *
+ */
+ public function zRevRange($key, $start, $end, $scores = null) {}
+
+ /**
+ * Returns the elements of the sorted set stored at the specified key which have scores in the
+ * range [start,end]. Adding a parenthesis before start or end excludes it from the range.
+ * +inf and -inf are also valid limits.
+ *
+ * zRevRangeByScore returns the same items in reverse order, when the start and end parameters are swapped.
+ *
+ * @param string $key The sorted set to query.
+ * @param string $start The minimum score of elements that Redis should return.
+ * @param string $end The maximum score of elements that Redis should return.
+ * @param array $options Options that change how Redis will execute the command.
+ *
+ * OPTION TYPE MEANING
+ * 'WITHSCORES' bool Whether to also return scores.
+ * 'LIMIT' [offset, count] Limit the reply to a subset of elements.
+ *
+ * @return array|false|Redis Array containing the values in specified range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrangebyscore
+ * @example
+ *
+ * $redis->zAdd('key', 0, 'val0');
+ * $redis->zAdd('key', 2, 'val2');
+ * $redis->zAdd('key', 10, 'val10');
+ * $redis->zRangeByScore('key', 0, 3); // array('val0', 'val2')
+ * $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE); // array('val0' => 0, 'val2' => 2)
+ * $redis->zRangeByScore('key', 0, 3, array('limit' => array(1, 1)); // array('val2')
+ * $redis->zRangeByScore('key', 0, 3, array('withscores' => TRUE, 'limit' => array(1, 1)); // array('val2' => 2)
+ *
+ */
+ public function zRangeByScore($key, $start, $end, array $options = []) {}
+
+ /**
+ * List elements from a Redis sorted set by score, highest to lowest
+ *
+ * @param string $key The sorted set to query.
+ * @param string $start The highest score to include in the results.
+ * @param string $end The lowest score to include in the results.
+ * @param array $options An options array that modifies how the command executes.
+ *
+ * $options = [
+ * 'WITHSCORES' => true|false # Whether or not to return scores
+ * 'LIMIT' => [offset, count] # Return a subset of the matching members
+ * ];
+ *
+ *
+ * NOTE: For legacy reason, you may also simply pass `true` for the
+ * options argument, to mean `WITHSCORES`.
+ *
+ * @return array|false|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ * @see zRangeByScore()
+ *
+ * @example
+ * $redis->zadd('oldest-people', 122.4493, 'Jeanne Calment', 119.2932, 'Kane Tanaka',
+ * 119.2658, 'Sarah Knauss', 118.7205, 'Lucile Randon',
+ * 117.7123, 'Nabi Tajima', 117.6301, 'Marie-Louise Meilleur',
+ * 117.5178, 'Violet Brown', 117.3753, 'Emma Morano',
+ * 117.2219, 'Chiyo Miyako', 117.0740, 'Misao Okawa');
+ *
+ * $redis->zRevRangeByScore('oldest-people', 122, 119);
+ * $redis->zRevRangeByScore('oldest-people', 'inf', 118);
+ * $redis->zRevRangeByScore('oldest-people', '117.5', '-inf', ['LIMIT' => [0, 1]]);
+ */
+ public function zRevRangeByScore(string $key, string $start, string $end, array $options = []) {}
+
+ /**
+ * Returns a lexigraphical range of members in a sorted set, assuming the members have the same score. The
+ * min and max values are required to start with '(' (exclusive), '[' (inclusive), or be exactly the values
+ * '-' (negative inf) or '+' (positive inf). The command must be called with either three *or* five
+ * arguments or will return FALSE.
+ *
+ * @param string $key The ZSET you wish to run against.
+ * @param string $min The minimum alphanumeric value you wish to get.
+ * @param string $max The maximum alphanumeric value you wish to get.
+ * @param int $offset Optional argument if you wish to start somewhere other than the first element.
+ * @param int $count An optional count to limit the replies to (used in conjunction with offset)
+ *
+ * @return array|false|Redis Array containing the values in the specified range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrangebylex
+ * @example
+ *
+ * foreach (array('a', 'b', 'c', 'd', 'e', 'f', 'g') as $char) {
+ * $redis->zAdd('key', $char);
+ * }
+ *
+ * $redis->zRangeByLex('key', '-', '[c'); // array('a', 'b', 'c')
+ * $redis->zRangeByLex('key', '-', '(c'); // array('a', 'b')
+ * $redis->zRangeByLex('key', '-', '[c'); // array('b', 'c')
+ *
+ */
+ public function zRangeByLex(string $key, string $min, string $max, int $offset = -1, int $count = -1) {}
+
+ /**
+ * Retrieve the score of one or more members in a sorted set.
+ *
+ * @link https://redis.io/commands/zmscore
+ *
+ * @param string $key The sorted set
+ * @param mixed $member The first member to return the score from
+ * @param mixed $other_members One or more additional members to return the scores of.
+ *
+ * @return Redis|array|false An array of the scores of the requested elements.
+ *
+ * @example
+ * $redis->zAdd('zs', 0, 'zero', 1, 'one', 2, 'two', 3, 'three');
+ *
+ * $redis->zMScore('zs', 'zero', 'two');
+ * $redis->zMScore('zs', 'one', 'not-a-member');
+ */
+ public function zMscore(string $key, string $member, string ...$other_members): array|false {}
+
+ /**
+ * Pop one or more of the highest scoring elements from a sorted set.
+ *
+ * @param string $key The sorted set to pop elements from.
+ * @param int|null $count An optional count of elements to pop.
+ *
+ * @return Redis|array|false All of the popped elements with scores or false on fialure.
+ *
+ * @link https://redis.io/commands/zpopmax
+ *
+ * @example
+ * $redis->zAdd('zs', 0, 'zero', 1, 'one', 2, 'two', 3, 'three');
+ *
+ * $redis->zPopMax('zs');
+ * $redis->zPopMax('zs', 2);.
+ */
+ public function zPopMax(string $key, int $count = null): array|false {}
+
+ /**
+ * Pop one or more of the lowest scoring elements from a sorted set.
+ *
+ * @param string $key The sorted set to pop elements from.
+ * @param int|null $count An optional count of elements to pop.
+ *
+ * @return Redis|array|false The popped elements with their scores or false on failure.
+ *
+ * @link https://redis.io/commands/zpopmin
+ *
+ * @example
+ * $redis->zAdd('zs', 0, 'zero', 1, 'one', 2, 'two', 3, 'three');
+ *
+ * $redis->zPopMin('zs');
+ * $redis->zPopMin('zs', 2);
+ */
+ public function zPopMin(string $key, int $count = null): array|false {}
+
+ /**
+ * Retrieve one or more random members from a Redis sorted set.
+ *
+ * @param string $key The sorted set to pull random members from.
+ * @param array|null $options One or more options that determine exactly how the command operates.
+ *
+ * OPTION TYPE MEANING
+ * 'COUNT' int The number of random members to return.
+ * 'WITHSCORES' bool Whether to return scores and members instead of
+ *
+ * @return Redis|string|array One ore more random elements.
+ *
+ * @see https://redis.io/commands/zrandmember
+ *
+ * @example $redis->zRandMember('zs', ['COUNT' => 2, 'WITHSCORES' => true]);
+ */
+ public function zRandMember(string $key, array $options = null): string|array|false {}
+
+ /**
+ * List members of a Redis sorted set within a legographical range, in reverse order.
+ *
+ * @param string $key The sorted set to list
+ * @param string $min The maximum legographical element to include in the result.
+ * @param string $min The minimum lexographical element to include in the result.
+ * @param int $offset An option offset within the matching elements to start at.
+ * @param int $count An optional count to limit the replies to.
+ *
+ * @return false|array|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @see zRangeByLex()
+ * @link https://redis.io/commands/zrevrangebylex
+ *
+ * @example
+ * $redis->zRevRangeByLex('captains', '[Q', '[J');
+ * $redis->zRevRangeByLex('captains', '[Q', '[J', 1, 2);
+ */
+ public function zRevRangeByLex(string $key, string $min, string $max, int $offset = -1, int $count = -1) {}
+
+ /**
+ * Removes all elements in the sorted set stored at key between the lexicographical range specified by min and max.
+ * Applies when all the elements in a sorted set are inserted with the same score, in order to force lexicographical ordering.
+ *
+ * @param string $key The sorted set to remove elements from.
+ * @param string $min The start of the lexographical range to remove.
+ * @param string $max The end of the lexographical range to remove
+ *
+ * @return int|false|Redis The number of elements removed
+ *
+ * @link https://redis.io/commands/zremrangebylex
+ *
+ * @example
+ * $redis->zRemRangeByLex('zs', '[a', '(b');
+ * $redis->zRemRangeByLex('zs', '(banana', '(eggplant');
+ */
+ public function zRemRangeByLex(string $key, string $min, string $max) {}
+
+ /**
+ * Returns the number of elements of the sorted set stored at the specified key which have
+ * scores in the range [start,end]. Adding a parenthesis before start or end excludes it
+ * from the range. +inf and -inf are also valid limits.
+ *
+ * @param string $key
+ * @param string $start
+ * @param string $end
+ *
+ * @return false|int|Redis the size of a corresponding zRangeByScore or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zcount
+ * @example
+ *
+ * $redis->zAdd('key', 0, 'val0');
+ * $redis->zAdd('key', 2, 'val2');
+ * $redis->zAdd('key', 10, 'val10');
+ * $redis->zCount('key', 0, 3); // 2, corresponding to array('val0', 'val2')
+ *
+ */
+ public function zCount($key, $start, $end) {}
+
+ /**
+ * Deletes the elements of the sorted set stored at the specified key which have scores in the range [start,end].
+ *
+ * @param string $key
+ * @param string $start double or "+inf" or "-inf" as a string
+ * @param string $end double or "+inf" or "-inf" as a string
+ *
+ * @return false|int|Redis The number of values deleted from the sorted set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zremrangebyscore
+ * @example
+ *
+ * $redis->zAdd('key', 0, 'val0');
+ * $redis->zAdd('key', 2, 'val2');
+ * $redis->zAdd('key', 10, 'val10');
+ * $redis->zRemRangeByScore('key', '0', '3'); // 2
+ *
+ */
+ public function zRemRangeByScore($key, $start, $end) {}
+
+ /**
+ * @param string $key
+ * @param float $start
+ * @param float $end
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zRemRangeByScore(%parametersList%)')]
+ public function zDeleteRangeByScore($key, $start, $end) {}
+
+ /**
+ * Deletes the elements of the sorted set stored at the specified key which have rank in the range [start,end].
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @return false|int|Redis The number of values deleted from the sorted set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zremrangebyrank
+ * @example
+ *
+ * $redis->zAdd('key', 1, 'one');
+ * $redis->zAdd('key', 2, 'two');
+ * $redis->zAdd('key', 3, 'three');
+ * $redis->zRemRangeByRank('key', 0, 1); // 2
+ * $redis->zRange('key', 0, -1, array('withscores' => TRUE)); // array('three' => 3)
+ *
+ */
+ public function zRemRangeByRank($key, $start, $end) {}
+
+ /**
+ * @link https://redis.io/commands/zremrangebyscore
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zRemRangeByRank(%parametersList%)')]
+ public function zDeleteRangeByRank($key, $start, $end) {}
+
+ /**
+ * Returns the cardinality of an ordered set.
+ *
+ * @param string $key
+ *
+ * @return false|int|Redis the set's cardinality or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zsize
+ * @example
+ *
+ * $redis->zAdd('key', 0, 'val0');
+ * $redis->zAdd('key', 2, 'val2');
+ * $redis->zAdd('key', 10, 'val10');
+ * $redis->zCard('key'); // 3
+ *
+ */
+ public function zCard($key) {}
+
+ /**
+ * Given one or more sorted set key names, return every element that is in the first
+ * set but not any of the others.
+ *
+ * @param array $keys One ore more sorted sets.
+ * @param array|null $options An array which can contain ['WITHSCORES' => true] if you want Redis to return members and scores.
+ *
+ * @return Redis|array|false An array of members or false on failure.
+ *
+ * @link https://redis.io/commands/zdiff
+ *
+ * @example
+ * $redis->zAdd('primes', 1, 'one', 3, 'three', 5, 'five');
+ * $redis->zAdd('evens', 2, 'two', 4, 'four');
+ * $redis->zAdd('mod3', 3, 'three', 6, 'six');
+ *
+ * $redis->zDiff(['primes', 'evens', 'mod3']);
+ */
+ public function zdiff(array $keys, array $options = null): array|false {}
+
+ /**
+ * @param string $key
+ * @return false|int|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zCard(%parametersList%)')]
+ public function zSize($key) {}
+
+ /**
+ * Returns the score of a given member in the specified sorted set.
+ *
+ * @param string $key The sorted set to query.
+ * @param mixed $member The member we wish to query.
+ *
+ * @return float|bool|Redis false if member or key not exists or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zscore
+ * @example
+ *
+ * $redis->zAdd('key', 2.5, 'val2');
+ * $redis->zScore('key', 'val2'); // 2.5
+ *
+ */
+ public function zScore($key, $member) {}
+
+ /**
+ * Returns the rank of a given member in the specified sorted set, starting at 0 for the item
+ * with the smallest score. zRevRank starts at 0 for the item with the largest score.
+ *
+ * @param string $key
+ * @param mixed $member
+ *
+ * @return int|false|Redis the item's score, or false if key or member is not exists or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrank
+ * @example
+ *
+ * $redis->del('z');
+ * $redis->zAdd('key', 1, 'one');
+ * $redis->zAdd('key', 2, 'two');
+ * $redis->zRank('key', 'one'); // 0
+ * $redis->zRank('key', 'two'); // 1
+ * $redis->zRevRank('key', 'one'); // 1
+ * $redis->zRevRank('key', 'two'); // 0
+ *
+ */
+ public function zRank($key, $member) {}
+
+ /**
+ * @see zRank()
+ * @param string $key
+ * @param string|mixed $member
+ *
+ * @return int|false|Redis the item's score, false - if key or member is not exists or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zrevrank
+ */
+ public function zRevRank($key, $member) {}
+
+ /**
+ * Increments the score of a member from a sorted set by a given amount.
+ *
+ * @param string $key
+ * @param float $value (double) value that will be added to the member's score
+ * @param mixed $member
+ *
+ * @return float|Redis the new value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zincrby
+ * @example
+ *
+ * $redis->del('key');
+ * $redis->zIncrBy('key', 2.5, 'member1'); // key or member1 didn't exist, so member1's score is to 0
+ * // before the increment and now has the value 2.5
+ * $redis->zIncrBy('key', 1, 'member1'); // 3.5
+ *
+ */
+ public function zIncrBy($key, $value, $member) {}
+
+ /**
+ * Creates an union of sorted sets given in second argument.
+ * The result of the union will be stored in the sorted set defined by the first argument.
+ * The third optionnel argument defines weights to apply to the sorted sets in input.
+ * In this case, the weights will be multiplied by the score of each element in the sorted set
+ * before applying the aggregation. The forth argument defines the AGGREGATE option which
+ * specify how the results of the union are aggregated.
+ *
+ * @param string $output
+ * @param array $zSetKeys
+ * @param null|array $weights
+ * @param string|null $aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on
+ * duplicate entries during the zUnionStore
+ *
+ * @return false|int|Redis The number of values in the new sorted set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zunionstore
+ * @example
+ *
+ * $redis->del('k1');
+ * $redis->del('k2');
+ * $redis->del('k3');
+ * $redis->del('ko1');
+ * $redis->del('ko2');
+ * $redis->del('ko3');
+ *
+ * $redis->zAdd('k1', 0, 'val0');
+ * $redis->zAdd('k1', 1, 'val1');
+ *
+ * $redis->zAdd('k2', 2, 'val2');
+ * $redis->zAdd('k2', 3, 'val3');
+ *
+ * $redis->zUnionStore('ko1', array('k1', 'k2')); // 4, 'ko1' => array('val0', 'val1', 'val2', 'val3')
+ *
+ * // Weighted zUnionStore
+ * $redis->zUnionStore('ko2', array('k1', 'k2'), array(1, 1)); // 4, 'ko2' => array('val0', 'val1', 'val2', 'val3')
+ * $redis->zUnionStore('ko3', array('k1', 'k2'), array(5, 1)); // 4, 'ko3' => array('val0', 'val2', 'val3', 'val1')
+ *
+ */
+ public function zUnionStore($output, $zSetKeys, ?array $weights = null, $aggregateFunction = null) {}
+
+ /**
+ * @param string $Output
+ * @param array $ZSetKeys
+ * @param array|null $Weights
+ * @param string $aggregateFunction
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zUnionStore(%parametersList%)')]
+ public function zUnion($Output, $ZSetKeys, array $Weights = null, $aggregateFunction = 'SUM') {}
+
+ /**
+ * Creates an intersection of sorted sets given in second argument.
+ * The result of the union will be stored in the sorted set defined by the first argument.
+ * The third optional argument defines weights to apply to the sorted sets in input.
+ * In this case, the weights will be multiplied by the score of each element in the sorted set
+ * before applying the aggregation. The forth argument defines the AGGREGATE option which
+ * specify how the results of the union are aggregated.
+ *
+ * @param string $output
+ * @param array $zSetKeys
+ * @param null|array $weights
+ * @param string|null $aggregateFunction Either "SUM", "MIN", or "MAX":
+ * defines the behaviour to use on duplicate entries during the zInterStore.
+ *
+ * @return false|int|Redis The number of values in the new sorted set or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zinterstore
+ * @example
+ *
+ * $redis->del('k1');
+ * $redis->del('k2');
+ * $redis->del('k3');
+ *
+ * $redis->del('ko1');
+ * $redis->del('ko2');
+ * $redis->del('ko3');
+ * $redis->del('ko4');
+ *
+ * $redis->zAdd('k1', 0, 'val0');
+ * $redis->zAdd('k1', 1, 'val1');
+ * $redis->zAdd('k1', 3, 'val3');
+ *
+ * $redis->zAdd('k2', 2, 'val1');
+ * $redis->zAdd('k2', 3, 'val3');
+ *
+ * $redis->zInterStore('ko1', array('k1', 'k2')); // 2, 'ko1' => array('val1', 'val3')
+ * $redis->zInterStore('ko2', array('k1', 'k2'), array(1, 1)); // 2, 'ko2' => array('val1', 'val3')
+ *
+ * // Weighted zInterStore
+ * $redis->zInterStore('ko3', array('k1', 'k2'), array(1, 5), 'min'); // 2, 'ko3' => array('val1', 'val3')
+ * $redis->zInterStore('ko4', array('k1', 'k2'), array(1, 5), 'max'); // 2, 'ko4' => array('val3', 'val1')
+ *
+ */
+ public function zInterStore($output, $zSetKeys, array $weights = null, $aggregateFunction = null) {}
+
+ /**
+ * @param $Output
+ * @param $ZSetKeys
+ * @param array|null $Weights
+ * @param string $aggregateFunction
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->zInterStore(%parametersList%)')]
+ public function zInter($Output, $ZSetKeys, array $Weights = null, $aggregateFunction = 'SUM') {}
+
+ /**
+ * Scan a sorted set for members, with optional pattern and count
+ *
+ * @param string $key String, the set to scan.
+ * @param int|null &$iterator Long (reference), initialized to NULL.
+ * @param string $pattern String (optional), the pattern to match.
+ * @param int $count How many keys to return per iteration (Redis might return a different number).
+ *
+ * @return array|false|Redis PHPRedis will return matching keys from Redis, or FALSE when iteration is complete or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/zscan
+ * @example
+ *
+ * $iterator = null;
+ * while ($members = $redis-zscan('zset', $iterator)) {
+ * foreach ($members as $member => $score) {
+ * echo $member . ' => ' . $score . PHP_EOL;
+ * }
+ * }
+ *
+ */
+ public function zScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Block until Redis can pop the highest or lowest scoring members from one or more ZSETs.
+ * There are two commands (BZPOPMIN and BZPOPMAX for popping the lowest and highest scoring elements respectively.)
+ *
+ * @param string|array $key_or_keys Either a string key or an array of one or more keys.
+ * @param string|int|array $timeout_or_key If the previous argument was an array, this argument must be a timeout value. Otherwise it could also be another key.
+ * @param mixed ...$extra_args Can consist of additional keys, until the last argument which needs to be a timeout.
+ *
+ * @return false|array|Redis Either an array with the key member and score of the highest or lowest element or an empty array or Redis if in multimode
+ * if the timeout was reached without an element to pop.
+ *
+ * @throws RedisException
+ *
+ * @since >= 5.0
+ * @link https://redis.io/commands/bzpopmax
+ * @example
+ *
+ * // Wait up to 5 seconds to pop the *highest* scoring member from sets `zs1` and `zs2`
+ * $redis->bzPopMax(['zs1', 'zs2'], 5);
+ * $redis->bzPopMax('zs1', 'zs2', 5);
+ *
+ */
+ public function bzPopMax($key_or_keys, $timeout_or_key, ...$extra_args) {}
+
+ /**
+ * POP the minimum scoring element off of one or more sorted sets, blocking up to a specified timeout if no elements are available.
+ *
+ * @param string|array $key_or_keys Either a string key or an array of one or more keys.
+ * @param string|int|array $timeout_or_key If the previous argument was an array, this argument must be a timeout value. Otherwise it could also be another key.
+ * @param mixed ...$extra_args Can consist of additional keys, until the last argument which needs to be a timeout.
+ *
+ * @return false|array|Redis Either an array with the key member and score of the highest or lowest element or an empty array or Redis if in multimode
+ * if the timeout was reached without an element to pop.
+ *
+ * @throws RedisException
+ *
+ * @see bzPopMax
+ * @since >= 5.0
+ * @link https://redis.io/commands/bzpopmin
+ *
+ * @example
+ *
+ * // Wait up to 5 seconds to pop the *lowest* scoring member from sets `zs1` and `zs2`.
+ * $redis->bzPopMin(['zs1', 'zs2'], 5);
+ * $redis->bzPopMin('zs1', 'zs2', 5);
+ *
+ */
+ public function bzPopMin($key_or_keys, $timeout_or_key, ...$extra_args) {}
+
+ /**
+ * Adds a value to the hash stored at key. If this value is already in the hash, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param mixed $value
+ *
+ * @return int|bool|Redis returns Redis if in multimode
+ * - 1 if value didn't exist and was added successfully,
+ * - 0 if the value was already present and was replaced, FALSE if there was an error.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hset
+ * @example
+ *
+ * $redis->del('h')
+ * $redis->hSet('h', 'key1', 'hello'); // 1, 'key1' => 'hello' in the hash at "h"
+ * $redis->hGet('h', 'key1'); // returns "hello"
+ *
+ * $redis->hSet('h', 'key1', 'plop'); // 0, value was replaced.
+ * $redis->hGet('h', 'key1'); // returns "plop"
+ *
+ */
+ public function hSet($key, $hashKey, $value) {}
+
+ /**
+ * Adds a value to the hash stored at key only if this field isn't already in the hash.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param string $value
+ *
+ * @return bool|Redis TRUE if the field was set, FALSE if it was already present or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hsetnx
+ * @example
+ *
+ * $redis->del('h')
+ * $redis->hSetNx('h', 'key1', 'hello'); // TRUE, 'key1' => 'hello' in the hash at "h"
+ * $redis->hSetNx('h', 'key1', 'world'); // FALSE, 'key1' => 'hello' in the hash at "h". No change since the field
+ * wasn't replaced.
+ *
+ */
+ public function hSetNx($key, $hashKey, $value) {}
+
+ /**
+ * Gets a value from the hash stored at key.
+ * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey
+ *
+ * @return string|false|Redis The value, if the command executed successfully BOOL FALSE in case of failure or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hget
+ */
+ public function hGet($key, $hashKey) {}
+
+ /**
+ * Returns the length of a hash, in number of items
+ *
+ * @param string $key
+ *
+ * @return int|false|Redis the number of items in a hash, FALSE if the key doesn't exist or isn't a hash or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hlen
+ * @example
+ *
+ * $redis->del('h')
+ * $redis->hSet('h', 'key1', 'hello');
+ * $redis->hSet('h', 'key2', 'plop');
+ * $redis->hLen('h'); // returns 2
+ *
+ */
+ public function hLen($key) {}
+
+ /**
+ * Removes a values from the hash stored at key.
+ * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey1
+ * @param string ...$otherHashKeys
+ *
+ * @return int|bool|Redis Number of deleted fields or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hdel
+ * @example
+ *
+ * $redis->hMSet('h',
+ * array(
+ * 'f1' => 'v1',
+ * 'f2' => 'v2',
+ * 'f3' => 'v3',
+ * 'f4' => 'v4',
+ * ));
+ *
+ * var_dump( $redis->hDel('h', 'f1') ); // int(1)
+ * var_dump( $redis->hDel('h', 'f2', 'f3') ); // int(2)
+ * s
+ * var_dump( $redis->hGetAll('h') );
+ * //// Output:
+ * // array(1) {
+ * // ["f4"]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function hDel($key, $hashKey1, ...$otherHashKeys) {}
+
+ /**
+ * Returns the keys in a hash, as an array of strings.
+ *
+ * @param string $key
+ *
+ * @return array|false|Redis An array of elements, the keys of the hash. This works like PHP's array_keys() or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hkeys
+ * @example
+ *
+ * $redis->del('h');
+ * $redis->hSet('h', 'a', 'x');
+ * $redis->hSet('h', 'b', 'y');
+ * $redis->hSet('h', 'c', 'z');
+ * $redis->hSet('h', 'd', 't');
+ * var_dump($redis->hKeys('h'));
+ *
+ * // Output:
+ * // array(4) {
+ * // [0]=>
+ * // string(1) "a"
+ * // [1]=>
+ * // string(1) "b"
+ * // [2]=>
+ * // string(1) "c"
+ * // [3]=>
+ * // string(1) "d"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hKeys($key) {}
+
+ /**
+ * Returns the values in a hash, as an array of strings.
+ *
+ * @param string $key
+ *
+ * @return array|false|Redis An array of elements, the values of the hash. This works like PHP's array_values() or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hvals
+ * @example
+ *
+ * $redis->del('h');
+ * $redis->hSet('h', 'a', 'x');
+ * $redis->hSet('h', 'b', 'y');
+ * $redis->hSet('h', 'c', 'z');
+ * $redis->hSet('h', 'd', 't');
+ * var_dump($redis->hVals('h'));
+ *
+ * // Output
+ * // array(4) {
+ * // [0]=>
+ * // string(1) "x"
+ * // [1]=>
+ * // string(1) "y"
+ * // [2]=>
+ * // string(1) "z"
+ * // [3]=>
+ * // string(1) "t"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hVals($key) {}
+
+ /**
+ * Returns the whole hash, as an array of strings indexed by strings.
+ *
+ * @param string $key
+ *
+ * @return array|false|Redis An array of elements, the contents of the hash or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hgetall
+ * @example
+ *
+ * $redis->del('h');
+ * $redis->hSet('h', 'a', 'x');
+ * $redis->hSet('h', 'b', 'y');
+ * $redis->hSet('h', 'c', 'z');
+ * $redis->hSet('h', 'd', 't');
+ * var_dump($redis->hGetAll('h'));
+ *
+ * // Output:
+ * // array(4) {
+ * // ["a"]=>
+ * // string(1) "x"
+ * // ["b"]=>
+ * // string(1) "y"
+ * // ["c"]=>
+ * // string(1) "z"
+ * // ["d"]=>
+ * // string(1) "t"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hGetAll($key) {}
+
+ /**
+ * Verify if the specified member exists in a key.
+ *
+ * @param string $key
+ * @param string $hashKey
+ *
+ * @return bool|Redis If the member exists in the hash table, return TRUE, otherwise return FALSE or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hexists
+ * @example
+ *
+ * $redis->hSet('h', 'a', 'x');
+ * $redis->hExists('h', 'a'); // TRUE
+ * $redis->hExists('h', 'NonExistingKey'); // FALSE
+ *
+ */
+ public function hExists($key, $hashKey) {}
+
+ /**
+ * Increments the value of a member from a hash by a given amount.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param int $value (integer) value that will be added to the member's value
+ *
+ * @return false|int|Redis the new value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hincrby
+ * @example
+ *
+ * $redis->del('h');
+ * $redis->hIncrBy('h', 'x', 2); // returns 2: h[x] = 2 now.
+ * $redis->hIncrBy('h', 'x', 1); // h[x] ← 2 + 1. Returns 3
+ *
+ */
+ public function hIncrBy($key, $hashKey, $value) {}
+
+ /**
+ * Increment the float value of a hash field by the given amount
+ *
+ * @param string $key
+ * @param string $field
+ * @param float $increment
+ *
+ * @return float|false|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hincrbyfloat
+ * @example
+ *
+ * $redis = new Redis();
+ * $redis->connect('127.0.0.1');
+ * $redis->hset('h', 'float', 3);
+ * $redis->hset('h', 'int', 3);
+ * var_dump( $redis->hIncrByFloat('h', 'float', 1.5) ); // float(4.5)
+ *
+ * var_dump( $redis->hGetAll('h') );
+ *
+ * // Output
+ * array(2) {
+ * ["float"]=>
+ * string(3) "4.5"
+ * ["int"]=>
+ * string(1) "3"
+ * }
+ *
+ */
+ public function hIncrByFloat($key, $field, $increment) {}
+
+ /**
+ * Fills in a whole hash. Non-string values are converted to string, using the standard (string) cast.
+ * NULL values are stored as empty strings
+ *
+ * @param string $key
+ * @param array $hashKeys key → value array
+ *
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hmset
+ * @example
+ *
+ * $redis->del('user:1');
+ * $redis->hMSet('user:1', array('name' => 'Joe', 'salary' => 2000));
+ * $redis->hIncrBy('user:1', 'salary', 100); // Joe earns 100 more now.
+ *
+ */
+ public function hMSet($key, $hashKeys) {}
+
+ /**
+ * Retrieve the values associated to the specified fields in the hash.
+ *
+ * @param string $key
+ * @param array $hashKeys
+ *
+ * @return array|false|Redis Array An array of elements, the values of the specified fields in the hash, or Redis if in multimode
+ * with the hash keys as array keys.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hmget
+ * @example
+ *
+ * $redis->del('h');
+ * $redis->hSet('h', 'field1', 'value1');
+ * $redis->hSet('h', 'field2', 'value2');
+ * $redis->hMGet('h', array('field1', 'field2')); // returns array('field1' => 'value1', 'field2' => 'value2')
+ *
+ */
+ public function hMGet($key, $hashKeys) {}
+
+ /**
+ * Scan a HASH value for members, with an optional pattern and count.
+ *
+ * @param string $key
+ * @param int|null ?$iterator The scan iterator, which should be initialized to NULL before the first call.
+ * @param string $pattern Optional pattern to match against.
+ * @param int $count How many keys to return in a go (only a sugestion to Redis).
+ *
+ * @return array|bool|Redis An array of members that match our pattern or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hscan
+ * @example
+ *
+ * $redis->del('big-hash');
+ *
+ * for ($i = 0; $i < 1000; $i++) {
+ * $fields["field:$i"] = "value:$i";
+ * }
+ *
+ * $redis->hMSet('big-hash', $fields);
+ *
+ * $it = NULL;
+ *
+ * do {
+ * // Scan the hash but limit it to fields that match '*:1?3'
+ * $fields = $redis->hScan('big-hash', $it, '*:1?3');
+ *
+ * foreach ($fields as $field => $value) {
+ * echo "[$field] => $value\n";
+ * }
+ * } while ($it != 0);
+ *
+ */
+ public function hScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Get the string length of the value associated with field in the hash stored at key
+ *
+ * @param string $key
+ * @param string $field
+ *
+ * @return false|int|Redis the string length of the value associated with field, or zero when field is not present in the hash or Redis if in multimode
+ * or key does not exist at all.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/hstrlen
+ * @since >= 3.2
+ *
+ * @example
+ * $redis->del('hash');
+ * $redis->hMSet('hash', ['50bytes' => str_repeat('a', 50)]);
+ * $redis->hStrLen('hash', '50bytes');
+ */
+ public function hStrLen(string $key, string $field) {}
+
+ /**
+ * Add one or more geospatial items to the specified key.
+ * This function must be called with at least one longitude, latitude, member triplet.
+ *
+ * @param string $key
+ * @param float $longitude
+ * @param float $latitude
+ * @param string $member
+ * @param mixed $other_triples_and_options You can continue to pass longitude, lattitude, and member arguments to add as many members
+ * as you wish. Optionally, the final argument may be a string with options for the command
+ *
+ * @return false|int|Redis The number of elements added to the geospatial key or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/geoadd
+ * @since >= 3.2
+ *
+ * @example
+ *
+ * $redis->del("myplaces");
+ *
+ * // Since the key will be new, $result will be 2
+ * $result = $redis->geoAdd(
+ * "myplaces",
+ * -122.431, 37.773, "San Francisco",
+ * -157.858, 21.315, "Honolulu"
+ * ); // 2
+ *
+ * $redis->geoAdd('cities', -121.837478, 39.728494, 'Chico', ['XX', 'CH']);
+ * $redis->geoAdd('cities', -121.8374, 39.7284, 'Chico', -122.03218, 37.322, 'Cupertino');
+ *
+ */
+ public function geoAdd($key, $longitude, $latitude, $member, ...$other_triples_and_options) {}
+
+ /**
+ * Retrieve Geohash strings for one or more elements of a geospatial index.
+ *
+ * @param string $key
+ * @param string ...$member variadic list of members
+ *
+ * @return false|array|Redis One or more Redis Geohash encoded strings or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/geohash
+ * @since >= 3.2
+ *
+ * @example
+ *
+ * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
+ * $hashes = $redis->geoHash("hawaii", "Honolulu", "Maui");
+ * var_dump($hashes);
+ * // Output: array(2) {
+ * // [0]=>
+ * // string(11) "87z9pyek3y0"
+ * // [1]=>
+ * // string(11) "8e8y6d5jps0"
+ * // }
+ *
+ */
+ public function geoHash($key, ...$member) {}
+
+ /**
+ * Return longitude, latitude positions for each requested member.
+ *
+ * @param string $key
+ * @param string ...$member
+ * @return array|Redis One or more longitude/latitude positions or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/geopos
+ * @since >= 3.2
+ *
+ * @example
+ *
+ * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
+ * $positions = $redis->geoPos("hawaii", "Honolulu", "Maui");
+ * var_dump($positions);
+ *
+ * // Output:
+ * array(2) {
+ * [0]=> array(2) {
+ * [0]=> string(22) "-157.85800248384475708"
+ * [1]=> string(19) "21.3060004581273077"
+ * }
+ * [1]=> array(2) {
+ * [0]=> string(22) "-156.33099943399429321"
+ * [1]=> string(20) "20.79799924753607598"
+ * }
+ * }
+ *
+ */
+ public function geoPos(string $key, string ...$member) {}
+
+ /**
+ * Search a geospacial sorted set for members in various ways.
+ *
+ * @param string $key The set to query.
+ * @param array|string $position Either a two element array with longitude and lattitude, or a string representing a member of the set.
+ * @param array|int|float $shape Either a number representine the radius of a circle to search, or
+ * a two element array representing the width and height of a box to search.
+ * @param string $unit The unit of our shape. See geodist() for possible units.
+ * @param array $options See georadius() for options. Note that the `STORE` options are not allowed for this command.
+ *
+ * @return mixed[]
+ */
+ public function geosearch(string $key, array|string $position, array|int|float $shape, string $unit, array $options = []): array|false {}
+
+ /**
+ * Search a geospacial sorted set for members within a given area or range, storing the results into
+ * a new set.
+ *
+ * @param string $dst The destination where results will be stored.
+ * @param string $src The key to query.
+ * @param array|string $position Either a two element array with longitude and lattitude, or a string representing a member of the set.
+ * @param array|int|float $shape Either a number representine the radius of a circle to search, or
+ * a two element array representing the width and height of a box to search.
+ * @param string $unit The unit of our shape. See geoDist for possible units.
+ * @param array $options
+ *
+ * $options = [
+ * 'ASC' | 'DESC', # The sort order of returned members
+ * 'WITHDIST' # Also store distances.
+ * # Limit to N returned members. Optionally a two element array may be
+ * # passed as the `LIMIT` argument, and the `ANY` argument.
+ * 'COUNT' => [], or [, ]
+ * ];
+ *
+ *
+ * @return mixed[]|int|true|Redis
+ */
+ public function geosearchstore(string $dst, string $src, array|string $position, array|int|float $shape, string $unit, array $options = []): array|false {}
+
+ /**
+ * Return the distance between two members in a geospatial set.
+ *
+ * If units are passed it must be one of the following values:
+ * - 'm' => Meters
+ * - 'km' => Kilometers
+ * - 'mi' => Miles
+ * - 'ft' => Feet
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string|null $unit Which unit to use when computing distance, defaulting to meters. M - meters, KM - kilometers, FT - feet, MI - miles
+ *
+ * @return float|Redis The distance between the two passed members in the units requested (meters by default) or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/geodist
+ * @since >= 3.2
+ *
+ * @example
+ *
+ * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
+ *
+ * $meters = $redis->geoDist("hawaii", "Honolulu", "Maui");
+ * $kilometers = $redis->geoDist("hawaii", "Honolulu", "Maui", 'km');
+ * $miles = $redis->geoDist("hawaii", "Honolulu", "Maui", 'mi');
+ * $feet = $redis->geoDist("hawaii", "Honolulu", "Maui", 'ft');
+ *
+ * echo "Distance between Honolulu and Maui:\n";
+ * echo " meters : $meters\n";
+ * echo " kilometers: $kilometers\n";
+ * echo " miles : $miles\n";
+ * echo " feet : $feet\n";
+ *
+ * // Bad unit
+ * $inches = $redis->geoDist("hawaii", "Honolulu", "Maui", 'in');
+ * echo "Invalid unit returned:\n";
+ * var_dump($inches);
+ *
+ * // Output
+ * Distance between Honolulu and Maui:
+ * meters : 168275.204
+ * kilometers: 168.2752
+ * miles : 104.5616
+ * feet : 552084.0028
+ * Invalid unit returned:
+ * bool(false)
+ *
+ */
+ public function geoDist($key, $member1, $member2, $unit = null) {}
+
+ /**
+ * Return members of a set with geospatial information that are within the radius specified by the caller.
+ *
+ * @param $key
+ * @param $longitude
+ * @param $latitude
+ * @param $radius
+ * @param $unit
+ * @param array|null $options
+ * + * |Key |Value |Description | + * |------------|---------------|---------------------------------------------------| + * |COUNT |integer > 0 |Limit how many results are returned | + * | |WITHCOORD |Return longitude and latitude of matching members | + * | |WITHDIST |Return the distance from the center | + * | |WITHHASH |Return the raw geohash-encoded score | + * | |ASC |Sort results in ascending order | + * | |DESC |Sort results in descending order | + * |STORE |key |Store results in key | + * |STOREDIST |key |Store the results as distances in key | + *+ * Note: It doesn't make sense to pass both ASC and DESC options but if both are passed + * the last one passed will be used. + * Note: When using STORE[DIST] in Redis Cluster, the store key must has to the same slot as + * the query key or you will get a CROSSLOT error. + * @return mixed|Redis When no STORE option is passed, this function returns an array of results or Redis if in multimode + * If it is passed this function returns the number of stored entries. + * + * @throws RedisException + * + * @link https://redis.io/commands/georadius + * @since >= 3.2 + * @example + *
+ * // Add some cities
+ * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
+ *
+ * echo "Within 300 miles of Honolulu:\n";
+ * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi'));
+ *
+ * echo "\nWithin 300 miles of Honolulu with distances:\n";
+ * $options = ['WITHDIST'];
+ * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
+ *
+ * echo "\nFirst result within 300 miles of Honolulu with distances:\n";
+ * $options['count'] = 1;
+ * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
+ *
+ * echo "\nFirst result within 300 miles of Honolulu with distances in descending sort order:\n";
+ * $options[] = 'DESC';
+ * var_dump($redis->geoRadius("hawaii", -157.858, 21.306, 300, 'mi', $options));
+ *
+ * // Output
+ * Within 300 miles of Honolulu:
+ * array(2) {
+ * [0]=> string(8) "Honolulu"
+ * [1]=> string(4) "Maui"
+ * }
+ *
+ * Within 300 miles of Honolulu with distances:
+ * array(2) {
+ * [0]=>
+ * array(2) {
+ * [0]=>
+ * string(8) "Honolulu"
+ * [1]=>
+ * string(6) "0.0002"
+ * }
+ * [1]=>
+ * array(2) {
+ * [0]=>
+ * string(4) "Maui"
+ * [1]=>
+ * string(8) "104.5615"
+ * }
+ * }
+ *
+ * First result within 300 miles of Honolulu with distances:
+ * array(1) {
+ * [0]=>
+ * array(2) {
+ * [0]=>
+ * string(8) "Honolulu"
+ * [1]=>
+ * string(6) "0.0002"
+ * }
+ * }
+ *
+ * First result within 300 miles of Honolulu with distances in descending sort order:
+ * array(1) {
+ * [0]=>
+ * array(2) {
+ * [0]=>
+ * string(4) "Maui"
+ * [1]=>
+ * string(8) "104.5615"
+ * }
+ * }
+ *
+ */
+ public function geoRadius($key, $longitude, $latitude, $radius, $unit, array $options = []) {}
+
+ /**
+ * This method is identical to geoRadius except that instead of passing a longitude and latitude as the "source"
+ * you pass an existing member in the geospatial set
+ *
+ * @param string $key
+ * @param string $member
+ * @param $radius
+ * @param $units
+ * @param array|null $options see georadius
+ *
+ * @return mixed|Redis The zero or more entries that are close enough to the member given the distance and radius specified or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/georadiusbymember
+ * @since >= 3.2
+ * @see georadius
+ * @example
+ *
+ * $redis->geoAdd("hawaii", -157.858, 21.306, "Honolulu", -156.331, 20.798, "Maui");
+ *
+ * echo "Within 300 miles of Honolulu:\n";
+ * var_dump($redis->geoRadiusByMember("hawaii", "Honolulu", 300, 'mi'));
+ *
+ * echo "\nFirst match within 300 miles of Honolulu:\n";
+ * var_dump($redis->geoRadiusByMember("hawaii", "Honolulu", 300, 'mi', ['count' => 1]));
+ *
+ * // Output
+ * Within 300 miles of Honolulu:
+ * array(2) {
+ * [0]=> string(8) "Honolulu"
+ * [1]=> string(4) "Maui"
+ * }
+ *
+ * First match within 300 miles of Honolulu:
+ * array(1) {
+ * [0]=> string(8) "Honolulu"
+ * }
+ *
+ */
+ public function geoRadiusByMember($key, $member, $radius, $units, array $options = []) {}
+
+ /**
+ * Execute the Redis CONFIG command in a variety of ways.
+ *
+ * @param string $operation Operations that PhpRedis supports: RESETSTAT, REWRITE, GET, and SET.
+ * @param array|string|null $key_or_settings One or more keys or values.
+ * @param string|null $value The value if this is a `CONFIG SET` operation.
+ *
+ * @return mixed|Redis Associative array for `GET`, key -> value or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/config-get
+ * @example
+ *
+ * $redis->config('GET', 'timeout');
+ * $redis->config('GET', ['timeout', 'databases']);
+ * $redis->config('SET', 'timeout', 30);
+ * $redis->config('SET', ['timeout' => 30, 'loglevel' => 'warning']);
+ *
+ */
+ public function config($operation, $key_or_settings = null, $value = null) {}
+
+ /**
+ * Evaluate a LUA script serverside
+ *
+ * @param string $script
+ * @param array $args
+ * @param int $numKeys
+ *
+ * @return mixed|Redis What is returned depends on what the LUA script itself returns, which could be a scalar value or Redis if in multimode
+ * (int/string), or an array. Arrays that are returned can also contain other arrays, if that's how it was set up in
+ * your LUA script. If there is an error executing the LUA script, the getLastError() function can tell you the
+ * message that came back from Redis (e.g. compile error).
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/eval
+ * @example
+ *
+ * $redis->eval("return 1"); // Returns an integer: 1
+ * $redis->eval("return {1,2,3}"); // Returns Array(1,2,3)
+ * $redis->del('mylist');
+ * $redis->rpush('mylist','a');
+ * $redis->rpush('mylist','b');
+ * $redis->rpush('mylist','c');
+ * // Nested response: Array(1,2,3,Array('a','b','c'));
+ * $redis->eval("return {1,2,3,redis.call('lrange','mylist',0,-1)}}");
+ *
+ */
+ public function eval($script, $args = [], $numKeys = 0) {}
+
+ /**
+ * @param string $script
+ * @param array $args
+ * @param int $numKeys
+ * @return mixed|Redis @see eval() , returns Redis if in multimode
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->eval(%parametersList%)')]
+ public function evaluate($script, $args = [], $numKeys = 0) {}
+
+ /**
+ * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself.
+ * In order to run this command Redis will have to have already loaded the script, either by running it or via
+ * the SCRIPT LOAD command.
+ *
+ * @param string $scriptSha
+ * @param array $args
+ * @param int $numKeys
+ *
+ * @return mixed|Redis @see eval() , returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @see eval()
+ * @link https://redis.io/commands/evalsha
+ * @example
+ *
+ * $script = 'return 1';
+ * $sha = $redis->script('load', $script);
+ * $redis->evalSha($sha); // Returns 1
+ *
+ */
+ public function evalSha($scriptSha, $args = [], $numKeys = 0) {}
+
+ /**
+ * @param string $scriptSha
+ * @param array $args
+ * @param int $numKeys
+ *
+ * @throws RedisException
+ */
+ #[Deprecated(replacement: '%class%->evalSha(%parametersList%)')]
+ public function evaluateSha($scriptSha, $args = [], $numKeys = 0) {}
+
+ /**
+ * Execute the Redis SCRIPT command to perform various operations on the scripting subsystem.
+ * @param string $command load | flush | kill | exists
+ * @param mixed ...$script
+ *
+ * @return mixed|Redis This command returns various things depending on the specific operation executed. Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/script-load
+ * @link https://redis.io/commands/script-kill
+ * @link https://redis.io/commands/script-flush
+ * @link https://redis.io/commands/script-exists
+ * @example
+ *
+ * $redis->script('load', $script);
+ * $redis->script('flush');
+ * $redis->script('kill');
+ * $redis->script('exists', $script1, [$script2, $script3, ...]);
+ *
+ *
+ * SCRIPT LOAD will return the SHA1 hash of the passed script on success, and FALSE on failure.
+ * SCRIPT FLUSH should always return TRUE
+ * SCRIPT KILL will return true if a script was able to be killed and false if not
+ * SCRIPT EXISTS will return an array with TRUE or FALSE for each passed script
+ */
+ public function script($command, ...$script) {}
+
+ /**
+ * The last error message (if any)
+ *
+ * @return string|null A string with the last returned script based error message, or NULL if there is no error
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->eval('this-is-not-lua');
+ * $err = $redis->getLastError();
+ * // "ERR Error compiling script (new function): user_script:1: '=' expected near '-'"
+ *
+ */
+ public function getLastError() {}
+
+ /**
+ * Clear the last error message
+ *
+ * @return bool This should always return true or throw an exception if we're not connected.
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->set('x', 'a');
+ * $redis->incr('x');
+ * $err = $redis->getLastError();
+ * // "ERR value is not an integer or out of range"
+ * $redis->clearLastError();
+ * $err = $redis->getLastError();
+ * // NULL
+ *
+ */
+ public function clearLastError() {}
+
+ /**
+ * Issue the CLIENT command with various arguments.
+ * The Redis CLIENT command can be used in four ways:
+ * - CLIENT LIST
+ * - CLIENT GETNAME
+ * - CLIENT SETNAME [name]
+ * - CLIENT KILL [ip:port]
+ *
+ * @param string $command
+ * @param mixed ...$args
+ * @return mixed This will vary depending on which client command was executed:
+ * - CLIENT LIST will return an array of arrays with client information.
+ * - CLIENT GETNAME will return the client name or false if none has been set
+ * - CLIENT SETNAME will return true if it can be set and false if not
+ * - CLIENT KILL will return true if the client can be killed, and false if not
+ *
+ * @throws RedisException
+ *
+ * Note: phpredis will attempt to reconnect so you can actually kill your own connection but may not notice losing it!
+ *
+ * @link https://redis.io/commands/client-list
+ * @link https://redis.io/commands/client-getname
+ * @link https://redis.io/commands/client-setname
+ * @link https://redis.io/commands/client-kill
+ *
+ * @example
+ *
+ * $redis->client('list'); // Get a list of clients
+ * $redis->client('getname'); // Get the name of the current connection
+ * $redis->client('setname', 'somename'); // Set the name of the current connection
+ * $redis->client('kill', ); // Kill the process at ip:port
+ *
+ */
+ public function client($command, ...$args) {}
+
+ /**
+ * A utility method to prefix the value with the prefix setting for phpredis.
+ *
+ * @param string $value The value you wish to prefix
+ *
+ * @return string If a prefix is set up, the value now prefixed
+ * If there is no prefix, the value will be returned unchanged.
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->setOption(Redis::OPT_PREFIX, 'my-prefix:');
+ * $redis->_prefix('my-value'); // Will return 'my-prefix:my-value'
+ *
+ */
+ public function _prefix($value) {}
+
+ /**
+ * A utility method to unserialize data with whatever serializer is set up. If there is no serializer set, the
+ * value will be returned unchanged. If there is a serializer set up, and the data passed in is malformed, an
+ * exception will be thrown. This can be useful if phpredis is serializing values, and you return something from
+ * redis in a LUA script that is serialized.
+ *
+ * @param string $value The value to be unserialized
+ *
+ * @return mixed
+ * @example
+ *
+ * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
+ * $redis->_unserialize('a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}'); // Will return Array(1,2,3)
+ *
+ */
+ public function _unserialize($value) {}
+
+ /**
+ * A utility method to serialize values manually. This method allows you to serialize a value with whatever
+ * serializer is configured, manually. This can be useful for serialization/unserialization of data going in
+ * and out of EVAL commands as phpredis can't automatically do this itself. Note that if no serializer is
+ * set, phpredis will change Array values to 'Array', and Objects to 'Object'.
+ *
+ * @param mixed $value The value to be serialized.
+ *
+ * @return string
+ * @example
+ *
+ * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
+ * $redis->_serialize("foo"); // returns "foo"
+ * $redis->_serialize(Array()); // Returns "Array"
+ * $redis->_serialize(new stdClass()); // Returns "Object"
+ *
+ * $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
+ * $redis->_serialize("foo"); // Returns 's:3:"foo";'
+ *
+ */
+ public function _serialize($value) {}
+
+ /**
+ * Dump a key out of a redis database, the value of which can later be passed into redis using the RESTORE command.
+ * The data that comes out of DUMP is a binary representation of the key as Redis stores it.
+ * @param string $key
+ *
+ * @return string|false|Redis A binary string representing the key's value or FALSE if the key doesn't exist or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/dump
+ * @example
+ *
+ * $redis->set('foo', 'bar');
+ * $val = $redis->dump('foo'); // $val will be the Redis encoded key value
+ *
+ */
+ public function dump($key) {}
+
+ /**
+ * Restore a key from the result of a DUMP operation.
+ *
+ * @param string $key The name of the key you wish to create.
+ * @param int $ttl What Redis should set the key's TTL (in milliseconds) to once it is created.Zero means no TTL at all.
+ * @param string $value The serialized binary value of the string (generated by DUMP).
+ * @param array|null $options An array of additional options that modifies how the command operates.
+ *
+ * $options = [
+ * 'ABSTTL' # If this is present, the `$ttl` provided by the user should
+ * # be an absolute timestamp, in milliseconds()
+ *
+ * 'REPLACE' # This flag instructs Redis to store the key even if a key with
+ * # that name already exists.
+ *
+ * 'IDLETIME' => int # Tells Redis to set the keys internal 'idletime' value to a
+ * # specific number (see the Redis command OBJECT for more info).
+ * 'FREQ' => int # Tells Redis to set the keys internal 'FREQ' value to a specific
+ * # number (this relates to Redis' LFU eviction algorithm).
+ * ];
+ *
+ * @return bool|Redis True if the key was stored, false if not.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/restore
+ * @example
+ *
+ * $redis->set('foo', 'bar');
+ * $val = $redis->dump('foo');
+ * $redis->restore('bar', 0, $val); // The key 'bar', will now be equal to the key 'foo'
+ *
+ */
+ public function restore($key, $ttl, $value, $options = null) {}
+
+ /**
+ * Migrates a key to a different Redis instance.
+ *
+ * @param string $host The destination host
+ * @param int $port The TCP port to connect to.
+ * @param string|array $key The key to migrate.
+ * @param int $db The target DB.
+ * @param int $timeout The maximum amount of time given to this transfer.
+ * @param bool $copy Should we send the COPY flag to redis.
+ * @param bool $replace Should we send the REPLACE flag to redis.
+ * @param mixed $credentials
+ *
+ * @return bool|Redis
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/migrate
+ * @example
+ *
+ * $redis->migrate('backup', 6379, 'foo', 0, 3600);
+ *
+ */
+ public function migrate($host, $port, $key, $dstdb, $timeout, $copy = false, $replace = false, $credentials = null) {}
+
+ /**
+ * Retrieve the server time from the connected Redis instance.
+ *
+ * @return false|array If successful, the time will come back as an associative array with element zero being the
+ * unix timestamp, and element one being microseconds.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/time
+ * @example
+ *
+ * var_dump( $redis->time() );
+ * // array(2) {
+ * // [0] => string(10) "1342364352"
+ * // [1] => string(6) "253002"
+ * // }
+ *
+ */
+ public function time() {}
+
+ /**
+ * Scan the keyspace for keys
+ *
+ * @param int|null ?$iterator The cursor returned by Redis for every subsequent call to SCAN. On
+ * the initial invocation of the call, it should be initialized by the
+ * caller to NULL. Each time SCAN is invoked, the iterator will be
+ * updated to a new number, until finally Redis will set the value to
+ * zero, indicating that the scan is complete.
+ *
+ * @param string $pattern An optional glob-style pattern for matching key names. If passed as
+ * NULL, it is the equivalent of sending '*' (match every key).
+ *
+ * @param int $count A hint to redis that tells it how many keys to return in a single
+ * call to SCAN. The larger the number, the longer Redis may block
+ * clients while iterating the key space.
+ *
+ * @param string|null $type An optional argument to specify which key types to scan (e.g. 'STRING', 'LIST', 'SET')
+ *
+ * @return array|false|Redis This function will return an array of keys or FALSE if there are no more keys or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/scan
+ * @example
+ *
+ * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_NORETRY);
+ *
+ * $it = null;
+ *
+ * do {
+ * $keys = $redis->scan($it, '*zorg*');
+ * foreach ($keys as $key) {
+ * echo "KEY: $key\n";
+ * }
+ * } while ($it != 0);
+ *
+ * $redis->setOption(Redis::OPT_SCAN, Redis::SCAN_RETRY);
+ *
+ * $it = null;
+ *
+ * // When Redis::SCAN_RETRY is enabled, we can use simpler logic, as we will never receive an
+ * // empty array of keys when the iterator is nonzero.
+ * while ($keys = $redis->scan($it, '*zorg*')) {
+ * foreach ($keys as $key) {
+ * echo "KEY: $key\n";
+ * }
+ * }
+ *
+ */
+ public function scan(&$iterator, $pattern = null, $count = 0, $type = null) {}
+
+ /**
+ * Adds all the element arguments to the HyperLogLog data structure stored at the key.
+ *
+ * @param string $key
+ * @param array $elements
+ *
+ * @return bool|int|Redis Returns 1 if the set was altered, and zero if not. Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pfadd
+ * @example $redis->pfAdd('key', array('elem1', 'elem2'))
+ */
+ public function pfAdd($key, array $elements) {}
+
+ /**
+ * When called with a single key, returns the approximated cardinality computed by the HyperLogLog data
+ * structure stored at the specified variable, which is 0 if the variable does not exist.
+ *
+ * @param string|array $key_or_keys Either one key or an array of keys
+ *
+ * @return false|int|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pfcount
+ * @example
+ *
+ * $redis->pfAdd('key1', array('elem1', 'elem2'));
+ * $redis->pfAdd('key2', array('elem3', 'elem2'));
+ * $redis->pfCount('key1'); // int(2)
+ * $redis->pfCount(array('key1', 'key2')); // int(3)
+ *
+ */
+ public function pfCount($key_or_keys) {}
+
+ /**
+ * Merge multiple HyperLogLog values into an unique value that will approximate the cardinality
+ * of the union of the observed Sets of the source HyperLogLog structures.
+ *
+ * @param string $destKey
+ * @param array $sourceKeys
+ *
+ * @return bool|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/pfmerge
+ * @example
+ *
+ * $redis->pfAdd('key1', array('elem1', 'elem2'));
+ * $redis->pfAdd('key2', array('elem3', 'elem2'));
+ * $redis->pfMerge('key3', array('key1', 'key2'));
+ * $redis->pfCount('key3'); // int(3)
+ *
+ */
+ public function pfMerge($destKey, array $sourceKeys) {}
+
+ /**
+ * Send arbitrary things to the redis server.
+ *
+ * @param string $command Required command to send to the server.
+ * @param mixed ...$arguments Optional variable amount of arguments to send to the server.
+ *
+ * @return mixed|Redis returns Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @example
+ *
+ * $redis->rawCommand('SET', 'key', 'value'); // bool(true)
+ * $redis->rawCommand('GET", 'key'); // string(5) "value"
+ *
+ */
+ public function rawCommand($command, ...$arguments) {}
+
+ /**
+ * Detect whether we're in ATOMIC/MULTI/PIPELINE mode.
+ *
+ * @return false|int|Redis Either Redis::ATOMIC, Redis::MULTI or Redis::PIPELINE or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @example $redis->getMode();
+ */
+ public function getMode() {}
+
+ /**
+ * Acknowledge one or more messages on behalf of a consumer group.
+ *
+ * @param string $stream
+ * @param string $group
+ * @param array $messages
+ *
+ * @return false|int|Redis The number of messages Redis reports as acknowledged or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xack
+ * @example
+ *
+ * $redis->xAck('stream', 'group1', ['1530063064286-0', '1530063064286-1']);
+ *
+ */
+ public function xAck($stream, $group, $messages) {}
+
+ /**
+ * Append a message to a stream.
+ *
+ * @param string $key
+ * @param string $id The ID for the message we want to add. This can be the special value '*'
+ * which means Redis will generate the ID that appends the message to the
+ * end of the stream. It can also be a value in the form
+ * $redis->xAdd('mystream', "*", ['field' => 'value']);
+ * $redis->xAdd('mystream', "*", ['field' => 'value'], 10);
+ * $redis->xAdd('mystream', "*", ['field' => 'value'], 10, true);
+ *
+ */
+ public function xAdd($key, $id, $messages, $maxLen = 0, $isApproximate = false, $nomkstream = false) {}
+
+ /**
+ * This method allows a consumer to take ownership of pending stream entries, by ID. Another
+ * command that does much the same thing but does not require passing specific IDs is `Redis::xAutoClaim`.
+ *
+ * @param string $key The stream we wish to claim messages for.
+ * @param string $group Our consumer group.
+ * @param string $consumer Our consumer.
+ * @param int $min_idle The minimum idle-time in milliseconds a message must have for ownership to be transferred.
+ * @param array $ids
+ * @param array $options An options array that modifies how the command operates.
+ *
+ *
+ * # Following is an options array describing every option you can pass. Note that
+ * # 'IDLE', and 'TIME' are mutually exclusive.
+ * $options = [
+ * 'IDLE' => 3 # Set the idle time of the message to a 3. By default
+ * # the idle time is set to zero.
+ * 'TIME' => 1000*time() # Same as IDLE except it takes a unix timestamp in
+ * # milliseconds.
+ * 'RETRYCOUNT' => 0 # Set the retry counter to zero. By default XCLAIM
+ * # doesn't modify the counter.
+ * 'FORCE' # Creates the pending message entry even if IDs are
+ * # not already
+ * # in the PEL with another client.
+ * 'JUSTID' # Return only an array of IDs rather than the messages
+ * # themselves.
+ * ];
+ *
+ *
+ * @return false|array|Redis Either an array of message IDs along with corresponding data, or just an array of IDs or Redis if in multimode
+ * (if the 'JUSTID' option was passed).
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xclaim
+ * @example
+ *
+ * $ids = ['1530113681011-0', '1530113681011-1', '1530113681011-2'];
+ *
+ * // Without any options
+ * $redis->xClaim('mystream', 'group1', 'myconsumer1', 0, $ids);
+ *
+ * // With options
+ * $redis->xClaim(
+ * 'mystream', 'group1', 'myconsumer2', 0, $ids,
+ * [
+ * 'IDLE' => time() * 1000,
+ * 'RETRYCOUNT' => 5,
+ * 'FORCE',
+ * 'JUSTID'
+ * ]
+ * );
+ *
+ */
+ public function xClaim(string $key, string $group, string $consumer, int $min_iddle, array $ids, array $options) {}
+
+ /**
+ * Delete one or more messages from a stream
+ *
+ * @param string $key
+ * @param array $ids
+ *
+ * @return false|int|Redis The number of messages removed or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xdel
+ * @example
+ *
+ * $redis->xDel('mystream', ['1530115304877-0', '1530115305731-0']);
+ *
+ */
+ public function xDel($key, $ids) {}
+
+ /**
+ * Perform various operation on consumer groups for a particular Redis STREAM. What the command does
+ * is primarily based on which operation is passed.
+ *
+ * @param string $operation The subcommand you intend to execute. Valid options are as follows
+ * 'HELP' - Redis will return information about the command
+ * Requires: none
+ * 'CREATE' - Create a consumer group.
+ * Requires: Key, group, consumer.
+ * 'SETID' - Set the ID of an existing consumer group for the stream.
+ * Requires: Key, group, id.
+ * 'CREATECONSUMER' - Create a new consumer group for the stream. You must
+ * also pass key, group, and the consumer name you wish to
+ * create.
+ * Requires: Key, group, consumer.
+ * 'DELCONSUMER' - Delete a consumer from group attached to the stream.
+ * Requires: Key, group, consumer.
+ * 'DESTROY' - Delete a consumer group from a stream.
+ * Requires: Key, group.
+ * @param string|null $key The STREAM we're operating on.
+ * @param string|null $group The consumer group we want to create/modify/delete.
+ * @param string|null $id_or_consumer The STREAM id (e.g. '$') or consumer group. See the operation section
+ * for information about which to send.
+ * @param bool $mkstream This flag may be sent in combination with the 'CREATE' operation, and
+ * cause Redis to also create the STREAM if it doesn't currently exist.
+ *
+ * @param int $entries_read Allows you to set Redis' 'entries-read' STREAM value. This argument is
+ * only relevant to the 'CREATE' and 'SETID' operations.
+ * Note: Requires Redis >= 7.0.0.
+ *
+ * @return mixed|Redis This command returns different types depending on the specific XGROUP command executed or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xgroup
+ * @example
+ *
+ * $redis->xGroup('CREATE', 'mystream', 'mygroup', 0);
+ * $redis->xGroup('CREATE', 'mystream', 'mygroup', 0, true); // create stream
+ * $redis->xGroup('DESTROY', 'mystream', 'mygroup');
+ *
+ */
+ public function xGroup($operation, $key = null, $group = null, $id_or_consumer = null, $mkstream = false, $entries_read = -2) {}
+
+ /**
+ * Get information about a stream or consumer groups
+ *
+ * @param string $operation The specific info operation to perform. e.g.: 'CONSUMERS', 'GROUPS', 'STREAM', 'HELP'
+ * @param string|null $arg1 The first argument (depends on operation)
+ * @param string|null $arg2 The second argument
+ * @param int $count The COUNT argument to `XINFO STREAM`
+ *
+ * @return mixed|Redis This command returns different types depending on which subcommand is used or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xinfo
+ * @example
+ *
+ * $redis->xInfo('STREAM', 'mystream');
+ *
+ */
+ public function xInfo($operation, $arg1 = null, $arg2 = null, $count = -1) {}
+
+ /**
+ * Get the length of a given stream.
+ *
+ * @param string $stream
+ *
+ * @return false|int|Redis The number of messages in the stream or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xlen
+ * @example
+ *
+ * $redis->xLen('mystream');
+ *
+ */
+ public function xLen($stream) {}
+
+ /**
+ * Get information about pending messages in a given stream
+ *
+ * @param string $stream The stream to inspect.
+ * @param string $group The user group we want to see pending messages from.
+ * @param string|null $start The minimum ID to consider.
+ * @param string|null $end The maximum ID to consider.
+ * @param int $count Optional maximum number of messages to return.
+ * @param string|null $consumer If provided, limit the returned messages to a specific consumer.
+ *
+ * @return array|string|false|Redis Information about the pending messages, in various forms depending on or Redis if in multimode
+ * the specific invocation of XPENDING.
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xpending
+ * @example
+ *
+ * $redis->xPending('mystream', 'mygroup');
+ * $redis->xPending('mystream', 'mygroup', '-', '+', 1, 'consumer-1');
+ *
+ */
+ public function xPending($stream, $group, $start = null, $end = null, $count = -1, $consumer = null) {}
+
+ /**
+ * Get a range of messages from a given stream
+ *
+ * @param string $stream The stream key name to list.
+ * @param string $start The minimum ID to return.
+ * @param string $end The maximum ID to return.
+ * @param int $count An optional maximum number of entries to return.
+ *
+ * @return array|bool|Redis The messages in the stream within the requested range or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xrange
+ * @example
+ *
+ * // Get everything in this stream
+ * $redis->xRange('mystream', '-', '+');
+ * // Only the first two messages
+ * $redis->xRange('mystream', '-', '+', 2);
+ *
+ */
+ public function xRange($stream, $start, $end, $count = -1) {}
+
+ /**
+ * Read data from one or more streams and only return IDs greater than sent in the command.
+ *
+ * @param array $streams An associative array with stream name keys and minimum id values.
+ * @param int $count An optional limit to how many entries are returnd *per stream*
+ * @param int $block An optional maximum number of milliseconds to block the caller if no data is available on any of the provided streams.
+ *
+ * @return array|bool|Redis The messages in the stream newer than the IDs passed to Redis (if any) or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xread
+ * @example
+ * + * $redis->xRead(['stream1' => '1535222584555-0', 'stream2' => '1535222584555-0']); + *+ */ + public function xRead($streams, $count = -1, $block = -1) {} + + /** + * This method is similar to xRead except that it supports reading messages for a specific consumer group. + * + * @param string $group The consumer group to use. + * @param string $consumer The consumer to use. + * @param array $streams An array of stream names and message IDs + * @param int|null $count Optional maximum number of messages to return + * @param int|null $block How long to block if there are no messages available. + * + * @return array|bool|Redis The messages delivered to this consumer group (if any) or Redis if in multimode + * + * @throws RedisException + * + * @link https://redis.io/commands/xreadgroup + * @example + *
+ * // Consume messages for 'mygroup', 'consumer1'
+ * $redis->xReadGroup('mygroup', 'consumer1', ['s1' => 0, 's2' => 0]);
+ * // Read a single message as 'consumer2' for up to a second until a message arrives.
+ * $redis->xReadGroup('mygroup', 'consumer2', ['s1' => 0, 's2' => 0], 1, 1000);
+ *
+ */
+ public function xReadGroup($group, $consumer, $streams, $count = 1, $block = 1) {}
+
+ /**
+ * This is identical to xRange except the results come back in reverse order.
+ * Also note that Redis reverses the order of "start" and "end".
+ *
+ * @param string $stream The stream key to query.
+ * @param string $end The maximum message ID to include.
+ * @param string $start The minimum message ID to include.
+ * @param int $count An optional maximum number of messages to include.
+ *
+ * @return array|bool|Redis The messages in the range specified or Redis if in multimode
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/xrevrange
+ * @example
+ *
+ * $redis->xRevRange('mystream', '+', '-');
+ * $redis->xRevRange('mystream', '0-2', '0-1');
+ *
+ */
+ public function xRevRange($stream, $end, $start, $count = -1) {}
+
+ /**
+ * Truncate a STREAM key in various ways.
+ *
+ * @param string $key The STREAM key to trim.
+ * @param string $threshold This can either be a maximum length, or a minimum id.
+ * MAXLEN - An integer describing the maximum desired length of the stream after the command.
+ * MINID - An ID that will become the new minimum ID in the stream, as Redis will trim all
+ * messages older than this ID.
+ * @param bool $approx Whether redis is allowed to do an approximate trimming of the stream. This is
+ * more efficient for Redis given how streams are stored internally.
+ * @param bool $minid When set to `true`, users should pass a minimum ID to the `$threshold` argument.
+ * @param int $limit An optional upper bound on how many entries to trim during the command.
+ *
+ * @return Redis|int|false The number of entries deleted from the stream.
+ *
+ * @see https://redis.io/commands/xtrim
+ *
+ * @example $redis->xTrim('stream', 3);
+ * @example $redis->xTrim('stream', '2-1', false, true);
+ */
+ public function xtrim(string $key, string $threshold, bool $approx = false, bool $minid = false, int $limit = -1): Redis|int|false;
+
+ /**
+ * Adds a values to the set value stored at key.
+ *
+ * @param string $key Required key
+ * @param array $values Required values
+ *
+ * @return int|bool|Redis The number of elements added to the set or Redis if in multimode
+ * If this value is already in the set, FALSE is returned
+ *
+ * @throws RedisException
+ *
+ * @link https://redis.io/commands/sadd
+ * @link https://github.com/phpredis/phpredis/commit/3491b188e0022f75b938738f7542603c7aae9077
+ * @since phpredis 2.2.8
+ * @example
+ *
+ * $redis->sAddArray('k', array('v1')); // boolean
+ * $redis->sAddArray('k', array('v1', 'v2', 'v3')); // boolean
+ *
+ */
+ public function sAddArray($key, array $values) {}
+
+ public function __destruct() {}
+
+ /**
+ * Compress a value with the currently configured compressor as set with Redis::setOption().
+ *
+ * @param string $value The value to be compressed
+ *
+ * @return string The compressed result
+ */
+ public function _compress($value) {}
+
+ /**
+ * Uncompress the provided argument that has been compressed with the
+ * currently configured compressor as set with Redis::setOption().
+ *
+ * @param string $value The compressed value to uncompress.
+ *
+ * @return string The uncompressed result.
+ */
+ public function _uncompress($value) {}
+
+ /**
+ * Pack the provided value with the configured serializer and compressor as set with Redis::setOption().
+ *
+ * @param mixed $value The value to pack
+ *
+ * @return string The packed result having been serialized and compressed.
+ */
+ public function _pack($value) {}
+
+ /**
+ * Unpack the provided value with the configured compressor and serializer as set with Redis::setOption().
+ *
+ * @param string $value The value which has been serialized and compressed.
+ *
+ * @return mixed The uncompressed and eserialized value.
+ */
+ public function _unpack($value) {}
+
+ /**
+ * Execute the Redis ACL command.
+ *
+ * @param string $subcmd Minumum of one argument for Redis and two for RedisCluster.
+ * @param string ...$args
+ *
+ * @return mixed
+ *
+ * @example
+ *
+ * $redis->acl('USERS'); // Get a list of users
+ * $redis->acl('LOG'); // See log of Redis' ACL subsystem
+ */
+ public function acl($subcmd, ...$args) {}
+
+ /**
+ * POP one or more elements from one or more sorted sets, blocking up to a specified amount of time when no elements are available.
+ *
+ * @param float $timeout How long to block if there are no element available
+ * @param array $keys The sorted sets to pop from
+ * @param string $from The string 'MIN' or 'MAX' (case insensitive) telling Redis whether you wish to pop the lowest or highest scoring members from the set(s).
+ * @param int $count Pop up to how many elements.
+ *
+ * @return array|null|false|Redis This function will return an array of popped elements, or false
+ * depending on whether any elements could be popped within the specified timeout.
+ *
+ * NOTE: If Redis::OPT_NULL_MULTIBULK_AS_NULL is set to true via Redis::setOption(), this method will instead return NULL when Redis doesn't pop any elements.
+ * @since phpredis 6.0
+ */
+ public function bzmpop($timeout, $keys, $from, $count = 1) {}
+
+ /**
+ * POP one or more of the highest or lowest scoring elements from one or more sorted sets.
+ *
+ * @link https://redis.io/commands/zmpop
+ *
+ * @param array $keys One or more sorted sets
+ * @param string $from The string 'MIN' or 'MAX' (case insensitive) telling Redis whether you want to pop the lowest or highest scoring elements.
+ * @param int $count Pop up to how many elements at once.
+ *
+ * @return array|null|false|Redis An array of popped elements or false if none could be popped.
+ * @since phpredis 6.0
+ */
+ public function zmpop($keys, $from, $count = 1) {}
+
+ /**
+ * Pop one or more elements from one or more Redis LISTs, blocking up to a specified timeout when no elements are available.
+ *
+ * @link https://redis.io/commands/blmpop
+ *
+ * @param float $timeout The number of seconds Redis will block when no elements are available.
+ * @param array $keys One or more Redis LISTs to pop from.
+ * @param string $from The string 'LEFT' or 'RIGHT' (case insensitive), telling Redis whether to pop elements from the beginning or end of the LISTs.
+ * @param int $count Pop up to how many elements at once.
+ *
+ * @return array|null|false|Redis One or more elements popped from the list(s) or false if all LISTs were empty.
+ * @since phpredis 6.0
+ */
+ public function blmpop($timeout, $keys, $from, $count = 1) {}
+
+ /**
+ * Pop one or more elements off of one or more Redis LISTs.
+ *
+ * @link https://redis.io/commands/lmpop
+ *
+ * @param array $keys An array with one or more Redis LIST key names.
+ * @param string $from The string 'LEFT' or 'RIGHT' (case insensitive), telling Redis whether to pop elements from the beginning or end of the LISTs.
+ * @param int $count The maximum number of elements to pop at once.
+ *
+ * @return array|null|false|Redis One or more elements popped from the LIST(s) or false if all the LISTs were empty.
+ *
+ * @since phpredis 6.0
+ */
+ public function lmpop($keys, $from, $count = 1) {}
+
+ /**
+ * @param string|null $opt
+ * @param mixed ...$args
+ *
+ * @return mixed
+ */
+ public function command($opt = null, ...$args) {}
+
+ /**
+ * Make a copy of a key.
+ *
+ * $redis = new Redis(['host' => 'localhost']);
+ *
+ * @param string $src The key to copy
+ * @param string $dst The name of the new key created from the source key.
+ * @param array|null $options An array with modifiers on how COPY should operate.
+ * 'REPLACE' => true|false # Whether to replace an existing key.
+ * 'DB' => int # Copy key to specific db.
+ *
+ * @return bool|Redis True if the copy was completed and false if not.
+ *
+ * @link https://redis.io/commands/copy
+ * @since phpredis 6.0
+ *
+ * @example
+ * $redis->pipeline()
+ * ->select(1)
+ * ->del('newkey')
+ * ->select(0)
+ * ->del('newkey')
+ * ->mset(['source1' => 'value1', 'exists' => 'old_value'])
+ * ->exec();
+ *
+ * var_dump($redis->copy('source1', 'newkey'));
+ * var_dump($redis->copy('source1', 'newkey', ['db' => 1]));
+ * var_dump($redis->copy('source1', 'exists'));
+ * var_dump($redis->copy('source1', 'exists', ['REPLACE' => true]));
+ */
+ public function copy($src, $dst, $options = null) {}
+
+ /**
+ * @param string $key
+ *
+ * @return string|Redis
+ */
+ public function debug($key) {}
+
+ /**
+ * This is simply the read-only variant of eval, meaning the underlying script may not modify data in redis.
+ *
+ * @param string $script_sha
+ * @param mixed[] $args
+ * @param int $num_keys
+ *
+ * @return mixed
+ *
+ * @see eval()
+ * @since phpredis 6.0
+ */
+ public function eval_ro($script_sha, $args = [], $num_keys = 0) {}
+
+ /**
+ * This is simply the read-only variant of evalsha, meaning the underlying script may not modify data in redis.
+ *
+ * @param string $sha1
+ * @param mixed[] $args
+ * @param int $num_keys
+ *
+ * @return mixed
+ * @see evalsha()
+ * @since phpredis 6.0
+ */
+ public function evalsha_ro($sha1, $args = [], $num_keys = 0) {}
+
+ /**
+ * @param array|null $to
+ * @param bool $abort
+ * @param int $timeout
+ *
+ * @return bool|Redis
+ * @since phpredis 6.0
+ */
+ public function failover($to = null, $abort = false, $timeout = 0) {}
+
+ /**
+ * Get the expiration of a given key as a unix timestamp
+ *
+ * @param string $key The key to check.
+ *
+ * @return int|false|Redis The timestamp when the key expires, or -1 if the key has no expiry and -2 if the key doesn't exist.
+ *
+ * @link https://redis.io/commands/expiretime
+ * @since phpredis 6.0
+ *
+ * @example
+ * $redis->setEx('mykey', 60, 'myval');
+ * $redis->expiretime('mykey');
+ */
+ public function expiretime($key) {}
+
+ /**
+ * Get the expriation timestamp of a given Redis key but in milliseconds.
+ *
+ * @param string $key The key to check
+ *
+ * @link https://redis.io/commands/pexpiretime
+ * @see expiretime()
+ * @since phpredis 6.0
+ *
+ * @return int|false|Redis The expiration timestamp of this key (in milliseconds) or -1 if the key has no expiration, and -2 if it does not exist.
+ */
+ public function pexpiretime($key) {}
+
+ /**
+ * Invoke a function.
+ *
+ * @param string $fn The name of the function
+ * @param array $keys Optional list of keys
+ * @param array $args Optional list of args
+ *
+ * @return mixed Function may return arbitrary data so this method can return strings, arrays, nested arrays, etc.
+ *
+ * @link https://redis.io/commands/fcall
+ * @since phpredis 6.0
+ */
+ public function fcall($fn, $keys = [], $args = []) {}
+
+ /**
+ * This is a read-only variant of the FCALL command that cannot execute commands that modify data.
+ *
+ * @param string $fn The name of the function
+ * @param array $keys Optional list of keys
+ * @param array $args Optional list of args
+ *
+ * @return mixed Function may return arbitrary data so this method can return strings, arrays, nested arrays, etc.
+ *
+ * @link https://redis.io/commands/fcall_ro
+ * @since phpredis 6.0
+ */
+ public function fcall_ro($fn, $keys = [], $args = []) {}
+
+ /**
+ * Functions is an API for managing code to be executed on the server.
+ *
+ * @param string $operation The subcommand you intend to execute. Valid options are as follows
+ * 'LOAD' - Create a new library with the given library name and code.
+ * 'DELETE' - Delete the given library.
+ * 'LIST' - Return general information on all the libraries
+ * 'STATS' - Return information about the current function running
+ * 'KILL' - Kill the current running function
+ * 'FLUSH' - Delete all the libraries
+ * 'DUMP' - Return a serialized payload representing the current libraries
+ * 'RESTORE' - Restore the libraries represented by the given payload
+ * @param mixed $args Additional arguments
+ *
+ * @return Redis|bool|string|array Depends on subcommand.
+ *
+ * @link https://redis.io/commands/function
+ * @since phpredis 6.0
+ */
+ public function function($operation, ...$args) {}
+
+ /**
+ * A readonly variant of `GEORADIUS` that may be executed on replicas.
+ *
+ * @param string $key
+ * @param float $lng
+ * @param float $lat
+ * @param float $radius
+ * @param string $unit
+ * @param mixed[] $options
+ *
+ * @return mixed
+ * @see georadius()
+ */
+ public function georadius_ro($key, $lng, $lat, $radius, $unit, $options = []) {}
+
+ /**
+ * This is the read-only variant of `GEORADIUSBYMEMBER` that can be run on replicas.
+ *
+ * @param string $key
+ * @param string $member
+ * @param float $radius
+ * @param string $unit
+ * @param mixed[] $options
+ *
+ * @return mixed
+ *
+ * @see georadiusbymember()
+ */
+ public function georadiusbymember_ro($key, $member, $radius, $unit, $options = []) {}
+
+ /**
+ * Get the value of a key and optionally set it's expiration.
+ *
+ * @param string $key The key to query
+ * @param array $options Options to modify how the command works.
+ * 'EX' =>
+ * // Declaring a cluster with an array of seeds
+ * $redisCluster = new RedisCluster(null,['127.0.0.1:6379']);
+ *
+ * // Loading a cluster configuration by name
+ * // In order to load a named array, one must first define the seed nodes in redis.ini.
+ * // The following lines would define the cluster 'mycluster', and be loaded automatically by phpredis.
+ *
+ * // # In redis.ini
+ * // redis.clusters.seeds = "mycluster[]=localhost:7000&test[]=localhost:7001"
+ * // redis.clusters.timeout = "mycluster=5"
+ * // redis.clusters.read_timeout = "mycluster=10"
+ * // redis.clusters.auth = "mycluster=password" OR ['user' => 'foo', 'pass' => 'bar] as example
+ *
+ * //Then, this cluster can be loaded by doing the following
+ *
+ * $redisClusterPro = new RedisCluster('mycluster');
+ * $redisClusterDev = new RedisCluster('test');
+ *
+ */
+ public function __construct($name, $seeds = null, $timeout = null, $readTimeout = null, $persistent = false, $auth = null, $context = null) {}
+
+ /**
+ * Disconnects from the RedisCluster instance, except when pconnect is used.
+ */
+ public function close() {}
+
+ /**
+ * Get the value related to the specified key
+ *
+ * @param string $key
+ *
+ * @return string|false If key didn't exist, FALSE is returned. Otherwise, the value related to this key is
+ * returned.
+ *
+ * @link https://redis.io/commands/get
+ * @example
+ *
+ * $redisCluster->get('key');
+ *
+ */
+ public function get($key) {}
+
+ /**
+ * Set the string value in argument as value of the key.
+ *
+ * @since If you're using Redis >= 2.6.12, you can pass extended options as explained in example
+ *
+ * @param string $key
+ * @param string $value
+ * @param int|array $timeout If you pass an integer, phpredis will redirect to SETEX, and will try to use Redis
+ * >= 2.6.12 extended options if you pass an array with valid values.
+ *
+ * @return bool TRUE if the command is successful.
+ *
+ * @link https://redis.io/commands/set
+ * @example
+ *
+ * // Simple key -> value set
+ * $redisCluster->set('key', 'value');
+ *
+ * // Will redirect, and actually make an SETEX call
+ * $redisCluster->set('key','value', 10);
+ *
+ * // Will set the key, if it doesn't exist, with a ttl of 10 seconds
+ * $redisCluster->set('key', 'value', Array('nx', 'ex'=>10));
+ *
+ * // Will set a key, if it does exist, with a ttl of 1000 milliseconds
+ * $redisCluster->set('key', 'value', Array('xx', 'px'=>1000));
+ *
+ */
+ public function set($key, $value, $timeout = null) {}
+
+ /**
+ * Returns the values of all specified keys.
+ *
+ * For every key that does not hold a string value or does not exist,
+ * the special value false is returned. Because of this, the operation never fails.
+ *
+ * @param array $array
+ *
+ * @return array
+ *
+ * @link https://redis.io/commands/mget
+ * @example
+ *
+ * $redisCluster->del('x', 'y', 'z', 'h'); // remove x y z
+ * $redisCluster->mset(array('x' => 'a', 'y' => 'b', 'z' => 'c'));
+ * $redisCluster->hset('h', 'field', 'value');
+ * var_dump($redisCluster->mget(array('x', 'y', 'z', 'h')));
+ * // Output:
+ * // array(3) {
+ * // [0]=>
+ * // string(1) "a"
+ * // [1]=>
+ * // string(1) "b"
+ * // [2]=>
+ * // string(1) "c"
+ * // [3]=>
+ * // bool(false)
+ * // }
+ *
+ */
+ public function mget(array $array) {}
+
+ /**
+ * Sets multiple key-value pairs in one atomic command.
+ * MSETNX only returns TRUE if all the keys were set (see SETNX).
+ *
+ * @param array $array Pairs: array(key => value, ...)
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/mset
+ * @example
+ *
+ * $redisCluster->mset(array('key0' => 'value0', 'key1' => 'value1'));
+ * var_dump($redisCluster->get('key0'));
+ * var_dump($redisCluster->get('key1'));
+ * // Output:
+ * // string(6) "value0"
+ * // string(6) "value1"
+ *
+ */
+ public function mset(array $array) {}
+
+ /**
+ * @see mset()
+ *
+ * @param array $array
+ *
+ * @return int 1 (if the keys were set) or 0 (no key was set)
+ * @link https://redis.io/commands/msetnx
+ */
+ public function msetnx(array $array) {}
+
+ /**
+ * Remove specified keys.
+ *
+ * @param int|string|array $key1 An array of keys, or an undefined number of parameters, each a key: key1 key2 key3
+ * ... keyN
+ * @param int|string ...$otherKeys
+ *
+ * @return int Number of keys deleted.
+ * @link https://redis.io/commands/del
+ * @example
+ *
+ * $redisCluster->set('key1', 'val1');
+ * $redisCluster->set('key2', 'val2');
+ * $redisCluster->set('key3', 'val3');
+ * $redisCluster->set('key4', 'val4');
+ * $redisCluster->del('key1', 'key2'); // return 2
+ * $redisCluster->del(array('key3', 'key4')); // return 2
+ *
+ */
+ public function del($key1, ...$otherKeys) {}
+
+ /**
+ * Set the string value in argument as value of the key, with a time to live.
+ *
+ * @param string $key
+ * @param int $ttl
+ * @param mixed $value
+ *
+ * @return bool TRUE if the command is successful.
+ * @link https://redis.io/commands/setex
+ * @example
+ *
+ * $redisCluster->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
+ *
+ */
+ public function setex($key, $ttl, $value) {}
+
+ /**
+ * PSETEX works exactly like SETEX with the sole difference that the expire time is specified in milliseconds
+ * instead of seconds.
+ *
+ * @param string $key
+ * @param int $ttl
+ * @param string $value
+ *
+ * @return bool TRUE if the command is successful.
+ * @link https://redis.io/commands/psetex
+ * @example
+ *
+ * $redisCluster->psetex('key', 1000, 'value'); // sets key → value, with 1s TTL.
+ *
+ */
+ public function psetex($key, $ttl, $value) {}
+
+ /**
+ * Set the string value in argument as value of the key if the key doesn't already exist in the database.
+ *
+ * @param string $key
+ * @param string $value
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/setnx
+ * @example
+ *
+ * $redisCluster->setnx('key', 'value'); // return TRUE
+ * $redisCluster->setnx('key', 'value'); // return FALSE
+ *
+ */
+ public function setnx($key, $value) {}
+
+ /**
+ * Sets a value and returns the previous entry at that key.
+ *
+ * @param string $key
+ * @param string $value
+ *
+ * @return string A string, the previous value located at this key.
+ * @link https://redis.io/commands/getset
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $exValue = $redisCluster->getSet('x', 'lol'); // return '42', replaces x by 'lol'
+ * $newValue = $redisCluster->get('x'); // return 'lol'
+ *
+ */
+ public function getSet($key, $value) {}
+
+ /**
+ * Verify if the specified key exists.
+ *
+ * @param string $key
+ *
+ * @return bool If the key exists, return TRUE, otherwise return FALSE.
+ * @link https://redis.io/commands/exists
+ * @example
+ *
+ * $redisCluster->set('key', 'value');
+ * $redisCluster->exists('key'); // TRUE
+ * $redisCluster->exists('NonExistingKey'); // FALSE
+ *
+ */
+ public function exists($key) {}
+
+ /**
+ * Returns the keys that match a certain pattern.
+ *
+ * @param string $pattern pattern, using '*' as a wildcard.
+ *
+ * @return array of STRING: The keys that match a certain pattern.
+ * @link https://redis.io/commands/keys
+ * @example
+ *
+ * $allKeys = $redisCluster->keys('*'); // all keys will match this.
+ * $keyWithUserPrefix = $redisCluster->keys('user*');
+ *
+ */
+ public function keys($pattern) {}
+
+ /**
+ * Returns the type of data pointed by a given key.
+ *
+ * @param string $key
+ *
+ * @return int
+ *
+ * Depending on the type of the data pointed by the key,
+ * this method will return the following value:
+ * - string: RedisCluster::REDIS_STRING
+ * - set: RedisCluster::REDIS_SET
+ * - list: RedisCluster::REDIS_LIST
+ * - zset: RedisCluster::REDIS_ZSET
+ * - hash: RedisCluster::REDIS_HASH
+ * - other: RedisCluster::REDIS_NOT_FOUND
+ * @link https://redis.io/commands/type
+ * @example $redisCluster->type('key');
+ */
+ public function type($key) {}
+
+ /**
+ * Returns and removes the first element of the list.
+ *
+ * @param string $key
+ *
+ * @return string|false if command executed successfully BOOL FALSE in case of failure (empty list)
+ * @link https://redis.io/commands/lpop
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C');
+ * var_dump( $redisCluster->lRange('key1', 0, -1) );
+ * // Output:
+ * // array(3) {
+ * // [0]=> string(1) "A"
+ * // [1]=> string(1) "B"
+ * // [2]=> string(1) "C"
+ * // }
+ * $redisCluster->lPop('key1');
+ * var_dump( $redisCluster->lRange('key1', 0, -1) );
+ * // Output:
+ * // array(2) {
+ * // [0]=> string(1) "B"
+ * // [1]=> string(1) "C"
+ * // }
+ *
+ */
+ public function lPop($key) {}
+
+ /**
+ * Returns and removes the last element of the list.
+ *
+ * @param string $key
+ *
+ * @return string|false if command executed successfully BOOL FALSE in case of failure (empty list)
+ * @link https://redis.io/commands/rpop
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C');
+ * var_dump( $redisCluster->lRange('key1', 0, -1) );
+ * // Output:
+ * // array(3) {
+ * // [0]=> string(1) "A"
+ * // [1]=> string(1) "B"
+ * // [2]=> string(1) "C"
+ * // }
+ * $redisCluster->rPop('key1');
+ * var_dump( $redisCluster->lRange('key1', 0, -1) );
+ * // Output:
+ * // array(2) {
+ * // [0]=> string(1) "A"
+ * // [1]=> string(1) "B"
+ * // }
+ *
+ */
+ public function rPop($key) {}
+
+ /**
+ * Set the list at index with the new value.
+ *
+ * @param string $key
+ * @param int $index
+ * @param string $value
+ *
+ * @return bool TRUE if the new value is setted. FALSE if the index is out of range, or data type identified by key
+ * is not a list.
+ * @link https://redis.io/commands/lset
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redisCluster->lGet('key1', 0); // 'A'
+ * $redisCluster->lSet('key1', 0, 'X');
+ * $redisCluster->lGet('key1', 0); // 'X'
+ *
+ */
+ public function lSet($key, $index, $value) {}
+
+ /**
+ * Removes and returns a random element from the set value at Key.
+ *
+ * @param string $key
+ *
+ * @return string "popped" value
+ * bool FALSE if set identified by key is empty or doesn't exist.
+ * @link https://redis.io/commands/spop
+ * @example
+ *
+ * $redisCluster->sAdd('key1' , 'set1');
+ * $redisCluster->sAdd('key1' , 'set2');
+ * $redisCluster->sAdd('key1' , 'set3');
+ * var_dump($redisCluster->sMembers('key1'));// 'key1' => {'set3', 'set1', 'set2'}
+ * $redisCluster->sPop('key1');// 'set1'
+ * var_dump($redisCluster->sMembers('key1'));// 'key1' => {'set3', 'set2'}
+ * $redisCluster->sPop('key1');// 'set3',
+ * var_dump($redisCluster->sMembers('key1'));// 'key1' => {'set2'}
+ *
+ */
+ public function sPop($key) {}
+
+ /**
+ * Adds the string values to the head (left) of the list. Creates the list if the key didn't exist.
+ * If the key exists and is not a list, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $value1 String, value to push in key
+ * @param string $value2 Optional
+ * @param string $valueN Optional
+ *
+ * @return int|false The new length of the list in case of success, FALSE in case of Failure.
+ * @link https://redis.io/commands/lpush
+ * @example
+ *
+ * $redisCluster->lPush('l', 'v1', 'v2', 'v3', 'v4') // int(4)
+ * var_dump( $redisCluster->lRange('l', 0, -1) );
+ * //// Output:
+ * // array(4) {
+ * // [0]=> string(2) "v4"
+ * // [1]=> string(2) "v3"
+ * // [2]=> string(2) "v2"
+ * // [3]=> string(2) "v1"
+ * // }
+ *
+ */
+ public function lPush($key, $value1, $value2 = null, $valueN = null) {}
+
+ /**
+ * Adds the string values to the tail (right) of the list. Creates the list if the key didn't exist.
+ * If the key exists and is not a list, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $value1 String, value to push in key
+ * @param string $value2 Optional
+ * @param string $valueN Optional
+ *
+ * @return int|false The new length of the list in case of success, FALSE in case of Failure.
+ * @link https://redis.io/commands/rpush
+ * @example
+ *
+ * $redisCluster->rPush('r', 'v1', 'v2', 'v3', 'v4'); // int(4)
+ * var_dump( $redisCluster->lRange('r', 0, -1) );
+ * //// Output:
+ * // array(4) {
+ * // [0]=> string(2) "v1"
+ * // [1]=> string(2) "v2"
+ * // [2]=> string(2) "v3"
+ * // [3]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function rPush($key, $value1, $value2 = null, $valueN = null) {}
+
+ /**
+ * BLPOP is a blocking list pop primitive.
+ * It is the blocking version of LPOP because it blocks the connection when
+ * there are no elements to pop from any of the given lists.
+ * An element is popped from the head of the first list that is non-empty,
+ * with the given keys being checked in the order that they are given.
+ *
+ * @param array $keys Array containing the keys of the lists
+ * Or STRING Key1 STRING Key2 STRING Key3 ... STRING Keyn
+ * @param int $timeout Timeout
+ *
+ * @return array array('listName', 'element')
+ * @link https://redis.io/commands/blpop
+ * @example
+ *
+ * // Non blocking feature
+ * $redisCluster->lPush('key1', 'A');
+ * $redisCluster->del('key2');
+ *
+ * $redisCluster->blPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redisCluster->blPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * $redisCluster->brPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redisCluster->brPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * // Blocking feature
+ *
+ * // process 1
+ * $redisCluster->del('key1');
+ * $redisCluster->blPop('key1', 10);
+ * // blocking for 10 seconds
+ *
+ * // process 2
+ * $redisCluster->lPush('key1', 'A');
+ *
+ * // process 1
+ * // array('key1', 'A') is returned
+ *
+ */
+ public function blPop(array $keys, $timeout) {}
+
+ /**
+ * BRPOP is a blocking list pop primitive.
+ * It is the blocking version of RPOP because it blocks the connection when
+ * there are no elements to pop from any of the given lists.
+ * An element is popped from the tail of the first list that is non-empty,
+ * with the given keys being checked in the order that they are given.
+ * See the BLPOP documentation(https://redis.io/commands/blpop) for the exact semantics,
+ * since BRPOP is identical to BLPOP with the only difference being that
+ * it pops elements from the tail of a list instead of popping from the head.
+ *
+ * @param array $keys Array containing the keys of the lists
+ * Or STRING Key1 STRING Key2 STRING Key3 ... STRING Keyn
+ * @param int $timeout Timeout
+ *
+ * @return array array('listName', 'element')
+ * @link https://redis.io/commands/brpop
+ * @example
+ *
+ * // Non blocking feature
+ * $redisCluster->lPush('key1', 'A');
+ * $redisCluster->del('key2');
+ *
+ * $redisCluster->blPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redisCluster->blPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * $redisCluster->brPop('key1', 'key2', 10); // array('key1', 'A')
+ * // OR
+ * $redisCluster->brPop(array('key1', 'key2'), 10); // array('key1', 'A')
+ *
+ * // Blocking feature
+ *
+ * // process 1
+ * $redisCluster->del('key1');
+ * $redisCluster->blPop('key1', 10);
+ * // blocking for 10 seconds
+ *
+ * // process 2
+ * $redisCluster->lPush('key1', 'A');
+ *
+ * // process 1
+ * // array('key1', 'A') is returned
+ *
+ */
+ public function brPop(array $keys, $timeout) {}
+
+ /**
+ * Adds the string value to the tail (right) of the list if the ist exists. FALSE in case of Failure.
+ *
+ * @param string $key
+ * @param string $value String, value to push in key
+ *
+ * @return int|false The new length of the list in case of success, FALSE in case of Failure.
+ * @link https://redis.io/commands/rpushx
+ * @example
+ *
+ * $redisCluster->del('key1');
+ * $redisCluster->rPushx('key1', 'A'); // returns 0
+ * $redisCluster->rPush('key1', 'A'); // returns 1
+ * $redisCluster->rPushx('key1', 'B'); // returns 2
+ * $redisCluster->rPushx('key1', 'C'); // returns 3
+ * // key1 now points to the following list: [ 'A', 'B', 'C' ]
+ *
+ */
+ public function rPushx($key, $value) {}
+
+ /**
+ * Adds the string value to the head (left) of the list if the list exists.
+ *
+ * @param string $key
+ * @param string $value String, value to push in key
+ *
+ * @return int|false The new length of the list in case of success, FALSE in case of Failure.
+ * @link https://redis.io/commands/lpushx
+ * @example
+ *
+ * $redisCluster->del('key1');
+ * $redisCluster->lPushx('key1', 'A'); // returns 0
+ * $redisCluster->lPush('key1', 'A'); // returns 1
+ * $redisCluster->lPushx('key1', 'B'); // returns 2
+ * $redisCluster->lPushx('key1', 'C'); // returns 3
+ * // key1 now points to the following list: [ 'C', 'B', 'A' ]
+ *
+ */
+ public function lPushx($key, $value) {}
+
+ /**
+ * Insert value in the list before or after the pivot value. the parameter options
+ * specify the position of the insert (before or after). If the list didn't exists,
+ * or the pivot didn't exists, the value is not inserted.
+ *
+ * @param string $key
+ * @param string $position RedisCluster::BEFORE | RedisCluster::AFTER
+ * @param string $pivot
+ * @param string $value
+ *
+ * @return int The number of the elements in the list, -1 if the pivot didn't exists.
+ * @link https://redis.io/commands/linsert
+ * @example
+ *
+ * $redisCluster->del('key1');
+ * $redisCluster->lInsert('key1', RedisCluster::AFTER, 'A', 'X'); // 0
+ *
+ * $redisCluster->lPush('key1', 'A');
+ * $redisCluster->lPush('key1', 'B');
+ * $redisCluster->lPush('key1', 'C');
+ *
+ * $redisCluster->lInsert('key1', RedisCluster::BEFORE, 'C', 'X'); // 4
+ * $redisCluster->lRange('key1', 0, -1); // array('X', 'C', 'B', 'A')
+ *
+ * $redisCluster->lInsert('key1', RedisCluster::AFTER, 'C', 'Y'); // 5
+ * $redisCluster->lRange('key1', 0, -1); // array('X', 'C', 'Y', 'B', 'A')
+ *
+ * $redisCluster->lInsert('key1', RedisCluster::AFTER, 'W', 'value'); // -1
+ *
+ */
+ public function lInsert($key, $position, $pivot, $value) {}
+
+ /**
+ * Return the specified element of the list stored at the specified key.
+ * 0 the first element, 1 the second ... -1 the last element, -2 the penultimate ...
+ * Return FALSE in case of a bad index or a key that doesn't point to a list.
+ *
+ * @param string $key
+ * @param int $index
+ *
+ * @return string|false the element at this index
+ * Bool FALSE if the key identifies a non-string data type, or no value corresponds to this index in the list Key.
+ * @link https://redis.io/commands/lindex
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redisCluster->lGet('key1', 0); // 'A'
+ * $redisCluster->lGet('key1', -1); // 'C'
+ * $redisCluster->lGet('key1', 10); // `FALSE`
+ *
+ */
+ public function lIndex($key, $index) {}
+
+ /**
+ * Removes the first count occurrences of the value element from the list.
+ * If count is zero, all the matching elements are removed. If count is negative,
+ * elements are removed from tail to head.
+ *
+ * @param string $key
+ * @param string $value
+ * @param int $count
+ *
+ * @return int the number of elements to remove
+ * bool FALSE if the value identified by key is not a list.
+ * @link https://redis.io/commands/lrem
+ * @example
+ *
+ * $redisCluster->lPush('key1', 'A');
+ * $redisCluster->lPush('key1', 'B');
+ * $redisCluster->lPush('key1', 'C');
+ * $redisCluster->lPush('key1', 'A');
+ * $redisCluster->lPush('key1', 'A');
+ *
+ * $redisCluster->lRange('key1', 0, -1); // array('A', 'A', 'C', 'B', 'A')
+ * $redisCluster->lRem('key1', 'A', 2); // 2
+ * $redisCluster->lRange('key1', 0, -1); // array('C', 'B', 'A')
+ *
+ */
+ public function lRem($key, $value, $count) {}
+
+ /**
+ * A blocking version of rpoplpush, with an integral timeout in the third parameter.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ * @param int $timeout
+ *
+ * @return string|false The element that was moved in case of success, FALSE in case of timeout.
+ * @link https://redis.io/commands/brpoplpush
+ */
+ public function brpoplpush($srcKey, $dstKey, $timeout) {}
+
+ /**
+ * Pops a value from the tail of a list, and pushes it to the front of another list.
+ * Also return this value.
+ *
+ * @since redis >= 1.2
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @return string|false The element that was moved in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/rpoplpush
+ * @example
+ *
+ * $redisCluster->del('x', 'y');
+ *
+ * $redisCluster->lPush('x', 'abc');
+ * $redisCluster->lPush('x', 'def');
+ * $redisCluster->lPush('y', '123');
+ * $redisCluster->lPush('y', '456');
+ *
+ * // move the last of x to the front of y.
+ * var_dump($redisCluster->rpoplpush('x', 'y'));
+ * var_dump($redisCluster->lRange('x', 0, -1));
+ * var_dump($redisCluster->lRange('y', 0, -1));
+ *
+ * ////Output:
+ * //
+ * //string(3) "abc"
+ * //array(1) {
+ * // [0]=>
+ * // string(3) "def"
+ * //}
+ * //array(3) {
+ * // [0]=>
+ * // string(3) "abc"
+ * // [1]=>
+ * // string(3) "456"
+ * // [2]=>
+ * // string(3) "123"
+ * //}
+ *
+ */
+ public function rpoplpush($srcKey, $dstKey) {}
+
+ /**
+ * Returns the size of a list identified by Key. If the list didn't exist or is empty,
+ * the command returns 0. If the data type identified by Key is not a list, the command return FALSE.
+ *
+ * @param string $key
+ *
+ * @return int The size of the list identified by Key exists.
+ * bool FALSE if the data type identified by Key is not list
+ * @link https://redis.io/commands/llen
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C'); // key1 => [ 'A', 'B', 'C' ]
+ * $redisCluster->lLen('key1'); // 3
+ * $redisCluster->rPop('key1');
+ * $redisCluster->lLen('key1'); // 2
+ *
+ */
+ public function lLen($key) {}
+
+ /**
+ * Returns the set cardinality (number of elements) of the set stored at key.
+ *
+ * @param string $key
+ *
+ * @return int the cardinality (number of elements) of the set, or 0 if key does not exist.
+ * @link https://redis.io/commands/scard
+ * @example
+ *
+ * $redisCluster->sAdd('key1' , 'set1');
+ * $redisCluster->sAdd('key1' , 'set2');
+ * $redisCluster->sAdd('key1' , 'set3'); // 'key1' => {'set1', 'set2', 'set3'}
+ * $redisCluster->sCard('key1'); // 3
+ * $redisCluster->sCard('keyX'); // 0
+ *
+ */
+ public function sCard($key) {}
+
+ /**
+ * Returns all the members of the set value stored at key.
+ * This has the same effect as running SINTER with one argument key.
+ *
+ * @param string $key
+ *
+ * @return array All elements of the set.
+ * @link https://redis.io/commands/smembers
+ * @example
+ *
+ * $redisCluster->del('s');
+ * $redisCluster->sAdd('s', 'a');
+ * $redisCluster->sAdd('s', 'b');
+ * $redisCluster->sAdd('s', 'a');
+ * $redisCluster->sAdd('s', 'c');
+ * var_dump($redisCluster->sMembers('s'));
+ *
+ * ////Output:
+ * //
+ * //array(3) {
+ * // [0]=>
+ * // string(1) "b"
+ * // [1]=>
+ * // string(1) "c"
+ * // [2]=>
+ * // string(1) "a"
+ * //}
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function sMembers($key) {}
+
+ /**
+ * Returns if member is a member of the set stored at key.
+ *
+ * @param string $key
+ * @param string $value
+ *
+ * @return bool TRUE if value is a member of the set at key key, FALSE otherwise.
+ * @link https://redis.io/commands/sismember
+ * @example
+ *
+ * $redisCluster->sAdd('key1' , 'set1');
+ * $redisCluster->sAdd('key1' , 'set2');
+ * $redisCluster->sAdd('key1' , 'set3'); // 'key1' => {'set1', 'set2', 'set3'}
+ *
+ * $redisCluster->sIsMember('key1', 'set1'); // TRUE
+ * $redisCluster->sIsMember('key1', 'setX'); // FALSE
+ *
+ */
+ public function sIsMember($key, $value) {}
+
+ /**
+ * Adds a values to the set value stored at key.
+ * If this value is already in the set, FALSE is returned.
+ *
+ * @param string $key Required key
+ * @param mixed $value1 Required value
+ * @param mixed $value2 Optional value
+ * @param mixed $valueN Optional value
+ *
+ * @return int|false The number of elements added to the set
+ * @link https://redis.io/commands/sadd
+ * @example
+ *
+ * $redisCluster->sAdd('k', 'v1'); // int(1)
+ * $redisCluster->sAdd('k', 'v1', 'v2', 'v3'); // int(2)
+ *
+ */
+ public function sAdd($key, $value1, $value2 = null, $valueN = null) {}
+
+ /**
+ * Adds a values to the set value stored at key.
+ * If this value is already in the set, FALSE is returned.
+ *
+ * @param string $key Required key
+ * @param array $valueArray
+ *
+ * @return int|false The number of elements added to the set
+ * @example
+ *
+ * $redisCluster->sAddArray('k', ['v1', 'v2', 'v3']);
+ * //This is a feature in php only. Same as $redisCluster->sAdd('k', 'v1', 'v2', 'v3');
+ *
+ */
+ public function sAddArray($key, array $valueArray) {}
+
+ /**
+ * Removes the specified members from the set value stored at key.
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string $memberN
+ *
+ * @return int The number of elements removed from the set.
+ * @link https://redis.io/commands/srem
+ * @example
+ *
+ * var_dump( $redisCluster->sAdd('k', 'v1', 'v2', 'v3') ); // int(3)
+ * var_dump( $redisCluster->sRem('k', 'v2', 'v3') ); // int(2)
+ * var_dump( $redisCluster->sMembers('k') );
+ * //// Output:
+ * // array(1) {
+ * // [0]=> string(2) "v1"
+ * // }
+ *
+ */
+ public function sRem($key, $member1, $member2 = null, $memberN = null) {}
+
+ /**
+ * Performs the union between N sets and returns it.
+ *
+ * @param string $key1 Any number of keys corresponding to sets in redis.
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return array of strings: The union of all these sets.
+ * @link https://redis.io/commands/sunionstore
+ * @example
+ *
+ * $redisCluster->del('s0', 's1', 's2');
+ *
+ * $redisCluster->sAdd('s0', '1');
+ * $redisCluster->sAdd('s0', '2');
+ * $redisCluster->sAdd('s1', '3');
+ * $redisCluster->sAdd('s1', '1');
+ * $redisCluster->sAdd('s2', '3');
+ * $redisCluster->sAdd('s2', '4');
+ *
+ * var_dump($redisCluster->sUnion('s0', 's1', 's2'));
+ *
+ * //// Output:
+ * //
+ * //array(4) {
+ * // [0]=>
+ * // string(1) "3"
+ * // [1]=>
+ * // string(1) "4"
+ * // [2]=>
+ * // string(1) "1"
+ * // [3]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sUnion($key1, $key2, $keyN = null) {}
+
+ /**
+ * Performs the same action as sUnion, but stores the result in the first key
+ *
+ * @param string $dstKey the key to store the diff into.
+ * @param string $key1 Any number of keys corresponding to sets in redis.
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return int Any number of keys corresponding to sets in redis.
+ * @link https://redis.io/commands/sunionstore
+ * @example
+ *
+ * $redisCluster->del('s0', 's1', 's2');
+ *
+ * $redisCluster->sAdd('s0', '1');
+ * $redisCluster->sAdd('s0', '2');
+ * $redisCluster->sAdd('s1', '3');
+ * $redisCluster->sAdd('s1', '1');
+ * $redisCluster->sAdd('s2', '3');
+ * $redisCluster->sAdd('s2', '4');
+ *
+ * var_dump($redisCluster->sUnionStore('dst', 's0', 's1', 's2'));
+ * var_dump($redisCluster->sMembers('dst'));
+ *
+ * //// Output:
+ * //
+ * //int(4)
+ * //array(4) {
+ * // [0]=>
+ * // string(1) "3"
+ * // [1]=>
+ * // string(1) "4"
+ * // [2]=>
+ * // string(1) "1"
+ * // [3]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sUnionStore($dstKey, $key1, $key2, $keyN = null) {}
+
+ /**
+ * Returns the members of a set resulting from the intersection of all the sets
+ * held at the specified keys. If just a single key is specified, then this command
+ * produces the members of this set. If one of the keys is missing, FALSE is returned.
+ *
+ * @param string $key1 keys identifying the different sets on which we will apply the intersection.
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return array contain the result of the intersection between those keys.
+ * If the intersection between the different sets is empty, the return value will be empty array.
+ * @link https://redis.io/commands/sinterstore
+ * @example
+ *
+ * $redisCluster->sAdd('key1', 'val1');
+ * $redisCluster->sAdd('key1', 'val2');
+ * $redisCluster->sAdd('key1', 'val3');
+ * $redisCluster->sAdd('key1', 'val4');
+ *
+ * $redisCluster->sAdd('key2', 'val3');
+ * $redisCluster->sAdd('key2', 'val4');
+ *
+ * $redisCluster->sAdd('key3', 'val3');
+ * $redisCluster->sAdd('key3', 'val4');
+ *
+ * var_dump($redisCluster->sInter('key1', 'key2', 'key3'));
+ *
+ * // Output:
+ * //
+ * //array(2) {
+ * // [0]=>
+ * // string(4) "val4"
+ * // [1]=>
+ * // string(4) "val3"
+ * //}
+ *
+ */
+ public function sInter($key1, $key2, $keyN = null) {}
+
+ /**
+ * Performs a sInter command and stores the result in a new set.
+ *
+ * @param string $dstKey the key to store the diff into.
+ * @param string $key1 are intersected as in sInter.
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return int|false The cardinality of the resulting set, or FALSE in case of a missing key.
+ * @link https://redis.io/commands/sinterstore
+ * @example
+ *
+ * $redisCluster->sAdd('key1', 'val1');
+ * $redisCluster->sAdd('key1', 'val2');
+ * $redisCluster->sAdd('key1', 'val3');
+ * $redisCluster->sAdd('key1', 'val4');
+ *
+ * $redisCluster->sAdd('key2', 'val3');
+ * $redisCluster->sAdd('key2', 'val4');
+ *
+ * $redisCluster->sAdd('key3', 'val3');
+ * $redisCluster->sAdd('key3', 'val4');
+ *
+ * var_dump($redisCluster->sInterStore('output', 'key1', 'key2', 'key3'));
+ * var_dump($redisCluster->sMembers('output'));
+ *
+ * //// Output:
+ * //
+ * //int(2)
+ * //array(2) {
+ * // [0]=>
+ * // string(4) "val4"
+ * // [1]=>
+ * // string(4) "val3"
+ * //}
+ *
+ */
+ public function sInterStore($dstKey, $key1, $key2, $keyN = null) {}
+
+ /**
+ * Performs the difference between N sets and returns it.
+ *
+ * @param string $key1 Any number of keys corresponding to sets in redis.
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return array of strings: The difference of the first set will all the others.
+ * @link https://redis.io/commands/sdiff
+ * @example
+ *
+ * $redisCluster->del('s0', 's1', 's2');
+ *
+ * $redisCluster->sAdd('s0', '1');
+ * $redisCluster->sAdd('s0', '2');
+ * $redisCluster->sAdd('s0', '3');
+ * $redisCluster->sAdd('s0', '4');
+ *
+ * $redisCluster->sAdd('s1', '1');
+ * $redisCluster->sAdd('s2', '3');
+ *
+ * var_dump($redisCluster->sDiff('s0', 's1', 's2'));
+ *
+ * //// Output:
+ * //
+ * //array(2) {
+ * // [0]=>
+ * // string(1) "4"
+ * // [1]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sDiff($key1, $key2, $keyN = null) {}
+
+ /**
+ * Performs the same action as sDiff, but stores the result in the first key
+ *
+ * @param string $dstKey the key to store the diff into.
+ * @param string $key1 Any number of keys corresponding to sets in redis
+ * @param string $key2 ...
+ * @param string $keyN ...
+ *
+ * @return int|false The cardinality of the resulting set, or FALSE in case of a missing key.
+ * @link https://redis.io/commands/sdiffstore
+ * @example
+ *
+ * $redisCluster->del('s0', 's1', 's2');
+ *
+ * $redisCluster->sAdd('s0', '1');
+ * $redisCluster->sAdd('s0', '2');
+ * $redisCluster->sAdd('s0', '3');
+ * $redisCluster->sAdd('s0', '4');
+ *
+ * $redisCluster->sAdd('s1', '1');
+ * $redisCluster->sAdd('s2', '3');
+ *
+ * var_dump($redisCluster->sDiffStore('dst', 's0', 's1', 's2'));
+ * var_dump($redisCluster->sMembers('dst'));
+ *
+ * //// Output:
+ * //
+ * //int(2)
+ * //array(2) {
+ * // [0]=>
+ * // string(1) "4"
+ * // [1]=>
+ * // string(1) "2"
+ * //}
+ *
+ */
+ public function sDiffStore($dstKey, $key1, $key2, $keyN = null) {}
+
+ /**
+ * Returns a random element(s) from the set value at Key, without removing it.
+ *
+ * @param string $key
+ * @param int $count [optional]
+ *
+ * @return string|array value(s) from the set
+ * bool FALSE if set identified by key is empty or doesn't exist and count argument isn't passed.
+ * @link https://redis.io/commands/srandmember
+ * @example
+ *
+ * $redisCluster->sAdd('key1' , 'one');
+ * $redisCluster->sAdd('key1' , 'two');
+ * $redisCluster->sAdd('key1' , 'three'); // 'key1' => {'one', 'two', 'three'}
+ *
+ * var_dump( $redisCluster->sRandMember('key1') ); // 'key1' => {'one', 'two', 'three'}
+ *
+ * // string(5) "three"
+ *
+ * var_dump( $redisCluster->sRandMember('key1', 2) ); // 'key1' => {'one', 'two', 'three'}
+ *
+ * // array(2) {
+ * // [0]=> string(2) "one"
+ * // [1]=> string(2) "three"
+ * // }
+ *
+ */
+ public function sRandMember($key, $count = null) {}
+
+ /**
+ * Get the length of a string value.
+ *
+ * @param string $key
+ *
+ * @return int
+ * @link https://redis.io/commands/strlen
+ * @example
+ *
+ * $redisCluster->set('key', 'value');
+ * $redisCluster->strlen('key'); // 5
+ *
+ */
+ public function strlen($key) {}
+
+ /**
+ * Remove the expiration timer from a key.
+ *
+ * @param string $key
+ *
+ * @return bool TRUE if a timeout was removed, FALSE if the key didn’t exist or didn’t have an expiration timer.
+ * @link https://redis.io/commands/persist
+ * @example $redisCluster->persist('key');
+ */
+ public function persist($key) {}
+
+ /**
+ * Returns the remaining time to live of a key that has a timeout.
+ * This introspection capability allows a Redis client to check how many seconds a given key will continue to be
+ * part of the dataset. In Redis 2.6 or older the command returns -1 if the key does not exist or if the key exist
+ * but has no associated expire. Starting with Redis 2.8 the return value in case of error changed: Returns -2 if
+ * the key does not exist. Returns -1 if the key exists but has no associated expire.
+ *
+ * @param string $key
+ *
+ * @return int the time left to live in seconds.
+ * @link https://redis.io/commands/ttl
+ * @example $redisCluster->ttl('key');
+ */
+ public function ttl($key) {}
+
+ /**
+ * Returns the remaining time to live of a key that has an expire set,
+ * with the sole difference that TTL returns the amount of remaining time in seconds while PTTL returns it in
+ * milliseconds. In Redis 2.6 or older the command returns -1 if the key does not exist or if the key exist but has
+ * no associated expire. Starting with Redis 2.8 the return value in case of error changed: Returns -2 if the key
+ * does not exist. Returns -1 if the key exists but has no associated expire.
+ *
+ * @param string $key
+ *
+ * @return int the time left to live in milliseconds.
+ * @link https://redis.io/commands/pttl
+ * @example $redisCluster->pttl('key');
+ */
+ public function pttl($key) {}
+
+ /**
+ * Returns the cardinality of an ordered set.
+ *
+ * @param string $key
+ *
+ * @return int the set's cardinality
+ * @link https://redis.io/commands/zsize
+ * @example
+ *
+ * $redisCluster->zAdd('key', 0, 'val0');
+ * $redisCluster->zAdd('key', 2, 'val2');
+ * $redisCluster->zAdd('key', 10, 'val10');
+ * $redisCluster->zCard('key'); // 3
+ *
+ */
+ public function zCard($key) {}
+
+ /**
+ * Returns the number of elements of the sorted set stored at the specified key which have
+ * scores in the range [start,end]. Adding a parenthesis before start or end excludes it
+ * from the range. +inf and -inf are also valid limits.
+ *
+ * @param string $key
+ * @param string $start
+ * @param string $end
+ *
+ * @return int the size of a corresponding zRangeByScore.
+ * @link https://redis.io/commands/zcount
+ * @example
+ *
+ * $redisCluster->zAdd('key', 0, 'val0');
+ * $redisCluster->zAdd('key', 2, 'val2');
+ * $redisCluster->zAdd('key', 10, 'val10');
+ * $redisCluster->zCount('key', 0, 3); // 2, corresponding to array('val0', 'val2')
+ *
+ */
+ public function zCount($key, $start, $end) {}
+
+ /**
+ * Deletes the elements of the sorted set stored at the specified key which have scores in the range [start,end].
+ *
+ * @param string $key
+ * @param string $start double or "+inf" or "-inf" as a string
+ * @param string $end double or "+inf" or "-inf" as a string
+ *
+ * @return int The number of values deleted from the sorted set
+ * @link https://redis.io/commands/zremrangebyscore
+ * @example
+ *
+ * $redisCluster->zAdd('key', 0, 'val0');
+ * $redisCluster->zAdd('key', 2, 'val2');
+ * $redisCluster->zAdd('key', 10, 'val10');
+ * $redisCluster->zRemRangeByScore('key', '0', '3'); // 2
+ *
+ */
+ public function zRemRangeByScore($key, $start, $end) {}
+
+ /**
+ * Returns the score of a given member in the specified sorted set.
+ *
+ * @param string $key
+ * @param string $member
+ *
+ * @return float
+ * @link https://redis.io/commands/zscore
+ * @example
+ *
+ * $redisCluster->zAdd('key', 2.5, 'val2');
+ * $redisCluster->zScore('key', 'val2'); // 2.5
+ *
+ */
+ public function zScore($key, $member) {}
+
+ /**
+ * Adds the specified member with a given score to the sorted set stored at key.
+ *
+ * @param string $key Required key
+ * @param float $score1 Required score
+ * @param string $value1 Required value
+ * @param float $score2 Optional score
+ * @param string $value2 Optional value
+ * @param float $scoreN Optional score
+ * @param string $valueN Optional value
+ *
+ * @return int Number of values added
+ * @link https://redis.io/commands/zadd
+ * @example
+ *
+ * $redisCluster->zAdd('z', 1, 'v2', 2, 'v2', 3, 'v3', 4, 'v4' ); // int(3)
+ * $redisCluster->zRem('z', 'v2', 'v3'); // int(2)
+ * var_dump( $redisCluster->zRange('z', 0, -1) );
+ *
+ * //// Output:
+ * // array(1) {
+ * // [0]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function zAdd($key, $score1, $value1, $score2 = null, $value2 = null, $scoreN = null, $valueN = null) {}
+
+ /**
+ * Increments the score of a member from a sorted set by a given amount.
+ *
+ * @param string $key
+ * @param float $value (double) value that will be added to the member's score
+ * @param string $member
+ *
+ * @return float the new value
+ * @link https://redis.io/commands/zincrby
+ * @example
+ *
+ * $redisCluster->del('key');
+ * $redisCluster->zIncrBy('key', 2.5, 'member1');// key or member1 didn't exist, so member1's score is to 0 ;
+ * //before the increment and now has the value 2.5
+ * $redisCluster->zIncrBy('key', 1, 'member1'); // 3.5
+ *
+ */
+ public function zIncrBy($key, $value, $member) {}
+
+ /**
+ * Returns the length of a hash, in number of items
+ *
+ * @param string $key
+ *
+ * @return int|false the number of items in a hash, FALSE if the key doesn't exist or isn't a hash.
+ * @link https://redis.io/commands/hlen
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'key1', 'hello');
+ * $redisCluster->hSet('h', 'key2', 'plop');
+ * $redisCluster->hLen('h'); // returns 2
+ *
+ */
+ public function hLen($key) {}
+
+ /**
+ * Returns the keys in a hash, as an array of strings.
+ *
+ * @param string $key
+ *
+ * @return array An array of elements, the keys of the hash. This works like PHP's array_keys().
+ * @link https://redis.io/commands/hkeys
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'a', 'x');
+ * $redisCluster->hSet('h', 'b', 'y');
+ * $redisCluster->hSet('h', 'c', 'z');
+ * $redisCluster->hSet('h', 'd', 't');
+ * var_dump($redisCluster->hKeys('h'));
+ *
+ * //// Output:
+ * //
+ * // array(4) {
+ * // [0]=>
+ * // string(1) "a"
+ * // [1]=>
+ * // string(1) "b"
+ * // [2]=>
+ * // string(1) "c"
+ * // [3]=>
+ * // string(1) "d"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hKeys($key) {}
+
+ /**
+ * Returns the values in a hash, as an array of strings.
+ *
+ * @param string $key
+ *
+ * @return array An array of elements, the values of the hash. This works like PHP's array_values().
+ * @link https://redis.io/commands/hvals
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'a', 'x');
+ * $redisCluster->hSet('h', 'b', 'y');
+ * $redisCluster->hSet('h', 'c', 'z');
+ * $redisCluster->hSet('h', 'd', 't');
+ * var_dump($redisCluster->hVals('h'));
+ *
+ * //// Output:
+ * //
+ * // array(4) {
+ * // [0]=>
+ * // string(1) "x"
+ * // [1]=>
+ * // string(1) "y"
+ * // [2]=>
+ * // string(1) "z"
+ * // [3]=>
+ * // string(1) "t"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hVals($key) {}
+
+ /**
+ * Gets a value from the hash stored at key.
+ * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey
+ *
+ * @return string|false The value, if the command executed successfully BOOL FALSE in case of failure
+ * @link https://redis.io/commands/hget
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'a', 'x');
+ * $redisCluster->hGet('h', 'a'); // 'X'
+ *
+ */
+ public function hGet($key, $hashKey) {}
+
+ /**
+ * Returns the whole hash, as an array of strings indexed by strings.
+ *
+ * @param string $key
+ *
+ * @return array An array of elements, the contents of the hash.
+ * @link https://redis.io/commands/hgetall
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'a', 'x');
+ * $redisCluster->hSet('h', 'b', 'y');
+ * $redisCluster->hSet('h', 'c', 'z');
+ * $redisCluster->hSet('h', 'd', 't');
+ * var_dump($redisCluster->hGetAll('h'));
+ *
+ * //// Output:
+ * //
+ * // array(4) {
+ * // ["a"]=>
+ * // string(1) "x"
+ * // ["b"]=>
+ * // string(1) "y"
+ * // ["c"]=>
+ * // string(1) "z"
+ * // ["d"]=>
+ * // string(1) "t"
+ * // }
+ * // The order is random and corresponds to redis' own internal representation of the set structure.
+ *
+ */
+ public function hGetAll($key) {}
+
+ /**
+ * Verify if the specified member exists in a key.
+ *
+ * @param string $key
+ * @param string $hashKey
+ *
+ * @return bool If the member exists in the hash table, return TRUE, otherwise return FALSE.
+ * @link https://redis.io/commands/hexists
+ * @example
+ *
+ * $redisCluster->hSet('h', 'a', 'x');
+ * $redisCluster->hExists('h', 'a'); // TRUE
+ * $redisCluster->hExists('h', 'NonExistingKey'); // FALSE
+ *
+ */
+ public function hExists($key, $hashKey) {}
+
+ /**
+ * Increments the value of a member from a hash by a given amount.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param int $value (integer) value that will be added to the member's value
+ *
+ * @return int the new value
+ * @link https://redis.io/commands/hincrby
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hIncrBy('h', 'x', 2); // returns 2: h[x] = 2 now.
+ * $redisCluster->hIncrBy('h', 'x', 1); // h[x] ← 2 + 1. Returns 3
+ *
+ */
+ public function hIncrBy($key, $hashKey, $value) {}
+
+ /**
+ * Adds a value to the hash stored at key. If this value is already in the hash, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param mixed $value
+ *
+ * @return int
+ * 1 if value didn't exist and was added successfully,
+ * 0 if the value was already present and was replaced, FALSE if there was an error.
+ * @link https://redis.io/commands/hset
+ * @example
+ *
+ * $redisCluster->del('h')
+ * $redisCluster->hSet('h', 'key1', 'hello'); // 1, 'key1' => 'hello' in the hash at "h"
+ * $redisCluster->hGet('h', 'key1'); // returns "hello"
+ *
+ * $redisCluster->hSet('h', 'key1', 'plop'); // 0, value was replaced.
+ * $redisCluster->hGet('h', 'key1'); // returns "plop"
+ *
+ */
+ public function hSet($key, $hashKey, $value) {}
+
+ /**
+ * Adds a value to the hash stored at key only if this field isn't already in the hash.
+ *
+ * @param string $key
+ * @param string $hashKey
+ * @param string $value
+ *
+ * @return bool TRUE if the field was set, FALSE if it was already present.
+ * @link https://redis.io/commands/hsetnx
+ * @example
+ *
+ * $redisCluster->del('h')
+ * $redisCluster->hSetNx('h', 'key1', 'hello'); // TRUE, 'key1' => 'hello' in the hash at "h"
+ * $redisCluster->hSetNx('h', 'key1', 'world'); // FALSE, 'key1' => 'hello' in the hash at "h". No change since the
+ * field wasn't replaced.
+ *
+ */
+ public function hSetNx($key, $hashKey, $value) {}
+
+ /**
+ * Retrieve the values associated to the specified fields in the hash.
+ *
+ * @param string $key
+ * @param array $hashKeys
+ *
+ * @return array Array An array of elements, the values of the specified fields in the hash,
+ * with the hash keys as array keys.
+ * @link https://redis.io/commands/hmget
+ * @example
+ *
+ * $redisCluster->del('h');
+ * $redisCluster->hSet('h', 'field1', 'value1');
+ * $redisCluster->hSet('h', 'field2', 'value2');
+ * $redisCluster->hMGet('h', array('field1', 'field2')); // returns array('field1' => 'value1', 'field2' =>
+ * 'value2')
+ *
+ */
+ public function hMGet($key, $hashKeys) {}
+
+ /**
+ * Fills in a whole hash. Non-string values are converted to string, using the standard (string) cast.
+ * NULL values are stored as empty strings
+ *
+ * @param string $key
+ * @param array $hashKeys key → value array
+ *
+ * @return bool
+ * @link https://redis.io/commands/hmset
+ * @example
+ *
+ * $redisCluster->del('user:1');
+ * $redisCluster->hMSet('user:1', array('name' => 'Joe', 'salary' => 2000));
+ * $redisCluster->hIncrBy('user:1', 'salary', 100); // Joe earns 100 more now.
+ *
+ */
+ public function hMSet($key, $hashKeys) {}
+
+ /**
+ * Removes a values from the hash stored at key.
+ * If the hash table doesn't exist, or the key doesn't exist, FALSE is returned.
+ *
+ * @param string $key
+ * @param string $hashKey1
+ * @param string $hashKey2
+ * @param string $hashKeyN
+ *
+ * @return int Number of deleted fields
+ * @link https://redis.io/commands/hdel
+ * @example
+ *
+ * $redisCluster->hMSet('h',
+ * array(
+ * 'f1' => 'v1',
+ * 'f2' => 'v2',
+ * 'f3' => 'v3',
+ * 'f4' => 'v4',
+ * ));
+ *
+ * var_dump( $redisCluster->hDel('h', 'f1') ); // int(1)
+ * var_dump( $redisCluster->hDel('h', 'f2', 'f3') ); // int(2)
+ *
+ * var_dump( $redisCluster->hGetAll('h') );
+ *
+ * //// Output:
+ * //
+ * // array(1) {
+ * // ["f4"]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function hDel($key, $hashKey1, $hashKey2 = null, $hashKeyN = null) {}
+
+ /**
+ * Increment the float value of a hash field by the given amount
+ *
+ * @param string $key
+ * @param string $field
+ * @param float $increment
+ *
+ * @return float
+ * @link https://redis.io/commands/hincrbyfloat
+ * @example
+ *
+ * $redisCluster->hset('h', 'float', 3);
+ * $redisCluster->hset('h', 'int', 3);
+ * var_dump( $redisCluster->hIncrByFloat('h', 'float', 1.5) ); // float(4.5)
+ *
+ * var_dump( $redisCluster->hGetAll('h') );
+ *
+ * //// Output:
+ * //
+ * // array(2) {
+ * // ["float"]=>
+ * // string(3) "4.5"
+ * // ["int"]=>
+ * // string(1) "3"
+ * // }
+ *
+ */
+ public function hIncrByFloat($key, $field, $increment) {}
+
+ /**
+ * Dump a key out of a redis database, the value of which can later be passed into redis using the RESTORE command.
+ * The data that comes out of DUMP is a binary representation of the key as Redis stores it.
+ *
+ * @param string $key
+ *
+ * @return string|false The Redis encoded value of the key, or FALSE if the key doesn't exist
+ * @link https://redis.io/commands/dump
+ * @example
+ *
+ * $redisCluster->set('foo', 'bar');
+ * $val = $redisCluster->dump('foo'); // $val will be the Redis encoded key value
+ *
+ */
+ public function dump($key) {}
+
+ /**
+ * Returns the rank of a given member in the specified sorted set, starting at 0 for the item
+ * with the smallest score. zRevRank starts at 0 for the item with the largest score.
+ *
+ * @param string $key
+ * @param string $member
+ *
+ * @return int the item's score.
+ * @link https://redis.io/commands/zrank
+ * @example
+ *
+ * $redisCluster->del('z');
+ * $redisCluster->zAdd('key', 1, 'one');
+ * $redisCluster->zAdd('key', 2, 'two');
+ * $redisCluster->zRank('key', 'one'); // 0
+ * $redisCluster->zRank('key', 'two'); // 1
+ * $redisCluster->zRevRank('key', 'one'); // 1
+ * $redisCluster->zRevRank('key', 'two'); // 0
+ *
+ */
+ public function zRank($key, $member) {}
+
+ /**
+ * @see zRank()
+ *
+ * @param string $key
+ * @param string $member
+ *
+ * @return int the item's score
+ * @link https://redis.io/commands/zrevrank
+ */
+ public function zRevRank($key, $member) {}
+
+ /**
+ * Increment the number stored at key by one.
+ *
+ * @param string $key
+ *
+ * @return int the new value
+ * @link https://redis.io/commands/incr
+ * @example
+ *
+ * $redisCluster->incr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value 1
+ * $redisCluster->incr('key1'); // 2
+ * $redisCluster->incr('key1'); // 3
+ * $redisCluster->incr('key1'); // 4
+ *
+ */
+ public function incr($key) {}
+
+ /**
+ * Decrement the number stored at key by one.
+ *
+ * @param string $key
+ *
+ * @return int the new value
+ * @link https://redis.io/commands/decr
+ * @example
+ *
+ * $redisCluster->decr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value -1
+ * $redisCluster->decr('key1'); // -2
+ * $redisCluster->decr('key1'); // -3
+ *
+ */
+ public function decr($key) {}
+
+ /**
+ * Increment the number stored at key by one. If the second argument is filled, it will be used as the integer
+ * value of the increment.
+ *
+ * @param string $key key
+ * @param int $value value that will be added to key (only for incrBy)
+ *
+ * @return int the new value
+ * @link https://redis.io/commands/incrby
+ * @example
+ *
+ * $redisCluster->incr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value 1
+ * $redisCluster->incr('key1'); // 2
+ * $redisCluster->incr('key1'); // 3
+ * $redisCluster->incr('key1'); // 4
+ * $redisCluster->incrBy('key1', 10); // 14
+ *
+ */
+ public function incrBy($key, $value) {}
+
+ /**
+ * Decrement the number stored at key by one. If the second argument is filled, it will be used as the integer
+ * value of the decrement.
+ *
+ * @param string $key
+ * @param int $value that will be subtracted to key (only for decrBy)
+ *
+ * @return int the new value
+ * @link https://redis.io/commands/decrby
+ * @example
+ *
+ * $redisCluster->decr('key1'); // key1 didn't exists, set to 0 before the increment and now has the value -1
+ * $redisCluster->decr('key1'); // -2
+ * $redisCluster->decr('key1'); // -3
+ * $redisCluster->decrBy('key1', 10); // -13
+ *
+ */
+ public function decrBy($key, $value) {}
+
+ /**
+ * Increment the float value of a key by the given amount
+ *
+ * @param string $key
+ * @param float $increment
+ *
+ * @return float
+ * @link https://redis.io/commands/incrbyfloat
+ * @example
+ *
+ * $redisCluster->set('x', 3);
+ * var_dump( $redisCluster->incrByFloat('x', 1.5) ); // float(4.5)
+ *
+ * var_dump( $redisCluster->get('x') ); // string(3) "4.5"
+ *
+ */
+ public function incrByFloat($key, $increment) {}
+
+ /**
+ * Sets an expiration date (a timeout) on an item.
+ *
+ * @param string $key The key that will disappear.
+ * @param int $ttl The key's remaining Time To Live, in seconds.
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/expire
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $redisCluster->expire('x', 3); // x will disappear in 3 seconds.
+ * sleep(5); // wait 5 seconds
+ * $redisCluster->get('x'); // will return `FALSE`, as 'x' has expired.
+ *
+ */
+ public function expire($key, $ttl) {}
+
+ /**
+ * Sets an expiration date (a timeout in milliseconds) on an item.
+ *
+ * @param string $key The key that will disappear.
+ * @param int $ttl The key's remaining Time To Live, in milliseconds.
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/pexpire
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $redisCluster->pExpire('x', 11500); // x will disappear in 11500 milliseconds.
+ * $redisCluster->ttl('x'); // 12
+ * $redisCluster->pttl('x'); // 11500
+ *
+ */
+ public function pExpire($key, $ttl) {}
+
+ /**
+ * Sets an expiration date (a timestamp) on an item.
+ *
+ * @param string $key The key that will disappear.
+ * @param int $timestamp Unix timestamp. The key's date of death, in seconds from Epoch time.
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/expireat
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $now = time(); // current timestamp
+ * $redisCluster->expireAt('x', $now + 3); // x will disappear in 3 seconds.
+ * sleep(5); // wait 5 seconds
+ * $redisCluster->get('x'); // will return `FALSE`, as 'x' has expired.
+ *
+ */
+ public function expireAt($key, $timestamp) {}
+
+ /**
+ * Sets an expiration date (a timestamp) on an item. Requires a timestamp in milliseconds
+ *
+ * @param string $key The key that will disappear.
+ * @param int $timestamp Unix timestamp. The key's date of death, in seconds from Epoch time.
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/pexpireat
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $redisCluster->pExpireAt('x', 1555555555005);
+ * $redisCluster->ttl('x'); // 218270121
+ * $redisCluster->pttl('x'); // 218270120575
+ *
+ */
+ public function pExpireAt($key, $timestamp) {}
+
+ /**
+ * Append specified string to the string stored in specified key.
+ *
+ * @param string $key
+ * @param string $value
+ *
+ * @return int Size of the value after the append
+ * @link https://redis.io/commands/append
+ * @example
+ *
+ * $redisCluster->set('key', 'value1');
+ * $redisCluster->append('key', 'value2'); // 12
+ * $redisCluster->get('key'); // 'value1value2'
+ *
+ */
+ public function append($key, $value) {}
+
+ /**
+ * Return a single bit out of a larger string
+ *
+ * @param string $key
+ * @param int $offset
+ *
+ * @return int the bit value (0 or 1)
+ * @link https://redis.io/commands/getbit
+ * @example
+ *
+ * $redisCluster->set('key', "\x7f"); // this is 0111 1111
+ * $redisCluster->getBit('key', 0); // 0
+ * $redisCluster->getBit('key', 1); // 1
+ *
+ */
+ public function getBit($key, $offset) {}
+
+ /**
+ * Changes a single bit of a string.
+ *
+ * @param string $key
+ * @param int $offset
+ * @param bool|int $value bool or int (1 or 0)
+ *
+ * @return int 0 or 1, the value of the bit before it was set.
+ * @link https://redis.io/commands/setbit
+ * @example
+ *
+ * $redisCluster->set('key', "*"); // ord("*") = 42 = 0x2f = "0010 1010"
+ * $redisCluster->setBit('key', 5, 1); // returns 0
+ * $redisCluster->setBit('key', 7, 1); // returns 0
+ * $redisCluster->get('key'); // chr(0x2f) = "/" = b("0010 1111")
+ *
+ */
+ public function setBit($key, $offset, $value) {}
+
+ /**
+ * Bitwise operation on multiple keys.
+ *
+ * @param string $operation either "AND", "OR", "NOT", "XOR"
+ * @param string $retKey return key
+ * @param string $key1
+ * @param string $key2
+ * @param string $key3
+ *
+ * @return int The size of the string stored in the destination key.
+ * @link https://redis.io/commands/bitop
+ * @example
+ *
+ * $redisCluster->set('bit1', '1'); // 11 0001
+ * $redisCluster->set('bit2', '2'); // 11 0010
+ *
+ * $redisCluster->bitOp('AND', 'bit', 'bit1', 'bit2'); // bit = 110000
+ * $redisCluster->bitOp('OR', 'bit', 'bit1', 'bit2'); // bit = 110011
+ * $redisCluster->bitOp('NOT', 'bit', 'bit1', 'bit2'); // bit = 110011
+ * $redisCluster->bitOp('XOR', 'bit', 'bit1', 'bit2'); // bit = 11
+ *
+ */
+ public function bitOp($operation, $retKey, $key1, $key2, $key3 = null) {}
+
+ /**
+ * Return the position of the first bit set to 1 or 0 in a string. The position is returned, thinking of the
+ * string as an array of bits from left to right, where the first byte's most significant bit is at position 0,
+ * the second byte's most significant bit is at position 8, and so forth.
+ *
+ * @param string $key
+ * @param int $bit
+ * @param int $start
+ * @param int $end
+ *
+ * @return int The command returns the position of the first bit set to 1 or 0 according to the request.
+ * If we look for set bits (the bit argument is 1) and the string is empty or composed of just
+ * zero bytes, -1 is returned. If we look for clear bits (the bit argument is 0) and the string
+ * only contains bit set to 1, the function returns the first bit not part of the string on the
+ * right. So if the string is three bytes set to the value 0xff the command BITPOS key 0 will
+ * return 24, since up to bit 23 all the bits are 1. Basically, the function considers the right
+ * of the string as padded with zeros if you look for clear bits and specify no range or the
+ * start argument only. However, this behavior changes if you are looking for clear bits and
+ * specify a range with both start and end. If no clear bit is found in the specified range, the
+ * function returns -1 as the user specified a clear range and there are no 0 bits in that range.
+ * @link https://redis.io/commands/bitpos
+ * @example
+ *
+ * $redisCluster->set('key', '\xff\xff');
+ * $redisCluster->bitpos('key', 1); // int(0)
+ * $redisCluster->bitpos('key', 1, 1); // int(8)
+ * $redisCluster->bitpos('key', 1, 3); // int(-1)
+ * $redisCluster->bitpos('key', 0); // int(16)
+ * $redisCluster->bitpos('key', 0, 1); // int(16)
+ * $redisCluster->bitpos('key', 0, 1, 5); // int(-1)
+ *
+ */
+ public function bitpos($key, $bit, $start = 0, $end = null) {}
+
+ /**
+ * Count bits in a string.
+ *
+ * @param string $key
+ *
+ * @return int The number of bits set to 1 in the value behind the input key.
+ * @link https://redis.io/commands/bitcount
+ * @example
+ *
+ * $redisCluster->set('bit', '345'); // // 11 0011 0011 0100 0011 0101
+ * var_dump( $redisCluster->bitCount('bit', 0, 0) ); // int(4)
+ * var_dump( $redisCluster->bitCount('bit', 1, 1) ); // int(3)
+ * var_dump( $redisCluster->bitCount('bit', 2, 2) ); // int(4)
+ * var_dump( $redisCluster->bitCount('bit', 0, 2) ); // int(11)
+ *
+ */
+ public function bitCount($key) {}
+
+ /**
+ * @see lIndex()
+ *
+ * @param string $key
+ * @param int $index
+ *
+ * @link https://redis.io/commands/lindex
+ */
+ public function lGet($key, $index) {}
+
+ /**
+ * Return a substring of a larger string
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @return string the substring
+ * @link https://redis.io/commands/getrange
+ * @example
+ *
+ * $redisCluster->set('key', 'string value');
+ * $redisCluster->getRange('key', 0, 5); // 'string'
+ * $redisCluster->getRange('key', -5, -1); // 'value'
+ *
+ */
+ public function getRange($key, $start, $end) {}
+
+ /**
+ * Trims an existing list so that it will contain only a specified range of elements.
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $stop
+ *
+ * @return array|false Bool return FALSE if the key identify a non-list value.
+ * @link https://redis.io/commands/ltrim
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C');
+ * $redisCluster->lRange('key1', 0, -1); // array('A', 'B', 'C')
+ * $redisCluster->lTrim('key1', 0, 1);
+ * $redisCluster->lRange('key1', 0, -1); // array('A', 'B')
+ *
+ */
+ public function lTrim($key, $start, $stop) {}
+
+ /**
+ * Returns the specified elements of the list stored at the specified key in
+ * the range [start, end]. start and stop are interpretated as indices: 0 the first element,
+ * 1 the second ... -1 the last element, -2 the penultimate ...
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @return array containing the values in specified range.
+ * @link https://redis.io/commands/lrange
+ * @example
+ *
+ * $redisCluster->rPush('key1', 'A');
+ * $redisCluster->rPush('key1', 'B');
+ * $redisCluster->rPush('key1', 'C');
+ * $redisCluster->lRange('key1', 0, -1); // array('A', 'B', 'C')
+ *
+ */
+ public function lRange($key, $start, $end) {}
+
+ /**
+ * Deletes the elements of the sorted set stored at the specified key which have rank in the range [start,end].
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ *
+ * @return int The number of values deleted from the sorted set
+ * @link https://redis.io/commands/zremrangebyrank
+ * @example
+ *
+ * $redisCluster->zAdd('key', 1, 'one');
+ * $redisCluster->zAdd('key', 2, 'two');
+ * $redisCluster->zAdd('key', 3, 'three');
+ * $redisCluster->zRemRangeByRank('key', 0, 1); // 2
+ * $redisCluster->zRange('key', 0, -1, true); // array('three' => 3)
+ *
+ */
+ public function zRemRangeByRank($key, $start, $end) {}
+
+ /**
+ * Publish messages to channels. Warning: this function will probably change in the future.
+ *
+ * @param string $channel a channel to publish to
+ * @param string $message string
+ *
+ * @link https://redis.io/commands/publish
+ * @return int Number of clients that received the message
+ * @example $redisCluster->publish('chan-1', 'hello, world!'); // send message.
+ */
+ public function publish($channel, $message) {}
+
+ /**
+ * Renames a key.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/rename
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $redisCluster->rename('x', 'y');
+ * $redisCluster->get('y'); // → 42
+ * $redisCluster->get('x'); // → `FALSE`
+ *
+ */
+ public function rename($srcKey, $dstKey) {}
+
+ /**
+ * Renames a key.
+ *
+ * Same as rename, but will not replace a key if the destination already exists.
+ * This is the same behaviour as setNx.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/renamenx
+ * @example
+ *
+ * $redisCluster->set('x', '42');
+ * $redisCluster->renameNx('x', 'y');
+ * $redisCluster->get('y'); // → 42
+ * $redisCluster->get('x'); // → `FALSE`
+ *
+ */
+ public function renameNx($srcKey, $dstKey) {}
+
+ /**
+ * When called with a single key, returns the approximated cardinality computed by the HyperLogLog data
+ * structure stored at the specified variable, which is 0 if the variable does not exist.
+ *
+ * @param string|array $key
+ *
+ * @return int
+ * @link https://redis.io/commands/pfcount
+ * @example
+ *
+ * $redisCluster->pfAdd('key1', array('elem1', 'elem2'));
+ * $redisCluster->pfAdd('key2', array('elem3', 'elem2'));
+ * $redisCluster->pfCount('key1'); // int(2)
+ * $redisCluster->pfCount(array('key1', 'key2')); // int(3)
+ *
+ */
+ public function pfCount($key) {}
+
+ /**
+ * Adds all the element arguments to the HyperLogLog data structure stored at the key.
+ *
+ * @param string $key
+ * @param array $elements
+ *
+ * @return bool
+ * @link https://redis.io/commands/pfadd
+ * @example $redisCluster->pfAdd('key', array('elem1', 'elem2'))
+ */
+ public function pfAdd($key, array $elements) {}
+
+ /**
+ * Merge multiple HyperLogLog values into an unique value that will approximate the cardinality
+ * of the union of the observed Sets of the source HyperLogLog structures.
+ *
+ * @param string $destKey
+ * @param array $sourceKeys
+ *
+ * @return bool
+ * @link https://redis.io/commands/pfmerge
+ * @example
+ *
+ * $redisCluster->pfAdd('key1', array('elem1', 'elem2'));
+ * $redisCluster->pfAdd('key2', array('elem3', 'elem2'));
+ * $redisCluster->pfMerge('key3', array('key1', 'key2'));
+ * $redisCluster->pfCount('key3'); // int(3)
+ *
+ */
+ public function pfMerge($destKey, array $sourceKeys) {}
+
+ /**
+ * Changes a substring of a larger string.
+ *
+ * @param string $key
+ * @param int $offset
+ * @param string $value
+ *
+ * @return string the length of the string after it was modified.
+ * @link https://redis.io/commands/setrange
+ * @example
+ *
+ * $redisCluster->set('key', 'Hello world');
+ * $redisCluster->setRange('key', 6, "redis"); // returns 11
+ * $redisCluster->get('key'); // "Hello redis"
+ *
+ */
+ public function setRange($key, $offset, $value) {}
+
+ /**
+ * Restore a key from the result of a DUMP operation.
+ *
+ * @param string $key The key name
+ * @param int $ttl How long the key should live (if zero, no expire will be set on the key)
+ * @param string $value (binary). The Redis encoded key value (from DUMP)
+ *
+ * @return bool
+ * @link https://redis.io/commands/restore
+ * @example
+ *
+ * $redisCluster->set('foo', 'bar');
+ * $val = $redisCluster->dump('foo');
+ * $redisCluster->restore('bar', 0, $val); // The key 'bar', will now be equal to the key 'foo'
+ *
+ */
+ public function restore($key, $ttl, $value) {}
+
+ /**
+ * Moves the specified member from the set at srcKey to the set at dstKey.
+ *
+ * @param string $srcKey
+ * @param string $dstKey
+ * @param string $member
+ *
+ * @return bool If the operation is successful, return TRUE.
+ * If the srcKey and/or dstKey didn't exist, and/or the member didn't exist in srcKey, FALSE is returned.
+ * @link https://redis.io/commands/smove
+ * @example
+ *
+ * $redisCluster->sAdd('key1' , 'set11');
+ * $redisCluster->sAdd('key1' , 'set12');
+ * $redisCluster->sAdd('key1' , 'set13'); // 'key1' => {'set11', 'set12', 'set13'}
+ * $redisCluster->sAdd('key2' , 'set21');
+ * $redisCluster->sAdd('key2' , 'set22'); // 'key2' => {'set21', 'set22'}
+ * $redisCluster->sMove('key1', 'key2', 'set13'); // 'key1' => {'set11', 'set12'}
+ * // 'key2' => {'set21', 'set22', 'set13'}
+ *
+ */
+ public function sMove($srcKey, $dstKey, $member) {}
+
+ /**
+ * Returns a range of elements from the ordered set stored at the specified key,
+ * with values in the range [start, end]. start and stop are interpreted as zero-based indices:
+ * 0 the first element,
+ * 1 the second ...
+ * -1 the last element,
+ * -2 the penultimate ...
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ * @param bool $withscores
+ *
+ * @return array Array containing the values in specified range.
+ * @link https://redis.io/commands/zrange
+ * @example
+ *
+ * $redisCluster->zAdd('key1', 0, 'val0');
+ * $redisCluster->zAdd('key1', 2, 'val2');
+ * $redisCluster->zAdd('key1', 10, 'val10');
+ * $redisCluster->zRange('key1', 0, -1); // array('val0', 'val2', 'val10')
+ * // with scores
+ * $redisCluster->zRange('key1', 0, -1, true); // array('val0' => 0, 'val2' => 2, 'val10' => 10)
+ *
+ */
+ public function zRange($key, $start, $end, $withscores = null) {}
+
+ /**
+ * Returns the elements of the sorted set stored at the specified key in the range [start, end]
+ * in reverse order. start and stop are interpretated as zero-based indices:
+ * 0 the first element,
+ * 1 the second ...
+ * -1 the last element,
+ * -2 the penultimate ...
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ * @param bool $withscore
+ *
+ * @return array Array containing the values in specified range.
+ * @link https://redis.io/commands/zrevrange
+ * @example
+ *
+ * $redisCluster->zAdd('key', 0, 'val0');
+ * $redisCluster->zAdd('key', 2, 'val2');
+ * $redisCluster->zAdd('key', 10, 'val10');
+ * $redisCluster->zRevRange('key', 0, -1); // array('val10', 'val2', 'val0')
+ *
+ * // with scores
+ * $redisCluster->zRevRange('key', 0, -1, true); // array('val10' => 10, 'val2' => 2, 'val0' => 0)
+ *
+ */
+ public function zRevRange($key, $start, $end, $withscore = null) {}
+
+ /**
+ * Returns the elements of the sorted set stored at the specified key which have scores in the
+ * range [start,end]. Adding a parenthesis before start or end excludes it from the range.
+ * +inf and -inf are also valid limits.
+ *
+ * zRevRangeByScore returns the same items in reverse order, when the start and end parameters are swapped.
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ * @param array $options Two options are available:
+ * - withscores => TRUE,
+ * - and limit => array($offset, $count)
+ *
+ * @return array Array containing the values in specified range.
+ * @link https://redis.io/commands/zrangebyscore
+ * @example
+ *
+ * $redisCluster->zAdd('key', 0, 'val0');
+ * $redisCluster->zAdd('key', 2, 'val2');
+ * $redisCluster->zAdd('key', 10, 'val10');
+ * $redisCluster->zRangeByScore('key', 0, 3);
+ * // array('val0', 'val2')
+ * $redisCluster->zRangeByScore('key', 0, 3, array('withscores' => TRUE);
+ * // array('val0' => 0, 'val2' => 2)
+ * $redisCluster->zRangeByScore('key', 0, 3, array('limit' => array(1, 1));
+ * // array('val2' => 2)
+ * $redisCluster->zRangeByScore('key', 0, 3, array('limit' => array(1, 1));
+ * // array('val2')
+ * $redisCluster->zRangeByScore('key', 0, 3, array('withscores' => TRUE, 'limit' => array(1, 1));
+ * // array('val2'=> 2)
+ *
+ */
+ public function zRangeByScore($key, $start, $end, array $options = []) {}
+
+ /**
+ * @see zRangeByScore()
+ *
+ * @param string $key
+ * @param int $start
+ * @param int $end
+ * @param array $options
+ *
+ * @return array
+ */
+ public function zRevRangeByScore($key, $start, $end, array $options = []) {}
+
+ /**
+ * Returns a range of members in a sorted set, by lexicographical range
+ *
+ * @param string $key The ZSET you wish to run against.
+ * @param int $min The minimum alphanumeric value you wish to get.
+ * @param int $max The maximum alphanumeric value you wish to get.
+ * @param int $offset Optional argument if you wish to start somewhere other than the first element.
+ * @param int $limit Optional argument if you wish to limit the number of elements returned.
+ *
+ * @return array Array containing the values in the specified range.
+ * @link https://redis.io/commands/zrangebylex
+ * @example
+ *
+ * foreach (array('a', 'b', 'c', 'd', 'e', 'f', 'g') as $k => $char) {
+ * $redisCluster->zAdd('key', $k, $char);
+ * }
+ *
+ * $redisCluster->zRangeByLex('key', '-', '[c'); // array('a', 'b', 'c')
+ * $redisCluster->zRangeByLex('key', '-', '(c'); // array('a', 'b')
+ * $redisCluster->zRevRangeByLex('key', '(c','-'); // array('b', 'a')
+ *
+ */
+ public function zRangeByLex($key, $min, $max, $offset = null, $limit = null) {}
+
+ /**
+ * @see zRangeByLex()
+ *
+ * @param string $key
+ * @param int $min
+ * @param int $max
+ * @param int $offset
+ * @param int $limit
+ *
+ * @return array
+ * @link https://redis.io/commands/zrevrangebylex
+ */
+ public function zRevRangeByLex($key, $min, $max, $offset = null, $limit = null) {}
+
+ /**
+ * Count the number of members in a sorted set between a given lexicographical range.
+ *
+ * @param string $key
+ * @param int $min
+ * @param int $max
+ *
+ * @return int The number of elements in the specified score range.
+ * @link https://redis.io/commands/zlexcount
+ * @example
+ *
+ * foreach (array('a', 'b', 'c', 'd', 'e', 'f', 'g') as $k => $char) {
+ * $redisCluster->zAdd('key', $k, $char);
+ * }
+ * $redisCluster->zLexCount('key', '[b', '[f'); // 5
+ *
+ */
+ public function zLexCount($key, $min, $max) {}
+
+ /**
+ * Remove all members in a sorted set between the given lexicographical range.
+ *
+ * @param string $key The ZSET you wish to run against.
+ * @param string $min The minimum alphanumeric value you wish to get.
+ * @param string $max The maximum alphanumeric value you wish to get.
+ *
+ * @return int|false the number of elements removed.
+ * @link https://redis.io/commands/zremrangebylex
+ * @example
+ *
+ * foreach (array('a', 'b', 'c', 'd', 'e', 'f', 'g') as $k => $char) {
+ * $redisCluster->zAdd('key', $k, $char);
+ * }
+ * $redisCluster->zRemRangeByLex('key', '(b','[d'); // 2 , remove element 'c' and 'd'
+ * $redisCluster->zRange('key',0,-1);// array('a','b','e','f','g')
+ *
+ */
+ public function zRemRangeByLex(string $key, string $min, string $max) {}
+
+ /**
+ * Add multiple sorted sets and store the resulting sorted set in a new key
+ *
+ * @param string $Output
+ * @param array $ZSetKeys
+ * @param null|array $Weights
+ * @param string $aggregateFunction Either "SUM", "MIN", or "MAX": defines the behaviour to use on
+ * duplicate entries during the zUnion.
+ *
+ * @return int The number of values in the new sorted set.
+ * @link https://redis.io/commands/zunionstore
+ * @example
+ *
+ * $redisCluster->del('k1');
+ * $redisCluster->del('k2');
+ * $redisCluster->del('k3');
+ * $redisCluster->del('ko1');
+ * $redisCluster->del('ko2');
+ * $redisCluster->del('ko3');
+ *
+ * $redisCluster->zAdd('k1', 0, 'val0');
+ * $redisCluster->zAdd('k1', 1, 'val1');
+ *
+ * $redisCluster->zAdd('k2', 2, 'val2');
+ * $redisCluster->zAdd('k2', 3, 'val3');
+ *
+ * $redisCluster->zUnionStore('ko1', array('k1', 'k2')); // 4, 'ko1' => array('val0', 'val1', 'val2', 'val3')
+ *
+ * // Weighted zUnionStore
+ * $redisCluster->zUnionStore('ko2', array('k1', 'k2'), array(1, 1)); // 4, 'ko2' => array('val0', 'val1', 'val2','val3')
+ * $redisCluster->zUnionStore('ko3', array('k1', 'k2'), array(5, 1)); // 4, 'ko3' => array('val0', 'val2', 'val3','val1')
+ *
+ */
+ public function zUnionStore($Output, $ZSetKeys, ?array $Weights = null, $aggregateFunction = 'SUM') {}
+
+ /**
+ * Intersect multiple sorted sets and store the resulting sorted set in a new key
+ *
+ * @param string $Output
+ * @param array $ZSetKeys
+ * @param null|array $Weights
+ * @param string $aggregateFunction Either "SUM", "MIN", or "MAX":
+ * defines the behaviour to use on duplicate entries during the zInterStore.
+ *
+ * @return int The number of values in the new sorted set.
+ * @link https://redis.io/commands/zinterstore
+ * @example
+ *
+ * $redisCluster->del('k1');
+ * $redisCluster->del('k2');
+ * $redisCluster->del('k3');
+ *
+ * $redisCluster->del('ko1');
+ * $redisCluster->del('ko2');
+ * $redisCluster->del('ko3');
+ * $redisCluster->del('ko4');
+ *
+ * $redisCluster->zAdd('k1', 0, 'val0');
+ * $redisCluster->zAdd('k1', 1, 'val1');
+ * $redisCluster->zAdd('k1', 3, 'val3');
+ *
+ * $redisCluster->zAdd('k2', 2, 'val1');
+ * $redisCluster->zAdd('k2', 3, 'val3');
+ *
+ * $redisCluster->zInterStore('ko1', array('k1', 'k2')); // 2, 'ko1' => array('val1', 'val3')
+ * $redisCluster->zInterStore('ko2', array('k1', 'k2'), array(1, 1)); // 2, 'ko2' => array('val1', 'val3')
+ *
+ * // Weighted zInterStore
+ * $redisCluster->zInterStore('ko3', array('k1', 'k2'), array(1, 5), 'min'); // 2, 'ko3' => array('val1', 'val3')
+ * $redisCluster->zInterStore('ko4', array('k1', 'k2'), array(1, 5), 'max'); // 2, 'ko4' => array('val3', 'val1')
+ *
+ */
+ public function zInterStore($Output, $ZSetKeys, array $Weights = null, $aggregateFunction = 'SUM') {}
+
+ /**
+ * Deletes a specified member from the ordered set.
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string $memberN
+ *
+ * @return int Number of deleted values
+ * @link https://redis.io/commands/zrem
+ * @example
+ *
+ * $redisCluster->zAdd('z', 1, 'v1', 2, 'v2', 3, 'v3', 4, 'v4' ); // int(2)
+ * $redisCluster->zRem('z', 'v2', 'v3'); // int(2)
+ * var_dump( $redisCluster->zRange('z', 0, -1) );
+ * //// Output:
+ * //
+ * // array(2) {
+ * // [0]=> string(2) "v1"
+ * // [1]=> string(2) "v4"
+ * // }
+ *
+ */
+ public function zRem($key, $member1, $member2 = null, $memberN = null) {}
+
+ /**
+ * Sort
+ *
+ * @param string $key
+ * @param array $option array(key => value, ...) - optional, with the following keys and values:
+ * - 'by' => 'some_pattern_*',
+ * - 'limit' => array(0, 1),
+ * - 'get' => 'some_other_pattern_*' or an array of patterns,
+ * - 'sort' => 'asc' or 'desc',
+ * - 'alpha' => TRUE,
+ * - 'store' => 'external-key'
+ *
+ * @return array
+ * An array of values, or a number corresponding to the number of elements stored if that was used.
+ * @link https://redis.io/commands/sort
+ * @example
+ *
+ * $redisCluster->del('s');
+ * $redisCluster->sadd('s', 5);
+ * $redisCluster->sadd('s', 4);
+ * $redisCluster->sadd('s', 2);
+ * $redisCluster->sadd('s', 1);
+ * $redisCluster->sadd('s', 3);
+ *
+ * var_dump($redisCluster->sort('s')); // 1,2,3,4,5
+ * var_dump($redisCluster->sort('s', array('sort' => 'desc'))); // 5,4,3,2,1
+ * var_dump($redisCluster->sort('s', array('sort' => 'desc', 'store' => 'out'))); // (int)5
+ *
+ */
+ public function sort($key, $option = null) {}
+
+ /**
+ * Describes the object pointed to by a key.
+ * The information to retrieve (string) and the key (string).
+ * Info can be one of the following:
+ * - "encoding"
+ * - "refcount"
+ * - "idletime"
+ *
+ * @param string $string
+ * @param string $key
+ *
+ * @return string|false for "encoding", int for "refcount" and "idletime", FALSE if the key doesn't exist.
+ * @link https://redis.io/commands/object
+ * @example
+ *
+ * $redisCluster->object("encoding", "l"); // → ziplist
+ * $redisCluster->object("refcount", "l"); // → 1
+ * $redisCluster->object("idletime", "l"); // → 400 (in seconds, with a precision of 10 seconds).
+ *
+ */
+ public function object($string = '', $key = '') {}
+
+ /**
+ * Subscribe to channels. Warning: this function will probably change in the future.
+ *
+ * @param array $channels an array of channels to subscribe to
+ * @param string|array $callback either a string or an array($instance, 'method_name').
+ * The callback function receives 3 parameters: the redis instance, the channel
+ * name, and the message.
+ *
+ * @return mixed Any non-null return value in the callback will be returned to the caller.
+ * @link https://redis.io/commands/subscribe
+ * @example
+ *
+ * function f($redisCluster, $chan, $msg) {
+ * switch($chan) {
+ * case 'chan-1':
+ * ...
+ * break;
+ *
+ * case 'chan-2':
+ * ...
+ * break;
+ *
+ * case 'chan-2':
+ * ...
+ * break;
+ * }
+ * }
+ *
+ * $redisCluster->subscribe(array('chan-1', 'chan-2', 'chan-3'), 'f'); // subscribe to 3 chans
+ *
+ */
+ public function subscribe($channels, $callback) {}
+
+ /**
+ * Subscribe to channels by pattern
+ *
+ * @param array $patterns The number of elements removed from the set.
+ * @param string|array $callback Either a string or an array with an object and method.
+ * The callback will get four arguments ($redis, $pattern, $channel, $message)
+ *
+ * @return mixed Any non-null return value in the callback will be returned to the caller.
+ *
+ * @link https://redis.io/commands/psubscribe
+ * @example
+ *
+ * function psubscribe($redisCluster, $pattern, $chan, $msg) {
+ * echo "Pattern: $pattern\n";
+ * echo "Channel: $chan\n";
+ * echo "Payload: $msg\n";
+ * }
+ *
+ */
+ public function psubscribe($patterns, $callback) {}
+
+ /**
+ * Unsubscribes the client from the given channels, or from all of them if none is given.
+ *
+ * @param $channels
+ * @param $callback
+ */
+ public function unSubscribe($channels, $callback) {}
+
+ /**
+ * Unsubscribes the client from the given patterns, or from all of them if none is given.
+ *
+ * @param $channels
+ * @param $callback
+ */
+ public function punSubscribe($channels, $callback) {}
+
+ /**
+ * Evaluate a LUA script serverside, from the SHA1 hash of the script instead of the script itself.
+ * In order to run this command Redis will have to have already loaded the script, either by running it or via
+ * the SCRIPT LOAD command.
+ *
+ * @param string $scriptSha
+ * @param array $args
+ * @param int $numKeys
+ *
+ * @return mixed @see eval()
+ * @see eval()
+ * @link https://redis.io/commands/evalsha
+ * @example
+ *
+ * $script = 'return 1';
+ * $sha = $redisCluster->script('load', $script);
+ * $redisCluster->evalSha($sha); // Returns 1
+ *
+ */
+ public function evalSha($scriptSha, $args = [], $numKeys = 0) {}
+
+ /**
+ * Scan the keyspace for keys.
+ *
+ * @param int &$iterator Iterator, initialized to NULL.
+ * @param string|array $node Node identified by key or host/port array
+ * @param string $pattern Pattern to match.
+ * @param int $count Count of keys per iteration (only a suggestion to Redis).
+ *
+ * @return array|false This function will return an array of keys or FALSE if there are no more keys.
+ * @link https://redis.io/commands/scan
+ * @example
+ *
+ * $iterator = null;
+ * while($keys = $redisCluster->scan($iterator)) {
+ * foreach($keys as $key) {
+ * echo $key . PHP_EOL;
+ * }
+ * }
+ *
+ */
+ public function scan(&$iterator, $node, $pattern = null, $count = 0) {}
+
+ /**
+ * Scan a set for members.
+ *
+ * @param string $key The set to search.
+ * @param int &$iterator LONG (reference) to the iterator as we go.
+ * @param null $pattern String, optional pattern to match against.
+ * @param int $count How many members to return at a time (Redis might return a different amount).
+ *
+ * @return array|false PHPRedis will return an array of keys or FALSE when we're done iterating.
+ * @link https://redis.io/commands/sscan
+ * @example
+ *
+ * $iterator = null;
+ * while ($members = $redisCluster->sScan('set', $iterator)) {
+ * foreach ($members as $member) {
+ * echo $member . PHP_EOL;
+ * }
+ * }
+ *
+ */
+ public function sScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Scan a sorted set for members, with optional pattern and count.
+ *
+ * @param string $key String, the set to scan.
+ * @param int &$iterator Long (reference), initialized to NULL.
+ * @param string $pattern String (optional), the pattern to match.
+ * @param int $count How many keys to return per iteration (Redis might return a different number).
+ *
+ * @return array|false PHPRedis will return matching keys from Redis, or FALSE when iteration is complete.
+ * @link https://redis.io/commands/zscan
+ * @example
+ *
+ * $iterator = null;
+ * while ($members = $redis-zscan('zset', $iterator)) {
+ * foreach ($members as $member => $score) {
+ * echo $member . ' => ' . $score . PHP_EOL;
+ * }
+ * }
+ *
+ */
+ public function zScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Scan a HASH value for members, with an optional pattern and count.
+ *
+ * @param string $key
+ * @param int &$iterator
+ * @param string $pattern Optional pattern to match against.
+ * @param int $count How many keys to return in a go (only a sugestion to Redis).
+ *
+ * @return array An array of members that match our pattern.
+ * @link https://redis.io/commands/hscan
+ * @example
+ *
+ * $iterator = null;
+ * while($elements = $redisCluster->hscan('hash', $iterator)) {
+ * foreach($elements as $key => $value) {
+ * echo $key . ' => ' . $value . PHP_EOL;
+ * }
+ * }
+ *
+ */
+ public function hScan($key, &$iterator, $pattern = null, $count = 0) {}
+
+ /**
+ * Detect whether we're in ATOMIC/MULTI/PIPELINE mode.
+ *
+ * @return int Either RedisCluster::ATOMIC, RedisCluster::MULTI or RedisCluster::PIPELINE
+ * @example $redisCluster->getMode();
+ */
+ public function getMode() {}
+
+ /**
+ * The last error message (if any)
+ *
+ * @return string|null A string with the last returned script based error message, or NULL if there is no error
+ * @example
+ *
+ * $redisCluster->eval('this-is-not-lua');
+ * $err = $redisCluster->getLastError();
+ * // "ERR Error compiling script (new function): user_script:1: '=' expected near '-'"
+ *
+ */
+ public function getLastError() {}
+
+ /**
+ * Clear the last error message
+ *
+ * @return bool true
+ * @example
+ *
+ * $redisCluster->set('x', 'a');
+ * $redisCluster->incr('x');
+ * $err = $redisCluster->getLastError();
+ * // "ERR value is not an integer or out of range"
+ * $redisCluster->clearLastError();
+ * $err = $redisCluster->getLastError();
+ * // NULL
+ *
+ */
+ public function clearLastError() {}
+
+ /**
+ * Get client option
+ *
+ * @param int $option parameter
+ *
+ * @return int|string Parameter value.
+ * @example
+ * // return RedisCluster::SERIALIZER_NONE, RedisCluster::SERIALIZER_PHP, or RedisCluster::SERIALIZER_IGBINARY.
+ * $redisCluster->getOption(RedisCluster::OPT_SERIALIZER);
+ */
+ public function getOption($option) {}
+
+ /**
+ * Set client option.
+ *
+ * @param int $option parameter
+ * @param int|string $value parameter value
+ *
+ * @return bool TRUE on success, FALSE on error.
+ * @example
+ * + * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_NONE); // don't serialize data + * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_PHP); // use built-in serialize/unserialize + * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_IGBINARY); // use igBinary serialize/unserialize + * $redisCluster->setOption(RedisCluster::OPT_PREFIX, 'myAppName:'); // use custom prefix on all keys + *+ */ + public function setOption($option, $value) {} + + /** + * A utility method to prefix the value with the prefix setting for phpredis. + * + * @param mixed $value The value you wish to prefix + * + * @return string If a prefix is set up, the value now prefixed. If there is no prefix, the value will be returned unchanged. + * @example + *
+ * $redisCluster->setOption(RedisCluster::OPT_PREFIX, 'my-prefix:');
+ * $redisCluster->_prefix('my-value'); // Will return 'my-prefix:my-value'
+ *
+ */
+ public function _prefix($value) {}
+
+ /**
+ * A utility method to serialize values manually. This method allows you to serialize a value with whatever
+ * serializer is configured, manually. This can be useful for serialization/unserialization of data going in
+ * and out of EVAL commands as phpredis can't automatically do this itself. Note that if no serializer is
+ * set, phpredis will change Array values to 'Array', and Objects to 'Object'.
+ *
+ * @param mixed $value The value to be serialized.
+ *
+ * @return mixed
+ * @example
+ *
+ * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_NONE);
+ * $redisCluster->_serialize("foo"); // returns "foo"
+ * $redisCluster->_serialize(Array()); // Returns "Array"
+ * $redisCluster->_serialize(new stdClass()); // Returns "Object"
+ *
+ * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_PHP);
+ * $redisCluster->_serialize("foo"); // Returns 's:3:"foo";'
+ *
+ */
+ public function _serialize($value) {}
+
+ /**
+ * A utility method to unserialize data with whatever serializer is set up. If there is no serializer set, the
+ * value will be returned unchanged. If there is a serializer set up, and the data passed in is malformed, an
+ * exception will be thrown. This can be useful if phpredis is serializing values, and you return something from
+ * redis in a LUA script that is serialized.
+ *
+ * @param string $value The value to be unserialized
+ *
+ * @return mixed
+ * @example
+ *
+ * $redisCluster->setOption(RedisCluster::OPT_SERIALIZER, RedisCluster::SERIALIZER_PHP);
+ * $redisCluster->_unserialize('a:3:{i:0;i:1;i:1;i:2;i:2;i:3;}'); // Will return Array(1,2,3)
+ *
+ */
+ public function _unserialize($value) {}
+
+ /**
+ * Return all redis master nodes
+ *
+ * @return array
+ * @example
+ * + * $redisCluster->_masters(); // Will return [[0=>'127.0.0.1','6379'],[0=>'127.0.0.1','6380']] + *+ */ + public function _masters() {} + + /** + * Enter and exit transactional mode. + * + * @param int $mode RedisCluster::MULTI|RedisCluster::PIPELINE + * Defaults to RedisCluster::MULTI. + * A RedisCluster::MULTI block of commands runs as a single transaction; + * a RedisCluster::PIPELINE block is simply transmitted faster to the server, but without any guarantee + * of atomicity. discard cancels a transaction. + * + * @return RedisCluster returns the RedisCluster instance and enters multi-mode. + * Once in multi-mode, all subsequent method calls return the same object until exec() is called. + * @link https://redis.io/commands/multi + * @example + *
+ * $ret = $redisCluster->multi()
+ * ->set('key1', 'val1')
+ * ->get('key1')
+ * ->set('key2', 'val2')
+ * ->get('key2')
+ * ->exec();
+ *
+ * //$ret == array (
+ * // 0 => TRUE,
+ * // 1 => 'val1',
+ * // 2 => TRUE,
+ * // 3 => 'val2');
+ *
+ */
+ public function multi($mode = RedisCluster::MULTI) {}
+
+ /**
+ * @see multi()
+ * @return void|array
+ * @link https://redis.io/commands/exec
+ */
+ public function exec() {}
+
+ /**
+ * @see multi()
+ * @link https://redis.io/commands/discard
+ */
+ public function discard() {}
+
+ /**
+ * Watches a key for modifications by another client. If the key is modified between WATCH and EXEC,
+ * the MULTI/EXEC transaction will fail (return FALSE). unwatch cancels all the watching of all keys by this client.
+ *
+ * @param string|array $key : a list of keys
+ *
+ * @return void
+ * @link https://redis.io/commands/watch
+ * @example
+ *
+ * $redisCluster->watch('x');
+ * // long code here during the execution of which other clients could well modify `x`
+ * $ret = $redisCluster->multi()
+ * ->incr('x')
+ * ->exec();
+ * // $ret = FALSE if x has been modified between the call to WATCH and the call to EXEC.
+ *
+ */
+ public function watch($key) {}
+
+ /**
+ * @see watch()
+ * @link https://redis.io/commands/unwatch
+ */
+ public function unwatch() {}
+
+ /**
+ * Performs a synchronous save at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * If a save is already running, this command will fail and return FALSE.
+ * @link https://redis.io/commands/save
+ * @example
+ * $redisCluster->save('x'); //key
+ * $redisCluster->save(['127.0.0.1',6379]); //[host,port]
+ */
+ public function save($nodeParams) {}
+
+ /**
+ * Performs a background save at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * If a save is already running, this command will fail and return FALSE.
+ * @link https://redis.io/commands/bgsave
+ */
+ public function bgsave($nodeParams) {}
+
+ /**
+ * Removes all entries from the current database at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return bool Always TRUE.
+ * @link https://redis.io/commands/flushdb
+ */
+ public function flushDB($nodeParams) {}
+
+ /**
+ * Removes all entries from all databases at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return bool Always TRUE.
+ * @link https://redis.io/commands/flushall
+ */
+ public function flushAll($nodeParams) {}
+
+ /**
+ * Returns the current database's size at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return int DB size, in number of keys.
+ * @link https://redis.io/commands/dbsize
+ * @example
+ *
+ * $count = $redisCluster->dbSize('x');
+ * echo "Redis has $count keys\n";
+ *
+ */
+ public function dbSize($nodeParams) {}
+
+ /**
+ * Starts the background rewrite of AOF (Append-Only File) at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return bool TRUE in case of success, FALSE in case of failure.
+ * @link https://redis.io/commands/bgrewriteaof
+ * @example $redisCluster->bgrewriteaof('x');
+ */
+ public function bgrewriteaof($nodeParams) {}
+
+ /**
+ * Returns the timestamp of the last disk save at a specific node.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return int timestamp.
+ * @link https://redis.io/commands/lastsave
+ * @example $redisCluster->lastSave('x');
+ */
+ public function lastSave($nodeParams) {}
+
+ /**
+ * Returns an associative array of strings and integers
+ *
+ * @param string $option Optional. The option to provide redis.
+ * SERVER | CLIENTS | MEMORY | PERSISTENCE | STATS | REPLICATION | CPU | CLASTER | KEYSPACE
+ * | COMANDSTATS
+ *
+ * Returns an associative array of strings and integers, with the following keys:
+ * - redis_version
+ * - redis_git_sha1
+ * - redis_git_dirty
+ * - redis_build_id
+ * - redis_mode
+ * - os
+ * - arch_bits
+ * - multiplexing_api
+ * - atomicvar_api
+ * - gcc_version
+ * - process_id
+ * - run_id
+ * - tcp_port
+ * - uptime_in_seconds
+ * - uptime_in_days
+ * - hz
+ * - lru_clock
+ * - executable
+ * - config_file
+ * - connected_clients
+ * - client_longest_output_list
+ * - client_biggest_input_buf
+ * - blocked_clients
+ * - used_memory
+ * - used_memory_human
+ * - used_memory_rss
+ * - used_memory_rss_human
+ * - used_memory_peak
+ * - used_memory_peak_human
+ * - used_memory_peak_perc
+ * - used_memory_peak
+ * - used_memory_overhead
+ * - used_memory_startup
+ * - used_memory_dataset
+ * - used_memory_dataset_perc
+ * - total_system_memory
+ * - total_system_memory_human
+ * - used_memory_lua
+ * - used_memory_lua_human
+ * - maxmemory
+ * - maxmemory_human
+ * - maxmemory_policy
+ * - mem_fragmentation_ratio
+ * - mem_allocator
+ * - active_defrag_running
+ * - lazyfree_pending_objects
+ * - mem_fragmentation_ratio
+ * - loading
+ * - rdb_changes_since_last_save
+ * - rdb_bgsave_in_progress
+ * - rdb_last_save_time
+ * - rdb_last_bgsave_status
+ * - rdb_last_bgsave_time_sec
+ * - rdb_current_bgsave_time_sec
+ * - rdb_last_cow_size
+ * - aof_enabled
+ * - aof_rewrite_in_progress
+ * - aof_rewrite_scheduled
+ * - aof_last_rewrite_time_sec
+ * - aof_current_rewrite_time_sec
+ * - aof_last_bgrewrite_status
+ * - aof_last_write_status
+ * - aof_last_cow_size
+ * - changes_since_last_save
+ * - aof_current_size
+ * - aof_base_size
+ * - aof_pending_rewrite
+ * - aof_buffer_length
+ * - aof_rewrite_buffer_length
+ * - aof_pending_bio_fsync
+ * - aof_delayed_fsync
+ * - loading_start_time
+ * - loading_total_bytes
+ * - loading_loaded_bytes
+ * - loading_loaded_perc
+ * - loading_eta_seconds
+ * - total_connections_received
+ * - total_commands_processed
+ * - instantaneous_ops_per_sec
+ * - total_net_input_bytes
+ * - total_net_output_bytes
+ * - instantaneous_input_kbps
+ * - instantaneous_output_kbps
+ * - rejected_connections
+ * - maxclients
+ * - sync_full
+ * - sync_partial_ok
+ * - sync_partial_err
+ * - expired_keys
+ * - evicted_keys
+ * - keyspace_hits
+ * - keyspace_misses
+ * - pubsub_channels
+ * - pubsub_patterns
+ * - latest_fork_usec
+ * - migrate_cached_sockets
+ * - slave_expires_tracked_keys
+ * - active_defrag_hits
+ * - active_defrag_misses
+ * - active_defrag_key_hits
+ * - active_defrag_key_misses
+ * - role
+ * - master_replid
+ * - master_replid2
+ * - master_repl_offset
+ * - second_repl_offset
+ * - repl_backlog_active
+ * - repl_backlog_size
+ * - repl_backlog_first_byte_offset
+ * - repl_backlog_histlen
+ * - master_host
+ * - master_port
+ * - master_link_status
+ * - master_last_io_seconds_ago
+ * - master_sync_in_progress
+ * - slave_repl_offset
+ * - slave_priority
+ * - slave_read_only
+ * - master_sync_left_bytes
+ * - master_sync_last_io_seconds_ago
+ * - master_link_down_since_seconds
+ * - connected_slaves
+ * - min-slaves-to-write
+ * - min-replicas-to-write
+ * - min_slaves_good_slaves
+ * - used_cpu_sys
+ * - used_cpu_user
+ * - used_cpu_sys_children
+ * - used_cpu_user_children
+ * - cluster_enabled
+ *
+ * @link https://redis.io/commands/info
+ * @return array
+ * @example
+ *
+ * $redisCluster->info();
+ *
+ * or
+ *
+ * $redisCluster->info("COMMANDSTATS"); //Information on the commands that have been run (>=2.6 only)
+ * $redisCluster->info("CPU"); // just CPU information from Redis INFO
+ *
+ */
+ public function info($option = null) {}
+
+ /**
+ * @since redis >= 2.8.12.
+ * Returns the role of the instance in the context of replication
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return array
+ * @link https://redis.io/commands/role
+ * @example
+ * + * $redisCluster->role(['127.0.0.1',6379]); + * // [ 0=>'master',1 => 3129659, 2 => [ ['127.0.0.1','9001','3129242'], ['127.0.0.1','9002','3129543'] ] ] + *+ */ + public function role($nodeParams) {} + + /** + * Returns a random key at the specified node + * + * @param string|array $nodeParams key or [host,port] + * + * @return string an existing key in redis. + * @link https://redis.io/commands/randomkey + * @example + *
+ * $key = $redisCluster->randomKey('x');
+ * $surprise = $redisCluster->get($key); // who knows what's in there.
+ *
+ */
+ public function randomKey($nodeParams) {}
+
+ /**
+ * Return the specified node server time.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return array If successfully, the time will come back as an associative array with element zero being the
+ * unix timestamp, and element one being microseconds.
+ * @link https://redis.io/commands/time
+ * @example
+ *
+ * var_dump( $redisCluster->time('x') );
+ * //// Output:
+ * //
+ * // array(2) {
+ * // [0] => string(10) "1342364352"
+ * // [1] => string(6) "253002"
+ * // }
+ *
+ */
+ public function time($nodeParams) {}
+
+ /**
+ * Check the specified node status
+ *
+ * @param string|array $nodeParams key or [host,port]
+ *
+ * @return string STRING: +PONG on success. Throws a RedisClusterException object on connectivity error, as described
+ * above.
+ * @link https://redis.io/commands/ping
+ */
+ public function ping($nodeParams) {}
+
+ /**
+ * Returns message.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ * @param string $msg
+ *
+ * @return mixed
+ */
+ public function echo($nodeParams, $msg) {}
+
+ /**
+ * Returns Array reply of details about all Redis Cluster commands.
+ *
+ * @return mixed array | bool
+ */
+ public function command() {}
+
+ /**
+ * Send arbitrary things to the redis server at the specified node
+ *
+ * @param string|array $nodeParams key or [host,port]
+ * @param string $command Required command to send to the server.
+ * @param mixed $arguments Optional variable amount of arguments to send to the server.
+ *
+ * @return mixed
+ */
+ public function rawCommand($nodeParams, $command, $arguments) {}
+
+ /**
+ * @since redis >= 3.0
+ * Executes cluster command
+ *
+ * @param string|array $nodeParams key or [host,port]
+ * @param string $command Required command to send to the server.
+ * @param mixed $arguments Optional variable amount of arguments to send to the server.
+ *
+ * @return mixed
+ * @link https://redis.io/commands#cluster
+ * @example
+ * + * $redisCluster->cluster(['127.0.0.1',6379],'INFO'); + *+ */ + public function cluster($nodeParams, $command, $arguments) {} + + /** + * Allows you to get information of the cluster client + * + * @param string|array $nodeParams key or [host,port] + * @param string $subCmd can be: 'LIST', 'KILL', 'GETNAME', or 'SETNAME' + * @param string $args optional arguments + */ + public function client($nodeParams, $subCmd, $args) {} + + /** + * Get or Set the redis config keys. + * + * @param string|array $nodeParams key or [host,port] + * @param string $operation either `GET` or `SET` + * @param string $key for `SET`, glob-pattern for `GET`. See https://redis.io/commands/config-get for examples. + * @param string $value optional string (only for `SET`) + * + * @return array Associative array for `GET`, key -> value + * @link https://redis.io/commands/config-get + * @link https://redis.io/commands/config-set + * @example + *
+ * $redisCluster->config(['127.0.0.1',6379], "GET", "*max-*-entries*"); + * $redisCluster->config(['127.0.0.1',6379], "SET", "dir", "/var/run/redis/dumps/"); + *+ */ + public function config($nodeParams, $operation, $key, $value) {} + + /** + * A command allowing you to get information on the Redis pub/sub system. + * + * @param string|array $nodeParams key or [host,port] + * + * @param string $keyword String, which can be: "channels", "numsub", or "numpat" + * @param string|array $argument Optional, variant. + * For the "channels" subcommand, you can pass a string pattern. + * For "numsub" an array of channel names + * + * @return array|int Either an integer or an array. + * - channels Returns an array where the members are the matching channels. + * - numsub Returns a key/value array where the keys are channel names and + * values are their counts. + * - numpat Integer return containing the number active pattern subscriptions. + * @link https://redis.io/commands/pubsub + * @example + *
+ * $redisCluster->pubsub(['127.0.0.1',6379], 'channels'); // All channels
+ * $redisCluster->pubsub(['127.0.0.1',6379], 'channels', '*pattern*'); // Just channels matching your pattern
+ * $redisCluster->pubsub(['127.0.0.1',6379], 'numsub', array('chan1', 'chan2')); // Get subscriber counts for
+ * 'chan1' and 'chan2'
+ * $redisCluster->pubsub(['127.0.0.1',6379], 'numpat'); // Get the number of pattern subscribers
+ *
+ */
+ public function pubsub($nodeParams, $keyword, $argument) {}
+
+ /**
+ * Execute the Redis SCRIPT command to perform various operations on the scripting subsystem.
+ *
+ * @param string|array $nodeParams key or [host,port]
+ * @param string $command load | flush | kill | exists
+ * @param string $script
+ *
+ * @return mixed
+ * @link https://redis.io/commands/script-load
+ * @link https://redis.io/commands/script-kill
+ * @link https://redis.io/commands/script-flush
+ * @link https://redis.io/commands/script-exists
+ * @example
+ * + * $redisCluster->script(['127.0.0.1',6379], 'load', $script); + * $redisCluster->script(['127.0.0.1',6379], 'flush'); + * $redisCluster->script(['127.0.0.1',6379], 'kill'); + * $redisCluster->script(['127.0.0.1',6379], 'exists', $script1, [$script2, $script3, ...]); + *+ * + * SCRIPT LOAD will return the SHA1 hash of the passed script on success, and FALSE on failure. + * SCRIPT FLUSH should always return TRUE + * SCRIPT KILL will return true if a script was able to be killed and false if not + * SCRIPT EXISTS will return an array with TRUE or FALSE for each passed script + */ + public function script($nodeParams, $command, $script) {} + + /** + * This function is used in order to read and reset the Redis slow queries log. + * + * @param string|array $nodeParams key or [host,port] + * @param string $command + * @param mixed $argument + * + * @link https://redis.io/commands/slowlog + * @example + *
+ * $redisCluster->slowLog(['127.0.0.1',6379],'get','2'); + *+ */ + public function slowLog($nodeParams, $command, $argument) {} + + /** + * Add one or more geospatial items in the geospatial index represented using a sorted set + * + * @param string $key + * @param float $longitude + * @param float $latitude + * @param string $member + * + * @link https://redis.io/commands/geoadd + * @example + *
+ * $redisCluster->geoAdd('Sicily', 13.361389, 38.115556, 'Palermo'); // int(1)
+ * $redisCluster->geoAdd('Sicily', 15.087269, 37.502669, "Catania"); // int(1)
+ *
+ */
+ public function geoAdd($key, $longitude, $latitude, $member) {}
+
+ /**
+ * Returns members of a geospatial index as standard geohash strings
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string $memberN
+ *
+ * @example
+ *
+ * $redisCluster->geoAdd('Sicily', 13.361389, 38.115556, 'Palermo'); // int(1)
+ * $redisCluster->geoAdd('Sicily', 15.087269, 37.502669, "Catania"); // int(1)
+ * $redisCluster->geohash('Sicily','Palermo','Catania');//['sqc8b49rny0','sqdtr74hyu0']
+ *
+ */
+ public function geohash($key, $member1, $member2 = null, $memberN = null) {}
+
+ /**
+ * Returns longitude and latitude of members of a geospatial index
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string $memberN
+ * @example
+ *
+ * $redisCluster->geoAdd('Sicily', 15.087269, 37.502669, "Catania"); // int(1)
+ * $redisCluster->geopos('Sicily','Palermo');//[['13.36138933897018433','38.11555639549629859']]
+ *
+ */
+ public function geopos($key, $member1, $member2 = null, $memberN = null) {}
+
+ /**
+ * Returns the distance between two members of a geospatial index
+ *
+ * @param string $key
+ * @param string $member1
+ * @param string $member2
+ * @param string $unit The unit must be one of the following, and defaults to meters:
+ * m for meters.
+ * km for kilometers.
+ * mi for miles.
+ * ft for feet.
+ *
+ * @link https://redis.io/commands/geoadd
+ * @example
+ *
+ * $redisCluster->geoAdd('Sicily', 13.361389, 38.115556, 'Palermo'); // int(1)
+ * $redisCluster->geoAdd('Sicily', 15.087269, 37.502669, "Catania"); // int(1)
+ * $redisCluster->geoDist('Sicily', 'Palermo' ,'Catania'); // float(166274.1516)
+ * $redisCluster->geoDist('Sicily', 'Palermo','Catania', 'km'); // float(166.2742)
+ *
+ */
+ public function geoDist($key, $member1, $member2, $unit = 'm') {}
+
+ /**
+ * Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a point
+ *
+ * @param string $key
+ * @param float $longitude
+ * @param float $latitude
+ * @param float $radius
+ * @param string $radiusUnit String can be: "m" for meters; "km" for kilometers , "mi" for miles, or "ft" for feet.
+ * @param array $options
+ *
+ * @link https://redis.io/commands/georadius
+ * @example
+ *
+ * $redisCluster->del('Sicily');
+ * $redisCluster->geoAdd('Sicily', 12.361389, 35.115556, 'Palermo'); // int(1)
+ * $redisCluster->geoAdd('Sicily', 15.087269, 37.502669, "Catania"); // int(1)
+ * $redisCluster->geoAdd('Sicily', 13.3585, 35.330022, "Agrigento"); // int(1)
+ *
+ * var_dump( $redisCluster->geoRadius('Sicily',13.3585, 35.330022, 300, 'km', ['WITHDIST' ,'DESC']) );
+ *
+ * array(3) {
+ * [0]=>
+ * array(2) {
+ * [0]=>
+ * string(7) "Catania"
+ * [1]=>
+ * string(8) "286.9362"
+ * }
+ * [1]=>
+ * array(2) {
+ * [0]=>
+ * string(7) "Palermo"
+ * [1]=>
+ * string(7) "93.6874"
+ * }
+ * [2]=>
+ * array(2) {
+ * [0]=>
+ * string(9) "Agrigento"
+ * [1]=>
+ * string(6) "0.0002"
+ * }
+ * }
+ * var_dump( $redisCluster->geoRadiusByMember('Sicily','Agrigento', 100, 'km', ['WITHDIST' ,'DESC']) );
+ *
+ * * array(2) {
+ * [0]=>
+ * array(2) {
+ * [0]=>
+ * string(7) "Palermo"
+ * [1]=>
+ * string(7) "93.6872"
+ * }
+ * [1]=>
+ * array(2) {
+ * [0]=>
+ * string(9) "Agrigento"
+ * [1]=>
+ * string(6) "0.0000"
+ * }
+ * }
+ *
+ *
+ */
+ public function geoRadius($key, $longitude, $latitude, $radius, $radiusUnit, array $options) {}
+
+ /**
+ * Query a sorted set representing a geospatial index to fetch members matching a given maximum distance from a member
+ *
+ * @see geoRadius
+ *
+ * @param string $key
+ * @param string $member
+ * @param float $radius
+ * @param string $radiusUnit
+ * @param array $options
+ */
+ public function geoRadiusByMember($key, $member, $radius, $radiusUnit, array $options) {}
+}
+
+class RedisClusterException extends Exception {}
diff --git a/phpstorm-stubs/redis/RedisSentinel.php b/phpstorm-stubs/redis/RedisSentinel.php
new file mode 100755
index 0000000..734820d
--- /dev/null
+++ b/phpstorm-stubs/redis/RedisSentinel.php
@@ -0,0 +1,219 @@
+.
+ */
+
+/**
+ * Helper autocomplete for phpredis extension
+ *
+ * @author Tawana Musewe
+ * @link https://github.com/tbtmuse/phpredis-sentinel-phpdoc
+ */
+class RedisSentinel
+{
+ /**
+ * Creates a Redis Sentinel
+ *
+ * @param string $host Sentinel IP address or hostname
+ * @param int $port Sentinel Port
+ * @param float $timeout Value in seconds (optional, default is 0 meaning unlimited)
+ * @param string|null $persistent Persistent connection id (optional, default is null meaning not persistent)
+ * @param int $retryInterval Value in milliseconds (optional, default is 0)
+ * @param float $readTimeout Value in seconds (optional, default is 0 meaning unlimited)
+ *
+ * @example
+ * // 1s timeout, 100ms delay between reconnection attempts.
+ * $sentinel = new RedisSentinel('127.0.0.1', 26379, 1, null, 100);
+ */
+ public function __construct(
+ string $host,
+ int $port,
+ float $timeout = 0,
+ ?string $persistent = null,
+ int $retryInterval = 0,
+ float $readTimeout = 0
+ ) {}
+
+ /**
+ * Creates a Redis Sentinel
+ *
+ * Accepts and array of options.
+ *
+ * Available options:
+ * - 'host' => string, Sentinel IP address or hostname
+ * - 'port' => int, Sentinel Port (optional, default is 26379)
+ * - 'connectTimeout' => float, Value in seconds (optional, default is 0 meaning unlimited)
+ * - 'persistent' => string, Persistent connection id (optional, default is NULL meaning not persistent)
+ * - 'retryInterval' => int, Value in milliseconds (optional, default is 0)
+ * - 'readTimeout' => float, Value in seconds (optional, default is 0 meaning unlimited)
+ * - 'auth' => string|array, Authentication credentials (optional, default is NULL meaning NOAUTH)
+ *
+ * @param array $options Associative array of options
+ *
+ * @example $sentinel = new RedisSentinel(['host' => '127.0.0.1']); // default parameters
+ *
+ * @since >= 6.0.0
+ */
+ public function __construct(array $options) {}
+
+ /**
+ * Check if the current Sentinel configuration is able to reach the quorum needed to failover a master, and the
+ * majority needed to authorize the failover. This command should be used in monitoring systems to check if a
+ * Sentinel deployment is ok.
+ *
+ * @param string $master Name of master
+ *
+ * @return bool True in case of success, False in case of failure.
+ *
+ * @example $sentinel->ckquorum('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function ckquorum(string $master): bool {}
+
+ /**
+ * Force a failover as if the master was not reachable, and without asking for agreement to other Sentinels
+ * (however a new version of the configuration will be published so that the other Sentinels will update
+ * their configurations).
+ *
+ * @param string $master Name of master
+ *
+ * @return bool True in case of success, False in case of failure.
+ *
+ * @example $sentinel->failover('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function failover(string $master): bool {}
+
+ /**
+ * Force Sentinel to rewrite its configuration on disk, including the current Sentinel state.
+ *
+ * Normally Sentinel rewrites the configuration every time something changes in its state (in the context of the
+ * subset of the state which is persisted on disk across restart). However sometimes it is possible that the
+ * configuration file is lost because of operation errors, disk failures, package upgrade scripts or configuration
+ * managers. In those cases a way to to force Sentinel to rewrite the configuration file is handy.
+ *
+ * This command works even if the previous configuration file is completely missing.
+ *
+ * @return bool True in case of success, False in case of failure.
+ *
+ * @example $sentinel->flushconfig();
+ *
+ * @since >= 5.2.0
+ */
+ public function flushconfig(): bool {}
+
+ /**
+ * Return the ip and port number of the master with that name. If a failover is in progress or terminated
+ * successfully for this master it returns the address and port of the promoted replica.
+ *
+ * @param string $master Name of master
+ *
+ * @return array|false ['address', 'port'] in case of success, False in case of failure.
+ *
+ * @example $sentinel->getMasterAddrByName('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function getMasterAddrByName(string $master) {}
+
+ /**
+ * Return the state and info of the specified master
+ *
+ * @param string $master Name of master
+ *
+ * @return array|false Associative array with info in case of success, False in case of failure.
+ *
+ * @example $sentinel->master('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function master(string $master) {}
+
+ /**
+ * Return a list of monitored masters and their state
+ *
+ * @return array|false Array of arrays with info for each master in case of success, FALSE in case of failure.
+ *
+ * @example $sentinel->masters();
+ *
+ * @since >= 5.2.0
+ */
+ public function masters() {}
+
+ /**
+ * Ping the sentinel
+ *
+ * @return bool True in case of success, False in case of failure
+ *
+ * @example $sentinel->ping();
+ *
+ * @since >= 5.2.0
+ */
+ public function ping(): bool {}
+
+ /**
+ * Reset all the masters with matching name. The pattern argument is a glob-style pattern.
+ * The reset process clears any previous state in a master (including a failover in progress), and removes every
+ * replica and sentinel already discovered and associated with the master.
+ *
+ * @param string $pattern Glob-style pattern
+ *
+ * @return bool True in case of success, False in case of failure
+ *
+ * @example $sentinel->reset('*');
+ *
+ * @since >= 5.2.0
+ */
+ public function reset(string $pattern): bool {}
+
+ /**
+ * Return a list of sentinel instances for this master, and their state
+ *
+ * @param string $master Name of master
+ *
+ * @return array|false Array of arrays with info for each sentinel in case of success, False in case of failure
+ *
+ * @example $sentinel->sentinels('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function sentinels(string $master) {}
+
+ /**
+ * Return a list of sentinel instances for this master, and their state
+ *
+ * @param string $master Name of master
+ *
+ * @return array|false Array of arrays with info for each replica in case of success, False in case of failure
+ *
+ * @example $sentinel->slaves('mymaster');
+ *
+ * @since >= 5.2.0
+ */
+ public function slaves(string $master) {}
+}
diff --git a/phpstorm-stubs/regex/ereg.php b/phpstorm-stubs/regex/ereg.php
new file mode 100644
index 0000000..c94ac2f
--- /dev/null
+++ b/phpstorm-stubs/regex/ereg.php
@@ -0,0 +1,229 @@
+
+ * Case sensitive regular expression.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @param null|array &$regs [optional]
+ * If matches are found for parenthesized substrings of
+ * pattern and the function is called with the
+ * third argument regs, the matches will be stored
+ * in the elements of the array regs.
+ *
+ *
+ * $regs[1] will contain the substring which starts at
+ * the first left parenthesis; $regs[2] will contain
+ * the substring starting at the second, and so on.
+ * $regs[0] will contain a copy of the complete string
+ * matched.
+ *
+ * @return int the length of the matched string if a match for
+ * pattern was found in string,
+ * or FALSE if no matches were found or an error occurred.
+ *
+ *
+ * If the optional parameter regs was not passed or
+ * the length of the matched string is 0, this function returns 1.
+ * @removed 7.0
+ * @see preg_match()
+ */
+#[Deprecated(reason: "Use preg_match() instead", since: "5.3")]
+function ereg($pattern, $string, ?array &$regs = null) {}
+
+/**
+ * Replace regular expression
+ * @link https://php.net/manual/en/function.ereg-replace.php
+ * @param string $pattern
+ * A POSIX extended regular expression.
+ *
+ * @param string $replacement
+ * If pattern contains parenthesized substrings,
+ * replacement may contain substrings of the form
+ * \digit, which will be
+ * replaced by the text matching the digit'th parenthesized substring;
+ * \0 will produce the entire contents of string.
+ * Up to nine substrings may be used. Parentheses may be nested, in which
+ * case they are counted by the opening parenthesis.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @return string The modified string is returned. If no matches are found in
+ * string, then it will be returned unchanged.
+ * @removed 7.0
+ * @see preg_replace()
+ */
+#[Deprecated(reason: "Use preg_replace() instead", since: "5.3")]
+function ereg_replace($pattern, $replacement, $string) {}
+
+/**
+ * Case insensitive regular expression match
+ * @link https://php.net/manual/en/function.eregi.php
+ * @param string $pattern
+ * Case insensitive regular expression.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @param null|array &$regs [optional]
+ * If matches are found for parenthesized substrings of
+ * pattern and the function is called with the
+ * third argument regs, the matches will be stored
+ * in the elements of the array regs.
+ *
+ *
+ * $regs[1] will contain the substring which starts at the first left
+ * parenthesis; $regs[2] will contain the substring starting at the
+ * second, and so on. $regs[0] will contain a copy of the complete string
+ * matched.
+ *
+ * @return int the length of the matched string if a match for
+ * pattern was found in string,
+ * or FALSE if no matches were found or an error occurred.
+ *
+ *
+ * If the optional parameter regs was not passed or
+ * the length of the matched string is 0, this function returns 1.
+ * @removed 7.0
+ * @see preg_match()
+ */
+#[Deprecated(reason: "Use preg_match() instead", since: "5.3")]
+function eregi($pattern, $string, array &$regs = null) {}
+
+/**
+ * Replace regular expression case insensitive
+ * @link https://php.net/manual/en/function.eregi-replace.php
+ * @param string $pattern
+ * A POSIX extended regular expression.
+ *
+ * @param string $replacement
+ * If pattern contains parenthesized substrings,
+ * replacement may contain substrings of the form
+ * \digit, which will be
+ * replaced by the text matching the digit'th parenthesized substring;
+ * \0 will produce the entire contents of string.
+ * Up to nine substrings may be used. Parentheses may be nested, in which
+ * case they are counted by the opening parenthesis.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @return string The modified string is returned. If no matches are found in
+ * string, then it will be returned unchanged.
+ * @removed 7.0
+ * @see preg_replace()
+ */
+#[Deprecated(reason: "Use preg_replace() instead", since: "5.3")]
+function eregi_replace($pattern, $replacement, $string) {}
+
+/**
+ * Split string into array by regular expression
+ * @link https://php.net/manual/en/function.split.php
+ * @param string $pattern
+ * Case sensitive regular expression.
+ *
+ *
+ * If you want to split on any of the characters which are considered
+ * special by regular expressions, you'll need to escape them first. If
+ * you think split (or any other regex function, for
+ * that matter) is doing something weird, please read the file
+ * regex.7, included in the
+ * regex/ subdirectory of the PHP distribution. It's
+ * in manpage format, so you'll want to do something along the lines of
+ * man /usr/local/src/regex/regex.7 in order to read it.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @param int $limit [optional]
+ * If limit is set, the returned array will
+ * contain a maximum of limit elements with the
+ * last element containing the whole rest of
+ * string.
+ *
+ * @return array an array of strings, each of which is a substring of
+ * string formed by splitting it on boundaries formed
+ * by the case-sensitive regular expression pattern.
+ *
+ *
+ * If there are n occurrences of
+ * pattern, the returned array will contain
+ * n+1 items. For example, if
+ * there is no occurrence of pattern, an array with
+ * only one element will be returned. Of course, this is also true if
+ * string is empty. If an error occurs,
+ * split returns FALSE.
+ * @removed 7.0
+ * @see preg_split()
+ */
+#[Deprecated(reason: "Use preg_split() instead", since: "5.3")]
+function split($pattern, $string, $limit = -1) {}
+
+/**
+ * Split string into array by regular expression case insensitive
+ * @link https://php.net/manual/en/function.spliti.php
+ * @param string $pattern
+ * Case insensitive regular expression.
+ *
+ *
+ * If you want to split on any of the characters which are considered
+ * special by regular expressions, you'll need to escape them first. If
+ * you think spliti (or any other regex function, for
+ * that matter) is doing something weird, please read the file
+ * regex.7, included in the
+ * regex/ subdirectory of the PHP distribution. It's
+ * in manpage format, so you'll want to do something along the lines of
+ * man /usr/local/src/regex/regex.7 in order to read it.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @param int $limit [optional]
+ * If limit is set, the returned array will
+ * contain a maximum of limit elements with the
+ * last element containing the whole rest of
+ * string.
+ *
+ * @return array an array of strings, each of which is a substring of
+ * string formed by splitting it on boundaries formed
+ * by the case insensitive regular expression pattern.
+ *
+ *
+ * If there are n occurrences of
+ * pattern, the returned array will contain
+ * n+1 items. For example, if
+ * there is no occurrence of pattern, an array with
+ * only one element will be returned. Of course, this is also true if
+ * string is empty. If an error occurs,
+ * spliti returns FALSE.
+ * @removed 7.0
+ * @see preg_split()
+ */
+#[Deprecated(reason: "Use preg_split() instead", since: "5.3")]
+function spliti($pattern, $string, $limit = -1) {}
+
+/**
+ * Make regular expression for case insensitive match
+ * @link https://php.net/manual/en/function.sql-regcase.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string a valid regular expression which will match
+ * string, ignoring case. This expression is
+ * string with each alphabetic character converted to
+ * a bracket expression; this bracket expression contains that character's
+ * uppercase and lowercase form. Other characters remain unchanged.
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.3')]
+function sql_regcase($string) {}
+
+// End of ereg v.
diff --git a/phpstorm-stubs/relay/Cluster.php b/phpstorm-stubs/relay/Cluster.php
new file mode 100644
index 0000000..04dccbd
--- /dev/null
+++ b/phpstorm-stubs/relay/Cluster.php
@@ -0,0 +1,2463 @@
+) constants. Otherwise it will
+ * return the string that Redis returns.
+ *
+ * @param mixed $key
+ * @return Cluster|int|string|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function type(mixed $key): Cluster|int|string|bool {}
+
+ /**
+ * Removes the specified keys without blocking Redis.
+ *
+ * @param mixed $keys,...
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function unlink(mixed ...$keys): Cluster|int|false {}
+
+ /**
+ * Unsubscribes from the given channels, or from all of them if none is given.
+ *
+ * @param array $channels
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function unsubscribe(array $channels = []): bool {}
+
+ /**
+ * Flushes all the previously watched keys for a transaction.
+ * If you call EXEC or DISCARD, there's no need to manually call UNWATCH.
+ *
+ * @return Cluster|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function unwatch(): Cluster|bool {}
+
+ /**
+ * Marks the given keys to be watched for conditional execution of a transaction.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Cluster|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function watch(mixed $key, mixed ...$other_keys): Cluster|bool {}
+
+ /**
+ * Acknowledge one or more IDs as having been processed by the consumer group.
+ *
+ * @param mixed $key
+ * @param string $group
+ * @param array $ids
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xack(mixed $key, string $group, array $ids): Cluster|int|false {}
+
+ /**
+ * Append a message to a stream.
+ *
+ * @param string $key
+ * @param string $id
+ * @param int $maxlen
+ * @param bool $approx
+ * @param bool $nomkstream
+ * @return Cluster|string|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xadd(mixed $key, string $id, array $values, int $maxlen = 0, bool $approx = false, bool $nomkstream = false): Cluster|string|false {}
+
+ /**
+ * Automatically take ownership of stream message(s) by metrics
+ *
+ * @param string $key
+ * @param string $group
+ * @param string $consumer
+ * @param int $min_idle
+ * @param string $start
+ * @param int $count
+ * @param bool $justid
+ * @return Cluster|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xautoclaim(mixed $key, string $group, string $consumer, int $min_idle, string $start, int $count = -1, bool $justid = false): Cluster|bool|array {}
+
+ /**
+ * Claim ownership of stream message(s).
+ *
+ * @param string $key
+ * @param string $group
+ * @param string $consumer
+ * @param int $min_idle
+ * @param array $ids
+ * @param array $options
+ * @return Cluster|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xclaim(mixed $key, string $group, string $consumer, int $min_idle, array $ids, array $options): Cluster|array|bool {}
+
+ /**
+ * Remove one or more specific IDs from a stream.
+ *
+ * @param string $key
+ * @param array $ids
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xdel(mixed $key, array $ids): Cluster|int|false {}
+
+ /**
+ * Perform utility operations having to do with consumer groups
+ *
+ * @param string $operation
+ * @param mixed $key
+ * @param string $group
+ * @param string $id_or_consumer
+ * @param bool $mkstream
+ * @param int $entries_read
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xgroup(string $operation, mixed $key = null, string $group = null, string $id_or_consumer = null, bool $mkstream = false, int $entries_read = -2): mixed {}
+
+ /**
+ * Retrieve information about a stream key.
+ *
+ * @param string $operation
+ * @param string|null $arg1
+ * @param string|null $arg2
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xinfo(string $operation, string|null $arg1 = null, string|null $arg2 = null, int $count = -1): mixed {}
+
+ /**
+ * Get the length of a stream.
+ *
+ * @param mixed $key
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xlen(mixed $key): Cluster|int|false {}
+
+ /**
+ * Query pending entries in a stream.
+ *
+ * @param string $key
+ * @param string $group
+ * @param string|null $start
+ * @param string|null $end
+ * @param int $count
+ * @param string|null $consumer
+ * @param int $idle
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xpending(mixed $key, string $group, string|null $start = null, string|null $end = null, int $count = -1, string|null $consumer = null, int $idle = 0): Cluster|array|false {}
+
+ /**
+ * Lists elements in a stream.
+ *
+ * @param mixed $key
+ * @param string $start
+ * @param string $end
+ * @param int $count = -1
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xrange(mixed $key, string $start, string $end, int $count = -1): Cluster|array|false {}
+
+ /**
+ * Read messages from a stream.
+ *
+ * @param array $streams
+ * @param int $count
+ * @param int $block
+ * @return Cluster|array|bool|null
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xread(array $streams, int $count = -1, int $block = -1): Cluster|array|bool|null {}
+
+ /**
+ * Read messages from a stream using a consumer group.
+ *
+ * @param mixed $key
+ * @param string $consumer
+ * @param array $streams
+ * @param int $count
+ * @param int $block
+ * @return Cluster|array|bool|null
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xreadgroup(mixed $key, string $consumer, array $streams, int $count = 1, int $block = 1): Cluster|array|bool|null {}
+
+ /**
+ * Get a range of entries from a STREAM ke in reverse chronological order.
+ *
+ * @param mixed $key
+ * @param string $end
+ * @param string $start
+ * @param int $count
+ * @return Cluster|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xrevrange(mixed $key, string $end, string $start, int $count = -1): Cluster|array|bool {}
+
+ /**
+ * Truncate a STREAM key in various ways.
+ *
+ * @param mixed $key
+ * @param string $threshold
+ * @param bool $approx
+ * @param bool $minid
+ * @param int $limit
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xtrim(mixed $key, string $threshold, bool $approx = false, bool $minid = false, int $limit = -1): Cluster|int|false {}
+
+ /**
+ * Adds all the specified members with the specified scores to the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $args,...
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zadd(mixed $key, mixed ...$args): mixed {}
+
+ /**
+ * Returns the sorted set cardinality (number of elements) of the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zcard(mixed $key): Cluster|int|false {}
+
+ /**
+ * Returns the number of elements in the sorted set at key with a score between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zcount(mixed $key, mixed $min, mixed $max): Cluster|int|false {}
+
+ /**
+ * This command is similar to ZDIFFSTORE, but instead of storing the
+ * resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array|null $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zdiff(array $keys, array|null $options = null): Cluster|array|false {}
+
+ /**
+ * Computes the difference between the first and all successive
+ * input sorted sets and stores the result in destination.
+ *
+ * @param mixed $dstkey
+ * @param array $keys
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zdiffstore(mixed $dstkey, array $keys): Cluster|int|false {}
+
+ /**
+ * Increments the score of member in the sorted set stored at key by increment.
+ *
+ * @param mixed $key
+ * @param float $score
+ * @param mixed $member
+ * @return Cluster|float|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zincrby(mixed $key, float $score, mixed $member): Cluster|float|false {}
+
+ /**
+ * This command is similar to ZINTERSTORE, but instead of storing
+ * the resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array|null $weights
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zinter(array $keys, array|null $weights = null, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * Intersect multiple sorted sets and return the cardinality of the result.
+ *
+ * @param array $keys
+ * @param int $limit
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zintercard(array $keys, int $limit = -1): Cluster|int|false {}
+
+ /**
+ * Computes the intersection of numkeys sorted sets given by the
+ * specified keys, and stores the result in destination.
+ *
+ * @param mixed $dstkey
+ * @param array $keys
+ * @param array|null $weights
+ * @param mixed $options
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zinterstore(mixed $dstkey, array $keys, array|null $weights = null, mixed $options = null): Cluster|int|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns the
+ * number of elements in the sorted set at key with a value between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zlexcount(mixed $key, mixed $min, mixed $max): Cluster|int|false {}
+
+ /**
+ * Pops one or more elements, that are member-score pairs, from the
+ * first non-empty sorted set in the provided list of key names.
+ *
+ * @param array $keys
+ * @param string $from
+ * @param int $count
+ * @return Cluster|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zmpop(array $keys, string $from, int $count = 1): Cluster|array|null|false {}
+
+ /**
+ * Returns the scores associated with the specified members in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $members,...
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zmscore(mixed $key, mixed ...$members): Cluster|array|false {}
+
+ /**
+ * Removes and returns up to count members with the highest
+ * scores in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zpopmax(mixed $key, int $count = 1): Cluster|array|false {}
+
+ /**
+ * Removes and returns up to count members with the lowest
+ * scores in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zpopmin(mixed $key, int $count = 1): Cluster|array|false {}
+
+ /**
+ * When called with just the key argument, return a random element from the sorted set value stored at key.
+ * If the provided count argument is positive, return an array of distinct elements.
+ *
+ * @param mixed $key
+ * @param array|null $options
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrandmember(mixed $key, array|null $options = null): mixed {}
+
+ /**
+ * Returns the specified range of elements in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param string $start
+ * @param string $end
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrange(mixed $key, string $start, string $end, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns all
+ * the elements in the sorted set at key with a value between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @param int $offset
+ * @param int $count
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangebylex(mixed $key, mixed $min, mixed $max, int $offset = -1, int $count = -1): Cluster|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * min and max (including elements with score equal to min or max).
+ *
+ * @param mixed $key
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * max and min (including elements with score equal to max or min).
+ *
+ * @param mixed $dstkey
+ * @param mixed $srckey
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangestore(mixed $dstkey, mixed $srckey, mixed $start, mixed $end, mixed $options = null): Cluster|int|false {}
+
+ /**
+ * Returns the rank of member in the sorted set stored at key, with the scores
+ * ordered from low to high. The rank (or index) is 0-based, which means
+ * that the member with the lowest score has rank 0.
+ *
+ * @param mixed $key
+ * @param mixed $rank
+ * @param bool $withscore
+ * @return Cluster|array|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrank(mixed $key, mixed $rank, bool $withscore = false): Cluster|array|int|false {}
+
+ /**
+ * Removes the specified members from the sorted set stored at key.
+ * Non existing members are ignored.
+ *
+ * @param mixed $key
+ * @param mixed $args,...
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrem(mixed $key, mixed ...$args): Cluster|int|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command removes all
+ * elements in the sorted set stored at key between the
+ * lexicographical range specified by min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebylex(mixed $key, mixed $min, mixed $max): Cluster|int|false {}
+
+ /**
+ * Removes all elements in the sorted set stored at key with rank between
+ * start and stop. Both start and stop are 0 -based indexes with 0 being
+ * the element with the lowest score.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $end
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebyrank(mixed $key, int $start, int $end): Cluster|int|false {}
+
+ /**
+ * Removes all elements in the sorted set stored at key with
+ * a score between min and max (inclusive).
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebyscore(mixed $key, mixed $min, mixed $max): Cluster|int|false {}
+
+ /**
+ * Returns the specified range of elements in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $end
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrange(mixed $key, int $start, int $end, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns all
+ * the elements in the sorted set at key with a value between max and min.
+ *
+ * @param mixed $key
+ * @param mixed $max
+ * @param mixed $min
+ * @param int $offset
+ * @param int $count
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrangebylex(mixed $key, mixed $max, mixed $min, int $offset = -1, int $count = -1): Cluster|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * max and min (including elements with score equal to max or min).
+ *
+ * @param mixed $key
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * Returns the rank of member in the sorted set stored at key, with the scores
+ * ordered from high to low. The rank (or index) is 0-based, which means
+ * that the member with the highest score has rank 0.
+ *
+ * @param mixed $key
+ * @param mixed $rank
+ * @param bool $withscore
+ * @return Cluster|array|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrank(mixed $key, mixed $rank, bool $withscore = false): Cluster|array|int|false {}
+
+ /**
+ * Iterates elements of Sorted Set types and their associated scores.
+ *
+ * @param mixed $key
+ * @param mixed $iterator
+ * @param mixed $match
+ * @param int $count
+ * @return array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
+
+ /**
+ * Returns the score of member in the sorted set at key.
+ *
+ * @param mixed $key
+ * @param mixed $member
+ * @return Cluster|float|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zscore(mixed $key, mixed $member): Cluster|float|false {}
+
+ /**
+ * This command is similar to ZUNIONSTORE, but instead of storing
+ * the resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array|null $weights
+ * @param mixed $options
+ * @return Cluster|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zunion(array $keys, array|null $weights = null, mixed $options = null): Cluster|array|false {}
+
+ /**
+ * Computes the union of numkeys sorted sets given by the
+ * specified keys, and stores the result in destination.
+ *
+ * @param mixed $dstkey
+ * @param array $keys
+ * @param array|null $weights
+ * @param mixed $options
+ * @return Cluster|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zunionstore(mixed $dstkey, array $keys, array|null $weights = null, mixed $options = null): Cluster|int|false {}
+}
diff --git a/phpstorm-stubs/relay/Event.php b/phpstorm-stubs/relay/Event.php
new file mode 100644
index 0000000..7a37e2b
--- /dev/null
+++ b/phpstorm-stubs/relay/Event.php
@@ -0,0 +1,59 @@
+) constants. Otherwise it will
+ * return the string that Redis returns.
+ *
+ * @param mixed $key
+ * @return Relay|int|string|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function type(mixed $key): Relay|int|string|bool {}
+
+ /**
+ * Atomically returns and removes the first/last element of the list
+ * stored at source, and pushes the element at the first/last
+ * element of the list stored at destination.
+ *
+ * @param mixed $srckey
+ * @param mixed $dstkey
+ * @param string $srcpos
+ * @param string $dstpos
+ * @return Relay|string|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lmove(mixed $srckey, mixed $dstkey, string $srcpos, string $dstpos): Relay|string|null|false {}
+
+ /**
+ * BLMOVE is the blocking variant of LMOVE. When source contains elements,
+ * this command behaves exactly like LMOVE. When used inside a
+ * MULTI/EXEC block, this command behaves exactly like LMOVE.
+ *
+ * @param mixed $srckey
+ * @param mixed $dstkey
+ * @param string $srcpos
+ * @param string $dstpos
+ * @param float $timeout
+ * @return Relay|string|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function blmove(mixed $srckey, mixed $dstkey, string $srcpos, string $dstpos, float $timeout): Relay|string|null|false {}
+
+ /**
+ * Returns the specified elements of the list stored at key.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $stop
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function lrange(mixed $key, int $start, int $stop): Relay|array|false {}
+
+ /**
+ * Insert all the specified values at the head of the list stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param mixed $mems,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lpush(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
+
+ /**
+ * Insert all the specified values at the tail of the list stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param mixed $mems,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function rpush(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
+
+ /**
+ * Inserts specified values at the head of the list stored at key,
+ * only if key already exists and holds a list.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param mixed $mems,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lpushx(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
+
+ /**
+ * Inserts specified values at the tail of the list stored at key,
+ * only if key already exists and holds a list.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param mixed $mems,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function rpushx(mixed $key, mixed $mem, mixed ...$mems): Relay|int|false {}
+
+ /**
+ * Sets the list element at index to element.
+ *
+ * @param mixed $key
+ * @param int $index
+ * @param mixed $mem
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lset(mixed $key, int $index, mixed $mem): Relay|bool {}
+
+ /**
+ * Removes and returns the first elements of the list stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lpop(mixed $key, int $count = 1): mixed {}
+
+ /**
+ * The command returns the index of matching elements inside a Redis list.
+ *
+ * @param mixed $key
+ * @param mixed $value
+ * @param array $options
+ * @return Relay|int|array|false|null
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function lpos(mixed $key, mixed $value, ?array $options = null): Relay|int|array|false|null {}
+
+ /**
+ * Removes and returns the last elements of the list stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function rpop(mixed $key, int $count = 1): mixed {}
+
+ /**
+ * Atomically returns and removes the last element (tail) of the list stored at source,
+ * and pushes the element at the first element (head) of the list stored at destination.
+ *
+ * @param mixed $source
+ * @param mixed $dest
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function rpoplpush(mixed $source, mixed $dest): mixed {}
+
+ /**
+ * Atomically returns and removes the last element (tail) of the list stored at source,
+ * and pushes the element at the first element (head) of the list stored at destination.
+ * This command will block for an element up to the provided timeout.
+ *
+ * @param mixed $source
+ * @param mixed $dest
+ * @param float $timeout
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function brpoplpush(mixed $source, mixed $dest, float $timeout): mixed {}
+
+ /**
+ * BLPOP is a blocking list pop primitive. It is the blocking version of LPOP because
+ * it blocks the connection when there are no elements to pop from any of the given lists.
+ *
+ * @param string|array $key
+ * @param string|float $timeout_or_key
+ * @param array $extra_args,...
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function blpop(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
+
+ /**
+ * Pop elements from a list, or block until one is available
+ *
+ * @param float $timeout
+ * @param array $keys
+ * @param string $from
+ * @param int $count
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function blmpop(float $timeout, array $keys, string $from, int $count = 1): Relay|array|null|false {}
+
+ /**
+ * Remove and return members with scores in a sorted set or block until one is available
+ *
+ * @param float $timeout
+ * @param array $keys
+ * @param string $from
+ * @param int $count
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function bzmpop(float $timeout, array $keys, string $from, int $count = 1): Relay|array|null|false {}
+
+ /**
+ * Pops one or more elements from the first non-empty list key from the list of provided key names.
+ *
+ * @param array $keys
+ * @param string $from
+ * @param int $count
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lmpop(array $keys, string $from, int $count = 1): Relay|array|null|false {}
+
+ /**
+ * Pops one or more elements, that are member-score pairs, from the
+ * first non-empty sorted set in the provided list of key names.
+ *
+ * @param array $keys
+ * @param string $from
+ * @param int $count
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zmpop(array $keys, string $from, int $count = 1): Relay|array|null|false {}
+
+ /**
+ * BRPOP is a blocking list pop primitive. It is the blocking version of RPOP because
+ * it blocks the connection when there are no elements to pop from any of the given lists.
+ *
+ * @param string|array $key
+ * @param string|float $timeout_or_key
+ * @param array $extra_args,...
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function brpop(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
+
+ /**
+ * BZPOPMAX is the blocking variant of the sorted set ZPOPMAX primitive.
+ *
+ * @param string|array $key
+ * @param string|float $timeout_or_key
+ * @param array $extra_args,...
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function bzpopmax(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
+
+ /**
+ * BZPOPMIN is the blocking variant of the sorted set ZPOPMIN primitive.
+ *
+ * @param string|array $key
+ * @param string|float $timeout_or_key
+ * @param array $extra_args,...
+ * @return Relay|array|null|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function bzpopmin(string|array $key, string|float $timeout_or_key, mixed ...$extra_args): Relay|array|null|false {}
+
+ /**
+ * This is a container command for object introspection commands.
+ *
+ * @param string $op
+ * @param mixed $key
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function object(string $op, mixed $key): mixed {}
+
+ /**
+ * Return the positions (longitude,latitude) of all the specified members
+ * of the geospatial index represented by the sorted set at key.
+ *
+ * @param mixed $key
+ * @param mixed $members,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function geopos(mixed $key, mixed ...$members): Relay|array|false {}
+
+ /**
+ * Removes the first count occurrences of elements equal to element from the list stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param int $count
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function lrem(mixed $key, mixed $mem, int $count = 0): Relay|int|false {}
+
+ /**
+ * Returns the element at index index in the list stored at key.
+ *
+ * @param mixed $key
+ * @param int $index
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function lindex(mixed $key, int $index): mixed {}
+
+ /**
+ * Inserts element in the list stored at key either before or after the reference value pivot.
+ *
+ * @param mixed $key
+ * @param string $op
+ * @param mixed $pivot
+ * @param mixed $element
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function linsert(mixed $key, string $op, mixed $pivot, mixed $element): Relay|int|false {}
+
+ /**
+ * Trim an existing list so that it will contain only the specified range of elements specified.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $end
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function ltrim(mixed $key, int $start, int $end): Relay|bool {}
+
+ /**
+ * Returns the value associated with field in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @param mixed $member
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hget(mixed $hash, mixed $member): mixed {}
+
+ /**
+ * Returns the string length of the value associated with field in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @param mixed $member
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hstrlen(mixed $hash, mixed $member): Relay|int|false {}
+
+ /**
+ * Returns all fields and values of the hash stored at key.
+ *
+ * @param mixed $hash
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hgetall(mixed $hash): Relay|array|false {}
+
+ /**
+ * Returns all field names in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hkeys(mixed $hash): Relay|array|false {}
+
+ /**
+ * Returns all values in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hvals(mixed $hash): Relay|array|false {}
+
+ /**
+ * Returns the values associated with the specified fields in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @param array $members
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hmget(mixed $hash, array $members): Relay|array|false {}
+
+ /**
+ * When called with just the key argument, return a random field from the hash value stored at key.
+ *
+ * @param mixed $hash
+ * @param array $options
+ * @return Relay|array|string|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hrandfield(mixed $hash, ?array $options = null): Relay|array|string|false {}
+
+ /**
+ * Sets the specified fields to their respective values in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @param array $members
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hmset(mixed $hash, array $members): Relay|bool {}
+
+ /**
+ * Returns if field is an existing field in the hash stored at key.
+ *
+ * @param mixed $hash
+ * @param mixed $member
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hexists(mixed $hash, mixed $member): Relay|bool {}
+
+ /**
+ * Sets field in the hash stored at key to value, only if field does not yet exist.
+ *
+ * @param mixed $hash
+ * @param mixed $member
+ * @param mixed $value
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hsetnx(mixed $hash, mixed $member, mixed $value): Relay|bool {}
+
+ /**
+ * Sets field in the hash stored at key to value.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param mixed $val
+ * @param mixed $kvals,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hset(mixed $key, mixed $mem, mixed $val, mixed ...$kvals): Relay|int|false {}
+
+ /**
+ * Removes the specified fields from the hash stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param string $mems,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hdel(mixed $key, mixed $mem, string ...$mems): Relay|int|false {}
+
+ /**
+ * Increments the number stored at field in the hash stored at key by increment.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param int $value
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hincrby(mixed $key, mixed $mem, int $value): Relay|int|false {}
+
+ /**
+ * Increment the specified field of a hash stored at key, and representing
+ * a floating point number, by the specified increment.
+ *
+ * @param mixed $key
+ * @param mixed $mem
+ * @param float $value
+ * @return Relay|float|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hincrbyfloat(mixed $key, mixed $mem, float $value): Relay|float|bool {}
+
+ /**
+ * Increments the number stored at key by one.
+ *
+ * @param mixed $key
+ * @param int $by
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function incr(mixed $key, int $by = 1): Relay|int|false {}
+
+ /**
+ * Decrements the number stored at key by one.
+ *
+ * @param mixed $key
+ * @param int $by
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function decr(mixed $key, int $by = 1): Relay|int|false {}
+
+ /**
+ * Increments the number stored at key by increment.
+ *
+ * @param mixed $key
+ * @param int $value
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function incrby(mixed $key, int $value): Relay|int|false {}
+
+ /**
+ * Decrements the number stored at key by decrement.
+ *
+ * @param mixed $key
+ * @param int $value
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function decrby(mixed $key, int $value): Relay|int|false {}
+
+ /**
+ * Increment the string representing a floating point number stored at key by the specified increment.
+ *
+ * @param mixed $key
+ * @param float $value
+ * @return Relay|float|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function incrbyfloat(mixed $key, float $value): Relay|float|false {}
+
+ /**
+ * Returns the members of the set resulting from the difference between the first set and all the successive sets.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function sdiff(mixed $key, mixed ...$other_keys): Relay|array|false {}
+
+ /**
+ * This command is equal to SDIFF, but instead of returning the resulting set, it is stored in destination.
+ * If destination already exists, it is overwritten.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sdiffstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
+
+ /**
+ * Returns the members of the set resulting from the intersection of all the given sets.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function sinter(mixed $key, mixed ...$other_keys): Relay|array|false {}
+
+ /**
+ * Intersect multiple sets and return the cardinality of the result.
+ *
+ * @param array $keys
+ * @param int $limit
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function sintercard(array $keys, int $limit = -1): Relay|int|false {}
+
+ /**
+ * This command is equal to SINTER, but instead of returning the resulting set, it is stored in destination.
+ * If destination already exists, it is overwritten.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sinterstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
+
+ /**
+ * Returns the members of the set resulting from the union of all the given sets.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function sunion(mixed $key, mixed ...$other_keys): Relay|array|false {}
+
+ /**
+ * This command is equal to SUNION, but instead of returning the resulting set, it is stored in destination.
+ * If destination already exists, it is overwritten.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sunionstore(mixed $key, mixed ...$other_keys): Relay|int|false {}
+
+ /**
+ * Subscribes to the specified channels.
+ *
+ * @param array $channels
+ * @param callable $callback
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function subscribe(array $channels, callable $callback): bool {}
+
+ /**
+ * Unsubscribes from the given channels, or from all of them if none is given.
+ *
+ * @param array $channels
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function unsubscribe(array $channels = []): bool {}
+
+ /**
+ * Subscribes to the given patterns.
+ *
+ * @param array $patterns
+ * @param callable $callback
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function psubscribe(array $patterns, callable $callback): bool {}
+
+ /**
+ * Unsubscribes from the given patterns, or from all of them if none is given.
+ *
+ * @param array $patterns
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function punsubscribe(array $patterns = []): bool {}
+
+ /**
+ * Subscribes to the specified shard channels.
+ *
+ * @param array $channels
+ * @param callable $callback
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function ssubscribe(array $channels, callable $callback): bool {}
+
+ /**
+ * Unsubscribes from the given shard channels, or from all of them if none is given.
+ *
+ * @param array $channels
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sunsubscribe(array $channels = []): bool {}
+
+ /**
+ * Alters the last access time of a key(s).
+ *
+ * @param array|string $key_or_array
+ * @param mixed $more_keys,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function touch(array|string $key_or_array, mixed ...$more_keys): Relay|int|false {}
+
+ /**
+ * A pipeline block is simply transmitted faster to the server (like `MULTI`), but without any guarantee of atomicity.
+ *
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\Local]
+ public function pipeline(): Relay|bool {}
+
+ /**
+ * Marks the start of a transaction block. Subsequent commands will be queued for atomic execution using EXEC.
+ *
+ * Accepts `Relay::MULTI` and `Relay::PIPELINE` modes.
+ *
+ * @param int $mode
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function multi(int $mode = 0): Relay|bool {}
+
+ /**
+ * Executes all previously queued commands in a transaction and restores the connection state to normal.
+ *
+ * @return Relay|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function exec(): Relay|array|bool {}
+
+ /**
+ * Wait for the synchronous replication of all the write
+ * commands sent in the context of the current connection.
+ *
+ * @param int $replicas
+ * @param int $timeout
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function wait(int $replicas, $timeout): Relay|int|false {}
+
+ /**
+ * Marks the given keys to be watched for conditional execution of a transaction.
+ *
+ * @param mixed $key
+ * @param mixed $other_keys,...
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function watch(mixed $key, mixed ...$other_keys): Relay|bool {}
+
+ /**
+ * Flushes all the previously watched keys for a transaction.
+ * If you call EXEC or DISCARD, there's no need to manually call UNWATCH.
+ *
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function unwatch(): Relay|bool {}
+
+ /**
+ * Flushes all previously queued commands in a transaction and restores the connection state to normal.
+ * If WATCH was used, DISCARD unwatches all keys watched by the connection.
+ *
+ * @return bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function discard(): bool {}
+
+ /**
+ * Get the mode Relay is currently in.
+ * `Relay::ATOMIC`, `Relay::PIPELINE` or `Relay::MULTI`.
+ *
+ * @param bool $masked
+ * @return int
+ */
+ #[\Relay\Attributes\Local]
+ public function getMode(bool $masked = false): int {}
+
+ /**
+ * Clear the accumulated sent and received bytes.
+ *
+ * @return void
+ */
+ #[\Relay\Attributes\Local]
+ public function clearBytes(): void {}
+
+ /**
+ * Scan the keyspace for matching keys.
+ *
+ * @param mixed $iterator
+ * @param mixed $match
+ * @param int $count
+ * @param string|null $type
+ * @return array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function scan(mixed &$iterator, mixed $match = null, int $count = 0, ?string $type = null): array|false {}
+
+ /**
+ * Iterates fields of Hash types and their associated values.
+ *
+ * @param mixed $key
+ * @param mixed $iterator
+ * @param mixed $match
+ * @param int $count
+ * @return array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function hscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
+
+ /**
+ * Iterates elements of Sets types.
+ *
+ * @param mixed $key
+ * @param mixed $iterator
+ * @param mixed $match
+ * @param int $count
+ * @return array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
+
+ /**
+ * Iterates elements of Sorted Set types and their associated scores.
+ *
+ * @param mixed $key
+ * @param mixed $iterator
+ * @param mixed $match
+ * @param int $count
+ * @return array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zscan(mixed $key, mixed &$iterator, mixed $match = null, int $count = 0): array|false {}
+
+ /**
+ * Returns all keys matching pattern.
+ *
+ * @param mixed $pattern
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function keys(mixed $pattern): Relay|array|false {}
+
+ /**
+ * Interact with the Redis slowlog.
+ *
+ * @param string $operation
+ * @param string $extra_args,...
+ * @return Relay|array|int|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function slowlog(string $operation, string ...$extra_args): Relay|array|int|bool {}
+
+ /**
+ * Returns all the members of the set value stored at `$key`.
+ *
+ * @param mixed $set
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function smembers(mixed $set): Relay|array|false {}
+
+ /**
+ * Returns if `$member` is a member of the set stored at `$key`.
+ *
+ * @param mixed $set
+ * @param mixed $member
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function sismember(mixed $set, mixed $member): Relay|bool {}
+
+ /**
+ * Returns whether each member is a member of the set stored at `$key`.
+ *
+ * @param mixed $set
+ * @param mixed $members,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function smismember(mixed $set, mixed ...$members): Relay|array|false {}
+
+ /**
+ * Remove the specified members from the set stored at `$key`.
+ *
+ * @param mixed $set
+ * @param mixed $member
+ * @param mixed $members,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function srem(mixed $set, mixed $member, mixed ...$members): Relay|int|false {}
+
+ /**
+ * Add the specified members to the set stored at `$key`.
+ *
+ * @param mixed $set
+ * @param mixed $member
+ * @param mixed $members,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sadd(mixed $set, mixed $member, mixed ...$members): Relay|int|false {}
+
+ /**
+ * Sort the elements in a list, set or sorted set.
+ *
+ * @param mixed $key
+ * @param array $options
+ * @return Relay|array|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sort(mixed $key, array $options = []): Relay|array|int|false {}
+
+ /**
+ * Sort the elements in a list, set or sorted set. Read-only variant of SORT.
+ *
+ * @param mixed $key
+ * @param array $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function sort_ro(mixed $key, array $options = []): Relay|array|false {}
+
+ /**
+ * Move member from the set at source to the set at destination.
+ *
+ * @param mixed $srcset
+ * @param mixed $dstset
+ * @param mixed $member
+ * @return Relay|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function smove(mixed $srcset, mixed $dstset, mixed $member): Relay|bool {}
+
+ /**
+ * Removes and returns one or more random members from the set value store at `$key`.
+ *
+ * @param mixed $set
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function spop(mixed $set, int $count = 1): mixed {}
+
+ /**
+ * Returns one or multiple random members from a set.
+ *
+ * @param mixed $set
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function srandmember(mixed $set, int $count = 1): mixed {}
+
+ /**
+ * Returns the set cardinality (number of elements) of the set stored at `$key`.
+ *
+ * @param mixed $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function scard(mixed $key): Relay|int|false {}
+
+ /**
+ * Execute a script management command.
+ *
+ * @param string $command
+ * @param string $args,...
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function script(string $command, string ...$args): mixed {}
+
+ /**
+ * Returns the length of the string value stored at `$key`.
+ *
+ * @param mixed $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function strlen(mixed $key): Relay|int|false {}
+
+ /**
+ * Returns the number of fields contained in the hash stored at `$key`.
+ *
+ * @param mixed $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function hlen(mixed $key): Relay|int|false {}
+
+ /**
+ * Returns the length of the list stored at `$key`.
+ *
+ * @param mixed $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function llen(mixed $key): Relay|int|false {}
+
+ /**
+ * Acknowledge one or more IDs as having been processed by the consumer group.
+ *
+ * @param mixed $key
+ * @param string $group
+ * @param array $ids
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xack(mixed $key, string $group, array $ids): Relay|int|false {}
+
+ /**
+ * Append a message to a stream.
+ *
+ * @param string $key
+ * @param string $id
+ * @param int $maxlen
+ * @param bool $approx
+ * @param bool $nomkstream
+ * @return Relay|string|false
+ */
+ public function xadd(
+ string $key,
+ string $id,
+ array $values,
+ int $maxlen = 0,
+ bool $approx = false,
+ bool $nomkstream = false
+ ): Relay|string|false {}
+
+ /**
+ * Claim ownership of stream message(s).
+ *
+ * @param string $key
+ * @param string $group
+ * @param string $consumer
+ * @param int $min_idle
+ * @param array $ids
+ * @param array $options
+ * @return Relay|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xclaim(
+ string $key,
+ string $group,
+ string $consumer,
+ int $min_idle,
+ array $ids,
+ array $options
+ ): Relay|array|bool {}
+
+ /**
+ * Automatically take ownership of stream message(s) by metrics
+ *
+ * @param string $key
+ * @param string $group
+ * @param string $consumer
+ * @param int $min_idle
+ * @param string $start
+ * @param int $count
+ * @param bool $justid
+ * @return Relay|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xautoclaim(
+ string $key,
+ string $group,
+ string $consumer,
+ int $min_idle,
+ string $start,
+ int $count = -1,
+ bool $justid = false
+ ): Relay|bool|array {}
+
+ /**
+ * Get the length of a stream.
+ *
+ * @param string $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xlen(string $key): Relay|int|false {}
+
+ /**
+ * Perform utility operations having to do with consumer groups
+ *
+ * @param string $operation
+ * @param mixed $key
+ * @param string $group
+ * @param string $id_or_consumer
+ * @param bool $mkstream
+ * @param int $entries_read
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xgroup(
+ string $operation,
+ mixed $key = null,
+ string $group = null,
+ string $id_or_consumer = null,
+ bool $mkstream = false,
+ int $entries_read = -2
+ ): mixed {}
+
+ /**
+ * Remove one or more specific IDs from a stream.
+ *
+ * @param string $key
+ * @param array $ids
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xdel(string $key, array $ids): Relay|int|false {}
+
+ /**
+ * Retrieve information about a stream key.
+ *
+ * @param string $operation
+ * @param string|null $arg1
+ * @param string|null $arg2
+ * @param int $count
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xinfo(string $operation, ?string $arg1 = null, ?string $arg2 = null, int $count = -1): mixed {}
+
+ /**
+ * Query pending entries in a stream.
+ *
+ * @param string $key
+ * @param string $group
+ * @param string|null $start
+ * @param string|null $end
+ * @param int $count
+ * @param string|null $consumer
+ * @param int $idle
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xpending(
+ string $key,
+ string $group,
+ ?string $start = null,
+ ?string $end = null,
+ int $count = -1,
+ ?string $consumer = null,
+ int $idle = 0
+ ): Relay|array|false {}
+
+ /**
+ * Lists elements in a stream.
+ *
+ * @param mixed $key
+ * @param string $start
+ * @param string $end
+ * @param int $count = -1
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xrange(mixed $key, string $start, string $end, int $count = -1): Relay|array|false {}
+
+ /**
+ * Get a range of entries from a STREAM ke in reverse chronological order.
+ *
+ * @param string $key
+ * @param string $end
+ * @param string $start
+ * @param int $count
+ * @return Relay|array|bool
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xrevrange(string $key, string $end, string $start, int $count = -1): Relay|array|bool {}
+
+ /**
+ * Read messages from a stream.
+ *
+ * @param array $streams
+ * @param int $count
+ * @param int $block
+ * @return Relay|array|bool|null
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xread(array $streams, int $count = -1, int $block = -1): Relay|array|bool|null {}
+
+ /**
+ * Read messages from a stream using a consumer group.
+ *
+ * @param string $group
+ * @param string $consumer
+ * @param array $streams
+ * @param int $count
+ * @param int $block
+ * @return Relay|array|bool|null
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xreadgroup(
+ string $group,
+ string $consumer,
+ array $streams,
+ int $count = 1,
+ int $block = 1
+ ): Relay|array|bool|null {}
+
+ /**
+ * Truncate a STREAM key in various ways.
+ *
+ * @param string $key
+ * @param string $threshold
+ * @param bool $approx
+ * @param bool $minid
+ * @param int $limit
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function xtrim(
+ string $key,
+ string $threshold,
+ bool $approx = false,
+ bool $minid = false,
+ int $limit = -1
+ ): Relay|int|false {}
+
+ /**
+ * Adds all the specified members with the specified scores to the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $args,...
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zadd(mixed $key, mixed ...$args): mixed {}
+
+ /**
+ * When called with just the key argument, return a random element from the sorted set value stored at key.
+ * If the provided count argument is positive, return an array of distinct elements.
+ *
+ * @param mixed $key
+ * @param array|null $options
+ * @return mixed
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrandmember(mixed $key, ?array $options = null): mixed {}
+
+ /**
+ * Returns the specified range of elements in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param string $start
+ * @param string $end
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrange(mixed $key, string $start, string $end, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Returns the specified range of elements in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $end
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrange(mixed $key, int $start, int $end, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * min and max (including elements with score equal to min or max).
+ *
+ * @param mixed $key
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * max and min (including elements with score equal to max or min).
+ *
+ * @param mixed $key
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrangebyscore(mixed $key, mixed $start, mixed $end, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Returns all the elements in the sorted set at key with a score between
+ * max and min (including elements with score equal to max or min).
+ *
+ * @param mixed $dst
+ * @param mixed $src
+ * @param mixed $start
+ * @param mixed $end
+ * @param mixed $options
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangestore(mixed $dst, mixed $src, mixed $start, mixed $end, mixed $options = null): Relay|int|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns all
+ * the elements in the sorted set at key with a value between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @param int $offset
+ * @param int $count
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrangebylex(mixed $key, mixed $min, mixed $max, int $offset = -1, int $count = -1): Relay|array|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns all
+ * the elements in the sorted set at key with a value between max and min.
+ *
+ * @param mixed $key
+ * @param mixed $max
+ * @param mixed $min
+ * @param int $offset
+ * @param int $count
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrangebylex(mixed $key, mixed $max, mixed $min, int $offset = -1, int $count = -1): Relay|array|false {}
+
+ /**
+ * Returns the rank of member in the sorted set stored at key, with the scores
+ * ordered from low to high. The rank (or index) is 0-based, which means
+ * that the member with the lowest score has rank 0.
+ *
+ * @param mixed $key
+ * @param mixed $rank
+ * @param bool $withscore
+ * @return Relay|array|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrank(mixed $key, mixed $rank, bool $withscore = false): Relay|array|int|false {}
+
+ /**
+ * Returns the rank of member in the sorted set stored at key, with the scores
+ * ordered from high to low. The rank (or index) is 0-based, which means
+ * that the member with the highest score has rank 0.
+ *
+ * @param mixed $key
+ * @param mixed $rank
+ * @param bool $withscore
+ * @return Relay|array|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrevrank(mixed $key, mixed $rank, bool $withscore = false): Relay|array|int|false {}
+
+ /**
+ * Removes the specified members from the sorted set stored at key.
+ * Non existing members are ignored.
+ *
+ * @param mixed $key
+ * @param mixed $args,...
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zrem(mixed $key, mixed ...$args): Relay|int|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command removes all
+ * elements in the sorted set stored at key between the
+ * lexicographical range specified by min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebylex(mixed $key, mixed $min, mixed $max): Relay|int|false {}
+
+ /**
+ * Removes all elements in the sorted set stored at key with rank between
+ * start and stop. Both start and stop are 0 -based indexes with 0 being
+ * the element with the lowest score.
+ *
+ * @param mixed $key
+ * @param int $start
+ * @param int $end
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebyrank(mixed $key, int $start, int $end): Relay|int|false {}
+
+ /**
+ * Removes all elements in the sorted set stored at key with
+ * a score between min and max (inclusive).
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zremrangebyscore(mixed $key, mixed $min, mixed $max): Relay|int|false {}
+
+ /**
+ * Returns the sorted set cardinality (number of elements) of the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand, \Relay\Attributes\Cached]
+ public function zcard(mixed $key): Relay|int|false {}
+
+ /**
+ * Returns the number of elements in the sorted set at key with a score between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zcount(mixed $key, mixed $min, mixed $max): Relay|int|false {}
+
+ /**
+ * This command is similar to ZDIFFSTORE, but instead of storing the
+ * resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zdiff(array $keys, ?array $options = null): Relay|array|false {}
+
+ /**
+ * Computes the difference between the first and all successive
+ * input sorted sets and stores the result in destination.
+ *
+ * @param mixed $dst
+ * @param array $keys
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zdiffstore(mixed $dst, array $keys): Relay|int|false {}
+
+ /**
+ * Increments the score of member in the sorted set stored at key by increment.
+ *
+ * @param mixed $key
+ * @param float $score
+ * @param mixed $mem
+ * @return Relay|float|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zincrby(mixed $key, float $score, mixed $mem): Relay|float|false {}
+
+ /**
+ * When all the elements in a sorted set are inserted with the same score,
+ * in order to force lexicographical ordering, this command returns the
+ * number of elements in the sorted set at key with a value between min and max.
+ *
+ * @param mixed $key
+ * @param mixed $min
+ * @param mixed $max
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zlexcount(mixed $key, mixed $min, mixed $max): Relay|int|false {}
+
+ /**
+ * Returns the scores associated with the specified members in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param mixed $mems,...
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zmscore(mixed $key, mixed ...$mems): Relay|array|false {}
+
+ /**
+ * Returns the score of member in the sorted set at key.
+ *
+ * @param mixed $key
+ * @param mixed $member
+ * @return Relay|float|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zscore(mixed $key, mixed $member): Relay|float|false {}
+
+ /**
+ * This command is similar to ZINTERSTORE, but instead of storing
+ * the resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array $weights
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zinter(array $keys, ?array $weights = null, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Intersect multiple sorted sets and return the cardinality of the result.
+ *
+ * @param array $keys
+ * @param int $limit
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zintercard(array $keys, int $limit = -1): Relay|int|false {}
+
+ /**
+ * Computes the intersection of numkeys sorted sets given by the
+ * specified keys, and stores the result in destination.
+ *
+ * @param mixed $dst
+ * @param array $keys
+ * @param array $weights
+ * @param mixed $options
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zinterstore(mixed $dst, array $keys, ?array $weights = null, mixed $options = null): Relay|int|false {}
+
+ /**
+ * This command is similar to ZUNIONSTORE, but instead of storing
+ * the resulting sorted set, it is returned to the client.
+ *
+ * @param array $keys
+ * @param array $weights
+ * @param mixed $options
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zunion(array $keys, ?array $weights = null, mixed $options = null): Relay|array|false {}
+
+ /**
+ * Computes the union of numkeys sorted sets given by the
+ * specified keys, and stores the result in destination.
+ *
+ * @param mixed $dst
+ * @param array $keys
+ * @param array $weights
+ * @param mixed $options
+ * @return Relay|int|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zunionstore(mixed $dst, array $keys, ?array $weights = null, mixed $options = null): Relay|int|false {}
+
+ /**
+ * Removes and returns up to count members with the lowest
+ * scores in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zpopmin(mixed $key, int $count = 1): Relay|array|false {}
+
+ /**
+ * Removes and returns up to count members with the highest
+ * scores in the sorted set stored at key.
+ *
+ * @param mixed $key
+ * @param int $count
+ * @return Relay|array|false
+ */
+ #[\Relay\Attributes\RedisCommand]
+ public function zpopmax(mixed $key, int $count = 1): Relay|array|false {}
+
+ /**
+ * Returns keys cached in runtime memory.
+ *
+ * @internal Temporary debug helper. Do not use.
+ * @return mixed
+ */
+ #[\Relay\Attributes\Local]
+ public function _getKeys() {}
+
+ /**
+ * Returns information about the license.
+ *
+ * @return array
+ */
+ #[\Relay\Attributes\Local]
+ public static function license(): array {}
+}
diff --git a/phpstorm-stubs/relay/Sentinel.php b/phpstorm-stubs/relay/Sentinel.php
new file mode 100644
index 0000000..de3d00f
--- /dev/null
+++ b/phpstorm-stubs/relay/Sentinel.php
@@ -0,0 +1,177 @@
+
+ * First epoch:version-release string
+ *
+ * @param string $evr2
+ * Second epoch:version-release string
+ *
+ * @return int
+ * < 0 if evr1 < evr2, > 0 if evr1 > evr2, 0 if equal.
+ *
+ * @since 0.1.0
+ */
+function rpmvercmp(string $evr1, string $evr2) {}
+
+/**
+ * Retrieve information from a RPM file, reading its metadata.
+ * If given error will be used to store error message
+ * instead of raising a warning. The return
+ * value is a hash table,
+ * or false if it fails.
+ *
+ * @param string $path
+ * Path to the RPM file.
+ *
+ * @param bool $full [optional]
+ * If TRUE all information headers for the file are retrieved, else only a minimal set.
+ *
+ * @param null|string &$error [optional]
+ * If provided, will receive the possible error message, and will avoid a runtime warning.
+ *
+ *
+ * @return array|null
+ * An array of information or NULL on error.
+ *
+ * @since 0.1.0
+ */
+function rpminfo(string $path, bool $full = false, ?string &$error = null) {}
+
+/**
+ * Retrieve information about an installed package, from the system RPM database.
+ *
+ * @param string $nevr
+ * Name with optional epoch, version and release.
+ *
+ * @param bool $full [optional]
+ * If TRUE all information headers for the file are retrieved, else only a minimal set.
+ *
+ *
+ * @return array|null
+ * An array of arrays of information or NULL on error.
+ *
+ * @since 0.2.0
+ */
+function rpmdbinfo(string $nevr, bool $full = false) {}
+
+/**
+ * Retriev information from the local RPM database.
+ *
+ * @param string $pattern
+ * Value to search for.
+ *
+ * @param int $rpmtag [optional]
+ * Search criterion, one of RPMTAG_* constant.
+ *
+ * @param int $rpmmire [optional]
+ * Pattern type, one of RPMMIRE_* constant.
+ * When < 0 the criterion must equals the value, and database index is used if possible.
+ *
+ * @param bool $full [optional]
+ * If TRUE all information headers for the file are retrieved, else only a minimal set.
+ *
+ *
+ * @return array|null
+ * An array of arrays of information or NULL on error.
+ *
+ * @since 0.3.0
+ */
+function rpmdbsearch(string $pattern, int $rpmtag = RPMTAG_NAME, int $rpmmire = -1, bool $full = false) {}
+
+/**
+ * Add an additional retrieved tag in subsequent queries.
+ *
+ * @param int $tag One of RPMTAG_* constant, see the rpminfo constants page.
+ *
+ * @return bool Returns true on success or false on failure.
+ * @since 0.5.0
+ */
+function rpmaddtag(int $tag): bool {}
diff --git a/phpstorm-stubs/rrd/rrd.php b/phpstorm-stubs/rrd/rrd.php
new file mode 100644
index 0000000..256b30f
--- /dev/null
+++ b/phpstorm-stubs/rrd/rrd.php
@@ -0,0 +1,331 @@
+
+ */
+
+// start of PECL/rrd v1.0
+
+/**
+ * Gets latest error message
+ * @link https://php.net/manual/en/function.rrd-error.php
+ * @return string Latest error message.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_error() {}
+
+/**
+ * Creates rrd database file
+ * @link https://php.net/manual/en/function.rrd-create.php
+ * @param string $filename
+ * Filename for newly created rrd file.
+ *
+ * @param array $options
+ * Options for rrd create - list of strings. See man page of rrd create for whole list of options.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_create($filename, $options) {}
+
+/**
+ * Gets data for graph output from RRD database file as array. This function has same result as rrd_graph(), but fetched data are returned as array, no image file is created.
+ * @link https://php.net/manual/en/function.rrd-fetch.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @param array $options
+ * Array of options for resolution specification.
+ *
+ * @return array Array with information about retrieved graph data.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_fetch($file, $options) {}
+
+/**
+ * Gets the timestamp of the first sample from from the specified RRA of the RRD file.
+ * @link https://php.net/manual/en/function.rrd-first.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @param int $raaindex
+ * The index number of the RRA that is to be examined. Default value is 0.
+ *
+ * @return int|false Integer as unix timestamp, FALSE if some error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_first($file, $raaindex = 0) {}
+
+/**
+ * Creates image from a data.
+ * @link https://php.net/manual/en/function.rrd-graph.php
+ * @param string $file
+ * The filename to output the graph to. This will generally end in either .png, .svg or .eps, depending on the format you want to output.
+ *
+ * @param array $options
+ * Options for generating image. See man page of rrd graph for all possible options. All options (data definitions, variable definitions, etc.) are allowed.
+ *
+ * @return array|false If image is created successfully an array with information about generated image is returned, FALSE when error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_graph($file, $options) {}
+
+/**
+ * Returns information about particular RRD database file.
+ * @link https://php.net/manual/en/function.rrd-info.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @return array|false Array with information about requsted RRD file, FALSE when error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_info($file) {}
+
+/**
+ * Returns the UNIX timestamp of the most recent update of the RRD database.
+ * @link https://php.net/manual/en/function.rrd-last.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @return int Integer as unix timestamp of the most recent data from the RRD database.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_last($file) {}
+
+/**
+ * Gets array of the UNIX timestamp and the values stored for each date in the most recent update of the RRD database file.
+ * @link https://php.net/manual/en/function.rrd-lastupdate.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @return array|false Array of information about last update, FALSE when error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_lastupdate($file) {}
+
+/**
+ * Restores the RRD file from the XML dump.
+ * @link https://php.net/manual/en/function.rrd-restore.php
+ * @param string $xml_file
+ * XML filename with the dump of the original RRD database file.
+ *
+ * @param string $rrd_file
+ * Restored RRD database file name.
+ *
+ * @param array $options
+ * Array of options for restoring. See man page for rrd restore.
+ *
+ * @return bool Returns TRUE on success, FALSE otherwise.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_restore($xml_file, $rrd_file, $options = []) {}
+
+/**
+ * Change some options in the RRD dabase header file. E.g. renames the source for the data etc.
+ * @link https://php.net/manual/en/function.rrd-tune.php
+ * @param string $file
+ * RRD database file name.
+ *
+ * @param array $options
+ * Options with RRD database file properties which will be changed. See rrd tune man page for details.
+ *
+ * @return bool Returns TRUE on success, FALSE otherwise.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_tune($file, $options) {}
+
+/**
+ * Updates the RRD database file. The input data is time interpolated according to the properties of the RRD database file.
+ * @link https://php.net/manual/en/function.rrd-update.php
+ * @param string $file
+ * RRD database file name. This database will be updated.
+ *
+ * @param array $options
+ * Options for updating the RRD database. This is list of strings. See man page of rrd update for whole list of options.
+ *
+ * @return bool Updates the RRD database file. The input data is time interpolated according to the properties of the RRD database file.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_update($file, $options) {}
+
+/**
+ * Returns information about underlying rrdtool library.
+ * @link https://php.net/manual/en/function.rrd-version.php
+ * @return string String with rrdtool version number e.g. "1.4.3".
+ * @since PECL rrd >= 1.0.0
+ */
+function rrd_version() {}
+
+/**
+ * Exports the information about RRD database file. This data can be converted to XML file via user space PHP script and then restored back as RRD database file.
+ * @link https://php.net/manual/en/function.rrd-xport.php
+ * @param array $options
+ * Array of options for the export, see rrd xport man page.
+ *
+ * @return array|false Array with information about RRD database file, FALSE when error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+function rrd_xport($options) {}
+
+/**
+ * Close any outstanding connection to rrd caching daemon
+ * This function is automatically called when the whole PHP process is terminated. It depends on used SAPI. For example, it's called automatically at the end of command line script.
+ * It's up user whether he wants to call this function at the end of every request or otherwise.
+ * @link https://php.net/manual/en/function.rrdc-disconnect.php
+ * @return void
+ * @since PECL rrd >= 1.1.2
+ */
+function rrd_disconnect() {}
+
+/**
+ * Close any outstanding connection to rrd caching daemon.
+ * This function is automatically called when the whole PHP process is terminated. It depends on used SAPI.
+ * For example, it's called automatically at the end of command line script.
+ * It's up user whether he wants to call this function at the end of every request or otherwise.
+ */
+function rrdc_disconnect() {}
+
+/**
+ * Class for creation of RRD database file.
+ * @link https://php.net/manual/en/class.rrdcreator.php
+ * @since PECL rrd >= 0.9.0
+ */
+class RRDCreator
+{
+ /**
+ * Adds RRA - archive of data values for each data source.
+ * Archive consists of a number of data values or statistics for each of the defined data-sources (DS). Data sources are defined by method RRDCreator::addDataSource(). You need call this method for each requested archive.
+ *
+ * @link https://php.net/manual/en/rrdcreator.addarchive.php
+ * @see RRDCreator::addDataSource()
+ * @param string $description
+ * Class for creation of RRD database file.
+ *
+ * @return void
+ * @since PECL rrd >= 0.9.0
+ */
+ public function addArchive($description) {}
+
+ /**
+ * Adds data source definition for RRD database.
+ * RRD can accept input from several data sources (DS), e.g incoming and outgoing traffic. This method adds data source by description. You need call this method for each data source.
+ *
+ * @link https://php.net/manual/en/rrdcreator.adddatasource.php
+ * @param string $description
+ * Definition of data source - DS. This has same format as DS definition in rrd create command. See man page of rrd create for more details.
+ *
+ * @return void
+ * @since PECL rrd >= 0.9.0
+ */
+ public function addDataSource($description) {}
+
+ /**
+ * Creates new RRDCreator instance.
+ * @link https://php.net/manual/en/rrdcreator.construct.php
+ * @param string $path
+ * Path for newly created RRD database file.
+ *
+ * @param string $startTime
+ * Time for the first value in RRD database. Parameter supports all formats which are supported by rrd create call.
+ *
+ * @param int $step
+ * Base interval in seconds with which data will be fed into the RRD database.
+ *
+ * @since PECL rrd >= 0.9.0
+ */
+ public function __construct($path, $startTime = '', $step = 0) {}
+
+ /**
+ * Saves the RRD database into file, which name is defined by RRDCreator::__construct()
+ * @link https://php.net/manual/en/rrdcreator.save.php
+ * @see RRDCreator::__construct()
+ * @return bool TRUE on success or FALSE on failure.
+ * @since PECL rrd >= 0.9.0
+ */
+ public function save() {}
+}
+
+/**
+ * Class for exporting data from RRD database to image file.
+ * @link https://php.net/manual/en/class.rrdgraph.php
+ * @since PECL rrd >= 0.9.0
+ */
+class RRDGraph
+{
+ /**
+ * Creates new RRDGraph instance. This instance is responsible for rendering the result of RRD database query into image.
+ * @link https://php.net/manual/en/rrdgraph.construct.php
+ * @param string $path
+ * Full path for the newly created image.
+ *
+ * @since PECL rrd >= 0.9.0
+ */
+ public function __construct($path) {}
+
+ /**
+ * Saves the result of RRD database query into image defined by RRDGraph::__construct().
+ * @link https://php.net/manual/en/rrdgraph.save.php
+ * @return array|false Array with information about generated image is returned, FALSE if error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+ public function save() {}
+
+ /**
+ * Saves the RRD database query into image and returns the verbose information about generated graph.
+ * If "-" is used as image filename, image data are also returned in result array.
+ *
+ * @link https://php.net/manual/en/rrdgraph.saveverbose.php
+ * @return array|false Array with detailed information about generated image is returned, optionally with image data, FALSE if error occurs.
+ * @since PECL rrd >= 0.9.0
+ */
+ public function saveVerbose() {}
+
+ /**
+ * Sets the options for rrd graph export
+ * @link https://php.net/manual/en/rrdgraph.setoptions.php
+ * @param array $options
+ * List of options for the image generation from the RRD database file. It can be list of strings or list of strings with keys for better readability. Read the rrd graph man pages for list of available options.
+ *
+ * @return void
+ * @since PECL rrd >= 0.9.0
+ */
+ public function setOptions($options) {}
+}
+
+/**
+ * Class for updating RDD database file.
+ * @link https://php.net/manual/en/class.rrdupdater.php
+ * @since PECL rrd >= 0.9.0
+ */
+class RRDUpdater
+{
+ /**
+ * Creates new RRDUpdater instance. This instance is responsible for updating the RRD database file.
+ * RRDUpdater constructor.
+ * @link https://php.net/manual/en/rrdupdater.construct.php
+ * @param string $path
+ * Filesystem path for RRD database file, which will be updated.
+ *
+ * @since PECL rrd >= 0.9.0
+ */
+ public function __construct($path) {}
+
+ /**
+ * Update the RRD file defined via RRDUpdater::__construct(). The file is updated with a specific values.
+ * @link https://php.net/manual/en/rrdupdater.update.php
+ * @param array $values
+ * Data for update. Key is data source name.
+ *
+ * @param string $time
+ * Time value for updating the RRD with a particulat data. Default value is current time.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws \Exception on error
+ * @since PECL rrd >= 0.9.0
+ */
+ public function update($values, $time = '') {}
+}
+
+// end of PECL/rrd v1.0
diff --git a/phpstorm-stubs/runTests.sh b/phpstorm-stubs/runTests.sh
new file mode 100755
index 0000000..d80a032
--- /dev/null
+++ b/phpstorm-stubs/runTests.sh
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+echo "Installing composer packages..."
+docker-compose -f docker-compose.yml run test_runner composer install --ignore-platform-reqs
+echo "Checking stub map..."
+docker-compose -f docker-compose.yml run test_runner vendor/bin/phpunit --testsuite Check_Stub_Map
+phpVersions=("7.1" "7.2" "7.3" "7.4" "8.0" "8.1")
+for i in "${phpVersions[@]}"
+do
+ export PHP_VERSION=$i
+ SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
+ cd "$SCRIPT_DIR" || exit
+ echo "Building docker container for PHP_$i..."
+ docker-compose -f docker-compose.yml build
+ echo "Dumping reflection data to file $SCRIPT_DIR/ReflectionData.json for PHP_$i..."
+ docker-compose -f docker-compose.yml run -e PHP_VERSION="$i" php_under_test /usr/local/bin/php tests/Tools/dump-reflection-to-file.php ReflectionData.json
+ echo "Running tests agains PHP_$i..."
+ docker-compose -f docker-compose.yml run -e PHP_VERSION="$i" test_runner vendor/bin/phpunit --testsuite PHP_"$i"
+ echo "Removing file $SCRIPT_DIR/ReflectionData.json with reflection data for PHP_$i..."
+ rm -f "$SCRIPT_DIR/ReflectionData.json"
+done
diff --git a/phpstorm-stubs/session/SessionHandler.php b/phpstorm-stubs/session/SessionHandler.php
new file mode 100644
index 0000000..2856030
--- /dev/null
+++ b/phpstorm-stubs/session/SessionHandler.php
@@ -0,0 +1,312 @@
+SessionHandlerInterface is an interface which defines
+ * a prototype for creating a custom session handler.
+ * In order to pass a custom session handler to
+ * session_set_save_handler() using its OOP invocation,
+ * the class must implement this interface.
+ * @link https://php.net/manual/en/class.sessionhandlerinterface.php
+ * @since 5.4
+ */
+interface SessionHandlerInterface
+{
+ /**
+ * Close the session
+ * @link https://php.net/manual/en/sessionhandlerinterface.close.php
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function close(): bool;
+
+ /**
+ * Destroy a session
+ * @link https://php.net/manual/en/sessionhandlerinterface.destroy.php
+ * @param string $id The session ID being destroyed.
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function destroy(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id): bool;
+
+ /**
+ * Cleanup old sessions
+ * @link https://php.net/manual/en/sessionhandlerinterface.gc.php
+ * @param int $max_lifetime
+ * Sessions that have not updated for
+ * the last maxlifetime seconds will be removed.
+ *
+ * @return int|false
+ * Returns the number of deleted sessions on success, or false on failure. Prior to PHP version 7.1, the function returned true on success.
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[LanguageLevelTypeAware(['7.1' => 'int|false'], default: 'bool')]
+ #[TentativeType]
+ public function gc(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $max_lifetime): int|false;
+
+ /**
+ * Initialize session
+ * @link https://php.net/manual/en/sessionhandlerinterface.open.php
+ * @param string $path The path where to store/retrieve the session.
+ * @param string $name The session name.
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function open(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $path,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name
+ ): bool;
+
+ /**
+ * Read session data
+ * @link https://php.net/manual/en/sessionhandlerinterface.read.php
+ * @param string $id The session id to read data for.
+ * @return string|false
+ * Returns an encoded string of the read data.
+ * If nothing was read, it must return false.
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function read(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id): string|false;
+
+ /**
+ * Write session data
+ * @link https://php.net/manual/en/sessionhandlerinterface.write.php
+ * @param string $id The session id.
+ * @param string $data
+ * The encoded session data. This data is the
+ * result of the PHP internally encoding
+ * the $_SESSION superglobal to a serialized
+ * string and passing it as this parameter.
+ * Please note sessions use an alternative serialization method.
+ *
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function write(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data
+ ): bool;
+}
+
+/**
+ * SessionIdInterface
+ * @link https://php.net/manual/en/class.sessionidinterface.php
+ * @since 5.5.1
+ */
+interface SessionIdInterface
+{
+ /**
+ * Create session ID
+ * @link https://php.net/manual/en/sessionidinterface.create-sid.php
+ * @return string
+ * The new session ID. Note that this value is returned internally to PHP for processing.
+ *
+ */
+ #[TentativeType]
+ public function create_sid(): string;
+}
+
+/**
+ * SessionUpdateTimestampHandlerInterface is an interface which
+ * defines a prototype for updating the life time of an existing session.
+ * In order to use the lazy_write option must be enabled and a custom session
+ * handler must implement this interface.
+ * @since 7.0
+ */
+interface SessionUpdateTimestampHandlerInterface
+{
+ /**
+ * Validate session id
+ * @link https://www.php.net/manual/sessionupdatetimestamphandlerinterface.validateid
+ * @param string $id The session id
+ * @return bool
+ * Note this value is returned internally to PHP for processing.
+ *
+ */
+ #[TentativeType]
+ public function validateId(string $id): bool;
+
+ /**
+ * Update timestamp of a session
+ * @link https://www.php.net/manual/sessionupdatetimestamphandlerinterface.updatetimestamp.php
+ * @param string $id The session id
+ * @param string $data
+ * The encoded session data. This data is the
+ * result of the PHP internally encoding
+ * the $_SESSION superglobal to a serialized
+ * string and passing it as this parameter.
+ * Please note sessions use an alternative serialization method.
+ *
+ * @return bool
+ */
+ #[TentativeType]
+ public function updateTimestamp(string $id, string $data): bool;
+}
+
+/**
+ * SessionHandler a special class that can
+ * be used to expose the current internal PHP session
+ * save handler by inheritance. There are six methods
+ * which wrap the six internal session save handler
+ * callbacks (open, close, read, write, destroy and gc).
+ * By default, this class will wrap whatever internal
+ * save handler is set as as defined by the
+ * session.save_handler configuration directive which is usually
+ * files by default. Other internal session save handlers are provided by
+ * PHP extensions such as SQLite (as sqlite),
+ * Memcache (as memcache), and Memcached (as memcached).
+ * @link https://php.net/manual/en/class.reflectionzendextension.php
+ * @since 5.4
+ */
+class SessionHandler implements SessionHandlerInterface, SessionIdInterface
+{
+ /**
+ * Close the session
+ * @link https://php.net/manual/en/sessionhandler.close.php
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function close(): bool {}
+
+ /**
+ * Return a new session ID
+ * @link https://php.net/manual/en/sessionhandler.create-sid.php
+ * @return string A session ID valid for the default session handler.
+ * @since 5.5.1
+ */
+ #[TentativeType]
+ public function create_sid(): string {}
+
+ /**
+ * Destroy a session
+ * @link https://php.net/manual/en/sessionhandler.destroy.php
+ * @param string $id The session ID being destroyed.
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function destroy(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id): bool {}
+
+ /**
+ * Cleanup old sessions
+ * @link https://php.net/manual/en/sessionhandler.gc.php
+ * @param int $max_lifetime
+ * Sessions that have not updated for
+ * the last maxlifetime seconds will be removed.
+ *
+ * @return int|bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function gc(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $max_lifetime): int|false {}
+
+ /**
+ * Initialize session
+ * @link https://php.net/manual/en/sessionhandler.open.php
+ * @param string $path The path where to store/retrieve the session.
+ * @param string $name The session name.
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function open(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $path,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name
+ ): bool {}
+
+ /**
+ * Read session data
+ * @link https://php.net/manual/en/sessionhandler.read.php
+ * @param string $id The session id to read data for.
+ * @return string|false
+ * Returns an encoded string of the read data.
+ * If nothing was read, it must return an empty string.
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function read(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id): string|false {}
+
+ /**
+ * Write session data
+ * @link https://php.net/manual/en/sessionhandler.write.php
+ * @param string $id The session id.
+ * @param string $data
+ * The encoded session data. This data is the
+ * result of the PHP internally encoding
+ * the $_SESSION superglobal to a serialized
+ * string and passing it as this parameter.
+ * Please note sessions use an alternative serialization method.
+ *
+ * @return bool
+ * The return value (usually TRUE on success, FALSE on failure).
+ * Note this value is returned internally to PHP for processing.
+ *
+ * @since 5.4
+ */
+ #[TentativeType]
+ public function write(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $id,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data
+ ): bool {}
+
+ /**
+ * Validate session id
+ * @param string $session_id The session id
+ * @return bool
+ * Note this value is returned internally to PHP for processing.
+ *
+ */
+ public function validateId($session_id) {}
+
+ /**
+ * Update timestamp of a session
+ * @param string $session_id The session id
+ * @param string $session_data
+ * The encoded session data. This data is the
+ * result of the PHP internally encoding
+ * the $_SESSION superglobal to a serialized
+ * string and passing it as this parameter.
+ * Please note sessions use an alternative serialization method.
+ *
+ * @return bool
+ */
+ public function updateTimestamp($session_id, $session_data) {}
+}
diff --git a/phpstorm-stubs/session/session.php b/phpstorm-stubs/session/session.php
new file mode 100644
index 0000000..6cce466
--- /dev/null
+++ b/phpstorm-stubs/session/session.php
@@ -0,0 +1,461 @@
+
+ * Before 7.2.0 checked cookie status and since 7.2.0 checks both cookie and session status to avoid PHP crash.
+ * @link https://php.net/manual/en/function.session-name.php
+ * @param string|null $name [optional]
+ * The session name references the name of the session, which is
+ * used in cookies and URLs (e.g. PHPSESSID). It
+ * should contain only alphanumeric characters; it should be short and
+ * descriptive (i.e. for users with enabled cookie warnings).
+ * If name is specified, the name of the current
+ * session is changed to its value.
+ *
+ *
+ *
+ * The session name can't consist of digits only, at least one letter
+ * must be present. Otherwise a new session id is generated every time.
+ *
+ *
+ * @return string|false the name of the current session.
+ */
+#[LanguageLevelTypeAware(['8.0' => 'string|false'], default: 'string')]
+function session_name(#[LanguageLevelTypeAware(['8.0' => 'null|string'], default: 'string')] $name) {}
+
+/**
+ * Get and/or set the current session module.
+ * Since 7.2.0 it is forbidden to set the module name to "user".
+ * @link https://php.net/manual/en/function.session-module-name.php
+ * @param string|null $module [optional]
+ * If module is specified, that module will be
+ * used instead.
+ *
+ * @return string|false the name of the current session module.
+ */
+#[LanguageLevelTypeAware(['8.0' => 'string|false'], default: 'string')]
+function session_module_name(#[LanguageLevelTypeAware(['8.0' => 'null|string'], default: 'string')] $module) {}
+
+/**
+ * Get and/or set the current session save path
+ * @link https://php.net/manual/en/function.session-save-path.php
+ * @param string|null $path [optional]
+ * Session data path. If specified, the path to which data is saved will
+ * be changed. session_save_path needs to be called
+ * before session_start for that purpose.
+ *
+ *
+ *
+ * On some operating systems, you may want to specify a path on a
+ * filesystem that handles lots of small files efficiently. For example,
+ * on Linux, reiserfs may provide better performance than ext2fs.
+ *
+ *
+ * @return string|false the path of the current directory used for data storage.
+ */
+#[LanguageLevelTypeAware(['8.0' => 'string|false'], default: 'string')]
+function session_save_path(#[LanguageLevelTypeAware(['8.0' => 'null|string'], default: 'string')] $path) {}
+
+/**
+ * Get and/or set the current session id
+ * @link https://php.net/manual/en/function.session-id.php
+ * @param string|null $id [optional]
+ * If id is specified, it will replace the current
+ * session id. session_id needs to be called before
+ * session_start for that purpose. Depending on the
+ * session handler, not all characters are allowed within the session id.
+ * For example, the file session handler only allows characters in the
+ * range a-z A-Z 0-9 , (comma) and - (minus)!
+ *
+ * When using session cookies, specifying an id
+ * for session_id will always send a new cookie
+ * when session_start is called, regardless if the
+ * current session id is identical to the one being set.
+ * @return string|false session_id returns the session id for the current
+ * session or the empty string ("") if there is no current
+ * session (no current session id exists).
+ */
+#[LanguageLevelTypeAware(['8.0' => 'string|false'], default: 'string')]
+function session_id(#[LanguageLevelTypeAware(['8.0' => 'null|string'], default: 'string')] $id) {}
+
+/**
+ * Update the current session id with a newly generated one
+ * @link https://php.net/manual/en/function.session-regenerate-id.php
+ * @param bool $delete_old_session [optional]
+ * Whether to delete the old associated session file or not.
+ *
+ * @return bool true on success or false on failure.
+ */
+function session_regenerate_id(bool $delete_old_session = false): bool {}
+
+/**
+ * PHP > 5.4.0
+ * Session shutdown function
+ * @link https://secure.php.net/manual/en/function.session-register-shutdown.php
+ * @return void
+ */
+function session_register_shutdown(): void {}
+
+/**
+ * Decodes session data from a string
+ * @link https://php.net/manual/en/function.session-decode.php
+ * @param string $data
+ * The encoded data to be stored.
+ *
+ * @return bool true on success or false on failure.
+ */
+function session_decode(string $data): bool {}
+
+/**
+ * Register one or more global variables with the current session
+ * @link https://php.net/manual/en/function.session-register.php
+ * @param mixed $name
+ * A string holding the name of a variable or an array consisting of
+ * variable names or other arrays.
+ *
+ * @param mixed ...$_ [optional]
+ * @return bool true on success or false on failure.
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function session_register(mixed $name, ...$_): bool {}
+
+/**
+ * Unregister a global variable from the current session
+ * @link https://php.net/manual/en/function.session-unregister.php
+ * @param string $name
+ * The variable name.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function session_unregister(string $name): bool {}
+
+/**
+ * Find out whether a global variable is registered in a session
+ * @link https://php.net/manual/en/function.session-is-registered.php
+ * @param string $name
+ * The variable name.
+ *
+ * @return bool session_is_registered returns true if there is a
+ * global variable with the name name registered in
+ * the current session, false otherwise.
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function session_is_registered(string $name): bool {}
+
+/**
+ * Encodes the current session data as a string
+ * @link https://php.net/manual/en/function.session-encode.php
+ * @return string|false the contents of the current session encoded.
+ */
+#[LanguageLevelTypeAware(["8.0" => "string|false"], default: "string")]
+function session_encode() {}
+
+/**
+ * Initialize session data
+ * @link https://php.net/manual/en/function.session-start.php
+ * @param array $options [optional] If provided, this is an associative array of options that will override the currently set session configuration directives. The keys should not include the session. prefix.
+ * In addition to the normal set of configuration directives, a read_and_close option may also be provided. If set to TRUE, this will result in the session being closed immediately after being read, thereby avoiding unnecessary locking if the session data won't be changed.
+ * @return bool This function returns true if a session was successfully started,
+ * otherwise false.
+ */
+function session_start(#[PhpStormStubsElementAvailable(from: '7.0')] array $options = []): bool {}
+
+/**
+ * Create new session id
+ * @link https://www.php.net/manual/en/function.session-create-id.php
+ * @param string $prefix [optional] If prefix is specified, new session id is prefixed by prefix.
+ * Not all characters are allowed within the session id.
+ * Characters in the range a-z A-Z 0-9 , (comma) and - (minus) are allowed.
+ * @return string|false new collision free session id for the current session.
+ * If it is used without active session, it omits collision check.
+ * @since 7.1
+ */
+#[LanguageLevelTypeAware(["8.0" => "string|false"], default: "string")]
+function session_create_id(string $prefix = '') {}
+
+/**
+ * Perform session data garbage collection
+ * @return int|false number of deleted session data for success, false for failure.
+ * @since 7.1
+ */
+#[LanguageLevelTypeAware(["8.0" => "int|false"], default: "int")]
+function session_gc() {}
+
+/**
+ * Destroys all data registered to a session
+ * @link https://php.net/manual/en/function.session-destroy.php
+ * @return bool true on success or false on failure.
+ */
+function session_destroy(): bool {}
+
+/**
+ * Free all session variables
+ * @link https://php.net/manual/en/function.session-unset.php
+ * @return void|bool since 7.2.0 returns true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_unset() {}
+
+/**
+ * Sets user-level session storage functions
+ * @link https://php.net/manual/en/function.session-set-save-handler.php
+ * @param callable $open
+ * Open function, this works like a constructor in classes and is
+ * executed when the session is being opened. The open function
+ * expects two parameters, where the first is the save path and
+ * the second is the session name.
+ *
+ * @param callable $close
+ * Close function, this works like a destructor in classes and is
+ * executed when the session operation is done.
+ *
+ * @param callable $read
+ * Read function must return string value always to make save handler
+ * work as expected. Return empty string if there is no data to read.
+ * Return values from other handlers are converted to boolean expression.
+ * true for success, false for failure.
+ *
+ * @param callable $write
+ * Write function that is called when session data is to be saved. This
+ * function expects two parameters: an identifier and the data associated
+ * with it.
+ *
+ *
+ * The "write" handler is not executed until after the output stream is
+ * closed. Thus, output from debugging statements in the "write"
+ * handler will never be seen in the browser. If debugging output is
+ * necessary, it is suggested that the debug output be written to a
+ * file instead.
+ *
+ * @param callable $destroy
+ * The destroy handler, this is executed when a session is destroyed with
+ * session_destroy and takes the session id as its
+ * only parameter.
+ *
+ * @param callable $gc
+ * The garbage collector, this is executed when the session garbage collector
+ * is executed and takes the max session lifetime as its only parameter.
+ *
+ * @param callable|null $create_sid [optional]
+ * This callback is executed when a new session ID is required.
+ * No parameters are provided, and the return value should be a string that is a valid
+ * session ID for your handler.
+ * @param callable|null $validate_sid [optional]
+ * @param callable|null $update_timestamp [optional]
+ * @return bool true on success or false on failure.
+ */
+function session_set_save_handler(callable $open, callable $close, callable $read, callable $write, callable $destroy, callable $gc, ?callable $create_sid = null, ?callable $validate_sid = null, ?callable $update_timestamp = null): bool {}
+
+/**
+ * (PHP 5.4)
+ * Sets user-level session storage functions
+ * @link https://php.net/manual/en/function.session-set-save-handler.php
+ * @param SessionHandlerInterface $session_handler An instance of a class implementing SessionHandlerInterface,
+ * and optionally SessionIdInterface and/or SessionUpdateTimestampHandlerInterface, such as SessionHandler,
+ * to register as the session handler. Since PHP 5.4 only.
+ * @param bool $register_shutdown [optional] Register session_write_close() as a register_shutdown_function() function.
+ * @return bool true on success or false on failure.
+ */
+function session_set_save_handler(SessionHandlerInterface $sessionhandler, bool $register_shutdown = true): bool {}
+
+/**
+ * Get and/or set the current cache limiter
+ * @link https://php.net/manual/en/function.session-cache-limiter.php
+ * @param string|null $value [optional]
+ * If cache_limiter is specified, the name of the
+ * current cache limiter is changed to the new value.
+ *
+ *
+ * Possible values
+ *
+ * Value
+ * Headers sent
+ *
+ *
+ * public
+ *
+ *
+ * Expires: (sometime in the future, according session.cache_expire)
+ * Cache-Control: public, max-age=(sometime in the future, according to session.cache_expire)
+ * Last-Modified: (the timestamp of when the session was last saved)
+ *
+ *
+ *
+ *
+ * private_no_expire
+ *
+ *
+ * Cache-Control: private, max-age=(session.cache_expire in the future), pre-check=(session.cache_expire in the future)
+ * Last-Modified: (the timestamp of when the session was last saved)
+ *
+ *
+ *
+ *
+ * private
+ *
+ *
+ * Expires: Thu, 19 Nov 1981 08:52:00 GMT
+ * Cache-Control: private, max-age=(session.cache_expire in the future), pre-check=(session.cache_expire in the future)
+ * Last-Modified: (the timestamp of when the session was last saved)
+ *
+ *
+ *
+ *
+ * nocache
+ *
+ *
+ * Expires: Thu, 19 Nov 1981 08:52:00 GMT
+ * Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
+ * Pragma: no-cache
+ *
+ *
+ *
+ *
+ * @return string|false the name of the current cache limiter.
+ */
+#[LanguageLevelTypeAware(["8.0" => "string|false"], default: "string")]
+function session_cache_limiter(#[LanguageLevelTypeAware(['8.0' => 'null|string'], default: 'string')] $value) {}
+
+/**
+ * Return current cache expire
+ * @link https://php.net/manual/en/function.session-cache-expire.php
+ * @param int|null $value [optional]
+ * If new_cache_expire is given, the current cache
+ * expire is replaced with new_cache_expire.
+ *
+ *
+ * Setting new_cache_expire is of value only, if
+ * session.cache_limiter is set to a value
+ * different from nocache.
+ *
+ * @return int|false the current setting of session.cache_expire.
+ * The value returned should be read in minutes, defaults to 180.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int|false"], default: "int")]
+function session_cache_expire(#[LanguageLevelTypeAware(['8.0' => 'null|int'], default: 'int')] $value) {}
+
+/**
+ * Set the session cookie parameters
+ * @link https://php.net/manual/en/function.session-set-cookie-params.php
+ * @param array $lifetime_or_options
+ * An associative array which may have any of the keys lifetime, path, domain,
+ * secure, httponly and samesite. The values have the same meaning as described
+ * for the parameters with the same name. The value of the samesite element
+ * should be either Lax or Strict. If any of the allowed options are not given,
+ * their default values are the same as the default values of the explicit
+ * parameters. If the samesite element is omitted, no SameSite cookie attribute
+ * is set.
+ *
+ * @return bool returns true on success or false on failure.
+ * @since 7.3
+ */
+function session_set_cookie_params(array $lifetime_or_options): bool {}
+
+/**
+ * Set the session cookie parameters
+ * @link https://php.net/manual/en/function.session-set-cookie-params.php
+ * @param int $lifetime_or_options
+ * Lifetime of the
+ * session cookie, defined in seconds.
+ *
+ * @param string|null $path [optional]
+ * Path on the domain where
+ * the cookie will work. Use a single slash ('/') for all paths on the
+ * domain.
+ *
+ * @param string|null $domain [optional]
+ * Cookie domain, for
+ * example 'www.php.net'. To make cookies visible on all subdomains then
+ * the domain must be prefixed with a dot like '.php.net'.
+ *
+ * @param bool|null $secure [optional]
+ * If true cookie will only be sent over
+ * secure connections.
+ *
+ * @param bool|null $httponly [optional]
+ * If set to true then PHP will attempt to send the
+ * httponly
+ * flag when setting the session cookie.
+ *
+ * @return void|bool since 7.2.0 returns true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_set_cookie_params(int $lifetime_or_options, ?string $path = null, ?string $domain = null, ?bool $secure = null, ?bool $httponly = null) {}
+
+/**
+ * Get the session cookie parameters
+ * @link https://php.net/manual/en/function.session-get-cookie-params.php
+ * @return array an array with the current session cookie information, the array
+ * contains the following items:
+ * "lifetime" - The
+ * lifetime of the cookie in seconds.
+ * "path" - The path where
+ * information is stored.
+ * "domain" - The domain
+ * of the cookie.
+ * "secure" - The cookie
+ * should only be sent over secure connections.
+ * "httponly" - The
+ * cookie can only be accessed through the HTTP protocol.
+ */
+#[ArrayShape(["lifetime" => "int", "path" => "string", "domain" => "string", "secure" => "bool", "httponly" => "bool", "samesite" => "string"])]
+function session_get_cookie_params(): array {}
+
+/**
+ * Write session data and end session
+ * @link https://php.net/manual/en/function.session-write-close.php
+ * @return void|bool since 7.2.0 returns true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_write_close() {}
+
+/**
+ * Alias of session_write_close
+ * @link https://php.net/manual/en/function.session-commit.php
+ * @return void|bool since 7.2.0 returns true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_commit() {}
+
+/**
+ * (PHP 5 >= 5.4.0)
+ * Returns the current session status
+ * @link https://php.net/manual/en/function.session-status.php
+ * @return int PHP_SESSION_DISABLED if sessions are disabled.
+ * PHP_SESSION_NONE if sessions are enabled, but none exists.
+ * PHP_SESSION_ACTIVE if sessions are enabled, and one exists.
+ * @since 5.4
+ */
+function session_status(): int {}
+
+/**
+ * (PHP 5 >= 5.6.0)
+ * Discard session array changes and finish session
+ * @link https://php.net/manual/en/function.session-abort.php
+ * @return void|bool since 7.2.0 returns true if a session was successfully reinitialized or false on failure.
+ * @since 5.6
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_abort() {}
+
+/**
+ * (PHP 5 >= 5.6.0)
+ * Re-initialize session array with original values
+ * @link https://php.net/manual/en/function.session-reset.php
+ * @return void|bool since 7.2.0 returns true if a session was successfully reinitialized or false on failure.
+ * @since 5.6
+ */
+#[LanguageLevelTypeAware(["7.2" => "bool"], default: "void")]
+function session_reset() {}
+
+// End of session v.
diff --git a/phpstorm-stubs/shmop/shmop.php b/phpstorm-stubs/shmop/shmop.php
new file mode 100644
index 0000000..23e30c6
--- /dev/null
+++ b/phpstorm-stubs/shmop/shmop.php
@@ -0,0 +1,112 @@
+
+ * System's id for the shared memory block.
+ * Can be passed as a decimal or hex.
+ *
+ * @param string $mode
+ * The flags that you can use:
+ * "a" for access (sets SHM_RDONLY for shmat)
+ * use this flag when you need to open an existing shared memory
+ * segment for read only
+ * @param int $permissions
+ * The permissions that you wish to assign to your memory segment, those
+ * are the same as permission for a file. Permissions need to be passed
+ * in octal form, like for example 0644
+ *
+ * @param int $size
+ * The size of the shared memory block you wish to create in bytes
+ *
+ * @return resource|false|Shmop On success shmop_open will return an id that you can
+ * use to access the shared memory segment you've created. FALSE is
+ * returned on failure.
+ */
+#[LanguageLevelTypeAware(["8.0" => "Shmop|false"], default: "resource|false")]
+function shmop_open(int $key, string $mode, int $permissions, int $size) {}
+
+/**
+ * Read data from shared memory block
+ * @link https://php.net/manual/en/function.shmop-read.php
+ * @param Shmop|resource $shmop
+ * The shared memory block identifier created by
+ * shmop_open
+ *
+ * @param int $offset
+ * Offset from which to start reading
+ *
+ * @param int $size
+ * The number of bytes to read
+ *
+ * @return string|false the data or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function shmop_read(#[LanguageLevelTypeAware(["8.0" => "Shmop"], default: "resource")] $shmop, int $offset, int $size) {}
+
+/**
+ * Close shared memory block
+ * @link https://php.net/manual/en/function.shmop-close.php
+ * @param Shmop|resource $shmop
+ * The shared memory block identifier created by
+ * shmop_open
+ *
+ * @return void No value is returned.
+ */
+#[Deprecated(since: '8.0')]
+function shmop_close(#[LanguageLevelTypeAware(["8.0" => "Shmop"], default: "resource")] $shmop): void {}
+
+/**
+ * Get size of shared memory block
+ * @link https://php.net/manual/en/function.shmop-size.php
+ * @param Shmop|resource $shmop
+ * The shared memory block identifier created by
+ * shmop_open
+ *
+ * @return int an int, which represents the number of bytes the shared memory
+ * block occupies.
+ */
+function shmop_size(#[LanguageLevelTypeAware(["8.0" => "Shmop"], default: "resource")] $shmop): int {}
+
+/**
+ * Write data into shared memory block
+ * @link https://php.net/manual/en/function.shmop-write.php
+ * @param Shmop|resource $shmop
+ * The shared memory block identifier created by
+ * shmop_open
+ *
+ * @param string $data
+ * A string to write into shared memory block
+ *
+ * @param int $offset
+ * Specifies where to start writing data inside the shared memory
+ * segment.
+ *
+ * @return int|false The size of the written data, or FALSE on
+ * failure.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function shmop_write(#[LanguageLevelTypeAware(["8.0" => "Shmop"], default: "resource")] $shmop, string $data, int $offset) {}
+
+/**
+ * Delete shared memory block
+ * @link https://php.net/manual/en/function.shmop-delete.php
+ * @param Shmop|resource $shmop
+ * The shared memory block identifier created by
+ * shmop_open
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function shmop_delete(#[LanguageLevelTypeAware(["8.0" => "Shmop"], default: "resource")] $shmop): bool {}
+
+/**
+ * @since 8.0
+ */
+final class Shmop {}
+
+// End of shmop v.
diff --git a/phpstorm-stubs/simdjson/simdjson.php b/phpstorm-stubs/simdjson/simdjson.php
new file mode 100644
index 0000000..962e847
--- /dev/null
+++ b/phpstorm-stubs/simdjson/simdjson.php
@@ -0,0 +1,95 @@
+getCode().
+ * This can be compared against the `SIMDJSON_ERR_*` constants.
+ *
+ * Before simdjson 2.1.0, a regular RuntimeException with an error code of 0 was thrown.
+ */
+class SimdJsonException extends RuntimeException {}
+
+/**
+ * Thrown for error conditions on fields such as $depth that are not expected to be
+ * from user-provided JSON, with similar behavior to php 8.0.
+ *
+ * NOTE: https://www.php.net/valueerror was added in php 8.0.
+ * In older php versions, this extends Error instead.
+ *
+ * When support for php 8.0 is dropped completely,
+ * a major release of simdjson will likely switch to a standard ValueError.
+ */
+class SimdJsonValueError extends ValueError {}
diff --git a/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient.php b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient.php
new file mode 100644
index 0000000..bd4779d
--- /dev/null
+++ b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient.php
@@ -0,0 +1,61 @@
+
+ */
+ public function dump(): array {}
+
+ /**
+ * @param string $name
+ * @param string $value
+ */
+ public function set(string $name, string $value): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setErrorCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setDrMsgCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setStatsCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setRebalanceCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setOffsetCommitCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setLogCb(callable $callback): void {}
+
+ /**
+ * @param callable $callback
+ */
+ public function setOAuthBearerTokenRefreshCb(callable $callback): void {}
+}
diff --git a/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Consumer.php b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Consumer.php
new file mode 100644
index 0000000..6ad9b8e
--- /dev/null
+++ b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Consumer.php
@@ -0,0 +1,84 @@
+
+ */
+ public array $headers;
+
+ /**
+ * @return string
+ */
+ public function getErrorString(): string {}
+}
diff --git a/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Metadata.php b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Metadata.php
new file mode 100644
index 0000000..04e8ae3
--- /dev/null
+++ b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/Metadata.php
@@ -0,0 +1,31 @@
+|null $headers
+ * @param int|null $timestampMs
+ * @throws Exception
+ */
+ public function producev(int $partition, int $msgFlags, ?string $payload = null, ?string $key = null, ?array $headers = null, ?int $timestampMs = null): void {}
+}
diff --git a/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/TopicPartition.php b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/TopicPartition.php
new file mode 100644
index 0000000..9144b90
--- /dev/null
+++ b/phpstorm-stubs/simple_kafka_client/SimpleKafkaClient/TopicPartition.php
@@ -0,0 +1,51 @@
+
+ */
+function kafka_get_err_descs(): array {}
+
+/**
+ * Returns an offset value that is $offset before the tail of the topic
+ *
+ * @param int $offset
+ * @return int
+ */
+function kafka_offset_tail(int $offset): int {}
+
+/**
+ * Retrieve the current number of threads in use by librdkafka.
+ *
+ * @return int
+ */
+function kafka_thread_cnt(): int {}
diff --git a/phpstorm-stubs/snappy/snappy/snappy.php b/phpstorm-stubs/snappy/snappy/snappy.php
new file mode 100644
index 0000000..ac139a9
--- /dev/null
+++ b/phpstorm-stubs/snappy/snappy/snappy.php
@@ -0,0 +1,17 @@
+
+ * - SNMP_VALUE_LIBRARY
- The return values will be as returned by the Net-SNMP library.
+ * - SNMP_VALUE_PLAIN
- The return values will be the plain value without the SNMP type hint.
+ * - SNMP_VALUE_OBJECT
- The return values will be objects with the properties "value" and "type", where the latter is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The way "value" is returned is based on which one of SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set
+ *
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.max-oids
+ */
+ public $valueretrieval;
+
+ /**
+ * @var bool Value of quick_print within the NET-SNMP library
+ * Sets the value of quick_print within the NET-SNMP library. When this is set (1), the SNMP library will return 'quick printed' values. This means that just the value will be printed. When quick_print is not enabled (default) the UCD SNMP library prints extra information including the type of the value (i.e. IpAddress or OID). Additionally, if quick_print is not enabled, the library prints additional hex values for all strings of three characters or less.
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.quick-print
+ */
+ public $quick_print;
+
+ /**
+ * @var bool Controls the way enum values are printed
+ *
Parameter toggles if walk/get etc. should automatically lookup enum values in the MIB and return them together with their human readable string.
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.enum-print
+ */
+ public $enum_print;
+
+ /**
+ * @var int Controls OID output format
+ *
OID .1.3.6.1.2.1.1.3.0 representation for various oid_output_format values
+ *
+ * - SNMP_OID_OUTPUT_FULL
- .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
+ * - SNMP_OID_OUTPUT_NUMERIC
- .1.3.6.1.2.1.1.3.0
+ * - SNMP_OID_OUTPUT_MODULE
- DISMAN-EVENT-MIB::sysUpTimeInstance
+ * - SNMP_OID_OUTPUT_SUFFIX
- sysUpTimeInstance
+ * - SNMP_OID_OUTPUT_UCD
- system.sysUpTime.sysUpTimeInstance
+ * - SNMP_OID_OUTPUT_NONE
- Undefined
+ *
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.oid-output-format
+ */
+ public $oid_output_format;
+
+ /**
+ * @var bool Controls disabling check for increasing OID while walking OID tree
+ * Some SNMP agents are known for returning OIDs out of order but can complete the walk anyway. Other agents return OIDs that are out of order and can cause SNMP::walk() to loop indefinitely until memory limit will be reached. PHP SNMP library by default performs OID increasing check and stops walking on OID tree when it detects possible loop with issuing warning about non-increasing OID faced. Set oid_increasing_check to FALSE to disable this check.
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.oid-increasing-check
+ */
+ public $oid_increasing_check;
+
+ /**
+ * @var int Controls which failures will raise SNMPException instead of warning. Use bitwise OR'ed SNMP::ERRNO_* constants. By default all SNMP exceptions are disabled.
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.exceptions-enabled
+ */
+ public $exceptions_enabled;
+
+ /**
+ * @var array Read-only property with remote agent configuration: hostname, port, default timeout, default retries count
+ * @link https://secure.php.net/manual/en/class.snmp.php#snmp.props.info
+ */
+ public $info;
+ public const VERSION_1 = 0;
+ public const VERSION_2c = 1;
+ public const VERSION_2C = 1;
+ public const VERSION_3 = 3;
+ public const ERRNO_NOERROR = 0;
+ public const ERRNO_ANY = 126;
+ public const ERRNO_GENERIC = 2;
+ public const ERRNO_TIMEOUT = 4;
+ public const ERRNO_ERROR_IN_REPLY = 8;
+ public const ERRNO_OID_NOT_INCREASING = 16;
+ public const ERRNO_OID_PARSING_ERROR = 32;
+ public const ERRNO_MULTIPLE_SET_QUERIES = 64;
+
+ /**
+ * Creates SNMP instance representing session to remote SNMP agent
+ * @link https://php.net/manual/en/snmp.construct.php
+ * @param int $version
SNMP protocol version:
+ * SNMP::VERSION_1,
+ * SNMP::VERSION_2C,
+ * SNMP::VERSION_3.
+ * @param string $hostname The SNMP agent. hostname may be suffixed with
+ * optional SNMP agent port after colon. IPv6 addresses must be enclosed in square
+ * brackets if used with port. If FQDN is used for hostname
+ * it will be resolved by php-snmp library, not by Net-SNMP engine. Usage
+ * of IPv6 addresses when specifying FQDN may be forced by enclosing FQDN
+ * into square brackets. Here it is some examples:
+ *
+ *
+ * IPv4 with default port 127.0.0.1
+ * IPv6 with default port ::1 or [::1]
+ * IPv4 with specific port 127.0.0.1:1161
+ * IPv6 with specific port [::1]:1161
+ * FQDN with default port host.domain
+ * FQDN with specific port host.domain:1161
+ * FQDN with default port, force usage of IPv6 address [host.domain]
+ * FQDN with specific port, force usage of IPv6 address [host.domain]:1161
+ *
+ *
+ * @param string $community The purpuse of community is
+ * SNMP version specific:
+ *
+ *
+ * SNMP::VERSION_1 SNMP community
+ * SNMP::VERSION_2C SNMP community
+ * SNMP::VERSION_3 SNMPv3 securityName
+ *
+ *
+ * @param int $timeout [optional] The number of microseconds until the first timeout.
+ * @param int $retries [optional] The number of retries in case timeout occurs.
+ * @since 5.4
+ */
+ public function __construct($version, $hostname, $community, $timeout = 1000000, $retries = 5) {}
+
+ /**
+ * Close SNMP session
+ * @link https://php.net/manual/en/snmp.close.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.4
+ */
+ public function close() {}
+
+ /**
+ * Configures security-related SNMPv3 session parameters
+ * @link https://php.net/manual/en/snmp.setsecurity.php
+ * @param string $sec_level the security level (noAuthNoPriv|authNoPriv|authPriv)
+ * @param string $auth_protocol [optional] the authentication protocol (MD5 or SHA)
+ * @param string $auth_passphrase [optional] the authentication pass phrase
+ * @param string $priv_protocol [optional] the privacy protocol (DES or AES)
+ * @param string $priv_passphrase [optional] the privacy pass phrase
+ * @param string $contextName [optional] the context name
+ * @param string $contextEngineID [optional] the context EngineID
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.4
+ */
+ public function setSecurity($sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $contextName, $contextEngineID) {}
+
+ /**
+ * Fetch an SNMP object
+ * @link https://php.net/manual/en/snmp.get.php
+ * @param mixed $object_id The SNMP object (OID) or objects
+ * @param bool $preserve_keys [optional] When object_id is a array and preserve_keys set to TRUE keys in results will be taken exactly as in object_id, otherwise SNMP::oid_output_format property is used to determinate the form of keys.
+ * @return mixed SNMP objects requested as string or array
+ * depending on object_id type or FALSE on error.
+ * @since 5.4
+ */
+ public function get($object_id, $preserve_keys = false) {}
+
+ /**
+ * Fetch an SNMP object which
+ * follows the given object id
+ * @link https://php.net/manual/en/snmp.getnext.php
+ * @param mixed $object_id
+ * The SNMP object (OID) or objects
+ *
+ * @return mixed SNMP objects requested as string or array
+ * depending on object_id type or FALSE on error.
+ * @since 5.4
+ */
+ public function getnext($object_id) {}
+
+ /**
+ * Fetch SNMP object subtree
+ * @link https://php.net/manual/en/snmp.walk.php
+ * @param string $object_id Root of subtree to be fetched
+ * @param bool $suffix_as_keys [optional] By default full OID notation is used for keys in output array. If set to TRUE subtree prefix will be removed from keys leaving only suffix of object_id.
+ * @param int $max_repetitions [optional] This specifies the maximum number of iterations over the repeating variables. The default is to use this value from SNMP object.
+ * @param int $non_repeaters [optional] This specifies the number of supplied variables that should not be iterated over. The default is to use this value from SNMP object.
+ * @return array|false associative array of the SNMP object ids and their values on success or FALSE on error.
+ * When a SNMP error occures SNMP::getErrno and
+ * SNMP::getError can be used for retrieving error
+ * number (specific to SNMP extension, see class constants) and error message
+ * respectively.
+ * @since 5.4
+ */
+ public function walk($object_id, $suffix_as_keys = false, $max_repetitions, $non_repeaters) {}
+
+ /**
+ * Set the value of an SNMP object
+ * @link https://php.net/manual/en/snmp.set.php
+ * @param string $object_id The SNMP object id
+ * @since 5.4
+ *
+ * When count of OIDs in object_id array is greater than
+ * max_oids object property set method will have to use multiple queries
+ * to perform requested value updates. In this case type and value checks
+ * are made per-chunk so second or subsequent requests may fail due to
+ * wrong type or value for OID requested. To mark this a warning is
+ * raised when count of OIDs in object_id array is greater than max_oids.
+ * When count of OIDs in object_id array is greater than max_oids object property set method will have to use multiple queries to perform requested value updates. In this case type and value checks are made per-chunk so second or subsequent requests may fail due to wrong type or value for OID requested. To mark this a warning is raised when count of OIDs in object_id array is greater than max_oids.
+ * @param mixed $type The MIB defines the type of each object id. It has to be specified as a single character from the below list.
+ * types:
+ *
+ *
+ * = The type is taken from the MIB
+ * i INTEGER
+ * u INTEGER
+ * s STRING
+ * x HEX STRING
+ * d DECIMAL STRING
+ * n NULLOBJ
+ * o OBJID
+ * t TIMETICKS
+ * a IPADDRESS
+ * b BITS
+ *
+ *
+ *
+ * If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
+ *
+ * types:
+ *
+ *
+ * U unsigned int64
+ * I signed int64
+ * F float
+ * D double
+ *
+ *
+ *
+ * Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and
+ * the 'u' unsigned type is also used for handling Gauge32 values.
+ *
+ *
+ *
+ * If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as
+ * the type parameter for all object ids as the type can then be automatically read from the MIB.
+ *
+ *
+ *
+ * Note that there are two ways to set a variable of the type BITS like e.g.
+ * "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
+ *
+ *
+ * -
+ * Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
+ *
+ * -
+ * Using type "x" and a hex number but without(!) the usual "0x" prefix.
+ *
+ *
+ *
+ * See examples section for more details.
+ *
+ * @param mixed $value
+ * The new value.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function set($object_id, $type, $value) {}
+
+ /**
+ * Get last error code
+ * @link https://php.net/manual/en/snmp.geterrno.php
+ * @return int one of SNMP error code values described in constants chapter.
+ * @since 5.4
+ */
+ public function getErrno() {}
+
+ /**
+ * Get last error message
+ * @link https://php.net/manual/en/snmp.geterror.php
+ * @return string String describing error from last SNMP request.
+ * @since 5.4
+ */
+ public function getError() {}
+}
+
+/**
+ * Represents an error raised by SNMP. You should not throw a
+ * SNMPException from your own code.
+ * See Exceptions for more
+ * information about Exceptions in PHP.
+ * @link https://php.net/manual/en/class.snmpexception.php
+ */
+class SNMPException extends RuntimeException
+{
+ /**
+ * @var string Textual error message. Exception::getMessage() to access it.
+ */
+ protected $message;
+
+ /**
+ * @var string SNMP library error code. Use Exception::getCode() to access it.
+ */
+ protected $code;
+}
+
+/**
+ * Fetch an SNMP object
+ * @link https://php.net/manual/en/function.snmpget.php
+ * @param string $hostname
+ * The SNMP agent.
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * The SNMP object.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return string|false SNMP object value on success or FALSE on error.
+ */
+function snmpget($hostname, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch the SNMP object which follows the given object id
+ * @link https://php.net/manual/en/function.snmpgetnext.php
+ * @param string $host The hostname of the SNMP agent (server).
+ * @param string $community The read community.
+ * @param string $object_id The SNMP object id which precedes the wanted one.
+ * @param int $timeout [optional] The number of microseconds until the first timeout.
+ * @param int $retries [optional] The number of times to retry if timeouts occur.
+ * @return string|false SNMP object value on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmpgetnext($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch all the SNMP objects from an agent
+ * @link https://php.net/manual/en/function.snmpwalk.php
+ * @param string $hostname
+ * The SNMP agent (server).
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * If NULL, object_id is taken as the root of
+ * the SNMP objects tree and all objects under that tree are returned as
+ * an array.
+ *
+ *
+ * If object_id is specified, all the SNMP objects
+ * below that object_id are returned.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional] The number of times to retry if timeouts occur.
+ * @return array an array of SNMP object values starting from the
+ * object_id as root or FALSE on error.
+ */
+function snmpwalk($hostname, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Return all objects including their respective object ID within the specified one
+ * @link https://php.net/manual/en/function.snmprealwalk.php
+ * @param string $host The hostname of the SNMP agent (server).
+ * @param string $community The read community.
+ * @param string $object_id The SNMP object id which precedes the wanted one.
+ * @param int $timeout [optional] The number of microseconds until the first timeout.
+ * @param int $retries [optional] The number of times to retry if timeouts occur.
+ * @return array|false an associative array of the SNMP object ids and their values on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmprealwalk($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Query for a tree of information about a network entity
+ * @link https://php.net/manual/en/function.snmpwalkoid.php
+ * @param string $hostname
+ * The SNMP agent.
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * If NULL, object_id is taken as the root of
+ * the SNMP objects tree and all objects under that tree are returned as
+ * an array.
+ *
+ *
+ * If object_id is specified, all the SNMP objects
+ * below that object_id are returned.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return array an associative array with object ids and their respective
+ * object value starting from the object_id
+ * as root or FALSE on error.
+ */
+function snmpwalkoid($hostname, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Set the value of an SNMP object
+ * @link https://php.net/manual/en/function.snmpset.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $community
+ * The write community.
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param string $type The MIB defines the type of each object id. It has to be specified as a single character from the below list.
+ *
+ * types
+ * = The type is taken from the MIB
+ * i INTEGER
+ * u INTEGER
+ * s STRING
+ * x HEX STRING
+ * d DECIMAL STRING
+ * n NULLOBJ
+ * o OBJID
+ * t TIMETICKS
+ * a IPADDRESS
+ * b BITS
+ *
+ * If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
+ *
+ * types
+ * U unsigned int64
+ * I signed int64
+ * F float
+ * D double
+ *
+ * Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and
+ * the 'u' unsigned type is also used for handling Gauge32 values.
+ *
+ * If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as
+ * the type parameter for all object ids as the type can then be automatically read from the MIB.
+ *
+ * Note that there are two ways to set a variable of the type BITS like e.g.
+ * "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
+ *
+ * Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
+ * Using type "x" and a hex number but without(!) the usual "0x" prefix.
+ * See examples section for more details.
+ *
+ * @param mixed $value
+ * The new value.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown.
+ * If an unknown or invalid OID is specified the warning probably reads "Could not add variable".
+ *
+ */
+function snmpset($host, $community, $object_id, $type, $value, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetches the current value of the UCD library's quick_print setting
+ * @link https://php.net/manual/en/function.snmp-get-quick-print.php
+ * @return bool TRUE if quick_print is on, FALSE otherwise.
+ */
+function snmp_get_quick_print() {}
+
+/**
+ * Set the value of quick_print within the UCD SNMP library
+ * @link https://php.net/manual/en/function.snmp-set-quick-print.php
+ * @param bool $quick_print
+ * @return bool No value is returned.
+ */
+function snmp_set_quick_print($quick_print) {}
+
+/**
+ * Return all values that are enums with their enum value instead of the raw integer
+ * @link https://php.net/manual/en/function.snmp-set-enum-print.php
+ * @param int $enum_print
+ * As the value is interpreted as boolean by the Net-SNMP library, it can only be "0" or "1".
+ *
+ * @return bool
+ */
+function snmp_set_enum_print($enum_print) {}
+
+/**
+ * Set the OID output format
+ * @link https://php.net/manual/en/function.snmp-set-oid-output-format.php
+ * @param int $oid_format [optional]
+ * OID .1.3.6.1.2.1.1.3.0 representation for various oid_format values
+ * SNMP_OID_OUTPUT_FULL .iso.org.dod.internet.mgmt.mib-2.system.sysUpTime.sysUpTimeInstance
+ * SNMP_OID_OUTPUT_NUMERIC .1.3.6.1.2.1.1.3.0
+ *
+ * Begining from PHP 5.4.0 four additional constants available:
+ *
+ * SNMP_OID_OUTPUT_MODULE DISMAN-EVENT-MIB::sysUpTimeInstance
+ * SNMP_OID_OUTPUT_SUFFIX sysUpTimeInstance
+ * SNMP_OID_OUTPUT_UCD system.sysUpTime.sysUpTimeInstance
+ * SNMP_OID_OUTPUT_NONE Undefined
+ *
+ *
+ * @return bool No value is returned.
+ */
+function snmp_set_oid_output_format($oid_format = SNMP_OID_OUTPUT_MODULE) {}
+
+/**
+ * Set the oid output format
+ * @link https://php.net/manual/en/function.snmp-set-oid-numeric-print.php
+ * @param int $oid_format
+ * @return void
+ */
+function snmp_set_oid_numeric_print($oid_format) {}
+
+/**
+ * Fetch an SNMP object
+ * @link https://php.net/manual/en/function.snmp2-get.php
+ * @param string $host
+ * The SNMP agent.
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * The SNMP object.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return string|false SNMP object value on success or FALSE on error.
+ */
+function snmp2_get($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch the SNMP object which follows the given object id
+ * @link https://php.net/manual/en/function.snmp2-getnext.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * The SNMP object id which precedes the wanted one.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return string|false SNMP object value on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmp2_getnext($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch all the SNMP objects from an agent
+ * @link https://php.net/manual/en/function.snmp2-walk.php
+ * @param string $host
+ * The SNMP agent (server).
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * If NULL, object_id is taken as the root of
+ * the SNMP objects tree and all objects under that tree are returned as
+ * an array.
+ *
+ *
+ * If object_id is specified, all the SNMP objects
+ * below that object_id are returned.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return array an array of SNMP object values starting from the
+ * object_id as root or FALSE on error.
+ */
+function snmp2_walk($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Return all objects including their respective object ID within the specified one
+ * @link https://php.net/manual/en/function.snmp2-real-walk.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $community
+ * The read community.
+ *
+ * @param string $object_id
+ * The SNMP object id which precedes the wanted one.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return array|false an associative array of the SNMP object ids and their values on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmp2_real_walk($host, $community, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Set the value of an SNMP object
+ * @link https://php.net/manual/en/function.snmp2-set.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $community
+ * The write community.
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param string $type The MIB defines the type of each object id. It has to be specified as a single character from the below list.
+ *
+ * types:
+ *
+ * = The type is taken from the MIB
+ * i INTEGER
+ * u INTEGER
+ * s STRING
+ * x HEX STRING
+ * d DECIMAL STRING
+ * n NULLOBJ
+ * o OBJID
+ * t TIMETICKS
+ * a IPADDRESS
+ * b BITS
+ *
+ * If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
+ *
+ * types:
+ *
+ * U unsigned int64
+ * I signed int64
+ * F float
+ * D double
+ *
+ * Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and
+ * the 'u' unsigned type is also used for handling Gauge32 values.
+ *
+ * If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as
+ * the type parameter for all object ids as the type can then be automatically read from the MIB.
+ *
+ * Note that there are two ways to set a variable of the type BITS like e.g.
+ * "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
+ *
+ * Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
+ * Using type "x" and a hex number but without(!) the usual "0x" prefix.
+ * See examples section for more details.
+ *
+ * @param string $value
+ * The new value.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown.
+ * If an unknown or invalid OID is specified the warning probably reads "Could not add variable".
+ *
+ */
+function snmp2_set($host, $community, $object_id, $type, $value, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch an SNMP object
+ * @link https://php.net/manual/en/function.snmp3-get.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $sec_name
+ * the security name, usually some kind of username
+ *
+ * @param string $sec_level
+ * the security level (noAuthNoPriv|authNoPriv|authPriv)
+ *
+ * @param string $auth_protocol
+ * the authentication protocol (MD5 or SHA)
+ *
+ * @param string $auth_passphrase
+ * the authentication pass phrase
+ *
+ * @param string $priv_protocol
+ * the privacy protocol (DES or AES)
+ *
+ * @param string $priv_passphrase
+ * the privacy pass phrase
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return string|false SNMP object value on success or FALSE on error.
+ */
+function snmp3_get($host, $sec_name, $sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch the SNMP object which follows the given object id
+ * @link https://php.net/manual/en/function.snmp3-getnext.php
+ * @param string $host
+ * The hostname of the
+ * SNMP agent (server).
+ *
+ * @param string $sec_name
+ * the security name, usually some kind of username
+ *
+ * @param string $sec_level
+ * the security level (noAuthNoPriv|authNoPriv|authPriv)
+ *
+ * @param string $auth_protocol
+ * the authentication protocol (MD5 or SHA)
+ *
+ * @param string $auth_passphrase
+ * the authentication pass phrase
+ *
+ * @param string $priv_protocol
+ * the privacy protocol (DES or AES)
+ *
+ * @param string $priv_passphrase
+ * the privacy pass phrase
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return string|false SNMP object value on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmp3_getnext($host, $sec_name, $sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Fetch all the SNMP objects from an agent
+ * @link https://php.net/manual/en/function.snmp3-walk.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $sec_name
+ * the security name, usually some kind of username
+ *
+ * @param string $sec_level
+ * the security level (noAuthNoPriv|authNoPriv|authPriv)
+ *
+ * @param string $auth_protocol
+ * the authentication protocol (MD5 or SHA)
+ *
+ * @param string $auth_passphrase
+ * the authentication pass phrase
+ *
+ * @param string $priv_protocol
+ * the privacy protocol (DES or AES)
+ *
+ * @param string $priv_passphrase
+ * the privacy pass phrase
+ *
+ * @param string $object_id
+ * If NULL, object_id is taken as the root of
+ * the SNMP objects tree and all objects under that tree are returned as
+ * an array.
+ *
+ *
+ * If object_id is specified, all the SNMP objects
+ * below that object_id are returned.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return array an array of SNMP object values starting from the
+ * object_id as root or FALSE on error.
+ */
+function snmp3_walk($host, $sec_name, $sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $object_id, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Return all objects including their respective object ID within the specified one
+ * @link https://php.net/manual/en/function.snmp3-real-walk.php
+ * @param string $host
+ * The hostname of the
+ * SNMP agent (server).
+ *
+ * @param string $sec_name
+ * the security name, usually some kind of username
+ *
+ * @param string $sec_level
+ * the security level (noAuthNoPriv|authNoPriv|authPriv)
+ *
+ * @param string $auth_protocol
+ * the authentication protocol (MD5 or SHA)
+ *
+ * @param string $auth_passphrase
+ * the authentication pass phrase
+ *
+ * @param string $priv_protocol
+ * the privacy protocol (DES or AES)
+ *
+ * @param string $priv_passphrase
+ * the privacy pass phrase
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return array an associative array of the
+ * SNMP object ids and their values on success or FALSE on error.
+ * In case of an error, an E_WARNING message is shown.
+ */
+function snmp3_real_walk($host, $sec_name, $sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $object_id, $timeout = null, $retries = null) {}
+
+/**
+ * Set the value of an SNMP object
+ * @link https://php.net/manual/en/function.snmp3-set.php
+ * @param string $host
+ * The hostname of the SNMP agent (server).
+ *
+ * @param string $sec_name
+ * the security name, usually some kind of username
+ *
+ * @param string $sec_level
+ * the security level (noAuthNoPriv|authNoPriv|authPriv)
+ *
+ * @param string $auth_protocol
+ * the authentication protocol (MD5 or SHA)
+ *
+ * @param string $auth_passphrase
+ * the authentication pass phrase
+ *
+ * @param string $priv_protocol
+ * the privacy protocol (DES or AES)
+ *
+ * @param string $priv_passphrase
+ * the privacy pass phrase
+ *
+ * @param string $object_id
+ * The SNMP object id.
+ *
+ * @param string $type The MIB defines the type of each object id. It has to be specified as a single character from the below list.
+ * types:
+ *
+ * = The type is taken from the MIB
+ * i INTEGER
+ * u INTEGER
+ * s STRING
+ * x HEX STRING
+ * d DECIMAL STRING
+ * n NULLOBJ
+ * o OBJID
+ * t TIMETICKS
+ * a IPADDRESS
+ * b BITS
+ *
+ * If OPAQUE_SPECIAL_TYPES was defined while compiling the SNMP library, the following are also valid:
+ *
+ * types:
+ *
+ * U unsigned int64
+ * I signed int64
+ * F float
+ * D double
+ *
+ * Most of these will use the obvious corresponding ASN.1 type. 's', 'x', 'd' and 'b' are all different ways of specifying an OCTET STRING value, and
+ * the 'u' unsigned type is also used for handling Gauge32 values.
+ *
+ *
+ * If the MIB-Files are loaded by into the MIB Tree with "snmp_read_mib" or by specifying it in the libsnmp config, '=' may be used as
+ * the type parameter for all object ids as the type can then be automatically read from the MIB.
+ *
+ *
+ * Note that there are two ways to set a variable of the type BITS like e.g.
+ * "SYNTAX BITS {telnet(0), ftp(1), http(2), icmp(3), snmp(4), ssh(5), https(6)}":
+ *
+ *
+ * Using type "b" and a list of bit numbers. This method is not recommended since GET query for the same OID would return e.g. 0xF8.
+ * Using type "x" and a hex number but without(!) the usual "0x" prefix.
+ * See examples section for more details.
+ *
+ * @param string $value
+ * The new value
+ *
+ * @param int $timeout [optional]
+ * The number of microseconds until the first timeout.
+ *
+ * @param int $retries [optional]
+ * The number of times to retry if timeouts occur.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * If the SNMP host rejects the data type, an E_WARNING message like "Warning: Error in packet. Reason: (badValue) The value given has the wrong type or length." is shown.
+ * If an unknown or invalid OID is specified the warning probably reads "Could not add variable".
+ *
+ */
+function snmp3_set($host, $sec_name, $sec_level, $auth_protocol, $auth_passphrase, $priv_protocol, $priv_passphrase, $object_id, $type, $value, $timeout = 1000000, $retries = 5) {}
+
+/**
+ * Specify the method how the SNMP values will be returned
+ * @link https://php.net/manual/en/function.snmp-set-valueretrieval.php
+ * @param int $method
+ * types
+ *
+ * SNMP_VALUE_LIBRARY
+ * The return values will be as returned by the Net-SNMP library.
+ *
+ *
+ * SNMP_VALUE_PLAIN
+ * The return values will be the plain value without the SNMP type hint.
+ *
+ *
+ * SNMP_VALUE_OBJECT
+ *
+ * The return values will be objects with the properties "value" and "type", where the latter
+ * is one of the SNMP_OCTET_STR, SNMP_COUNTER etc. constants. The
+ * way "value" is returned is based on which one of constants
+ * SNMP_VALUE_LIBRARY, SNMP_VALUE_PLAIN is set.
+ *
+ *
+ *
+ * @return bool
+ */
+function snmp_set_valueretrieval($method) {}
+
+/**
+ * Return the method how the SNMP values will be returned
+ * @link https://php.net/manual/en/function.snmp-get-valueretrieval.php
+ * @return int OR-ed combitantion of constants ( SNMP_VALUE_LIBRARY or
+ * SNMP_VALUE_PLAIN ) with
+ * possible SNMP_VALUE_OBJECT set.
+ */
+function snmp_get_valueretrieval() {}
+
+/**
+ * Reads and parses a MIB file into the active MIB tree
+ * @link https://php.net/manual/en/function.snmp-read-mib.php
+ * @param string $filename The filename of the MIB.
+ * @return bool
+ */
+function snmp_read_mib($filename) {}
+
+/**
+ * As of 5.4
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_SUFFIX', 1);
+
+/**
+ * As of 5.4
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_MODULE', 2);
+
+/**
+ * As of 5.2
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_FULL', 3);
+
+/**
+ * As of 5.2
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_NUMERIC', 4);
+
+/**
+ * As of 5.4
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_UCD', 5);
+
+/**
+ * As of 5.4
+ * @link https://php.net/manual/en/snmp.constants.php
+ */
+define('SNMP_OID_OUTPUT_NONE', 6);
+define('SNMP_VALUE_LIBRARY', 0);
+define('SNMP_VALUE_PLAIN', 1);
+define('SNMP_VALUE_OBJECT', 2);
+define('SNMP_BIT_STR', 3);
+define('SNMP_OCTET_STR', 4);
+define('SNMP_OPAQUE', 68);
+define('SNMP_NULL', 5);
+define('SNMP_OBJECT_ID', 6);
+define('SNMP_IPADDRESS', 64);
+define('SNMP_COUNTER', 66);
+define('SNMP_UNSIGNED', 66);
+define('SNMP_TIMETICKS', 67);
+define('SNMP_UINTEGER', 71);
+define('SNMP_INTEGER', 2);
+define('SNMP_COUNTER64', 70);
+
+// End of snmp v.0.1
diff --git a/phpstorm-stubs/soap/soap.php b/phpstorm-stubs/soap/soap.php
new file mode 100644
index 0000000..c25efc3
--- /dev/null
+++ b/phpstorm-stubs/soap/soap.php
@@ -0,0 +1,1208 @@
+
+ * URI of the WSDL file or NULL if working in
+ * non-WSDL mode.
+ *
+ *
+ * During development, WSDL caching may be disabled by the
+ * use of the soap.wsdl_cache_ttl php.ini setting
+ * otherwise changes made to the WSDL file will have no effect until
+ * soap.wsdl_cache_ttl is expired.
+ *
+ * @param array $options [optional]
+ * An array of options. If working in WSDL mode, this parameter is optional.
+ * If working in non-WSDL mode, the location and
+ * uri options must be set, where location
+ * is the URL of the SOAP server to send the request to, and uri
+ * is the target namespace of the SOAP service.
+ *
+ *
+ * The style and use options only work in
+ * non-WSDL mode. In WSDL mode, they come from the WSDL file.
+ *
+ *
+ * The soap_version option should be one of either
+ * SOAP_1_1 or SOAP_1_2 to
+ * select SOAP 1.1 or 1.2, respectively. If omitted, 1.1 is used.
+ *
+ *
+ * For HTTP authentication, the login and
+ * password options can be used to supply credentials.
+ * For making an HTTP connection through
+ * a proxy server, the options proxy_host,
+ * proxy_port, proxy_login
+ * and proxy_password are also available.
+ * For HTTPS client certificate authentication use
+ * local_cert and passphrase options. An
+ * authentication may be supplied in the authentication
+ * option. The authentication method may be either
+ * SOAP_AUTHENTICATION_BASIC (default) or
+ * SOAP_AUTHENTICATION_DIGEST.
+ *
+ *
+ * The compression option allows to use compression
+ * of HTTP SOAP requests and responses.
+ *
+ *
+ * The encoding option defines internal character
+ * encoding. This option does not change the encoding of SOAP requests (it is
+ * always utf-8), but converts strings into it.
+ *
+ *
+ * The trace option enables tracing of request so faults
+ * can be backtraced. This defaults to FALSE
+ *
+ *
+ * The classmap option can be used to map some WSDL
+ * types to PHP classes. This option must be an array with WSDL types
+ * as keys and names of PHP classes as values.
+ *
+ *
+ * Setting the boolean trace option enables use of the
+ * methods
+ * SoapClient->__getLastRequest,
+ * SoapClient->__getLastRequestHeaders,
+ * SoapClient->__getLastResponse and
+ * SoapClient->__getLastResponseHeaders.
+ *
+ *
+ * The exceptions option is a boolean value defining whether
+ * soap errors throw exceptions of type
+ * SoapFault.
+ *
+ *
+ * The connection_timeout option defines a timeout in seconds
+ * for the connection to the SOAP service. This option does not define a timeout
+ * for services with slow responses. To limit the time to wait for calls to finish the
+ * default_socket_timeout setting
+ * is available.
+ *
+ *
+ * The typemap option is an array of type mappings.
+ * Type mapping is an array with keys type_name,
+ * type_ns (namespace URI), from_xml
+ * (callback accepting one string parameter) and to_xml
+ * (callback accepting one object parameter).
+ *
+ *
+ * The cache_wsdl option is one of
+ * WSDL_CACHE_NONE,
+ * WSDL_CACHE_DISK,
+ * WSDL_CACHE_MEMORY or
+ * WSDL_CACHE_BOTH.
+ *
+ *
+ * The user_agent option specifies string to use in
+ * User-Agent header.
+ *
+ *
+ * The stream_context option is a resource
+ * for context.
+ *
+ *
+ * The features option is a bitmask of
+ * SOAP_SINGLE_ELEMENT_ARRAYS,
+ * SOAP_USE_XSI_ARRAY_TYPE,
+ * SOAP_WAIT_ONE_WAY_CALLS.
+ *
+ *
+ * The keep_alive option is a boolean value defining whether
+ * to send the Connection: Keep-Alive header or
+ * Connection: close.
+ *
+ *
+ * The ssl_method option is one of
+ * SOAP_SSL_METHOD_TLS,
+ * SOAP_SSL_METHOD_SSLv2,
+ * SOAP_SSL_METHOD_SSLv3 or
+ * SOAP_SSL_METHOD_SSLv23.
+ *
+ * @since 5.0.1
+ *
+ * @removed 8.0
+ */
+ public function SoapClient($wsdl, array $options = null) {}
+
+ /**
+ * SoapClient constructor
+ * @link https://php.net/manual/en/soapclient.construct.php
+ * @param string|null $wsdl
+ * URI of the WSDL file or NULL if working in
+ * non-WSDL mode.
+ *
+ *
+ * During development, WSDL caching may be disabled by the
+ * use of the soap.wsdl_cache_ttl php.ini setting
+ * otherwise changes made to the WSDL file will have no effect until
+ * soap.wsdl_cache_ttl is expired.
+ *
+ * @param array $options [optional]
+ * An array of options. If working in WSDL mode, this parameter is optional.
+ * If working in non-WSDL mode, the location and
+ * uri options must be set, where location
+ * is the URL of the SOAP server to send the request to, and uri
+ * is the target namespace of the SOAP service.
+ *
+ *
+ * The style and use options only work in
+ * non-WSDL mode. In WSDL mode, they come from the WSDL file.
+ *
+ *
+ * The soap_version option should be one of either
+ * SOAP_1_1 or SOAP_1_2 to
+ * select SOAP 1.1 or 1.2, respectively. If omitted, 1.1 is used.
+ *
+ *
+ * For HTTP authentication, the login and
+ * password options can be used to supply credentials.
+ * For making an HTTP connection through
+ * a proxy server, the options proxy_host,
+ * proxy_port, proxy_login
+ * and proxy_password are also available.
+ * For HTTPS client certificate authentication use
+ * local_cert and passphrase options. An
+ * authentication may be supplied in the authentication
+ * option. The authentication method may be either
+ * SOAP_AUTHENTICATION_BASIC (default) or
+ * SOAP_AUTHENTICATION_DIGEST.
+ *
+ *
+ * The compression option allows to use compression
+ * of HTTP SOAP requests and responses.
+ *
+ *
+ * The encoding option defines internal character
+ * encoding. This option does not change the encoding of SOAP requests (it is
+ * always utf-8), but converts strings into it.
+ *
+ *
+ * The trace option enables tracing of request so faults
+ * can be backtraced. This defaults to FALSE
+ *
+ *
+ * The classmap option can be used to map some WSDL
+ * types to PHP classes. This option must be an array with WSDL types
+ * as keys and names of PHP classes as values.
+ *
+ *
+ * Setting the boolean trace option enables use of the
+ * methods
+ * SoapClient->__getLastRequest,
+ * SoapClient->__getLastRequestHeaders,
+ * SoapClient->__getLastResponse and
+ * SoapClient->__getLastResponseHeaders.
+ *
+ *
+ * The exceptions option is a boolean value defining whether
+ * soap errors throw exceptions of type
+ * SoapFault.
+ *
+ *
+ * The connection_timeout option defines a timeout in seconds
+ * for the connection to the SOAP service. This option does not define a timeout
+ * for services with slow responses. To limit the time to wait for calls to finish the
+ * default_socket_timeout setting
+ * is available.
+ *
+ *
+ * The typemap option is an array of type mappings.
+ * Type mapping is an array with keys type_name,
+ * type_ns (namespace URI), from_xml
+ * (callback accepting one string parameter) and to_xml
+ * (callback accepting one object parameter).
+ *
+ *
+ * The cache_wsdl option is one of
+ * WSDL_CACHE_NONE,
+ * WSDL_CACHE_DISK,
+ * WSDL_CACHE_MEMORY or
+ * WSDL_CACHE_BOTH.
+ *
+ *
+ * The user_agent option specifies string to use in
+ * User-Agent header.
+ *
+ *
+ * The stream_context option is a resource
+ * for context.
+ *
+ *
+ * The features option is a bitmask of
+ * SOAP_SINGLE_ELEMENT_ARRAYS,
+ * SOAP_USE_XSI_ARRAY_TYPE,
+ * SOAP_WAIT_ONE_WAY_CALLS.
+ *
+ *
+ * The keep_alive option is a boolean value defining whether
+ * to send the Connection: Keep-Alive header or
+ * Connection: close.
+ *
+ *
+ * The ssl_method option is one of
+ * SOAP_SSL_METHOD_TLS,
+ * SOAP_SSL_METHOD_SSLv2,
+ * SOAP_SSL_METHOD_SSLv3 or
+ * SOAP_SSL_METHOD_SSLv23.
+ *
+ * @throws SoapFault A SoapFault exception will be thrown if the wsdl URI cannot be loaded.
+ * @since 5.0.1
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $wsdl,
+ array $options = []
+ ) {}
+
+ /**
+ * @link https://php.net/manual/en/soapclient.call.php
+ * @param string $name
+ * @param array $args
+ * @return mixed
+ * @since 5.0.1
+ */
+ #[Deprecated]
+ #[TentativeType]
+ public function __call(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ array $args
+ ): mixed {}
+
+ /**
+ * Calls a SOAP function
+ * @link https://php.net/manual/en/soapclient.soapcall.php
+ * @param string $name
+ * The name of the SOAP function to call.
+ *
+ * @param array $args
+ * An array of the arguments to pass to the function. This can be either
+ * an ordered or an associative array. Note that most SOAP servers require
+ * parameter names to be provided, in which case this must be an
+ * associative array.
+ *
+ * @param array $options [optional]
+ * An associative array of options to pass to the client.
+ *
+ *
+ * The location option is the URL of the remote Web service.
+ *
+ *
+ * The uri option is the target namespace of the SOAP service.
+ *
+ *
+ * The soapaction option is the action to call.
+ *
+ * @param mixed $inputHeaders [optional]
+ * An array of headers to be sent along with the SOAP request.
+ *
+ * @param array &$outputHeaders [optional]
+ * If supplied, this array will be filled with the headers from the SOAP response.
+ *
+ * @return mixed SOAP functions may return one, or multiple values. If only one value is returned
+ * by the SOAP function, the return value of __soapCall will be
+ * a simple value (e.g. an integer, a string, etc). If multiple values are
+ * returned, __soapCall will return
+ * an associative array of named output parameters.
+ *
+ *
+ * On error, if the SoapClient object was constructed with the exceptions
+ * option set to FALSE, a SoapFault object will be returned. If this
+ * option is not set, or is set to TRUE, then a SoapFault object will
+ * be thrown as an exception.
+ * @throws SoapFault A SoapFault exception will be thrown if an error occurs
+ * and the SoapClient was constructed with the exceptions option not set, or
+ * set to TRUE.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __soapCall(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ array $args,
+ #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] $options = null,
+ $inputHeaders = null,
+ &$outputHeaders = null
+ ): mixed {}
+
+ /**
+ * Returns last SOAP request
+ * @link https://php.net/manual/en/soapclient.getlastrequest.php
+ * @return string|null The last SOAP request, as an XML string.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getLastRequest(): ?string {}
+
+ /**
+ * Returns last SOAP response
+ * @link https://php.net/manual/en/soapclient.getlastresponse.php
+ * @return string|null The last SOAP response, as an XML string.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getLastResponse(): ?string {}
+
+ /**
+ * Returns the SOAP headers from the last request
+ * @link https://php.net/manual/en/soapclient.getlastrequestheaders.php
+ * @return string|null The last SOAP request headers.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getLastRequestHeaders(): ?string {}
+
+ /**
+ * Returns the SOAP headers from the last response
+ * @link https://php.net/manual/en/soapclient.getlastresponseheaders.php
+ * @return string|null The last SOAP response headers.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getLastResponseHeaders(): ?string {}
+
+ /**
+ * Returns list of available SOAP functions
+ * @link https://php.net/manual/en/soapclient.getfunctions.php
+ * @return array|null The array of SOAP function prototypes, detailing the return type,
+ * the function name and type-hinted parameters.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getFunctions(): ?array {}
+
+ /**
+ * Returns a list of SOAP types
+ * @link https://php.net/manual/en/soapclient.gettypes.php
+ * @return array|null The array of SOAP types, detailing all structures and types.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __getTypes(): ?array {}
+
+ /**
+ * Returns a list of all cookies
+ * @link https://php.net/manual/en/soapclient.getcookies.php
+ * @return array The array of all cookies
+ * @since 5.4.3
+ */
+ #[TentativeType]
+ public function __getCookies(): array {}
+
+ /**
+ * Performs a SOAP request
+ * @link https://php.net/manual/en/soapclient.dorequest.php
+ * @param string $request
+ * The XML SOAP request.
+ *
+ * @param string $location
+ * The URL to request.
+ *
+ * @param string $action
+ * The SOAP action.
+ *
+ * @param int $version
+ * The SOAP version.
+ *
+ * @param bool|int $oneWay [optional]
+ * If $oneWay is set to 1, this method returns nothing.
+ * Use this where a response is not expected.
+ *
+ * @return string|null The XML SOAP response.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __doRequest(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $request,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $location,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $action,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $version,
+ #[LanguageLevelTypeAware(["8.0" => 'bool'], default: 'int')] $oneWay = false
+ ): ?string {}
+
+ /**
+ * The __setCookie purpose
+ * @link https://php.net/manual/en/soapclient.setcookie.php
+ * @param string $name
+ * The name of the cookie.
+ *
+ * @param string $value [optional]
+ * The value of the cookie. If not specified, the cookie will be deleted.
+ *
+ * @return void No value is returned.
+ * @since 5.0.4
+ */
+ #[TentativeType]
+ public function __setCookie(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(["8.0" => "string|null"], default: "string")] $value
+ ): void {}
+
+ /**
+ * Sets the location of the Web service to use
+ * @link https://php.net/manual/en/soapclient.setlocation.php
+ * @param string $location [optional]
+ * The new endpoint URL.
+ *
+ * @return string|null The old endpoint URL.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function __setLocation(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $location = null): ?string {}
+
+ /**
+ * Sets SOAP headers for subsequent calls
+ * @link https://php.net/manual/en/soapclient.setsoapheaders.php
+ * @param mixed $headers
+ * The headers to be set. It could be SoapHeader
+ * object or array of SoapHeader objects.
+ * If not specified or set to NULL, the headers will be deleted.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.0.5
+ */
+ #[TentativeType]
+ public function __setSoapHeaders(
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $headers,
+ #[PhpStormStubsElementAvailable(from: '7.0')] $headers = null
+ ): bool {}
+}
+
+/**
+ * A class representing a variable or object for use with SOAP services.
+ * @link https://php.net/manual/en/class.soapvar.php
+ */
+class SoapVar
+{
+ /**
+ * @var int
+ * @since 8.1
+ */
+ public int $enc_type;
+
+ /**
+ * @var mixed
+ * @since 8.1
+ */
+ public mixed $enc_value;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $enc_stype;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $enc_ns;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $enc_name;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $enc_namens;
+
+ /**
+ * SoapVar constructor
+ * @link https://php.net/manual/en/soapvar.construct.php
+ * @param mixed $data
+ * The data to pass or return.
+ *
+ * @param int|null $encoding
+ * The encoding ID, one of the XSD_... constants.
+ *
+ * @param string $typeName [optional]
+ * The type name.
+ *
+ * @param string $typeNamespace [optional]
+ * The type namespace.
+ *
+ * @param string $nodeName [optional]
+ * The XML node name.
+ *
+ * @param string $nodeNamespace [optional]
+ * The XML node namespace.
+ *
+ * @since 5.0.1
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(["8.0" => 'mixed'], default: '')] $data,
+ #[LanguageLevelTypeAware(["7.1" => "int|null"], default: "int")] $encoding,
+ #[LanguageLevelTypeAware(["8.0" => "string|null"], default: "string")] $typeName,
+ #[LanguageLevelTypeAware(["8.0" => 'string|null'], default: '')] $typeNamespace = null,
+ #[LanguageLevelTypeAware(["8.0" => 'string|null'], default: '')] $nodeName = null,
+ #[LanguageLevelTypeAware(["8.0" => 'string|null'], default: '')] $nodeNamespace = null
+ ) {}
+
+ /**
+ * SoapVar constructor
+ * @link https://php.net/manual/en/soapvar.construct.php
+ * @param mixed $data
+ * The data to pass or return.
+ *
+ * @param int|null $encoding
+ * The encoding ID, one of the XSD_... constants.
+ *
+ * @param string $type_name [optional]
+ * The type name.
+ *
+ * @param string $type_namespace [optional]
+ * The type namespace.
+ *
+ * @param string $node_name [optional]
+ * The XML node name.
+ *
+ * @param string $node_namespace [optional]
+ * The XML node namespace.
+ *
+ * @since 5.0.1
+ * @removed 8.0
+ */
+ public function SoapVar($data, $encoding, $type_name = '', $type_namespace = '', $node_name = '', $node_namespace = '') {}
+}
+
+/**
+ * The SoapServer class provides a server for the SOAP 1.1 and SOAP 1.2 protocols. It can be used with or without a WSDL service description.
+ * @link https://php.net/manual/en/class.soapserver.php
+ */
+class SoapServer
+{
+ /**
+ * SoapServer constructor
+ * @link https://php.net/manual/en/soapserver.soapserver.php
+ * @param mixed $wsdl
+ * To use the SoapServer in WSDL mode, pass the URI of a WSDL file.
+ * Otherwise, pass NULL and set the uri option to the
+ * target namespace for the server.
+ *
+ * @param array $options [optional]
+ * Allow setting a default SOAP version (soap_version),
+ * internal character encoding (encoding),
+ * and actor URI (actor).
+ *
+ *
+ * The classmap option can be used to map some WSDL
+ * types to PHP classes. This option must be an array with WSDL types
+ * as keys and names of PHP classes as values.
+ *
+ *
+ * The typemap option is an array of type mappings.
+ * Type mapping is an array with keys type_name,
+ * type_ns (namespace URI), from_xml
+ * (callback accepting one string parameter) and to_xml
+ * (callback accepting one object parameter).
+ *
+ *
+ * The cache_wsdl option is one of
+ * WSDL_CACHE_NONE,
+ * WSDL_CACHE_DISK,
+ * WSDL_CACHE_MEMORY or
+ * WSDL_CACHE_BOTH.
+ *
+ *
+ * There is also a features option which can be set to
+ * SOAP_WAIT_ONE_WAY_CALLS,
+ * SOAP_SINGLE_ELEMENT_ARRAYS,
+ * SOAP_USE_XSI_ARRAY_TYPE.
+ *
+ * @since 5.0.1
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $wsdl,
+ array $options = []
+ ) {}
+
+ /**
+ * SoapServer constructor
+ * @link https://php.net/manual/en/soapserver.soapserver.php
+ * @param mixed $wsdl
+ * To use the SoapServer in WSDL mode, pass the URI of a WSDL file.
+ * Otherwise, pass NULL and set the uri option to the
+ * target namespace for the server.
+ *
+ * @param array $options [optional]
+ * Allow setting a default SOAP version (soap_version),
+ * internal character encoding (encoding),
+ * and actor URI (actor).
+ *
+ *
+ * The classmap option can be used to map some WSDL
+ * types to PHP classes. This option must be an array with WSDL types
+ * as keys and names of PHP classes as values.
+ *
+ *
+ * The typemap option is an array of type mappings.
+ * Type mapping is an array with keys type_name,
+ * type_ns (namespace URI), from_xml
+ * (callback accepting one string parameter) and to_xml
+ * (callback accepting one object parameter).
+ *
+ *
+ * The cache_wsdl option is one of
+ * WSDL_CACHE_NONE,
+ * WSDL_CACHE_DISK,
+ * WSDL_CACHE_MEMORY or
+ * WSDL_CACHE_BOTH.
+ *
+ *
+ * There is also a features option which can be set to
+ * SOAP_WAIT_ONE_WAY_CALLS,
+ * SOAP_SINGLE_ELEMENT_ARRAYS,
+ * SOAP_USE_XSI_ARRAY_TYPE.
+ *
+ * @since 5.0.1
+ * @removed 8.0
+ */
+ public function SoapServer($wsdl, array $options = null) {}
+
+ /**
+ * Sets SoapServer persistence mode
+ * @link https://php.net/manual/en/soapserver.setpersistence.php
+ * @param int $mode
+ * One of the SOAP_PERSISTENCE_XXX constants.
+ *
+ *
+ * SOAP_PERSISTENCE_REQUEST - SoapServer data does not persist between
+ * requests. This is the default behavior of any SoapServer
+ * object after setClass is called.
+ *
+ *
+ * SOAP_PERSISTENCE_SESSION - SoapServer data persists between requests.
+ * This is accomplished by serializing the SoapServer class data into
+ * $_SESSION['_bogus_session_name'], because of this
+ * session_start must be called before this persistence mode is set.
+ *
+ * @return void No value is returned.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function setPersistence(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode): void {}
+
+ /**
+ * Sets the class which handles SOAP requests
+ * @link https://php.net/manual/en/soapserver.setclass.php
+ * @param string $class
+ * The name of the exported class.
+ *
+ * @param mixed ...$args [optional] These optional parameters will be passed to the default class constructor during object creation.
+ * @return void No value is returned.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function setClass(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $class,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] ...$args
+ ): void {}
+
+ /**
+ * Sets the object which will be used to handle SOAP requests
+ * @link https://php.net/manual/en/soapserver.setobject.php
+ * @param object $object
+ * The object to handle the requests.
+ *
+ * @return void No value is returned.
+ */
+ #[TentativeType]
+ public function setObject(object $object): void {}
+
+ /**
+ * Adds one or more functions to handle SOAP requests
+ * @link https://php.net/manual/en/soapserver.addfunction.php
+ * @param mixed $functions
+ * To export one function, pass the function name into this parameter as
+ * a string.
+ *
+ *
+ * To export several functions, pass an array of function names.
+ *
+ *
+ * To export all the functions, pass a special constant SOAP_FUNCTIONS_ALL.
+ *
+ *
+ * functions must receive all input arguments in the same
+ * order as defined in the WSDL file (They should not receive any output parameters
+ * as arguments) and return one or more values. To return several values they must
+ * return an array with named output parameters.
+ *
+ * @return void No value is returned.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function addFunction($functions): void {}
+
+ /**
+ * Returns list of defined functions
+ * @link https://php.net/manual/en/soapserver.getfunctions.php
+ * @return array An array of the defined functions.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function getFunctions(): array {}
+
+ /**
+ * Handles a SOAP request
+ * @link https://php.net/manual/en/soapserver.handle.php
+ * @param string $request [optional]
+ * The SOAP request. If this argument is omitted, the request is assumed to be
+ * in the raw POST data of the HTTP request.
+ *
+ * @return void No value is returned.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function handle(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $request = null): void {}
+
+ /**
+ * Issue SoapServer fault indicating an error
+ * @link https://php.net/manual/en/soapserver.fault.php
+ * @param string $code
+ * The error code to return
+ *
+ * @param string $string
+ * A brief description of the error
+ *
+ * @param string $actor [optional]
+ * A string identifying the actor that caused the fault.
+ *
+ * @param string $details [optional]
+ * More details of the fault
+ *
+ * @param string $name [optional]
+ * The name of the fault. This can be used to select a name from a WSDL file.
+ *
+ * @return void No value is returned.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function fault(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $code,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $actor = '',
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $details = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name = ''
+ ): void {}
+
+ /**
+ * Add a SOAP header to the response
+ * @link https://php.net/manual/en/soapserver.addsoapheader.php
+ * @param SoapHeader $header
+ * The header to be returned.
+ *
+ * @return void No value is returned.
+ * @since 5.0.1
+ */
+ #[TentativeType]
+ public function addSoapHeader(SoapHeader $header): void {}
+}
+
+/**
+ * Represents a SOAP fault.
+ * @link https://php.net/manual/en/class.soapfault.php
+ */
+class SoapFault extends Exception
+{
+ /**
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')]
+ public $faultcode;
+
+ /**
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $faultstring;
+
+ /**
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string|null'], default: '')]
+ public $faultactor;
+
+ /**
+ * @var mixed
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: '')]
+ public $detail;
+
+ /**
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $faultname;
+
+ /**
+ * @var mixed
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: '')]
+ public $headerfault;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $faultcodens;
+
+ /**
+ * @var string|null
+ * @since 8.1
+ */
+ public string|null $_name;
+
+ /**
+ * SoapFault constructor
+ * @link https://php.net/manual/en/soapfault.soapfault.php
+ * @param string $code
+ * The error code of the SoapFault.
+ *
+ * @param string $string
+ * The error message of the SoapFault.
+ *
+ * @param string $actor [optional]
+ * A string identifying the actor that caused the error.
+ *
+ * @param mixed $details [optional]
+ * More details about the cause of the error.
+ *
+ * @param string $name [optional]
+ * Can be used to select the proper fault encoding from WSDL.
+ *
+ * @param mixed $headerFault [optional]
+ * Can be used during SOAP header handling to report an error in the
+ * response header.
+ *
+ * @since 5.0.1
+ */
+ #[Pure]
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'array|string|null'], default: '')] $code,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $actor = null,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $details = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $headerFault = null
+ ) {}
+
+ /**
+ * SoapFault constructor
+ * @link https://php.net/manual/en/soapfault.soapfault.php
+ * @param string $faultcode
+ * The error code of the SoapFault.
+ *
+ * @param string $faultstring
+ * The error message of the SoapFault.
+ *
+ * @param string $faultactor [optional]
+ * A string identifying the actor that caused the error.
+ *
+ * @param string $detail [optional]
+ * More details about the cause of the error.
+ *
+ * @param string $faultname [optional]
+ * Can be used to select the proper fault encoding from WSDL.
+ *
+ * @param mixed $headerfault [optional]
+ * Can be used during SOAP header handling to report an error in the
+ * response header.
+ *
+ * @since 5.0.1
+ * @removed 8.0
+ */
+ public function SoapFault($faultcode, $faultstring, $faultactor = null, $detail = null, $faultname = null, $headerfault = null) {}
+
+ /**
+ * Obtain a string representation of a SoapFault
+ * @link https://php.net/manual/en/soapfault.tostring.php
+ * @return string A string describing the SoapFault.
+ * @since 5.0.1
+ */
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')]
+ public function __toString() {}
+}
+
+/**
+ * Represents parameter to a SOAP call.
+ * @link https://php.net/manual/en/class.soapparam.php
+ */
+class SoapParam
+{
+ /**
+ * @var string
+ * @since 8.1
+ */
+ public string $param_name;
+
+ /**
+ * @var mixed
+ * @since 8.1
+ */
+ public mixed $param_data;
+
+ /**
+ * SoapParam constructor
+ * @link https://php.net/manual/en/soapparam.soapparam.php
+ * @param mixed $data
+ * The data to pass or return. This parameter can be passed directly as PHP
+ * value, but in this case it will be named as paramN and
+ * the SOAP service may not understand it.
+ *
+ * @param string $name
+ * The parameter name.
+ *
+ * @since 5.0.1
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name
+ ) {}
+
+ /**
+ * SoapParam constructor
+ * @link https://php.net/manual/en/soapparam.soapparam.php
+ * @param mixed $data
+ * The data to pass or return. This parameter can be passed directly as PHP
+ * value, but in this case it will be named as paramN and
+ * the SOAP service may not understand it.
+ *
+ * @param string $name
+ * The parameter name.
+ *
+ * @since 5.0.1
+ * @removed 8.0
+ */
+ public function SoapParam($data, $name) {}
+}
+
+/**
+ * Represents a SOAP header.
+ * @link https://php.net/manual/en/class.soapheader.php
+ */
+class SoapHeader
+{
+ /**
+ * @var string
+ * @since 8.1
+ */
+ public string $namespace;
+
+ /**
+ * @var string
+ * @since 8.1
+ */
+ public string $name;
+
+ /**
+ * @var mixed
+ * @since 8.1
+ */
+ public mixed $data;
+
+ /**
+ * @var bool
+ * @since 8.1
+ */
+ public bool $mustUnderstand;
+
+ /**
+ * @var string|int|null
+ * @since 8.1
+ */
+ public string|int|null $actor;
+
+ /**
+ * SoapHeader constructor
+ * @link https://www.php.net/manual/en/soapheader.construct.php
+ * @param string $namespace
+ * The namespace of the SOAP header element.
+ *
+ * @param string $name
+ * The name of the SoapHeader object.
+ *
+ * @param mixed $data [optional]
+ * A SOAP header's content. It can be a PHP value or a
+ * SoapVar object.
+ *
+ * @param bool $mustUnderstand [optional]
+ * @param string $actor [optional]
+ * Value of the actor attribute of the SOAP header
+ * element.
+ *
+ * @since 5.0.1
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $data,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $mustUnderstand = false,
+ #[LanguageLevelTypeAware(['8.0' => 'string|int|null'], default: '')] $actor = null
+ ) {}
+
+ /**
+ * SoapHeader constructor
+ * @link https://php.net/manual/en/soapheader.soapheader.php
+ * @param string $namespace
+ * The namespace of the SOAP header element.
+ *
+ * @param string $name
+ * The name of the SoapHeader object.
+ *
+ * @param mixed $data [optional]
+ * A SOAP header's content. It can be a PHP value or a
+ * SoapVar object.
+ *
+ * @param bool $mustunderstand [optional]
+ * @param string $actor [optional]
+ * Value of the actor attribute of the SOAP header
+ * element.
+ *
+ * @since 5.0.1
+ * @removed 8.0
+ */
+ public function SoapHeader($namespace, $name, $data = null, $mustunderstand = false, $actor = null) {}
+}
+
+/**
+ * Set whether to use the SOAP error handler
+ * @link https://php.net/manual/en/function.use-soap-error-handler.php
+ * @param bool $enable [optional]
+ * Set to TRUE to send error details to clients.
+ *
+ * @return bool the original value.
+ */
+function use_soap_error_handler(bool $enable = true): bool {}
+
+/**
+ * Checks if a SOAP call has failed
+ * @link https://php.net/manual/en/function.is-soap-fault.php
+ * @param mixed $object
+ * The object to test.
+ *
+ * @return bool This will return TRUE on error, and FALSE otherwise.
+ */
+function is_soap_fault(mixed $object): bool {}
+
+define('SOAP_1_1', 1);
+define('SOAP_1_2', 2);
+define('SOAP_PERSISTENCE_SESSION', 1);
+define('SOAP_PERSISTENCE_REQUEST', 2);
+define('SOAP_FUNCTIONS_ALL', 999);
+define('SOAP_ENCODED', 1);
+define('SOAP_LITERAL', 2);
+define('SOAP_RPC', 1);
+define('SOAP_DOCUMENT', 2);
+define('SOAP_ACTOR_NEXT', 1);
+define('SOAP_ACTOR_NONE', 2);
+define('SOAP_ACTOR_UNLIMATERECEIVER', 3);
+define('SOAP_COMPRESSION_ACCEPT', 32);
+define('SOAP_COMPRESSION_GZIP', 0);
+define('SOAP_COMPRESSION_DEFLATE', 16);
+define('SOAP_AUTHENTICATION_BASIC', 0);
+define('SOAP_AUTHENTICATION_DIGEST', 1);
+define('UNKNOWN_TYPE', 999998);
+define('XSD_STRING', 101);
+define('XSD_BOOLEAN', 102);
+define('XSD_DECIMAL', 103);
+define('XSD_FLOAT', 104);
+define('XSD_DOUBLE', 105);
+define('XSD_DURATION', 106);
+define('XSD_DATETIME', 107);
+define('XSD_TIME', 108);
+define('XSD_DATE', 109);
+define('XSD_GYEARMONTH', 110);
+define('XSD_GYEAR', 111);
+define('XSD_GMONTHDAY', 112);
+define('XSD_GDAY', 113);
+define('XSD_GMONTH', 114);
+define('XSD_HEXBINARY', 115);
+define('XSD_BASE64BINARY', 116);
+define('XSD_ANYURI', 117);
+define('XSD_QNAME', 118);
+define('XSD_NOTATION', 119);
+define('XSD_NORMALIZEDSTRING', 120);
+define('XSD_TOKEN', 121);
+define('XSD_LANGUAGE', 122);
+define('XSD_NMTOKEN', 123);
+define('XSD_NAME', 124);
+define('XSD_NCNAME', 125);
+define('XSD_ID', 126);
+define('XSD_IDREF', 127);
+define('XSD_IDREFS', 128);
+define('XSD_ENTITY', 129);
+define('XSD_ENTITIES', 130);
+define('XSD_INTEGER', 131);
+define('XSD_NONPOSITIVEINTEGER', 132);
+define('XSD_NEGATIVEINTEGER', 133);
+define('XSD_LONG', 134);
+define('XSD_INT', 135);
+define('XSD_SHORT', 136);
+define('XSD_BYTE', 137);
+define('XSD_NONNEGATIVEINTEGER', 138);
+define('XSD_UNSIGNEDLONG', 139);
+define('XSD_UNSIGNEDINT', 140);
+define('XSD_UNSIGNEDSHORT', 141);
+define('XSD_UNSIGNEDBYTE', 142);
+define('XSD_POSITIVEINTEGER', 143);
+define('XSD_NMTOKENS', 144);
+define('XSD_ANYTYPE', 145);
+define('XSD_ANYXML', 147);
+define('APACHE_MAP', 200);
+define('SOAP_ENC_OBJECT', 301);
+define('SOAP_ENC_ARRAY', 300);
+define('XSD_1999_TIMEINSTANT', 401);
+define('XSD_NAMESPACE', "http://www.w3.org/2001/XMLSchema");
+define('XSD_1999_NAMESPACE', "http://www.w3.org/1999/XMLSchema");
+define('SOAP_SINGLE_ELEMENT_ARRAYS', 1);
+define('SOAP_WAIT_ONE_WAY_CALLS', 2);
+define('SOAP_USE_XSI_ARRAY_TYPE', 4);
+define('WSDL_CACHE_NONE', 0);
+define('WSDL_CACHE_DISK', 1);
+define('WSDL_CACHE_MEMORY', 2);
+define('WSDL_CACHE_BOTH', 3);
+
+/**
+ * @link https://php.net/manual/en/soap.constants.php
+ * @since 5.5
+ */
+define('SOAP_SSL_METHOD_TLS', 0);
+
+/**
+ * @link https://php.net/manual/en/soap.constants.php
+ * @since 5.5
+ */
+define('SOAP_SSL_METHOD_SSLv2', 1);
+
+/**
+ * @link https://php.net/manual/en/soap.constants.php
+ * @since 5.5
+ */
+define('SOAP_SSL_METHOD_SSLv3', 2);
+
+/**
+ * @link https://php.net/manual/en/soap.constants.php
+ * @since 5.5
+ */
+define('SOAP_SSL_METHOD_SSLv23', 3);
+
+// End of soap v.
diff --git a/phpstorm-stubs/sockets/sockets.php b/phpstorm-stubs/sockets/sockets.php
new file mode 100644
index 0000000..b119c19
--- /dev/null
+++ b/phpstorm-stubs/sockets/sockets.php
@@ -0,0 +1,2393 @@
+
+ * Get array with contents of getaddrinfo about the given hostname.
+ * @link https://www.php.net/manual/en/function.socket-addrinfo-lookup.php
+ * @param string $host
+ * Hostname to search.
+ *
+ * @param string $service [optional]
+ * The service to connect to. If service is a name, it is translated to the corresponding port number.
+ *
+ * @param array $hints
+ * Hints provide criteria for selecting addresses returned. You may specify the hints as defined by getadrinfo.
+ *
+ * @return AddressInfo[]|false of AddrInfo resource handles that can be used with the other socket_addrinfo functions.
+ * @since 7.2
+ */
+function socket_addrinfo_lookup(string $host, ?string $service, array $hints = []): array|false {}
+
+/**
+ * Create a Socket resource, and connect it to the provided AddrInfo resource.
+ * The return value of this function may be used with the rest of the socket functions.
+ * @link https://www.php.net/manual/en/function.socket-addrinfo-connect.php
+ * @param resource|AddressInfo $address
+ * Resource created from {@see socket_addrinfo_lookup()}
+ *
+ * @return resource|Socket|null|false Socket resource on success or NULL on failure.
+ * @since 7.2
+ */
+function socket_addrinfo_connect(AddressInfo $address): Socket|false {}
+
+/**
+ * (PHP 7 >= 7.2.0)
+ * Create a Socket resource, and bind it to the provided AddrInfo resource.
+ * The return value of this function may be used with {@see socket_listen()}.
+ * @link https://www.php.net/manual/en/function.socket-addrinfo-bind.php
+ * @param resource|AddressInfo $address
+ * Resource created from {@see socket_addrinfo_lookup()}
+ *
+ * @return resource|Socket|null|false Socket resource on success or NULL on failure.
+ * @since 7.2
+ */
+function socket_addrinfo_bind(AddressInfo $address): Socket|false {}
+
+/**
+ * (PHP 7 >= 7.2.0)
+ * Get information about addrinfo
+ * @link https://www.php.net/manual/en/function.socket-addrinfo-explain.php
+ * @param resource|AddressInfo $address
+ * Resource created from {@see socket_addrinfo_lookup()}
+ *
+ * @return array containing the fields in the addrinfo structure.
+ * @since 7.2
+ */
+#[ArrayShape([
+ 'ai_flags' => 'int',
+ 'ai_family' => 'int',
+ 'ai_socktype' => 'int',
+ 'ai_protocol' => 'int',
+ 'ai_canonname' => 'string',
+ 'ai_addr' => [
+ 'sin_port' => 'int',
+ 'sin_addr' => 'string',
+ 'sin6_port' => 'int',
+ 'sin6_addr' => 'string',
+ ]
+])]
+function socket_addrinfo_explain(AddressInfo $address): array {}
+
+/**
+ * Runs the select() system call on the given arrays of sockets with a specified timeout
+ * @link https://php.net/manual/en/function.socket-select.php
+ * @param array|null &$read
+ * The sockets listed in the read array will be
+ * watched to see if characters become available for reading (more
+ * precisely, to see if a read will not block - in particular, a socket
+ * resource is also ready on end-of-file, in which case a
+ * socket_read will return a zero length string).
+ *
+ * @param array|null &$write
+ * The sockets listed in the write array will be
+ * watched to see if a write will not block.
+ *
+ * @param array|null &$except
+ * The sockets listed in the except array will be
+ * watched for exceptions.
+ *
+ * @param int|null $seconds
+ * The tv_sec and tv_usec
+ * together form the timeout parameter. The
+ * timeout is an upper bound on the amount of time
+ * elapsed before socket_select return.
+ * tv_sec may be zero , causing
+ * socket_select to return immediately. This is useful
+ * for polling. If tv_sec is NULL (no timeout),
+ * socket_select can block indefinitely.
+ *
+ * @param int $microseconds [optional]
+ * @return int|false On success socket_select returns the number of
+ * socket resources contained in the modified arrays, which may be zero if
+ * the timeout expires before anything interesting happens. On error FALSE
+ * is returned. The error code can be retrieved with
+ * socket_last_error.
+ *
+ *
+ * Be sure to use the === operator when checking for an
+ * error. Since the socket_select may return 0 the
+ * comparison with == would evaluate to TRUE:
+ * Understanding socket_select's result
+ *
+ * $e = NULL;
+ * if (false === socket_select($r, $w, $e, 0)) {
+ * echo "socket_select() failed, reason: " .
+ * socket_strerror(socket_last_error()) . "\n";
+ * }
+ *
+ */
+function socket_select(?array &$read, ?array &$write, ?array &$except, ?int $seconds, int $microseconds = 0): int|false {}
+
+/**
+ * Create a socket (endpoint for communication)
+ * @link https://php.net/manual/en/function.socket-create.php
+ * @param int $domain
+ * The domain parameter specifies the protocol
+ * family to be used by the socket.
+ *
+ *
+ * Available address/protocol families
+ *
+ * Domain
+ * Description
+ *
+ *
+ * AF_INET
+ *
+ * IPv4 Internet based protocols. TCP and UDP are common protocols of
+ * this protocol family.
+ *
+ *
+ *
+ * AF_INET6
+ *
+ * IPv6 Internet based protocols. TCP and UDP are common protocols of
+ * this protocol family.
+ *
+ *
+ *
+ * AF_UNIX
+ *
+ * Local communication protocol family. High efficiency and low
+ * overhead make it a great form of IPC (Interprocess Communication).
+ *
+ *
+ *
+ * @param int $type
+ * The type parameter selects the type of communication
+ * to be used by the socket.
+ *
+ *
+ * Available socket types
+ *
+ * Type
+ * Description
+ *
+ *
+ * SOCK_STREAM
+ *
+ * Provides sequenced, reliable, full-duplex, connection-based byte streams.
+ * An out-of-band data transmission mechanism may be supported.
+ * The TCP protocol is based on this socket type.
+ *
+ *
+ *
+ * SOCK_DGRAM
+ *
+ * Supports datagrams (connectionless, unreliable messages of a fixed maximum length).
+ * The UDP protocol is based on this socket type.
+ *
+ *
+ *
+ * SOCK_SEQPACKET
+ *
+ * Provides a sequenced, reliable, two-way connection-based data transmission path for
+ * datagrams of fixed maximum length; a consumer is required to read an
+ * entire packet with each read call.
+ *
+ *
+ *
+ * SOCK_RAW
+ *
+ * Provides raw network protocol access. This special type of socket
+ * can be used to manually construct any type of protocol. A common use
+ * for this socket type is to perform ICMP requests (like ping).
+ *
+ *
+ *
+ * SOCK_RDM
+ *
+ * Provides a reliable datagram layer that does not guarantee ordering.
+ * This is most likely not implemented on your operating system.
+ *
+ *
+ *
+ * @param int $protocol
+ * The protocol parameter sets the specific
+ * protocol within the specified domain to be used
+ * when communicating on the returned socket. The proper value can be
+ * retrieved by name by using getprotobyname. If
+ * the desired protocol is TCP, or UDP the corresponding constants
+ * SOL_TCP, and SOL_UDP
+ * can also be used.
+ *
+ *
+ * Common protocols
+ *
+ * Name
+ * Description
+ *
+ *
+ * icmp
+ *
+ * The Internet Control Message Protocol is used primarily by gateways
+ * and hosts to report errors in datagram communication. The "ping"
+ * command (present in most modern operating systems) is an example
+ * application of ICMP.
+ *
+ *
+ *
+ * udp
+ *
+ * The User Datagram Protocol is a connectionless, unreliable,
+ * protocol with fixed record lengths. Due to these aspects, UDP
+ * requires a minimum amount of protocol overhead.
+ *
+ *
+ *
+ * tcp
+ *
+ * The Transmission Control Protocol is a reliable, connection based,
+ * stream oriented, full duplex protocol. TCP guarantees that all data packets
+ * will be received in the order in which they were sent. If any packet is somehow
+ * lost during communication, TCP will automatically retransmit the packet until
+ * the destination host acknowledges that packet. For reliability and performance
+ * reasons, the TCP implementation itself decides the appropriate octet boundaries
+ * of the underlying datagram communication layer. Therefore, TCP applications must
+ * allow for the possibility of partial record transmission.
+ *
+ *
+ *
+ * @return resource|Socket|false socket_create returns a socket resource on success,
+ * or FALSE on error. The actual error code can be retrieved by calling
+ * socket_last_error. This error code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ */
+function socket_create(int $domain, int $type, int $protocol): Socket|false {}
+
+/**
+ * @param resource|Socket $socket
+ * @return resource|Socket|false
+ */
+function socket_export_stream(Socket $socket) {}
+
+/**
+ * Opens a socket on port to accept connections
+ * @link https://php.net/manual/en/function.socket-create-listen.php
+ * @param int $port
+ * The port on which to listen on all interfaces.
+ *
+ * @param int $backlog [optional]
+ * The backlog parameter defines the maximum length
+ * the queue of pending connections may grow to.
+ * SOMAXCONN may be passed as
+ * backlog parameter, see
+ * socket_listen for more information.
+ *
+ * @return resource|Socket|false socket_create_listen returns a new socket resource
+ * on success or FALSE on error. The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ */
+function socket_create_listen(int $port, int $backlog = 128): Socket|false {}
+
+/**
+ * Creates a pair of indistinguishable sockets and stores them in an array
+ * @link https://php.net/manual/en/function.socket-create-pair.php
+ * @param int $domain
+ * The domain parameter specifies the protocol
+ * family to be used by the socket. See socket_create
+ * for the full list.
+ *
+ * @param int $type
+ * The type parameter selects the type of communication
+ * to be used by the socket. See socket_create for the
+ * full list.
+ *
+ * @param int $protocol
+ * The protocol parameter sets the specific
+ * protocol within the specified domain to be used
+ * when communicating on the returned socket. The proper value can be retrieved by
+ * name by using getprotobyname. If
+ * the desired protocol is TCP, or UDP the corresponding constants
+ * SOL_TCP, and SOL_UDP
+ * can also be used.
+ *
+ *
+ * See socket_create for the full list of supported
+ * protocols.
+ *
+ * @param array &$pair
+ * Reference to an array in which the two socket resources will be inserted.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function socket_create_pair(int $domain, int $type, int $protocol, &$pair): bool {}
+
+/**
+ * Accepts a connection on a socket
+ * @link https://php.net/manual/en/function.socket-accept.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create.
+ *
+ * @return resource|Socket|false a new socket resource on success, or FALSE on error. The actual
+ * error code can be retrieved by calling
+ * socket_last_error. This error code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ */
+function socket_accept(Socket $socket): Socket|false {}
+
+/**
+ * Sets nonblocking mode for file descriptor fd
+ * @link https://php.net/manual/en/function.socket-set-nonblock.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function socket_set_nonblock(Socket $socket): bool {}
+
+/**
+ * Sets blocking mode on a socket resource
+ * @link https://php.net/manual/en/function.socket-set-block.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function socket_set_block(Socket $socket): bool {}
+
+/**
+ * Listens for a connection on a socket
+ * @link https://php.net/manual/en/function.socket-listen.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create.
+ *
+ * @param int $backlog [optional]
+ * A maximum of backlog incoming connections will be
+ * queued for processing. If a connection request arrives with the queue
+ * full the client may receive an error with an indication of
+ * ECONNREFUSED, or, if the underlying protocol supports
+ * retransmission, the request may be ignored so that retries may succeed.
+ *
+ *
+ * The maximum number passed to the backlog
+ * parameter highly depends on the underlying platform. On Linux, it is
+ * silently truncated to SOMAXCONN. On win32, if
+ * passed SOMAXCONN, the underlying service provider
+ * responsible for the socket will set the backlog to a maximum
+ * reasonable value. There is no standard provision to
+ * find out the actual backlog value on this platform.
+ *
+ * @return bool TRUE on success or FALSE on failure. The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ */
+function socket_listen(Socket $socket, int $backlog = 0): bool {}
+
+/**
+ * Closes a socket resource
+ * @link https://php.net/manual/en/function.socket-close.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @return void No value is returned.
+ */
+function socket_close(Socket $socket): void {}
+
+/**
+ * Write to a socket
+ * @link https://php.net/manual/en/function.socket-write.php
+ * @param resource|Socket $socket
+ * @param string $data
+ * The buffer to be written.
+ *
+ * @param int|null $length
+ * The optional parameter length can specify an
+ * alternate length of bytes written to the socket. If this length is
+ * greater than the buffer length, it is silently truncated to the length
+ * of the buffer.
+ *
+ * @return int|false the number of bytes successfully written to the socket or FALSE on failure.
+ * The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ *
+ *
+ * It is perfectly valid for socket_write to
+ * return zero which means no bytes have been written. Be sure to use the
+ * === operator to check for FALSE in case of an
+ * error.
+ */
+function socket_write(Socket $socket, string $data, ?int $length = null): int|false {}
+
+/**
+ * Reads a maximum of length bytes from a socket
+ * @link https://php.net/manual/en/function.socket-read.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param int $length
+ * The maximum number of bytes read is specified by the
+ * length parameter. Otherwise you can use
+ * \r, \n,
+ * or \0 to end reading (depending on the type
+ * parameter, see below).
+ *
+ * @param int $mode [optional]
+ * Optional type parameter is a named constant:
+ * PHP_BINARY_READ (Default) - use the system
+ * recv() function. Safe for reading binary data.
+ * @return string|false socket_read returns the data as a string on success,
+ * or FALSE on error (including if the remote host has closed the
+ * connection). The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual representation of
+ * the error.
+ *
+ *
+ * socket_read returns a zero length string ("")
+ * when there is no more data to read.
+ */
+function socket_read(Socket $socket, int $length, int $mode = PHP_BINARY_READ): string|false {}
+
+/**
+ * Queries the local side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
+ * @link https://php.net/manual/en/function.socket-getsockname.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param string &$address
+ * If the given socket is of type AF_INET
+ * or AF_INET6, socket_getsockname
+ * will return the local IP address in appropriate notation (e.g.
+ * 127.0.0.1 or fe80::1) in the
+ * address parameter and, if the optional
+ * port parameter is present, also the associated port.
+ *
+ *
+ * If the given socket is of type AF_UNIX,
+ * socket_getsockname will return the Unix filesystem
+ * path (e.g. /var/run/daemon.sock) in the
+ * address parameter.
+ *
+ * @param int &$port [optional]
+ * If provided, this will hold the associated port.
+ *
+ * @return bool TRUE on success or FALSE on failure. socket_getsockname may also return
+ * FALSE if the socket type is not any of AF_INET,
+ * AF_INET6, or AF_UNIX, in which
+ * case the last socket error code is not updated.
+ */
+function socket_getsockname(Socket $socket, &$address, &$port = null): bool {}
+
+/**
+ * Queries the remote side of the given socket which may either result in host/port or in a Unix filesystem path, dependent on its type
+ * @link https://php.net/manual/en/function.socket-getpeername.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param string &$address
+ * If the given socket is of type AF_INET or
+ * AF_INET6, socket_getpeername
+ * will return the peers (remote) IP address in
+ * appropriate notation (e.g. 127.0.0.1 or
+ * fe80::1) in the address
+ * parameter and, if the optional port parameter is
+ * present, also the associated port.
+ *
+ *
+ * If the given socket is of type AF_UNIX,
+ * socket_getpeername will return the Unix filesystem
+ * path (e.g. /var/run/daemon.sock) in the
+ * address parameter.
+ *
+ * @param int &$port [optional]
+ * If given, this will hold the port associated to
+ * address.
+ *
+ * @return bool TRUE on success or FALSE on failure. socket_getpeername may also return
+ * FALSE if the socket type is not any of AF_INET,
+ * AF_INET6, or AF_UNIX, in which
+ * case the last socket error code is not updated.
+ */
+function socket_getpeername(Socket $socket, &$address, &$port = null): bool {}
+
+/**
+ * Initiates a connection on a socket
+ * @link https://php.net/manual/en/function.socket-connect.php
+ * @param resource|Socket $socket
+ * @param string $address
+ * The address parameter is either an IPv4 address
+ * in dotted-quad notation (e.g. 127.0.0.1) if
+ * socket is AF_INET, a valid
+ * IPv6 address (e.g. ::1) if IPv6 support is enabled and
+ * socket is AF_INET6
+ * or the pathname of a Unix domain socket, if the socket family is
+ * AF_UNIX.
+ *
+ * @param int|null $port
+ * The port parameter is only used and is mandatory
+ * when connecting to an AF_INET or an
+ * AF_INET6 socket, and designates
+ * the port on the remote host to which a connection should be made.
+ *
+ * @return bool TRUE on success or FALSE on failure. The error code can be retrieved with
+ * socket_last_error. This code may be passed to
+ * socket_strerror to get a textual explanation of the
+ * error.
+ *
+ *
+ * If the socket is non-blocking then this function returns FALSE with an
+ * error Operation now in progress.
+ */
+function socket_connect(Socket $socket, string $address, ?int $port = null): bool {}
+
+/**
+ * Return a string describing a socket error
+ * @link https://php.net/manual/en/function.socket-strerror.php
+ * @param int $error_code
+ * A valid socket error number, likely produced by
+ * socket_last_error.
+ *
+ * @return string the error message associated with the errno
+ * parameter.
+ */
+function socket_strerror(int $error_code): string {}
+
+/**
+ * Binds a name to a socket
+ * @link https://php.net/manual/en/function.socket-bind.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create.
+ *
+ * @param string $address
+ * If the socket is of the AF_INET family, the
+ * address is an IP in dotted-quad notation
+ * (e.g. 127.0.0.1).
+ *
+ *
+ * If the socket is of the AF_UNIX family, the
+ * address is the path of a
+ * Unix-domain socket (e.g. /tmp/my.sock).
+ *
+ * @param int $port [optional]
+ * The port parameter is only used when
+ * binding an AF_INET socket, and designates
+ * the port on which to listen for connections.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * The error code can be retrieved with socket_last_error.
+ * This code may be passed to socket_strerror to get a
+ * textual explanation of the error.
+ *
+ */
+function socket_bind(Socket $socket, string $address, int $port = 0): bool {}
+
+/**
+ * Receives data from a connected socket
+ * @link https://php.net/manual/en/function.socket-recv.php
+ * @param resource|Socket $socket
+ * The socket must be a socket resource previously
+ * created by socket_create().
+ *
+ * @param string &$data
+ * The data received will be fetched to the variable specified with
+ * buf. If an error occurs, if the
+ * connection is reset, or if no data is
+ * available, buf will be set to NULL.
+ *
+ * @param int $length
+ * Up to len bytes will be fetched from remote host.
+ *
+ * @param int $flags
+ * The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ *
+ * Possible values for flags
+ *
+ * Flag
+ * Description
+ *
+ *
+ * MSG_OOB
+ *
+ * Process out-of-band data.
+ *
+ *
+ *
+ * MSG_PEEK
+ *
+ * Receive data from the beginning of the receive queue without
+ * removing it from the queue.
+ *
+ *
+ *
+ * MSG_WAITALL
+ *
+ * Block until at least len are received.
+ * However, if a signal is caught or the remote host disconnects, the
+ * function may return less data.
+ *
+ *
+ *
+ * MSG_DONTWAIT
+ *
+ * With this flag set, the function returns even if it would normally
+ * have blocked.
+ *
+ *
+ *
+ * @return int|false socket_recv returns the number of bytes received,
+ * or FALSE if there was an error. The actual error code can be retrieved by
+ * calling socket_last_error. This error code may be
+ * passed to socket_strerror to get a textual explanation
+ * of the error.
+ */
+function socket_recv(Socket $socket, &$data, int $length, int $flags): int|false {}
+
+/**
+ * Sends data to a connected socket
+ * @link https://php.net/manual/en/function.socket-send.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param string $data
+ * A buffer containing the data that will be sent to the remote host.
+ *
+ * @param int $length
+ * The number of bytes that will be sent to the remote host from
+ * buf.
+ *
+ * @param int $flags
+ * The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ * Possible values for flags
+ *
+ * MSG_OOB
+ *
+ * Send OOB (out-of-band) data.
+ *
+ *
+ *
+ * MSG_EOR
+ *
+ * Indicate a record mark. The sent data completes the record.
+ *
+ *
+ *
+ * MSG_EOF
+ *
+ * Close the sender side of the socket and include an appropriate
+ * notification of this at the end of the sent data. The sent data
+ * completes the transaction.
+ *
+ *
+ *
+ * MSG_DONTROUTE
+ *
+ * Bypass routing, use direct interface.
+ *
+ *
+ *
+ *
+ * @return int|false socket_send returns the number of bytes sent, or FALSE on error.
+ */
+function socket_send(Socket $socket, string $data, int $length, int $flags): int|false {}
+
+/**
+ * (PHP 5 >=5.5.0)
+ * Send a message
+ * @link https://secure.php.net/manual/en/function.socket-sendmsg.php
+ * @param resource|Socket $socket
+ * @param array $message
+ * @param int $flags
+ * @return int|false
+ * @since 5.5
+ */
+function socket_sendmsg(
+ Socket $socket,
+ array $message,
+ #[PhpStormStubsElementAvailable(from: '5.5', to: '7.4')] int $flags,
+ #[PhpStormStubsElementAvailable(from: '8.0')] int $flags = 0
+): int|false {}
+
+/**
+ * Receives data from a socket whether or not it is connection-oriented
+ * @link https://php.net/manual/en/function.socket-recvfrom.php
+ * @param resource|Socket $socket
+ * The socket must be a socket resource previously
+ * created by socket_create().
+ *
+ * @param string &$data
+ * The data received will be fetched to the variable specified with
+ * buf.
+ *
+ * @param int $length
+ * Up to len bytes will be fetched from remote host.
+ *
+ * @param int $flags
+ * The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ *
+ * Possible values for flags
+ *
+ * Flag
+ * Description
+ *
+ *
+ * MSG_OOB
+ *
+ * Process out-of-band data.
+ *
+ *
+ *
+ * MSG_PEEK
+ *
+ * Receive data from the beginning of the receive queue without
+ * removing it from the queue.
+ *
+ *
+ *
+ * MSG_WAITALL
+ *
+ * Block until at least len are received.
+ * However, if a signal is caught or the remote host disconnects, the
+ * function may return less data.
+ *
+ *
+ *
+ * MSG_DONTWAIT
+ *
+ * With this flag set, the function returns even if it would normally
+ * have blocked.
+ *
+ *
+ *
+ * @param string &$address
+ * If the socket is of the type AF_UNIX type,
+ * name is the path to the file. Else, for
+ * unconnected sockets, name is the IP address of,
+ * the remote host, or NULL if the socket is connection-oriented.
+ *
+ * @param int &$port [optional]
+ * This argument only applies to AF_INET and
+ * AF_INET6 sockets, and specifies the remote port
+ * from which the data is received. If the socket is connection-oriented,
+ * port will be NULL.
+ *
+ * @return int|false socket_recvfrom returns the number of bytes received,
+ * or FALSE if there was an error. The actual error code can be retrieved by
+ * calling socket_last_error. This error code may be
+ * passed to socket_strerror to get a textual explanation
+ * of the error.
+ */
+function socket_recvfrom(Socket $socket, &$data, int $length, int $flags, &$address, &$port = null): int|false {}
+
+/**
+ * Read a message
+ * @link https://secure.php.net/manual/en/function.socket-recvmsg.php
+ * @param resource|Socket $socket
+ * @param array &$message
+ * @param int $flags
+ * @return int|false
+ * @since 5.5
+ */
+function socket_recvmsg(
+ Socket $socket,
+ array &$message,
+ #[PhpStormStubsElementAvailable(from: '5.5', to: '7.4')] int $flags,
+ #[PhpStormStubsElementAvailable(from: '8.0')] int $flags = 0
+): int|false {}
+
+/**
+ * Sends a message to a socket, whether it is connected or not
+ * @link https://php.net/manual/en/function.socket-sendto.php
+ * @param resource|Socket $socket
+ * A valid socket resource created using socket_create.
+ *
+ * @param string $data
+ * The sent data will be taken from buffer buf.
+ *
+ * @param int $length
+ * len bytes from buf will be
+ * sent.
+ *
+ * @param int $flags
+ * The value of flags can be any combination of
+ * the following flags, joined with the binary OR (|)
+ * operator.
+ *
+ * Possible values for flags
+ *
+ * MSG_OOB
+ *
+ * Send OOB (out-of-band) data.
+ *
+ *
+ *
+ * MSG_EOR
+ *
+ * Indicate a record mark. The sent data completes the record.
+ *
+ *
+ *
+ * MSG_EOF
+ *
+ * Close the sender side of the socket and include an appropriate
+ * notification of this at the end of the sent data. The sent data
+ * completes the transaction.
+ *
+ *
+ *
+ * MSG_DONTROUTE
+ *
+ * Bypass routing, use direct interface.
+ *
+ *
+ *
+ *
+ * @param string $address
+ * IP address of the remote host.
+ *
+ * @param int|null $port
+ * port is the remote port number at which the data
+ * will be sent.
+ *
+ * @return int|false socket_sendto returns the number of bytes sent to the
+ * remote host, or FALSE if an error occurred.
+ */
+function socket_sendto(Socket $socket, string $data, int $length, int $flags, string $address, ?int $port = null): int|false {}
+
+/**
+ * Gets socket options for the socket
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param int $level
+ * The level parameter specifies the protocol
+ * level at which the option resides. For example, to retrieve options at
+ * the socket level, a level parameter of
+ * SOL_SOCKET would be used. Other levels, such as
+ * TCP, can be used by
+ * specifying the protocol number of that level. Protocol numbers can be
+ * found by using the getprotobyname function.
+ *
+ * @param int $option
+ * Available Socket Options
+ *
+ * Option
+ * Description
+ * Type
+ *
+ *
+ * SO_DEBUG
+ *
+ * Reports whether debugging information is being recorded.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_BROADCAST
+ *
+ * Reports whether transmission of broadcast messages is supported.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_REUSEADDR
+ *
+ * Reports whether local addresses can be reused.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_KEEPALIVE
+ *
+ * Reports whether connections are kept active with periodic transmission
+ * of messages. If the connected socket fails to respond to these messages,
+ * the connection is broken and processes writing to that socket are notified
+ * with a SIGPIPE signal.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_LINGER
+ *
+ *
+ * Reports whether the socket lingers on
+ * socket_close if data is present. By default,
+ * when the socket is closed, it attempts to send all unsent data.
+ * In the case of a connection-oriented socket,
+ * socket_close will wait for its peer to
+ * acknowledge the data.
+ *
+ *
+ * If l_onoff is non-zero and
+ * l_linger is zero, all the
+ * unsent data will be discarded and RST (reset) is sent to the
+ * peer in the case of a connection-oriented socket.
+ *
+ *
+ * On the other hand, if l_onoff is
+ * non-zero and l_linger is non-zero,
+ * socket_close will block until all the data
+ * is sent or the time specified in l_linger
+ * elapses. If the socket is non-blocking,
+ * socket_close will fail and return an error.
+ *
+ *
+ *
+ * array. The array will contain two keys:
+ * l_onoff and
+ * l_linger.
+ *
+ *
+ *
+ * SO_OOBINLINE
+ *
+ * Reports whether the socket leaves out-of-band data inline.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_SNDBUF
+ *
+ * Reports the size of the send buffer.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_RCVBUF
+ *
+ * Reports the size of the receive buffer.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_ERROR
+ *
+ * Reports information about error status and clears it.
+ *
+ *
+ * int (cannot be set by socket_set_option)
+ *
+ *
+ *
+ * SO_TYPE
+ *
+ * Reports the socket type (e.g.
+ * SOCK_STREAM).
+ *
+ *
+ * int (cannot be set by socket_set_option)
+ *
+ *
+ *
+ * SO_DONTROUTE
+ *
+ * Reports whether outgoing messages bypass the standard routing facilities.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_RCVLOWAT
+ *
+ * Reports the minimum number of bytes to process for socket
+ * input operations.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * SO_RCVTIMEO
+ *
+ * Reports the timeout value for input operations.
+ *
+ *
+ * array. The array will contain two keys:
+ * sec which is the seconds part on the timeout
+ * value and usec which is the microsecond part
+ * of the timeout value.
+ *
+ *
+ *
+ * SO_SNDTIMEO
+ *
+ * Reports the timeout value specifying the amount of time that an output
+ * function blocks because flow control prevents data from being sent.
+ *
+ *
+ * array. The array will contain two keys:
+ * sec which is the seconds part on the timeout
+ * value and usec which is the microsecond part
+ * of the timeout value.
+ *
+ *
+ *
+ * SO_SNDLOWAT
+ *
+ * Reports the minimum number of bytes to process for socket output operations.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * TCP_NODELAY
+ *
+ * Reports whether the Nagle TCP algorithm is disabled.
+ *
+ *
+ * int
+ *
+ *
+ *
+ * MCAST_JOIN_GROUP
+ *
+ * Joins a multicast group. (added in PHP 5.4)
+ *
+ *
+ * array with keys "group", specifying
+ * a string with an IPv4 or IPv6 multicast address and
+ * "interface", specifying either an interface
+ * number (type int) or a string with
+ * the interface name, like "eth0".
+ * 0 can be specified to indicate the interface
+ * should be selected using routing rules. (can only be used in
+ * socket_set_option)
+ *
+ *
+ *
+ * MCAST_LEAVE_GROUP
+ *
+ * Leaves a multicast group. (added in PHP 5.4)
+ *
+ *
+ * array. See MCAST_JOIN_GROUP for
+ * more information. (can only be used in
+ * socket_set_option)
+ *
+ *
+ *
+ * MCAST_BLOCK_SOURCE
+ *
+ * Blocks packets arriving from a specific source to a specific
+ * multicast group, which must have been previously joined.
+ * (added in PHP 5.4)
+ *
+ *
+ * array with the same keys as
+ * MCAST_JOIN_GROUP, plus one extra key,
+ * source, which maps to a string
+ * specifying an IPv4 or IPv6 address of the source to be blocked.
+ * (can only be used in socket_set_option)
+ *
+ *
+ *
+ * MCAST_UNBLOCK_SOURCE
+ *
+ * Unblocks (start receiving again) packets arriving from a specific
+ * source address to a specific multicast group, which must have been
+ * previously joined. (added in PHP 5.4)
+ *
+ *
+ * array with the same format as
+ * MCAST_BLOCK_SOURCE.
+ * (can only be used in socket_set_option)
+ *
+ *
+ *
+ * MCAST_JOIN_SOURCE_GROUP
+ *
+ * Receive packets destined to a specific multicast group whose source
+ * address matches a specific value. (added in PHP 5.4)
+ *
+ *
+ * array with the same format as
+ * MCAST_BLOCK_SOURCE.
+ * (can only be used in socket_set_option)
+ *
+ *
+ *
+ * MCAST_LEAVE_SOURCE_GROUP
+ *
+ * Stop receiving packets destined to a specific multicast group whose
+ * soure address matches a specific value. (added in PHP 5.4)
+ *
+ *
+ * array with the same format as
+ * MCAST_BLOCK_SOURCE.
+ * (can only be used in socket_set_option)
+ *
+ *
+ *
+ * IP_MULTICAST_IF
+ *
+ * The outgoing interface for IPv4 multicast packets.
+ * (added in PHP 5.4)
+ *
+ *
+ * Either int specifying the interface number or a
+ * string with an interface name, like
+ * eth0. The value 0 can be used to
+ * indicate the routing table is to used in the interface selection.
+ * The function socket_get_option returns an
+ * interface index.
+ * Note that, unlike the C API, this option does NOT take an IP
+ * address. This eliminates the interface difference between
+ * IP_MULTICAST_IF and
+ * IPV6_MULTICAST_IF.
+ *
+ *
+ *
+ * IPV6_MULTICAST_IF
+ *
+ * The outgoing interface for IPv6 multicast packets.
+ * (added in PHP 5.4)
+ *
+ *
+ * The same as IP_MULTICAST_IF.
+ *
+ *
+ *
+ * IP_MULTICAST_LOOP
+ *
+ * The multicast loopback policy for IPv4 packets, which
+ * determines whether multicast packets sent by this socket also reach
+ * receivers in the same host that have joined the same multicast group
+ * on the outgoing interface used by this socket. This is the case by
+ * default.
+ * (added in PHP 5.4)
+ *
+ *
+ * int (either 0 or
+ * 1). For socket_set_option
+ * any value will be accepted and will be converted to a boolean
+ * following the usual PHP rules.
+ *
+ *
+ *
+ * IPV6_MULTICAST_LOOP
+ *
+ * Analogous to IP_MULTICAST_LOOP, but for IPv6.
+ * (added in PHP 5.4)
+ *
+ *
+ * int. See IP_MULTICAST_LOOP.
+ *
+ *
+ *
+ * IP_MULTICAST_TTL
+ *
+ * The time-to-live of outgoing IPv4 multicast packets. This should be
+ * a value between 0 (don't leave the interface) and 255. The default
+ * value is 1 (only the local network is reached).
+ * (added in PHP 5.4)
+ *
+ *
+ * int between 0 and 255.
+ *
+ *
+ *
+ * IPV6_MULTICAST_HOPS
+ *
+ * Analogous to IP_MULTICAST_TTL, but for IPv6
+ * packets. The value -1 is also accepted, meaning the route default
+ * should be used.
+ * (added in PHP 5.4)
+ *
+ *
+ * int between -1 and 255.
+ *
+ *
+ *
+ * @return array|int|false the value of the given option, or FALSE on errors.
+ */
+function socket_get_option(Socket $socket, int $level, int $option): array|int|false {}
+
+/**
+ * Sets socket options for the socket
+ * @link https://php.net/manual/en/function.socket-set-option.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create
+ * or socket_accept.
+ *
+ * @param int $level
+ * The level parameter specifies the protocol
+ * level at which the option resides. For example, to retrieve options at
+ * the socket level, a level parameter of
+ * SOL_SOCKET would be used. Other levels, such as
+ * TCP, can be used by specifying the protocol number of that level.
+ * Protocol numbers can be found by using the
+ * getprotobyname function.
+ *
+ * @param int $option
+ * The available socket options are the same as those for the
+ * socket_get_option function.
+ *
+ * @param mixed $value
+ * The option value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function socket_set_option(Socket $socket, int $level, int $option, $value): bool {}
+
+/**
+ * Shuts down a socket for receiving, sending, or both
+ * @link https://php.net/manual/en/function.socket-shutdown.php
+ * @param resource|Socket $socket
+ * A valid socket resource created with socket_create.
+ *
+ * @param int $mode [optional]
+ * The value of how can be one of the following:
+ *
+ * possible values for how
+ *
+ * 0
+ *
+ * Shutdown socket reading
+ *
+ *
+ *
+ * 1
+ *
+ * Shutdown socket writing
+ *
+ *
+ *
+ * 2
+ *
+ * Shutdown socket reading and writing
+ *
+ *
+ *
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function socket_shutdown(Socket $socket, int $mode = 2): bool {}
+
+/**
+ * Returns the last error on the socket
+ * @link https://php.net/manual/en/function.socket-last-error.php
+ * @param resource|Socket $socket [optional]
+ * A valid socket resource created with socket_create.
+ *
+ * @return int This function returns a socket error code.
+ */
+function socket_last_error(?Socket $socket = null): int {}
+
+/**
+ * Clears the error on the socket or the last error code
+ * @link https://php.net/manual/en/function.socket-clear-error.php
+ * @param resource|Socket|null $socket [optional]
+ * A valid socket resource created with socket_create.
+ *
+ * @return void No value is returned.
+ */
+function socket_clear_error(?Socket $socket = null): void {}
+
+/**
+ * Import a stream
+ * @link https://php.net/manual/en/function.socket-import-stream.php
+ * @param resource|Socket $stream
+ * The stream resource to import.
+ *
+ * @return resource|Socket|false|null FALSE or NULL on failure.
+ * @since 5.4
+ */
+function socket_import_stream($stream): Socket|false {}
+
+/**
+ * Calculate message buffer size
+ * @link https://php.net/manual/en/function.socket-cmsg-space.php
+ * @param int $level
+ * @param int $type
+ * @param int $num [optional]
+ * @return int|null
+ * @since 5.5
+ */
+function socket_cmsg_space(
+ int $level,
+ int $type,
+ #[PhpStormStubsElementAvailable(from: '8.0')] int $num = 0
+): ?int {}
+
+/**
+ * Alias of {@see socket_get_option}
+ * @param Socket $socket
+ * @param int $level
+ * @param int $option
+ */
+function socket_getopt(Socket $socket, int $level, int $option): array|int|false {}
+
+/**
+ * Alias of {@see socket_set_option}
+ * @param Socket $socket
+ * @param int $level
+ * @param int $option
+ * @param $value
+ * @return bool
+ */
+function socket_setopt(Socket $socket, int $level, int $option, $value): bool {}
+
+/**
+ * Exports the WSAPROTOCOL_INFO Structure
+ *
+ * @link https://www.php.net/manual/en/function.socket-wsaprotocol-info-export.php
+ *
+ * @param resource|Socket $socket
+ * @param int $target_pid
+ * @return string|false
+ *
+ * @since 7.3
+ */
+function socket_wsaprotocol_info_export($socket, $target_pid) {}
+
+/**
+ * Imports a Socket from another Process
+ *
+ * @link https://www.php.net/manual/en/function.socket-wsaprotocol-info-import.php
+ *
+ * @param string $info_id
+ * @return resource|Socket|false
+ *
+ * @since 7.3
+ */
+function socket_wsaprotocol_info_import($info_id) {}
+
+/**
+ * Releases an exported WSAPROTOCOL_INFO Structure
+ *
+ * @link https://www.php.net/manual/en/function.socket-wsaprotocol-info-release.php
+ *
+ * @param string $info_id
+ * @return bool
+ *
+ * @since 7.3
+ */
+function socket_wsaprotocol_info_release($info_id) {}
+
+/**
+ * @since 8.3
+ */
+function socket_atmark(Socket $socket): bool {}
+
+define('AF_UNIX', 1);
+define('AF_INET', 2);
+
+/**
+ * Only available if compiled with IPv6 support.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('AF_INET6', 10);
+define('SOCK_STREAM', 1);
+define('SOCK_DGRAM', 2);
+define('SOCK_RAW', 3);
+define('SOCK_SEQPACKET', 5);
+define('SOCK_RDM', 4);
+define('MSG_OOB', 1);
+define('MSG_WAITALL', 256);
+define('MSG_CTRUNC', 8);
+define('MSG_TRUNC', 32);
+define('MSG_PEEK', 2);
+define('MSG_DONTROUTE', 4);
+
+/**
+ * Not available on Windows platforms.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('MSG_EOR', 128);
+
+/**
+ * Not available on Windows platforms.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('MSG_EOF', 512);
+define('MSG_CONFIRM', 2048);
+define('MSG_ERRQUEUE', 8192);
+define('MSG_NOSIGNAL', 16384);
+define('MSG_DONTWAIT', 64);
+define('MSG_MORE', 32768);
+define('MSG_WAITFORONE', 65536);
+define('MSG_CMSG_CLOEXEC', 1073741824);
+define('SO_DEBUG', 1);
+define('SO_REUSEADDR', 2);
+
+/**
+ * This constant is only available in PHP 5.4.10 or later on platforms that
+ * support the SO_REUSEPORT socket option: this
+ * includes Mac OS X and FreeBSD, but does not include Linux or Windows.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SO_REUSEPORT', 15);
+define('SO_KEEPALIVE', 9);
+define('SO_DONTROUTE', 5);
+define('SO_LINGER', 13);
+define('SO_BROADCAST', 6);
+define('SO_OOBINLINE', 10);
+define('SO_SNDBUF', 7);
+define('SO_RCVBUF', 8);
+define('SO_SNDLOWAT', 19);
+define('SO_RCVLOWAT', 18);
+define('SO_SNDTIMEO', 21);
+define('SO_RCVTIMEO', 20);
+define('SO_TYPE', 3);
+define('SO_ERROR', 4);
+define('SO_BINDTODEVICE', 25);
+define('SO_ATTACH_REUSEPORT_CBPF', 51);
+define('SO_DETACH_FILTER', 27);
+define('SO_DETACH_BPF', 27);
+
+define('SOL_SOCKET', 1);
+define('SOL_UDPLITE', 136);
+define('SOMAXCONN', 128);
+/**
+ * @since 8.1
+ */
+define('SO_MARK', 36);
+/**
+ * Used to disable Nagle TCP algorithm.
+ * Added in PHP 5.2.7.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('TCP_NODELAY', 1);
+define('PHP_NORMAL_READ', 1);
+define('PHP_BINARY_READ', 2);
+/**
+ * Joins a multicast group.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_JOIN_GROUP', 42);
+/**
+ * Leaves a multicast group.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_LEAVE_GROUP', 45);
+/**
+ * Blocks packets arriving from a specific source to a specific multicast group,
+ * which must have been previously joined.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_BLOCK_SOURCE', 43);
+/**
+ * Unblocks (start receiving again) packets arriving from
+ * a specific source address to a specific multicast group,
+ * which must have been previously joined.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_UNBLOCK_SOURCE', 44);
+/**
+ * Receive packets destined to a specific multicast group
+ * whose source address matches a specific value.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_JOIN_SOURCE_GROUP', 46);
+/**
+ * Stop receiving packets destined to a specific multicast group
+ * whose soure address matches a specific value.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('MCAST_LEAVE_SOURCE_GROUP', 47);
+/**
+ * The outgoing interface for IPv4 multicast packets.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IP_MULTICAST_IF', 32);
+/**
+ * The outgoing interface for IPv6 multicast packets.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IP_MULTICAST_TTL', 33);
+/**
+ * The multicast loopback policy for IPv4 packets,
+ * which determines whether multicast packets sent by this socket
+ * also reach receivers in the same host that have joined the same multicast group
+ * on the outgoing interface used by this socket. This is the case by default.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IP_MULTICAST_LOOP', 34);
+/**
+ * Analogous to IP_MULTICAST_LOOP, but for IPv6.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IPV6_MULTICAST_IF', 17);
+/**
+ * The time-to-live of outgoing IPv4 multicast packets.
+ * This should be a value between 0 (don't leave the interface) and 255.
+ * The default value is 1 (only the local network is reached).
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IPV6_MULTICAST_HOPS', 18);
+/**
+ * Analogous to IP_MULTICAST_TTL, but for IPv6 packets.
+ * The value -1 is also accepted, meaning the route default should be used.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.socket-get-option.php
+ */
+define('IPV6_MULTICAST_LOOP', 19);
+define('IPV6_V6ONLY', 26);
+define('IP_BIND_ADDRESS_NO_PORT', 24);
+define('IP_MTU_DISCOVER', 10);
+define('IP_PMTUDISC_DO', 2);
+define('IP_PMTUDISC_DONT', 0);
+define('IP_PMTUDISC_WANT', 1);
+define('IP_PMTUDISC_PROBE', 3);
+define('IP_PMTUDISC_INTERFACE', 4);
+define('IP_PMTUDISC_OMIT', 5);
+
+/**
+ * Operation not permitted.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPERM', 1);
+
+/**
+ * No such file or directory.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOENT', 2);
+
+/**
+ * Interrupted system call.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EINTR', 4);
+
+/**
+ * I/O error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EIO', 5);
+
+/**
+ * No such device or address.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENXIO', 6);
+
+/**
+ * Arg list too long.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_E2BIG', 7);
+
+/**
+ * Bad file number.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADF', 9);
+
+/**
+ * Try again.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EAGAIN', 11);
+
+/**
+ * Out of memory.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOMEM', 12);
+
+/**
+ * Permission denied.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EACCES', 13);
+
+/**
+ * Bad address.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EFAULT', 14);
+
+/**
+ * Block device required.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTBLK', 15);
+
+/**
+ * Device or resource busy.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBUSY', 16);
+
+/**
+ * File exists.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EEXIST', 17);
+
+/**
+ * Cross-device link.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EXDEV', 18);
+
+/**
+ * No such device.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENODEV', 19);
+
+/**
+ * Not a directory.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTDIR', 20);
+
+/**
+ * Is a directory.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EISDIR', 21);
+
+/**
+ * Invalid argument.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EINVAL', 22);
+
+/**
+ * File table overflow.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENFILE', 23);
+
+/**
+ * Too many open files.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EMFILE', 24);
+
+/**
+ * Not a typewriter.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTTY', 25);
+
+/**
+ * No space left on device.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOSPC', 28);
+
+/**
+ * Illegal seek.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ESPIPE', 29);
+
+/**
+ * Read-only file system.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EROFS', 30);
+
+/**
+ * Too many links.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EMLINK', 31);
+
+/**
+ * Broken pipe.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPIPE', 32);
+
+/**
+ * File name too long.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENAMETOOLONG', 36);
+
+/**
+ * No record locks available.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOLCK', 37);
+
+/**
+ * Function not implemented.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOSYS', 38);
+
+/**
+ * Directory not empty.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTEMPTY', 39);
+
+/**
+ * Too many symbolic links encountered.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ELOOP', 40);
+
+/**
+ * Operation would block.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EWOULDBLOCK', 11);
+
+/**
+ * No message of desired type.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOMSG', 42);
+
+/**
+ * Identifier removed.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EIDRM', 43);
+
+/**
+ * Channel number out of range.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ECHRNG', 44);
+
+/**
+ * Level 2 not synchronized.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EL2NSYNC', 45);
+
+/**
+ * Level 3 halted.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EL3HLT', 46);
+
+/**
+ * Level 3 reset.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EL3RST', 47);
+
+/**
+ * Link number out of range.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ELNRNG', 48);
+
+/**
+ * Protocol driver not attached.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EUNATCH', 49);
+
+/**
+ * No CSI structure available.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOCSI', 50);
+
+/**
+ * Level 2 halted.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EL2HLT', 51);
+
+/**
+ * Invalid exchange.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADE', 52);
+
+/**
+ * Invalid request descriptor.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADR', 53);
+
+/**
+ * Exchange full.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EXFULL', 54);
+
+/**
+ * No anode.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOANO', 55);
+
+/**
+ * Invalid request code.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADRQC', 56);
+
+/**
+ * Invalid slot.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADSLT', 57);
+
+/**
+ * Device not a stream.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOSTR', 60);
+
+/**
+ * No data available.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENODATA', 61);
+
+/**
+ * Timer expired.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ETIME', 62);
+
+/**
+ * Out of streams resources.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOSR', 63);
+
+/**
+ * Machine is not on the network.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENONET', 64);
+
+/**
+ * Object is remote.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EREMOTE', 66);
+
+/**
+ * Link has been severed.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOLINK', 67);
+
+/**
+ * Advertise error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EADV', 68);
+
+/**
+ * Srmount error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ESRMNT', 69);
+
+/**
+ * Communication error on send.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ECOMM', 70);
+
+/**
+ * Protocol error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPROTO', 71);
+
+/**
+ * Multihop attempted.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EMULTIHOP', 72);
+
+/**
+ * Not a data message.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADMSG', 74);
+
+/**
+ * Name not unique on network.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTUNIQ', 76);
+
+/**
+ * File descriptor in bad state.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EBADFD', 77);
+
+/**
+ * Remote address changed.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EREMCHG', 78);
+
+/**
+ * Interrupted system call should be restarted.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ERESTART', 85);
+
+/**
+ * Streams pipe error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ESTRPIPE', 86);
+
+/**
+ * Too many users.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EUSERS', 87);
+
+/**
+ * Socket operation on non-socket.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTSOCK', 88);
+
+/**
+ * Destination address required.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EDESTADDRREQ', 89);
+
+/**
+ * Message too long.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EMSGSIZE', 90);
+
+/**
+ * Protocol wrong type for socket.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPROTOTYPE', 91);
+define('SOCKET_ENOPROTOOPT', 92);
+
+/**
+ * Protocol not supported.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPROTONOSUPPORT', 93);
+
+/**
+ * Socket type not supported.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ESOCKTNOSUPPORT', 94);
+
+/**
+ * Operation not supported on transport endpoint.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EOPNOTSUPP', 95);
+
+/**
+ * Protocol family not supported.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EPFNOSUPPORT', 96);
+
+/**
+ * Address family not supported by protocol.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EAFNOSUPPORT', 97);
+define('SOCKET_EADDRINUSE', 98);
+
+/**
+ * Cannot assign requested address.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EADDRNOTAVAIL', 99);
+
+/**
+ * Network is down.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENETDOWN', 100);
+
+/**
+ * Network is unreachable.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENETUNREACH', 101);
+
+/**
+ * Network dropped connection because of reset.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENETRESET', 102);
+
+/**
+ * Software caused connection abort.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ECONNABORTED', 103);
+
+/**
+ * Connection reset by peer.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ECONNRESET', 104);
+
+/**
+ * No buffer space available.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOBUFS', 105);
+
+/**
+ * Transport endpoint is already connected.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EISCONN', 106);
+
+/**
+ * Transport endpoint is not connected.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOTCONN', 107);
+
+/**
+ * Cannot send after transport endpoint shutdown.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ESHUTDOWN', 108);
+
+/**
+ * Too many references: cannot splice.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ETOOMANYREFS', 109);
+
+/**
+ * Connection timed out.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ETIMEDOUT', 110);
+
+/**
+ * Connection refused.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ECONNREFUSED', 111);
+
+/**
+ * Host is down.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EHOSTDOWN', 112);
+
+/**
+ * No route to host.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EHOSTUNREACH', 113);
+
+/**
+ * Operation already in progress.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EALREADY', 114);
+
+/**
+ * Operation now in progress.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EINPROGRESS', 115);
+
+/**
+ * Is a named type file.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EISNAM', 120);
+
+/**
+ * Remote I/O error.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EREMOTEIO', 121);
+
+/**
+ * Quota exceeded.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EDQUOT', 122);
+
+/**
+ * No medium found.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_ENOMEDIUM', 123);
+
+/**
+ * Wrong medium type.
+ * @link https://php.net/manual/en/sockets.constants.php
+ */
+define('SOCKET_EMEDIUMTYPE', 124);
+define('IPPROTO_IP', 0);
+define('IPPROTO_IPV6', 41);
+define('SOL_TCP', 6);
+define('SOL_UDP', 17);
+define('IPV6_UNICAST_HOPS', 16);
+define('IPV6_RECVPKTINFO', 49);
+define('IPV6_PKTINFO', 50);
+define('IPV6_RECVHOPLIMIT', 51);
+define('IPV6_HOPLIMIT', 52);
+define('IPV6_RECVTCLASS', 66);
+define('IPV6_TCLASS', 67);
+define('SCM_RIGHTS', 1);
+define('SCM_CREDENTIALS', 2);
+define('SO_PASSCRED', 16);
+
+define('SOCKET_EPROCLIM', 10067);
+define('SOCKET_ESTALE', 10070);
+define('SOCKET_EDISCON', 10101);
+define('SOCKET_SYSNOTREADY', 10091);
+define('SOCKET_VERNOTSUPPORTED', 10092);
+define('SOCKET_NOTINITIALISED', 10093);
+define('SOCKET_HOST_NOT_FOUND', 11001);
+define('SOCKET_TRY_AGAIN', 11002);
+define('SOCKET_NO_RECOVERY', 11003);
+define('SOCKET_NO_DATA', 11004);
+define('SOCKET_NO_ADDRESS', 11004);
+
+define('AI_PASSIVE', 1);
+define('AI_CANONNAME', 2);
+define('AI_NUMERICHOST', 4);
+define('AI_ADDRCONFIG', 32);
+define('AI_NUMERICSERV', 1024);
+define('AI_V4MAPPED', 8);
+define('AI_ALL', 16);
+
+/**
+ * @since 8.1
+ */
+define('TCP_DEFER_ACCEPT', 9);
+
+/**
+ * @since 8.2
+ */
+define('SO_INCOMING_CPU', 49);
+
+/**
+ * @since 8.2
+ */
+define('SO_MEMINFO', 55);
+
+/**
+ * @since 8.2
+ */
+define('SO_BPF_EXTENSIONS', 48);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_OFF', -4096);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_PROTOCOL', 0);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_PKTTYPE', 4);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_IFINDEX', 8);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_NLATTR', 12);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_NLATTR_NEST', 16);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_MARK', 20);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_QUEUE', 24);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_HATYPE', 28);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_RXHASH', 32);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_CPU', 36);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_ALU_XOR_X', 40);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_VLAN_TAG', 44);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_VLAN_TAG_PRESENT', 48);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_PAY_OFFSET', 52);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_RANDOM', 56);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_VLAN_TPID', 60);
+
+/**
+ * @since 8.2
+ */
+define('SKF_AD_MAX', 64);
+
+/**
+ * @since 8.2
+ */
+define('TCP_CONGESTION', 13);
+
+/**
+ * @since 8.2
+ */
+define('TCP_NOTSENT_LOWAT', 25);
+
+/**
+ * @since 8.2
+ */
+define('TCP_KEEPIDLE', 4);
+
+/**
+ * @since 8.2
+ */
+define('TCP_KEEPINTVL', 5);
+
+/**
+ * @since 8.2
+ */
+define('TCP_KEEPCNT', 6);
+
+/**
+ * @since 8.3
+ */
+define('TCP_QUICKACK', 12);
+
+/**
+ * @since 8.3
+ */
+define('TCP_REPAIR', 19);
+
+/**
+ * Socket_set_option for the socket_send* functions.
+ * It avoids copy b/w userland and kernel for both TCP and UDP protocols.
+ * @since 8.2
+ */
+define('SO_ZEROCOPY', 60);
+
+/**
+ * Socket_set_option for the socket_send* functions.
+ * It avoids copy b/w userland and kernel for both TCP and UDP protocols.
+ * @since 8.2
+ */
+define('MSG_ZEROCOPY', 67108864);
+
+/**
+ * @since 8.0
+ */
+final class Socket
+{
+ /**
+ * Cannot directly construct Socket, use socket_create() instead
+ * @see socket_create()
+ */
+ private function __construct() {}
+}
+
+/**
+ * @since 8.0
+ */
+final class AddressInfo
+{
+ /**
+ * Cannot directly construct AddressInfo, use socket_addrinfo_lookup() instead
+ * @see socket_addrinfo_lookup()
+ */
+ private function __construct() {}
+}
diff --git a/phpstorm-stubs/sodium/sodium.php b/phpstorm-stubs/sodium/sodium.php
new file mode 100644
index 0000000..ea4a3b5
--- /dev/null
+++ b/phpstorm-stubs/sodium/sodium.php
@@ -0,0 +1,1180 @@
+ 'true'], default: 'bool')]
+function sodium_crypto_generichash_update(string &$state, string $message): bool {}
+
+/**
+ * Get the final hash
+ * BLAKE2b
+ * @link https://www.php.net/manual/en/function.sodium-crypto-generichash-final.php
+ * @param string &$state
+ * @param int $length
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_generichash_final(
+ string &$state,
+ int $length = 32
+): string {}
+
+/**
+ * Secure password-based key derivation function
+ * Argon2i
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash.php
+ * @param int $length
+ * @param string $password
+ * @param string $salt
+ * @param int $opslimit
+ * @param int $memlimit
+ * @param int $algo [optional]
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_pwhash(int $length, string $password, string $salt, int $opslimit, int $memlimit, int $algo = SODIUM_CRYPTO_PWHASH_ALG_DEFAULT): string {}
+
+/**
+ * Get a formatted password hash (for storage)
+ * Argon2i
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash-str.php
+ * @param string $password
+ * @param int $opslimit
+ * @param int $memlimit
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_pwhash_str(string $password, int $opslimit, int $memlimit): string {}
+
+/**
+ * Verify a password against a hash
+ * Argon2i
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash-str-verify.php
+ * @param string $hash
+ * @param string $password
+ * @return bool
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_pwhash_str_verify(string $hash, string $password): bool {}
+
+/**
+ * Secure password-based key derivation function
+ * Scrypt
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash-scryptsalsa208sha256.php
+ * @param int $length
+ * @param string $password
+ * @param string $salt
+ * @param int $opslimit
+ * @param int $memlimit
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_pwhash_scryptsalsa208sha256(
+ int $length,
+ string $password,
+ string $salt,
+ int $opslimit,
+ int $memlimit,
+ #[PhpStormStubsElementAvailable(from: '7.2', to: '7.4')] $alg = null
+): string {}
+
+/**
+ * Get a formatted password hash (for storage)
+ * Scrypt
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash-scryptsalsa208sha256-str.php
+ * @param string $password
+ * @param int $opslimit
+ * @param int $memlimit
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_pwhash_scryptsalsa208sha256_str(string $password, int $opslimit, int $memlimit): string {}
+
+/**
+ * Verify a password against a hash
+ * Scrypt
+ * @link https://www.php.net/manual/en/function.sodium-crypto-pwhash-scryptsalsa208sha256-str-verify
+ * @param string $hash
+ * @param string $password
+ * @return bool
+ * @since 7.2
+ */
+function sodium_crypto_pwhash_scryptsalsa208sha256_str_verify(string $hash, string $password): bool {}
+
+/**
+ * Elliptic Curve Diffie Hellman over Curve25519
+ * X25519
+ * @link https://www.php.net/manual/en/function.sodium-crypto-scalarmult.php
+ * @param string $n
+ * @param string $p
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_scalarmult(string $n, string $p): string {}
+
+/**
+ * Authenticated secret-key encryption (encrypt)
+ * Xsals20 + Poly1305
+ * @link https://www.php.net/manual/en/function.sodium-crypto-secretbox.php
+ * @param string $message
+ * @param string $nonce
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_secretbox(string $message, string $nonce, string $key): string {}
+
+/**
+ * Authenticated secret-key encryption (decrypt)
+ * Xsals20 + Poly1305
+ * @link https://www.php.net/manual/en/function.sodium-crypto-secretbox-open.php
+ * @param string $ciphertext
+ * @param string $nonce
+ * @param string $key
+ * @return string|false
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_secretbox_open(string $ciphertext, string $nonce, string $key): string|false {}
+
+/**
+ * A short keyed hash suitable for data structures
+ * SipHash-2-4
+ * @link https://www.php.net/manual/en/function.sodium-crypto-shorthash.php
+ * @param string $message
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_shorthash(string $message, string $key): string {}
+
+/**
+ * Digital Signature
+ * Ed25519
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign.php
+ * @param string $message
+ * @param string $secret_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign(string $message, string $secret_key): string {}
+
+/**
+ * Digital Signature (detached)
+ * Ed25519
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-detached.php
+ * @param string $message
+ * @param string $secret_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_detached(string $message, string $secret_key): string {}
+
+/**
+ * Convert an Ed25519 public key to an X25519 public key
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-ed25519-pk-to-curve25519.php
+ * @param string $public_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_ed25519_pk_to_curve25519(string $public_key): string {}
+
+/**
+ * Convert an Ed25519 secret key to an X25519 secret key
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-ed25519-sk-to-curve25519.php
+ * @param string $secret_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_ed25519_sk_to_curve25519(string $secret_key): string {}
+
+/**
+ * Generate an Ed25519 keypair for use with the crypto_sign API
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-keypair.php
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_keypair(): string {}
+
+/**
+ * Create an Ed25519 keypair from an Ed25519 secret key + Ed25519 public key
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-keypair-from-secretkey-and-publickey.php
+ * @param string $secret_key
+ * @param string $public_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_keypair_from_secretkey_and_publickey(
+ string $secret_key,
+ string $public_key
+): string {}
+
+/**
+ * Verify a signed message and return the plaintext
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-open.php
+ * @param string $signed_message
+ * @param string $public_key
+ * @return string|false
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_open(string $signed_message, string $public_key): string|false {}
+
+/**
+ * Get the public key from an Ed25519 keypair
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-publickey.php
+ * @param string $key_pair
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_publickey(string $key_pair): string {}
+
+/**
+ * Get the secret key from an Ed25519 keypair
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-secretkey.php
+ * @param string $key_pair
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_secretkey(string $key_pair): string {}
+
+/**
+ * Derive an Ed25519 public key from an Ed25519 secret key
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-publickey-from-secretkey.php
+ * @param string $secret_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_publickey_from_secretkey(string $secret_key): string {}
+
+/**
+ * Derive an Ed25519 keypair for use with the crypto_sign API from a seed
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-seed-keypair.php
+ * @param string $seed
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_seed_keypair(string $seed): string {}
+
+/**
+ * Verify a detached signature
+ * @link https://www.php.net/manual/en/function.sodium-crypto-sign-verify-detached.php
+ * @param string $signature
+ * @param string $message
+ * @param string $public_key
+ * @return bool
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_sign_verify_detached(string $signature, string $message, string $public_key): bool {}
+
+/**
+ * Create a keystream from a key and nonce
+ * Xsalsa20
+ * @link https://www.php.net/manual/en/function.sodium-crypto-stream.php
+ * @param int $length
+ * @param string $nonce
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_stream(
+ int $length,
+ string $nonce,
+ string $key
+): string {}
+
+/**
+ * Encrypt a message using a stream cipher
+ * Xsalsa20
+ * @link https://www.php.net/manual/en/function.sodium-crypto-stream-xor.php
+ * @param string $message
+ * @param string $nonce
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_stream_xor(
+ string $message,
+ string $nonce,
+ string $key
+): string {}
+
+/**
+ * Generate a string of random bytes
+ * /dev/urandom
+ *
+ * @param int $length
+ * @return string|false
+ * @since 7.2
+ */
+function sodium_randombytes_buf(int $length): string {}
+
+/**
+ * Generate a 16-bit integer
+ * /dev/urandom
+ *
+ * @return int
+ * @since 7.2
+ */
+function sodium_randombytes_random16(): int {}
+
+/**
+ * Generate an unbiased random integer between 0 and a specified value
+ * /dev/urandom
+ *
+ * @param int $upperBoundNonInclusive
+ * @return int
+ * @since 7.2
+ */
+function sodium_randombytes_uniform(int $upperBoundNonInclusive): int {}
+
+/**
+ * Convert to hex without side-chanels
+ * @link https://www.php.net/manual/en/function.sodium-bin2hex.php
+ * @param string $string
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_bin2hex(string $string): string {}
+
+/**
+ * Compare two strings in constant time
+ * @link https://www.php.net/manual/en/function.sodium-compare.php
+ * @param string $string1
+ * @param string $string2
+ * @return int
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_compare(string $string1, string $string2): int {}
+
+/**
+ * Convert from hex without side-chanels
+ * @link https://www.php.net/manual/en/function.sodium-hex2bin.php
+ * @param string $string
+ * @param string $ignore
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_hex2bin(string $string, string $ignore = ''): string {}
+
+/**
+ * Increment a string in little-endian
+ * @link https://www.php.net/manual/en/function.sodium-increment.php
+ * @param string &$string
+ * @return void
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_increment(string &$string): void {}
+
+/**
+ * Add the right operand to the left
+ * @link https://www.php.net/manual/en/function.sodium-add.php
+ * @param string &$string1
+ * @param string $string2
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_add(string &$string1, string $string2): void {}
+
+/**
+ * Get the true major version of libsodium
+ * @return int
+ * @since 7.2
+ */
+function sodium_library_version_major(): int {}
+
+/**
+ * Get the true minor version of libsodium
+ * @return int
+ * @since 7.2
+ */
+function sodium_library_version_minor(): int {}
+
+/**
+ * Compare two strings in constant time
+ * @link https://www.php.net/manual/en/function.sodium-memcmp.php
+ * @param string $string1
+ * @param string $string2
+ * @return int
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_memcmp(string $string1, string $string2): int {}
+
+/**
+ * Wipe a buffer
+ * @link https://www.php.net/manual/en/function.sodium-memzero.php
+ * @param string &$string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_memzero(string &$string): void {}
+
+/**
+ * Get the version string
+ *
+ * @return string
+ * @since 7.2
+ */
+function sodium_version_string(): string {}
+
+/**
+ * Scalar multiplication of the base point and your key
+ * @link https://www.php.net/manual/en/function.sodium-crypto-scalarmult-base
+ * @param string $secret_key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ */
+function sodium_crypto_scalarmult_base(
+ string $secret_key,
+ #[PhpStormStubsElementAvailable(from: '7.2', to: '7.4')] $string_2
+): string {}
+
+/**
+ * Creates a random key
+ *
+ * It is equivalent to calling random_bytes() but improves code clarity and can
+ * prevent misuse by ensuring that the provided key length is always be correct.
+ *
+ * @since 7.2
+ * @see https://secure.php.net/manual/en/function.sodium-crypto-secretbox-keygen.php
+ */
+function sodium_crypto_secretbox_keygen(): string {}
+
+/**
+ * Creates a random key
+ *
+ * It is equivalent to calling random_bytes() but improves code clarity and can
+ * prevent misuse by ensuring that the provided key length is always be correct.
+ *
+ * @since 7.2
+ * @see https://secure.php.net/manual/en/function.sodium-crypto-aead-aes256gcm-keygen.php
+ */
+function sodium_crypto_aead_aes256gcm_keygen(): string {}
+
+/**
+ * Creates a random key
+ * It is equivalent to calling random_bytes() but improves code clarity and can
+ * prevent misuse by ensuring that the provided key length is always be correct.
+ *
+ * @since 7.2
+ * @see https://secure.php.net/manual/en/function.sodium-crypto-aead-chacha20poly1305-keygen.php
+ */
+function sodium_crypto_aead_chacha20poly1305_keygen(): string {}
+
+/**
+ * Creates a random key
+ *
+ * It is equivalent to calling random_bytes() but improves code clarity and can
+ * prevent misuse by ensuring that the provided key length is always be correct.
+ *
+ * @since 7.2
+ * @see https://secure.php.net/manual/en/function.sodium-crypto-aead-chacha20poly1305-ietf-keygen.php
+ */
+function sodium_crypto_aead_chacha20poly1305_ietf_keygen(): string {}
+
+/**
+ * @param string $ciphertext
+ * @param string $additional_data
+ * @param string $nonce
+ * @param string $key
+ * @return string|false
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-aead-xchacha20poly1305-ietf-decrypt.php
+ */
+function sodium_crypto_aead_xchacha20poly1305_ietf_decrypt(string $ciphertext, string $additional_data, string $nonce, string $key): string|false {}
+
+/**
+ * @param string $message
+ * @param string $additional_data
+ * @param string $nonce
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ * https://www.php.net/manual/en/function.sodium-crypto-aead-xchacha20poly1305-ietf-encrypt.php
+ */
+function sodium_crypto_aead_xchacha20poly1305_ietf_encrypt(string $message, string $additional_data, string $nonce, string $key): string {}
+
+/**
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-aead-xchacha20poly1305-ietf-keygen.php
+ */
+function sodium_crypto_aead_xchacha20poly1305_ietf_keygen(): string {}
+
+/**
+ * @param string $password
+ * @param int $opslimit
+ * @param int $memlimit
+ * @return bool
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-pwhash-str-needs-rehash.php
+ */
+function sodium_crypto_pwhash_str_needs_rehash(string $password, int $opslimit, int $memlimit): bool {}
+
+/**
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-secretstream-xchacha20poly1305-keygen.php
+ */
+function sodium_crypto_secretstream_xchacha20poly1305_keygen(): string {}
+
+/**
+ * @param string $key
+ * @return array
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-secretstream-xchacha20poly1305-init-push.php
+ */
+function sodium_crypto_secretstream_xchacha20poly1305_init_push(string $key): array {}
+
+#[PhpStormStubsElementAvailable('7.2')]
+function sodium_crypto_secretstream_xchacha20poly1305_push(string &$state, #[\SensitiveParameter] string $message, string $additional_data = "", int $tag = SODIUM_CRYPTO_SECRETSTREAM_XCHACHA20POLY1305_TAG_MESSAGE): string {}
+
+/**
+ * @param string $header
+ * @param string $key
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-secretstream-xchacha20poly1305-init-pull.php
+ */
+function sodium_crypto_secretstream_xchacha20poly1305_init_pull(string $header, string $key): string {}
+
+#[PhpStormStubsElementAvailable('7.2')]
+function sodium_crypto_secretstream_xchacha20poly1305_pull(string &$state, string $ciphertext, string $additional_data = ""): array|false {}
+
+/**
+ * @param string &$state
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-crypto-secretstream-xchacha20poly1305-rekey.php
+ */
+function sodium_crypto_secretstream_xchacha20poly1305_rekey(string &$state): void {}
+
+/**
+ * @param string $string
+ * @param int $id
+ * @return string
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-bin2base64.php
+ */
+function sodium_bin2base64(string $string, int $id): string {}
+
+/**
+ * @param string $string
+ * @param int $id
+ * @param string $ignore
+ * @throws SodiumException
+ * @since 7.2
+ * @see https://www.php.net/manual/en/function.sodium-base642bin.php
+ * @return string
+ */
+function sodium_base642bin(string $string, int $id, string $ignore = ''): string {}
+
+class SodiumException extends Exception {}
diff --git a/phpstorm-stubs/solr/Documents/SolrDocument.php b/phpstorm-stubs/solr/Documents/SolrDocument.php
new file mode 100644
index 0000000..96c9a1e
--- /dev/null
+++ b/phpstorm-stubs/solr/Documents/SolrDocument.php
@@ -0,0 +1,405 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrDocument
+ * This class represents a Solr document retrieved from a query response.
+ * @link https://php.net/manual/en/class.solrinputdocument.php
+ */
+final class SolrDocument implements ArrayAccess, Iterator, Serializable
+{
+ /** @var int Sorts the fields in ascending order. */
+ public const SORT_DEFAULT = 1;
+
+ /** @var int Sorts the fields in ascending order. */
+ public const SORT_ASC = 1;
+
+ /** @var int Sorts the fields in descending order. */
+ public const SORT_DESC = 2;
+
+ /** @var int Sorts the fields by name */
+ public const SORT_FIELD_NAME = 1;
+
+ /** @var int Sorts the fields by number of values. */
+ public const SORT_FIELD_VALUE_COUNT = 2;
+
+ /** @var int Sorts the fields by boost value. */
+ public const SORT_FIELD_BOOST_VALUE = 4;
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a field to the document
+ * @link https://php.net/manual/en/solrdocument.addfield.php
+ * @param string $fieldName
+ * The name of the field
+ *
+ * @param string $fieldValue
+ * The value for the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function addField($fieldName, $fieldValue) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Drops all the fields in the document
+ * @link https://php.net/manual/en/solrdocument.clear.php
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function clear() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Creates a copy of a SolrDocument object
+ * @link https://php.net/manual/en/solrdocument.clone.php
+ */
+ public function __clone() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrDocument constructor.
+ * @link https://php.net/manual/en/solrdocument.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves the current field
+ * @link https://php.net/manual/en/solrdocument.current.php
+ * @return SolrDocumentField
+ * Returns the field
+ *
+ */
+ public function current() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a field from the document
+ * @link https://php.net/manual/en/solrdocument.deletefield.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function deleteField($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrdocument.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if a field exists in the document
+ * @link https://php.net/manual/en/solrdocument.fieldexists.php
+ * @param string $fieldName
+ * Name of the field.
+ *
+ * @return bool
+ * Returns TRUE if the field is present and FALSE if it does not.
+ *
+ */
+ public function fieldExists($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Access the field as a property
+ * @link https://php.net/manual/en/solrdocument.get.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return SolrDocumentField
+ * Returns a SolrDocumentField instance.
+ *
+ */
+ public function __get($fieldName) {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Returns an array of child documents (SolrInputDocument)
+ * @link https://php.net/manual/en/solrdocument.getchilddocuments.php
+ * @return SolrInputDocument[]
+ */
+ public function getChildDocuments() {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Returns the number of child documents
+ * @link https://php.net/manual/en/solrdocument.getchilddocumentscount.php
+ * @return int
+ */
+ public function getChildDocumentsCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves a field by name
+ * @link https://php.net/manual/en/solrdocument.getfield.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return SolrDocumentField|false Returns a SolrDocumentField object on success and FALSE on failure
+ */
+ public function getField($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the number of fields in this document
+ * @link https://php.net/manual/en/solrdocument.getfieldcount.php
+ * @return int|false
+ * Returns an integer on success and FALSE on failure.
+ *
+ */
+ public function getFieldCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array containing all the fields in the document
+ * @link https://php.net/manual/en/solrdocument.getfieldnames.php
+ * @return array|false
+ * Returns an array on success and FALSE on failure.
+ *
+ */
+ public function getFieldNames() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns a SolrInputDocument equivalent of the object
+ * @link https://php.net/manual/en/solrdocument.getinputdocument.php
+ * @return SolrInputDocument
+ * Returns a SolrInputDocument on success and NULL on failure.
+ *
+ */
+ public function getInputDocument() {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Checks whether the document has any child documents
+ * @link https://php.net/manual/en/solrdocument.haschilddocuments.php
+ * @return bool
+ * Returns TRUE if the document has any child documents
+ *
+ */
+ public function hasChildDocuments() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if a field exists
+ * @link https://php.net/manual/en/solrdocument.isset.php
+ * @param string $fieldName
+ * Name of the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function __isset($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves the current key
+ * @link https://php.net/manual/en/solrdocument.key.php
+ * @return string
+ * Returns the current key.
+ *
+ */
+ public function key() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Merges one input document into another
+ * @link https://php.net/manual/en/solrdocument.merge.php
+ * @param SolrInputDocument $sourceDoc
+ * The source document.
+ *
+ * @param bool $overwrite [optional]
+ * If this is TRUE then fields with the same name in the destination document will be overwritten.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function merge(SolrInputDocument $sourceDoc, $overwrite = true) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Moves the internal pointer to the next field
+ * @link https://php.net/manual/en/solrdocument.next.php
+ */
+ public function next() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if a particular field exists
+ * @link https://php.net/manual/en/solrdocument.offsetexists.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function offsetExists($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves a field
+ * @link https://php.net/manual/en/solrdocument.offsetget.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return SolrDocumentField
+ * Returns a SolrDocumentField object.
+ *
+ */
+ public function offsetGet($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a field to the document
+ * @link https://php.net/manual/en/solrdocument.offsetset.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @param string $fieldValue
+ * The value for this field.
+ *
+ * @return bool
+ */
+ public function offsetSet($fieldName, $fieldValue) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a field
+ * @link https://php.net/manual/en/solrdocument.offsetunset.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ */
+ public function offsetUnset($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * This is an alias of SolrDocument::clear
+ * @link https://php.net/manual/en/solrdocument.reset.php
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function reset() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Resets the internal pointer to the beginning
+ * @link https://php.net/manual/en/solrdocument.rewind.php
+ */
+ public function rewind() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Used for custom serialization
+ * @link https://php.net/manual/en/solrdocument.serialize.php
+ * @return string
+ * Returns a string representing the serialized Solr document.
+ *
+ */
+ public function serialize() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds another field to the document
+ * @link https://php.net/manual/en/solrdocument.set.php
+ * @param string $fieldName
+ * Name of the field.
+ *
+ * @param string $fieldValue
+ * Field value.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function __set($fieldName, $fieldValue) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sorts the fields within the document
+ * @link https://php.net/manual/en/solrdocument.sort.php
+ * @param int $sortOrderBy
+ * The sort criteria, must be one of :
+ *
+ * - SolrDocument::SORT_FIELD_NAME
+ * - SolrDocument::SORT_FIELD_BOOST_VALUE
+ * - SolrDocument::SORT_FIELD_VALUE_COUNT
+ *
+ *
+ * @param int $sortDirection [optional]
+ * The sort direction, can be one of :
+ *
+ * - SolrDocument::SORT_DEFAULT
+ * - SolrDocument::SORT_ASC
+ * - SolrDocument::SORT_DESC
+ *
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function sort($sortOrderBy, $sortDirection = SolrInputDocument::SORT_ASC) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array representation of the document
+ * @link https://secure.php.net/manual/en/solrdocument.toarray.php
+ * @return array
+ * Returns an array representation of the document.
+ *
+ */
+ public function toArray() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Custom serialization of SolrDocument objects
+ * @link https://php.net/manual/en/solrdocument.unserialize.php
+ * @param string $serialized
+ * An XML representation of the document.
+ *
+ */
+ public function unserialize($serialized) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a field from the document
+ * @link https://php.net/manual/en/solrdocument.unset.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function __unset($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if the current position internally is still valid
+ * @link https://php.net/manual/en/solrdocument.valid.php
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function valid() {}
+}
diff --git a/phpstorm-stubs/solr/Documents/SolrDocumentField.php b/phpstorm-stubs/solr/Documents/SolrDocumentField.php
new file mode 100644
index 0000000..79cfd14
--- /dev/null
+++ b/phpstorm-stubs/solr/Documents/SolrDocumentField.php
@@ -0,0 +1,39 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrDocumentField
+ * This class represents a field in a Solr document. All its properties are read-only.
+ * @link https://php.net/manual/en/class.solrdocumentfield.php
+ */
+final class SolrDocumentField
+{
+ /** @var string [readonly] The name of the field. */
+ public $name;
+
+ /** @var string [readonly] The boost value for the field */
+ public $boost;
+
+ /** @var string [readonly] An array of values for this field */
+ public $values;
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrDocument constructor.
+ * @link https://php.net/manual/en/solrdocumentfield.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrdocumentfield.destruct.php
+ */
+ public function __destruct() {}
+}
diff --git a/phpstorm-stubs/solr/Documents/SolrInputDocument.php b/phpstorm-stubs/solr/Documents/SolrInputDocument.php
new file mode 100644
index 0000000..3be9453
--- /dev/null
+++ b/phpstorm-stubs/solr/Documents/SolrInputDocument.php
@@ -0,0 +1,304 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrInputDocument
+ * This class represents a Solr document that is about to be submitted to the Solr index.
+ * @link https://php.net/manual/en/class.solrinputdocument.php
+ */
+final class SolrInputDocument
+{
+ /** @var int Sorts the fields in ascending order. */
+ public const SORT_DEFAULT = 1;
+
+ /** @var int Sorts the fields in ascending order. */
+ public const SORT_ASC = 1;
+
+ /** @var int Sorts the fields in descending order. */
+ public const SORT_DESC = 2;
+
+ /** @var int Sorts the fields by name */
+ public const SORT_FIELD_NAME = 1;
+
+ /** @var int Sorts the fields by number of values. */
+ public const SORT_FIELD_VALUE_COUNT = 2;
+
+ /** @var int Sorts the fields by boost value. */
+ public const SORT_FIELD_BOOST_VALUE = 4;
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Adds a child document for block indexing
+ * @link https://php.net/manual/en/solrinputdocument.addchilddocument.php
+ * @param SolrInputDocument $child
+ * A SolrInputDocument object.
+ *
+ * @throws SolrIllegalArgumentException
+ * @throws SolrException
+ */
+ public function addChildDocument(SolrInputDocument $child) {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Adds an array of child documents
+ * @link https://php.net/manual/en/solrinputdocument.addchilddocuments.php
+ * @param array &$docs
+ * An array of SolrInputDocument objects.
+ *
+ * @throws SolrIllegalArgumentException
+ * @throws SolrException
+ */
+ public function addChildDocuments(array &$docs) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a field to the document
+ * @link https://php.net/manual/en/solrinputdocument.addfield.php
+ * @param string $fieldName
+ * The name of the field
+ *
+ * @param string $fieldValue
+ * The value for the field.
+ *
+ * @param float $fieldBoostValue [optional]
+ * The index time boost for the field. Though this cannot be negative, you can still pass values less than 1.0 but
+ * they must be greater than zero.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function addField($fieldName, $fieldValue, $fieldBoostValue = 0.0) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Resets the input document
+ * @link https://php.net/manual/en/solrinputdocument.clear.php
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function clear() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Creates a copy of a SolrDocument
+ * @link https://php.net/manual/en/solrinputdocument.clone.php
+ */
+ public function __clone() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrInputDocument constructor.
+ * @link https://php.net/manual/en/solrinputdocument.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a field from the document
+ * @link https://php.net/manual/en/solrinputdocument.construct.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function deleteField($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrinputdocument.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if a field exists
+ * @link https://php.net/manual/en/solrinputdocument.fieldexists.php
+ * @param string $fieldName
+ * Name of the field.
+ *
+ * @return bool
+ * Returns TRUE if the field was found and FALSE if it was not found.
+ *
+ */
+ public function fieldExists($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves the current boost value for the document
+ * @link https://php.net/manual/en/solrinputdocument.getboost.php
+ * @return float|false
+ * Returns the boost value on success and FALSE on failure.
+ *
+ */
+ public function getBoost() {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Returns an array of child documents (SolrInputDocument)
+ * @link https://php.net/manual/en/solrinputdocument.getchilddocuments.php
+ * @return SolrInputDocument[]
+ */
+ public function getChildDocuments() {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Returns the number of child documents
+ * @link https://php.net/manual/en/solrinputdocument.getchilddocumentscount.php
+ * @return int
+ */
+ public function getChildDocumentsCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves a field by name
+ * @link https://php.net/manual/en/solrinputdocument.getfield.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return SolrDocumentField|false Returns a SolrDocumentField object on success and FALSE on failure.
+ */
+ public function getField($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Retrieves the boost value for a particular field
+ * @link https://php.net/manual/en/solrinputdocument.getfieldboost.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @return float|false
+ * Returns the boost value for the field or FALSE if there was an error.
+ *
+ */
+ public function getFieldBoost($fieldName) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the number of fields in the document
+ * @link https://php.net/manual/en/solrinputdocument.getfieldcount.php
+ * @return int|false
+ * Returns an integer on success or FALSE on failure.
+ *
+ */
+ public function getFieldCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array containing all the fields in the document
+ * @link https://php.net/manual/en/solrinputdocument.getfieldnames.php
+ * @return array|false
+ * Returns an array on success and FALSE on failure.
+ *
+ */
+ public function getFieldNames() {}
+
+ /**
+ * (PECL solr >= 2.3.0)
+ * Checks whether the document has any child documents
+ * @link https://php.net/manual/en/solrinputdocument.haschilddocuments.php
+ * @return bool
+ * Returns TRUE if the document has any child documents
+ *
+ */
+ public function hasChildDocuments() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Merges one input document into another
+ * @link https://php.net/manual/en/solrinputdocument.merge.php
+ * @param SolrInputDocument $sourceDoc
+ * The source document.
+ *
+ * @param bool $overwrite [optional]
+ * If this is TRUE it will replace matching fields in the destination document.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure. In the future, this will be modified to return the
+ * number of fields in the new document.
+ *
+ */
+ public function merge(SolrInputDocument $sourceDoc, $overwrite = true) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * This is an alias of SolrInputDocument::clear
+ * @link https://php.net/manual/en/solrinputdocument.reset.php
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function reset() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the boost value for this document
+ * @link https://php.net/manual/en/solrinputdocument.setboost.php
+ * @param float $documentBoostValue
+ * The index-time boost value for this document.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function setBoost($documentBoostValue) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the index-time boost value for a field
+ * https://php.net/manual/en/solrinputdocument.setfieldboost.php
+ * @param string $fieldName
+ * The name of the field.
+ *
+ * @param float $fieldBoostValue
+ * The index time boost value.
+ *
+ */
+ public function setFieldBoost($fieldName, $fieldBoostValue) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sorts the fields within the document
+ * @link https://php.net/manual/en/solrinputdocument.sort.php
+ * @param int $sortOrderBy
+ * The sort criteria, must be one of :
+ *
+ * - SolrInputDocument::SORT_FIELD_NAME
+ * - SolrInputDocument::SORT_FIELD_BOOST_VALUE
+ * - SolrInputDocument::SORT_FIELD_VALUE_COUNT
+ *
+ *
+ * @param int $sortDirection [optional]
+ * The sort direction, can be one of :
+ *
+ * - SolrInputDocument::SORT_DEFAULT
+ * - SolrInputDocument::SORT_ASC
+ * - SolrInputDocument::SORT_DESC
+ *
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function sort($sortOrderBy, $sortDirection = SolrInputDocument::SORT_ASC) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array representation of the input document
+ * @link https://php.net/manual/en/solrinputdocument.toarray.php
+ * @return array|false
+ * Returns an array containing the fields. It returns FALSE on failure.
+ *
+ */
+ public function toArray() {}
+}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrClientException.php b/phpstorm-stubs/solr/Exceptions/SolrClientException.php
new file mode 100644
index 0000000..3c7a877
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrClientException.php
@@ -0,0 +1,27 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrClientException
+ * An exception thrown when there is an error while making a request to the server from the client.
+ * @link https://php.net/manual/en/class.solrclientexception.php
+ */
+class SolrClientException extends SolrException
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns internal information where the Exception was thrown
+ * @link https://php.net/manual/en/solrclientexception.getinternalinfo.php
+ * @return array
+ * Returns an array containing internal information where the error was thrown. Used only for debugging by extension
+ * developers.
+ *
+ */
+ public function getInternalInfo() {}
+}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrException.php b/phpstorm-stubs/solr/Exceptions/SolrException.php
new file mode 100644
index 0000000..71af428
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrException.php
@@ -0,0 +1,36 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrException
+ * This is the base class for all exception thrown by the Solr extension classes.
+ * @link https://php.net/manual/en/class.solrexception.php
+ */
+class SolrException extends Exception
+{
+ /** @var int The line in c-space source file where exception was generated */
+ protected $sourceline;
+
+ /** @var string The c-space source file where exception was generated */
+ protected $sourcefile;
+
+ /** @var string The c-space function where exception was generated */
+ protected $zif_name;
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns internal information where the Exception was thrown
+ * @link https://php.net/manual/en/solrexception.getinternalinfo.php
+ * @return array
+ * Returns an array containing internal information where the error was thrown. Used only for debugging by extension
+ * developers.
+ *
+ */
+ public function getInternalInfo() {}
+}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrIllegalArgumentException.php b/phpstorm-stubs/solr/Exceptions/SolrIllegalArgumentException.php
new file mode 100644
index 0000000..aa3b3fb
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrIllegalArgumentException.php
@@ -0,0 +1,27 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrIllegalArgumentException
+ * This object is thrown when an illegal or invalid argument is passed to a method.
+ * @link https://php.net/manual/en/class.solrillegalargumentexception.php
+ */
+class SolrIllegalArgumentException extends SolrException
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns internal information where the Exception was thrown
+ * @link https://php.net/manual/en/solrillegalargumentexception.getinternalinfo.php
+ * @return array
+ * Returns an array containing internal information where the error was thrown. Used only for debugging by extension
+ * developers.
+ *
+ */
+ public function getInternalInfo() {}
+}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrIllegalOperationException.php b/phpstorm-stubs/solr/Exceptions/SolrIllegalOperationException.php
new file mode 100644
index 0000000..e7b4f07
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrIllegalOperationException.php
@@ -0,0 +1,27 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrIllegalOperationException
+ * This object is thrown when an illegal or unsupported operation is performed on an object.
+ * @link https://php.net/manual/en/class.solrillegaloperationexception.php
+ */
+class SolrIllegalOperationException extends SolrException
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns internal information where the Exception was thrown
+ * @link https://php.net/manual/en/solrillegaloperationexception.getinternalinfo.php
+ * @return array
+ * Returns an array containing internal information where the error was thrown. Used only for debugging by extension
+ * developers.
+ *
+ */
+ public function getInternalInfo() {}
+}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrMissingMandatoryParameterException.php b/phpstorm-stubs/solr/Exceptions/SolrMissingMandatoryParameterException.php
new file mode 100644
index 0000000..79995d4
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrMissingMandatoryParameterException.php
@@ -0,0 +1,14 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 2.2.0)
+ * Class SolrMissingMandatoryParameterException
+ * @link https://php.net/manual/en/class.solrmissingmandatoryparameterexception.php
+ */
+class SolrMissingMandatoryParameterException extends SolrException {}
diff --git a/phpstorm-stubs/solr/Exceptions/SolrServerException.php b/phpstorm-stubs/solr/Exceptions/SolrServerException.php
new file mode 100644
index 0000000..54d4679
--- /dev/null
+++ b/phpstorm-stubs/solr/Exceptions/SolrServerException.php
@@ -0,0 +1,27 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 1.1.0, >=2.0.0)
+ * Class SolrServerException
+ * An exception thrown when there is an error produced by the Solr Server itself.
+ * @link https://php.net/manual/en/class.solrserverexception.php
+ */
+class SolrServerException extends SolrException
+{
+ /**
+ * (PECL solr >= 1.1.0, >=2.0.0)
+ * Returns internal information where the Exception was thrown
+ * @link https://php.net/manual/en/solrserverexception.getinternalinfo.php
+ * @return array
+ * Returns an array containing internal information where the error was thrown. Used only for debugging by extension
+ * developers.
+ *
+ */
+ public function getInternalInfo() {}
+}
diff --git a/phpstorm-stubs/solr/Queries/SolrCollapseFunction.php b/phpstorm-stubs/solr/Queries/SolrCollapseFunction.php
new file mode 100644
index 0000000..08c41c6
--- /dev/null
+++ b/phpstorm-stubs/solr/Queries/SolrCollapseFunction.php
@@ -0,0 +1,150 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 2.2.0)
+ * Class SolrCollapseFunction
+ * @link https://php.net/manual/en/class.solrcollapsefunction.php
+ */
+class SolrCollapseFunction
+{
+ /** @var string */
+ public const NULLPOLICY_IGNORE = 'ignore';
+
+ /** @var string */
+ public const NULLPOLICY_EXPAND = 'expand';
+
+ /** @var string */
+ public const NULLPOLICY_COLLAPSE = 'collapse';
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * SolrCollapseFunction constructor.
+ * @link https://php.net/manual/en/solrcollapsefunction.construct.php
+ * @param string $field [optional]
+ * The field name to collapse on.
+ * In order to collapse a result. The field type must be a single valued String, Int or Float.
+ *
+ */
+ public function __construct($field) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the field that is being collapsed on.
+ * @link https://php.net/manual/en/solrcollapsefunction.getfield.php
+ * @return string
+ */
+ public function getField() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns collapse hint
+ * @link https://php.net/manual/en/solrcollapsefunction.gethint.php
+ * @return string
+ */
+ public function getHint() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns max parameter
+ * @link https://php.net/manual/en/solrcollapsefunction.getmax.php
+ * @return string
+ */
+ public function getMax() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns min parameter
+ * @link https://php.net/manual/en/solrcollapsefunction.getmin.php
+ * @return string
+ */
+ public function getMin() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns null policy
+ * @link https://php.net/manual/en/solrcollapsefunction.getnullpolicy.php
+ * @return string
+ */
+ public function getNullPolicy() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns size parameter
+ * @link https://php.net/manual/en/solrcollapsefunction.getsize.php
+ * @return int
+ */
+ public function getSize() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the field to collapse on
+ * @link https://php.net/manual/en/solrcollapsefunction.setfield.php
+ * @param string $fieldName
+ * The field name to collapse on. In order to collapse a result. The field type must be a single valued String, Int
+ * or Float.
+ *
+ * @return SolrCollapseFunction
+ */
+ public function setField($fieldName) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets collapse hint
+ * @link https://php.net/manual/en/solrcollapsefunction.sethint.php
+ * @param string $hint
+ * Currently there is only one hint available "top_fc", which stands for top level FieldCache
+ *
+ * @return SolrCollapseFunction
+ */
+ public function setHint($hint) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Selects the group heads by the max value of a numeric field or function query.
+ * @link https://php.net/manual/en/solrcollapsefunction.setmax.php
+ * @param string $max
+ * @return SolrCollapseFunction
+ */
+ public function setMax($max) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the initial size of the collapse data structures when collapsing on a numeric field only
+ * @link https://php.net/manual/en/solrcollapsefunction.setmin.php
+ * @param string $min
+ * @return SolrCollapseFunction
+ */
+ public function setMin($min) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the NULL Policy
+ * @link https://php.net/manual/en/solrcollapsefunction.setnullpolicy.php
+ * @param string $nullPolicy
+ * @return SolrCollapseFunction
+ */
+ public function setNullPolicy($nullPolicy) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the initial size of the collapse data structures when collapsing on a numeric field only.
+ * @link https://php.net/manual/en/solrcollapsefunction.setsize.php
+ * @param int $size
+ * @return SolrCollapseFunction
+ */
+ public function setSize($size) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns a string representing the constructed collapse function
+ * @link https://php.net/manual/en/solrcollapsefunction.tostring.php
+ * @return string
+ */
+ public function __toString() {}
+}
diff --git a/phpstorm-stubs/solr/Queries/SolrDisMaxQuery.php b/phpstorm-stubs/solr/Queries/SolrDisMaxQuery.php
new file mode 100644
index 0000000..fa2581a
--- /dev/null
+++ b/phpstorm-stubs/solr/Queries/SolrDisMaxQuery.php
@@ -0,0 +1,350 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 2.1.0)
+ * Version not present on php.net documentation, determined here by using PECL solr changelog:
+ * https://pecl.php.net/package-changelog.php?package=solr&release=2.1.0
+ * Class SolrDisMaxQuery
+ * @link https://php.net/manual/en/class.solrdismaxquery.php
+ */
+class SolrDisMaxQuery extends SolrQuery implements Serializable
+{
+ /**
+ * (PECL solr >= 2.1.0)
+ * Adds a Phrase Bigram Field (pf2 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.addbigramphrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $boost [optional]
+ * Boost value. Boosts documents with matching terms.
+ *
+ * @param string $slop [optional]
+ * Field Slop
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addBigramPhraseField($field, $boost, $slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Adds a boost query field with value and optional boost (bq parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.addboostquery.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $value
+ * @param string $boost [optional]
+ * Boost value. Boosts documents with matching terms.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addBoostQuery($field, $value, $boost) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Adds a Phrase Field (pf parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.addphrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $boost [optional]
+ * Boost value. Boosts documents with matching terms.
+ *
+ * @param string $slop [optional]
+ * Field Slop
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addPhraseField($field, $boost, $slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Add a query field with optional boost (qf parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.addqueryfield.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $boost [optional]
+ * Boost value. Boosts documents with matching terms.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addQueryField($field, $boost) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Adds a Trigram Phrase Field (pf3 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.addtrigramphrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $boost [optional]
+ * Boost value. Boosts documents with matching terms.
+ *
+ * @param string $slop [optional]
+ * Field Slop
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addTrigramPhraseField($field, $boost, $slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Adds a field to User Fields Parameter (uf)
+ * @link https://php.net/manual/en/solrdismaxquery.adduserfield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function addUserField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes phrase bigram field (pf2 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.removebigramphrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removeBigramPhraseField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes a boost query partial by field name (bq)
+ * @link https://php.net/manual/en/solrdismaxquery.removeboostquery.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removeBoostQuery($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes a Phrase Field (pf parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.removephrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removePhraseField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes a Query Field (qf parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.removequeryfield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removeQueryField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes a Trigram Phrase Field (pf3 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.removetrigramphrasefield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removeTrigramPhraseField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Removes a field from The User Fields Parameter (uf)
+ *
+ * Warning
+ * This function is currently not documented; only its argument list is available.
+ *
+ * @link https://php.net/manual/en/solrdismaxquery.removeuserfield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function removeUserField($field) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets Bigram Phrase Fields and their boosts (and slops) using pf2 parameter
+ * @link https://php.net/manual/en/solrdismaxquery.setbigramphrasefields.php
+ * @param string $fields
+ * Fields boosts (slops)
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setBigramPhraseFields($fields) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets Bigram Phrase Slop (ps2 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.setbigramphraseslop.php
+ * @param string $slop
+ * A default slop for Bigram phrase fields.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setBigramPhraseSlop($slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets a Boost Function (bf parameter).
+ * @link https://php.net/manual/en/solrdismaxquery.setboostfunction.php
+ * @param string $function
+ * Functions (with optional boosts) that will be included in the user's query to influence the score. Any function
+ * supported natively by Solr can be used, along with a boost value. e.g.:
+ * recip(rord(myfield),1,2,3)^1.5
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setBoostFunction($function) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Directly Sets Boost Query Parameter (bq)
+ * @link https://php.net/manual/en/solrdismaxquery.setboostquery.php
+ * @param string $q
+ * @return SolrDisMaxQuery
+ */
+ public function setBoostQuery($q) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Set Minimum "Should" Match (mm)
+ * @link https://php.net/manual/en/solrdismaxquery.setminimummatch.php
+ * @param string $value
+ * Minimum match value/expression
+ * Set Minimum "Should" Match parameter (mm). If the default query operator is AND then mm=100%, if the default
+ * query operator (q.op) is OR, then mm=0%.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setMinimumMatch($value) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets Phrase Fields and their boosts (and slops) using pf2 parameter
+ * @link https://php.net/manual/en/solrdismaxquery.setphrasefields.php
+ * @param string $fields
+ * Fields, boosts [, slops]
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setPhraseFields($fields) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets the default slop on phrase queries (ps parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.setphraseslop.php
+ * @param string $slop
+ * Sets the default amount of slop on phrase queries built with "pf", "pf2" and/or "pf3" fields (affects boosting).
+ * "ps" parameter
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setPhraseSlop($slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Set Query Alternate (q.alt parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.setqueryalt.php
+ * @param string $q
+ * Query String
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setQueryAlt($q) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Specifies the amount of slop permitted on phrase queries explicitly included in the user's query string (qf
+ * parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.setqueryphraseslop.php
+ * @param string $slop
+ * Amount of slop
+ * The Query Phrase Slop is the amount of slop permitted on phrase queries explicitly included in the user's query
+ * string with the qf parameter.
+ *
+ * slop refers to the number of positions one token needs to be moved in relation to another token in order to match
+ * a phrase specified in a query.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setQueryPhraseSlop($slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets Tie Breaker parameter (tie parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.settiebreaker.php
+ * @param string $tieBreaker
+ * The tie parameter specifies a float value (which should be something much less than 1) to use as tiebreaker in
+ * DisMax queries.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setTieBreaker($tieBreaker) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Directly Sets Trigram Phrase Fields (pf3 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.settrigramphrasefields.php
+ * @param string $fields
+ * Trigram Phrase Fields
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setTrigramPhraseFields($fields) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets Trigram Phrase Slop (ps3 parameter)
+ * @link https://php.net/manual/en/solrdismaxquery.settrigramphraseslop.php
+ * @param string $slop
+ * Phrase slop
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setTrigramPhraseSlop($slop) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Sets User Fields parameter (uf)
+ * @link https://php.net/manual/en/solrdismaxquery.setuserfields.php
+ * @param string $fields
+ * Fields names separated by space
+ * This parameter supports wildcards.
+ *
+ * @return SolrDisMaxQuery
+ */
+ public function setUserFields($fields) {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Switch QueryParser to be DisMax Query Parser
+ * @link https://php.net/manual/en/solrdismaxquery.usedismaxqueryparser.php
+ * @return SolrDisMaxQuery
+ */
+ public function useDisMaxQueryParser() {}
+
+ /**
+ * (PECL solr >= 2.1.0)
+ * Switch QueryParser to be EDisMax
+ * By default the query builder uses edismax, if it was switched using
+ * SolrDisMaxQuery::useDisMaxQueryParser(), it can be switched back using this method.
+ * @link https://php.net/manual/en/solrdismaxquery.useedismaxqueryparser.php
+ * @return SolrDisMaxQuery
+ */
+ public function useEDisMaxQueryParser() {}
+}
diff --git a/phpstorm-stubs/solr/Queries/SolrModifiableParams.php b/phpstorm-stubs/solr/Queries/SolrModifiableParams.php
new file mode 100644
index 0000000..769ade5
--- /dev/null
+++ b/phpstorm-stubs/solr/Queries/SolrModifiableParams.php
@@ -0,0 +1,30 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrModifiableParams
+ * This class represents a collection of name-value pairs sent to the Solr server during a request.
+ * @link https://php.net/manual/en/class.solrmodifiableparams.php
+ */
+class SolrModifiableParams extends SolrParams implements Serializable
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrModifiableParams constructor.
+ * @link https://php.net/manual/en/solrmodifiableparams.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrmodifiableparams.destruct.php
+ */
+ public function __destruct() {}
+}
diff --git a/phpstorm-stubs/solr/Queries/SolrParams.php b/phpstorm-stubs/solr/Queries/SolrParams.php
new file mode 100644
index 0000000..4e34bbf
--- /dev/null
+++ b/phpstorm-stubs/solr/Queries/SolrParams.php
@@ -0,0 +1,159 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrParams
+ * This class represents a a collection of name-value pairs sent to the Solr server during a request.
+ * @link https://php.net/manual/en/class.solrparams.php
+ */
+abstract class SolrParams implements Serializable
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * This is an alias for SolrParams::addParam
+ * @link https://php.net/manual/en/solrparams.add.php
+ * @param string $name
+ * The name of the parameter
+ *
+ * @param string $value
+ * The value of the parameter
+ *
+ * @return SolrParams|false
+ * Returns a SolrParams instance on success and FALSE on failure.
+ *
+ */
+ public function add($name, $value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a parameter to the object
+ * @link https://php.net/manual/en/solrparams.addparam.php
+ * @param string $name
+ * The name of the parameter
+ *
+ * @param string $value
+ * The value of the parameter
+ *
+ * @return SolrParams|false
+ * Returns a SolrParams instance on success and FALSE on failure.
+ *
+ */
+ public function addParam($name, $value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * This is an alias for SolrParams::getParam
+ * @link https://php.net/manual/en/solrparams.get.php
+ * @param string $param_name
+ * The name of the parameter
+ *
+ * @return mixed
+ * Returns an array or string depending on the type of parameter
+ *
+ */
+ final public function get($param_name) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns a parameter value
+ * @link https://php.net/manual/en/solrparams.getparam.php
+ * @param string $param_name
+ * The name of the parameter
+ *
+ * @return mixed
+ * Returns an array or string depending on the type of parameter
+ *
+ */
+ final public function getParam($param_name) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array of non URL-encoded parameters
+ * @link https://php.net/manual/en/solrparams.getparams.php
+ * @return array
+ * Returns an array of non URL-encoded parameters
+ *
+ */
+ final public function getParams() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array of URL-encoded parameters
+ * @link https://php.net/manual/en/solrparams.getpreparedparams.php
+ * @return array
+ * Returns an array of URL-encoded parameters
+ *
+ */
+ final public function getPreparedParams() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Used for custom serialization
+ * @link https://php.net/manual/en/solrparams.serialize.php
+ * @return string
+ * Used for custom serialization
+ *
+ */
+ final public function serialize() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * An alias of SolrParams::setParam
+ * @link https://php.net/manual/en/solrparams.set.php
+ * @param string $name
+ * The name of the parameter
+ *
+ * @param string $value
+ * The parameter value
+ *
+ * @return SolrParams|false
+ * Returns a SolrParams instance on success and FALSE on failure.
+ *
+ */
+ final public function set($name, $value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the parameter to the specified value
+ * @link https://php.net/manual/en/solrparams.setparam.php
+ * @param string $name
+ * The name of the parameter
+ *
+ * @param string $value
+ * The parameter value
+ *
+ * @return SolrParams|false
+ * Returns a SolrParams instance on success and FALSE on failure.
+ *
+ */
+ public function setParam($name, $value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the name-value pair parameters in the object
+ * @link https://php.net/manual/en/solrparams.tostring.php
+ * @param bool $url_encode
+ * Whether to return URL-encoded values
+ *
+ * @return string|false
+ * Returns a string on success and FALSE on failure.
+ *
+ */
+ final public function toString($url_encode = false) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Used for custom serialization
+ * @link https://php.net/manual/en/solrparams.unserialize.php
+ * @param string $serialized
+ * The serialized representation of the object
+ *
+ */
+ final public function unserialize($serialized) {}
+}
diff --git a/phpstorm-stubs/solr/Queries/SolrQuery.php b/phpstorm-stubs/solr/Queries/SolrQuery.php
new file mode 100644
index 0000000..3bea5c6
--- /dev/null
+++ b/phpstorm-stubs/solr/Queries/SolrQuery.php
@@ -0,0 +1,2425 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrQuery
+ * This class represents a collection of name-value pairs sent to the Solr server during a request.
+ * @link https://php.net/manual/en/class.solrquery.php
+ */
+class SolrQuery extends SolrModifiableParams implements Serializable
+{
+ /** @var int Used to specify that the sorting should be in acending order */
+ public const ORDER_ASC = 0;
+
+ /** @var int Used to specify that the sorting should be in descending order */
+ public const ORDER_DESC = 1;
+
+ /** @var int Used to specify that the facet should sort by index */
+ public const FACET_SORT_INDEX = 0;
+
+ /** @var int Used to specify that the facet should sort by count */
+ public const FACET_SORT_COUNT = 1;
+
+ /** @var int Used in the TermsComponent */
+ public const TERMS_SORT_INDEX = 0;
+
+ /** @var int Used in the TermsComponent */
+ public const TERMS_SORT_COUNT = 1;
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Overrides main filter query, determines which documents to include in the main group.
+ * @link https://php.net/manual/en/solrquery.addexpandfilterquery.php
+ * @param string $fq
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addExpandFilterQuery($fq) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Orders the documents within the expanded groups (expand.sort parameter).
+ * @link https://php.net/manual/en/solrquery.addexpandsortfield.php
+ * @param string $field
+ * Field name
+ *
+ * @param string $order [optional]
+ * Order ASC/DESC, utilizes SolrQuery::ORDER_* constants.
+ *
+ *
+ * Default: SolrQuery::ORDER_DESC
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addExpandSortField($field, $order) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.date
+ * @link https://php.net/manual/en/solrquery.addfacetdatefield.php
+ * @param string $dateField
+ * The name of the date field.
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addFacetDateField($dateField) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds another facet.date.other parameter
+ * @link https://php.net/manual/en/solrquery.addfacetdateother.php
+ * @param string $value
+ * The value to use.
+ *
+ * @param string $field_override
+ * The field name for the override.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addFacetDateOther($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds another field to the facet
+ * @link https://php.net/manual/en/solrquery.addfacetfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addFacetField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a facet query
+ * @link https://php.net/manual/en/solrquery.addfacetquery.php
+ * @param string $facetQuery
+ * The facet query
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addFacetQuery($facetQuery) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies which fields to return in the result
+ * @link https://php.net/manual/en/solrquery.addfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies a filter query
+ * @link https://php.net/manual/en/solrquery.addfilterquery.php
+ * @param string $fq
+ * The filter query
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addFilterQuery($fq) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Add a field to be used to group results.
+ * @link https://php.net/manual/en/solrquery.addgroupfield.php
+ * @param string $value
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addGroupField($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Allows grouping results based on the unique values of a function query (group.func parameter).
+ * @link https://php.net/manual/en/solrquery.addgroupfunction.php
+ * @param string $value
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addGroupFunction($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Allows grouping of documents that match the given query.
+ * @link https://php.net/manual/en/solrquery.addgroupquery.php
+ * @param string $value
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addGroupQuery($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Add a group sort field (group.sort parameter).
+ * @link https://php.net/manual/en/solrquery.addgroupsortfield.php
+ * @param string $field
+ * Field name
+ *
+ * @param int $order
+ * Order ASC/DESC, utilizes SolrQuery::ORDER_* constants
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addGroupSortField($field, $order) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to hl.fl
+ * @link https://php.net/manual/en/solrquery.addhighlightfield.php
+ * @param string $field
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addHighlightField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets a field to use for similarity
+ * @link https://php.net/manual/en/solrquery.addmltfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addMltField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to mlt.qf
+ * @link https://php.net/manual/en/solrquery.addmltqueryfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @param float $boost
+ * Its boost value
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addMltQueryField($field, $boost) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Used to control how the results should be sorted
+ * @link https://php.net/manual/en/solrquery.addsortfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @param int $order
+ * The sort direction. This should be either SolrQuery::ORDER_ASC or SolrQuery::ORDER_DESC.
+ *
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function addSortField($field, $order = SolrQuery::ORDER_DESC) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Requests a return of sub results for values within the given facet
+ * @link https://php.net/manual/en/solrquery.addstatsfacet.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addStatsFacet($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to stats.field parameter
+ * @link https://php.net/manual/en/solrquery.addstatsfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function addStatsField($field) {}
+
+ /**
+ * (No version information available, might only be in Git)
+ * Collapses the result set to a single document per group
+ * @link https://php.net/manual/en/solrquery.collapse.php
+ * @param SolrCollapseFunction $collapseFunction
+ * @return SolrQuery
+ * Returns a SolrQuery object.
+ *
+ */
+ public function collapse(SolrCollapseFunction $collapseFunction) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrQuery constructor.
+ * @link https://php.net/manual/en/solrquery.construct.php
+ * @param string $q
+ * Optional search query
+ *
+ */
+ public function __construct($q = '') {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrquery.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns true if group expanding is enabled
+ * @link https://php.net/manual/en/solrquery.getexpand.php
+ * @return bool
+ * Returns TRUE if group expanding is enabled
+ *
+ */
+ public function getExpand() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the expand filter queries
+ * @link https://php.net/manual/en/solrquery.getexpandfilterqueries.php
+ * @return array
+ * Returns the expand filter queries
+ *
+ */
+ public function getExpandFilterQueries() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the expand query expand.q parameter
+ * @link https://php.net/manual/en/solrquery.getexpandquery.php
+ * @return array
+ * Returns the expand query expand.q parameter
+ *
+ */
+ public function getExpandQuery() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns The number of rows to display in each group (expand.rows)
+ * @link https://php.net/manual/en/solrquery.getexpandrows.php
+ * @return int
+ * Returns The number of rows to display in each group (expand.rows)
+ *
+ */
+ public function getExpandRows() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns an array of fields
+ * @link https://php.net/manual/en/solrquery.getexpandsortfields.php
+ * @return array
+ * Returns an array of fields
+ *
+ */
+ public function getExpandSortFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value of the facet parameter
+ * @link https://php.net/manual/en/solrquery.getfacet.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getFacet() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value for the facet.date.end parameter
+ * @link https://php.net/manual/en/solrquery.getfacetdateend.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetDateEnd($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the facet.date fields
+ * @link https://php.net/manual/en/solrquery.getfacetdatefields.php
+ * @return array|null
+ * Returns all the facet.date fields as an array or NULL if none was set
+ *
+ */
+ public function getFacetDateFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value of the facet.date.gap parameter
+ * @link https://php.net/manual/en/solrquery.getfacetdategap.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetDateGap($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value of the facet.date.hardend parameter
+ * @link https://php.net/manual/en/solrquery.getfacetdatehardend.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetDateHardEnd($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value for the facet.date.other parameter
+ * @link https://php.net/manual/en/solrquery.getfacetdatehardend.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return array|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getFacetDateOther($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the lower bound for the first date range for all date faceting on this field
+ * @link https://php.net/manual/en/solrquery.getfacetdatestart.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetDateStart($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the facet fields
+ * @link https://php.net/manual/en/solrquery.getfacetfields.php
+ * @return array|null
+ * Returns an array of all the fields and NULL if none was set
+ *
+ */
+ public function getFacetFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of constraint counts that should be returned for the facet fields
+ * @link https://php.net/manual/en/solrquery.getfacetlimit.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getFacetLimit($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the value of the facet.method parameter
+ * @link https://php.net/manual/en/solrquery.getfacetmethod.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetMethod($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the minimum counts for facet fields should be included in the response
+ * @link https://php.net/manual/en/solrquery.getfacetmincount.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getFacetMinCount($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the current state of the facet.missing parameter
+ * @link https://php.net/manual/en/solrquery.getfacetmissing.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getFacetMissing($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an offset into the list of constraints to be used for pagination
+ * @link https://php.net/manual/en/solrquery.getfacetoffset.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getFacetOffset($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the facet prefix
+ * @link https://php.net/manual/en/solrquery.getfacetprefix.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getFacetPrefix($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the facet queries
+ * @link https://php.net/manual/en/solrquery.getfacetqueries.php
+ * @return string|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getFacetQueries() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the facet sort type
+ * @link https://php.net/manual/en/solrquery.getfacetsort.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer (SolrQuery::FACET_SORT_INDEX or SolrQuery::FACET_SORT_COUNT) on success or NULL if not
+ * set.
+ *
+ */
+ public function getFacetSort($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the list of fields that will be returned in the response
+ * @link https://php.net/manual/en/solrquery.getfields.php
+ * @return string|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array of filter queries
+ * @link https://php.net/manual/en/solrquery.getfilterqueries.php
+ * @return string|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getFilterQueries() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns true if grouping is enabled
+ * https://secure.php.net/manual/en/solrquery.getgroup.php
+ * @return bool
+ * Returns true if grouping is enabled
+ *
+ */
+ public function getGroup() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns group cache percent value
+ * @link https://php.net/manual/en/solrquery.getgroupcachepercent.php
+ * @return int
+ * Returns group cache percent value
+ *
+ */
+ public function getGroupCachePercent() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.facet parameter value
+ * @link https://php.net/manual/en/solrquery.getgroupfacet.php
+ * @return bool
+ * Returns the group.facet parameter value
+ *
+ */
+ public function getGroupFacet() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns group fields (group.field parameter values)
+ * @link https://php.net/manual/en/solrquery.getgroupfields.php
+ * @return array
+ * Returns group fields (group.field parameter values)
+ *
+ */
+ public function getGroupFields() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.format value
+ * @link https://php.net/manual/en/solrquery.getgroupformat.php
+ * @return string
+ * Returns the group.format value
+ *
+ */
+ public function getGroupFormat() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns group functions (group.func parameter values)
+ * @link https://php.net/manual/en/solrquery.getgroupfunctions.php
+ * @return array
+ * Returns group functions (group.func parameter values)
+ *
+ */
+ public function getGroupFunctions() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.limit value
+ * @link https://php.net/manual/en/solrquery.getgrouplimit.php
+ * @return int
+ * Returns the group.limit value
+ *
+ */
+ public function getGroupLimit() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.main value
+ * @link https://php.net/manual/en/solrquery.getgroupmain.php
+ * @return bool
+ * Returns the group.main value
+ *
+ */
+ public function getGroupMain() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.ngroups value
+ * @link https://php.net/manual/en/solrquery.getgroupngroups.php
+ * @return bool
+ * Returns the group.ngroups value
+ *
+ */
+ public function getGroupNGroups() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.offset value
+ * @link https://php.net/manual/en/solrquery.getgroupoffset.php
+ * @return bool
+ * Returns the group.offset value
+ *
+ */
+ public function getGroupOffset() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns all the group.query parameter values
+ * @link https://php.net/manual/en/solrquery.getgroupqueries.php
+ * @return array
+ * Returns all the group.query parameter values
+ *
+ */
+ public function getGroupQueries() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.sort value
+ * @link https://php.net/manual/en/solrquery.getgroupsortfields.php
+ * @return array
+ * Returns all the group.sort parameter values
+ *
+ */
+ public function getGroupSortFields() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Returns the group.truncate value
+ * @link https://php.net/manual/en/solrquery.getgrouptruncate.php
+ * @return bool
+ * Returns the group.truncate value
+ *
+ */
+ public function getGroupTruncate() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the state of the hl parameter
+ * @link https://php.net/manual/en/solrquery.gethighlight.php
+ * @return bool
+ * Returns the state of the hl parameter
+ *
+ */
+ public function getHighlight() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the highlight field to use as backup or default
+ * @link https://php.net/manual/en/solrquery.gethighlightalternatefield.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightAlternateField($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the fields that Solr should generate highlighted snippets for
+ * @link https://php.net/manual/en/solrquery.gethighlightfields.php
+ * @return array|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getHighlightFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the formatter for the highlighted output
+ * @link https://php.net/manual/en/solrquery.gethighlightformatter.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightFormatter($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the text snippet generator for highlighted text
+ * @link https://php.net/manual/en/solrquery.gethighlightfragmenter.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightFragmenter($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the number of characters of fragments to consider for highlighting
+ * @link https://php.net/manual/en/solrquery.gethighlightfragsize.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getHighlightFragsize($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not to enable highlighting for range/wildcard/fuzzy/prefix queries
+ * @link https://php.net/manual/en/solrquery.gethighlighthighlightmultiterm.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getHighlightHighlightMultiTerm() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of characters of the field to return
+ * @link https://php.net/manual/en/solrquery.gethighlightmaxalternatefieldlength.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getHighlightMaxAlternateFieldLength($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of characters into a document to look for suitable snippets
+ * @link https://php.net/manual/en/solrquery.gethighlightmaxanalyzedchars.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getHighlightMaxAnalyzedChars() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not the collapse contiguous fragments into a single fragment
+ * @link https://php.net/manual/en/solrquery.gethighlightmergecontiguous.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getHighlightMergeContiguous($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of characters from a field when using the regex fragmenter
+ * @link https://php.net/manual/en/solrquery.gethighlightregexmaxanalyzedchars.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getHighlightRegexMaxAnalyzedChars() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the regular expression for fragmenting
+ * @link https://php.net/manual/en/solrquery.gethighlightregexpattern.php
+ * @return string
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightRegexPattern() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the deviation factor from the ideal fragment size
+ * @link https://php.net/manual/en/solrquery.gethighlightregexslop.php
+ * @return float|null
+ * Returns a double on success and NULL if not set.
+ *
+ */
+ public function getHighlightRegexSlop() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns if a field will only be highlighted if the query matched in this particular field
+ * @link https://php.net/manual/en/solrquery.gethighlightrequirefieldmatch.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getHighlightRequireFieldMatch() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the text which appears after a highlighted term
+ * @link https://php.net/manual/en/solrquery.gethighlightsimplepost.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightSimplePost($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the text which appears before a highlighted term
+ * @link https://php.net/manual/en/solrquery.gethighlightsimplepre.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getHighlightSimplePre($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of highlighted snippets to generate per field
+ * @link https://php.net/manual/en/solrquery.gethighlightsnippets.php
+ * @param string $field_override [optional]
+ * The name of the field
+ *
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getHighlightSnippets($field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the state of the hl.usePhraseHighlighter parameter
+ * @link https://php.net/manual/en/solrquery.gethighlightusephrasehighlighter.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getHighlightUsePhraseHighlighter() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not MoreLikeThis results should be enabled
+ * @link https://php.net/manual/en/solrquery.getmlt.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getMlt() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not the query will be boosted by the interesting term relevance
+ * @link https://php.net/manual/en/solrquery.getmltboost.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getMltBoost() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the number of similar documents to return for each result
+ * @link https://php.net/manual/en/solrquery.getmltcount.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the fields to use for similarity
+ * @link https://php.net/manual/en/solrquery.getmltfields.php
+ * @return array
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getMltFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of query terms that will be included in any generated query
+ * @link https://php.net/manual/en/solrquery.getmltmaxnumqueryterms.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMaxNumQueryTerms() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of tokens to parse in each document field that is not stored with TermVector support
+ * @link https://php.net/manual/en/solrquery.getmltmaxnumtokens.php
+ * @return int
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMaxNumTokens() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum word length above which words will be ignored
+ * @link https://php.net/manual/en/solrquery.getmltmaxwordlength.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMaxWordLength() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the threshold frequency at which words will be ignored which do not occur in at least this many docs
+ * @link https://php.net/manual/en/solrquery.getmltmindocfrequency.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMinDocFrequency() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the frequency below which terms will be ignored in the source document
+ * @link https://php.net/manual/en/solrquery.getmltmintermfrequency.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMinTermFrequency() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the minimum word length below which words will be ignored
+ * @link https://php.net/manual/en/solrquery.getmltminwordlength.php
+ * @return int
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getMltMinWordLength() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the query fields and their boosts
+ * @link https://php.net/manual/en/solrquery.getmltqueryfields.php
+ * @return array|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getMltQueryFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the main query
+ * @link https://php.net/manual/en/solrquery.getquery.php
+ * @return string
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getQuery() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of documents
+ * @link https://php.net/manual/en/solrquery.getrows.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getRows() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the sort fields
+ * @link https://php.net/manual/en/solrquery.getsortfields.php
+ * @return array
+ * Returns an array on success and NULL if none of the parameters was set.
+ *
+ */
+ public function getSortFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the offset in the complete result set
+ * @link https://php.net/manual/en/solrquery.getstart.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getStart() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not stats is enabled
+ * @link https://php.net/manual/en/solrquery.getstats.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getStats() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the stats facets that were set
+ * @link https://php.net/manual/en/solrquery.getstatsfacets.php
+ * @return array|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getStatsFacets() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns all the statistics fields
+ * @link https://php.net/manual/en/solrquery.getstatsfields.php
+ * @return array|null
+ * Returns an array on success and NULL if not set
+ *
+ */
+ public function getStatsFields() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not the TermsComponent is enabled
+ * @link https://php.net/manual/en/solrquery.getterms.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getTerms() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the field from which the terms are retrieved
+ * @link https://php.net/manual/en/solrquery.gettermsfield.php
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getTermsField() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not to include the lower bound in the result set
+ * @link https://php.net/manual/en/solrquery.gettermsincludelowerbound.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getTermsIncludeLowerBound() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns whether or not to include the upper bound term in the result set
+ * @link https://php.net/manual/en/solrquery.gettermsincludeupperbound.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getTermsIncludeUpperBound() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum number of terms Solr should return
+ * @link https://php.net/manual/en/solrquery.gettermslimit.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getTermsLimit() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the term to start at
+ * @link https://php.net/manual/en/solrquery.gettermslowerbound.php
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getTermsLowerBound() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the maximum document frequency
+ * @link https://php.net/manual/en/solrquery.gettermsmaxcount.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getTermsMaxCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the minimum document frequency to return in order to be included
+ * @link https://php.net/manual/en/solrquery.gettermsmincount.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getTermsMinCount() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the term prefix
+ * @link https://php.net/manual/en/solrquery.gettermsprefix.php
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getTermsPrefix() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Whether or not to return raw characters
+ * @link https://php.net/manual/en/solrquery.gettermsreturnraw.php
+ * @return bool|null
+ * Returns a boolean on success and NULL if not set
+ *
+ */
+ public function getTermsReturnRaw() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an integer indicating how terms are sorted
+ * @link https://php.net/manual/en/solrquery.gettermssort.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ * SolrQuery::TERMS_SORT_INDEX indicates that the terms are returned by index order.
+ * SolrQuery::TERMS_SORT_COUNT implies that the terms are sorted by term frequency (highest count first)
+ *
+ */
+ public function getTermsSort() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the term to stop at
+ * @link https://php.net/manual/en/solrquery.gettermsupperbound.php
+ * @return string|null
+ * Returns a string on success and NULL if not set
+ *
+ */
+ public function getTermsUpperBound() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the time in milliseconds allowed for the query to finish
+ * @link https://php.net/manual/en/solrquery.gettimeallowed.php
+ * @return int|null
+ * Returns an integer on success and NULL if not set
+ *
+ */
+ public function getTimeAllowed() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Removes an expand filter query
+ * @link https://php.net/manual/en/solrquery.removeexpandfilterquery.php
+ * @param string $fq
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeExpandFilterQuery($fq) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Removes an expand sort field from the expand.sort parameter.
+ * @link https://php.net/manual/en/solrquery.removeexpandsortfield.php
+ * @param string $field
+ * Field name
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeExpandSortField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the facet date fields
+ * @link https://php.net/manual/en/solrquery.removefacetdatefield.php
+ * @param string $field
+ * The name of the date field to remove
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeFacetDateField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the facet.date.other parameters
+ * @link https://php.net/manual/en/solrquery.removefacetdateother.php
+ * @param string $value
+ * The value
+ *
+ * @param string $field_override [optional]
+ * The name of the field.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeFacetDateOther($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the facet.date parameters
+ * @link https://php.net/manual/en/solrquery.removefacetfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeFacetField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the facet.query parameters
+ * @link https://php.net/manual/en/solrquery.removefacetquery.php
+ * @param string $value
+ * The value
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeFacetQuery($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a field from the list of fields
+ * @link https://php.net/manual/en/solrquery.removefield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes a filter query
+ * @link https://php.net/manual/en/solrquery.removefilterquery.php
+ * @param string $fq
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeFilterQuery($fq) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the fields used for highlighting
+ * @link https://php.net/manual/en/solrquery.removehighlightfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeHighlightField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the moreLikeThis fields
+ * @link https://php.net/manual/en/solrquery.removemltfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeMltField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the moreLikeThis query fields
+ * @link https://php.net/manual/en/solrquery.removemltqueryfield.php
+ * @param string $queryField
+ * The query field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeMltQueryField($queryField) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the sort fields
+ * @link https://php.net/manual/en/solrquery.removesortfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeSortField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the stats.facet parameters
+ * @link https://php.net/manual/en/solrquery.removestatsfacet.php
+ * @param string $value
+ * The value
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeStatsFacet($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes one of the stats.field parameters
+ * @link https://php.net/manual/en/solrquery.removestatsfield.php
+ * @param string $field
+ * The name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function removeStatsField($field) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Toggles the echoHandler parameter
+ * @link https://php.net/manual/en/solrquery.setechohandler.php
+ * @param bool $flag
+ * TRUE or FALSE
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setEchoHandler($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Determines what kind of parameters to include in the response
+ * @link https://php.net/manual/en/solrquery.setechoparams.php
+ * @param string $type
+ * The type of parameters to include:
+ *
+ *
+ * - none: don't include any request parameters for debugging
+ * - explicit: include the parameters explicitly specified by the client in the request
+ * - all: include all parameters involved in this request, either specified explicitly by the client, or
+ * implicit because of the request handler configuration.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setEchoParams($type) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Enables/Disables the Expand Component
+ * @link https://php.net/manual/en/solrquery.setexpand.php
+ * @param bool $value
+ * Bool flag
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setExpand($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the expand.q parameter
+ * @link https://php.net/manual/en/solrquery.setexpandquery.php
+ * @param string $q
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setExpandQuery($q) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the number of rows to display in each group (expand.rows). Server Default 5
+ * @link https://php.net/manual/en/solrquery.setexpandrows.php
+ * @param int $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setExpandRows($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the explainOther common query parameter
+ * @link https://php.net/manual/en/solrquery.setexplainother.php
+ * @param string $query
+ * The Lucene query to identify a set of documents
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setExplainOther($query) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to the facet parameter. Enables or disables facetting
+ * @link https://php.net/manual/en/solrquery.setfacet.php
+ * @param bool $flag
+ * TRUE enables faceting and FALSE disables it.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacet($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.date.end
+ * @link https://php.net/manual/en/solrquery.setfacetdateend.php
+ * @param string $value
+ * See facet.date.end
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetDateEnd($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.date.gap
+ * @link https://php.net/manual/en/solrquery.setfacetdategap.php
+ * @param string $value
+ * See facet.date.gap
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetDateGap($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.date.hardend
+ * @link https://php.net/manual/en/solrquery.setfacetdatehardend.php
+ * @param bool $value
+ * See facet.date.hardend
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetDateHardEnd($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.date.start
+ * @link https://php.net/manual/en/solrquery.setfacetdatestart.php
+ * @param string $value
+ * See facet.date.start
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetDateStart($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the minimum document frequency used for determining term count
+ * @link https://php.net/manual/en/solrquery.setfacetenumcachemindefaultfrequency.php
+ * @param int $frequency
+ * The minimum frequency
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetEnumCacheMinDefaultFrequency($frequency, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.limit
+ * @link https://php.net/manual/en/solrquery.setfacetlimit.php
+ * @param int $limit
+ * The maximum number of constraint counts
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetLimit($limit, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the type of algorithm to use when faceting a field
+ * @link https://php.net/manual/en/solrquery.setfacetmethod.php
+ * @param string $method
+ * The method to use.
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetMethod($method, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.mincount
+ * @link https://php.net/manual/en/solrquery.setfacetmincount.php
+ * @param int $mincount
+ * The minimum count
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetMinCount($mincount, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Maps to facet.missing
+ * @link https://php.net/manual/en/solrquery.setfacetmissing.php
+ * @param bool $flag
+ * TRUE turns this feature on. FALSE disables it.
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetMissing($flag, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the offset into the list of constraints to allow for pagination
+ * @link https://php.net/manual/en/solrquery.setfacetoffset.php
+ * @param int $offset
+ * The offset
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetOffset($offset, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies a string prefix with which to limits the terms on which to facet
+ * @link https://php.net/manual/en/solrquery.setfacetprefix.php
+ * @param string $prefix
+ * The prefix string
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetPrefix($prefix, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Determines the ordering of the facet field constraints
+ * @link https://php.net/manual/en/solrquery.setfacetsort.php
+ * @param int $facetSort
+ * Use SolrQuery::FACET_SORT_INDEX for sorting by index order or SolrQuery::FACET_SORT_COUNT for sorting by count.
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setFacetSort($facetSort, $field_override) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Enable/Disable result grouping (group parameter)
+ * @link https://php.net/manual/en/solrquery.setgroup.php
+ * @param bool $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroup($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Enables caching for result grouping
+ * @link https://php.net/manual/en/solrquery.setgroupcachepercent.php
+ * @param int $percent
+ * Setting this parameter to a number greater than 0 enables caching for result grouping. Result Grouping executes
+ * two searches; this option caches the second search. The server default value is 0. Testing has shown that group
+ * caching only improves search time with Boolean, wildcard, and fuzzy queries. For simple queries like term or
+ * "match all" queries, group caching degrades performance. group.cache.percent parameter.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupCachePercent($percent) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets group.facet parameter
+ * @link https://php.net/manual/en/solrquery.setgroupfacet.php
+ * @param bool $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupFacet($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the group format, result structure (group.format parameter).
+ * @link https://php.net/manual/en/solrquery.setgroupformat.php
+ * @param string $value
+ * Sets the group.format parameter. If this parameter is set to simple, the grouped documents are presented in a
+ * single flat list, and the start and rows parameters affect the numbers of documents instead of groups.
+ * Accepts: grouped/simple
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupFormat($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Specifies the number of results to return for each group. The server default value is 1.
+ * @link https://php.net/manual/en/solrquery.setgrouplimit.php
+ * @param int $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupLimit($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * If true, the result of the first field grouping command is used as the main result list in the response, using
+ * group.format=simple.
+ * @link https://php.net/manual/en/solrquery.setgroupmain.php
+ * @param string $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupMain($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * If true, Solr includes the number of groups that have matched the query in the results.
+ * @link https://php.net/manual/en/solrquery.setgroupngroups.php
+ * @param bool $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupNGroups($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Sets the group.offset parameter.
+ * @link https://php.net/manual/en/solrquery.setgroupoffset.php
+ * @param int $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupOffset($value) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * If true, facet counts are based on the most relevant document of each group matching the query.
+ * @link https://php.net/manual/en/solrquery.setgrouptruncate.php
+ * @param bool $value
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setGroupTruncate($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Enables or disables highlighting
+ * @link https://php.net/manual/en/solrquery.sethighlight.php
+ * @param bool $flag
+ * Setting it to TRUE enables highlighted snippets to be generated in the query response.
+ * Setting it to FALSE disables highlighting
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlight($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the backup field to use
+ * @link https://php.net/manual/en/solrquery.sethighlightalternatefield.php
+ * @param string $field
+ * The name of the backup field
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightAlternateField($field, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specify a formatter for the highlight output
+ * @link https://php.net/manual/en/solrquery.sethighlightformatter.php
+ * @param string $formatter
+ * Currently the only legal value is "simple"
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightFormatter($formatter, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets a text snippet generator for highlighted text
+ * @link https://php.net/manual/en/solrquery.sethighlightfragmenter.php
+ * @param string $fragmenter
+ * The standard fragmenter is gap. Another option is regex, which tries to create fragments that resembles a certain
+ * regular expression
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightFragmenter($fragmenter, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * The size of fragments to consider for highlighting
+ * @link https://php.net/manual/en/solrquery.sethighlightfragsize.php
+ * @param int $size
+ * The size, in characters, of fragments to consider for highlighting
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightFragsize($size, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Use SpanScorer to highlight phrase terms
+ * @link https://php.net/manual/en/solrquery.sethighlighthighlightmultiterm.php
+ * @param bool $flag
+ * Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the
+ * document.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightHighlightMultiTerm($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum number of characters of the field to return
+ * @link https://php.net/manual/en/solrquery.sethighlightmaxalternatefieldlength.php
+ * @param int $fieldLength
+ * The length of the field
+ *
+ *
+ * If SolrQuery::setHighlightAlternateField() was passed the value TRUE, this parameter specifies the maximum
+ * number of characters of the field to return
+ *
+ *
+ * Any value less than or equal to 0 means unlimited.
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightMaxAlternateFieldLength($fieldLength, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the number of characters into a document to look for suitable snippets
+ * @link https://php.net/manual/en/solrquery.sethighlightmaxanalyzedchars.php
+ * @param int $value
+ * The number of characters into a document to look for suitable snippets
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightMaxAnalyzedChars($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Whether or not to collapse contiguous fragments into a single fragment
+ * @link https://php.net/manual/en/solrquery.sethighlightmergecontiguous.php
+ * @param bool $flag
+ * Whether or not to collapse contiguous fragments into a single fragment
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightMergeContiguous($flag, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specify the maximum number of characters to analyze
+ * @link https://php.net/manual/en/solrquery.sethighlightregexmaxanalyzedchars.php
+ * @param int $maxAnalyzedChars
+ * The maximum number of characters to analyze from a field when using the regex fragmenter
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightRegexMaxAnalyzedChars($maxAnalyzedChars) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specify the regular expression for fragmenting
+ * @link https://php.net/manual/en/solrquery.sethighlightregexpattern.php
+ * @param string $value
+ * The regular expression for fragmenting. This could be used to extract sentences
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightRegexPattern($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the factor by which the regex fragmenter can stray from the ideal fragment size
+ * @link https://php.net/manual/en/solrquery.sethighlightregexslop.php
+ * @param float $factor
+ * The factor by which the regex fragmenter can stray from the ideal fragment size (specified by
+ * SolrQuery::setHighlightFragsize) to accommodate the regular expression.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightRegexSlop($factor) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Require field matching during highlighting
+ * @link https://php.net/manual/en/solrquery.sethighlightrequirefieldmatch.php
+ * @param bool $flag
+ * If TRUE, then a field will only be highlighted if the query matched in this particular field.
+ * This will only work if SolrQuery::setHighlightUsePhraseHighlighter() was set to TRUE.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightRequireFieldMatch($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the text which appears after a highlighted term
+ * @link https://php.net/manual/en/solrquery.sethighlightsimplepost.php
+ * @param string $simplePost
+ * Sets the text which appears after a highlighted term. The default is </em>
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightSimplePost($simplePost, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the text which appears before a highlighted term
+ * @link https://php.net/manual/en/solrquery.sethighlightsimplepre.php
+ * @param string $simplePre
+ * Sets the text which appears before a highlighted term. The default is <em>
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightSimplePre($simplePre, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum number of highlighted snippets to generate per field
+ * @link https://php.net/manual/en/solrquery.sethighlightsnippets.php
+ * @param int $value
+ * The maximum number of highlighted snippets to generate per field
+ *
+ * @param string $field_override [optional]
+ * Name of the field
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightSnippets($value, $field_override) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Whether to highlight phrase terms only when they appear within the query phrase
+ * @link https://php.net/manual/en/solrquery.sethighlightusephrasehighlighter.php
+ * @param bool $flag
+ * Whether or not to use SpanScorer to highlight phrase terms only when they appear within the query phrase in the
+ * document.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setHighlightUsePhraseHighlighter($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Enables or disables moreLikeThis
+ * @link https://php.net/manual/en/solrquery.setmlt.php
+ * @param bool $flag
+ * TRUE enables it and FALSE turns it off.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMlt($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Set if the query will be boosted by the interesting term relevance
+ * @link https://php.net/manual/en/solrquery.setmltboost.php
+ * @param bool $flag
+ * Sets to TRUE or FALSE
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltBoost($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Set the number of similar documents to return for each result
+ * @link https://php.net/manual/en/solrquery.setmltcount.php
+ * @param int $count
+ * The number of similar documents to return for each result
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltCount($count) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum number of query terms included
+ * @link https://php.net/manual/en/solrquery.setmltmaxnumqueryterms.php
+ * @param int $value
+ * The maximum number of query terms that will be included in any generated query
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMaxNumQueryTerms($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the maximum number of tokens to parse
+ * @link https://php.net/manual/en/solrquery.setmltmaxnumtokens.php
+ * @param int $value
+ * The maximum number of tokens to parse
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMaxNumTokens($value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum word length
+ * @link https://php.net/manual/en/solrquery.setmltmaxwordlength.php
+ * @param int $maxWordLength
+ * The maximum word length above which words will be ignored
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMaxWordLength($maxWordLength) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the mltMinDoc frequency
+ * @link https://php.net/manual/en/solrquery.setmltmindocfrequency.php
+ * @param int $minDocFrequency
+ * Sets the frequency at which words will be ignored which do not occur in at least this many docs.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMinDocFrequency($minDocFrequency) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the frequency below which terms will be ignored in the source docs
+ * @link https://php.net/manual/en/solrquery.setmltmintermfrequency.php
+ * @param int $minTermFrequency
+ * The frequency below which terms will be ignored in the source docs
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMinTermFrequency($minTermFrequency) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the minimum word length
+ * @link https://php.net/manual/en/solrquery.setmltminwordlength.php
+ * @param int $minWordLength
+ * The minimum word length below which words will be ignored
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setMltMinWordLength($minWordLength) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Exclude the header from the returned results
+ * @link https://php.net/manual/en/solrquery.setomitheader.php
+ * @param bool $flag
+ * TRUE excludes the header from the result.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setOmitHeader($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the search query
+ * @link https://php.net/manual/en/solrquery.setquery.php
+ * @param string $query
+ * The search query
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setQuery($query) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the maximum number of rows to return in the result
+ * @link https://php.net/manual/en/solrquery.setrows.php
+ * @param int $rows
+ * The maximum number of rows to return
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setRows($rows) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Flag to show debug information
+ * @link https://php.net/manual/en/solrquery.setshowdebuginfo.php
+ * @param bool $flag
+ * Whether to show debug info. TRUE or FALSE
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setShowDebugInfo($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the number of rows to skip
+ * @link https://php.net/manual/en/solrquery.setstart.php
+ * @param int $start
+ * The number of rows to skip.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setStart($start) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Enables or disables the Stats component
+ * @link https://php.net/manual/en/solrquery.setstats.php
+ * @param bool $flag
+ * TRUE turns on the stats component and FALSE disables it.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setStats($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Enables or disables the TermsComponent
+ * @link https://php.net/manual/en/solrquery.setterms.php
+ * @param bool $flag
+ * TRUE enables it. FALSE turns it off
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTerms($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the name of the field to get the Terms from
+ * @link https://php.net/manual/en/solrquery.settermsfield.php
+ * @param string $fieldname
+ * The field name
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsField($fieldname) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Include the lower bound term in the result set
+ * @link https://php.net/manual/en/solrquery.settermsincludelowerbound.php
+ * @param bool $flag
+ * Include the lower bound term in the result set
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsIncludeLowerBound($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Include the upper bound term in the result set
+ * @link https://php.net/manual/en/solrquery.settermsincludeupperbound.php
+ * @param bool $flag
+ * TRUE or FALSE
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsIncludeUpperBound($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum number of terms to return
+ * @link https://php.net/manual/en/solrquery.settermslimit.php
+ * @param int $limit
+ * The maximum number of terms to return. All the terms will be returned if the limit is negative.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsLimit($limit) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies the Term to start from
+ * @link https://php.net/manual/en/solrquery.settermslowerbound.php
+ * @param string $lowerBound
+ * The lower bound Term
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsLowerBound($lowerBound) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the maximum document frequency
+ * @link https://php.net/manual/en/solrquery.settermsmaxcount.php
+ * @param int $frequency
+ * The maximum document frequency.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsMaxCount($frequency) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the minimum document frequency
+ * @link https://php.net/manual/en/solrquery.settermsmincount.php
+ * @param int $frequency
+ * The minimum frequency
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsMinCount($frequency) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Restrict matches to terms that start with the prefix
+ * @link https://php.net/manual/en/solrquery.settermsprefix.php
+ * @param string $prefix
+ * Restrict matches to terms that start with the prefix
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsPrefix($prefix) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Return the raw characters of the indexed term
+ * @link https://php.net/manual/en/solrquery.settermsreturnraw.php
+ * @param bool $flag
+ * TRUE or FALSE
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsReturnRaw($flag) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Specifies how to sort the returned terms
+ * @link https://php.net/manual/en/solrquery.settermssort.php
+ * @param int $sortType
+ * If SolrQuery::TERMS_SORT_COUNT, sorts the terms by the term frequency (highest count first).
+ * If SolrQuery::TERMS_SORT_INDEX, returns the terms in index order
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsSort($sortType) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the term to stop at
+ * @link https://php.net/manual/en/solrquery.settermsupperbound.php
+ * @param string $upperBound
+ * The term to stop at
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTermsUpperBound($upperBound) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * The time allowed for search to finish
+ * @link https://php.net/manual/en/solrquery.settimeallowed.php
+ * @param int $timeAllowed
+ * The time allowed for a search to finish. This value only applies to the search and not to requests in general.
+ * Time is in milliseconds. Values less than or equal to zero implies no time restriction. Partial results may be
+ * returned, if there are any.
+ *
+ * @return SolrQuery
+ * Returns the current SolrQuery object, if the return value is used.
+ *
+ */
+ public function setTimeAllowed($timeAllowed) {}
+}
diff --git a/phpstorm-stubs/solr/Responses/SolrGenericResponse.php b/phpstorm-stubs/solr/Responses/SolrGenericResponse.php
new file mode 100644
index 0000000..dc09673
--- /dev/null
+++ b/phpstorm-stubs/solr/Responses/SolrGenericResponse.php
@@ -0,0 +1,30 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrGenericResponse
+ * This class represents a response from the solr server.
+ * @link https://php.net/manual/en/class.solrgenericresponse.php
+ */
+final class SolrGenericResponse extends SolrResponse
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrGenericResponse constructor.
+ * @link https://php.net/manual/en/solrgenericresponse.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrgenericresponse.destruct.php
+ */
+ public function __destruct() {}
+}
diff --git a/phpstorm-stubs/solr/Responses/SolrPingResponse.php b/phpstorm-stubs/solr/Responses/SolrPingResponse.php
new file mode 100644
index 0000000..72ce7d5
--- /dev/null
+++ b/phpstorm-stubs/solr/Responses/SolrPingResponse.php
@@ -0,0 +1,41 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrPingResponse
+ * This class represents a response to a ping request to the server
+ * @link https://php.net/manual/en/class.solrpingresponse.php
+ */
+final class SolrPingResponse extends SolrResponse
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrPingResponse constructor.
+ * @link https://php.net/manual/en/solrpingresponse.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrpingresponse.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the response from the server
+ * @link https://php.net/manual/en/solrpingresponse.getresponse.php
+ * @return string
+ * Returns an empty string. (Returns the response from the server. This should be empty because the request as a
+ * HEAD request.)
+ *
+ */
+ public function getResponse() {}
+}
diff --git a/phpstorm-stubs/solr/Responses/SolrQueryResponse.php b/phpstorm-stubs/solr/Responses/SolrQueryResponse.php
new file mode 100644
index 0000000..ba666bf
--- /dev/null
+++ b/phpstorm-stubs/solr/Responses/SolrQueryResponse.php
@@ -0,0 +1,30 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrQueryResponse
+ * This class represents a response to a query request.
+ * @link https://php.net/manual/en/class.solrqueryresponse.php
+ */
+final class SolrQueryResponse extends SolrResponse
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrQueryResponse constructor.
+ * @link https://php.net/manual/en/solrqueryresponse.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrqueryresponse.destruct.php
+ */
+ public function __destruct() {}
+}
diff --git a/phpstorm-stubs/solr/Responses/SolrResponse.php b/phpstorm-stubs/solr/Responses/SolrResponse.php
new file mode 100644
index 0000000..f76b3dc
--- /dev/null
+++ b/phpstorm-stubs/solr/Responses/SolrResponse.php
@@ -0,0 +1,166 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrResponse
+ * This class represents a response from the Solr server.
+ * @link https://php.net/manual/en/class.solrresponse.php
+ */
+abstract class SolrResponse
+{
+ /** @var int Documents should be parsed as SolrObject instances */
+ public const PARSE_SOLR_OBJ = 0;
+
+ /** @var int Documents should be parsed as SolrDocument instances. */
+ public const PARSE_SOLR_DOC = 1;
+
+ /** @var int The http status of the response. */
+ protected $http_status;
+
+ /** @var int Whether to parse the solr documents as SolrObject or SolrDocument instances. */
+ protected $parser_mode;
+
+ /** @var bool Was there an error during the request */
+ protected $success;
+
+ /** @var string Detailed message on http status */
+ protected $http_status_message;
+
+ /** @var string The request URL */
+ protected $http_request_url;
+
+ /** @var string A string of raw headers sent during the request. */
+ protected $http_raw_request_headers;
+
+ /** @var string The raw request sent to the server */
+ protected $http_raw_request;
+
+ /** @var string Response headers from the Solr server. */
+ protected $http_raw_response_headers;
+
+ /** @var string The response message from the server. */
+ protected $http_raw_response;
+
+ /** @var string The response in PHP serialized format. */
+ protected $http_digested_response;
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the XML response as serialized PHP data
+ * @link https://php.net/manual/en/solrresponse.getdigestedresponse.php
+ * @return string
+ * Returns the XML response as serialized PHP data
+ *
+ */
+ public function getDigestedResponse() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the HTTP status of the response
+ * @link https://php.net/manual/en/solrresponse.gethttpstatus.php
+ * @return int
+ * Returns the HTTP status of the response.
+ *
+ */
+ public function getHttpStatus() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns more details on the HTTP status
+ * @link https://php.net/manual/en/solrresponse.gethttpstatusmessage.php
+ * @return string
+ * Returns more details on the HTTP status
+ *
+ */
+ public function getHttpStatusMessage() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the raw request sent to the Solr server
+ * @link https://php.net/manual/en/solrresponse.getrawrequest.php
+ * @return string
+ * Returns the raw request sent to the Solr server
+ *
+ */
+ public function getRawRequest() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the raw request headers sent to the Solr server
+ * @link https://php.net/manual/en/solrresponse.getrawrequestheaders.php
+ * @return string
+ * Returns the raw request headers sent to the Solr server
+ *
+ */
+ public function getRawRequestHeaders() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the raw response from the server
+ * @link https://php.net/manual/en/solrresponse.getrawresponse.php
+ * @return string
+ * Returns the raw response from the server.
+ *
+ */
+ public function getRawResponse() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the raw response headers from the server
+ * @link https://php.net/manual/en/solrresponse.getrawresponseheaders.php
+ * @return string
+ * Returns the raw response headers from the server.
+ *
+ */
+ public function getRawResponseHeaders() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the full URL the request was sent to
+ * @link https://php.net/manual/en/solrresponse.getrequesturl.php
+ * @return string
+ * Returns the full URL the request was sent to
+ *
+ */
+ public function getRequestUrl() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns a SolrObject representing the XML response from the server
+ * @link https://php.net/manual/en/solrresponse.getresponse.php
+ * @return SolrObject
+ * Returns a SolrObject representing the XML response from the server
+ *
+ */
+ public function getResponse() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the parse mode
+ * @link https://php.net/manual/en/solrresponse.setparsemode.php
+ * @param int $parser_mode
+ * - SolrResponse::PARSE_SOLR_DOC parses documents in SolrDocument instances.
+ * - SolrResponse::PARSE_SOLR_OBJ parses document into SolrObjects.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function setParseMode($parser_mode = 0) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Was the request a success
+ * @link https://php.net/manual/en/solrresponse.success.php
+ * @return bool
+ * Returns TRUE if it was successful and FALSE if it was not.
+ *
+ */
+ public function success() {}
+}
diff --git a/phpstorm-stubs/solr/Responses/SolrUpdateResponse.php b/phpstorm-stubs/solr/Responses/SolrUpdateResponse.php
new file mode 100644
index 0000000..3c81f67
--- /dev/null
+++ b/phpstorm-stubs/solr/Responses/SolrUpdateResponse.php
@@ -0,0 +1,30 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrUpdateResponse
+ * This class represents a response to an update request.
+ * @link https://php.net/manual/en/class.solrupdateresponse.php
+ */
+final class SolrUpdateResponse extends SolrResponse
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrUpdateResponse constructor.
+ * @link https://php.net/manual/en/solrupdateresponse.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrupdateresponse.destruct.php
+ */
+ public function __destruct() {}
+}
diff --git a/phpstorm-stubs/solr/SolrClient.php b/phpstorm-stubs/solr/SolrClient.php
new file mode 100644
index 0000000..99a1f72
--- /dev/null
+++ b/phpstorm-stubs/solr/SolrClient.php
@@ -0,0 +1,497 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrClient
+ * This class is used to send requests to a Solr server. Currently, cloning and serialization of SolrClient instances is
+ * not supported.
+ * @link https://php.net/manual/en/class.solrclient.php
+ */
+final class SolrClient
+{
+ /** @var int Used when updating the search servlet. */
+ public const SEARCH_SERVLET_TYPE = 1;
+
+ /** @var int Used when updating the update servlet. */
+ public const UPDATE_SERVLET_TYPE = 2;
+
+ /** @var int Used when updating the threads servlet. */
+ public const THREADS_SERVLET_TYPE = 4;
+
+ /** @var int Used when updating the ping servlet. */
+ public const PING_SERVLET_TYPE = 8;
+
+ /** @var int Used when updating the terms servlet. */
+ public const TERMS_SERVLET_TYPE = 16;
+
+ /** @var int Used when retrieving system information from the system servlet. */
+ public const SYSTEM_SERVLET_TYPE = 32;
+
+ /** @var string This is the initial value for the search servlet. */
+ public const DEFAULT_SEARCH_SERVLET = 'select';
+
+ /** @var string This is the initial value for the update servlet. */
+ public const DEFAULT_UPDATE_SERVLET = 'update';
+
+ /** @var string This is the initial value for the threads servlet. */
+ public const DEFAULT_THREADS_SERVLET = 'admin/threads';
+
+ /** @var string This is the initial value for the ping servlet. */
+ public const DEFAULT_PING_SERVLET = 'admin/ping';
+
+ /** @var string This is the initial value for the terms servlet used for the TermsComponent. */
+ public const DEFAULT_TERMS_SERVLET = 'terms';
+
+ /** @var string This is the initial value for the system servlet used to obtain Solr Server information. */
+ public const DEFAULT_SYSTEM_SERVLET = 'admin/system';
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a document to the index
+ * @link https://php.net/manual/en/solrclient.adddocument.php
+ * @param SolrInputDocument $doc
+ * The SolrInputDocument instance.
+ *
+ * @param bool $overwrite [optional]
+ * Whether to overwrite existing document or not. If FALSE there will be duplicates (several documents with
+ * the same ID).
+ *
+ *
+ * Warning
+ * PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite
+ * bool flag.
+ *
+ * $allowDups = false is the same as $overwrite = true
+ *
+ * @param int $commitWithin [optional]
+ * Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means
+ * disabled.
+ *
+ *
+ * When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of
+ * commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a
+ * commit when the oldest add in the buffer is due.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse object or throws an Exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function addDocument(SolrInputDocument $doc, $overwrite = true, $commitWithin = 0) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Adds a collection of SolrInputDocument instances to the index
+ * @link https://php.net/manual/en/solrclient.adddocuments.php
+ * @param array $docs
+ * An array containing the collection of SolrInputDocument instances. This array must be an actual variable.
+ *
+ * @param bool $overwrite [optional]
+ * Whether to overwrite existing document or not. If FALSE there will be duplicates (several documents with
+ * the same ID).
+ *
+ *
+ * Warning
+ * PECL Solr < 2.0 $allowDups was used instead of $overwrite, which does the same functionality with exact opposite
+ * bool flag.
+ *
+ * $allowDups = false is the same as $overwrite = true
+ *
+ * @param int $commitWithin [optional]
+ * Number of milliseconds within which to auto commit this document. Available since Solr 1.4 . Default (0) means
+ * disabled.
+ *
+ *
+ * When this value specified, it leaves the control of when to do the commit to Solr itself, optimizing number of
+ * commits to a minimum while still fulfilling the update latency requirements, and Solr will automatically do a
+ * commit when the oldest add in the buffer is due.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse object or throws an Exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function addDocuments(array $docs, $overwrite = true, $commitWithin = 0) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Finalizes all add/deletes made to the index
+ * @link https://php.net/manual/en/solrclient.commit.php
+ * @param bool $softCommit [optional]
+ * This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees.
+ * (Solr4.0+)
+ *
+ *
+ * A soft commit is much faster since it only makes index changes visible and does not fsync index files or write a
+ * new index descriptor. If the JVM crashes or there is a loss of power, changes that occurred after the last hard
+ * commit will be lost. Search collections that have near-real-time requirements (that want index changes to be
+ * quickly visible to searches) will want to soft commit often but hard commit less frequently.
+ *
+ * @param bool $waitSearcher [optional]
+ * block until a new searcher is opened and registered as the main query searcher, making the changes visible.
+ *
+ * @param bool $expungeDeletes [optional]
+ * Merge segments with deletes away. (Solr1.4+)
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse object or throws an Exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function commit($softCommit = false, $waitSearcher = true, $expungeDeletes = false) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrClient constructor.
+ * @link https://php.net/manual/en/solrclient.construct.php
+ * @param array $clientOptions
+ * This is an array containing one of the following keys :
+ *
+ *
+ * - secure: (Boolean value indicating whether or not to connect in secure mode)
+ * - hostname: (The hostname for the Solr server)
+ * - port: (The port number)
+ * - path: (The path to solr)
+ * - wt: (The name of the response writer e.g. xml, json)
+ * - login: (The username used for HTTP Authentication, if any)
+ * - password: (The HTTP Authentication password)
+ * - proxy_host: (The hostname for the proxy server, if any)
+ * - proxy_port: (The proxy port)
+ * - proxy_login: (The proxy username)
+ * - proxy_password: (The proxy password)
+ * - timeout: (This is maximum time in seconds allowed for the http data transfer operation. Default is 30
+ * seconds)
+ * - ssl_cert: (File name to a PEM-formatted file containing the private key + private certificate
+ * (concatenated in that order) )
+ * - ssl_key: (File name to a PEM-formatted private key file only)
+ * - ssl_keypassword: (Password for private key)
+ * - ssl_cainfo: (Name of file holding one or more CA certificates to verify peer with)
+ * - ssl_capath: (Name of directory holding multiple CA certificates to verify peer with )
+ *
+ *
+ * Please note the if the ssl_cert file only contains the private certificate, you have to specify a separate
+ * ssl_key file.
+ *
+ *
+ * The ssl_keypassword option is required if the ssl_cert or ssl_key options are set.
+ *
+ * @throws SolrIllegalArgumentException
+ */
+ public function __construct(array $clientOptions) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Delete by Id
+ * @link https://php.net/manual/en/solrclient.deletebyid.php
+ * @param string $id
+ * The value of the uniqueKey field declared in the schema
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function deleteById($id) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Deletes by Ids
+ * @link https://php.net/manual/en/solrclient.deletebyids.php
+ * @param array $ids
+ * An array of IDs representing the uniqueKey field declared in the schema for each document to be deleted. This
+ * must be an actual php variable.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function deleteByIds(array $ids) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Removes all documents matching any of the queries
+ * @link https://php.net/manual/en/solrclient.deletebyqueries.php
+ * @param array $queries
+ * The array of queries. This must be an actual php variable.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function deleteByQueries(array $queries) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Deletes all documents matching the given query
+ * @link https://php.net/manual/en/solrclient.deletebyquery.php
+ * @param string $query
+ * The query
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function deleteByQuery($query) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor for SolrClient
+ * @link https://php.net/manual/en/solrclient.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Get Document By Id. Utilizes Solr Realtime Get (RTG).
+ * @link https://php.net/manual/en/solrclient.getbyid.php
+ * @param string $id
+ * Document ID
+ *
+ * @return SolrQueryResponse
+ */
+ public function getById($id) {}
+
+ /**
+ * (PECL solr >= 2.2.0)
+ * Get Documents by their Ids. Utilizes Solr Realtime Get (RTG).
+ * @link https://php.net/manual/en/solrclient.getbyids.php
+ * @param array $ids
+ * Document ids
+ *
+ * @return SolrQueryResponse
+ */
+ public function getByIds(array $ids) {}
+
+ /**
+ * (PECL solr >= 0.9.7)
+ * Returns the debug data for the last connection attempt
+ * @link https://php.net/manual/en/solrclient.getdebug.php
+ * @return string
+ * Returns a string on success and null if there is nothing to return.
+ *
+ */
+ public function getDebug() {}
+
+ /**
+ * (PECL solr >= 0.9.6)
+ * Returns the client options set internally
+ * @link https://php.net/manual/en/solrclient.getoptions.php
+ * @return array
+ * Returns an array containing all the options for the SolrClient object set internally.
+ *
+ */
+ public function getOptions() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Defragments the index
+ * @link https://php.net/manual/en/solrclient.optimize.php
+ * @param int $maxSegments
+ * Optimizes down to at most this number of segments. Since Solr 1.3
+ *
+ * @param bool $softCommit
+ * This will refresh the 'view' of the index in a more performant manner, but without "on-disk" guarantees.
+ * (Solr4.0+)
+ *
+ * @param bool $waitSearcher
+ * Block until a new searcher is opened and registered as the main query searcher, making the changes visible.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function optimize($maxSegments = 1, $softCommit = true, $waitSearcher = true) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if Solr server is still up
+ * @link https://php.net/manual/en/solrclient.ping.php
+ * @return SolrPingResponse
+ * Returns a SolrPingResponse object on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function ping() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sends a query to the server
+ * @link https://php.net/manual/en/solrclient.query.php
+ * @param SolrParams $query
+ * A SolrParams object. It is recommended to use SolrQuery for advanced queries.
+ *
+ * @return SolrQueryResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function query(SolrParams $query) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sends a raw update request
+ * @link https://php.net/manual/en/solrclient.request.php
+ * @param string $raw_request
+ * An XML string with the raw request to the server.
+ *
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrIllegalArgumentException
+ * Throws SolrIllegalArgumentException if raw_request was an empty string.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function request($raw_request) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Rollbacks all add/deletes made to the index since the last commit
+ * @link https://php.net/manual/en/solrclient.rollback.php
+ * @return SolrUpdateResponse
+ * Returns a SolrUpdateResponse on success and throws an exception on failure.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function rollback() {}
+
+ /**
+ * (PECL solr >= 0.9.11)
+ * Sets the response writer used to prepare the response from Solr
+ * @link https://php.net/manual/en/solrclient.setresponsewriter.php
+ * @param string $responseWriter
+ * One of the following:
+ *
+ *
+ * - json
+ * - phps
+ * - xml
+ *
+ */
+ public function setResponseWriter($responseWriter) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Changes the specified servlet type to a new value
+ * @link https://php.net/manual/en/solrclient.setservlet.php
+ * @param int $type
+ * One of the following :
+ *
+ *
+ * - SolrClient::SEARCH_SERVLET_TYPE
+ * - SolrClient::UPDATE_SERVLET_TYPE
+ * - SolrClient::THREADS_SERVLET_TYPE
+ * - SolrClient::PING_SERVLET_TYPE
+ * - SolrClient::TERMS_SERVLET_TYPE
+ *
+ * @param string $value
+ * The new value for the servlet
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function setServlet($type, $value) {}
+
+ /**
+ * (PECL solr >= 2.0.0)
+ * Retrieve Solr Server information
+ * @link https://php.net/manual/en/solrclient.system.php
+ * @return SolrGenericResponse
+ * Returns a SolrGenericResponse object on success.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function system() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks the threads status
+ * @link https://php.net/manual/en/solrclient.threads.php
+ * @return SolrGenericResponse
+ * Returns a SolrGenericResponse object on success.
+ *
+ * @throws SolrClientException
+ * Throws SolrClientException if the client had failed, or there was a connection issue.
+ *
+ * @throws SolrServerException
+ * Throws SolrServerException if the Solr Server had failed to satisfy the request.
+ *
+ */
+ public function threads() {}
+}
diff --git a/phpstorm-stubs/solr/Utils/SolrObject.php b/phpstorm-stubs/solr/Utils/SolrObject.php
new file mode 100644
index 0000000..80a9709
--- /dev/null
+++ b/phpstorm-stubs/solr/Utils/SolrObject.php
@@ -0,0 +1,91 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrObject
+ * This class represents an object whose properties can also by accessed using the array syntax. All its properties are
+ * read-only.
+ * @link https://php.net/manual/en/class.solrobject.php
+ */
+final class SolrObject implements ArrayAccess
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * SolrObject constructor.
+ * @link https://php.net/manual/en/solrobject.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Destructor
+ * @link https://php.net/manual/en/solrobject.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns an array of all the names of the properties
+ * @link https://php.net/manual/en/solrobject.getpropertynames.php
+ * @return array
+ * Returns an array.
+ *
+ */
+ public function getPropertyNames() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Checks if the property exists
+ * @link https://php.net/manual/en/solrobject.offsetexists.php
+ * @param string $property_name
+ * The name of the property.
+ *
+ * @return bool
+ * Returns TRUE on success or FALSE on failure.
+ *
+ */
+ public function offsetExists($property_name) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Used to retrieve a property
+ * @link https://php.net/manual/en/solrobject.offsetget.php
+ * @param string $property_name
+ * The name of the property.
+ *
+ * @return SolrDocumentField
+ * Returns the property value.
+ *
+ */
+ public function offsetGet($property_name) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Sets the value for a property
+ * @link https://php.net/manual/en/solrobject.offsetset.php
+ * @param string $property_name
+ * The name of the property.
+ *
+ * @param string $property_value
+ * The new value.
+ *
+ */
+ public function offsetSet($property_name, $property_value) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Unsets the value for the property
+ * @link https://php.net/manual/en/solrobject.offsetunset.php
+ * @param string $property_name
+ * The name of the property.
+ *
+ * @return bool
+ */
+ public function offsetUnset($property_name) {}
+}
diff --git a/phpstorm-stubs/solr/Utils/SolrUtils.php b/phpstorm-stubs/solr/Utils/SolrUtils.php
new file mode 100644
index 0000000..ee0caab
--- /dev/null
+++ b/phpstorm-stubs/solr/Utils/SolrUtils.php
@@ -0,0 +1,76 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.2)
+ * Class SolrUtils
+ * Contains utility methods for retrieving the current extension version and preparing query phrases.
+ * Also contains method for escaping query strings and parsing XML responses.
+ * @link https://php.net/manual/en/class.solrutils.php
+ */
+abstract class SolrUtils
+{
+ /**
+ * (PECL solr >= 0.9.2)
+ * Parses an response XML string into a SolrObject
+ * @link https://php.net/manual/en/solrutils.digestxmlresponse.php
+ * @param string $xmlresponse
+ * The XML response string from the Solr server.
+ *
+ * @param int $parse_mode [optional]
+ * Use SolrResponse::PARSE_SOLR_OBJ or SolrResponse::PARSE_SOLR_DOC
+ *
+ * @return SolrObject
+ * Returns the SolrObject representing the XML response.
+ *
+ *
+ * If the parse_mode parameter is set to SolrResponse::PARSE_SOLR_OBJ Solr documents will be parses as SolrObject instances.
+ *
+ *
+ * If it is set to SolrResponse::PARSE_SOLR_DOC, they will be parsed as SolrDocument instances.
+ *
+ * @throws SolrException
+ */
+ public static function digestXmlResponse($xmlresponse, $parse_mode = 0) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Escapes a lucene query string
+ * @link https://php.net/manual/en/solrutils.escapequerychars.php
+ * @param string $str
+ * This is the query string to be escaped.
+ *
+ * @return string|false
+ * Returns the escaped string or FALSE on failure.
+ *
+ */
+ public static function escapeQueryChars($str) {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Returns the current version of the Solr extension
+ * @link https://php.net/manual/en/solrutils.getsolrversion.php
+ * @return string
+ * The current version of the Apache Solr extension.
+ *
+ */
+ public static function getSolrVersion() {}
+
+ /**
+ * (PECL solr >= 0.9.2)
+ * Prepares a phrase from an unescaped lucene string
+ * @link https://php.net/manual/en/solrutils.queryphrase.php
+ * @param string $str
+ * The lucene phrase.
+ *
+ * @return string
+ * Returns the phrase contained in double quotes.
+ *
+ */
+ public static function queryPhrase($str) {}
+}
diff --git a/phpstorm-stubs/solr/constants.php b/phpstorm-stubs/solr/constants.php
new file mode 100644
index 0000000..0ddaed1
--- /dev/null
+++ b/phpstorm-stubs/solr/constants.php
@@ -0,0 +1,19 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/*
+ * Solr Predefined Constants
+ * The constants below are defined by this extension, and will only be available when the extension has either been
+ * compiled into PHP or dynamically loaded at runtime.
+ * @link https://php.net/manual/en/solr.constants.php
+ */
+
+define('SOLR_MAJOR_VERSION', 2);
+define('SOLR_MINOR_VERSION', 4);
+define('SOLR_PATCH_VERSION', 0);
+define('SOLR_EXTENSION_VERSION', '2.4.0');
diff --git a/phpstorm-stubs/solr/functions.php b/phpstorm-stubs/solr/functions.php
new file mode 100644
index 0000000..bd7da9c
--- /dev/null
+++ b/phpstorm-stubs/solr/functions.php
@@ -0,0 +1,17 @@
+
+ * @link https://github.com/pjmazenot/phpsolr-phpdoc
+ */
+
+/**
+ * (PECL solr >= 0.9.1)
+ * Returns the current version of the Apache Solr extension
+ * @link https://php.net/manual/en/function.solr-get-version.php
+ * @return string|false
+ * It returns a string on success and FALSE on failure.
+ *
+ */
+function solr_get_version() {}
diff --git a/phpstorm-stubs/sqlite3/sqlite3.php b/phpstorm-stubs/sqlite3/sqlite3.php
new file mode 100644
index 0000000..ebcacd1
--- /dev/null
+++ b/phpstorm-stubs/sqlite3/sqlite3.php
@@ -0,0 +1,698 @@
+
+ * Path to the SQLite database, or :memory: to use in-memory database.
+ *
+ * @param int $flags
+ * Optional flags used to determine how to open the SQLite database. By
+ * default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.
+ *
+ *
+ * SQLITE3_OPEN_READONLY: Open the database for
+ * reading only.
+ *
+ * @param string $encryptionKey
+ * An optional encryption key used when encrypting and decrypting an
+ * SQLite database.
+ *
+ * @return void No value is returned.
+ */
+ #[TentativeType]
+ public function open(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $flags,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $encryptionKey,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = SQLITE3_OPEN_READWRITE|SQLITE3_OPEN_CREATE,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $encryptionKey = ''
+ ): void {}
+
+ /**
+ * Closes the database connection
+ * @link https://php.net/manual/en/sqlite3.close.php
+ * @return bool TRUE on success, FALSE on failure.
+ */
+ public function close() {}
+
+ /**
+ * Executes a result-less query against a given database
+ * @link https://php.net/manual/en/sqlite3.exec.php
+ * @param string $query
+ * The SQL query to execute (typically an INSERT, UPDATE, or DELETE
+ * query).
+ *
+ * @return bool TRUE if the query succeeded, FALSE on failure.
+ */
+ #[TentativeType]
+ public function exec(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): bool {}
+
+ /**
+ * Returns the SQLite3 library version as a string constant and as a number
+ * @link https://php.net/manual/en/sqlite3.version.php
+ * @return array an associative array with the keys "versionString" and
+ * "versionNumber".
+ */
+ #[ArrayShape(["versionString" => "string", "versionNumber" => "int"])]
+ #[TentativeType]
+ public static function version(): array {}
+
+ /**
+ * Returns the row ID of the most recent INSERT into the database
+ * @link https://php.net/manual/en/sqlite3.lastinsertrowid.php
+ * @return int the row ID of the most recent INSERT into the database
+ */
+ #[TentativeType]
+ public function lastInsertRowID(): int {}
+
+ /**
+ * Returns the numeric result code of the most recent failed SQLite request
+ * @link https://php.net/manual/en/sqlite3.lasterrorcode.php
+ * @return int an integer value representing the numeric result code of the most
+ * recent failed SQLite request.
+ */
+ #[TentativeType]
+ public function lastErrorCode(): int {}
+
+ /**
+ * Returns English text describing the most recent failed SQLite request
+ * @link https://php.net/manual/en/sqlite3.lasterrormsg.php
+ * @return string an English string describing the most recent failed SQLite request.
+ */
+ #[TentativeType]
+ public function lastErrorMsg(): string {}
+
+ /**
+ * Sets the busy connection handler
+ * @link https://php.net/manual/en/sqlite3.busytimeout.php
+ * @param int $milliseconds
+ * The milliseconds to sleep. Setting this value to a value less than
+ * or equal to zero, will turn off an already set timeout handler.
+ *
+ * @return bool TRUE on success, FALSE on failure.
+ * @since 5.3.3
+ */
+ #[TentativeType]
+ public function busyTimeout(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $milliseconds): bool {}
+
+ /**
+ * Attempts to load an SQLite extension library
+ * @link https://php.net/manual/en/sqlite3.loadextension.php
+ * @param string $name
+ * The name of the library to load. The library must be located in the
+ * directory specified in the configure option sqlite3.extension_dir.
+ *
+ * @return bool TRUE if the extension is successfully loaded, FALSE on failure.
+ */
+ #[TentativeType]
+ public function loadExtension(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {}
+
+ /**
+ * Returns the number of database rows that were changed (or inserted or
+ * deleted) by the most recent SQL statement
+ * @link https://php.net/manual/en/sqlite3.changes.php
+ * @return int an integer value corresponding to the number of
+ * database rows changed (or inserted or deleted) by the most recent SQL
+ * statement.
+ */
+ #[TentativeType]
+ public function changes(): int {}
+
+ /**
+ * Returns a string that has been properly escaped
+ * @link https://php.net/manual/en/sqlite3.escapestring.php
+ * @param string $string
+ * The string to be escaped.
+ *
+ * @return string a properly escaped string that may be used safely in an SQL
+ * statement.
+ */
+ #[TentativeType]
+ public static function escapeString(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string): string {}
+
+ /**
+ * Prepares an SQL statement for execution
+ * @link https://php.net/manual/en/sqlite3.prepare.php
+ * @param string $query
+ * The SQL query to prepare.
+ *
+ * @return SQLite3Stmt|false an SQLite3Stmt object on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function prepare(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): SQLite3Stmt|false {}
+
+ /**
+ * Executes an SQL query
+ * @link https://php.net/manual/en/sqlite3.query.php
+ * @param string $query
+ * The SQL query to execute.
+ *
+ * @return SQLite3Result|false an SQLite3Result object, or FALSE on failure.
+ */
+ #[TentativeType]
+ public function query(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): SQLite3Result|false {}
+
+ /**
+ * Executes a query and returns a single result
+ * @link https://php.net/manual/en/sqlite3.querysingle.php
+ * @param string $query
+ * The SQL query to execute.
+ *
+ * @param bool $entireRow [optional]
+ * By default, querySingle returns the value of the
+ * first column returned by the query. If
+ * entire_row is TRUE, then it returns an array
+ * of the entire first row.
+ *
+ * @return mixed the value of the first column of results or an array of the entire
+ * first row (if entire_row is TRUE).
+ *
+ *
+ * If the query is valid but no results are returned, then NULL will be
+ * returned if entire_row is FALSE, otherwise an
+ * empty array is returned.
+ *
+ *
+ * Invalid or failing queries will return FALSE.
+ */
+ #[TentativeType]
+ public function querySingle(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $entireRow = false
+ ): mixed {}
+
+ /**
+ * Registers a PHP function for use as an SQL scalar function
+ * @link https://php.net/manual/en/sqlite3.createfunction.php
+ * @param string $name
+ * Name of the SQL function to be created or redefined.
+ *
+ * @param mixed $callback
+ * The name of a PHP function or user-defined function to apply as a
+ * callback, defining the behavior of the SQL function.
+ *
+ * @param int $argCount
+ * The number of arguments that the SQL function takes. If
+ * this parameter is negative, then the SQL function may take
+ * any number of arguments.
+ *
+ * @param int $flags
+ * A bitwise conjunction of flags.
+ * Currently, only SQLITE3_DETERMINISTIC is supported, which specifies that the function always returns
+ * the same result given the same inputs within a single SQL statement.
+ * @return bool TRUE upon successful creation of the function, FALSE on failure.
+ */
+ #[TentativeType]
+ public function createFunction(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $argCount = -1,
+ #[PhpStormStubsElementAvailable(from: '7.1')] int $flags = 0
+ ): bool {}
+
+ /**
+ * Registers a PHP function for use as an SQL aggregate function
+ * @link https://php.net/manual/en/sqlite3.createaggregate.php
+ * @param string $name
+ * Name of the SQL aggregate to be created or redefined.
+ *
+ * @param mixed $stepCallback
+ * The name of a PHP function or user-defined function to apply as a
+ * callback for every item in the aggregate.
+ *
+ * @param mixed $finalCallback
+ * The name of a PHP function or user-defined function to apply as a
+ * callback at the end of the aggregate data.
+ *
+ * @param int $argCount [optional]
+ * The number of arguments that the SQL aggregate takes. If
+ * this parameter is negative, then the SQL aggregate may take
+ * any number of arguments.
+ *
+ * @return bool TRUE upon successful creation of the aggregate, FALSE on
+ * failure.
+ */
+ #[TentativeType]
+ public function createAggregate(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $stepCallback,
+ #[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $finalCallback,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $argCount = -1
+ ): bool {}
+
+ /**
+ * Registers a PHP function for use as an SQL collating function
+ * @link https://php.net/manual/en/sqlite3.createcollation.php
+ * @param string $name
+ * Name of the SQL collating function to be created or redefined
+ *
+ * @param callable $callback
+ * The name of a PHP function or user-defined function to apply as a
+ * callback, defining the behavior of the collation. It should accept two
+ * strings and return as strcmp does, i.e. it should
+ * return -1, 1, or 0 if the first string sorts before, sorts after, or is
+ * equal to the second.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.3.11
+ */
+ #[TentativeType]
+ public function createCollation(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name, callable $callback): bool {}
+
+ /**
+ * Opens a stream resource to read a BLOB
+ * @link https://php.net/manual/en/sqlite3.openblob.php
+ * @param string $table The table name.
+ * @param string $column The column name.
+ * @param int $rowid The row ID.
+ * @param string $database [optional] The symbolic name of the DB
+ * @param int $flags [optional]
+ * Either SQLITE3_OPEN_READONLY or SQLITE3_OPEN_READWRITE to open the stream for reading only, or for reading and writing, respectively.
+ * @return resource|false Returns a stream resource, or FALSE on failure.
+ */
+ public function openBlob(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $table,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $column,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $rowid,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $database = 'main',
+ #[PhpStormStubsElementAvailable(from: '7.2')] int $flags = SQLITE3_OPEN_READONLY
+ ) {}
+
+ /**
+ * Enable throwing exceptions
+ * @link https://www.php.net/manual/en/sqlite3.enableexceptions
+ * @param bool $enable
+ * @return bool Returns the old value; true if exceptions were enabled, false otherwise.
+ */
+ #[TentativeType]
+ public function enableExceptions(
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $enable,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $enable = false
+ ): bool {}
+
+ /**
+ * Instantiates an SQLite3 object and opens an SQLite 3 database
+ * @link https://php.net/manual/en/sqlite3.construct.php
+ * @param string $filename
+ * Path to the SQLite database, or :memory: to use in-memory database.
+ *
+ * @param int $flags
+ * Optional flags used to determine how to open the SQLite database. By
+ * default, open uses SQLITE3_OPEN_READWRITE | SQLITE3_OPEN_CREATE.
+ *
+ *
+ * SQLITE3_OPEN_READONLY: Open the database for
+ * reading only.
+ *
+ * @param string $encryptionKey
+ * An optional encryption key used when encrypting and decrypting an
+ * SQLite database.
+ *
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $flags,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $encryptionKey,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = SQLITE3_OPEN_READWRITE|SQLITE3_OPEN_CREATE,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $encryptionKey = ''
+ ) {}
+
+ /**
+ * @return int
+ * @since 7.4
+ */
+ #[TentativeType]
+ public function lastExtendedErrorCode(): int {}
+
+ /**
+ * @param bool $enable
+ * @since 7.4
+ */
+ #[TentativeType]
+ public function enableExtendedResultCodes(
+ #[PhpStormStubsElementAvailable(from: '7.4', to: '7.4')] bool $enable,
+ #[PhpStormStubsElementAvailable(from: '8.0')] bool $enable = true
+ ): 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 {}
+
+ /**
+ * @param null|callable $callback
+ * @return bool
+ * @since 8.0
+ */
+ #[TentativeType]
+ public function setAuthorizer(?callable $callback): bool {}
+}
+
+/**
+ * A class that handles prepared statements for the SQLite 3 extension.
+ * @link https://php.net/manual/en/class.sqlite3stmt.php
+ */
+class SQLite3Stmt
+{
+ /**
+ * Returns the number of parameters within the prepared statement
+ * @link https://php.net/manual/en/sqlite3stmt.paramcount.php
+ * @return int the number of parameters within the prepared statement.
+ */
+ #[TentativeType]
+ public function paramCount(): int {}
+
+ /**
+ * Closes the prepared statement
+ * @link https://php.net/manual/en/sqlite3stmt.close.php
+ * @return bool TRUE
+ */
+ #[TentativeType]
+ public function close(): bool {}
+
+ /**
+ * Resets the prepared statement
+ * @link https://php.net/manual/en/sqlite3stmt.reset.php
+ * @return bool TRUE if the statement is successfully reset, FALSE on failure.
+ */
+ #[TentativeType]
+ public function reset(): bool {}
+
+ /**
+ * Clears all current bound parameters
+ * @link https://php.net/manual/en/sqlite3stmt.clear.php
+ * @return bool TRUE on successful clearing of bound parameters, FALSE on
+ * failure.
+ */
+ #[TentativeType]
+ public function clear(): bool {}
+
+ /**
+ * Executes a prepared statement and returns a result set object
+ * @link https://php.net/manual/en/sqlite3stmt.execute.php
+ * @return SQLite3Result|false an SQLite3Result object on successful execution of the prepared
+ * statement, FALSE on failure.
+ */
+ #[TentativeType]
+ public function execute(): SQLite3Result|false {}
+
+ /**
+ * Binds a parameter to a statement variable
+ * @link https://php.net/manual/en/sqlite3stmt.bindparam.php
+ * @param string $param
+ * An string identifying the statement variable to which the
+ * parameter should be bound.
+ *
+ * @param mixed &$var
+ * The parameter to bind to a statement variable.
+ *
+ * @param int $type [optional]
+ * The data type of the parameter to bind.
+ *
+ *
+ * SQLITE3_INTEGER: The value is a signed integer,
+ * stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of
+ * the value.
+ *
+ * @return bool TRUE if the parameter is bound to the statement variable, FALSE
+ * on failure.
+ */
+ #[TentativeType]
+ public function bindParam(
+ #[LanguageLevelTypeAware(['8.0' => 'string|int'], default: '')] $param,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] &$var,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = SQLITE3_TEXT
+ ): bool {}
+
+ /**
+ * Binds the value of a parameter to a statement variable
+ * @link https://php.net/manual/en/sqlite3stmt.bindvalue.php
+ * @param string $param
+ * An string identifying the statement variable to which the
+ * value should be bound.
+ *
+ * @param mixed $value
+ * The value to bind to a statement variable.
+ *
+ * @param int $type [optional]
+ * The data type of the value to bind.
+ *
+ *
+ * SQLITE3_INTEGER: The value is a signed integer,
+ * stored in 1, 2, 3, 4, 6, or 8 bytes depending on the magnitude of
+ * the value.
+ *
+ * @return bool TRUE if the value is bound to the statement variable, FALSE
+ * on failure.
+ */
+ #[TentativeType]
+ public function bindValue(
+ #[LanguageLevelTypeAware(['8.0' => 'string|int'], default: '')] $param,
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $type = SQLITE3_TEXT
+ ): bool {}
+
+ #[TentativeType]
+ public function readOnly(): bool {}
+
+ /**
+ * @param SQLite3 $sqlite3
+ * @param string $query
+ */
+ private function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'SQLite3'], default: '')] $sqlite3,
+ #[PhpStormStubsElementAvailable(from: '8.0')] string $query
+ ) {}
+
+ /**
+ * 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 {}
+}
+
+/**
+ * A class that handles result sets for the SQLite 3 extension.
+ * @link https://php.net/manual/en/class.sqlite3result.php
+ */
+class SQLite3Result
+{
+ /**
+ * Returns the number of columns in the result set
+ * @link https://php.net/manual/en/sqlite3result.numcolumns.php
+ * @return int the number of columns in the result set.
+ */
+ #[TentativeType]
+ public function numColumns(): int {}
+
+ /**
+ * Returns the name of the nth column
+ * @link https://php.net/manual/en/sqlite3result.columnname.php
+ * @param int $column
+ * The numeric zero-based index of the column.
+ *
+ * @return string|false the string name of the column identified by
+ * column_number.
+ */
+ #[TentativeType]
+ public function columnName(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $column): string|false {}
+
+ /**
+ * Returns the type of the nth column
+ * @link https://php.net/manual/en/sqlite3result.columntype.php
+ * @param int $column
+ * The numeric zero-based index of the column.
+ *
+ * @return int|false the data type index of the column identified by
+ * column_number (one of
+ * SQLITE3_INTEGER, SQLITE3_FLOAT,
+ * SQLITE3_TEXT, SQLITE3_BLOB, or
+ * SQLITE3_NULL).
+ */
+ #[TentativeType]
+ public function columnType(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $column): int|false {}
+
+ /**
+ * Fetches a result row as an associative or numerically indexed array or both
+ * @link https://php.net/manual/en/sqlite3result.fetcharray.php
+ * @param int $mode [optional]
+ * Controls how the next row will be returned to the caller. This value
+ * must be one of either SQLITE3_ASSOC,
+ * SQLITE3_NUM, or SQLITE3_BOTH.
+ *
+ *
+ * SQLITE3_ASSOC: returns an array indexed by column
+ * name as returned in the corresponding result set
+ *
+ * @return array|false a result row as an associatively or numerically indexed array or
+ * both. Alternately will return FALSE if there are no more rows.
+ */
+ #[TentativeType]
+ public function fetchArray(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = SQLITE3_BOTH): array|false {}
+
+ /**
+ * Resets the result set back to the first row
+ * @link https://php.net/manual/en/sqlite3result.reset.php
+ * @return bool TRUE if the result set is successfully reset
+ * back to the first row, FALSE on failure.
+ */
+ #[TentativeType]
+ public function reset(): bool {}
+
+ /**
+ * Closes the result set
+ * @link https://php.net/manual/en/sqlite3result.finalize.php
+ * @return bool TRUE.
+ */
+ public function finalize() {}
+
+ private function __construct() {}
+}
+
+/**
+ * Specifies that the Sqlite3Result::fetchArray
+ * method shall return an array indexed by column name as returned in the
+ * corresponding result set.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_ASSOC', 1);
+
+/**
+ * Specifies that the Sqlite3Result::fetchArray
+ * method shall return an array indexed by column number as returned in the
+ * corresponding result set, starting at column 0.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_NUM', 2);
+
+/**
+ * Specifies that the Sqlite3Result::fetchArray
+ * method shall return an array indexed by both column name and number as
+ * returned in the corresponding result set, starting at column 0.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_BOTH', 3);
+
+/**
+ * Represents the SQLite3 INTEGER storage class.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_INTEGER', 1);
+
+/**
+ * Represents the SQLite3 REAL (FLOAT) storage class.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_FLOAT', 2);
+
+/**
+ * Represents the SQLite3 TEXT storage class.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_TEXT', 3);
+
+/**
+ * Represents the SQLite3 BLOB storage class.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_BLOB', 4);
+
+/**
+ * Represents the SQLite3 NULL storage class.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_NULL', 5);
+
+/**
+ * Specifies that the SQLite3 database be opened for reading only.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_OPEN_READONLY', 1);
+
+/**
+ * Specifies that the SQLite3 database be opened for reading and writing.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_OPEN_READWRITE', 2);
+
+/**
+ * Specifies that the SQLite3 database be created if it does not already
+ * exist.
+ * @link https://php.net/manual/en/sqlite3.constants.php
+ */
+define('SQLITE3_OPEN_CREATE', 4);
+
+/**
+ * Specifies that a function created with {@see SQLite3::createFunction()} is deterministic,
+ * i.e. it always returns the same result given the same inputs within a single SQL statement.
+ * @since 7.1.4
+ * @link https://php.net/manual/en/sqlite.constants.php
+ */
+define('SQLITE3_DETERMINISTIC', 2048);
+
+// End of sqlite3 v.0.7-dev
diff --git a/phpstorm-stubs/sqlsrv/sqlsrv.php b/phpstorm-stubs/sqlsrv/sqlsrv.php
new file mode 100644
index 0000000..c2f057a
--- /dev/null
+++ b/phpstorm-stubs/sqlsrv/sqlsrv.php
@@ -0,0 +1,1800 @@
+Used to specify if {@link sqlsrv_errors() sqlsrv_errors} returns errors, warnings, or both.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_ERR_ERRORS', 0);
+
+/**
+ * Warnings generated on the last sqlsrv function call are returned.
+ *
+ *
Used to specify if {@link sqlsrv_errors() sqlsrv_errors} returns errors, warnings, or both.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_ERR_WARNINGS', 1);
+
+/**
+ * Errors and warnings generated on the last sqlsrv function call are returned.
+ *
+ *
This is the default value.
+ *
+ * Used to specify if {@link sqlsrv_errors() sqlsrv_errors} returns errors, warnings, or both.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_ERR_ALL', 2);
+
+/**
+ * Turns on logging of all subsystems.
+ *
+ *
Used as the value for the LogSubsystems setting with
+ * {@link sqlsrv_configure() sqlsrv_configure}.
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_ALL', -1);
+
+/**
+ * Turns logging off.
+ *
+ *
Used as the value for the LogSubsystems setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_OFF', 0);
+
+/**
+ * Turns on logging of initialization activity.
+ *
+ *
Used as the value for the LogSubsystems setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_INIT', 1);
+
+/**
+ * Turns on logging of connection activity.
+ *
+ *
Used as the value for the LogSubsystems setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_CONN', 2);
+
+/**
+ * Turns on logging of statement activity.
+ *
+ *
Used as the value for the LogSubsystems setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_STMT', 4);
+
+/**
+ * Turns on logging of error functions activity (such as handle_error and handle_warning).
+ *
+ *
Used as the value for the
+ * LogSubsystems setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SYSTEM_UTIL', 8);
+
+/**
+ * Specifies that errors, warnings, and notices will be logged.
+ *
+ *
Used as the value for the LogSeverity setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SEVERITY_ALL', -1);
+
+/**
+ * Specifies that errors will be logged.
+ *
+ *
Used as the value for the LogSeverity setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SEVERITY_ERROR', 1);
+
+/**
+ * Specifies that notices will be logged.
+ *
+ *
Used as the value for the LogSeverity setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SEVERITY_NOTICE', 4);
+
+/**
+ * Specifies that warnings will be logged.
+ *
+ *
Used as the value for the LogSeverity setting with {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_LOG_SEVERITY_WARNING', 2);
+
+/**
+ * Returns numerically indexed array.
+ *
+ *
{@link sqlsrv_fetch_array() sqlsrv_fetch_array} returns the next row of data as a numerically indexed array.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_FETCH_NUMERIC', 1);
+
+/**
+ * Returns an associative array.
+ *
+ *
{@link sqlsrv_fetch_array() sqlsrv_fetch_array} returns the next row of data as an associative array.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_FETCH_ASSOC', 2);
+
+/**
+ * Returns both a numeric and associative array.
+ *
+ *
{@link sqlsrv_fetch_array() sqlsrv_fetch_array} returns the next row of data as an array with both numeric and
+ * associative keys.
+ *
+ * This is the default value.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_FETCH_BOTH', 3);
+
+/**
+ * Null
+ *
+ *
Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PHPTYPE_NULL', 1);
+
+/**
+ * Integer
+ *
+ *
Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PHPTYPE_INT', 2);
+
+/**
+ * Float
+ *
+ *
Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PHPTYPE_FLOAT', 3);
+
+/**
+ * Datetime
+ *
+ *
Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PHPTYPE_DATETIME', 4);
+
+/**
+ * Binary Encoding
+ *
+ *
Data is returned as a raw byte stream from the server without performing encoding or translation.
+ *
+ * Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * This is used with {@link SQLSRV_PHPTYPE_STREAM() SQLSRV_PHPTYPE_STREAM} and
+ * {@link SQLSRV_PHPTYPE_STRING() SQLSRV_PHPTYPE_STRING} to specify the encoding of those PHP types types.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_ENC_BINARY', 'binary');
+
+/**
+ * Character Encoding
+ *
+ *
Data is returned in 8-bit characters as specified in the code page of the Windows locale that is set on the
+ * system. Any multi-byte characters or characters that do not map into this code page are substituted with a single
+ * byte question mark (?) character.
+ *
+ * This is the default encoding.
+ *
+ * Used with {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_get_field() sqlsrv_get_field} to request a field be return as a specific PHP type.
+ *
+ * This is used with {@link SQLSRV_PHPTYPE_STREAM() SQLSRV_PHPTYPE_STREAM} and
+ * {@link SQLSRV_PHPTYPE_STRING() SQLSRV_PHPTYPE_STRING} to specify the encoding of those PHP types types.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_ENC_CHAR', 'char');
+
+/**
+ * The column is not nullable.
+ *
+ *
You can compare the value of the Nullable key that is returned by
+ * {@link sqlsrv_field_metadata() sqlsrv_field_metadata} to determine the column's nullable status.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_NULLABLE_NO', 0);
+
+/**
+ * The column is nullable.
+ *
+ *
You can compare the value of the Nullable key that is returned by
+ * {@link sqlsrv_field_metadata() sqlsrv_field_metadata} to determine the column's nullable status.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_NULLABLE_YES', 1);
+
+/**
+ * It is not known if the column is nullable.
+ *
+ *
You can compare the value of the Nullable key that is returned by
+ * {@link sqlsrv_field_metadata() sqlsrv_field_metadata} to determine the column's nullable status.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_NULLABLE_UNKNOWN', 2);
+
+/**
+ * bigint.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_BIGINT', -5);
+/**
+ * bit.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_BIT', -7);
+/**
+ * char.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_CHAR', 1);
+/**
+ * datetime.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_DATETIME', 25177693);
+/**
+ * decimal.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_DECIMAL', 3);
+/**
+ * float.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_FLOAT', 6);
+/**
+ * image.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_IMAGE', -4);
+/**
+ * int.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_INT', 4);
+/**
+ * money.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_MONEY', 33564163);
+/**
+ * nchar.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_NCHAR', -8);
+/**
+ * ntext.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_NTEXT', -10);
+/**
+ * numeric.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_NUMERIC', 2);
+/**
+ * nvarchar.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_NVARCHAR', -9);
+/**
+ * text.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_TEXT', -1);
+/**
+ * real.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_REAL', 7);
+/**
+ * smalldatetime.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_SMALLDATETIME', 8285);
+/**
+ * smallint.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_SMALLINT', 5);
+/**
+ * smallmoney.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_SMALLMONEY', 33559555);
+/**
+ * timestamp.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_TIMESTAMP', 4606);
+/**
+ * tinyint.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_TINYINT', -6);
+/**
+ * udt.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_UDT', -151);
+/**
+ * uniqueidentifier.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_UNIQUEIDENTIFIER', -11);
+/**
+ * varbinary.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_VARBINARY', -3);
+/**
+ * varchar.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_VARCHAR', 12);
+/**
+ * xml.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_XML', -152);
+/**
+ * date.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_DATE', 5211);
+/**
+ * time.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_TIME', 58728806);
+/**
+ * datetimeoffset.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_DATETIMEOFFSET', 58738021);
+/**
+ * datetime2.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the SQL Server data type of a parameter.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SQLTYPE_DATETIME2', 58734173);
+
+/**
+ * Indicates an input parameter.
+ *
+ *
Used for specifying parameter direction when you call {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PARAM_IN', 1);
+
+/**
+ * Indicates a bidirectional parameter.
+ *
+ *
Used for specifying parameter direction when you call {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PARAM_INOUT', 2);
+
+/**
+ * Indicates an output parameter.
+ *
+ *
Used for specifying parameter direction when you call {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_PARAM_OUT', 4);
+
+/**
+ * Read Uncommitted.
+ *
+ *
Specifies that statements can read rows that have been modified by other transactions but not yet committed.
+ *
+ * Transactions running at the READ UNCOMMITTED level do not issue shared locks to prevent other transactions from
+ * modifying data read by the current transaction. READ UNCOMMITTED transactions are also not blocked by exclusive locks
+ * that would prevent the current transaction from reading rows that have been modified but not committed by other
+ * transactions. When this option is set, it is possible to read uncommitted modifications, which are called dirty reads.
+ * Values in the data can be changed and rows can appear or disappear in the data set before the end of the transaction.
+ * This option has the same effect as setting NOLOCK on all tables in all SELECT statements in a transaction. This is
+ * the least restrictive of the isolation levels.
+ *
+ * Used with the TransactionIsolation key when calling {@link sqlsrv_connect() sqlsrv_connect}. For information on using
+ * these constants, see {@link http://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx SET TRANSACTION ISOLATION LEVEL (Transact-SQL)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_TXN_READ_UNCOMMITTED', 1);
+/**
+ * Read Committed.
+ *
+ *
Specifies that statements cannot read data that has been modified but not committed by other transactions.
+ * This prevents dirty reads. Data can be changed by other transactions between individual statements within the current
+ * transaction, resulting in nonrepeatable reads or phantom data. This option is the SQL Server default.
+ *
+ * The behavior of READ COMMITTED depends on the setting of the READ_COMMITTED_SNAPSHOT database option.
+ *
+ * Used with the TransactionIsolation key when calling {@link sqlsrv_connect() sqlsrv_connect}. For information on using
+ * these constants, see {@link http://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx SET TRANSACTION ISOLATION LEVEL (Transact-SQL)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_TXN_READ_COMMITTED', 2);
+/**
+ * Repeatable Read.
+ *
+ *
Specifies that statements cannot read data that has been modified but not yet committed by other transactions and
+ * that no other transactions can modify data that has been read by the current transaction until the current transaction
+ * completes.
+ *
+ * Shared locks are placed on all data read by each statement in the transaction and are held until the transaction
+ * completes. This prevents other transactions from modifying any rows that have been read by the current transaction.
+ * Other transactions can insert new rows that match the search conditions of statements issued by the current transaction.
+ * If the current transaction then retries the statement it will retrieve the new rows, which results in phantom reads.
+ * Because shared locks are held to the end of a transaction instead of being released at the end of each statement,
+ * concurrency is lower than the default READ COMMITTED isolation level.
+ *
+ * Use this option only when necessary.
+ *
+ * Used with the TransactionIsolation key when calling {@link sqlsrv_connect() sqlsrv_connect}. For information on using
+ * these constants, see {@link http://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx SET TRANSACTION ISOLATION LEVEL (Transact-SQL)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_TXN_REPEATABLE_READ', 4);
+/**
+ * Serializable.
+ *
+ *
Specifies the following:
+ * - Statements cannot read data that has been modified but not yet committed by other transactions.
+ * - No other transactions can modify data that has been read by the current transaction until the current
+ * transaction completes.
+ * - Other transactions cannot insert new rows with key values that would fall in the range of keys read by any
+ * statements in the current transaction until the current transaction completes.
+ *
+ * Range locks are placed in the range of key values that match the search conditions of each statement executed in a
+ * transaction. This blocks other transactions from updating or inserting any rows that would qualify for any of the
+ * statements executed by the current transaction. This means that if any of the statements in a transaction are
+ * executed a second time, they will read the same set of rows. The range locks are held until the transaction completes.
+ * This is the most restrictive of the isolation levels because it locks entire ranges of keys and holds the locks until
+ * the transaction completes. Because concurrency is lower, use this option only when necessary. This option has the same
+ * effect as setting HOLDLOCK on all tables in all SELECT statements in a transaction.
+ *
+ * Used with the TransactionIsolation key when calling {@link sqlsrv_connect() sqlsrv_connect}. For information on using
+ * these constants, see {@link http://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx SET TRANSACTION ISOLATION LEVEL (Transact-SQL)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_TXN_SERIALIZABLE', 8);
+/**
+ * Snapshot.
+ *
+ *
Specifies that data read by any statement in a transaction will be the transactionally consistent version of
+ * the data that existed at the start of the transaction. The transaction can only recognize data modifications that
+ * were committed before the start of the transaction. Data modifications made by other transactions after the start of
+ * the current transaction are not visible to statements executing in the current transaction. The effect is as if the
+ * statements in a transaction get a snapshot of the committed data as it existed at the start of the transaction.
+ *
+ * Except when a database is being recovered, SNAPSHOT transactions do not request locks when reading data. SNAPSHOT
+ * transactions reading data do not block other transactions from writing data. Transactions writing data do not block
+ * SNAPSHOT transactions from reading data.
+ *
+ * During the roll-back phase of a database recovery, SNAPSHOT transactions will request a lock if an attempt is made to
+ * read data that is locked by another transaction that is being rolled back. The SNAPSHOT transaction is blocked until
+ * that transaction has been rolled back. The lock is released immediately after it has been granted.
+ *
+ * The ALLOW_SNAPSHOT_ISOLATION database option must be set to ON before you can start a transaction that uses the
+ * SNAPSHOT isolation level. If a transaction using the SNAPSHOT isolation level accesses data in multiple databases,
+ * ALLOW_SNAPSHOT_ISOLATION must be set to ON in each database.
+ *
+ * A transaction cannot be set to SNAPSHOT isolation level that started with another isolation level; doing so will
+ * cause the transaction to abort. If a transaction starts in the SNAPSHOT isolation level, you can change it to another
+ * isolation level and then back to SNAPSHOT. A transaction starts the first time it accesses data.
+ *
+ * A transaction running under SNAPSHOT isolation level can view changes made by that transaction. For example, if the
+ * transaction performs an UPDATE on a table and then issues a SELECT statement against the same table, the modified
+ * data will be included in the result set.
+ *
+ * Used with the TransactionIsolation key when calling {@link sqlsrv_connect() sqlsrv_connect}. For information on using
+ * these constants, see {@link http://msdn.microsoft.com/en-us/library/ms173763(v=sql.110).aspx SET TRANSACTION ISOLATION LEVEL (Transact-SQL)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_TXN_SNAPSHOT', 32);
+
+/**
+ * Specifies the next row.
+ *
+ *
This is the default value, if you do not specify the row parameter for a scrollable result set.
+ *
+ * Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_NEXT', 1);
+/**
+ * Specifies the row before the current row.
+ *
+ *
Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_PRIOR', 4);
+/**
+ * Specifies the first row in the result set.
+ *
+ *
Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_FIRST', 2);
+/**
+ * Specifies the last row in the result set.
+ *
+ *
Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_LAST', 3);
+/**
+ * Specifies the row specified with the offset parameter.
+ *
+ *
Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_ABSOLUTE', 5);
+/**
+ * Specifies the row specified with the offset parameter from the current row.
+ *
+ *
Used with {@link sqlsrv_fetch() sqlsrv_fetch},
+ * {@link sqlsrv_fetch_array() sqlsrv_fetch_array},
+ * or {@link sqlsrv_fetch_object() sqlsrv_fetch_object} to specify a row.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify which row to select in the result set. For
+ * information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_SCROLL_RELATIVE', 6);
+
+/**
+ * Lets you move one row at a time starting at the first row of the result set until you reach the end of
+ * the result set.
+ *
+ *
This is the default cursor type.
+ *
+ * {@link sqlsrv_num_rows() sqlsrv_num_rows} returns an error for result sets created with this cursor type.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the kind of cursor that you can use in a result
+ * set. For information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_CURSOR_FORWARD', 'forward');
+/**
+ * Lets you access rows in any order but will not reflect changes in the database.
+ *
+ *
Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the kind of cursor that you can use in a result
+ * set. For information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_CURSOR_STATIC', 'static');
+/**
+ * Lets you access rows in any order and will reflect changes in the database.
+ *
+ *
{@link sqlsrv_num_rows() sqlsrv_num_rows} returns an error for result sets created with this cursor type.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the kind of cursor that you can use in a result
+ * set. For information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_CURSOR_DYNAMIC', 'dynamic');
+/**
+ * Lets you access rows in any order.
+ *
+ *
However, a keyset cursor does not update the row count if a row is deleted from the table (a deleted row is
+ * returned with no values).
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the kind of cursor that you can use in a result
+ * set. For information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_CURSOR_KEYSET', 'keyset');
+/**
+ * Lets you access rows in any order.
+ *
+ *
Creates a client-side cursor query.
+ *
+ * Used when calling {@link sqlsrv_query() sqlsrv_query} or
+ *{@link sqlsrv_prepare() sqlsrv_prepare} to specify the kind of cursor that you can use in a result
+ * set. For information on using these constants, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ */
+define('SQLSRV_CURSOR_CLIENT_BUFFERED', 'buffered');
+
+/**
+ * Creates and opens a connection.
+ *
+ *
Creates a connection resource and opens a connection. By default, the connection is attempted using Windows
+ * Authentication.
+ *
+ * If values for the UID and PWD keys are not specified in the optional $connectionInfo parameter, the connection will
+ * be attempted using Windows Authentication. For more information about connecting to the server,
+ * see {@link http://msdn.microsoft.com/en-us/library/cc296205.aspx How to: Connect Using Windows Authentication}
+ * and {@link http://msdn.microsoft.com/en-us/library/cc296182.aspx How to: Connect Using SQL Server Authentication.}
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-connect
+ * @param string $server_name A string specifying the name of the server to which a connection is being established.
+ * An instance name (for example, "myServer\instanceName") or port number (for example, "myServer, 1521") can be
+ * included as part of this string. For a complete description of the options available for this parameter, see the
+ * Server keyword in the ODBC Driver Connection String Keywords section
+ * of {@link http://go.microsoft.com/fwlink/?LinkId=105504 Using Connection String Keywords with SQL Native Client}.
+ *
+ * Beginning in version 3.0 of the Microsoft Drivers for PHP for SQL Server, you can also specify a LocalDB instance
+ * with "(localdb)\instancename". For more information,
+ * see {@link http://msdn.microsoft.com/en-us/library/hh487161.aspx PHP Driver for SQL Server Support for LocalDB} .
+ *
+ * Also beginning in version 3.0 of the Microsoft Drivers for PHP for SQL Server, you can specify a virtual network name,
+ * to connect to an AlwaysOn availability group. For more information about Microsoft Drivers for PHP for SQL Server
+ * support for AlwaysOn Availability Groups,
+ * see {@link http://msdn.microsoft.com/en-us/library/hh487159.aspx PHP Driver for SQL Server Support for High Availability, Disaster Recovery}.
+ * @param array $connection_info [optional] An associative array that contains connection attributes (for example, array("Database" => "AdventureWorks")).
+ * See {@link http://msdn.microsoft.com/en-us/library/ff628167.aspx Connection Options} for a list of the supported keys for the array.
+ * @return resource|false A PHP connection resource. If a connection cannot be successfully created and opened, false is returned.
+ */
+function sqlsrv_connect($server_name, $connection_info = []) {}
+
+/**
+ * Closes a connection. Frees all resources associated with the connection.
+ *
+ *
Null is a valid parameter for this function. This allows the function to be called multiple times in a script. For
+ * example, if you close a connection in an error condition and close it again at the end of the script, the second call
+ * to sqlsrv_close will return true because the first call to sqlsrv_close (in the error condition) sets the connection
+ * resource to null.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-close
+ * @param resource|null $conn The connection to be closed.
+ * @return bool The Boolean value true unless the function is called with an invalid parameter. If the function is called with an invalid parameter, false is returned.
+ */
+function sqlsrv_close($conn) {}
+
+/**
+ * Commits a transaction that was begun with sqlsrv_begin_transaction.
+ *
+ *
Commits the current transaction on the specified connection and returns the connection to the auto-commit mode.
+ * The current transaction includes all statements on the specified connection that were executed after the call to
+ * sqlsrv_begin_transaction and before any calls to sqlsrv_rollback or sqlsrv_commit.
+ *
+ * The Microsoft Drivers for PHP for SQL Server is in auto-commit mode by default. This means that all queries are
+ * automatically committed upon success unless they have been designated as part of an explicit transaction by using
+ * sqlsrv_begin_transaction.
+ *
+ * If sqlsrv_commit is called on a connection that is not in an active transaction and that was initiated with
+ * sqlsrv_begin_transaction, the call returns false and a Not in Transaction error is added to the error collection.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-commit
+ * @param resource $conn The connection on which the transaction is active.
+ * @return bool A Boolean value: true if the transaction was successfully committed. Otherwise, false.
+ */
+function sqlsrv_commit($conn) {}
+
+/**
+ * Begins a database transaction.
+ *
+ *
Begins a transaction on a specified connection. The current transaction includes all statements on the specified
+ * connection that were executed after the call to sqlsrv_begin_transaction and before any calls to sqlsrv_rollback or
+ * sqlsrv_commit.
+ *
+ * The Microsoft Drivers for PHP for SQL Server is in auto-commit mode by default. This means that all queries are
+ * automatically committed upon success unless they have been designated as part of an explicit transaction by using
+ * sqlsrv_begin_transaction.
+ *
+ * If sqlsrv_begin_transaction is called after a transaction has already been initiated on the connection but not
+ * completed by calling either sqlsrv_commit or sqlsrv_rollback, the call returns false and an Already in Transaction
+ * error is added to the error collection.
+ *
+ * Do not use embedded Transact-SQL to perform transactions. For example, do not execute a statement with
+ * "BEGIN TRANSACTION" as the Transact-SQL query to begin a transaction. The expected transactional behavior cannot be
+ * guaranteed when using embedded Transact-SQL to perform transactions.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296206.aspx How to Perform Transactions}
+ * and {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-begin-transaction
+ * @param resource $conn The connection with which the transaction is associated.
+ * @return bool A Boolean value: true if the transaction was successfully begun. Otherwise, false.
+ */
+function sqlsrv_begin_transaction($conn) {}
+
+/**
+ * Rolls back a transaction that was begun with {@see sqlsrv_begin_transaction}.
+ *
+ *
Rolls back the current transaction on the specified connection and returns the connection to the auto-commit mode.
+ * The current transaction includes all statements on the specified connection that were executed after the call to
+ * sqlsrv_begin_transaction and before any calls to {@link sqlsrv_rollback() sqlsrv_rollback} or
+ * {@link sqlsrv_commit() sqlsrv_commit}.
+ *
+ * The Microsoft Drivers for PHP for SQL Server is in auto-commit mode by default. This means that all queries are
+ * automatically committed upon success unless they have been designated as part of an explicit transaction by using
+ * {@link sqlsrv_begin_transaction() sqlsrv_begin_transaction}.
+ *
+ * If sqlsrv_rollback is called on a connection that is not in an active transaction that was initiated with
+ * {@link sqlsrv_begin_transaction() sqlsrv_begin_transaction}, the call returns false and a Not in Transaction error
+ * is added to the error collection.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296206.aspx How to Perform Transactions}
+ * and {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-rollback
+ * @param resource $conn The connection on which the transaction is active.
+ * @return bool A Boolean value: true if the transaction was successfully rolled back. Otherwise, false.
+ */
+function sqlsrv_rollback($conn) {}
+
+/**
+ * Returns error and/or warning information about the last operation.
+ *
+ *
Returns extended error and/or warning information about the last sqlsrv operation performed.
+ *
+ * The sqlsrv_errors function can return error and/or warning information by calling it with one of the parameter values
+ * specified in the Parameters section below.
+ *
+ * By default, warnings generated on a call to any sqlsrv function are treated as errors; if a warning occurs on a call
+ * to a sqlsrv function, the function returns false. However, warnings that correspond to SQLSTATE values 01000, 01001,
+ * 01003, and 01S02 are never treated as errors.
+ *
+ * The following line of code turns off the behavior mentioned above; a warning generated by a call to a sqlsrv function
+ * does not cause the function to return false:
+ *
+ * {@link sqlsrv_configure() sqlsrv_configure}("WarningsReturnAsErrors", 0);
+ *
+ * The following line of code reinstates the default behavior; warnings (with exceptions, noted above) are treated as
+ * errors:
+ *
+ * {@link sqlsrv_configure() sqlsrv_configure}("WarningsReturnAsErrors", 1);
+ *
+ * Regardless of the setting, warnings can only be retrieved by calling sqlsrv_errors with either the SQLSRV_ERR_ALL or
+ * SQLSRV_ERR_WARNINGS parameter value (see Parameters section below for details).
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-errors
+ * @param int $errorsAndOrWarnings [optional] A predefined constant. This parameter can take one of the values in the
+ * following list: SQLSRV_ERR_ALL, SQLSRV_ERR_ERRORS, SQLSRV_ERR_WARNINGS. If no parameter value is supplied, both
+ * errors and warnings generated by the last sqlsrv function call are returned.
+ * @return array|null An array of arrays, or null. Each array in the returned array contains three key-value pairs. The
+ * following table lists each key and its description:
+ * SQLSTATE:
+ *
+ * - For errors that originate from the ODBC driver, the SQLSTATE returned by ODBC.For information about SQLSTATE
+ * values for ODBC, see {@link http://go.microsoft.com/fwlink/?linkid=119618 ODBC Error Codes}.
+ * - For errors that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of IMSSP.
+ * - For warnings that originate from the Microsoft Drivers for PHP for SQL Server, a SQLSTATE of 01SSP.
+ *
+ * code:
+ *
+ * - For errors that originate from SQL Server, the native SQL Server error code.
+ * - For errors that originate from the ODBC driver, the error code returned by ODBC.
+ * - For errors that originate from the Microsoft Drivers for PHP for SQL Server, the Microsoft Drivers for PHP for SQL Server error code. For more information, see {@link http://msdn.microsoft.com/en-us/library/cc626302.aspx Handling Errors and Warnings}.
+ *
+ * message: A description of the error.
+ *
+ * The array values can also be accessed with numeric keys 0, 1, and 2.
+ *
+ * If no errors or warnings occur, null is returned.
+ */
+function sqlsrv_errors($errorsAndOrWarnings = SQLSRV_ERR_ALL) {}
+
+/**
+ * Changes the driver error handling and logging configurations.
+ *
+ *
Changes the settings for error handling and logging options.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-configure
+ * @param string $setting The name of the setting to be configured. See table below for list of settings.
+ * @param mixed $value The value to be applied to the setting specified in the $setting parameter. The possible values for this parameter depend on which setting is specified. The following table lists the possible combinations.
+ * ClientBufferMaxKBSize (Default: 10240)
+ * For more information about client-side queries, see {@link http://msdn.microsoft.com/en-us/library/hh487160.aspx Cursor Types (SQLSRV Driver)}.
+ *
+ * - A non negative number up to the PHP memory limit.
+ * - Zero (0) means no limit to the buffer size.
+ *
+ * LogSeverity (Default: SQLSRV_LOG_SEVERITY_ERROR )
+ * For more information about logging activity, see {@link http://msdn.microsoft.com/en-us/library/cc296188.aspx Logging Activity}.
+ * - SQLSRV_LOG_SEVERITY_ALL (-1)
+ * - SQLSRV_LOG_SEVERITY_ERROR (1)
+ * - SQLSRV_LOG_SEVERITY_NOTICE (4)
+ * - SQLSRV_LOG_SEVERITY_WARNING (2)
+ * WarningsReturnAsErrors (Default: true )
+ * For more information about configuring error and warning handling, see {@link http://msdn.microsoft.com/en-us/library/cc626306.aspx How to: Configure Error and Warning Handling Using the SQLSRV Driver}.
+ * - true (1)
+ * - false (0)
+ * @return bool If sqlsrv_configure is called with an unsupported setting or value, the function returns false. Otherwise, the function returns true.
+ */
+function sqlsrv_configure($setting, $value) {}
+
+/**
+ * Returns the current value of the specified configuration setting.
+ *
+ *
If false is returned by sqlsrv_get_config, you must call {@link sqlsrv_errors() sqlsrv_errors} to determine if an error occurred or
+ * if false is the value of the setting specified by the $setting parameter.
+ *
+ * For a list of configurable settings, see {@link sqlsrv_configure() sqlsrv_configure}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-get-config
+ * @param string $setting The configuration setting for which the value is returned.
+ * @return mixed|false The value of the setting specified by the $setting parameter. If an invalid setting is specified, false is returned and an error is added to the error collection.
+ */
+function sqlsrv_get_config($setting) {}
+
+/**
+ * Prepares a Transact-SQL query without executing it. Implicitly binds parameters.
+ *
+ *
Creates a statement resource associated with the specified connection. This function is useful for execution of
+ * multiple queries.
+ *
+ * Variables passed as query parameters should be passed by reference instead of by value. For example, pass
+ * &$myVariable instead of $myVariable. A PHP warning will be raised when a query with by-value parameters is
+ * executed.
+ *
+ * When you prepare a statement that uses variables as parameters, the variables are bound to the statement. That means
+ * that if you update the values of the variables, the next time you execute the statement it will run with updated
+ * parameter values.
+ *
+ * The combination of sqlsrv_prepare and {@link sqlsrv_execute() sqlsrv_execute} separates statement preparation and
+ * statement execution in to two function calls and can be used to execute parameterized queries. This function is ideal
+ * to execute a statement multiple times with different parameter values for each execution.
+ *
+ * For alternative strategies for writing and reading large amounts of information, see
+ * {@link http://go.microsoft.com/fwlink/?LinkId=104225 Batches of SQL Statements} and
+ * {@link http://go.microsoft.com/fwlink/?LinkId=104226 BULK INSERT}.
+ *
+ * For more information, see
+ * {@link http://msdn.microsoft.com/en-us/library/cc626303.aspx How to: Retrieve Output Parameters Using the SQLSRV Driver.}
+ *
+ * For additional Information see:
+ * - {@link http://msdn.microsoft.com/en-us/library/cc644934.aspx Using Directional Parameters}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296202.aspx Updating Data (Microsoft Drivers for PHP for SQL Server)}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296201.aspx How to: Perform Parameterized Queries}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296191.aspx How to: Send Data as a Stream}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-prepare
+ * @param resource $conn The connection resource associated with the created statement.
+ * @param string $tsql The Transact-SQL expression that corresponds to the created statement.
+ * @param array $params [optional]: An array of values that correspond to parameters in a parameterized query. Each
+ * element of the array can be one of the following: a literal value, a reference to a PHP variable, or an array with
+ * the following structure:
+ * array(&$value [, $direction [, $phpType [, $sqlType]]])
+ * The following table describes these array elements:
+ * - &$value - A literal value or a reference to a PHP variable.
+ * - $direction[optional] - One of the following SQLSRV_PARAM_* constants used to indicate the parameter direction:
+ * SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN. For more information
+ * about PHP constants, see
+ * {@link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server Constants (Microsoft Drivers for PHP for SQL Server)}.
+ * - $phpType[optional] - A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
+ * - $sqlType[optional] - A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
+ * @param array $options [optional]: An associative array that sets query properties. The table below lists the
+ * supported keys and corresponding values:
+ *
+ * QueryTimeout (int) - Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
+ * Any positive integer value.
+ *
+ * SendStreamParamsAtExec (bool) - Configures the driver to send all stream data at execution (true), or to send stream
+ * data in chunks (false). By default, the value is set to true. For more information, see
+ * {@link sqlsrv_send_stream_data() sqlsrv_send_stream_data}.
+ *
+ * Scrollable - For more information about these values, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ * - SQLSRV_CURSOR_FORWARD
+ * - SQLSRV_CURSOR_STATIC
+ * - SQLSRV_CURSOR_DYNAMIC
+ * - SQLSRV_CURSOR_KEYSET
+ * - SQLSRV_CURSOR_CLIENT_BUFFERED
+ * @return resource|false A statement resource. If the statement resource cannot be created, false is returned.
+ */
+function sqlsrv_prepare($conn, $tsql, $params = [], $options = []) {}
+
+/**
+ * Executes a statement prepared with {@see sqlsrv_prepare}
+ *
+ *
Executes a previously prepared statement. See {@link sqlsrv_prepare() sqlsrv_prepare} for information on preparing a statement
+ * for execution.
+ *
+ * This function is ideal for executing a prepared statement multiple times with different parameter values.
+ *
+ * For additional Information see:
+ * - {@link sqlsrv_query() sqlsrv_query}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296201.aspx How to: Perform Parameterized Queries}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-execute
+ * @param resource $stmt A resource specifying the statement to be executed. For more information about how to create a
+ * statement resource, see {@link sqlsrv_prepare() sqlsrv_prepare}.
+ * @return bool A Boolean value: true if the statement was successfully executed. Otherwise, false.
+ */
+function sqlsrv_execute($stmt) {}
+
+/**
+ * Prepares and executes a Transact-SQL query.
+ *
+ *
Prepares and executes a statement.
+ *
+ * The sqlsrv_query function is well-suited for one-time queries and should be the default choice to execute queries
+ * unless special circumstances apply. This function provides a streamlined method to execute a query with a minimum
+ * amount of code. The sqlsrv_query function does both statement preparation and statement execution, and can be used to
+ * execute parameterized queries.
+ *
+ * For more information, see
+ * {@link http://msdn.microsoft.com/en-us/library/cc626303.aspx How to: Retrieve Output Parameters Using the SQLSRV Driver.}
+ *
+ * For additional Information see:
+ * - {@link http://msdn.microsoft.com/en-us/library/cc644934.aspx Using Directional Parameters}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296202.aspx Updating Data (Microsoft Drivers for PHP for SQL Server)}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296201.aspx How to: Perform Parameterized Queries}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296191.aspx How to: Send Data as a Stream}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-query
+ * @param resource $conn The connection resource associated with the prepared statement.
+ * @param string $tsql The Transact-SQL expression that corresponds to the prepared statement.
+ * @param array $params [optional]: An array of values that correspond to parameters in a parameterized query. Each
+ * element of the array can be one of the following: a literal value, a reference to a PHP variable, or an array with
+ * the following structure:
+ * array($value [, $direction [, $phpType [, $sqlType]]])
+ * The following table describes these array elements:
+ * - &$value - A literal value, a PHP variable, or a PHP by-reference variable.
+ * - $direction[optional] - One of the following SQLSRV_PARAM_* constants used to indicate the parameter direction:
+ * SQLSRV_PARAM_IN, SQLSRV_PARAM_OUT, SQLSRV_PARAM_INOUT. The default value is SQLSRV_PARAM_IN. For more information
+ * about PHP constants, see
+ * {@link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server Constants (Microsoft Drivers for PHP for SQL Server)}.
+ * - $phpType[optional] - A SQLSRV_PHPTYPE_* constant that specifies PHP data type of the returned value.
+ * - $sqlType[optional] - A SQLSRV_SQLTYPE_* constant that specifies the SQL Server data type of the input value.
+ * @param array $options [optional]: An associative array that sets query properties. The table below lists the
+ * supported keys and corresponding values:
+ *
+ * QueryTimeout (int) - Sets the query timeout in seconds. By default, the driver will wait indefinitely for results.
+ * Any positive integer value.
+ *
+ * SendStreamParamsAtExec (bool) - Configures the driver to send all stream data at execution (true), or to send stream
+ * data in chunks (false). By default, the value is set to true. For more information, see
+ * {@link sqlsrv_send_stream_data() sqlsrv_send_stream_data}.
+ *
+ * Scrollable - For more information about these values, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ * - SQLSRV_CURSOR_FORWARD
+ * - SQLSRV_CURSOR_STATIC
+ * - SQLSRV_CURSOR_DYNAMIC
+ * - SQLSRV_CURSOR_KEYSET
+ * - SQLSRV_CURSOR_CLIENT_BUFFERED
+ * @return resource|false A statement resource. If the statement cannot be created and/or executed, false is returned.
+ */
+function sqlsrv_query($conn, $tsql, $params = [], $options = []) {}
+
+/**
+ * Makes the next row in a result set available for reading.
+ *
+ *
Makes the next row of a result set available for reading. Use {@link sqlsrv_get_field() sqlsrv_get_field} to read fields of
+ * the row.
+ *
+ * A statement must be executed before results can be retrieved. For information on executing a statement, see {@link sqlsrv_query() sqlsrv_query}
+ * and {@link sqlsrv_execute() sqlsrv_execute}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-fetch
+ * @param resource|null $stmt A statement resource corresponding to an executed statement.
+ * @param int|null $row [optional]: One of the following values, specifying the row to access in a result set that uses a
+ * scrollable cursor: SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST,
+ * SQLSRV_SCROLL_ABSOLUTE, SQLSRV_SCROLL_RELATIVE.
+ *
+ * For more information on these values, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ * @param int|null $offset [optional] Used with SQLSRV_SCROLL_ABSOLUTE and SQLSRV_SCROLL_RELATIVE to specify the row to
+ * retrieve. The first record in the result set is 0.
+ * @return bool|null If the next row of the result set was successfully retrieved, true is returned. If there are
+ * no more results in the result set, null is returned. If an error occurred, false is returned.
+ */
+function sqlsrv_fetch($stmt, $row = null, $offset = null) {}
+
+/**
+ * Retrieves a field in the current row by index. The PHP return type can be specified.
+ *
+ *
Retrieves data from the specified field of the current row. Field data must be accessed in order. For example,
+ * data from the first field cannot be accessed after data from the second field has been accessed.
+ *
+ * The combination of {@link sqlsrv_fetch() sqlsrv_fetch} and
+ * {@link sqlsrv_get_field() sqlsrv_get_field} provides forward-only access to data.
+ *
+ * The combination of {@link sqlsrv_fetch() sqlsrv_fetch} and
+ * {@link sqlsrv_get_field() sqlsrv_get_field} loads only one
+ * field of a result set row into script memory and allows PHP return type specification. (For information about how to
+ * specify the PHP return type, see {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}.)
+ * This combination of functions also allows data to be retrieved as a stream. (For information about retrieving data
+ * as a stream, see {@link http://msdn.microsoft.com/en-us/library/cc296155.aspx Retrieving Data as a Stream Using the SQLSRV Driver}.)
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-get-field
+ * @param resource $stmt A statement resource corresponding to an executed statement.
+ * @param int $field_index The index of the field to be retrieved. Indexes begin at zero.
+ * @param int $get_as_type [optional] A SQLSRV constant (SQLSRV_PHPTYPE_*) that determines the PHP data type for the returned
+ * data. For information about supported data types, see
+ * {@link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server Constants (Microsoft Drivers for PHP for SQL Server)}.
+ * If no return type is specified, a default PHP type will be returned. For information about default PHP types, see
+ * {@link http://msdn.microsoft.com/en-us/library/cc296193.aspx Default PHP Data Types}. For information about
+ * specifying PHP data types, see {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}.
+ * @return mixed The field data. You can specify the PHP data type of the returned data by using the $getAsType
+ * parameter. If no return data type is specified, the default PHP data type will be returned. For information about
+ * default PHP types, see {@link http://msdn.microsoft.com/en-us/library/cc296193.aspx Default PHP Data Types}. For
+ * information about specifying PHP data types,
+ * see {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}.
+ */
+function sqlsrv_get_field($stmt, $field_index, $get_as_type = null) {}
+
+/**
+ * Retrieves the next row of data as a numerically indexed array, an associative array, or both.
+ *
+ *
If a column with no name is returned, the associative key for the array element will be an empty string (""). For
+ * example, consider this Transact-SQL statement that inserts a value into a database table and retrieves the
+ * server-generated primary key:
+ * INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
+ * SELECT SCOPE_IDENTITY()
+ * If the result set returned by the SELECT SCOPE_IDENTITY() portion of this statement is retrieved as an associative
+ * array, the key for the returned value will be an empty string ("") because the returned column has no name. To avoid
+ * this, you can retrieve the result as a numeric array, or you can specify a name for the returned column in the
+ * Transact-SQL statement. The following is one way to specify a column name in Transact-SQL:
+ * SELECT SCOPE_IDENTITY() AS PictureID
+ * If a result set contains multiple columns without names, the value of the last unnamed column will be assigned to the
+ * empty string ("") key.
+ *
+ * The sqlsrv_fetch_array function always returns data according to the
+ * {@link http://msdn.microsoft.com/en-us/library/cc296193.aspx Default PHP Data Types}. For information about
+ * how to specify the PHP data type,
+ * see {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}.
+ *
+ * If a field with no name is retrieved, the associative key for the array element will be an empty string (""). For
+ * more information, see {@link sqlsrv_fetch_array() sqlsrv_fetch_array}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296160.aspx Retrieving Data} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-fetch-array
+ * @param resource|null $stmt A statement resource corresponding to an executed statement.
+ * @param int $fetch_type [optional] A predefined constant. This parameter can take on one of the values listed in the
+ * following table:
+ * - SQLSRV_FETCH_NUMERIC - The next row of data is returned as a numeric array.
+ * - SQLSRV_FETCH_ASSOC - The next row of data is returned as an associative array. The array keys are the column
+ * names in the result set.
+ * - SQLSRV_FETCH_BOTH - The next row of data is returned as both a numeric array and an associative array. This is
+ * the default value.
+ * @param int|null $row [optional]: One of the following values, specifying the row to access in a result set that uses a
+ * scrollable cursor: SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST,
+ * SQLSRV_SCROLL_ABSOLUTE, SQLSRV_SCROLL_RELATIVE.
+ *
+ * For more information on these values, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ * @param int|null $offset [optional] Used with SQLSRV_SCROLL_ABSOLUTE and SQLSRV_SCROLL_RELATIVE to specify the row to
+ * retrieve. The first record in the result set is 0.
+ * @return array|null|false If a row of data is retrieved, an array is returned. If there are no more rows to retrieve, null is returned. If an error occurs, false is returned.
+ */
+function sqlsrv_fetch_array($stmt, $fetch_type = null, $row = null, $offset = null) {}
+
+/**
+ * Retrieves the next row of data as an object.
+ *
+ *
Retrieves the next row of data as a PHP object.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296160.aspx Retrieving Data} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-fetch-object
+ * @param resource $stmt A statement resource corresponding to an executed statement.
+ * @param string|null $class_name [optional] A string specifying the name of the class to instantiate. If a value for the
+ * $className parameter is not specified, an instance of the PHP {@link stdClass} is instantiated.
+ * @param array|null $ctor_params [optional] An array that contains values passed to the constructor of the class
+ * specified with the $className parameter. If the constructor of the specified class accepts parameter values, the
+ * $ctorParams parameter must be used when calling sqlsrv_fetch_object.
+ * @param int|null $row [optional] One of the following values, specifying the row to access in a result set that uses a
+ * scrollable cursor: SQLSRV_SCROLL_NEXT, SQLSRV_SCROLL_PRIOR, SQLSRV_SCROLL_FIRST, SQLSRV_SCROLL_LAST,
+ * SQLSRV_SCROLL_ABSOLUTE, SQLSRV_SCROLL_RELATIVE.
+ *
+ * For more information on these values, see
+ * {@link http://msdn.microsoft.com/en-us/library/ee376927.aspx Specifying a Cursor Type and Selecting Rows}.
+ * @param int|null $offset [optional] Used with SQLSRV_SCROLL_ABSOLUTE and SQLSRV_SCROLL_RELATIVE to specify the row to
+ * retrieve. The first record in the result set is 0.
+ * @return object|false|null A PHP object with properties that correspond to result set field names. Property values are
+ * populated with the corresponding result set field values. If the class specified with the optional $className
+ * parameter does not exist or if there is no active result set associated with the specified statement, false is
+ * returned. If there are no more rows to retrieve, null is returned.
+ *
+ * The data type of a value in the returned object will be the default PHP data type. For information on default PHP data
+ * types, see {@link http://msdn.microsoft.com/en-us/library/cc296193.aspx Default PHP Data Types}.
+ */
+function sqlsrv_fetch_object($stmt, $class_name = null, $ctor_params = null, $row = null, $offset = null) {}
+
+/**
+ * Detects if a result set has one or more rows.
+ *
+ *
Indicates if the result set has one or more rows.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-has-rows
+ * @param resource $stmt The executed statement.
+ * @return bool If there are rows in the result set, the return value will be true. If there are no rows, or if the
+ * function call fails, the return value will be false.
+ */
+function sqlsrv_has_rows($stmt) {}
+
+/**
+ * Retrieves the number of fields (columns) on a statemen.
+ *
+ *
Retrieves the number of fields in an active result set. Note that sqlsrv_num_fields can be called on any
+ * prepared statement, before or after execution.
+ *
+ * Additional Information at {@link sqlsrv_field_metadata() sqlsrv_field_metadata} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-num-fields
+ * @param resource $stmt The statement on which the targeted result set is active.
+ * @return int|false An integer value that represents the number of fields in the active result set. If an error occurs,
+ * the Boolean value false is returned.
+ */
+function sqlsrv_num_fields($stmt) {}
+
+/**
+ * Makes the next result of the specified statement active.
+ *
+ *
Makes the next result (result set, row count, or output parameter) of the specified statement active.
+ *
+ * The first (or only) result returned by a batch query or stored procedure is active without a call to sqlsrv_next_result.
+ *
+ * Additional Information at
+ * {@link http://msdn.microsoft.com/en-us/library/cc296202.aspx Updating Data (Microsoft Drivers for PHP for SQL Server)} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-next-result
+ * @param resource $stmt The executed statement on which the next result is made active.
+ * @return bool|null If the next result was successfully made active, the Boolean value true is returned. If an error occurred in
+ * making the next result active, false is returned. If no more results are available, null is returned.
+ */
+function sqlsrv_next_result($stmt) {}
+
+/**
+ * Retrieves the number of rows in a result set.
+ *
+ *
sqlsrv_num_rows requires a client-side, static, or keyset cursor, and will return false if you use a forward cursor
+ * or a dynamic cursor. (A forward cursor is the default.) For more information about cursors, see
+ * {@link sqlsrv_prepare() sqlsrv_prepare},
+ * {@link sqlsrv_query() sqlsrv_query} and
+ * {@link http://msdn.microsoft.com/en-us/library/hh487160.aspx Cursor Types (SQLSRV Driver)}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-num-rows
+ * @param resource $stmt The result set for which to count the rows.
+ * @return int|false False if there was an error calculating the number of rows. Otherwise, returns the number of rows in the result set.
+ */
+function sqlsrv_num_rows($stmt) {}
+
+/**
+ * Returns the number of modified rows.
+ *
+ *
Returns the number of rows modified by the last statement executed. This function does not return the number of
+ * rows returned by a SELECT statement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-rows-affected
+ * @param resource $stmt A statement resource corresponding to an executed statement.
+ * @return int|false An integer indicating the number of rows modified by the last executed statement. If no rows were
+ * modified, zero (0) is returned. If no information about the number of modified rows is available, negative one (-1)
+ * is returned. If an error occurred in retrieving the number of modified rows, false is returned.
+ */
+function sqlsrv_rows_affected($stmt) {}
+
+/**
+ * Provides information about the client.
+ *
+ *
Returns information about the connection and client stack.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-client-info
+ * @param resource $conn The connection resource by which the client is connected.
+ * @return array|false An associative array with keys described in the table below, or false if the connection resource
+ * is null.
+ * - DriverDllName - SQLNCLI10.DLL (Microsoft Drivers for PHP for SQL Server version 2.0)
+ * - DriverODBCVer - ODBC version (xx.yy)
+ * - DriverVer - SQL Server Native Client DLL version: 10.50.xxx (Microsoft Drivers for PHP for SQL Server version 2.0)
+ * - ExtensionVer - php_sqlsrv.dll version: 2.0.xxxx.x(Microsoft Drivers for PHP for SQL Server version 2.0)
+ */
+function sqlsrv_client_info($conn) {}
+
+/**
+ * Returns information about the server.
+ *
+ *
Returns information about the server. A connection must be established before calling this function.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-server-info
+ * @param resource $conn The connection resource by which the client and server are connected.
+ * @return array An associative array with the following keys:
+ * - CurrentDatabase - The database currently being targeted.
+ * - SQLServerVersion - The version of SQL Server.
+ * - SQLServerName - The name of the server.
+ */
+function sqlsrv_server_info($conn) {}
+
+/**
+ * Cancels a statement; discards any pending results for the statement.
+ *
+ *
Cancels a statement. This means that any pending results for the statement are discarded. After this function
+ * is called, the statement can be re-executed if it was prepared with {@link sqlsrv_prepare() sqlsrv_prepare}. Calling
+ * this function is not necessary if all the results associated with the statement have been consumed.
+ *
+ * A statement that is prepared and executed using the combination of {@link sqlsrv_prepare() sqlsrv_prepare} and
+ * {@link sqlsrv_execute() sqlsrv_execute} can be re-executed
+ * with {@link sqlsrv_execute() sqlsrv_execute} after calling sqlsrv_cancel. A statement that is executed with
+ * {@link sqlsrv_query() sqlsrv_query} cannot be re-executed after calling sqlsrv_cancel.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-cancel
+ * @param resource $stmt The statement to be canceled.
+ * @return bool A Boolean value: true if the operation was successful. Otherwise, false.
+ */
+function sqlsrv_cancel($stmt) {}
+
+/**
+ * Closes a statement. Frees all resources associated with the statement.
+ *
+ *
Frees all resources associated with the specified statement. The statement cannot be used again after this function
+ * has been called.
+ *
+ * Null is a valid parameter for this function. This allows the function to be called multiple times in a script. For
+ * example, if you free a statement in an error condition and free it again at the end of the script, the second call to
+ * sqlsrv_free_stmt will return true because the first call to sqlsrv_free_stmt (in the error condition) sets the
+ * statement resource to null.
+ *
+ * Additional Information at {@link sqlsrv_cancel() sqlsrv_cancel} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-free-stmt
+ * @param resource|null $stmt The statement to be closed.
+ * @return bool The Boolean value true unless the function is called with an invalid parameter. If the function is
+ * called with an invalid parameter, false is returned.
+ */
+function sqlsrv_free_stmt($stmt) {}
+
+/**
+ * Returns field metadata.
+ *
+ *
Retrieves metadata for the fields of a prepared statement. For information about preparing a statement,
+ * see {@link sqlsrv_query() sqlsrv_query}
+ * or {@link sqlsrv_prepare() sqlsrv_prepare}. Note that sqlsrv_field_metadata can be called on any prepared statement,
+ * pre- or post-execution.
+ *
+ * Additional Information at {@link sqlsrv_cancel() sqlsrv_cancel} and
+ * {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-field-metadata
+ * @param resource $stmt A statement resource for which field metadata is sought.
+ * @return array|false An array of arrays or false. The array consists of one array for each field in the result set.
+ * Each sub-array has keys as described in the table below. If there is an error in retrieving field metadata, false is
+ * returned.
+ * - Name - Name of the column to which the field corresponds.
+ * - Type - Numeric value that corresponds to a SQL type.
+ * - Size - Number of characters for fields of character type (char(n), varchar(n), nchar(n), nvarchar(n), XML).
+ * Number of bytes for fields of binary type (binary(n), varbinary(n), UDT). NULL for other SQL Server data types.
+ * - Precision - The precision for types of variable precision (real, numeric, decimal, datetime2, datetimeoffset, and
+ * time). NULL for other SQL Server data types.
+ * - Scale - The scale for types of variable scale (numeric, decimal, datetime2, datetimeoffset, and time). NULL for other
+ * SQL Server data types.
+ * - Nullable - An enumerated value indicating whether the column is nullable (SQLSRV_NULLABLE_YES), the column is not
+ * nullable (SQLSRV_NULLABLE_NO), or it is not known if the column is nullable (SQLSRV_NULLABLE_UNKNOWN).
+ * See the {@link http://msdn.microsoft.com/en-us/library/cc296197.aspx function documentation} for more information on
+ * the keys for each sub-array.
+ */
+function sqlsrv_field_metadata($stmt) {}
+
+/**
+ * Sends up to eight kilobytes (8 KB) of data to the server with each call to the function.
+ *
+ *
Sends data from parameter streams to the server. Up to eight kilobytes (8K) of data is sent with each call to
+ * sqlsrv_send_stream_data.
+ *
+ * By default, all stream data is sent to the server when a query is executed. If this default behavior is not changed,
+ * you do not have to use sqlsrv_send_stream_data to send stream data to the server. For information about changing the
+ * default behavior, see the Parameters section of {@link sqlsrv_query() sqlsrv_query}
+ * or {@link sqlsrv_prepare() sqlsrv_prepare}.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/sqlsrv-send-stream-data
+ * @param resource $stmt A statement resource corresponding to an executed statement.
+ * @return bool Boolean : true if there is more data to be sent. Otherwise, false.
+ */
+function sqlsrv_send_stream_data($stmt) {}
+
+/**
+ * Specifies the encoding of a stream of data from the server.
+ *
+ *
When specifying the PHP data type of a value being returned from the server, this allows you to specify the encoding
+ * used to process the value if the value is a stream.
+ *
+ * In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * When you use SQLSRV_PHPTYPE_STREAM, the encoding must be specified. If no parameter is supplied, an error will be
+ * returned.
+ *
+ * Additional Information at:
+ *
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296163.aspx How to: Retrieve Character Data as a Stream Using the SQLSRV Driver.}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc626307.aspx How to: Send and Retrieve UTF-8 Data Using Built-In UTF-8 Support.}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ *
+ * @param string $encoding The encoding to use for the stream. The valid options are SQLSRV_ENC_BINARY, SQLSRV_ENC_CHAR
+ * or "UTF-8".
+ *
+ * @return int Value to use in any place that accepts a SQLSRV_PHPTYPE_* constant to represent a PHP stream with the
+ * given encoding.
+ */
+function SQLSRV_PHPTYPE_STREAM($encoding) {}
+
+/**
+ * Specifies the encoding of a string being received form the server.
+ *
+ *
When specifying the PHP data type of a value being returned from the server, this allows you to specify the
+ * encoding used to process the value if the value is a string.
+ *
+ * In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * When you use SQLSRV_PHPTYPE_STRING, the encoding must be specified. If no parameter is supplied, an error will be
+ * returned.
+ *
+ * Additional Information at:
+ *
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296208.aspx How to: Specify PHP Data Types}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296163.aspx How to: Retrieve Character Data as a Stream Using the SQLSRV Driver.}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc626307.aspx How to: Send and Retrieve UTF-8 Data Using Built-In UTF-8 Support.}
+ * - {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ *
+ * @param string $encoding The encoding to use for the stream. The valid options are SQLSRV_ENC_BINARY, SQLSRV_ENC_CHAR
+ * or "UTF-8".
+ *
+ * @return int Value to use in any place that accepts a SQLSRV_PHPTYPE_* constant to represent a PHP string with the
+ * given encoding.
+ */
+function SQLSRV_PHPTYPE_STRING($encoding) {}
+
+/**
+ * Specifies a SQL Server binary field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int $byteCount Must be between 1 and 8000.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the 'binary' data type.
+ */
+function SQLSRV_SQLTYPE_BINARY($byteCount) {}
+
+/**
+ * Specifies a SQL Server varbinary field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int|string $byteCount Must be between 1 and 8000 or 'max'.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the varbinary data type.
+ */
+function SQLSRV_SQLTYPE_VARBINARY($byteCount) {}
+
+/**
+ * Specifies a SQL Server varchar filed.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ *
+ * @param int|string $charCount Must be between 1 and 8000 or 'max'.
+ *
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the varchar data type.
+ */
+function SQLSRV_SQLTYPE_VARCHAR($charCount) {}
+
+/**
+ * Specifies a SQL Server char field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int $charCount Must be between 1 and 8000.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the char data type.
+ */
+function SQLSRV_SQLTYPE_CHAR($charCount) {}
+
+/**
+ * Specifies a SQL Server nchar field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int $charCount Must be between 1 and 4000.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the nchar data type.
+ */
+function SQLSRV_SQLTYPE_NCHAR($charCount) {}
+
+/**
+ * Specifies a SQL Server nvarchar field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int|string $charCount Must be between 1 and 4000 or 'max'.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the nvarchar data type.
+ */
+function SQLSRV_SQLTYPE_NVARCHAR($charCount) {}
+
+/**
+ * Specifies a SQL Server decimal field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int $precision Must be between 1 and 38.
+ * @param int $scale Must be between 1 and $precision.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the decimal data type.
+ */
+function SQLSRV_SQLTYPE_DECIMAL($precision, $scale) {}
+
+/**
+ * Specifies a SQL Server numeric field.
+ *
+ *
In the documentation this is presented as a constant that accepts an arguement.
+ *
+ * Additional Information at {@link http://msdn.microsoft.com/en-us/library/cc296152.aspx SQLSRV Driver API Reference}
+ *
+ * @link https://docs.microsoft.com/en-us/sql/connect/php/constants-microsoft-drivers-for-php-for-sql-server
+ * @param int $precision Must be between 1 and 38.
+ * @param int $scale Must be between 1 and $precision.
+ * @return int Value to use in any place that accepts a SQLSRV_SQLTYPE_* constant to represent the numeric data type.
+ */
+function SQLSRV_SQLTYPE_NUMERIC($precision, $scale) {}
diff --git a/phpstorm-stubs/ssh2/ssh2.php b/phpstorm-stubs/ssh2/ssh2.php
new file mode 100644
index 0000000..d88506b
--- /dev/null
+++ b/phpstorm-stubs/ssh2/ssh2.php
@@ -0,0 +1,819 @@
+
+ * Connect to an SSH server
+ * @link https://php.net/manual/en/function.ssh2-connect.php
+ * @param string $host
+ *
+ * @param int $port [optional]
+ *
+ * @param null|array $methods [optional]
+ * methods may be an associative array with up to four parameters
+ * as described below.
+ *
+ *
+ *
+ * methods may be an associative array
+ * with any or all of the following parameters.
+ *
+ * Index
+ * Meaning
+ * Supported Values*
+ *
+ *
+ * kex
+ *
+ * List of key exchange methods to advertise, comma separated
+ * in order of preference.
+ *
+ *
+ * diffie-hellman-group1-sha1,
+ * diffie-hellman-group14-sha1, and
+ * diffie-hellman-group-exchange-sha1
+ *
+ *
+ *
+ * hostkey
+ *
+ * List of hostkey methods to advertise, come separated
+ * in order of preference.
+ *
+ *
+ * ssh-rsa and
+ * ssh-dss
+ *
+ *
+ *
+ * client_to_server
+ *
+ * Associative array containing crypt, compression, and
+ * message authentication code (MAC) method preferences
+ * for messages sent from client to server.
+ *
+ *
+ *
+ * server_to_client
+ *
+ * Associative array containing crypt, compression, and
+ * message authentication code (MAC) method preferences
+ * for messages sent from server to client.
+ *
+ *
+ *
+ *
+ *
+ * * - Supported Values are dependent on methods supported by underlying library.
+ * See libssh2 documentation for additional
+ * information.
+ *
+ *
+ *
+ * client_to_server and
+ * server_to_client may be an associative array
+ * with any or all of the following parameters.
+ *
+ * Index
+ * Meaning
+ * Supported Values*
+ *
+ *
+ * crypt
+ * List of crypto methods to advertise, comma separated
+ * in order of preference.
+ *
+ * rijndael-cbc@lysator.liu.se,
+ * aes256-cbc,
+ * aes192-cbc,
+ * aes128-cbc,
+ * 3des-cbc,
+ * blowfish-cbc,
+ * cast128-cbc,
+ * arcfour, and
+ * none**
+ *
+ *
+ *
+ * comp
+ * List of compression methods to advertise, comma separated
+ * in order of preference.
+ *
+ * zlib and
+ * none
+ *
+ *
+ *
+ * mac
+ * List of MAC methods to advertise, come separated
+ * in order of preference.
+ *
+ * hmac-sha1,
+ * hmac-sha1-96,
+ * hmac-ripemd160,
+ * hmac-ripemd160@openssh.com, and
+ * none**
+ *
+ *
+ *
+ *
+ *
+ * Crypt and MAC method "none"
+ *
+ * For security reasons, none is disabled by the underlying
+ * libssh2 library unless explicitly enabled
+ * during build time by using the appropriate ./configure options. See documentation
+ * for the underlying library for more information.
+ *
+ *
+ * @param null|array $callbacks [optional]
+ * callbacks may be an associative array with any
+ * or all of the following parameters.
+ *
+ * Callbacks parameters
+ *
+ * Index
+ * Meaning
+ * Prototype
+ *
+ *
+ * ignore
+ *
+ * Name of function to call when an
+ * SSH2_MSG_IGNORE packet is received
+ *
+ * void ignore_cb($message)
+ *
+ *
+ * debug
+ *
+ * Name of function to call when an
+ * SSH2_MSG_DEBUG packet is received
+ *
+ * void debug_cb($message, $language, $always_display)
+ *
+ *
+ * macerror
+ *
+ * Name of function to call when a packet is received but the
+ * message authentication code failed. If the callback returns
+ * true, the mismatch will be ignored, otherwise the connection
+ * will be terminated.
+ *
+ * bool macerror_cb($packet)
+ *
+ *
+ * disconnect
+ *
+ * Name of function to call when an
+ * SSH2_MSG_DISCONNECT packet is received
+ *
+ * void disconnect_cb($reason, $message, $language)
+ *
+ *
+ *
+ * @return resource|false a resource on success, or false on error.
+ */
+function ssh2_connect($host, $port = 22, ?array $methods = null, ?array $callbacks = null) {}
+
+/**
+ * (PECL ssh2 >= 1.0)
+ * Close a connection to a remote SSH server
+ * @link https://php.net/manual/en/function.ssh2-disconnect.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @return bool
+ */
+function ssh2_disconnect($session) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Return list of negotiated methods
+ * @link https://php.net/manual/en/function.ssh2-methods-negotiated.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @return array
+ */
+function ssh2_methods_negotiated($session) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Retrieve fingerprint of remote server
+ * @link https://php.net/manual/en/function.ssh2-fingerprint.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param int $flags [optional]
+ * flags may be either of
+ * SSH2_FINGERPRINT_MD5 or
+ * SSH2_FINGERPRINT_SHA1 logically ORed with
+ * SSH2_FINGERPRINT_HEX or
+ * SSH2_FINGERPRINT_RAW.
+ *
+ * @return string the hostkey hash as a string.
+ */
+function ssh2_fingerprint($session, $flags = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Authenticate as "none"
+ * @link https://php.net/manual/en/function.ssh2-auth-none.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $username
+ * Remote user name.
+ *
+ * @return array|bool true if the server does accept "none" as an authentication
+ * method, or an array of accepted authentication methods on failure.
+ */
+function ssh2_auth_none($session, $username) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Authenticate over SSH using a plain password
+ * @link https://php.net/manual/en/function.ssh2-auth-password.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $username
+ * Remote user name.
+ *
+ * @param string $password
+ * Password for username
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_auth_password($session, $username, $password) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Authenticate using a public key
+ * @link https://php.net/manual/en/function.ssh2-auth-pubkey-file.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $username
+ *
+ * @param string $pubkeyfile
+ *
+ * @param string $privkeyfile
+ *
+ * @param string $passphrase [optional]
+ * If privkeyfile is encrypted (which it should
+ * be), the passphrase must be provided.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_auth_pubkey_file($session, $username, $pubkeyfile, $privkeyfile, $passphrase = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Authenticate using a public hostkey
+ * @link https://php.net/manual/en/function.ssh2-auth-hostbased-file.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $username
+ *
+ * @param string $hostname
+ *
+ * @param string $pubkeyfile
+ *
+ * @param string $privkeyfile
+ *
+ * @param string $passphrase [optional]
+ * If privkeyfile is encrypted (which it should
+ * be), the passphrase must be provided.
+ *
+ * @param string $local_username [optional]
+ * If local_username is omitted, then the value
+ * for username will be used for it.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_auth_hostbased_file($session, $username, $hostname, $pubkeyfile, $privkeyfile, $passphrase = null, $local_username = null) {}
+
+function ssh2_forward_listen() {}
+
+function ssh2_forward_accept() {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Request an interactive shell
+ * @link https://php.net/manual/en/function.ssh2-shell.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $term_type [optional]
+ * term_type should correspond to one of the
+ * entries in the target system's /etc/termcap file.
+ *
+ * @param null|array $env [optional]
+ * env may be passed as an associative array of
+ * name/value pairs to set in the target environment.
+ *
+ * @param null|int $width [optional]
+ * Width of the virtual terminal.
+ *
+ * @param null|int $height [optional]
+ * Height of the virtual terminal.
+ *
+ * @param null|int $width_height_type [optional]
+ * width_height_type should be one of
+ * SSH2_TERM_UNIT_CHARS or
+ * SSH2_TERM_UNIT_PIXELS.
+ *
+ * @return resource
+ */
+function ssh2_shell($session, $term_type = null, ?array $env = null, $width = null, $height = null, $width_height_type = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Execute a command on a remote server
+ * @link https://php.net/manual/en/function.ssh2-exec.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $command
+ *
+ * @param null|string $pty [optional]
+ *
+ * @param null|array $env [optional]
+ * env may be passed as an associative array of
+ * name/value pairs to set in the target environment.
+ *
+ * @param null|int $width [optional]
+ * Width of the virtual terminal.
+ *
+ * @param null|int $height [optional]
+ * Height of the virtual terminal.
+ *
+ * @param null|int $width_height_type [optional]
+ * width_height_type should be one of
+ * SSH2_TERM_UNIT_CHARS or
+ * SSH2_TERM_UNIT_PIXELS.
+ *
+ * @return resource|false a stream on success or false on failure.
+ */
+function ssh2_exec($session, $command, $pty = null, ?array $env = null, $width = null, $height = null, $width_height_type = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Open a tunnel through a remote server
+ * @link https://php.net/manual/en/function.ssh2-tunnel.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $host
+ *
+ * @param int $port
+ *
+ * @return resource
+ */
+function ssh2_tunnel($session, $host, $port) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Request a file via SCP
+ * @link https://php.net/manual/en/function.ssh2-scp-recv.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $remote_file
+ * Path to the remote file.
+ *
+ * @param string $local_file
+ * Path to the local file.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_scp_recv($session, $remote_file, $local_file) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Send a file via SCP
+ * @link https://php.net/manual/en/function.ssh2-scp-send.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @param string $local_file
+ * Path to the local file.
+ *
+ * @param string $remote_file
+ * Path to the remote file.
+ *
+ * @param int $create_mode [optional]
+ * The file will be created with the mode specified by
+ * create_mode.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_scp_send($session, $local_file, $remote_file, $create_mode = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Fetch an extended data stream
+ * @link https://php.net/manual/en/function.ssh2-fetch-stream.php
+ * @param resource $channel
+ *
+ * @param int $streamid
+ * An SSH2 channel stream.
+ *
+ * @return resource the requested stream resource.
+ */
+function ssh2_fetch_stream($channel, $streamid) {}
+
+/**
+ * @param array &$var1
+ */
+function ssh2_poll(&$var1) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Initialize SFTP subsystem
+ * @link https://php.net/manual/en/function.ssh2-sftp.php
+ * @param resource $session
+ * An SSH connection link identifier, obtained from a call to
+ * ssh2_connect.
+ *
+ * @return resource|false This method returns an SSH2 SFTP resource for use with
+ * all other ssh2_sftp_*() methods and the
+ * ssh2.sftp:// fopen wrapper.
+ */
+function ssh2_sftp($session) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Rename a remote file
+ * @link https://php.net/manual/en/function.ssh2-sftp-rename.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $from
+ * The current file that is being renamed.
+ *
+ * @param string $to
+ * The new file name that replaces from.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_sftp_rename($sftp, $from, $to) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Delete a file
+ * @link https://php.net/manual/en/function.ssh2-sftp-unlink.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $filename
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_sftp_unlink($sftp, $filename) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Create a directory
+ * @link https://php.net/manual/en/function.ssh2-sftp-mkdir.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $dirname
+ * Path of the new directory.
+ *
+ * @param int $mode [optional]
+ * Permissions on the new directory.
+ *
+ * @param bool $recursive [optional]
+ * If recursive is true any parent directories
+ * required for dirname will be automatically created as well.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_sftp_mkdir($sftp, $dirname, $mode = null, $recursive = null) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Remove a directory
+ * @link https://php.net/manual/en/function.ssh2-sftp-rmdir.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $dirname
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_sftp_rmdir($sftp, $dirname) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Stat a file on a remote filesystem
+ * @link https://php.net/manual/en/function.ssh2-sftp-stat.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $path
+ *
+ * @return array|false See the documentation for stat for details on the
+ * values which may be returned.
+ */
+function ssh2_sftp_stat($sftp, $path) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Stat a symbolic link
+ * @link https://php.net/manual/en/function.ssh2-sftp-lstat.php
+ * @param resource $sftp
+ *
+ * @param string $path
+ * Path to the remote symbolic link.
+ *
+ * @return array See the documentation for stat for details on the
+ * values which may be returned.
+ */
+function ssh2_sftp_lstat($sftp, $path) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Create a symlink
+ * @link https://php.net/manual/en/function.ssh2-sftp-symlink.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $target
+ * Target of the symbolic link.
+ *
+ * @param string $link
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_sftp_symlink($sftp, $target, $link) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Return the target of a symbolic link
+ * @link https://php.net/manual/en/function.ssh2-sftp-readlink.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $link
+ * Path of the symbolic link.
+ *
+ * @return string the target of the symbolic link.
+ */
+function ssh2_sftp_readlink($sftp, $link) {}
+
+/**
+ * (PECL ssh2 >= 0.9.0)
+ * Resolve the realpath of a provided path string
+ * @link https://php.net/manual/en/function.ssh2-sftp-realpath.php
+ * @param resource $sftp
+ * An SSH2 SFTP resource opened by ssh2_sftp.
+ *
+ * @param string $filename
+ *
+ * @return string the real path as a string.
+ */
+function ssh2_sftp_realpath($sftp, $filename) {}
+
+/**
+ * (PECL ssh2 >= 0.10)
+ * Initialize Publickey subsystem
+ * @link https://php.net/manual/en/function.ssh2-publickey-init.php
+ * @param resource $session
+ *
+ * @return resource|false an SSH2 Publickey Subsystem resource for use
+ * with all other ssh2_publickey_*() methods or false on failure.
+ */
+function ssh2_publickey_init($session) {}
+
+/**
+ * (PECL ssh2 >= 0.10)
+ * Add an authorized publickey
+ * @link https://php.net/manual/en/function.ssh2-publickey-add.php
+ * @param resource $pkey
+ * Publickey Subsystem resource created by ssh2_publickey_init.
+ *
+ * @param string $algoname
+ * Publickey algorithm (e.g.): ssh-dss, ssh-rsa
+ *
+ * @param string $blob
+ * Publickey blob as raw binary data
+ *
+ * @param null|bool $overwrite [optional]
+ * If the specified key already exists, should it be overwritten?
+ *
+ * @param null|array $attributes [optional]
+ * Associative array of attributes to assign to this public key.
+ * Refer to ietf-secsh-publickey-subsystem for a list of supported attributes.
+ * To mark an attribute as mandatory, precede its name with an asterisk.
+ * If the server is unable to support an attribute marked mandatory,
+ * it will abort the add process.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_publickey_add($pkey, $algoname, $blob, $overwrite = null, ?array $attributes = null) {}
+
+/**
+ * (PECL ssh2 >= 0.10)
+ * Remove an authorized publickey
+ * @link https://php.net/manual/en/function.ssh2-publickey-remove.php
+ * @param resource $pkey
+ * Publickey Subsystem Resource
+ *
+ * @param string $algoname
+ * Publickey algorithm (e.g.): ssh-dss, ssh-rsa
+ *
+ * @param string $blob
+ * Publickey blob as raw binary data
+ *
+ * @return bool true on success or false on failure.
+ */
+function ssh2_publickey_remove($pkey, $algoname, $blob) {}
+
+/**
+ * (PECL ssh2 >= 0.10)
+ * List currently authorized publickeys
+ * @link https://php.net/manual/en/function.ssh2-publickey-list.php
+ * @param resource $pkey
+ * Publickey Subsystem resource
+ *
+ * @return array a numerically indexed array of keys,
+ * each of which is an associative array containing:
+ * name, blob, and attrs elements.
+ *
+ *
+ *
+ * Publickey elements
+ *
+ * Array Key
+ * Meaning
+ *
+ *
+ * name
+ * Name of algorithm used by this publickey, for example:
+ * ssh-dss or ssh-rsa.
+ *
+ *
+ * blob
+ * Publickey blob as raw binary data.
+ *
+ *
+ * attrs
+ * Attributes assigned to this publickey. The most common
+ * attribute, and the only one supported by publickey version 1
+ * servers, is comment, which may be any freeform
+ * string.
+ *
+ *
+ */
+function ssh2_publickey_list($pkey) {}
+
+/**
+ * (PECL ssh2 >= 0.12)
+ * ssh2_sftp_chmod — Changes file mode
+ * @link https://php.net/manual/en/function.ssh2-sftp-chmod.php
+ * @param resource $sftp An SSH2 SFTP resource opened by ssh2_sftp().
+ * @param string $filename Path to the file.
+ * @param int $mode Permissions on the file. See the chmod() for more details on this parameter.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function ssh2_sftp_chmod($sftp, $filename, $mode) {}
+
+/**
+ * (PECL ssh2 >= 0.12)
+ * ssh2_auth_agent — Authenticate over SSH using the ssh agent
+ * @link https://php.net/manual/en/function.ssh2-auth-agent.php
+ *
+ * Authenticate over SSH using the ssh agent
+ *
+ *
+ * Note: The ssh2_auth_agent() function will only be available when the ssh2 extension is compiled with libssh >= 1.2.3.
+ *
+ * @param resource $session An SSH connection link identifier, obtained from a call to ssh2_connect().
+ * @param string $username Remote user name.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function ssh2_auth_agent($session, $username) {}
+
+/**
+ * (PECL ssh2 >= 1.0)
+ * Send end-of-file signal through an SSH2 channel
+ *
+ * @param resource $channel
+ * The SSH2 channel resource created by ssh2_shell,
+ * ssh2_exec, or ssh2_tunnel.
+ *
+ *
+ * @return bool Returns true on success or false on failure.
+ *
+ * @link https://php.net/manual/en/function.ssh2-send-eof.php
+ */
+function ssh2_send_eof($channel): bool {}
+
+/**
+ * Flag to ssh2_fingerprint requesting hostkey
+ * fingerprint as an MD5 hash.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_FINGERPRINT_MD5', 0);
+
+/**
+ * Flag to ssh2_fingerprint requesting hostkey
+ * fingerprint as an SHA1 hash.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_FINGERPRINT_SHA1', 1);
+
+/**
+ * Flag to ssh2_fingerprint requesting hostkey
+ * fingerprint as a string of hexits.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_FINGERPRINT_HEX', 0);
+
+/**
+ * Flag to ssh2_fingerprint requesting hostkey
+ * fingerprint as a raw string of 8-bit characters.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_FINGERPRINT_RAW', 2);
+
+/**
+ * Flag to ssh2_shell specifying that
+ * width and height
+ * are provided as character sizes.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_TERM_UNIT_CHARS', 0);
+
+/**
+ * Flag to ssh2_shell specifying that
+ * width and height
+ * are provided in pixel units.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_TERM_UNIT_PIXELS', 1);
+
+/**
+ * Default terminal type (e.g. vt102, ansi, xterm, vanilla) requested
+ * by ssh2_shell.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_DEFAULT_TERMINAL', "vanilla");
+
+/**
+ * Default terminal width requested by ssh2_shell.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_DEFAULT_TERM_WIDTH', 80);
+
+/**
+ * Default terminal height requested by ssh2_shell.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_DEFAULT_TERM_HEIGHT', 25);
+
+/**
+ * Default terminal units requested by ssh2_shell.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_DEFAULT_TERM_UNIT', 0);
+
+/**
+ * Flag to ssh2_fetch_stream requesting STDIO subchannel.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_STREAM_STDIO', 0);
+
+/**
+ * Flag to ssh2_fetch_stream requesting STDERR subchannel.
+ * @link https://php.net/manual/en/ssh2.constants.php
+ */
+define('SSH2_STREAM_STDERR', 1);
+define('SSH2_POLLIN', 1);
+define('SSH2_POLLEXT', 2);
+define('SSH2_POLLOUT', 4);
+define('SSH2_POLLERR', 8);
+define('SSH2_POLLHUP', 16);
+define('SSH2_POLLNVAL', 32);
+define('SSH2_POLL_SESSION_CLOSED', 16);
+define('SSH2_POLL_CHANNEL_CLOSED', 128);
+define('SSH2_POLL_LISTENER_CLOSED', 128);
diff --git a/phpstorm-stubs/standard/_standard_manual.php b/phpstorm-stubs/standard/_standard_manual.php
new file mode 100644
index 0000000..9c493ab
--- /dev/null
+++ b/phpstorm-stubs/standard/_standard_manual.php
@@ -0,0 +1,41 @@
+
+ * Halts the execution of the compiler. This can be useful to embed data in PHP scripts, like the installation files.
+ * Byte position of the data start can be determined by the __COMPILER_HALT_OFFSET__ constant
+ * which is defined only if there is a __halt_compiler() presented in the file.
+ * Note: __halt_compiler() can only be used from the outermost scope.
+ * @link https://php.net/manual/en/function.halt-compiler.php
+ * @return void
+ */
+function PS_UNRESERVE_PREFIX___halt_compiler() {}
+
+/**
+ * (PHP 5.1)
+ * Byte position of the data start, defined only if there is a __halt_compiler() presented in the file.
+ * @link https://php.net/manual/en/function.halt-compiler.php
+ * @return void
+ */
+define("__COMPILER_HALT_OFFSET__", 0);
+
+/**
+ * Convert hexadecimal string to its binary representation.
+ *
+ * If the hexadecimal input string is of odd length or invalid hexadecimal string an E_WARNING level error is emitted.
+ *
+ * @link https://php.net/manual/en/function.hex2bin.php
+ * @param string $string Hexadecimal string to convert.
+ * @return string|false The binary representation of the given data or FALSE on failure.
+ * @see bin2hex()
+ * @see unpack()
+ * @since 5.4
+ */
+function hex2bin(string $string): string|false {};
+
+/**
+ * Get or Set the HTTP response code
+ * @param int $response_code The optional response_code will set the response code.
+ * @return int|bool The current response code. By default the return value is int(200).
+ */
+function http_response_code(int $response_code = 0): int|bool {}
diff --git a/phpstorm-stubs/standard/_types.php b/phpstorm-stubs/standard/_types.php
new file mode 100644
index 0000000..17a399f
--- /dev/null
+++ b/phpstorm-stubs/standard/_types.php
@@ -0,0 +1,412 @@
+
+ * Syntax "index => values", separated by commas, define index and values.
+ * index may be of type string or integer. When index is omitted, an integer index is automatically generated,
+ * starting at 0. If index is an integer, next generated index will be the biggest integer index + 1.
+ * Note that when two identical index are defined, the last overwrite the first.
+ *
+ *
+ * Having a trailing comma after the last defined array entry, while unusual, is a valid syntax.
+ *
+ * @return array an array of the parameters. The parameters can be given an index with the => operator.
+ */
+ function PS_UNRESERVE_PREFIX_array(...$_) {}
+
+ /**
+ * Assigns a list of variables in one operation.
+ * @link https://php.net/manual/en/function.list.php
+ * @param mixed $var1 A variable.
+ * @param mixed ...$_ [optional] Another variable ...
+ * @return array the assigned array.
+ */
+ function PS_UNRESERVE_PREFIX_list($var1, ...$_) {}
+
+ /**
+ * Terminates execution of the script. Shutdown functions and object destructors will always be executed even if exit is called.
+ * die is a language construct and it can be called without parentheses if no status is passed.
+ * @link https://php.net/manual/en/function.die.php
+ * @param int|string $status [optional]
+ * If status is a string, this function prints the status just before exiting.
+ *
+ *
+ * If status is an integer, that value will be used as the exit status and not printed. Exit statuses should be in the range 0 to 254,
+ * the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.
+ *
+ *
+ * Note: PHP >= 4.2.0 does NOT print the status if it is an integer.
+ *
+ * @return void
+ */
+ function PS_UNRESERVE_PREFIX_die($status = "") {}
+
+ /**
+ * Terminates execution of the script. Shutdown functions and object destructors will always be executed even if exit is called.
+ * exit is a language construct and it can be called without parentheses if no status is passed.
+ * @link https://php.net/manual/en/function.exit.php
+ * @param int|string $status [optional]
+ * If status is a string, this function prints the status just before exiting.
+ *
+ *
+ * If status is an integer, that value will be used as the exit status and not printed. Exit statuses should be in the range 0 to 254,
+ * the exit status 255 is reserved by PHP and shall not be used. The status 0 is used to terminate the program successfully.
+ *
+ *
+ * Note: PHP >= 4.2.0 does NOT print the status if it is an integer.
+ *
+ * @return void
+ */
+ function PS_UNRESERVE_PREFIX_exit($status = "") {}
+
+ /**
+ * Determine whether a variable is considered to be empty. A variable is considered empty if it does not exist or if its value
+ * equals FALSE. empty() does not generate a warning if the variable does not exist.
+ * @link https://php.net/manual/en/function.empty.php
+ * @param mixed $var Variable to be checked.
+ * Note: Prior to PHP 5.5, empty() only supports variables; anything else will result in a parse error. In other words,
+ * the following will not work: empty(trim($name)). Instead, use trim($name) == false.
+ *
+ *
+ * No warning is generated if the variable does not exist. That means empty() is essentially the concise equivalent
+ * to !isset($var) || $var == false.
+ *
+ * @return bool FALSE if var exists and has a non-empty, non-zero value. Otherwise returns TRUE.
+ *
+ * The following things are considered to be empty:
+ *
+ * - "" (an empty string)
+ * - 0 (0 as an integer)
+ * - 0.0 (0 as a float)
+ * - "0" (0 as a string)
+ * - NULL
+ * - FALSE
+ * - array() (an empty array)
+ * - $var; (a variable declared, but without a value)
+ *
+ *
+ */
+ function PS_UNRESERVE_PREFIX_empty($var) {}
+
+ /**
+ * Determine if a variable is set and is not NULL.
+ * If a variable has been unset with unset(), it will no longer be set. isset() will return FALSE if testing a variable
+ * that has been set to NULL. Also note that a null character ("\0") is not equivalent to the PHP NULL constant.
+ * If multiple parameters are supplied then isset() will return TRUE only if all of the parameters are set.
+ * Evaluation goes from left to right and stops as soon as an unset variable is encountered.
+ * @link https://php.net/manual/en/function.isset.php
+ * @param mixed $var The variable to be checked.
+ * @param mixed ...$_ [optional] Another variable ...
+ * @return bool Returns TRUE if var exists and has value other than NULL, FALSE otherwise.
+ */
+ function PS_UNRESERVE_PREFIX_isset($var, ...$_) {}
+
+ /**
+ * Destroys the specified variables.
+ * The behavior of unset() inside of a function can vary depending on what type of variable you are attempting to destroy.
+ * @link https://php.net/manual/en/function.unset.php
+ * @param mixed $var The variable to be unset.
+ * @param mixed ...$_ [optional] Another variable ...
+ * @return void
+ */
+ function PS_UNRESERVE_PREFIX_unset($var, ...$_) {}
+
+ /**
+ * Evaluates the given code as PHP.
+ * Caution: The eval() language construct is very dangerous because it allows execution of arbitrary PHP code. Its use thus is
+ * discouraged. If you have carefully verified that there is no other option than to use this construct, pay special attention not to
+ * pass any user provided data into it without properly validating it beforehand.
+ * @link https://php.net/manual/en/function.eval.php
+ * @param string $code
+ * Valid PHP code to be evaluated.
+ *
+ *
+ * The code must not be wrapped in opening and closing PHP tags, i.e. 'echo "Hi!";' must be passed instead of ''.
+ * It is still possible to leave and re-enter PHP mode though using the appropriate PHP tags, e.g.
+ * 'echo "In PHP mode!"; ?>In HTML mode!
+ *
+ * Apart from that the passed code must be valid PHP. This includes that all statements must be properly terminated using a semicolon.
+ * 'echo "Hi!"' for example will cause a parse error, whereas 'echo "Hi!";' will work.
+ *
+ *
+ * A return statement will immediately terminate the evaluation of the code.
+ *
+ *
+ * The code will be executed in the scope of the code calling eval(). Thus any variables defined or changed in the eval()
+ * call will remain visible after it terminates.
+ *
+ * @return mixed NULL unless return is called in the evaluated code, in which case the value passed to return is returned.
+ * As of PHP 7, if there is a parse error in the evaluated code, eval() throws a ParseError exception. Before PHP 7, in this
+ * case eval() returned FALSE and execution of the following code continued normally. It is not possible to catch a parse
+ * error in eval() using set_error_handler().
+ */
+ function PS_UNRESERVE_PREFIX_eval($code) {}
+
+ /**
+ * Generator objects are returned from generators, cannot be instantiated via new.
+ * @link https://secure.php.net/manual/en/class.generator.php
+ * @link https://wiki.php.net/rfc/generators
+ *
+ * @template-covariant TKey
+ * @template-covariant TYield
+ * @template TSend
+ * @template-covariant TReturn
+ *
+ * @template-implements Iterator
+ */
+ final class Generator implements Iterator
+ {
+ /**
+ * Throws an exception if the generator is currently after the first yield.
+ * @return void
+ */
+ public function rewind(): void {}
+
+ /**
+ * Returns false if the generator has been closed, true otherwise.
+ * @return bool
+ */
+ public function valid(): bool {}
+
+ /**
+ * Returns whatever was passed to yield or null if nothing was passed or the generator is already closed.
+ * @return TYield
+ */
+ public function current(): mixed {}
+
+ /**
+ * Returns the yielded key or, if none was specified, an auto-incrementing key or null if the generator is already closed.
+ * @return TKey
+ */
+ #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: 'string|float|int|bool|null')]
+ public function key() {}
+
+ /**
+ * Resumes the generator (unless the generator is already closed).
+ * @return void
+ */
+ public function next(): void {}
+
+ /**
+ * Sets the return value of the yield expression and resumes the generator (unless the generator is already closed).
+ * @param TSend $value
+ * @return TYield|null
+ */
+ public function send(mixed $value): mixed {}
+
+ /**
+ * Throws an exception at the current suspension point in the generator.
+ * @param Throwable $exception
+ * @return TYield
+ */
+ public function PS_UNRESERVE_PREFIX_throw(Throwable $exception): mixed {}
+
+ /**
+ * Returns whatever was passed to return or null if nothing.
+ * Throws an exception if the generator is still valid.
+ * @link https://wiki.php.net/rfc/generator-return-expressions
+ * @return TReturn
+ * @since 7.0
+ */
+ public function getReturn(): mixed {}
+
+ /**
+ * Serialize callback
+ * Throws an exception as generators can't be serialized.
+ * @link https://php.net/manual/en/generator.wakeup.php
+ * @return void
+ */
+ public function __wakeup() {}
+ }
+
+ class ClosedGeneratorException extends Exception {}
+}
+
+namespace ___PHPSTORM_HELPERS {
+ class PS_UNRESERVE_PREFIX_this {}
+
+ class PS_UNRESERVE_PREFIX_static {}
+
+ class object
+ {
+ /**
+ * PHP 5 allows developers to declare constructor methods for classes.
+ * Classes which have a constructor method call this method on each newly-created object,
+ * so it is suitable for any initialization that the object may need before it is used.
+ *
+ * Note: Parent constructors are not called implicitly if the child class defines a constructor.
+ * In order to run a parent constructor, a call to parent::__construct() within the child constructor is required.
+ *
+ * param [ mixed $args [, $... ]]
+ * @link https://php.net/manual/en/language.oop5.decon.php
+ */
+ public function __construct() {}
+
+ /**
+ * PHP 5 introduces a destructor concept similar to that of other object-oriented languages, such as C++.
+ * The destructor method will be called as soon as all references to a particular object are removed or
+ * when the object is explicitly destroyed or in any order in shutdown sequence.
+ *
+ * Like constructors, parent destructors will not be called implicitly by the engine.
+ * In order to run a parent destructor, one would have to explicitly call parent::__destruct() in the destructor body.
+ *
+ * Note: Destructors called during the script shutdown have HTTP headers already sent.
+ * The working directory in the script shutdown phase can be different with some SAPIs (e.g. Apache).
+ *
+ * Note: Attempting to throw an exception from a destructor (called in the time of script termination) causes a fatal error.
+ *
+ * @return void
+ * @link https://php.net/manual/en/language.oop5.decon.php
+ */
+ public function __destruct() {}
+
+ /**
+ * is triggered when invoking inaccessible methods in an object context.
+ *
+ * @param string $name
+ * @param array $arguments
+ * @return mixed
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods
+ */
+ public function __call(string $name, array $arguments) {}
+
+ /**
+ * is triggered when invoking inaccessible methods in a static context.
+ *
+ * @param string $name
+ * @param array $arguments
+ * @return mixed
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.methods
+ */
+ public static function __callStatic(string $name, array $arguments) {}
+
+ /**
+ * is utilized for reading data from inaccessible members.
+ *
+ * @param string $name
+ * @return mixed
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
+ */
+ public function __get(string $name) {}
+
+ /**
+ * run when writing data to inaccessible members.
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return void
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
+ */
+ public function __set(string $name, $value): void {}
+
+ /**
+ * is triggered by calling isset() or empty() on inaccessible members.
+ *
+ * @param string $name
+ * @return bool
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
+ */
+ public function __isset(string $name): bool {}
+
+ /**
+ * is invoked when unset() is used on inaccessible members.
+ *
+ * @param string $name
+ * @return void
+ * @link https://php.net/manual/en/language.oop5.overloading.php#language.oop5.overloading.members
+ */
+ public function __unset(string $name): void {}
+
+ /**
+ * serialize() checks if your class has a function with the magic name __sleep.
+ * If so, that function is executed prior to any serialization.
+ * It can clean up the object and is supposed to return an array with the names of all variables of that object that should be serialized.
+ * If the method doesn't return anything then NULL is serialized and E_NOTICE is issued.
+ * The intended use of __sleep is to commit pending data or perform similar cleanup tasks.
+ * Also, the function is useful if you have very large objects which do not need to be saved completely.
+ *
+ * @return string[]
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep
+ */
+ public function __sleep(): array {}
+
+ /**
+ * unserialize() checks for the presence of a function with the magic name __wakeup.
+ * If present, this function can reconstruct any resources that the object may have.
+ * The intended use of __wakeup is to reestablish any database connections that may have been lost during
+ * serialization and perform other reinitialization tasks.
+ *
+ * @return void
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.sleep
+ */
+ public function __wakeup(): void {}
+
+ /**
+ * The __toString method allows a class to decide how it will react when it is converted to a string.
+ *
+ * @return string
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.tostring
+ */
+ public function __toString(): string {}
+
+ /**
+ * The __invoke method is called when a script tries to call an object as a function.
+ *
+ * @return mixed
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.invoke
+ */
+ public function __invoke() {}
+
+ /**
+ * This method is called by var_dump() when dumping an object to get the properties that should be shown.
+ * If the method isn't defined on an object, then all public, protected and private properties will be shown.
+ *
+ * @return array|null
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.debuginfo
+ */
+ public function __debugInfo(): ?array {}
+
+ /**
+ * This static method is called for classes exported by var_export() since PHP 5.1.0.
+ * The only parameter of this method is an array containing exported properties in the form array('property' => value, ...).
+ *
+ * @param array $an_array
+ * @return object
+ * @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.set-state
+ */
+ public static function __set_state(array $an_array): object {}
+
+ /**
+ * When an object is cloned, PHP 5 will perform a shallow copy of all of the object's properties.
+ * Any properties that are references to other variables, will remain references.
+ * Once the cloning is complete, if a __clone() method is defined,
+ * then the newly created object's __clone() method will be called, to allow any necessary properties that need to be changed.
+ * NOT CALLABLE DIRECTLY.
+ *
+ * @return void
+ * @link https://php.net/manual/en/language.oop5.cloning.php
+ */
+ public function __clone(): void {}
+
+ /**
+ * Returns array containing all the necessary state of the object.
+ * @since 7.4
+ * @link https://wiki.php.net/rfc/custom_object_serialization
+ */
+ public function __serialize(): array {}
+
+ /**
+ * Restores the object state from the given data array.
+ * @param array $data
+ * @since 7.4
+ * @link https://wiki.php.net/rfc/custom_object_serialization
+ */
+ public function __unserialize(array $data): void {}
+ }
+}
diff --git a/phpstorm-stubs/standard/basic.php b/phpstorm-stubs/standard/basic.php
new file mode 100644
index 0000000..50fb3ea
--- /dev/null
+++ b/phpstorm-stubs/standard/basic.php
@@ -0,0 +1,284 @@
+
+ * This parameter is only the filename of the
+ * extension to load which also depends on your platform. For example,
+ * the sockets extension (if compiled
+ * as a shared module, not the default!) would be called
+ * sockets.so on Unix platforms whereas it is called
+ * php_sockets.dll on the Windows platform.
+ *
+ *
+ * The directory where the extension is loaded from depends on your
+ * platform:
+ *
+ *
+ * Windows - If not explicitly set in the php.ini, the extension is
+ * loaded from C:\php4\extensions\ (PHP 4) or
+ * C:\php5\ (PHP 5) by default.
+ *
+ *
+ * Unix - If not explicitly set in the php.ini, the default extension
+ * directory depends on
+ * whether PHP has been built with --enable-debug
+ * or not
+ * @return bool TRUE on success or FALSE on failure. If the functionality of loading modules is not available
+ * or has been disabled (either by setting
+ * enable_dl off or by enabling safe mode
+ * in php.ini) an E_ERROR is emitted
+ * and execution is stopped. If dl fails because the
+ * specified library couldn't be loaded, in addition to FALSE an
+ * E_WARNING message is emitted.
+ * Loads a PHP extension at runtime
+ * @link https://php.net/manual/en/function.dl.php
+ */
+#[Deprecated(since: '5.3')]
+function dl(string $extension_filename): bool {}
+
+/**
+ * Sets the process title
+ * @link https://php.net/manual/en/function.cli-set-process-title.php
+ * @param string $title
+ * The new title.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.5
+ */
+function cli_set_process_title(string $title): bool {}
+
+/**
+ * Returns the current process title, as set by cli_set_process_title(). Note that this may not exactly match what is shown in ps or top, depending on your operating system.
+ *
+ * @link https://php.net/manual/en/function.cli-get-process-title.php
+ * @return string|null Return a string with the current process title or NULL on error.
+ * @since 5.5
+ */
+#[Pure(true)]
+function cli_get_process_title(): ?string {}
+
+/**
+ * Verify that the contents of a variable is accepted by the iterable pseudo-type, i.e. that it is an array or an object implementing Traversable
+ * @param mixed $value
+ * @return bool
+ * @since 7.1
+ * @link https://php.net/manual/en/function.is-iterable.php
+ */
+#[Pure]
+function is_iterable(mixed $value): bool {}
+
+/**
+ * Encodes an ISO-8859-1 string to UTF-8
+ * @link https://php.net/manual/en/function.utf8-encode.php
+ * @param string $string
+ * An ISO-8859-1 string.
+ *
+ * @return string the UTF-8 translation of data.
+ * @deprecated 8.2 Consider to use {@link mb_convert_encoding}, {@link UConverter::transcode()} or {@link iconv()}
+ */
+#[Pure]
+#[Deprecated(replacement: "mb_convert_encoding(%parameter0%, 'UTF-8', 'ISO-8859-1')", since: "8.2")]
+function utf8_encode(string $string): string {}
+
+/**
+ * Converts a string with ISO-8859-1 characters encoded with UTF-8
+ * to single-byte ISO-8859-1
+ * @link https://php.net/manual/en/function.utf8-decode.php
+ * @param string $string
+ * An UTF-8 encoded string.
+ *
+ * @return string the ISO-8859-1 translation of data.
+ * @deprecated 8.2 Consider to use {@link mb_convert_encoding}, {@link UConverter::transcode()} or {@link iconv()}
+ */
+#[Pure]
+#[Deprecated(replacement: "mb_convert_encoding(%parameter0%, 'ISO-8859-1', 'UTF-8')", since: "8.2")]
+function utf8_decode(string $string): string {}
+
+/**
+ * Clear the most recent error
+ * @link https://php.net/manual/en/function.error-clear-last.php
+ * @return void
+ * @since 7.0
+ */
+function error_clear_last(): void {}
+
+/**
+ * Get process codepage
+ * @link https://php.net/manual/en/function.sapi-windows-cp-get
+ * @param string $kind The kind of operating system codepage to get, either 'ansi' or 'oem'. Any other value refers to the current codepage of the process.
+ * @return int
+ * If kind is 'ansi', the current ANSI code page of the operating system is returned.
+ * If kind is 'oem', the current OEM code page of the operating system is returned.
+ * Otherwise, the current codepage of the process is returned.
+ *
+ * @since 7.1
+ */
+function sapi_windows_cp_get(string $kind = ""): int {}
+
+/**
+ * Set process codepage
+ * @link https://php.net/manual/en/function.sapi-windows-cp-set
+ * @param int $codepage A codepage identifier.
+ * @return bool Returns true on success or false on failure.
+ * @since 7.1
+ */
+function sapi_windows_cp_set(int $codepage): bool {}
+
+/**
+ * Convert string from one codepage to another
+ * @link https://php.net/manual/en/function.sapi-windows-cp-conv.php
+ * @param int|string $in_codepage The codepage of the subject string. Either the codepage name or identifier.
+ * @param int|string $out_codepage The codepage to convert the subject string to. Either the codepage name or identifier.
+ * @param string $subject The string to convert.
+ * @return string|null The subject string converted to out_codepage, or null on failure.
+ * @since 7.1
+ */
+function sapi_windows_cp_conv(int|string $in_codepage, int|string $out_codepage, string $subject): ?string {}
+
+/**
+ * Indicates whether the codepage is utf-8 compatible
+ * @link https://www.php.net/manual/en/function.sapi-windows-cp-is-utf8.php
+ * @return bool
+ * @since 7.1
+ */
+function sapi_windows_cp_is_utf8(): bool {}
+
+/**
+ * Get or set VT100 support for the specified stream associated to an output buffer of a Windows console.
+ *
+ * At startup, PHP tries to enable the VT100 feature of the STDOUT/STDERR streams.
+ * By the way, if those streams are redirected to a file, the VT100 features may not be enabled.
+ *
+ * If VT100 support is enabled, it is possible to use control sequences as they are known from the VT100 terminal.
+ * They allow the modification of the terminal's output. On Windows these sequences are called Console Virtual Terminal Sequences.
+ *
+ * Warning This function uses the ENABLE_VIRTUAL_TERMINAL_PROCESSING flag implemented in the Windows 10 API, so the VT100 feature may not be available on older Windows versions.
+ *
+ * @link https://php.net/manual/en/function.sapi-windows-vt100-support.php
+ * @param resource $stream The stream on which the function will operate.
+ * @param bool|null $enable
+ * If bool, the VT100 feature will be enabled (if true) or disabled (if false).
+ *
+ *
+ * If enable is null, the function returns true if the stream stream has VT100 control codes enabled, false otherwise.
+ *
+ *
+ * If enable is a bool, the function will try to enable or disable the VT100 features of the stream stream.
+ * If the feature has been successfully enabled (or disabled), the function will return true, or false otherwise.
+ *
+ * @return bool
+ * If enable is null: returns true if the VT100 feature is enabled, false otherwise.
+ *
+ *
+ * If enable is a bool: Returns true on success or false on failure.
+ *
+ * @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
+ * A callback function to set or remove. If set, this function will be called whenever a CTRL+C or CTRL+BREAK event occurs.
+ *
+ *
+ * The function is supposed to have the following signature:
+ *
+ * handler(int $event): void
+ *
+ * event The CTRL event which has been received; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
+ *
+ *
+ * Setting a null handler causes the process to ignore CTRL+C events, but not CTRL+BREAK events.
+ *
+ * @param bool $add If true, the handler is set. If false, the handler is removed.
+ * @return bool TRUE on success or FALSE 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; either PHP_WINDOWS_EVENT_CTRL_C or PHP_WINDOWS_EVENT_CTRL_BREAK.
+ * @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 TRUE on success or FALSE on failure.
+ * @since 7.4
+ */
+function sapi_windows_generate_ctrl_event(int $event, int $pid = 0): bool {}
+
+/**
+ * The full path and filename of the file. If used inside an include,
+ * the name of the included file is returned.
+ * Since PHP 4.0.2, __FILE__ always contains an
+ * absolute path with symlinks resolved whereas in older versions it contained relative path
+ * under some circumstances.
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__FILE__', '', true);
+
+/**
+ * The current line number of the file.
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__LINE__', 0, true);
+
+/**
+ * The class name. (Added in PHP 4.3.0) As of PHP 5 this constant
+ * returns the class name as it was declared (case-sensitive). In PHP
+ * 4 its value is always lowercased. The class name includes the namespace
+ * it was declared in (e.g. Foo\Bar).
+ * Note that as of PHP 5.4 __CLASS__ works also in traits. When used
+ * in a trait method, __CLASS__ is the name of the class the trait
+ * is used in.
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__CLASS__', '', true);
+
+/**
+ * The function name. (Added in PHP 4.3.0) As of PHP 5 this constant
+ * returns the function name as it was declared (case-sensitive). In
+ * PHP 4 its value is always lowercased.
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__FUNCTION__', '', true);
+
+/**
+ * The class method name. (Added in PHP 5.0.0) The method name is
+ * returned as it was declared (case-sensitive).
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__METHOD__', '', true);
+
+/**
+ * The trait name. (Added in PHP 5.4.0) As of PHP 5.4 this constant
+ * returns the trait as it was declared (case-sensitive). The trait name includes the namespace
+ * it was declared in (e.g. Foo\Bar).
+ * @since 5.4
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__TRAIT__', '', true);
+
+/**
+ * The directory of the file. If used inside an include,
+ * the directory of the included file is returned. This is equivalent
+ * to `dirname(__FILE__)`. This directory name
+ * does not have a trailing slash unless it is the root directory.
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__DIR__', '', true);
+
+/**
+ * The name of the current namespace (case-sensitive). This constant
+ * is defined in compile-time (Added in PHP 5.3.0).
+ * @link https://php.net/manual/en/language.constants.predefined.php
+ */
+define('__NAMESPACE__', '', true);
diff --git a/phpstorm-stubs/standard/password.php b/phpstorm-stubs/standard/password.php
new file mode 100644
index 0000000..b3381b8
--- /dev/null
+++ b/phpstorm-stubs/standard/password.php
@@ -0,0 +1,213 @@
+
+ * PASSWORD_BCRYPT is used to create new password
+ * hashes using the CRYPT_BLOWFISH algorithm.
+ *
+ *
+ * This will always result in a hash using the "$2y$" crypt format,
+ * which is always 60 characters wide.
+ *
+ *
+ * Supported Options:
+ *
+ *
+ * -
+ *
+ * salt - to manually provide a salt to use when hashing the password.
+ * Note that this will override and prevent a salt from being automatically generated.
+ *
+ *
+ * If omitted, a random salt will be generated by {@link "https://secure.php.net/manual/en/function.password-hash.php" password_hash()} for
+ * each password hashed. This is the intended mode of operation.
+ *
+ *
+ * -
+ *
+ * cost - which denotes the algorithmic cost that should be used.
+ * Examples of these values can be found on the {@link "https://secure.php.net/manual/en/function.crypt.php crypt()"} page.
+ *
+ *
+ * If omitted, a default value of 10 will be used. This is a good
+ * baseline cost, but you may want to consider increasing it depending on your hardware.
+ *
+ *
+ *
+ * @link https://secure.php.net/manual/en/password.constants.php
+ */
+
+use JetBrains\PhpStorm\ArrayShape;
+use JetBrains\PhpStorm\Internal\LanguageLevelTypeAware;
+
+define("PASSWORD_DEFAULT", "2y");
+
+/**
+ *
+ * The default cost used for the BCRYPT hashing algorithm.
+ *
+ *
+ * Values for this constant:
+ *
+ *
+ * -
+ * PHP 5.6.0 - PASSWORD_BCRYPT_DEFAULT_COST
+ *
+ *
+ */
+define("PASSWORD_BCRYPT_DEFAULT_COST", 10);
+
+/**
+ *
+ * The default algorithm to use for hashing if no algorithm is provided.
+ * This may change in newer PHP releases when newer, stronger hashing
+ * algorithms are supported.
+ *
+ *
+ * It is worth noting that over time this constant can (and likely will)
+ * change. Therefore you should be aware that the length of the resulting
+ * hash can change. Therefore, if you use PASSWORD_DEFAULT
+ * you should store the resulting hash in a way that can store more than 60
+ * characters (255 is the recommended width).
+ *
+ *
+ * Values for this constant:
+ *
+ *
+ * -
+ * PHP 5.5.0 - PASSWORD_BCRYPT
+ *
+ *
+ */
+define("PASSWORD_BCRYPT", '2y');
+
+/**
+ * PASSWORD_ARGON2I is used to create new password hashes using the Argon2i algorithm.
+ *
+ * Supported Options:
+ *
+ * - memory_cost (integer) - Maximum memory (in bytes) that may be used to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_MEMORY_COST.
+ *
+ * - time_cost (integer) - Maximum amount of time it may take to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_TIME_COST.
+ *
+ * - threads (integer) - Number of threads to use for computing the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_THREADS.
+ *
+ * Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PASSWORD_ARGON2I', 'argon2i');
+
+/**
+ * PASSWORD_ARGON2ID is used to create new password hashes using the Argon2id algorithm.
+ *
+ * Supported Options:
+ *
+ * - memory_cost (integer) - Maximum memory (in bytes) that may be used to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_MEMORY_COST.
+ *
+ * - time_cost (integer) - Maximum amount of time it may take to compute the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_TIME_COST.
+ *
+ * - threads (integer) - Number of threads to use for computing the Argon2 hash. Defaults to PASSWORD_ARGON2_DEFAULT_THREADS.
+ *
+ * Available as of PHP 7.3.0.
+ * @since 7.3
+ */
+define('PASSWORD_ARGON2ID', 'argon2id');
+
+/**
+ * Default amount of memory in bytes that Argon2lib will use while trying to compute a hash.
+ * Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PASSWORD_ARGON2_DEFAULT_MEMORY_COST', 65536);
+
+/**
+ * Default amount of time that Argon2lib will spend trying to compute a hash.
+ * Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+define('PASSWORD_ARGON2_DEFAULT_TIME_COST', 4);
+
+/**
+ * Default number of threads that Argon2lib will use.
+ * Available as of PHP 7.2.0.
+ * @since 7.2
+ */
+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
+ * @param string $hash A hash created by password_hash().
+ * @return array|null Returns an associative array with three elements:
+ *
+ * -
+ * algo, which will match a
+ * {@link https://secure.php.net/manual/en/password.constants.php password algorithm constant}
+ *
+ * -
+ * algoName, which has the human readable name of the algorithm
+ *
+ * -
+ * options, which includes the options
+ * provided when calling @link https://secure.php.net/manual/en/function.password-hash.php" password_hash()
+ *
+ *
+ * @since 5.5
+ */
+#[ArrayShape(["algo" => "int", "algoName" => "string", "options" => "array"])]
+#[LanguageLevelTypeAware(['8.0' => 'array'], default: '?array')]
+function password_get_info(string $hash) {}
+
+/**
+ * (PHP 5 >= 5.5.0, PHP 5)
+ *
+ * Creates a password hash.
+ * @link https://secure.php.net/manual/en/function.password-hash.php
+ * @param string $password The user's password.
+ * @param string|int|null $algo A password algorithm constant denoting the algorithm to use when hashing the password.
+ * @param array $options [optional] An associative array containing options. See the password algorithm constants for documentation on the supported options for each algorithm.
+ * If omitted, a random salt will be created and the default cost will be used.
+ * Warning
+ *
+ * The salt option has been deprecated as of PHP 7.0.0. It is now
+ * preferred to simply use the salt that is generated by default.
+ *
+ * @return string|false|null Returns the hashed password, or FALSE on failure, or null if the algorithm is invalid
+ * @since 5.5
+ */
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false|null")]
+function password_hash(string $password, string|int|null $algo, array $options = []) {}
+
+/**
+ * Checks if the given hash matches the given options.
+ * @link https://secure.php.net/manual/en/function.password-needs-rehash.php
+ * @param string $hash A hash created by password_hash().
+ * @param string|int|null $algo A password algorithm constant denoting the algorithm to use when hashing the password.
+ * @param array $options [optional] An associative array containing options. See the password algorithm constants for documentation on the supported options for each algorithm.
+ * @return bool Returns TRUE if the hash should be rehashed to match the given algo and options, or FALSE otherwise.
+ * @since 5.5
+ */
+function password_needs_rehash(string $hash, string|int|null $algo, array $options = []): bool {}
+
+/**
+ * Checks if the given hash matches the given options.
+ * @link https://secure.php.net/manual/en/function.password-verify.php
+ * @param string $password The user's password.
+ * @param string $hash A hash created by password_hash().
+ * @return bool Returns TRUE if the password and hash match, or FALSE otherwise.
+ * @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 {}
+// End of password v.
diff --git a/phpstorm-stubs/standard/standard_0.php b/phpstorm-stubs/standard/standard_0.php
new file mode 100644
index 0000000..de46f97
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_0.php
@@ -0,0 +1,1437 @@
+ 'string'], default: '')]
+ public $filtername;
+
+ #[LanguageLevelTypeAware(['8.1' => 'mixed'], default: '')]
+ public $params;
+ public $stream;
+
+ /**
+ * @link https://php.net/manual/en/php-user-filter.filter.php
+ * @param resource $in is a resource pointing to a bucket brigadebucket objects containing data to be filtered.
+ * @param resource $out is a resource pointing to a second bucket brigade into which your modified buckets should be placed.
+ * @param int &$consumed which must always be declared by reference, should be incremented by the length of the data which your filter reads in and alters. In most cases this means you will increment consumed by $bucket->datalen for each $bucket.
+ * @param bool $closing If the stream is in the process of closing (and therefore this is the last pass through the filterchain), the closing parameter will be set to TRUE
+ * @return int
+ * The filter() method must return one of
+ * three values upon completion.
+ *
+ *
+ *
+ *
+ * Return Value
+ * Meaning
+ *
+ *
+ *
+ *
+ *
+ *
+ * PSFS_PASS_ON
+ *
+ * Filter processed successfully with data available in the
+ * out bucket brigade.
+ *
+ *
+ *
+ *
+ * PSFS_FEED_ME
+ *
+ * Filter processed successfully, however no data was available to
+ * return. More data is required from the stream or prior filter.
+ *
+ *
+ *
+ *
+ * PSFS_ERR_FATAL (default)
+ *
+ * The filter experienced an unrecoverable error and cannot continue.
+ *
+ *
+ */
+ #[TentativeType]
+ public function filter(
+ $in,
+ $out,
+ &$consumed,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $closing
+ ): int {}
+
+ /**
+ * @link https://php.net/manual/en/php-user-filter.oncreate.php
+ * @return bool
+ */
+ #[TentativeType]
+ public function onCreate(): bool {}
+
+ /**
+ * @link https://php.net/manual/en/php-user-filter.onclose.php
+ */
+ #[TentativeType]
+ public function onClose(): void {}
+}
+
+/**
+ * Instances of Directory are created by calling the dir() function, not by the new operator.
+ */
+class Directory
+{
+ /**
+ * @var string The directory that was opened.
+ */
+ #[PhpStormStubsElementAvailable(to: '8.0')]
+ public $path;
+
+ /**
+ * @var string The directory that was opened.
+ */
+ #[PhpStormStubsElementAvailable(from: '8.1')]
+ public readonly string $path;
+
+ /**
+ * @var resource Can be used with other directory functions such as {@see readdir()}, {@see rewinddir()} and {@see closedir()}.
+ */
+ #[PhpStormStubsElementAvailable(to: '8.0')]
+ public $handle;
+
+ /**
+ * @var resource Can be used with other directory functions such as {@see readdir()}, {@see rewinddir()} and {@see closedir()}.
+ */
+ #[PhpStormStubsElementAvailable(from: '8.1')]
+ public readonly mixed $handle;
+
+ /**
+ * Close directory handle.
+ * Same as closedir(), only dir_handle defaults to $this.
+ * @param resource $dir_handle [optional]
+ * @link https://secure.php.net/manual/en/directory.close.php
+ */
+ #[TentativeType]
+ public function close(#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $dir_handle = null): void {}
+
+ /**
+ * Rewind directory handle.
+ * Same as rewinddir(), only dir_handle defaults to $this.
+ * @param resource $dir_handle [optional]
+ * @link https://secure.php.net/manual/en/directory.rewind.php
+ */
+ #[TentativeType]
+ public function rewind(#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $dir_handle = null): void {}
+
+ /**
+ * Read entry from directory handle.
+ * Same as readdir(), only dir_handle defaults to $this.
+ * @param resource $dir_handle [optional]
+ * @return string|false
+ * @link https://secure.php.net/manual/en/directory.read.php
+ */
+ #[TentativeType]
+ public function read(#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $dir_handle = null): string|false {}
+}
+
+/**
+ * Returns the value of a constant
+ * @link https://php.net/manual/en/function.constant.php
+ * @param string $name
+ * The constant name.
+ *
+ * @return mixed the value of the constant.
+ * @throws Error If the constant is not defined
+ */
+#[Pure(true)]
+function constant(string $name): mixed {}
+
+/**
+ * Convert binary data into hexadecimal representation
+ * @link https://php.net/manual/en/function.bin2hex.php
+ * @param string $string
+ * A string.
+ *
+ * @return string the hexadecimal representation of the given string.
+ */
+#[Pure]
+function bin2hex(string $string): string {}
+
+/**
+ * Delay execution
+ * @link https://php.net/manual/en/function.sleep.php
+ * @param int<0,max> $seconds
+ * Halt time in seconds.
+ *
+ * @return int|false zero on success, or false on errors. If the call was interrupted
+ * by a signal, sleep returns the number of seconds left
+ * to sleep.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function sleep(int $seconds) {}
+
+/**
+ * Delay execution in microseconds
+ * @link https://php.net/manual/en/function.usleep.php
+ * @param int<0,max> $microseconds
+ * Halt time in micro seconds. A micro second is one millionth of a
+ * second.
+ *
+ * @return void
+ */
+function usleep(int $microseconds): void {}
+
+/**
+ * Delay for a number of seconds and nanoseconds
+ * @link https://php.net/manual/en/function.time-nanosleep.php
+ * @param positive-int $seconds
+ * Must be a positive integer.
+ *
+ * @param positive-int $nanoseconds
+ * Must be a positive integer less than 1 billion.
+ *
+ * @return bool|array true on success or false on failure.
+ *
+ * If the delay was interrupted by a signal, an associative array will be
+ * returned with the components:
+ * seconds - number of seconds remaining in
+ * the delay
+ * nanoseconds - number of nanoseconds
+ * remaining in the delay
+ *
+ */
+#[ArrayShape(["seconds" => "int", "nanoseconds" => "int"])]
+function time_nanosleep(int $seconds, int $nanoseconds): array|bool {}
+
+/**
+ * Make the script sleep until the specified time
+ * @link https://php.net/manual/en/function.time-sleep-until.php
+ * @param float $timestamp
+ * The timestamp when the script should wake.
+ *
+ * @return bool true on success or false on failure.
+ */
+function time_sleep_until(float $timestamp): bool {}
+
+/**
+ * Parse a time/date generated with strftime
+ * @link https://php.net/manual/en/function.strptime.php
+ * @param string $timestamp
+ * The string to parse (e.g. returned from strftime)
+ *
+ * @param string $format
+ * The format used in date (e.g. the same as
+ * used in strftime).
+ *
+ *
+ * For more information about the format options, read the
+ * strftime page.
+ *
+ * @return array|false an array or false on failure.
+ *
+ *
+ * The following parameters are returned in the array
+ *
+ * parameters
+ * Description
+ *
+ *
+ * "tm_sec"
+ * Seconds after the minute (0-61)
+ *
+ *
+ * "tm_min"
+ * Minutes after the hour (0-59)
+ *
+ *
+ * "tm_hour"
+ * Hour since midnight (0-23)
+ *
+ *
+ * "tm_mday"
+ * Day of the month (1-31)
+ *
+ *
+ * "tm_mon"
+ * Months since January (0-11)
+ *
+ *
+ * "tm_year"
+ * Years since 1900
+ *
+ *
+ * "tm_wday"
+ * Days since Sunday (0-6)
+ *
+ *
+ * "tm_yday"
+ * Days since January 1 (0-365)
+ *
+ *
+ * "unparsed"
+ * the date part which was not
+ * recognized using the specified format
+ *
+ *
+ *
+ * @deprecated 8.1
+ */
+#[Pure(true)]
+#[Deprecated(since: '8.1')]
+#[ArrayShape([
+ 'tm_sec' => 'int',
+ 'tm_min' => 'int',
+ 'tm_hour' => 'int',
+ 'tm_mday' => 'int',
+ 'tm_mon' => 'int',
+ 'tm_year' => 'int',
+ 'tm_wday' => 'int',
+ 'tm_yday' => 'int',
+ 'unparsed' => 'string'
+])]
+function strptime(string $timestamp, string $format): array|false {}
+
+/**
+ * Flush system output buffer
+ * @link https://php.net/manual/en/function.flush.php
+ * @return void
+ */
+function flush(): void {}
+
+/**
+ * Wraps a string to a given number of characters
+ * @link https://php.net/manual/en/function.wordwrap.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $width [optional]
+ * The number of characters at which the string will be wrapped.
+ *
+ * @param string $break [optional]
+ * The line is broken using the optional
+ * break parameter.
+ *
+ * @param bool $cut_long_words [optional]
+ * If the cut is set to true, the string is
+ * always wrapped at or before the specified width. So if you have
+ * a word that is larger than the given width, it is broken apart.
+ * (See second example).
+ *
+ * @return string the given string wrapped at the specified length.
+ */
+#[Pure]
+function wordwrap(string $string, int $width = 75, string $break = "\n", bool $cut_long_words = false): string {}
+
+/**
+ * Convert special characters to HTML entities
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ * @param string $string
+ * The {@link https://secure.php.net/manual/en/language.types.string.php string} being converted.
+ *
+ * @param int $flags [optional]
+ * A bitmask of one or more of the following flags, which specify how to handle quotes,
+ * invalid code unit sequences and the used document type. The default is
+ * ENT_COMPAT | ENT_HTML401.
+ *
+ * Available flags constants
+ *
+ *
+ * Constant Name
+ * Description
+ *
+ *
+ *
+ *
+ *
+ *
+ * ENT_COMPAT
+ * Will convert double-quotes and leave single-quotes alone.
+ *
+ *
+ *
+ * ENT_QUOTES
+ * Will convert both double and single quotes.
+ *
+ *
+ *
+ * ENT_NOQUOTES
+ * Will leave both double and single quotes unconverted.
+ *
+ *
+ *
+ * ENT_IGNORE
+ *
+ * Silently discard invalid code unit sequences instead of returning
+ * an empty string. Using this flag is discouraged as it
+ * {@link https://unicode.org/reports/tr36/#Deletion_of_Noncharacters » may have security implications}.
+ *
+ *
+ *
+ *
+ * ENT_SUBSTITUTE
+ *
+ * Replace invalid code unit sequences with a Unicode Replacement Character
+ * U+FFFD (UTF-8) or &#FFFD; (otherwise) instead of returning an empty string.
+ *
+ *
+ *
+ *
+ * ENT_DISALLOWED
+ *
+ * Replace invalid code points for the given document type with a
+ * Unicode Replacement Character U+FFFD (UTF-8) or &#FFFD;
+ * (otherwise) instead of leaving them as is. This may be useful, for
+ * instance, to ensure the well-formedness of XML documents with
+ * embedded external content.
+ *
+ *
+ *
+ *
+ * ENT_HTML401
+ *
+ * Handle code as HTML 4.01.
+ *
+ *
+ *
+ *
+ * ENT_XML1
+ *
+ * Handle code as XML 1.
+ *
+ *
+ *
+ *
+ * ENT_XHTML
+ *
+ * Handle code as XHTML.
+ *
+ *
+ *
+ *
+ * ENT_HTML5
+ *
+ * Handle code as HTML 5.
+ *
+ *
+ *
+ *
+ *
+ *
+ * @param string|null $encoding
+ * Defines encoding used in conversion.
+ * If omitted, the default value for this argument is ISO-8859-1 in
+ * versions of PHP prior to 5.4.0, and UTF-8 from PHP 5.4.0 onwards.
+ *
+ *
+ * For the purposes of this function, the encodings
+ * ISO-8859-1, ISO-8859-15,
+ * UTF-8, cp866,
+ * cp1251, cp1252, and
+ * KOI8-R are effectively equivalent, provided the
+ * string itself is valid for the encoding, as
+ * the characters affected by htmlspecialchars() occupy
+ * the same positions in all of these encodings.
+ *
+ * @param bool $double_encode [optional]
+ * When double_encode is turned off PHP will not
+ * encode existing html entities, the default is to convert everything.
+ *
+ * @return string The converted string.
+ */
+#[Pure]
+function htmlspecialchars(string $string, int $flags = ENT_QUOTES|ENT_SUBSTITUTE, ?string $encoding = null, bool $double_encode = true): string {}
+
+/**
+ * Convert all applicable characters to HTML entities
+ * @link https://php.net/manual/en/function.htmlentities.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $flags [optional]
+ * Like htmlspecialchars, the optional second
+ * quote_style parameter lets you define what will
+ * be done with 'single' and "double" quotes. It takes on one of three
+ * constants with the default being ENT_COMPAT:
+ *
+ * Available quote_style constants
+ *
+ * Constant Name
+ * Description
+ *
+ *
+ * ENT_COMPAT
+ * Will convert double-quotes and leave single-quotes alone.
+ *
+ *
+ * ENT_QUOTES
+ * Will convert both double and single quotes.
+ *
+ *
+ * ENT_NOQUOTES
+ * Will leave both double and single quotes unconverted.
+ *
+ *
+ *
+ * @param string|null $encoding [optional]
+ * Like htmlspecialchars, it takes an optional
+ * third argument charset which defines character
+ * set used in conversion.
+ * Presently, the ISO-8859-1 character set is used as the default.
+ *
+ * @param bool $double_encode [optional]
+ * When double_encode is turned off PHP will not
+ * encode existing html entities. The default is to convert everything.
+ *
+ * @return string the encoded string.
+ */
+#[Pure]
+function htmlentities(string $string, int $flags = ENT_QUOTES|ENT_SUBSTITUTE, ?string $encoding, bool $double_encode = true): string {}
+
+/**
+ * Convert HTML entities to their corresponding characters
+ * @link https://php.net/manual/en/function.html-entity-decode.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $flags [optional]
+ * The optional second quote_style parameter lets
+ * you define what will be done with 'single' and "double" quotes. It takes
+ * on one of three constants with the default being
+ * ENT_COMPAT:
+ *
+ * Available quote_style constants
+ *
+ * Constant Name
+ * Description
+ *
+ *
+ * ENT_COMPAT
+ * Will convert double-quotes and leave single-quotes alone.
+ *
+ *
+ * ENT_QUOTES
+ * Will convert both double and single quotes.
+ *
+ *
+ * ENT_NOQUOTES
+ * Will leave both double and single quotes unconverted.
+ *
+ *
+ *
+ * @param string|null $encoding [optional]
+ * The ISO-8859-1 character set is used as default for the optional third
+ * charset. This defines the character set used in
+ * conversion.
+ *
+ * @return string the decoded string.
+ */
+#[Pure]
+function html_entity_decode(string $string, int $flags = ENT_QUOTES|ENT_SUBSTITUTE, ?string $encoding): string {}
+
+/**
+ * Convert special HTML entities back to characters
+ * @link https://php.net/manual/en/function.htmlspecialchars-decode.php
+ * @param string $string
+ * The string to decode
+ *
+ * @param int $flags [optional]
+ * The quote style. One of the following constants:
+ *
+ * quote_style constants
+ *
+ * Constant Name
+ * Description
+ *
+ *
+ * ENT_COMPAT
+ * Will convert double-quotes and leave single-quotes alone
+ * (default)
+ *
+ *
+ * ENT_QUOTES
+ * Will convert both double and single quotes
+ *
+ *
+ * ENT_NOQUOTES
+ * Will leave both double and single quotes unconverted
+ *
+ *
+ *
+ * @return string the decoded string.
+ */
+#[Pure]
+function htmlspecialchars_decode(string $string, int $flags = ENT_QUOTES|ENT_SUBSTITUTE): string {}
+
+/**
+ * Returns the translation table used by htmlspecialchars and htmlentities
+ * @link https://php.net/manual/en/function.get-html-translation-table.php
+ * @param int $table
+ * There are two new constants (HTML_ENTITIES,
+ * HTML_SPECIALCHARS) that allow you to specify the
+ * table you want.
+ *
+ * @param int $flags [optional]
+ * Like the htmlspecialchars and
+ * htmlentities functions you can optionally specify
+ * the quote_style you are working with.
+ * See the description
+ * of these modes in htmlspecialchars.
+ *
+ * @param string $encoding [optional]
+ * Encoding to use.
+ * If omitted, the default value for this argument is ISO-8859-1 in
+ * versions of PHP prior to 5.4.0, and UTF-8 from PHP 5.4.0 onwards.
+ *
+ *
+ *
+ *
+ * The following character sets are supported:
+ *
+ * Supported charsets
+ *
+ *
+ *
+ * Charset
+ * Aliases
+ * Description
+ *
+ *
+ *
+ *
+ *
+ *
+ * ISO-8859-1
+ * ISO8859-1
+ *
+ * Western European, Latin-1.
+ *
+ *
+ *
+ *
+ * ISO-8859-5
+ * ISO8859-5
+ *
+ * Little used cyrillic charset (Latin/Cyrillic).
+ *
+ *
+ *
+ *
+ * ISO-8859-15
+ * ISO8859-15
+ *
+ * Western European, Latin-9. Adds the Euro sign, French and Finnish
+ * letters missing in Latin-1 (ISO-8859-1).
+ *
+ *
+ *
+ *
+ * UTF-8
+ *
+ *
+ * ASCII compatible multi-byte 8-bit Unicode.
+ *
+ *
+ *
+ *
+ * cp866
+ * ibm866, 866
+ *
+ * DOS-specific Cyrillic charset.
+ *
+ *
+ *
+ *
+ * cp1251
+ * Windows-1251, win-1251, 1251
+ *
+ * Windows-specific Cyrillic charset.
+ *
+ *
+ *
+ *
+ * cp1252
+ * Windows-1252, 1252
+ *
+ * Windows specific charset for Western European.
+ *
+ *
+ *
+ *
+ * KOI8-R
+ * koi8-ru, koi8r
+ *
+ * Russian.
+ *
+ *
+ *
+ *
+ * BIG5
+ * 950
+ *
+ * Traditional Chinese, mainly used in Taiwan.
+ *
+ *
+ *
+ *
+ * GB2312
+ * 936
+ *
+ * Simplified Chinese, national standard character set.
+ *
+ *
+ *
+ *
+ * BIG5-HKSCS
+ *
+ *
+ * Big5 with Hong Kong extensions, Traditional Chinese.
+ *
+ *
+ *
+ *
+ * Shift_JIS
+ * SJIS, SJIS-win, cp932, 932
+ *
+ * Japanese
+ *
+ *
+ *
+ *
+ * EUC-JP
+ * EUCJP, eucJP-win
+ *
+ * Japanese
+ *
+ *
+ *
+ *
+ * MacRoman
+ *
+ *
+ * Charset that was used by Mac OS.
+ *
+ *
+ *
+ *
+ * ''
+ *
+ *
+ * An empty string activates detection from script encoding (Zend multibyte),
+ * {@link https://php.net/manual/en/ini.core.php#ini.default-charset default_charset} and current
+ * locale {@link https://php.net/manual/en/function.nl-langinfo.php nl_langinfo()} and
+ * {@link https://php.net/manual/en/function.setlocale.php setlocale()}), in this order. Not recommended.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * Note:
+ *
+ * Any other character sets are not recognized. The default encoding will be
+ * used instead and a warning will be emitted.
+ *
+ *
+ * @return array the translation table as an array.
+ */
+#[Pure]
+function get_html_translation_table(
+ int $table = 0,
+ int $flags = ENT_QUOTES|ENT_SUBSTITUTE,
+ #[PhpStormStubsElementAvailable(from: '7.0')] string $encoding = "UTF-8"
+): array {}
+
+/**
+ * Calculate the sha1 hash of a string
+ * @link https://php.net/manual/en/function.sha1.php
+ * @param string $string
+ * The input string.
+ *
+ * @param bool $binary [optional]
+ * If the optional binary is set to true,
+ * then the sha1 digest is instead returned in raw binary format with a
+ * length of 20, otherwise the returned value is a 40-character
+ * hexadecimal number.
+ *
+ * @return string the sha1 hash as a string.
+ */
+#[Pure]
+function sha1(string $string, bool $binary = false): string {}
+
+/**
+ * Calculate the sha1 hash of a file
+ * @link https://php.net/manual/en/function.sha1-file.php
+ * @param string $filename
+ * The filename
+ *
+ * @param bool $binary [optional]
+ * When true, returns the digest in raw binary format with a length of
+ * 20.
+ *
+ * @return string|false a string on success, false otherwise.
+ */
+#[Pure(true)]
+function sha1_file(string $filename, bool $binary = false): string|false {}
+
+/**
+ * Calculate the md5 hash of a string
+ * @link https://php.net/manual/en/function.md5.php
+ * @param string $string
+ * The string.
+ *
+ * @param bool $binary [optional]
+ * If the optional raw_output is set to true,
+ * then the md5 digest is instead returned in raw binary format with a
+ * length of 16.
+ *
+ * @return string the hash as a 32-character hexadecimal number.
+ */
+#[Pure]
+function md5(string $string, bool $binary = false): string {}
+
+/**
+ * Calculates the md5 hash of a given file
+ * @link https://php.net/manual/en/function.md5-file.php
+ * @param string $filename
+ * The filename
+ *
+ * @param bool $binary [optional]
+ * When true, returns the digest in raw binary format with a length of
+ * 16.
+ *
+ * @return string|false a string on success, false otherwise.
+ */
+#[Pure(true)]
+function md5_file(string $filename, bool $binary = false): string|false {}
+
+/**
+ * Calculates the crc32 polynomial of a string
+ * @link https://php.net/manual/en/function.crc32.php
+ * @param string $string
+ * The data.
+ *
+ * @return int the crc32 checksum of str as an integer..1
+ */
+#[Pure]
+function crc32(string $string): int {}
+
+/**
+ * Parse a binary IPTC block into single tags.
+ * Note: This function does not require the GD image library.
+ * @link https://php.net/manual/en/function.iptcparse.php
+ * @param string $iptc_block
+ * A binary IPTC block.
+ *
+ * @return array|false an array using the tagmarker as an index and the value as the
+ * value. It returns false on error or if no IPTC data was found.
+ */
+#[Pure]
+function iptcparse(string $iptc_block): array|false {}
+
+/**
+ * Embeds binary IPTC data into a JPEG image.
+ * Note: This function does not require the GD image library.
+ * @link https://php.net/manual/en/function.iptcembed.php
+ * @param string $iptc_data
+ * The data to be written.
+ *
+ * @param string $filename
+ * Path to the JPEG image.
+ *
+ * @param int $spool
+ * Spool flag. If the spool flag is less than 2 then the JPEG will
+ * be returned as a string. Otherwise the JPEG will be printed to
+ * STDOUT.
+ *
+ * @return string|bool If spool is less than 2, the JPEG will be returned, or false on
+ * failure. Otherwise returns true on success or false on failure.
+ */
+function iptcembed(string $iptc_data, string $filename, int $spool = 0): string|bool {}
+
+/**
+ * Get the size of an image
+ * @link https://php.net/manual/en/function.getimagesize.php
+ * @param string $filename
+ * This parameter specifies the file you wish to retrieve information
+ * about. It can reference a local file or (configuration permitting) a
+ * remote file using one of the supported streams.
+ *
+ * @param array &$image_info [optional]
+ * This optional parameter allows you to extract some extended
+ * information from the image file. Currently, this will return the
+ * different JPG APP markers as an associative array.
+ * Some programs use these APP markers to embed text information in
+ * images. A very common one is to embed
+ * IPTC information in the APP13 marker.
+ * You can use the iptcparse function to parse the
+ * binary APP13 marker into something readable.
+ *
+ * @return array|false an array with 7 elements.
+ *
+ * Index 0 and 1 contains respectively the width and the height of the image.
+ *
+ *
+ * Some formats may contain no image or may contain multiple images. In these
+ * cases, getimagesize might not be able to properly
+ * determine the image size. getimagesize will return
+ * zero for width and height in these cases.
+ *
+ *
+ * Index 2 is one of the IMAGETYPE_XXX constants indicating
+ * the type of the image.
+ *
+ *
+ * Index 3 is a text string with the correct
+ * height="yyy" width="xxx" string that can be used
+ * directly in an IMG tag.
+ *
+ *
+ * mime is the correspondant MIME type of the image.
+ * This information can be used to deliver images with correct the HTTP
+ * Content-type header:
+ * getimagesize and MIME types
+ *
+ *
+ * channels will be 3 for RGB pictures and 4 for CMYK
+ * pictures.
+ *
+ *
+ * bits is the number of bits for each color.
+ *
+ *
+ * For some image types, the presence of channels and
+ * bits values can be a bit
+ * confusing. As an example, GIF always uses 3 channels
+ * per pixel, but the number of bits per pixel cannot be calculated for an
+ * animated GIF with a global color table.
+ *
+ *
+ * On failure, false is returned.
+ *
+ */
+#[ArrayShape([0 => "int", 1 => "int", 2 => "int", 3 => "string", "bits" => "int", "channels" => "int", "mime" => "string"])]
+function getimagesize(string $filename, &$image_info): array|false {}
+
+/**
+ * Get Mime-Type for image-type returned by getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
+ * @link https://php.net/manual/en/function.image-type-to-mime-type.php
+ * @param int $image_type
+ * One of the IMAGETYPE_XXX constants.
+ *
+ * @return string The returned values are as follows
+ *
+ * Returned values Constants
+ *
+ * imagetype
+ * Returned value
+ *
+ *
+ * IMAGETYPE_GIF
+ * image/gif
+ *
+ *
+ * IMAGETYPE_JPEG
+ * image/jpeg
+ *
+ *
+ * IMAGETYPE_PNG
+ * image/png
+ *
+ *
+ * IMAGETYPE_SWF
+ * application/x-shockwave-flash
+ *
+ *
+ * IMAGETYPE_PSD
+ * image/psd
+ *
+ *
+ * IMAGETYPE_BMP
+ * image/bmp
+ *
+ *
+ * IMAGETYPE_TIFF_II (intel byte order)
+ * image/tiff
+ *
+ *
+ *
+ * IMAGETYPE_TIFF_MM (motorola byte order)
+ *
+ * image/tiff
+ *
+ *
+ * IMAGETYPE_JPC
+ * application/octet-stream
+ *
+ *
+ * IMAGETYPE_JP2
+ * image/jp2
+ *
+ *
+ * IMAGETYPE_JPX
+ * application/octet-stream
+ *
+ *
+ * IMAGETYPE_JB2
+ * application/octet-stream
+ *
+ *
+ * IMAGETYPE_SWC
+ * application/x-shockwave-flash
+ *
+ *
+ * IMAGETYPE_IFF
+ * image/iff
+ *
+ *
+ * IMAGETYPE_WBMP
+ * image/vnd.wap.wbmp
+ *
+ *
+ * IMAGETYPE_XBM
+ * image/xbm
+ *
+ *
+ * IMAGETYPE_ICO
+ * image/vnd.microsoft.icon
+ *
+ *
+ */
+#[Pure]
+function image_type_to_mime_type(int $image_type): string {}
+
+/**
+ * Get file extension for image type
+ * @link https://php.net/manual/en/function.image-type-to-extension.php
+ * @param int $image_type
+ * One of the IMAGETYPE_XXX constant.
+ *
+ * @param bool $include_dot [optional]
+ * Removed since 8.0.
+ * Whether to prepend a dot to the extension or not. Default to true.
+ *
+ * @return string|false A string with the extension corresponding to the given image type, or false on failure.
+ */
+#[Pure]
+function image_type_to_extension(int $image_type, bool $include_dot = true): string|false {}
+
+/**
+ * Outputs information about PHP's configuration
+ * @link https://php.net/manual/en/function.phpinfo.php
+ * @param int $flags [optional]
+ * The output may be customized by passing one or more of the
+ * following constants bitwise values summed
+ * together in the optional what parameter.
+ * One can also combine the respective constants or bitwise values
+ * together with the or operator.
+ *
+ *
+ *
+ * phpinfo options
+ *
+ * Name (constant)
+ * Value
+ * Description
+ *
+ *
+ * INFO_GENERAL
+ * 1
+ *
+ * The configuration line, "php.ini" location, build date, Web
+ * Server, System and more.
+ *
+ *
+ *
+ * INFO_CREDITS
+ * 2
+ *
+ * PHP Credits. See also phpcredits.
+ *
+ *
+ *
+ * INFO_CONFIGURATION
+ * 4
+ *
+ * Current Local and Main values for PHP directives. See
+ * also ini_get.
+ *
+ *
+ *
+ * INFO_MODULES
+ * 8
+ *
+ * Loaded modules and their respective settings. See also
+ * get_loaded_extensions.
+ *
+ *
+ *
+ * INFO_ENVIRONMENT
+ * 16
+ *
+ * Environment Variable information that's also available in
+ * $_ENV.
+ *
+ *
+ *
+ * INFO_VARIABLES
+ * 32
+ *
+ * Shows all
+ * predefined variables from EGPCS (Environment, GET,
+ * POST, Cookie, Server).
+ *
+ *
+ *
+ * INFO_LICENSE
+ * 64
+ *
+ * PHP License information. See also the license FAQ.
+ *
+ *
+ *
+ * INFO_ALL
+ * -1
+ *
+ * Shows all of the above.
+ *
+ *
+ *
+ *
+ * @return bool true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function phpinfo(#[ExpectedValues(flags: [INFO_GENERAL, INFO_CREDITS, INFO_CONFIGURATION, INFO_MODULES, INFO_ENVIRONMENT, INFO_VARIABLES, INFO_LICENSE, INFO_ALL])] int $flags = INFO_ALL): bool {}
+
+/**
+ * Gets the current PHP version
+ * @link https://php.net/manual/en/function.phpversion.php
+ * @param string|null $extension [optional]
+ * An optional extension name.
+ *
+ * @return string|false If the optional extension parameter is
+ * specified, phpversion returns the version of that
+ * extension, or false if there is no version information associated or
+ * the extension isn't enabled.
+ */
+#[Pure]
+function phpversion(?string $extension): string|false {}
+
+/**
+ * Prints out the credits for PHP
+ * @link https://php.net/manual/en/function.phpcredits.php
+ * @param int $flags [optional]
+ * To generate a custom credits page, you may want to use the
+ * flags parameter.
+ *
+ *
+ *
+ * Pre-defined phpcredits flags
+ *
+ * name
+ * description
+ *
+ *
+ * CREDITS_ALL
+ *
+ * All the credits, equivalent to using: CREDITS_DOCS +
+ * CREDITS_GENERAL + CREDITS_GROUP +
+ * CREDITS_MODULES + CREDITS_FULLPAGE.
+ * It generates a complete stand-alone HTML page with the appropriate tags.
+ *
+ *
+ *
+ * CREDITS_DOCS
+ * The credits for the documentation team
+ *
+ *
+ * CREDITS_FULLPAGE
+ *
+ * Usually used in combination with the other flags. Indicates
+ * that a complete stand-alone HTML page needs to be
+ * printed including the information indicated by the other
+ * flags.
+ *
+ *
+ *
+ * CREDITS_GENERAL
+ *
+ * General credits: Language design and concept, PHP 4.0
+ * authors and SAPI module.
+ *
+ *
+ *
+ * CREDITS_GROUP
+ * A list of the core developers
+ *
+ *
+ * CREDITS_MODULES
+ *
+ * A list of the extension modules for PHP, and their authors
+ *
+ *
+ *
+ * CREDITS_SAPI
+ *
+ * A list of the server API modules for PHP, and their authors
+ *
+ *
+ *
+ *
+ * @return bool true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function phpcredits(int $flags = CREDITS_ALL): bool {}
+
+/**
+ * Gets the logo guid
+ * @removed 5.5
+ * @link https://php.net/manual/en/function.php-logo-guid.php
+ * @return string PHPE9568F34-D428-11d2-A769-00AA001ACF42.
+ */
+#[Pure]
+function php_logo_guid(): string {}
+
+/**
+ * @removed 5.5
+ */
+function php_real_logo_guid() {}
+
+/**
+ * @removed 5.5
+ */
+function php_egg_logo_guid() {}
+
+/**
+ * Gets the Zend guid
+ * @removed 5.5
+ * @link https://php.net/manual/en/function.zend-logo-guid.php
+ * @return string PHPE9568F35-D428-11d2-A769-00AA001ACF42.
+ */
+function zend_logo_guid(): string {}
+
+/**
+ * Returns the type of interface between web server and PHP
+ * @link https://php.net/manual/en/function.php-sapi-name.php
+ * @return string|false the interface type, as a lowercase string, or false on failure.
+ *
+ * Although not exhaustive, the possible return values include
+ * aolserver, apache,
+ * apache2filter, apache2handler,
+ * caudium, cgi (until PHP 5.3),
+ * cgi-fcgi, cli,
+ * continuity, embed,
+ * isapi, litespeed,
+ * milter, nsapi,
+ * phttpd, pi3web, roxen,
+ * thttpd, tux, and webjames.
+ *
+ */
+#[Pure]
+#[ExpectedValues(['cli', 'phpdbg', 'embed', 'apache', 'apache2handler', 'cgi-fcgi', 'cli-server', 'fpm-fcgi', 'litespeed'])]
+function php_sapi_name(): string|false {}
+
+/**
+ * Returns information about the operating system PHP is running on
+ * @link https://php.net/manual/en/function.php-uname.php
+ * @param string $mode [optional]
+ * mode is a single character that defines what
+ * information is returned:
+ * 'a': This is the default. Contains all modes in
+ * the sequence "s n r v m".
+ * @return string the description, as a string.
+ */
+#[Pure(true)]
+function php_uname(#[PhpStormStubsElementAvailable(from: '7.0')] string $mode = 'a'): string {}
+
+/**
+ * Return a list of .ini files parsed from the additional ini dir
+ * @link https://php.net/manual/en/function.php-ini-scanned-files.php
+ * @return string|false a comma-separated string of .ini files on success. Each comma is
+ * followed by a newline. If the directive --with-config-file-scan-dir wasn't set,
+ * false is returned. If it was set and the directory was empty, an
+ * empty string is returned. If a file is unrecognizable, the file will
+ * still make it into the returned string but a PHP error will also result.
+ * This PHP error will be seen both at compile time and while using
+ * php_ini_scanned_files.
+ */
+#[Pure]
+function php_ini_scanned_files(): string|false {}
+
+/**
+ * Retrieve a path to the loaded php.ini file
+ * @link https://php.net/manual/en/function.php-ini-loaded-file.php
+ * @return string|false The loaded "php.ini" path, or false if one is not loaded.
+ * @since 5.2.4
+ */
+#[Pure]
+function php_ini_loaded_file(): string|false {}
+
+/**
+ * String comparisons using a "natural order" algorithm
+ * @link https://php.net/manual/en/function.strnatcmp.php
+ * @param string $string1
+ * The first string.
+ *
+ * @param string $string2
+ * The second string.
+ *
+ * @return int Similar to other string comparison functions, this one returns < 0 if
+ * str1 is less than str2; >
+ * 0 if str1 is greater than
+ * str2, and 0 if they are equal.
+ */
+#[Pure]
+function strnatcmp(string $string1, string $string2): int {}
+
+/**
+ * Case insensitive string comparisons using a "natural order" algorithm
+ * @link https://php.net/manual/en/function.strnatcasecmp.php
+ * @param string $string1
+ * The first string.
+ *
+ * @param string $string2
+ * The second string.
+ *
+ * @return int Similar to other string comparison functions, this one returns < 0 if
+ * str1 is less than str2 >
+ * 0 if str1 is greater than
+ * str2, and 0 if they are equal.
+ */
+#[Pure]
+function strnatcasecmp(string $string1, string $string2): int {}
+
+/**
+ * Count the number of substring occurrences
+ * @link https://php.net/manual/en/function.substr-count.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * The substring to search for
+ *
+ * @param int $offset
+ * The offset where to start counting. If the offset is negative,
+ * counting starts from the end of the string.
+ *
+ * @param int|null $length [optional]
+ * The maximum length after the specified offset to search for the
+ * substring. It outputs a warning if the offset plus the length is
+ * greater than the haystack length. A negative length counts from
+ * the end of haystack.
+ *
+ * @return int<0,max> This functions returns an integer.
+ */
+#[Pure]
+function substr_count(string $haystack, string $needle, int $offset = 0, ?int $length): int {}
+
+/**
+ * Finds the length of the initial segment of a string consisting
+ * entirely of characters contained within a given mask.
+ * @link https://php.net/manual/en/function.strspn.php
+ * @param string $string
+ * The string to examine.
+ *
+ * @param string $characters
+ * The list of allowable characters to include in counted segments.
+ *
+ * @param int $offset
+ * The position in subject to
+ * start searching.
+ *
+ *
+ * If start is given and is non-negative,
+ * then strspn will begin
+ * examining subject at
+ * the start'th position. For instance, in
+ * the string 'abcdef', the character at
+ * position 0 is 'a', the
+ * character at position 2 is
+ * 'c', and so forth.
+ *
+ *
+ * If start is given and is negative,
+ * then strspn will begin
+ * examining subject at
+ * the start'th position from the end
+ * of subject.
+ *
+ * @param int|null $length [optional]
+ * The length of the segment from subject
+ * to examine.
+ *
+ *
+ * If length is given and is non-negative,
+ * then subject will be examined
+ * for length characters after the starting
+ * position.
+ *
+ *
+ * If lengthis given and is negative,
+ * then subject will be examined from the
+ * starting position up to length
+ * characters from the end of subject.
+ *
+ * @return int the length of the initial segment of str1
+ * which consists entirely of characters in str2.
+ */
+#[Pure]
+function strspn(string $string, string $characters, int $offset = 0, ?int $length): int {}
+
+/**
+ * Find length of initial segment not matching mask
+ * @link https://php.net/manual/en/function.strcspn.php
+ * @param string $string
+ * The first string.
+ *
+ * @param string $characters
+ * The second string.
+ *
+ * @param int $offset
+ * The start position of the string to examine.
+ *
+ * @param int|null $length [optional]
+ * The length of the string to examine.
+ *
+ * @return int the length of the segment as an integer.
+ */
+#[Pure]
+function strcspn(string $string, string $characters, int $offset = 0, ?int $length): int {}
+
+/**
+ * Tokenize string
+ * Note that only the first call to strtok uses the string argument.
+ * Every subsequent call to strtok only needs the token to use, as it keeps track of where it is in the current string.
+ * To start over, or to tokenize a new string you simply call strtok with the string argument again to initialize it.
+ * Note that you may put multiple tokens in the token parameter.
+ * The string will be tokenized when any one of the characters in the argument are found.
+ * @link https://php.net/manual/en/function.strtok.php
+ * @param string $string
+ * The string being split up into smaller strings (tokens).
+ *
+ * @param string|null $token
+ * The delimiter used when splitting up str.
+ *
+ * @return string|false A string token.
+ */
+function strtok(
+ string $string,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $token,
+ #[PhpStormStubsElementAvailable(from: '7.1')] ?string $token = null
+): string|false {}
diff --git a/phpstorm-stubs/standard/standard_1.php b/phpstorm-stubs/standard/standard_1.php
new file mode 100644
index 0000000..bc09de7
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_1.php
@@ -0,0 +1,1234 @@
+
+ * The input string.
+ *
+ * @return string the uppercased string.
+ */
+#[Pure]
+function strtoupper(string $string): string {}
+
+/**
+ * Make a string lowercase
+ * @link https://php.net/manual/en/function.strtolower.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the lowercased string.
+ */
+#[Pure]
+function strtolower(string $string): string {}
+
+/**
+ * Find the position of the first occurrence of a substring in a string
+ * @link https://php.net/manual/en/function.strpos.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * If needle is not a string, it is converted
+ * to an integer and applied as the ordinal value of a character.
+ *
+ * @param int<0,max> $offset [optional]
+ * If specified, search will start this number of characters counted from
+ * the beginning of the string. Unlike {@see strrpos()} and {@see strripos()}, the offset cannot be negative.
+ *
+ * @return int<0,max>|false
+ * Returns the position where the needle exists relative to the beginning of
+ * the haystack string (independent of search direction
+ * or offset).
+ * Also note that string positions start at 0, and not 1.
+ *
+ *
+ * Returns FALSE if the needle was not found.
+ *
+ */
+#[Pure]
+function strpos(string $haystack, string $needle, int $offset = 0): int|false {}
+
+/**
+ * Find position of first occurrence of a case-insensitive string
+ * @link https://php.net/manual/en/function.stripos.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * Note that the needle may be a string of one or
+ * more characters.
+ *
+ *
+ * If needle is not a string, it is converted to
+ * an integer and applied as the ordinal value of a character.
+ *
+ * @param int $offset
+ * The optional offset parameter allows you
+ * to specify which character in haystack to
+ * start searching. The position returned is still relative to the
+ * beginning of haystack.
+ *
+ * @return int|false If needle is not found,
+ * stripos will return boolean false.
+ */
+#[Pure]
+function stripos(string $haystack, string $needle, int $offset = 0): int|false {}
+
+/**
+ * Find the position of the last occurrence of a substring in a string
+ * @link https://php.net/manual/en/function.strrpos.php
+ * @param string $haystack
+ * The string to search in.
+ *
+ * @param string $needle
+ * If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.
+ *
+ * @param int $offset [optional]
+ * If specified, search will start this number of characters counted from the beginning of the string. If the value is negative, search will instead start from that many characters from the end of the string, searching backwards.
+ *
+ * @return int|false
+ * Returns the position where the needle exists relative to the beginning of
+ * the haystack string (independent of search direction
+ * or offset).
+ * Also note that string positions start at 0, and not 1.
+ *
+ *
+ * Returns FALSE if the needle was not found.
+ *
+ */
+#[Pure]
+function strrpos(string $haystack, string $needle, int $offset = 0): int|false {}
+
+/**
+ * Find position of last occurrence of a case-insensitive string in a string
+ * @link https://php.net/manual/en/function.strripos.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * Note that the needle may be a string of one or
+ * more characters.
+ *
+ * @param int $offset
+ * The offset parameter may be specified to begin
+ * searching an arbitrary number of characters into the string.
+ *
+ *
+ * Negative offset values will start the search at
+ * offset characters from the
+ * start of the string.
+ *
+ * @return int|false the numerical position of the last occurrence of
+ * needle. Also note that string positions start at 0,
+ * and not 1.
+ *
+ *
+ * If needle is not found, false is returned.
+ */
+#[Pure]
+function strripos(string $haystack, string $needle, int $offset = 0): int|false {}
+
+/**
+ * Reverse a string
+ * @link https://php.net/manual/en/function.strrev.php
+ * @param string $string
+ * The string to be reversed.
+ *
+ * @return string the reversed string.
+ */
+#[Pure]
+function strrev(string $string): string {}
+
+/**
+ * Convert logical Hebrew text to visual text
+ * @link https://php.net/manual/en/function.hebrev.php
+ * @param string $string
+ * A Hebrew input string.
+ *
+ * @param int $max_chars_per_line
+ * This optional parameter indicates maximum number of characters per
+ * line that will be returned.
+ *
+ * @return string the visual string.
+ */
+#[Pure]
+function hebrev(string $string, int $max_chars_per_line = 0): string {}
+
+/**
+ * Convert logical Hebrew text to visual text with newline conversion
+ * @link https://php.net/manual/en/function.hebrevc.php
+ * @param string $hebrew_text
+ * A Hebrew input string.
+ *
+ * @param int $max_chars_per_line [optional]
+ * This optional parameter indicates maximum number of characters per
+ * line that will be returned.
+ *
+ * @return string the visual string.
+ * @removed 8.0
+ */
+#[Deprecated(replacement: 'nl2br(hebrev(%parameter0%))', since: '7.4')]
+function hebrevc(string $hebrew_text, $max_chars_per_line): string {}
+
+/**
+ * Inserts HTML line breaks before all newlines in a string
+ * @link https://php.net/manual/en/function.nl2br.php
+ * @param string $string
+ * The input string.
+ *
+ * @param bool $use_xhtml [optional]
+ * Whether to use XHTML compatible line breaks or not.
+ *
+ * @return string the altered string.
+ */
+#[Pure]
+function nl2br(string $string, bool $use_xhtml = true): string {}
+
+/**
+ * Returns trailing name component of path
+ * @link https://php.net/manual/en/function.basename.php
+ * @param string $path
+ * A path.
+ *
+ *
+ * On Windows, both slash (/) and backslash
+ * (\) are used as directory separator character. In
+ * other environments, it is the forward slash (/).
+ *
+ * @param string $suffix
+ * If the filename ends in suffix this will also
+ * be cut off.
+ *
+ * @return string the base name of the given path.
+ */
+#[Pure]
+function basename(string $path, string $suffix = ''): string {}
+
+/**
+ * Returns a parent directory's path
+ * @link https://php.net/manual/en/function.dirname.php
+ * @param string $path
+ * A path.
+ *
+ *
+ * On Windows, both slash (/) and backslash
+ * (\) are used as directory separator character. In
+ * other environments, it is the forward slash (/).
+ *
+ * @param int $levels
+ * The number of parent directories to go up.
+ * This must be an integer greater than 0.
+ *
+ * @return string the name of the directory. If there are no slashes in
+ * path, a dot ('.') is returned,
+ * indicating the current directory. Otherwise, the returned string is
+ * path with any trailing
+ * /component removed.
+ */
+#[Pure]
+function dirname(string $path, #[PhpStormStubsElementAvailable(from: '7.0')] int $levels = 1): string {}
+
+/**
+ * Returns information about a file path
+ * @link https://php.net/manual/en/function.pathinfo.php
+ * @param string $path
+ * The path being checked.
+ *
+ * @param int $flags [optional]
+ * You can specify which elements are returned with optional parameter
+ * options. It composes from
+ * PATHINFO_DIRNAME,
+ * PATHINFO_BASENAME,
+ * PATHINFO_EXTENSION and
+ * PATHINFO_FILENAME. It
+ * defaults to return all elements.
+ *
+ * @return string|array{dirname: string, basename: string, extension: string, filename: string} The following associative array elements are returned:
+ * dirname, basename,
+ * extension (if any), and filename.
+ *
+ *
+ * If options is used, this function will return a
+ * string if not all elements are requested.
+ */
+#[Pure(true)]
+#[ArrayShape(['dirname' => 'string', 'basename' => 'string', 'extension' => 'string', 'filename' => 'string'])]
+function pathinfo(string $path, #[ExpectedValues(flags: [
+ PATHINFO_DIRNAME,
+ PATHINFO_BASENAME,
+ PATHINFO_EXTENSION,
+ PATHINFO_FILENAME
+])] int $flags = PATHINFO_ALL): array|string {}
+
+/**
+ * Un-quotes a quoted string
+ * @link https://php.net/manual/en/function.stripslashes.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string a string with backslashes stripped off.
+ * (\' becomes ' and so on.)
+ * Double backslashes (\\) are made into a single
+ * backslash (\).
+ */
+#[Pure]
+function stripslashes(string $string): string {}
+
+/**
+ * Un-quote string quoted with addcslashes
+ * @link https://php.net/manual/en/function.stripcslashes.php
+ * @param string $string
+ * The string to be unescaped.
+ *
+ * @return string the unescaped string.
+ */
+#[Pure]
+function stripcslashes(string $string): string {}
+
+/**
+ * Find the first occurrence of a string
+ * @link https://php.net/manual/en/function.strstr.php
+ * @param string $haystack
+ * The input string.
+ *
+ * @param string $needle
+ * If needle is not a string, it is converted to
+ * an integer and applied as the ordinal value of a character.
+ *
+ * @param bool $before_needle [optional]
+ * If true, strstr returns
+ * the part of the haystack before the first
+ * occurrence of the needle.
+ *
+ * @return string|false the portion of string, or false if needle
+ * is not found.
+ */
+#[Pure]
+function strstr(string $haystack, string $needle, bool $before_needle = false): string|false {}
+
+/**
+ * Case-insensitive strstr
+ * @link https://php.net/manual/en/function.stristr.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * If needle is not a string, it is converted to
+ * an integer and applied as the ordinal value of a character.
+ *
+ * @param bool $before_needle [optional]
+ * If true, stristr
+ * returns the part of the haystack before the
+ * first occurrence of the needle.
+ *
+ * @return string|false the matched substring. If needle is not
+ * found, returns false.
+ */
+#[Pure]
+function stristr(string $haystack, string $needle, bool $before_needle = false): string|false {}
+
+/**
+ * Find the last occurrence of a character in a string
+ * @link https://php.net/manual/en/function.strrchr.php
+ * @param string $haystack
+ * The string to search in
+ *
+ * @param string $needle
+ * If needle contains more than one character,
+ * only the first is used. This behavior is different from that of {@see strstr()}.
+ *
+ *
+ * If needle is not a string, it is converted to
+ * an integer and applied as the ordinal value of a character.
+ *
+ * @param bool $before_needle Since 8.3 If true, strrchr() returns the part of the haystack before the last occurrence
+ * of the needle (excluding the needle).
+ * @return string|false
+ * This function returns the portion of string, or FALSE if
+ * needle is not found.
+ *
+ */
+#[Pure]
+function strrchr(string $haystack, string $needle, #[PhpStormStubsElementAvailable(from: '8.3')] bool $before_needle = false): string|false {}
+
+/**
+ * Randomly shuffles a string
+ * @link https://php.net/manual/en/function.str-shuffle.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the shuffled string.
+ */
+function str_shuffle(string $string): string {}
+
+/**
+ * Return information about words used in a string
+ * @link https://php.net/manual/en/function.str-word-count.php
+ * @param string $string
+ * The string
+ *
+ * @param int $format [optional]
+ * Specify the return value of this function. The current supported values
+ * are:
+ * 0 - returns the number of words found
+ *
+ * @param string|null $characters [optional]
+ * A list of additional characters which will be considered as 'word'
+ *
+ * @return string[]|int an array or an integer, depending on the
+ * format chosen.
+ */
+#[Pure]
+function str_word_count(string $string, int $format = 0, ?string $characters): array|int {}
+
+/**
+ * Convert a string to an array
+ * @link https://php.net/manual/en/function.str-split.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $length [optional]
+ * Maximum length of the chunk.
+ *
+ * @return string[]|false If the optional split_length parameter is
+ * specified, the returned array will be broken down into chunks with each
+ * being split_length in length, otherwise each chunk
+ * will be one character in length.
+ *
+ *
+ * FALSE is returned if split_length is less than 1.
+ * If the split_length length exceeds the length of
+ * string, the entire string is returned as the first
+ * (and only) array element.
+ *
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function str_split(string $string, int $length = 1): array|false {}
+
+/**
+ * Search a string for any of a set of characters
+ * @link https://php.net/manual/en/function.strpbrk.php
+ * @param string $string
+ * The string where char_list is looked for.
+ *
+ * @param string $characters
+ * This parameter is case sensitive.
+ *
+ * @return string|false a string starting from the character found, or false if it is
+ * not found.
+ */
+#[Pure]
+function strpbrk(
+ string $string,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $char_list = '',
+ #[PhpStormStubsElementAvailable(from: '7.1')] string $characters
+): string|false {}
+
+/**
+ * Binary safe comparison of two strings from an offset, up to length characters
+ * @link https://php.net/manual/en/function.substr-compare.php
+ * @param string $haystack
+ * The main string being compared.
+ *
+ * @param string $needle
+ * The secondary string being compared.
+ *
+ * @param int $offset
+ * The start position for the comparison. If negative, it starts counting
+ * from the end of the string.
+ *
+ * @param int|null $length [optional]
+ * The length of the comparison.
+ *
+ * @param bool $case_insensitive [optional]
+ * If case_insensitivity is true, comparison is
+ * case insensitive.
+ *
+ * @return int if less than 0 if main_str from position
+ * offset is less than str, >
+ * 0 if it is greater than str, and 0 if they are equal.
+ * If offset is equal to or greater than the length of
+ * main_str or length is set and
+ * is less than 1, substr_compare prints a warning and returns
+ * false.
+ */
+#[Pure]
+function substr_compare(string $haystack, string $needle, int $offset, ?int $length, bool $case_insensitive = false): int {}
+
+/**
+ * Locale based string comparison
+ * @link https://php.net/manual/en/function.strcoll.php
+ * @param string $string1
+ * The first string.
+ *
+ * @param string $string2
+ * The second string.
+ *
+ * @return int if less than 0 if str1 is less than
+ * str2; > 0 if
+ * str1 is greater than
+ * str2, and 0 if they are equal.
+ */
+#[Pure]
+function strcoll(string $string1, string $string2): int {}
+
+/**
+ * Formats a number as a currency string
+ * @link https://php.net/manual/en/function.money-format.php
+ * @param string $format
+ * The format specification consists of the following sequence:
+ * a % character
+ * @param float $number
+ * The number to be formatted.
+ *
+ * @return string|null the formatted string. Characters before and after the formatting
+ * string will be returned unchanged.
+ * Non-numeric number causes returning null and
+ * emitting E_WARNING.
+ * @removed 8.0
+ * @see NumberFormatter
+ */
+#[Deprecated(reason: 'Use the NumberFormatter functionality', since: '7.4')]
+function money_format(string $format, float $number): ?string {}
+
+/**
+ * Return part of a string or false on failure. For PHP8.0+ only string is returned
+ * @link https://php.net/manual/en/function.substr.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $offset
+ * If start is non-negative, the returned string
+ * will start at the start'th position in
+ * string, counting from zero. For instance,
+ * in the string 'abcdef', the character at
+ * position 0 is 'a', the
+ * character at position 2 is
+ * 'c', and so forth.
+ *
+ *
+ * If start is negative, the returned string
+ * will start at the start'th character
+ * from the end of string.
+ *
+ *
+ * If string is less than or equal to
+ * start characters long, false will be returned.
+ *
+ *
+ * Using a negative start
+ *
+ *
+ *
+ *
+ * @param int|null $length [optional]
+ * If length is given and is positive, the string
+ * returned will contain at most length characters
+ * beginning from start (depending on the length of
+ * string).
+ *
+ *
+ * If length is given and is negative, then that many
+ * characters will be omitted from the end of string
+ * (after the start position has been calculated when a
+ * start is negative). If
+ * start denotes a position beyond this truncation,
+ * an empty string will be returned.
+ *
+ *
+ * If length is given and is 0,
+ * false or null an empty string will be returned.
+ *
+ * Using a negative length:
+ *
+ *
+ *
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function substr(string $string, int $offset, ?int $length) {}
+
+/**
+ * Replace text within a portion of a string
+ * @link https://php.net/manual/en/function.substr-replace.php
+ * @param string[]|string $string
+ * The input string.
+ *
+ * @param string[]|string $replace
+ * The replacement string.
+ *
+ * @param int[]|int $offset
+ * If start is positive, the replacing will
+ * begin at the start'th offset into
+ * string.
+ *
+ *
+ * If start is negative, the replacing will
+ * begin at the start'th character from the
+ * end of string.
+ *
+ * @param int[]|int $length [optional]
+ * If given and is positive, it represents the length of the portion of
+ * string which is to be replaced. If it is
+ * negative, it represents the number of characters from the end of
+ * string at which to stop replacing. If it
+ * is not given, then it will default to strlen(
+ * string ); i.e. end the replacing at the
+ * end of string. Of course, if
+ * length is zero then this function will have the
+ * effect of inserting replacement into
+ * string at the given
+ * start offset.
+ *
+ * @return string|string[] The result string is returned. If string is an
+ * array then array is returned.
+ */
+#[Pure]
+function substr_replace(array|string $string, array|string $replace, array|int $offset, array|int|null $length = null): array|string {}
+
+/**
+ * Quote meta characters
+ * @link https://php.net/manual/en/function.quotemeta.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the string with meta characters quoted.
+ */
+#[Pure]
+function quotemeta(string $string): string {}
+
+/**
+ * Make a string's first character uppercase
+ * @link https://php.net/manual/en/function.ucfirst.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the resulting string.
+ */
+#[Pure]
+function ucfirst(string $string): string {}
+
+/**
+ * Make a string's first character lowercase
+ * @link https://php.net/manual/en/function.lcfirst.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the resulting string.
+ */
+#[Pure]
+function lcfirst(string $string): string {}
+
+/**
+ * Uppercase the first character of each word in a string
+ * @link https://php.net/manual/en/function.ucwords.php
+ * @param string $string
+ * The input string.
+ *
+ * @param string $separators [optional]
+ * The optional separators contains the word separator characters.
+ *
+ * @return string the modified string.
+ */
+#[Pure]
+function ucwords(string $string, string $separators = " \t\r\n\f\v"): string {}
+
+/**
+ * Translate characters or replace substrings
+ * @link https://php.net/manual/en/function.strtr.php
+ * @param string $string
+ * The string being translated.
+ *
+ * @param string $from
+ * The string replacing from.
+ *
+ * @param string $to
+ * The string being translated to to.
+ *
+ * @return string This function returns a copy of str,
+ * translating all occurrences of each character in
+ * from to the corresponding character in
+ * to.
+ */
+#[Pure]
+function strtr(string $string, string $from, string $to): string {}
+
+/**
+ * Translate certain characters
+ * @link https://php.net/manual/en/function.strtr.php
+ * @param string $str The string being translated.
+ * @param array $replace_pairs The replace_pairs parameter may be used as a substitute for to and from in which case it's an array in the form array('from' => 'to', ...).
+ * @return string A copy of str, translating all occurrences of each character in from to the corresponding character in to.
+ */
+#[Pure]
+function strtr(string $str, array $replace_pairs): string {}
+
+/**
+ * Quote string with slashes
+ * @link https://php.net/manual/en/function.addslashes.php
+ * @param string $string
+ * The string to be escaped.
+ *
+ * @return string the escaped string.
+ */
+#[Pure]
+function addslashes(string $string): string {}
+
+/**
+ * Quote string with slashes in a C style
+ * @link https://php.net/manual/en/function.addcslashes.php
+ * @param string $string
+ * The string to be escaped.
+ *
+ * @param string $characters
+ * A list of characters to be escaped. If
+ * charlist contains characters
+ * \n, \r etc., they are
+ * converted in C-like style, while other non-alphanumeric characters
+ * with ASCII codes lower than 32 and higher than 126 converted to
+ * octal representation.
+ *
+ *
+ * When you define a sequence of characters in the charlist argument
+ * make sure that you know what characters come between the
+ * characters that you set as the start and end of the range.
+ *
+ *
+ *
+ *
+ *
+ * Also, if the first character in a range has a higher ASCII value
+ * than the second character in the range, no range will be
+ * constructed. Only the start, end and period characters will be
+ * escaped. Use the ord function to find the
+ * ASCII value for a character.
+ *
+ *
+ *
+ *
+ *
+ * Be careful if you choose to escape characters 0, a, b, f, n, r,
+ * t and v. They will be converted to \0, \a, \b, \f, \n, \r, \t
+ * and \v.
+ * In PHP \0 (NULL), \r (carriage return), \n (newline), \f (form feed),
+ * \v (vertical tab) and \t (tab) are predefined escape sequences,
+ * while in C all of these are predefined escape sequences.
+ *
+ * @return string the escaped string.
+ */
+#[Pure]
+function addcslashes(string $string, string $characters): string {}
+
+/**
+ * Strip whitespace (or other characters) from the end of a string.
+ * Without the second parameter, rtrim() will strip these characters:
+ *
+ * - " " (ASCII 32 (0x20)), an ordinary space.
+ *
- "\t" (ASCII 9 (0x09)), a tab.
+ *
- "\n" (ASCII 10 (0x0A)), a new line (line feed).
+ *
- "\r" (ASCII 13 (0x0D)), a carriage return.
+ *
- "\0" (ASCII 0 (0x00)), the NUL-byte.
+ *
- "\x0B" (ASCII 11 (0x0B)), a vertical tab.
+ *
+ * @link https://php.net/manual/en/function.rtrim.php
+ * @param string $string
+ * The input string.
+ *
+ * @param string $characters [optional]
+ * You can also specify the characters you want to strip, by means
+ * of the charlist parameter.
+ * Simply list all characters that you want to be stripped. With
+ * .. you can specify a range of characters.
+ *
+ * @return string the modified string.
+ */
+#[Pure]
+function rtrim(string $string, string $characters = " \n\r\t\v\0"): string {}
+
+/**
+ * Replace all occurrences of the search string with the replacement string
+ * @link https://php.net/manual/en/function.str-replace.php
+ * @param string|string[] $search
+ * The value being searched for, otherwise known as the needle.
+ * An array may be used to designate multiple needles.
+ *
+ * @param string|string[] $replace
+ * The replacement value that replaces found search
+ * values. An array may be used to designate multiple replacements.
+ *
+ * @param string|string[] $subject
+ * The string or array being searched and replaced on,
+ * otherwise known as the haystack.
+ *
+ *
+ * If subject is an array, then the search and
+ * replace is performed with every entry of
+ * subject, and the return value is an array as
+ * well.
+ *
+ * @param int &$count [optional] If passed, this will hold the number of matched and replaced needles.
+ * @return string|string[] This function returns a string or an array with the replaced values.
+ */
+function str_replace(array|string $search, array|string $replace, array|string $subject, &$count): array|string {}
+
+/**
+ * Case-insensitive version of str_replace .
+ * @link https://php.net/manual/en/function.str-ireplace.php
+ * @param mixed $search
+ * Every replacement with search array is
+ * performed on the result of previous replacement.
+ *
+ * @param array|string $replace
+ *
+ * @param array|string $subject
+ * If subject is an array, then the search and
+ * replace is performed with every entry of
+ * subject, and the return value is an array as
+ * well.
+ *
+ * @param int &$count [optional]
+ * The number of matched and replaced needles will
+ * be returned in count which is passed by
+ * reference.
+ *
+ * @return string|string[] a string or an array of replacements.
+ */
+function str_ireplace(array|string $search, array|string $replace, array|string $subject, &$count): array|string {}
+
+/**
+ * Repeat a string
+ * @link https://php.net/manual/en/function.str-repeat.php
+ * @param string $string
+ * The string to be repeated.
+ *
+ * @param int $times
+ * Number of time the input string should be
+ * repeated.
+ *
+ *
+ * multiplier has to be greater than or equal to 0.
+ * If the multiplier is set to 0, the function
+ * will return an empty string.
+ *
+ * @return string the repeated string.
+ */
+#[Pure]
+function str_repeat(string $string, int $times): string {}
+
+/**
+ * Return information about characters used in a string
+ * @link https://php.net/manual/en/function.count-chars.php
+ * @param string $string
+ * The examined string.
+ *
+ * @param int $mode
+ * See return values.
+ *
+ * @return int[]|string Depending on mode
+ * count_chars returns one of the following:
+ * 0 - an array with the byte-value as key and the frequency of
+ * every byte as value.
+ * 1 - same as 0 but only byte-values with a frequency greater
+ * than zero are listed.
+ * 2 - same as 0 but only byte-values with a frequency equal to
+ * zero are listed.
+ * 3 - a string containing all unique characters is returned.
+ * 4 - a string containing all not used characters is returned.
+ */
+#[Pure]
+function count_chars(string $string, int $mode = 0): array|string {}
+
+/**
+ * Split a string into smaller chunks
+ * @link https://php.net/manual/en/function.chunk-split.php
+ * @param string $string
+ * The string to be chunked.
+ *
+ * @param int $length [optional]
+ * The chunk length.
+ *
+ * @param string $separator [optional]
+ * The line ending sequence.
+ *
+ * @return string the chunked string.
+ */
+#[Pure]
+function chunk_split(string $string, int $length = 76, string $separator = "\r\n"): string {}
+
+/**
+ * Strip whitespace (or other characters) from the beginning and end of a string
+ * @link https://php.net/manual/en/function.trim.php
+ * @param string $string
+ * The string that will be trimmed.
+ *
+ * @param string $characters [optional]
+ * Optionally, the stripped characters can also be specified using
+ * the charlist parameter.
+ * Simply list all characters that you want to be stripped. With
+ * .. you can specify a range of characters.
+ *
+ * @return string The trimmed string.
+ */
+#[Pure]
+function trim(string $string, string $characters = " \n\r\t\v\0"): string {}
+
+/**
+ * Strip whitespace (or other characters) from the beginning of a string
+ * @link https://php.net/manual/en/function.ltrim.php
+ * @param string $string
+ * The input string.
+ *
+ * @param string $characters [optional]
+ * You can also specify the characters you want to strip, by means of the
+ * charlist parameter.
+ * Simply list all characters that you want to be stripped. With
+ * .. you can specify a range of characters.
+ *
+ * @return string This function returns a string with whitespace stripped from the
+ * beginning of str.
+ * Without the second parameter,
+ * ltrim will strip these characters:
+ * " " (ASCII 32
+ * (0x20)), an ordinary space.
+ * "\t" (ASCII 9
+ * (0x09)), a tab.
+ * "\n" (ASCII 10
+ * (0x0A)), a new line (line feed).
+ * "\r" (ASCII 13
+ * (0x0D)), a carriage return.
+ * "\0" (ASCII 0
+ * (0x00)), the NUL-byte.
+ * "\x0B" (ASCII 11
+ * (0x0B)), a vertical tab.
+ */
+#[Pure]
+function ltrim(string $string, string $characters = " \n\r\t\v\0"): string {}
+
+/**
+ * Strip HTML and PHP tags from a string
+ * @link https://php.net/manual/en/function.strip-tags.php
+ * @param string $string
+ * The input string.
+ *
+ * @param string[]|string|null $allowed_tags [optional]
+ * You can use the optional second parameter to specify tags which should
+ * not be stripped.
+ *
+ *
+ * HTML comments and PHP tags are also stripped. This is hardcoded and
+ * can not be changed with allowable_tags.
+ *
+ * @return string the stripped string.
+ */
+#[Pure]
+function strip_tags(string $string, #[LanguageLevelTypeAware(["7.4" => "string[]|string|null"], default: "string|null")] $allowed_tags = null): string {}
+
+/**
+ * Calculate the similarity between two strings
+ * @link https://php.net/manual/en/function.similar-text.php
+ * @param string $string1
+ * The first string.
+ *
+ * @param string $string2
+ * The second string.
+ *
+ * @param float &$percent [optional]
+ * By passing a reference as third argument,
+ * similar_text will calculate the similarity in
+ * percent for you.
+ *
+ * @return int the number of matching chars in both strings.
+ */
+function similar_text(string $string1, string $string2, &$percent): int {}
+
+/**
+ * Split a string by a string
+ * @link https://php.net/manual/en/function.explode.php
+ * @param string $separator
+ * The boundary string.
+ *
+ * @param string $string
+ * The input string.
+ *
+ * @param int $limit [optional]
+ * If limit is set and positive, the returned array will contain
+ * a maximum of limit elements with the last
+ * element containing the rest of string.
+ *
+ *
+ * If the limit parameter is negative, all components
+ * except the last -limit are returned.
+ *
+ *
+ * If the limit parameter is zero, then this is treated as 1.
+ *
+ * @return string[]|false If delimiter is an empty string (""),
+ * explode will return false.
+ * If delimiter contains a value that is not
+ * contained in string and a negative
+ * limit is used, then an empty array will be
+ * returned. For any other limit, an array containing
+ * string will be returned.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string[]"], default: "string[]|false")]
+function explode(string $separator, string $string, int $limit = PHP_INT_MAX) {}
+
+/**
+ * Join array elements with a string
+ * @link https://php.net/manual/en/function.implode.php
+ * @param array|string $separator [optional]
+ * Defaults to an empty string. This is not the preferred usage of
+ * implode as glue would be
+ * the second parameter and thus, the bad prototype would be used.
+ *
+ * @param array|null $array
+ * The array of strings to implode.
+ *
+ * @return string a string containing a string representation of all the array
+ * elements in the same order, with the glue string between each element.
+ */
+#[Pure]
+function implode(array|string $separator = "", ?array $array): string {}
+
+/**
+ * Alias:
+ * {@see implode}
+ * @link https://php.net/manual/en/function.join.php
+ * @param array|string $separator [optional]
+ * Defaults to an empty string. This is not the preferred usage of
+ * implode as glue would be
+ * the second parameter and thus, the bad prototype would be used.
+ *
+ * @param array|null $array
+ * The array of strings to implode.
+ *
+ * @return string a string containing a string representation of all the array
+ * elements in the same order, with the glue string between each element.
+ */
+#[Pure]
+function join(array|string $separator = "", ?array $array): string {}
+
+/**
+ * Set locale information
+ * @link https://php.net/manual/en/function.setlocale.php
+ * @param int $category
+ * category is a named constant specifying the
+ * category of the functions affected by the locale setting:
+ *
+ * -
+ * LC_ALL for all of the below
+ *
+ * -
+ * LC_COLLATE for string comparison, see
+ * {@see strcoll()}
+ *
+ * -
+ * LC_CTYPE for character classification and conversion, for
+ * example {@see strtoupper()}
+ *
+ * -
+ * LC_MONETARY for {@see localeconv()}
+ *
+ * -
+ * LC_NUMERIC for decimal separator (See also
+ * {@see localeconv()})
+ *
+ * -
+ * LC_TIME for date and time formatting with
+ * {@see strftime()}
+ *
+ *
+ * -
+ * LC_MESSAGES for system responses (available if PHP was compiled with
+ * libintl)
+ *
+ *
+ *
+ * @param string|string[]|int $locales
+ * If locale is null or the empty string
+ * "", the locale names will be set from the
+ * values of environment variables with the same names as the above
+ * categories, or from "LANG".
+ *
+ *
+ * If locale is "0",
+ * the locale setting is not affected, only the current setting is returned.
+ *
+ *
+ * If locale is an array or followed by additional
+ * parameters then each array element or parameter is tried to be set as
+ * new locale until success. This is useful if a locale is known under
+ * different names on different systems or for providing a fallback
+ * for a possibly not available locale.
+ *
+ * @param string|string[] ...$rest
+ * @return string|false the new current locale, or false if the locale functionality is
+ * not implemented on your platform, the specified locale does not exist or
+ * the category name is invalid.
+ *
+ *
+ * An invalid category name also causes a warning message. Category/locale
+ * names can be found in RFC 1766
+ * and ISO 639.
+ * Different systems have different naming schemes for locales.
+ *
+ *
+ * The return value of setlocale depends
+ * on the system that PHP is running. It returns exactly
+ * what the system setlocale function returns.
+ */
+function setlocale(
+ #[ExpectedValues([LC_ALL, LC_COLLATE, LC_CTYPE, LC_MONETARY, LC_NUMERIC, LC_TIME, LC_MESSAGES])] int $category,
+ #[PhpStormStubsElementAvailable(from: '8.0')] $locales,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $rest,
+ ...$rest
+): string|false {}
+
+/**
+ * Get numeric formatting information
+ * @link https://php.net/manual/en/function.localeconv.php
+ * @return array localeconv returns data based upon the current locale
+ * as set by setlocale. The associative array that is
+ * returned contains the following fields:
+ *
+ * Array element
+ * Description
+ *
+ *
+ * decimal_point
+ * Decimal point character
+ *
+ *
+ * thousands_sep
+ * Thousands separator
+ *
+ *
+ * grouping
+ * Array containing numeric groupings
+ *
+ *
+ * int_curr_symbol
+ * International currency symbol (i.e. USD)
+ *
+ *
+ * currency_symbol
+ * Local currency symbol (i.e. $)
+ *
+ *
+ * mon_decimal_point
+ * Monetary decimal point character
+ *
+ *
+ * mon_thousands_sep
+ * Monetary thousands separator
+ *
+ *
+ * mon_grouping
+ * Array containing monetary groupings
+ *
+ *
+ * positive_sign
+ * Sign for positive values
+ *
+ *
+ * negative_sign
+ * Sign for negative values
+ *
+ *
+ * int_frac_digits
+ * International fractional digits
+ *
+ *
+ * frac_digits
+ * Local fractional digits
+ *
+ *
+ * p_cs_precedes
+ *
+ * true if currency_symbol precedes a positive value, false
+ * if it succeeds one
+ *
+ *
+ *
+ * p_sep_by_space
+ *
+ * true if a space separates currency_symbol from a positive
+ * value, false otherwise
+ *
+ *
+ *
+ * n_cs_precedes
+ *
+ * true if currency_symbol precedes a negative value, false
+ * if it succeeds one
+ *
+ *
+ *
+ * n_sep_by_space
+ *
+ * true if a space separates currency_symbol from a negative
+ * value, false otherwise
+ *
+ *
+ * p_sign_posn
+ *
+ * 0 - Parentheses surround the quantity and currency_symbol
+ * 1 - The sign string precedes the quantity and currency_symbol
+ * 2 - The sign string succeeds the quantity and currency_symbol
+ * 3 - The sign string immediately precedes the currency_symbol
+ * 4 - The sign string immediately succeeds the currency_symbol
+ *
+ *
+ * n_sign_posn
+ *
+ * 0 - Parentheses surround the quantity and currency_symbol
+ * 1 - The sign string precedes the quantity and currency_symbol
+ * 2 - The sign string succeeds the quantity and currency_symbol
+ * 3 - The sign string immediately precedes the currency_symbol
+ * 4 - The sign string immediately succeeds the currency_symbol
+ *
+ *
+ *
+ *
+ * The p_sign_posn, and n_sign_posn contain a string
+ * of formatting options. Each number representing one of the above listed conditions.
+ *
+ *
+ * The grouping fields contain arrays that define the way numbers should be
+ * grouped. For example, the monetary grouping field for the nl_NL locale (in
+ * UTF-8 mode with the euro sign), would contain a 2 item array with the
+ * values 3 and 3. The higher the index in the array, the farther left the
+ * grouping is. If an array element is equal to CHAR_MAX,
+ * no further grouping is done. If an array element is equal to 0, the previous
+ * element should be used.
+ */
+#[ArrayShape(["decimal_point" => "string", "thousands_sep" => "string", "grouping" => "array", "int_curr_symbol" => "string", "currency_symbol" => "string", "mon_decimal_point" => "string", "mon_thousands_sep" => "string", "mon_grouping" => "string", "positive_sign" => "string", "negative_sign" => "string", "int_frac_digits" => "string", "frac_digits" => "string", "p_cs_precedes" => "bool", "p_sep_by_space" => "bool", "n_cs_precedes" => "bool", "n_sep_by_space" => "bool", "p_sign_posn" => "int", "n_sign_posn" => "int"])]
+#[Pure(true)]
+function localeconv(): array {}
diff --git a/phpstorm-stubs/standard/standard_2.php b/phpstorm-stubs/standard/standard_2.php
new file mode 100644
index 0000000..8b5188b
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_2.php
@@ -0,0 +1,1016 @@
+
+ * item may be an integer value of the element or the
+ * constant name of the element. The following is a list of constant names
+ * for item that may be used and their description.
+ * Some of these constants may not be defined or hold no value for certain
+ * locales.
+ * nl_langinfo Constants
+ *
+ *
+ * Constant
+ * Description
+ *
+ *
+ * LC_TIME Category Constants
+ *
+ *
+ * ABDAY_(1-7)
+ * Abbreviated name of n-th day of the week.
+ *
+ *
+ * DAY_(1-7)
+ * Name of the n-th day of the week (DAY_1 = Sunday).
+ *
+ *
+ * ABMON_(1-12)
+ * Abbreviated name of the n-th month of the year.
+ *
+ *
+ * MON_(1-12)
+ * Name of the n-th month of the year.
+ *
+ *
+ * AM_STR
+ * String for Ante meridian.
+ *
+ *
+ * PM_STR
+ * String for Post meridian.
+ *
+ *
+ * D_T_FMT
+ * String that can be used as the format string for strftime to represent time and date.
+ *
+ *
+ * D_FMT
+ * String that can be used as the format string for strftime to represent date.
+ *
+ *
+ * T_FMT
+ * String that can be used as the format string for strftime to represent time.
+ *
+ *
+ * T_FMT_AMPM
+ * String that can be used as the format string for strftime to represent time in 12-hour format with ante/post meridian.
+ *
+ *
+ * ERA
+ * Alternate era.
+ *
+ *
+ * ERA_YEAR
+ * Year in alternate era format.
+ *
+ *
+ * ERA_D_T_FMT
+ * Date and time in alternate era format (string can be used in strftime).
+ *
+ *
+ * ERA_D_FMT
+ * Date in alternate era format (string can be used in strftime).
+ *
+ *
+ * ERA_T_FMT
+ * Time in alternate era format (string can be used in strftime).
+ *
+ *
+ * LC_MONETARY Category Constants
+ *
+ *
+ * INT_CURR_SYMBOL
+ * International currency symbol.
+ *
+ *
+ * CURRENCY_SYMBOL
+ * Local currency symbol.
+ *
+ *
+ * CRNCYSTR
+ * Same value as CURRENCY_SYMBOL.
+ *
+ *
+ * MON_DECIMAL_POINT
+ * Decimal point character.
+ *
+ *
+ * MON_THOUSANDS_SEP
+ * Thousands separator (groups of three digits).
+ *
+ *
+ * MON_GROUPING
+ * Like "grouping" element.
+ *
+ *
+ * POSITIVE_SIGN
+ * Sign for positive values.
+ *
+ *
+ * NEGATIVE_SIGN
+ * Sign for negative values.
+ *
+ *
+ * INT_FRAC_DIGITS
+ * International fractional digits.
+ *
+ *
+ * FRAC_DIGITS
+ * Local fractional digits.
+ *
+ *
+ * P_CS_PRECEDES
+ * Returns 1 if CURRENCY_SYMBOL precedes a positive value.
+ *
+ *
+ * P_SEP_BY_SPACE
+ * Returns 1 if a space separates CURRENCY_SYMBOL from a positive value.
+ *
+ *
+ * N_CS_PRECEDES
+ * Returns 1 if CURRENCY_SYMBOL precedes a negative value.
+ *
+ *
+ * N_SEP_BY_SPACE
+ * Returns 1 if a space separates CURRENCY_SYMBOL from a negative value.
+ *
+ *
+ * P_SIGN_POSN
+ * Returns 0 if parentheses surround the quantity and CURRENCY_SYMBOL.
+ *
+ *
+ * @return string|false the element as a string, or false if item
+ * is not valid.
+ */
+#[Pure(true)]
+function nl_langinfo(int $item): string|false {}
+
+/**
+ * Calculate the soundex key of a string
+ * @link https://php.net/manual/en/function.soundex.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the soundex key as a string.
+ */
+#[Pure]
+function soundex(string $string): string {}
+
+/**
+ * Calculate Levenshtein distance between two strings
+ * @link https://php.net/manual/en/function.levenshtein.php
+ * Note: In its simplest form the function will take only the two strings
+ * as parameter and will calculate just the number of insert, replace and
+ * delete operations needed to transform str1 into str2.
+ * Note: A second variant will take three additional parameters that define
+ * the cost of insert, replace and delete operations. This is more general
+ * and adaptive than variant one, but not as efficient.
+ * @param string $string1
+ * One of the strings being evaluated for Levenshtein distance.
+ *
+ * @param string $string2
+ * One of the strings being evaluated for Levenshtein distance.
+ *
+ * @param int $insertion_cost [optional]
+ * Defines the cost of insertion.
+ *
+ * @param int $replacement_cost [optional]
+ * Defines the cost of replacement.
+ *
+ * @param int $deletion_cost [optional]
+ * Defines the cost of deletion.
+ *
+ * @return int This function returns the Levenshtein-Distance between the
+ * two argument strings or -1, if one of the argument strings
+ * is longer than the limit of 255 characters.
+ */
+function levenshtein(string $string1, string $string2, int $insertion_cost = 1, int $replacement_cost = 1, int $deletion_cost = 1): int {}
+
+/**
+ * Generate a single-byte string from a number
+ * @link https://php.net/manual/en/function.chr.php
+ * @param int $codepoint
+ * The ascii code.
+ *
+ * @return string the specified character.
+ */
+#[Pure]
+function chr(int $codepoint): string {}
+
+/**
+ * Convert the first byte of a string to a value between 0 and 255
+ * @link https://php.net/manual/en/function.ord.php
+ * @param string $character
+ * A character.
+ *
+ * @return int<0, 255> the ASCII value as an integer.
+ */
+#[Pure]
+function ord(string $character): int {}
+
+/**
+ * Parses the string into variables
+ * @link https://php.net/manual/en/function.parse-str.php
+ * @param string $string
+ * The input string.
+ *
+ * @param array &$result
+ * If the second parameter arr is present,
+ * variables are stored in this variable as array elements instead.
+ * Since 7.2.0 this parameter is not optional.
+ *
+ * @return void
+ */
+function parse_str(
+ string $string,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] &$result = [],
+ #[PhpStormStubsElementAvailable(from: '8.0')] &$result
+): void {}
+
+/**
+ * Parse a CSV string into an array
+ * @link https://php.net/manual/en/function.str-getcsv.php
+ * @param string $string
+ * The string to parse.
+ *
+ * @param string $separator [optional]
+ * Set the field delimiter (one character only).
+ *
+ * @param string $enclosure [optional]
+ * Set the field enclosure character (one character only).
+ *
+ * @param string $escape [optional]
+ * Set the escape character (one character only).
+ * Defaults as a backslash (\)
+ *
+ * @return array an indexed array containing the fields read.
+ */
+#[Pure]
+function str_getcsv(string $string, string $separator = ",", string $enclosure = '"', string $escape = "\\"): array {}
+
+/**
+ * Pad a string to a certain length with another string
+ * @link https://php.net/manual/en/function.str-pad.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $length
+ * If the value of pad_length is negative,
+ * less than, or equal to the length of the input string, no padding
+ * takes place.
+ *
+ * @param string $pad_string [optional]
+ * The pad_string may be truncated if the
+ * required number of padding characters can't be evenly divided by the
+ * pad_string's length.
+ *
+ * @param int $pad_type [optional]
+ * Optional argument pad_type can be
+ * STR_PAD_RIGHT, STR_PAD_LEFT,
+ * or STR_PAD_BOTH. If
+ * pad_type is not specified it is assumed to be
+ * STR_PAD_RIGHT.
+ *
+ * @return string the padded string.
+ */
+#[Pure]
+function str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string {}
+
+/**
+ * Alias:
+ * {@see rtrim}
+ * @param string $string The input string.
+ * @param string $characters [optional]
+ * @return string the modified string.
+ * @link https://php.net/manual/en/function.chop.php
+ * @see rtrim()
+ */
+#[Pure]
+function chop(string $string, string $characters = " \n\r\t\v\0"): string {}
+
+/**
+ * Alias:
+ * {@see strstr}
+ * @link https://php.net/manual/en/function.strchr.php
+ * Note: This function is case-sensitive. For case-insensitive searches, use stristr().
+ * Note: If you only want to determine if a particular needle occurs within haystack,
+ * use the faster and less memory intensive function strpos() instead.
+ *
+ * @param string $haystack The input string.
+ * @param string $needle If needle is not a string, it is converted to an integer and applied as the ordinal value of a character.
+ * @param bool $before_needle [optional] If TRUE, strstr() returns the part of the haystack before the first occurrence of the needle (excluding the needle).
+ * @return string|false Returns the portion of string, or FALSE if needle is not found.
+ */
+#[Pure]
+function strchr(string $haystack, string $needle, bool $before_needle = false): string|false {}
+
+/**
+ * Return a formatted string
+ * @link https://php.net/manual/en/function.sprintf.php
+ * @param string $format
+ * The format string is composed of zero or more directives:
+ * ordinary characters (excluding %) that are
+ * copied directly to the result, and conversion
+ * specifications, each of which results in fetching its
+ * own parameter. This applies to both sprintf
+ * and printf.
+ *
+ *
+ * Each conversion specification consists of a percent sign
+ * (%), followed by one or more of these
+ * elements, in order:
+ * An optional sign specifier that forces a sign
+ * (- or +) to be used on a number. By default, only the - sign is used
+ * on a number if it's negative. This specifier forces positive numbers
+ * to have the + sign attached as well, and was added in PHP 4.3.0.
+ * @param string|int|float ...$values
+ *
+ * @return string a string produced according to the formatting string
+ * format.
+ */
+#[Pure]
+function sprintf(
+ string $format,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] $values,
+ mixed ...$values
+): string {}
+
+/**
+ * Output a formatted string
+ * @link https://php.net/manual/en/function.printf.php
+ * @param string $format
+ * See sprintf for a description of
+ * format.
+ *
+ * @param string|int|float ...$values [optional]
+ *
+ * @return int the length of the outputted string.
+ */
+function printf(string $format, mixed ...$values): int {}
+
+/**
+ * Output a formatted string
+ * @link https://php.net/manual/en/function.vprintf.php
+ * @param string $format
+ * See sprintf for a description of
+ * format.
+ *
+ * @param array $values
+ *
+ * @return int the length of the outputted string.
+ */
+function vprintf(string $format, array $values): int {}
+
+/**
+ * Return a formatted string
+ * @link https://php.net/manual/en/function.vsprintf.php
+ * @param string $format
+ * See sprintf for a description of
+ * format.
+ *
+ * @param array $values
+ *
+ * @return string Return array values as a formatted string according to
+ * format (which is described in the documentation
+ * for sprintf).
+ */
+#[Pure]
+function vsprintf(string $format, array $values): string {}
+
+/**
+ * Write a formatted string to a stream
+ * @link https://php.net/manual/en/function.fprintf.php
+ * @param resource $stream &fs.file.pointer;
+ * @param string $format
+ * See sprintf for a description of
+ * format.
+ *
+ * @param mixed ...$values [optional]
+ *
+ * @return int the length of the string written.
+ */
+function fprintf($stream, string $format, mixed ...$values): int {}
+
+/**
+ * Write a formatted string to a stream
+ * @link https://php.net/manual/en/function.vfprintf.php
+ * @param resource $stream
+ *
+ * @param string $format
+ * See sprintf for a description of
+ * format.
+ *
+ * @param array $values
+ *
+ * @return int the length of the outputted string.
+ */
+function vfprintf($stream, string $format, array $values): int {}
+
+/**
+ * Parses input from a string according to a format
+ * @link https://php.net/manual/en/function.sscanf.php
+ * @param string $string
+ * The input string being parsed.
+ *
+ * @param string $format
+ * The interpreted format for str, which is
+ * described in the documentation for sprintf with
+ * following differences:
+ * Function is not locale-aware.
+ * F, g, G and
+ * b are not supported.
+ * D stands for decimal number.
+ * i stands for integer with base detection.
+ * n stands for number of characters processed so far.
+ *
+ * @param mixed &...$vars [optional]
+ * @return array|int|null If only
+ * two parameters were passed to this function, the values parsed
+ * will be returned as an array. Otherwise, if optional parameters are passed,
+ * the function will return the number of assigned values. The optional
+ * parameters must be passed by reference.
+ */
+function sscanf(string $string, string $format, #[TypeContract(exists: "int|null", notExists: "array|null")] mixed &...$vars): array|int|null {}
+
+/**
+ * Parses input from a file according to a format
+ * @link https://php.net/manual/en/function.fscanf.php
+ * @param resource $stream &fs.file.pointer;
+ * @param string $format
+ * The specified format as described in the
+ * sprintf documentation.
+ *
+ * @param mixed &...$vars [optional]
+ * @return array|int|false|null If only two parameters were passed to this function, the values parsed will be
+ * returned as an array. Otherwise, if optional parameters are passed, the
+ * function will return the number of assigned values. The optional
+ * parameters must be passed by reference.
+ */
+function fscanf($stream, string $format, #[TypeContract(exists: "int|false|null", notExists: "array|false|null")] mixed &...$vars): array|int|false|null {}
+
+/**
+ * Parse a URL and return its components
+ * @link https://php.net/manual/en/function.parse-url.php
+ * @param string $url
+ * The URL to parse. Invalid characters are replaced by
+ * _.
+ *
+ * @param int $component [optional]
+ * Specify one of PHP_URL_SCHEME,
+ * PHP_URL_HOST, PHP_URL_PORT,
+ * PHP_URL_USER, PHP_URL_PASS,
+ * PHP_URL_PATH, PHP_URL_QUERY
+ * or PHP_URL_FRAGMENT to retrieve just a specific
+ * URL component as a string.
+ *
+ * @return array|string|int|null|false On seriously malformed URLs, parse_url() may return FALSE.
+ * If the component parameter is omitted, an associative array is returned.
+ * At least one element will be present within the array. Potential keys within this array are:
+ * scheme - e.g. http
+ * host
+ * port
+ * user
+ * pass
+ * path
+ * query - after the question mark ?
+ * fragment - after the hashmark #
+ *
+ *
+ * If the component parameter is specified a
+ * string is returned instead of an array.
+ */
+#[ArrayShape(["scheme" => "string", "host" => "string", "port" => "int", "user" => "string", "pass" => "string", "query" => "string", "path" => "string", "fragment" => "string"])]
+#[Pure]
+function parse_url(string $url, int $component = -1): array|string|int|false|null {}
+
+/**
+ * URL-encodes string
+ * @link https://php.net/manual/en/function.urlencode.php
+ * @param string $string
+ * The string to be encoded.
+ *
+ * @return string a string in which all non-alphanumeric characters except
+ * -_. have been replaced with a percent
+ * (%) sign followed by two hex digits and spaces encoded
+ * as plus (+) signs. It is encoded the same way that the
+ * posted data from a WWW form is encoded, that is the same way as in
+ * application/x-www-form-urlencoded media type. This
+ * differs from the RFC 3986 encoding (see
+ * rawurlencode) in that for historical reasons, spaces
+ * are encoded as plus (+) signs.
+ */
+#[Pure]
+function urlencode(string $string): string {}
+
+/**
+ * Decodes URL-encoded string
+ * @link https://php.net/manual/en/function.urldecode.php
+ * @param string $string
+ * The string to be decoded.
+ *
+ * @return string the decoded string.
+ */
+#[Pure]
+function urldecode(string $string): string {}
+
+/**
+ * URL-encode according to RFC 3986
+ * @link https://php.net/manual/en/function.rawurlencode.php
+ * @param string $string
+ * The URL to be encoded.
+ *
+ * @return string a string in which all non-alphanumeric characters except
+ * -_. have been replaced with a percent
+ * (%) sign followed by two hex digits. This is the
+ * encoding described in RFC 1738 for
+ * protecting literal characters from being interpreted as special URL
+ * delimiters, and for protecting URLs from being mangled by transmission
+ * media with character conversions (like some email systems).
+ */
+#[Pure]
+function rawurlencode(string $string): string {}
+
+/**
+ * Decode URL-encoded strings
+ * @link https://php.net/manual/en/function.rawurldecode.php
+ * @param string $string
+ * The URL to be decoded.
+ *
+ * @return string the decoded URL, as a string.
+ */
+#[Pure]
+function rawurldecode(string $string): string {}
+
+/**
+ * Generate URL-encoded query string
+ * @link https://php.net/manual/en/function.http-build-query.php
+ * @param object|array $data
+ * May be an array or object containing properties.
+ *
+ *
+ * If query_data is an array, it may be a simple one-dimensional structure,
+ * or an array of arrays (which in turn may contain other arrays).
+ *
+ *
+ * If query_data is an object, then only public properties will be incorporated into the result.
+ *
+ * @param string $numeric_prefix [optional]
+ * If numeric indices are used in the base array and this parameter is
+ * provided, it will be prepended to the numeric index for elements in
+ * the base array only.
+ *
+ *
+ * This is meant to allow for legal variable names when the data is
+ * decoded by PHP or another CGI application later on.
+ *
+ * @param string|null $arg_separator
+ * arg_separator.output
+ * is used to separate arguments, unless this parameter is specified,
+ * and is then used.
+ *
+ * @param int $encoding_type By default, PHP_QUERY_RFC1738.
+ * If enc_type is PHP_QUERY_RFC1738, then encoding is performed per » RFC 1738 and the application/x-www-form-urlencoded media type,
+ * which implies that spaces are encoded as plus (+) signs.
+ *
If enc_type is PHP_QUERY_RFC3986, then encoding is performed according to » RFC 3986, and spaces will be percent encoded (%20).
+ * @return string a URL-encoded string.
+ */
+#[Pure]
+function http_build_query(object|array $data, string $numeric_prefix = "", ?string $arg_separator = null, int $encoding_type = PHP_QUERY_RFC1738): string {}
+
+/**
+ * Returns the target of a symbolic link
+ * @link https://php.net/manual/en/function.readlink.php
+ * @param string $path
+ * The symbolic link path.
+ *
+ * @return string|false the contents of the symbolic link path or false on error.
+ */
+#[Pure(true)]
+function readlink(string $path): string|false {}
+
+/**
+ * Gets information about a link
+ * @link https://php.net/manual/en/function.linkinfo.php
+ * @param string $path
+ * Path to the link.
+ *
+ * @return int|false linkinfo returns the st_dev field
+ * of the Unix C stat structure returned by the lstat
+ * system call. Returns 0 or false in case of error.
+ */
+#[Pure(true)]
+function linkinfo(string $path): int|false {}
+
+/**
+ * Creates a symbolic link
+ * @link https://php.net/manual/en/function.symlink.php
+ * @param string $target
+ * Target of the link.
+ *
+ * @param string $link
+ * The link name.
+ *
+ * @return bool true on success or false on failure.
+ */
+function symlink(string $target, string $link): bool {}
+
+/**
+ * Create a hard link
+ * @link https://php.net/manual/en/function.link.php
+ * @param string $target Target of the link.
+ * @param string $link The link name.
+ * @return bool true on success or false on failure.
+ */
+function link(string $target, string $link): bool {}
+
+/**
+ * Deletes a file
+ * @link https://php.net/manual/en/function.unlink.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param resource $context [optional]
+ * @return bool true on success or false on failure.
+ */
+function unlink(string $filename, $context): bool {}
+
+/**
+ * Execute an external program
+ * @link https://php.net/manual/en/function.exec.php
+ * @param string $command
+ * The command that will be executed.
+ *
+ * @param array &$output [optional]
+ * If the output argument is present, then the
+ * specified array will be filled with every line of output from the
+ * command. Trailing whitespace, such as \n, is not
+ * included in this array. Note that if the array already contains some
+ * elements, exec will append to the end of the array.
+ * If you do not want the function to append elements, call
+ * unset on the array before passing it to
+ * exec.
+ *
+ * @param int &$result_code [optional]
+ * If the return_var argument is present
+ * along with the output argument, then the
+ * return status of the executed command will be written to this
+ * variable.
+ *
+ * @return string|false The last line from the result of the command. If you need to execute a
+ * command and have all the data from the command passed directly back without
+ * any interference, use the passthru function.
+ *
+ *
+ * To get the output of the executed command, be sure to set and use the
+ * output parameter.
+ */
+function exec(string $command, &$output, &$result_code): string|false {}
+
+/**
+ * Execute an external program and display the output
+ * @link https://php.net/manual/en/function.system.php
+ * @param string $command
+ * The command that will be executed.
+ *
+ * @param int &$result_code [optional]
+ * If the return_var argument is present, then the
+ * return status of the executed command will be written to this
+ * variable.
+ *
+ * @return string|false the last line of the command output on success, and false
+ * on failure.
+ */
+function system(string $command, &$result_code): string|false {}
+
+/**
+ * Escape shell metacharacters
+ * @link https://php.net/manual/en/function.escapeshellcmd.php
+ * @param string $command
+ * The command that will be escaped.
+ *
+ * @return string The escaped string.
+ */
+#[Pure]
+function escapeshellcmd(string $command): string {}
+
+/**
+ * Escape a string to be used as a shell argument
+ * @link https://php.net/manual/en/function.escapeshellarg.php
+ * @param string $arg
+ * The argument that will be escaped.
+ *
+ * @return string The escaped string.
+ */
+#[Pure]
+function escapeshellarg(string $arg): string {}
+
+/**
+ * Execute an external program and display raw output
+ * @link https://php.net/manual/en/function.passthru.php
+ * @param string $command
+ * The command that will be executed.
+ *
+ * @param int &$result_code [optional]
+ * If the return_var argument is present, the
+ * return status of the Unix command will be placed here.
+ *
+ * @return bool|null null on success or false on failure.
+ */
+#[LanguageLevelTypeAware(['8.2' => 'null|false'], default: 'null|bool')]
+function passthru(string $command, &$result_code): ?bool {}
+
+/**
+ * Execute command via shell and return the complete output as a string
+ * @link https://php.net/manual/en/function.shell-exec.php
+ * @param string $command
+ * The command that will be executed.
+ *
+ * @return string|false|null The output from the executed command or NULL if an error occurred or the command produces no output.
+ */
+function shell_exec(string $command): string|false|null {}
+
+/**
+ * Execute a command and open file pointers for input/output
+ * @link https://php.net/manual/en/function.proc-open.php
+ * @param array|string $command
+ * Execute a command and open file pointers for input/output
+ *
+ *
+ * As of PHP 7.4.0, cmd may be passed as array of command parameters.
+ * In this case the process will be opened directly
+ * (without going through a shell) and PHP will take care of any
+ * necessary argument escaping.
+ *
+ * @param array $descriptor_spec
+ * An indexed array where the key represents the descriptor number and the
+ * value represents how PHP will pass that descriptor to the child
+ * process. 0 is stdin, 1 is stdout, while 2 is stderr.
+ *
+ *
+ * Each element can be:
+ * An array describing the pipe to pass to the process. The first
+ * element is the descriptor type and the second element is an option for
+ * the given type. Valid types are pipe (the second
+ * element is either r to pass the read end of the pipe
+ * to the process, or w to pass the write end) and
+ * file (the second element is a filename).
+ * A stream resource representing a real file descriptor (e.g. opened file,
+ * a socket, STDIN).
+ *
+ *
+ * The file descriptor numbers are not limited to 0, 1 and 2 - you may
+ * specify any valid file descriptor number and it will be passed to the
+ * child process. This allows your script to interoperate with other
+ * scripts that run as "co-processes". In particular, this is useful for
+ * passing passphrases to programs like PGP, GPG and openssl in a more
+ * secure manner. It is also useful for reading status information
+ * provided by those programs on auxiliary file descriptors.
+ *
+ * @param array &$pipes
+ * Will be set to an indexed array of file pointers that correspond to
+ * PHP's end of any pipes that are created.
+ *
+ * @param string|null $cwd [optional]
+ * The initial working dir for the command. This must be an
+ * absolute directory path, or null
+ * if you want to use the default value (the working dir of the current
+ * PHP process)
+ *
+ * @param array|null $env_vars [optional]
+ * An array with the environment variables for the command that will be
+ * run, or null to use the same environment as the current PHP process
+ *
+ * @param array|null $options [optional]
+ * Allows you to specify additional options. Currently supported options
+ * include:
+ * suppress_errors (windows only): suppresses errors generated by this
+ * function when it's set to TRUE
+ * generated by this function when it's set to true
+ * bypass_shell (windows only): bypass cmd.exe shell when set to TRUE
+ * context: stream context used when opening files
+ * (created with stream_context_create)
+ * blocking_pipes: (windows only): force blocking pipes when set to TRUE
+ * create_process_group (windows only): allow the child process to handle
+ * CTRL events when set to TRUE
+ * create_new_console (windows only): the new process has a new console,
+ * instead of inheriting its parent's console
+ *
+ * @return resource|false a resource representing the process, which should be freed using
+ * proc_close when you are finished with it. On failure
+ * returns false.
+ */
+function proc_open(array|string $command, array $descriptor_spec, &$pipes, ?string $cwd, ?array $env_vars, ?array $options) {}
+
+/**
+ * Close a process opened by {@see proc_open} and return the exit code of that process
+ * @link https://php.net/manual/en/function.proc-close.php
+ * @param resource $process
+ * The proc_open resource that will
+ * be closed.
+ *
+ * @return int the termination status of the process that was run.
+ */
+function proc_close($process): int {}
+
+/**
+ * Kills a process opened by proc_open
+ * @link https://php.net/manual/en/function.proc-terminate.php
+ * @param resource $process
+ * The proc_open resource that will
+ * be closed.
+ *
+ * @param int $signal [optional]
+ * This optional parameter is only useful on POSIX
+ * operating systems; you may specify a signal to send to the process
+ * using the kill(2) system call. The default is
+ * SIGTERM.
+ *
+ * @return bool the termination status of the process that was run.
+ */
+function proc_terminate($process, int $signal = 15): bool {}
+
+/**
+ * Get information about a process opened by {@see proc_open}
+ * @link https://php.net/manual/en/function.proc-get-status.php
+ * @param resource $process
+ * The proc_open resource that will
+ * be evaluated.
+ *
+ * @return array|false An array of collected information on success, and false
+ * on failure. The returned array contains the following elements:
+ *
+ *
+ *
element type description
+ *
+ * command
+ * string
+ *
+ * The command string that was passed to proc_open.
+ *
+ *
+ *
+ * pid
+ * int
+ * process id
+ *
+ *
+ * running
+ * bool
+ *
+ * true if the process is still running, false if it has
+ * terminated.
+ *
+ *
+ *
+ * signaled
+ * bool
+ *
+ * true if the child process has been terminated by
+ * an uncaught signal. Always set to false on Windows.
+ *
+ *
+ *
+ * stopped
+ * bool
+ *
+ * true if the child process has been stopped by a
+ * signal. Always set to false on Windows.
+ *
+ *
+ *
+ * exitcode
+ * int
+ *
+ * The exit code returned by the process (which is only
+ * meaningful if running is false).
+ * Only first call of this function return real value, next calls return
+ * -1.
+ *
+ *
+ *
+ * termsig
+ * int
+ *
+ * The number of the signal that caused the child process to terminate
+ * its execution (only meaningful if signaled is true).
+ *
+ *
+ *
+ * stopsig
+ * int
+ *
+ * The number of the signal that caused the child process to stop its
+ * execution (only meaningful if stopped is true).
+ *
+ *
+ */
+#[ArrayShape(["command" => "string", "pid" => "int", "running" => "bool", "signaled" => "bool", "stopped" => "bool", "exitcode" => "int", "termsig" => "int", "stopsig" => "int"])]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function proc_get_status($process) {}
+
+/**
+ * Change the priority of the current process.
+ * Since 7.2.0 supported on Windows platforms.
+ * @link https://php.net/manual/en/function.proc-nice.php
+ * @param int $priority
+ * The increment value of the priority change.
+ *
+ * @return bool true on success or false on failure.
+ * If an error occurs, like the user lacks permission to change the priority,
+ * an error of level E_WARNING is also generated.
+ */
+function proc_nice(int $priority): bool {}
+
+/**
+ * Get port number associated with an Internet service and protocol
+ * @link https://php.net/manual/en/function.getservbyname.php
+ * @param string $service
+ * The Internet service name, as a string.
+ *
+ * @param string $protocol
+ * protocol is either "tcp"
+ * or "udp" (in lowercase).
+ *
+ * @return int|false the port number, or false if service or
+ * protocol is not found.
+ */
+#[Pure]
+function getservbyname(string $service, string $protocol): int|false {}
+
+/**
+ * Get Internet service which corresponds to port and protocol
+ * @link https://php.net/manual/en/function.getservbyport.php
+ * @param int $port
+ * The port number.
+ *
+ * @param string $protocol
+ * protocol is either "tcp"
+ * or "udp" (in lowercase).
+ *
+ * @return string|false the Internet service name as a string.
+ */
+#[Pure]
+function getservbyport(int $port, string $protocol): string|false {}
+
+/**
+ * Get protocol number associated with protocol name
+ * @link https://php.net/manual/en/function.getprotobyname.php
+ * @param string $protocol
+ * The protocol name.
+ *
+ * @return int|false the protocol number or -1 if the protocol is not found.
+ */
+#[Pure]
+function getprotobyname(string $protocol): int|false {}
+
+/**
+ * Get protocol name associated with protocol number
+ * @link https://php.net/manual/en/function.getprotobynumber.php
+ * @param int $protocol
+ * The protocol number.
+ *
+ * @return string|false the protocol name as a string.
+ */
+#[Pure]
+function getprotobynumber(int $protocol): string|false {}
+
+/**
+ * Gets PHP script owner's UID
+ * @link https://php.net/manual/en/function.getmyuid.php
+ * @return int|false the user ID of the current script, or false on error.
+ */
+#[Pure]
+function getmyuid(): int|false {}
+
+/**
+ * Get PHP script owner's GID
+ * @link https://php.net/manual/en/function.getmygid.php
+ * @return int|false the group ID of the current script, or false on error.
+ */
+#[Pure]
+function getmygid(): int|false {}
+
+/**
+ * Gets PHP's process ID
+ * @link https://php.net/manual/en/function.getmypid.php
+ * @return int|false the current PHP process ID, or false on error.
+ */
+#[Pure]
+function getmypid(): int|false {}
+
+/**
+ * Gets the inode of the current script
+ * @link https://php.net/manual/en/function.getmyinode.php
+ * @return int|false the current script's inode as an integer, or false on error.
+ */
+#[Pure]
+function getmyinode(): int|false {}
diff --git a/phpstorm-stubs/standard/standard_3.php b/phpstorm-stubs/standard/standard_3.php
new file mode 100644
index 0000000..54b322b
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_3.php
@@ -0,0 +1,1104 @@
+
+ * The encoded data.
+ *
+ * @param bool $strict [optional]
+ * Returns false if input contains character from outside the base64
+ * alphabet.
+ *
+ * @return string|false the original data or false on failure. The returned data may be
+ * binary.
+ */
+#[Pure]
+function base64_decode(string $string, bool $strict = false): string|false {}
+
+/**
+ * Encodes data with MIME base64
+ * @link https://php.net/manual/en/function.base64-encode.php
+ * @param string $string
+ * The data to encode.
+ *
+ * @return string The encoded data, as a string.
+ */
+#[Pure]
+function base64_encode(string $string): string {}
+
+/**
+ * Uuencode a string
+ * @link https://php.net/manual/en/function.convert-uuencode.php
+ * @param string $string
+ * The data to be encoded.
+ *
+ * @return string the uuencoded data.
+ */
+#[Pure]
+function convert_uuencode(string $string): string {}
+
+/**
+ * Decode a uuencoded string
+ * @link https://php.net/manual/en/function.convert-uudecode.php
+ * @param string $string
+ * The uuencoded data.
+ *
+ * @return string|false the decoded data as a string.
+ */
+#[Pure]
+function convert_uudecode(string $string): string|false {}
+
+/**
+ * Absolute value
+ * @link https://php.net/manual/en/function.abs.php
+ * @param int|float $num
+ * The numeric value to process
+ *
+ * @return float|int The absolute value of number. If the
+ * argument number is
+ * of type float, the return type is also float,
+ * otherwise it is integer (as float usually has a
+ * bigger value range than integer).
+ */
+#[Pure]
+function abs(int|float $num): int|float {}
+
+/**
+ * Round fractions up
+ * @link https://php.net/manual/en/function.ceil.php
+ * @param int|float $num
+ * The value to round
+ *
+ * @return float|false value rounded up to the next highest
+ * integer.
+ * The return value of ceil is still of type
+ * float as the value range of float is
+ * usually bigger than that of integer.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "float"], default: "float|false")]
+function ceil(int|float $num) {}
+/**
+ * Round fractions down
+ * @link https://php.net/manual/en/function.floor.php
+ * @param int|float $num
+ * The numeric value to round
+ *
+ * @return float|false value rounded to the next lowest integer.
+ * The return value of floor is still of type
+ * float because the value range of float is
+ * usually bigger than that of integer.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "float"], default: "float|false")]
+function floor(int|float $num) {}
+
+/**
+ * Returns the rounded value of val to specified precision (number of digits after the decimal point).
+ * precision can also be negative or zero (default).
+ * Note: PHP doesn't handle strings like "12,300.2" correctly by default. See converting from strings.
+ * @link https://php.net/manual/en/function.round.php
+ * @param int|float $num
+ * The value to round
+ *
+ * @param int $precision [optional]
+ * The optional number of decimal digits to round to.
+ *
+ * @param int $mode [optional]
+ * One of PHP_ROUND_HALF_UP,
+ * PHP_ROUND_HALF_DOWN,
+ * PHP_ROUND_HALF_EVEN, or
+ * PHP_ROUND_HALF_ODD.
+ *
+ * @return float The rounded value
+ */
+#[Pure]
+function round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float {}
+
+/**
+ * Sine
+ * @link https://php.net/manual/en/function.sin.php
+ * @param float $num
+ * A value in radians
+ *
+ * @return float The sine of arg
+ */
+#[Pure]
+function sin(float $num): float {}
+
+/**
+ * Cosine
+ * @link https://php.net/manual/en/function.cos.php
+ * @param float $num
+ * An angle in radians
+ *
+ * @return float The cosine of arg
+ */
+#[Pure]
+function cos(float $num): float {}
+
+/**
+ * Tangent
+ * @link https://php.net/manual/en/function.tan.php
+ * @param float $num
+ * The argument to process in radians
+ *
+ * @return float The tangent of arg
+ */
+#[Pure]
+function tan(float $num): float {}
+
+/**
+ * Arc sine
+ * @link https://php.net/manual/en/function.asin.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The arc sine of arg in radians
+ */
+#[Pure]
+function asin(float $num): float {}
+
+/**
+ * Arc cosine
+ * @link https://php.net/manual/en/function.acos.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The arc cosine of arg in radians.
+ */
+#[Pure]
+function acos(float $num): float {}
+
+/**
+ * Arc tangent
+ * @link https://php.net/manual/en/function.atan.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The arc tangent of arg in radians.
+ */
+#[Pure]
+function atan(float $num): float {}
+
+/**
+ * Inverse hyperbolic tangent
+ * @link https://php.net/manual/en/function.atanh.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float Inverse hyperbolic tangent of arg
+ */
+#[Pure]
+function atanh(float $num): float {}
+
+/**
+ * Arc tangent of two variables
+ * @link https://php.net/manual/en/function.atan2.php
+ * @param float $y
+ * Dividend parameter
+ *
+ * @param float $x
+ * Divisor parameter
+ *
+ * @return float The arc tangent of y/x
+ * in radians.
+ */
+#[Pure]
+function atan2(float $y, float $x): float {}
+
+/**
+ * Hyperbolic sine
+ * @link https://php.net/manual/en/function.sinh.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The hyperbolic sine of arg
+ */
+#[Pure]
+function sinh(float $num): float {}
+
+/**
+ * Hyperbolic cosine
+ * @link https://php.net/manual/en/function.cosh.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The hyperbolic cosine of arg
+ */
+#[Pure]
+function cosh(float $num): float {}
+
+/**
+ * Hyperbolic tangent
+ * @link https://php.net/manual/en/function.tanh.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The hyperbolic tangent of arg
+ */
+#[Pure]
+function tanh(float $num): float {}
+
+/**
+ * Inverse hyperbolic sine
+ * @link https://php.net/manual/en/function.asinh.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The inverse hyperbolic sine of arg
+ */
+#[Pure]
+function asinh(float $num): float {}
+
+/**
+ * Inverse hyperbolic cosine
+ * @link https://php.net/manual/en/function.acosh.php
+ * @param float $num
+ * The value to process
+ *
+ * @return float The inverse hyperbolic cosine of arg
+ */
+#[Pure]
+function acosh(float $num): float {}
+
+/**
+ * Returns exp(number) - 1, computed in a way that is accurate even
+ * when the value of number is close to zero
+ * @link https://php.net/manual/en/function.expm1.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float 'e' to the power of arg minus one
+ */
+#[Pure]
+function expm1(float $num): float {}
+
+/**
+ * Returns log(1 + number), computed in a way that is accurate even when
+ * the value of number is close to zero
+ * @link https://php.net/manual/en/function.log1p.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float log(1 + number)
+ */
+#[Pure]
+function log1p(float $num): float {}
+
+/**
+ * Get value of pi
+ * @link https://php.net/manual/en/function.pi.php
+ * @return float The value of pi as float.
+ */
+#[Pure]
+function pi(): float {}
+
+/**
+ * Finds whether a value is a legal finite number
+ * @link https://php.net/manual/en/function.is-finite.php
+ * @param float $num
+ * The value to check
+ *
+ * @return bool true if val is a legal finite
+ * number within the allowed range for a PHP float on this platform,
+ * else false.
+ */
+#[Pure]
+function is_finite(float $num): bool {}
+
+/**
+ * Finds whether a value is not a number
+ * @link https://php.net/manual/en/function.is-nan.php
+ * @param float $num
+ * The value to check
+ *
+ * @return bool true if val is 'not a number',
+ * else false.
+ */
+#[Pure]
+function is_nan(float $num): bool {}
+
+/**
+ * Integer division
+ * @link https://php.net/manual/en/function.intdiv.php
+ * @param int $num1 Number to be divided.
+ * @param int $num2 Number which divides the dividend
+ * @return int
+ * @since 7.0
+ * @throws DivisionByZeroError if divisor is 0
+ * @throws ArithmeticError if the dividend is PHP_INT_MIN and the divisor is -1
+ */
+#[Pure]
+function intdiv(int $num1, int $num2): int {}
+
+/**
+ * Finds whether a value is infinite
+ * @link https://php.net/manual/en/function.is-infinite.php
+ * @param float $num
+ * The value to check
+ *
+ * @return bool true if val is infinite, else false.
+ */
+#[Pure]
+function is_infinite(float $num): bool {}
+
+/**
+ * Exponential expression
+ * @link https://php.net/manual/en/function.pow.php
+ * @param mixed $num
+ * The base to use
+ *
+ * @param mixed $exponent
+ * The exponent
+ *
+ * @return object|int|float base raised to the power of exp.
+ * If the result can be represented as integer it will be returned as type
+ * integer, else it will be returned as type float.
+ * If the power cannot be computed false will be returned instead.
+ */
+#[Pure]
+function pow(mixed $num, mixed $exponent): object|int|float {}
+
+/**
+ * Calculates the exponent of e
+ * @link https://php.net/manual/en/function.exp.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float 'e' raised to the power of arg
+ */
+#[Pure]
+function exp(float $num): float {}
+
+/**
+ * Natural logarithm
+ * @link https://php.net/manual/en/function.log.php
+ * @param float $num
+ * The value to calculate the logarithm for
+ *
+ * @param float $base [optional]
+ * The optional logarithmic base to use
+ * (defaults to 'e' and so to the natural logarithm).
+ *
+ * @return float The logarithm of arg to
+ * base, if given, or the
+ * natural logarithm.
+ */
+#[Pure]
+function log(float $num, float $base = M_E): float {}
+
+/**
+ * Base-10 logarithm
+ * @link https://php.net/manual/en/function.log10.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The base-10 logarithm of arg
+ */
+#[Pure]
+function log10(float $num): float {}
+
+/**
+ * Square root
+ * @link https://php.net/manual/en/function.sqrt.php
+ * @param float $num
+ * The argument to process
+ *
+ * @return float The square root of arg
+ * or the special value NAN for negative numbers.
+ */
+#[Pure]
+function sqrt(float $num): float {}
+
+/**
+ * Calculate the length of the hypotenuse of a right-angle triangle
+ * @link https://php.net/manual/en/function.hypot.php
+ * @param float $x
+ * Length of first side
+ *
+ * @param float $y
+ * Length of second side
+ *
+ * @return float Calculated length of the hypotenuse
+ */
+#[Pure]
+function hypot(float $x, float $y): float {}
+
+/**
+ * Converts the number in degrees to the radian equivalent
+ * @link https://php.net/manual/en/function.deg2rad.php
+ * @param float $num
+ * Angular value in degrees
+ *
+ * @return float The radian equivalent of number
+ */
+#[Pure]
+function deg2rad(float $num): float {}
+
+/**
+ * Converts the radian number to the equivalent number in degrees
+ * @link https://php.net/manual/en/function.rad2deg.php
+ * @param float $num
+ * A radian value
+ *
+ * @return float The equivalent of number in degrees
+ */
+#[Pure]
+function rad2deg(float $num): float {}
+
+/**
+ * Binary to decimal
+ * @link https://php.net/manual/en/function.bindec.php
+ * @param string $binary_string
+ * The binary string to convert
+ *
+ * @return int|float The decimal value of binary_string
+ */
+#[Pure]
+function bindec(string $binary_string): int|float {}
+
+/**
+ * Hexadecimal to decimal
+ * @link https://php.net/manual/en/function.hexdec.php
+ * @param string $hex_string
+ * The hexadecimal string to convert
+ *
+ * @return int|float The decimal representation of hex_string
+ */
+#[Pure]
+function hexdec(string $hex_string): int|float {}
+
+/**
+ * Octal to decimal
+ * @link https://php.net/manual/en/function.octdec.php
+ * @param string $octal_string
+ * The octal string to convert
+ *
+ * @return int|float The decimal representation of octal_string
+ */
+#[Pure]
+function octdec(string $octal_string): int|float {}
+
+/**
+ * Decimal to binary
+ * @link https://php.net/manual/en/function.decbin.php
+ * @param int $num
+ * Decimal value to convert
+ *
+ *
+ * Range of inputs on 32-bit machines
+ *
+ * positive number
+ * negative number
+ * return value
+ *
+ *
+ * 0
+ *
+ * 0
+ *
+ *
+ * 1
+ *
+ * 1
+ *
+ *
+ * 2
+ *
+ * 10
+ *
+ *
+ * ... normal progression ...
+ *
+ *
+ * 2147483646
+ *
+ * 1111111111111111111111111111110
+ *
+ *
+ * 2147483647 (largest signed integer)
+ *
+ * 1111111111111111111111111111111 (31 1's)
+ *
+ *
+ * 2147483648
+ * -2147483648
+ * 10000000000000000000000000000000
+ *
+ *
+ * ... normal progression ...
+ *
+ *
+ * 4294967294
+ * -2
+ * 11111111111111111111111111111110
+ *
+ *
+ * 4294967295 (largest unsigned integer)
+ * -1
+ * 11111111111111111111111111111111 (32 1's)
+ *
+ *
+ *
+ * Range of inputs on 64-bit machines
+ *
+ * positive number
+ * negative number
+ * return value
+ *
+ *
+ * 0
+ *
+ * 0
+ *
+ *
+ * 1
+ *
+ * 1
+ *
+ *
+ * 2
+ *
+ * 10
+ *
+ *
+ * ... normal progression ...
+ *
+ *
+ * 9223372036854775806
+ *
+ * 111111111111111111111111111111111111111111111111111111111111110
+ *
+ *
+ * 9223372036854775807 (largest signed integer)
+ *
+ * 111111111111111111111111111111111111111111111111111111111111111 (31 1's)
+ *
+ *
+ *
+ * -9223372036854775808
+ * 1000000000000000000000000000000000000000000000000000000000000000
+ *
+ *
+ * ... normal progression ...
+ *
+ *
+ *
+ * -2
+ * 1111111111111111111111111111111111111111111111111111111111111110
+ *
+ *
+ *
+ * -1
+ * 1111111111111111111111111111111111111111111111111111111111111111 (64 1's)
+ *
+ *
+ * @return string Binary string representation of number
+ */
+#[Pure]
+function decbin(int $num): string {}
+
+/**
+ * Decimal to octal
+ * @link https://php.net/manual/en/function.decoct.php
+ * @param int $num
+ * Decimal value to convert
+ *
+ * @return string Octal string representation of number
+ */
+#[Pure]
+function decoct(int $num): string {}
+
+/**
+ * Decimal to hexadecimal
+ * @link https://php.net/manual/en/function.dechex.php
+ * @param int $num
+ * Decimal value to convert
+ *
+ * @return string Hexadecimal string representation of number
+ */
+#[Pure]
+function dechex(int $num): string {}
+
+/**
+ * Convert a number between arbitrary bases
+ * @link https://php.net/manual/en/function.base-convert.php
+ * @param string $num
+ * The number to convert
+ *
+ * @param int $from_base
+ * The base number is in
+ *
+ * @param int $to_base
+ * The base to convert number to
+ *
+ * @return string number converted to base tobase
+ */
+#[Pure]
+function base_convert(string $num, int $from_base, int $to_base): string {}
+
+/**
+ * Format a number with grouped thousands
+ * @link https://php.net/manual/en/function.number-format.php
+ * @param float $num
+ * The number being formatted.
+ *
+ * @param int $decimals [optional]
+ * Sets the number of decimal points.
+ *
+ * @param string|null $decimal_separator [optional]
+ * @param string|null $thousands_separator [optional]
+ * @return string A formatted version of number.
+ */
+#[Pure]
+function number_format(float $num, int $decimals = 0, ?string $decimal_separator = '.', ?string $thousands_separator = ','): string {}
+
+/**
+ * Returns the floating point remainder (modulo) of the division
+ * of the arguments
+ * @link https://php.net/manual/en/function.fmod.php
+ * @param float $num1
+ * The dividend
+ *
+ * @param float $num2
+ * The divisor
+ *
+ * @return float The floating point remainder of
+ * x/y
+ */
+#[Pure]
+function fmod(float $num1, float $num2): float {}
+
+/**
+ * Performs a floating-point division under
+ * IEEE 754 semantics. Division by zero is considered well-defined and
+ * will return one of Inf, -Inf or NaN.
+ * @param float $num1
+ * @param float $num2
+ * @return float
+ * @since 8.0
+ */
+#[Pure]
+function fdiv(float $num1, float $num2): float {}
+
+/**
+ * Converts a packed internet address to a human readable representation
+ * @link https://php.net/manual/en/function.inet-ntop.php
+ * @param string $ip
+ * A 32bit IPv4, or 128bit IPv6 address.
+ *
+ * @return string|false a string representation of the address or false on failure.
+ */
+#[Pure]
+function inet_ntop(string $ip): string|false {}
+
+/**
+ * Converts a human readable IP address to its packed in_addr representation
+ * @link https://php.net/manual/en/function.inet-pton.php
+ * @param string $ip
+ * A human readable IPv4 or IPv6 address.
+ *
+ * @return string|false the in_addr representation of the given
+ * address
+ */
+#[Pure]
+function inet_pton(string $ip): string|false {}
+
+/**
+ * Converts a string containing an (IPv4) Internet Protocol dotted address into a long integer
+ * @link https://php.net/manual/en/function.ip2long.php
+ * @param string $ip
+ * A standard format address.
+ *
+ * @return int|false the IPv4 address or false if ip_address
+ * is invalid.
+ */
+#[Pure]
+function ip2long(string $ip): int|false {}
+
+/**
+ * Converts an long integer address into a string in (IPv4) internet standard dotted format
+ * @link https://php.net/manual/en/function.long2ip.php
+ * @param int $ip
+ * A proper address representation.
+ *
+ * @return string|false the Internet IP address as a string.
+ */
+#[Pure]
+function long2ip(int $ip): string|false {}
+
+/**
+ * Gets the value of an environment variable
+ * @link https://php.net/manual/en/function.getenv.php
+ * @param string|null $name
+ * The variable name.
+ *
+ * @param bool $local_only [optional]
+ * Set to true to only return local environment variables (set by the operating system or putenv).
+ *
+ * @return string|array|false the value of the environment variable
+ * varname or an associative array with all environment variables if no variable name
+ * is provided, or false on an error.
+ */
+#[Pure(true)]
+function getenv(
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $varname,
+ #[PhpStormStubsElementAvailable(from: '7.1')] ?string $name = null,
+ #[PhpStormStubsElementAvailable(from: '5.6')] bool $local_only = false
+): array|string|false {}
+
+/**
+ * Sets the value of an environment variable
+ * @link https://php.net/manual/en/function.putenv.php
+ * @param string $assignment
+ * The setting, like "FOO=BAR"
+ *
+ * @return bool true on success or false on failure.
+ */
+function putenv(string $assignment): bool {}
+
+/**
+ * Gets options from the command line argument list
+ * @link https://php.net/manual/en/function.getopt.php
+ * @param string $short_options Each character in this string will be used as option characters and
+ * matched against options passed to the script starting with a single
+ * hyphen (-).
+ * For example, an option string "x" recognizes an
+ * option -x.
+ * Only a-z, A-Z and 0-9 are allowed.
+ * @param array $long_options An array of options. Each element in this array will be used as option
+ * strings and matched against options passed to the script starting with
+ * two hyphens (--).
+ * For example, an longopts element "opt" recognizes an
+ * option --opt.
+ * Prior to PHP5.3.0 this parameter was only available on few systems
+ * @param int &$rest_index [optional] If the optind parameter is present, then the index where argument parsing stopped will be written to this variable.
+ * @return string[]|false[]|false This function will return an array of option / argument pairs or false on
+ * failure.
+ */
+function getopt(
+ string $short_options,
+ array $long_options = [],
+ #[PhpStormStubsElementAvailable(from: '7.1')] &$rest_index
+): array|false {}
+
+/**
+ * Gets system load average
+ * @link https://php.net/manual/en/function.sys-getloadavg.php
+ * @return array|false an array with three samples (last 1, 5 and 15
+ * minutes).
+ * @since 5.1.3
+ */
+#[Pure(true)]
+function sys_getloadavg(): array|false {}
+
+/**
+ * Return current Unix timestamp with microseconds
+ * @link https://php.net/manual/en/function.microtime.php
+ * @param bool $as_float [optional]
+ * When called without the optional argument, this function returns the string
+ * "msec sec" where sec is the current time measured in the number of
+ * seconds since the Unix Epoch (0:00:00 January 1, 1970 GMT), and
+ * msec is the microseconds part.
+ * Both portions of the string are returned in units of seconds.
+ *
+ *
+ * If the optional get_as_float is set to
+ * true then a float (in seconds) is returned.
+ *
+ * @return string|float
+ */
+#[Pure(true)]
+function microtime(#[TypeContract(true: "float", false: "string")] bool $as_float = false): string|float {}
+
+/**
+ * Get current time
+ * @link https://php.net/manual/en/function.gettimeofday.php
+ * @param bool $as_float [optional]
+ * When set to true, a float instead of an array is returned.
+ *
+ * @return int[]|float By default an array is returned. If return_float
+ * is set, then a float is returned.
+ *
+ *
+ * Array keys:
+ * "sec" - seconds since the Unix Epoch
+ * "usec" - microseconds
+ * "minuteswest" - minutes west of Greenwich
+ * "dsttime" - type of dst correction
+ */
+#[Pure(true)]
+#[ArrayShape(["sec" => "int", "usec" => "int", "minuteswest" => "int", "dsttime" => "int"])]
+function gettimeofday(#[TypeContract(true: "float", false: "int[]")] bool $as_float = false): array|float {}
+
+/**
+ * Gets the current resource usages
+ * @link https://php.net/manual/en/function.getrusage.php
+ * @param int $mode
+ * If who is 1, getrusage will be called with
+ * RUSAGE_CHILDREN.
+ *
+ * @return array|false an associative array containing the data returned from the system
+ * call. All entries are accessible by using their documented field names.
+ */
+#[Pure(true)]
+function getrusage(int $mode = 0): array|false {}
+
+/**
+ * Generate a unique ID
+ * @link https://php.net/manual/en/function.uniqid.php
+ * @param string $prefix [optional]
+ * Can be useful, for instance, if you generate identifiers
+ * simultaneously on several hosts that might happen to generate the
+ * identifier at the same microsecond.
+ *
+ *
+ * With an empty prefix, the returned string will
+ * be 13 characters long. If more_entropy is
+ * true, it will be 23 characters.
+ *
+ * @param bool $more_entropy [optional]
+ * If set to true, uniqid will add additional
+ * entropy (using the combined linear congruential generator) at the end
+ * of the return value, which should make the results more unique.
+ *
+ * @return string the unique identifier, as a string.
+ */
+function uniqid(string $prefix = "", bool $more_entropy = false): string {}
+
+/**
+ * Convert a quoted-printable string to an 8 bit string
+ * @link https://php.net/manual/en/function.quoted-printable-decode.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the 8-bit binary string.
+ */
+#[Pure]
+function quoted_printable_decode(string $string): string {}
+
+/**
+ * Convert a 8 bit string to a quoted-printable string
+ * @link https://php.net/manual/en/function.quoted-printable-encode.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the encoded string.
+ */
+#[Pure]
+function quoted_printable_encode(string $string): string {}
+
+/**
+ * Convert from one Cyrillic character set to another
+ * @link https://php.net/manual/en/function.convert-cyr-string.php
+ * @param string $str
+ * The string to be converted.
+ *
+ * @param string $from
+ * The source Cyrillic character set, as a single character.
+ *
+ * @param string $to
+ * The target Cyrillic character set, as a single character.
+ *
+ * @return string the converted string.
+ * @removed 8.0
+ * @see mb_convert_string()
+ * @see iconv()
+ * @see UConverter
+ */
+#[Pure]
+#[Deprecated(since: '7.4', reason: 'Us mb_convert_string(), iconv() or UConverter instead.')]
+function convert_cyr_string(string $str, string $from, string $to): string {}
+
+/**
+ * Gets the name of the owner of the current PHP script
+ * @link https://php.net/manual/en/function.get-current-user.php
+ * @return string the username as a string.
+ */
+#[Pure(true)]
+function get_current_user(): string {}
+
+/**
+ * Limits the maximum execution time
+ * @link https://php.net/manual/en/function.set-time-limit.php
+ * @param int $seconds
+ * The maximum execution time, in seconds. If set to zero, no time limit
+ * is imposed.
+ *
+ * @return bool Returns TRUE on success, or FALSE on failure.
+ */
+function set_time_limit(int $seconds): bool {}
+
+/**
+ * Gets the value of a PHP configuration option
+ * @link https://php.net/manual/en/function.get-cfg-var.php
+ * @param string $option
+ * The configuration option name.
+ *
+ * @return array|string|false the current value of the PHP configuration variable specified by
+ * option, or false if an error occurs.
+ */
+#[Pure]
+function get_cfg_var(string $option): array|string|false {}
+
+/**
+ * Alias:
+ * {@see set_magic_quotes_runtime}
+ * @link https://php.net/manual/en/function.magic-quotes-runtime.php
+ * @param bool $new_setting
+ * @removed 7.0
+ */
+#[Deprecated(since: '5.3')]
+function magic_quotes_runtime(bool $new_setting) {}
+
+/**
+ * Sets the current active configuration setting of magic_quotes_runtime
+ * @link https://php.net/manual/en/function.set-magic-quotes-runtime.php
+ * @param bool $new_setting
+ * false for off, true for on.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 7.0
+ */
+#[Deprecated(reason: "This function has been DEPRECATED as of PHP 5.4.0. Raises an E_CORE_ERROR", since: "5.3")]
+function set_magic_quotes_runtime(bool $new_setting): bool {}
+
+/**
+ * Gets the current configuration setting of magic quotes gpc
+ * @link https://php.net/manual/en/function.get-magic-quotes-gpc.php
+ * @return int 0 if magic quotes gpc are off, 1 otherwise.
+ * @removed 8.0
+ */
+#[Deprecated(since: '7.4')]
+function get_magic_quotes_gpc(): int {}
+
+/**
+ * Gets the current active configuration setting of magic_quotes_runtime
+ * @link https://php.net/manual/en/function.get-magic-quotes-runtime.php
+ * @return int 0 if magic quotes runtime is off, 1 otherwise.
+ */
+#[Deprecated(since: '7.4')]
+function get_magic_quotes_runtime(): int {}
+
+/**
+ * Import GET/POST/Cookie variables into the global scope
+ * @link https://php.net/manual/en/function.import-request-variables.php
+ * @param string $types
+ * Using the types parameter, you can specify
+ * which request variables to import. You can use 'G', 'P' and 'C'
+ * characters respectively for GET, POST and Cookie. These characters are
+ * not case sensitive, so you can also use any combination of 'g', 'p'
+ * and 'c'. POST includes the POST uploaded file information.
+ *
+ *
+ * Note that the order of the letters matters, as when using
+ * "GP", the
+ * POST variables will overwrite GET variables with the same name. Any
+ * other letters than GPC are discarded.
+ *
+ * @param string $prefix [optional]
+ * Variable name prefix, prepended before all variable's name imported
+ * into the global scope. So if you have a GET value named
+ * "userid", and provide a prefix
+ * "pref_", then you'll get a global variable named
+ * $pref_userid.
+ *
+ *
+ * Although the prefix parameter is optional, you
+ * will get an E_NOTICE level
+ * error if you specify no prefix, or specify an empty string as a
+ * prefix. This is a possible security hazard. Notice level errors are
+ * not displayed using the default error reporting level.
+ *
+ * @return bool true on success or false on failure.
+ * @removed 5.4
+ */
+#[Deprecated(reason: "This function has been DEPRECATED as of PHP 5.3.0", since: "5.3")]
+function import_request_variables(string $types, $prefix = null): bool {}
+
+/**
+ * Send an error message to the defined error handling routines
+ * @link https://php.net/manual/en/function.error-log.php
+ * @param string $message
+ * The error message that should be logged.
+ *
+ * @param int $message_type
+ * Says where the error should go. The possible message types are as
+ * follows:
+ *
+ *
+ *
+ * error_log log types
+ *
+ * 0
+ *
+ * message is sent to PHP's system logger, using
+ * the Operating System's system logging mechanism or a file, depending
+ * on what the error_log
+ * configuration directive is set to. This is the default option.
+ *
+ *
+ *
+ * 1
+ *
+ * message is sent by email to the address in
+ * the destination parameter. This is the only
+ * message type where the fourth parameter,
+ * extra_headers is used.
+ *
+ *
+ *
+ * 2
+ *
+ * No longer an option.
+ *
+ *
+ *
+ * 3
+ *
+ * message is appended to the file
+ * destination. A newline is not automatically
+ * added to the end of the message string.
+ *
+ *
+ *
+ * 4
+ *
+ * message is sent directly to the SAPI logging
+ * handler.
+ *
+ *
+ *
+ *
+ * @param string|null $destination [optional]
+ * The destination. Its meaning depends on the
+ * message_type parameter as described above.
+ *
+ * @param string|null $additional_headers [optional]
+ * The extra headers. It's used when the message_type
+ * parameter is set to 1.
+ * This message type uses the same internal function as
+ * mail does.
+ *
+ * @return bool true on success or false on failure.
+ */
+function error_log(string $message, int $message_type = 0, ?string $destination, ?string $additional_headers): bool {}
diff --git a/phpstorm-stubs/standard/standard_4.php b/phpstorm-stubs/standard/standard_4.php
new file mode 100644
index 0000000..522279f
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_4.php
@@ -0,0 +1,1199 @@
+ "int", "message" => "string", "file" => "string", "line" => "int"])]
+#[Pure(true)]
+function error_get_last(): ?array {}
+
+/**
+ * Call the callback given by the first parameter
+ * @link https://php.net/manual/en/function.call-user-func.php
+ * @param callable $callback
+ * The function to be called. Class methods may also be invoked
+ * statically using this function by passing
+ * array($classname, $methodname) to this parameter.
+ * Additionally class methods of an object instance may be called by passing
+ * array($objectinstance, $methodname) to this parameter.
+ *
+ * @param mixed ...$args [optional]
+ * Zero or more parameters to be passed to the function.
+ *
+ *
+ * Note that the parameters for call_user_func are
+ * not passed by reference.
+ * call_user_func example and references
+ *
+ * @return mixed the function result, or false on error.
+ */
+function call_user_func(callable $callback, mixed ...$args): mixed {}
+
+/**
+ * Call a callback with an array of parameters
+ * @link https://php.net/manual/en/function.call-user-func-array.php
+ * @param callable $callback
+ * The function to be called.
+ *
+ * @param array $args
+ * The parameters to be passed to the function, as an indexed array.
+ *
+ * @return mixed the function result, or false on error.
+ */
+function call_user_func_array(callable $callback, array $args): mixed {}
+
+/**
+ * Call a user method on an specific object
+ * @link https://php.net/manual/en/function.call-user-method.php
+ * @param string $method_name
+ * @param object &$obj
+ * @param mixed ...$parameter [optional]
+ * @return mixed
+ * @removed 7.0
+ * @see call_user_func()
+ */
+#[Deprecated(reason: "use call_user_func() instead", since: "5.3")]
+function call_user_method(string $method_name, object &$obj, ...$parameter): mixed {}
+
+/**
+ * Call a user method given with an array of parameters
+ * @link https://php.net/manual/en/function.call-user-method-array.php
+ * @param string $method_name
+ * @param object &$obj
+ * @param array $params
+ * @return mixed
+ * @removed 7.0
+ * @see call_user_func()
+ */
+#[Deprecated(reason: "use call_user_func() instead", since: "5.3")]
+function call_user_method_array(string $method_name, object &$obj, array $params): mixed {}
+
+/**
+ * Call a static method
+ * @link https://php.net/manual/en/function.forward-static-call.php
+ * @param callable $callback
+ * The function or method to be called. This parameter may be an array,
+ * with the name of the class, and the method, or a string, with a function
+ * name.
+ *
+ * @param mixed ...$args [optional]
+ * Zero or more parameters to be passed to the function.
+ *
+ * @return mixed the function result, or false on error.
+ */
+function forward_static_call(callable $callback, mixed ...$args): mixed {}
+
+/**
+ * Call a static method and pass the arguments as array
+ * @link https://php.net/manual/en/function.forward-static-call-array.php
+ * @param callable $callback
+ * The function or method to be called. This parameter may be an array,
+ * with the name of the class, and the method, or a string, with a function
+ * name.
+ *
+ * @param array $args
+ * @return mixed the function result, or false on error.
+ */
+function forward_static_call_array(callable $callback, array $args): mixed {}
+
+/**
+ * Generates a storable representation of a value
+ * @link https://php.net/manual/en/function.serialize.php
+ * @param mixed $value
+ * The value to be serialized. serialize
+ * handles all types, except the resource-type.
+ * You can even serialize arrays that contain
+ * references to itself. Circular references inside the array/object you
+ * are serializing will also be stored. Any other
+ * reference will be lost.
+ *
+ *
+ * When serializing objects, PHP will attempt to call the member function
+ * __sleep prior to serialization.
+ * This is to allow the object to do any last minute clean-up, etc. prior
+ * to being serialized. Likewise, when the object is restored using
+ * unserialize the __wakeup member function is called.
+ *
+ *
+ * Object's private members have the class name prepended to the member
+ * name; protected members have a '*' prepended to the member name.
+ * These prepended values have null bytes on either side.
+ *
+ * @return string a string containing a byte-stream representation of
+ * value that can be stored anywhere.
+ */
+function serialize(mixed $value): string {}
+
+/**
+ * Creates a PHP value from a stored representation
+ * @link https://php.net/manual/en/function.unserialize.php
+ * @param string $data
+ * The serialized string.
+ *
+ *
+ * If the variable being unserialized is an object, after successfully
+ * reconstructing the object PHP will automatically attempt to call the
+ * __wakeup member function (if it exists).
+ *
+ *
+ * unserialize_callback_func directive
+ *
+ *
+ * It's possible to set a callback-function which will be called,
+ * if an undefined class should be instantiated during unserializing.
+ * (to prevent getting an incomplete object "__PHP_Incomplete_Class".)
+ * Use your "php.ini", ini_set or ".htaccess"
+ * to define 'unserialize_callback_func'. Everytime an undefined class
+ * should be instantiated, it'll be called. To disable this feature just
+ * empty this setting.
+ *
+ * @param array $options [optional]
+ * Any options to be provided to unserialize(), as an associative array.
+ *
+ * The 'allowed_classes' option key may be set to a value that is
+ * either an array of class names which should be accepted, FALSE to
+ * accept no classes, or TRUE to accept all classes. If this option is defined
+ * and unserialize() encounters an object of a class that isn't to be accepted,
+ * then the object will be instantiated as __PHP_Incomplete_Class instead.
+ * Omitting this option is the same as defining it as TRUE: PHP will attempt
+ * to instantiate objects of any class.
+ *
+ * @return mixed The converted value is returned, and can be a boolean,
+ * integer, float, string,
+ * array or object.
+ *
+ *
+ * In case the passed string is not unserializeable, false is returned and
+ * E_NOTICE is issued.
+ */
+function unserialize(string $data, #[PhpStormStubsElementAvailable(from: '7.0')] array $options = []): mixed {}
+
+/**
+ * Dumps information about a variable
+ * @link https://php.net/manual/en/function.var-dump.php
+ * @param mixed $value
+ * The variable you want to export.
+ *
+ * @param mixed ...$values [optional]
+ * @return void
+ */
+#[PhpStormStubsElementAvailable(from: '8.0')]
+function var_dump(mixed $value, mixed ...$values): void {}
+
+/**
+ * Dumps information about a variable
+ * @link https://php.net/manual/en/function.var-dump.php
+ * @param mixed ...$vars
+ * The variable you want to export.
+ *
+ * @return void
+ */
+#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')]
+function var_dump(...$vars): void {}
+
+/**
+ * Outputs or returns a parsable string representation of a variable
+ * @link https://php.net/manual/en/function.var-export.php
+ * @param mixed $value
+ * The variable you want to export.
+ *
+ * @param bool $return [optional]
+ * If used and set to true, var_export will return
+ * the variable representation instead of outputting it.
+ *
+ * @return string|null the variable representation when the return
+ * parameter is used and evaluates to true. Otherwise, this function will
+ * return null.
+ */
+function var_export(mixed $value, bool $return = false): ?string {}
+
+/**
+ * Dumps a string representation of an internal zend value to output
+ * @link https://php.net/manual/en/function.debug-zval-dump.php
+ * @param mixed $value The variable being evaluated.
+ * @param mixed ...$values
+ * The other variable being evaluated.
+ *
+ * @return void
+ */
+function debug_zval_dump(
+ #[PhpStormStubsElementAvailable(from: '8.0')] mixed $value,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $values,
+ mixed ...$values
+): void {}
+
+/**
+ * Prints human-readable information about a variable
+ * @link https://php.net/manual/en/function.print-r.php
+ * @param mixed $value
+ * The expression to be printed.
+ *
+ * @param bool $return [optional]
+ * If you would like to capture the output of print_r,
+ * use the return parameter. If this parameter is set
+ * to true, print_r will return its output, instead of
+ * printing it (which it does by default).
+ *
+ * @return string|bool If given a string, integer or float,
+ * the value itself will be printed. If given an array, values
+ * will be presented in a format that shows keys and elements. Similar
+ * notation is used for objects.
+ */
+function print_r(mixed $value, bool $return = false): string|bool {}
+
+/**
+ * Returns the amount of memory allocated to PHP
+ * @link https://php.net/manual/en/function.memory-get-usage.php
+ * @param bool $real_usage [optional]
+ * Set this to true to get the real size of memory allocated from
+ * system. If not set or false only the memory used by
+ * emalloc() is reported.
+ *
+ * @return int the memory amount in bytes.
+ */
+#[Pure(true)]
+function memory_get_usage(bool $real_usage = false): int {}
+
+/**
+ * Returns the peak of memory allocated by PHP
+ * @link https://php.net/manual/en/function.memory-get-peak-usage.php
+ * @param bool $real_usage [optional]
+ * Set this to true to get the real size of memory allocated from
+ * system. If not set or false only the memory used by
+ * emalloc() is reported.
+ *
+ * @return int the memory peak in bytes.
+ */
+#[Pure(true)]
+function memory_get_peak_usage(bool $real_usage = false): int {}
+
+/**
+ * @since 8.2
+ */
+function memory_reset_peak_usage(): void {}
+
+/**
+ * Register a function for execution on shutdown
+ * @link https://php.net/manual/en/function.register-shutdown-function.php
+ * @param callable $callback
+ * The shutdown function to register.
+ *
+ *
+ * The shutdown functions are called as the part of the request so that
+ * it's possible to send the output from them. There is currently no way
+ * to process the data with output buffering functions in the shutdown
+ * function.
+ *
+ *
+ * Shutdown functions are called after closing all opened output buffers
+ * thus, for example, its output will not be compressed if zlib.output_compression is
+ * enabled.
+ *
+ * @param mixed ...$args [optional]
+ * It is possible to pass parameters to the shutdown function by passing
+ * additional parameters.
+ *
+ * @return bool|null
+ */
+#[LanguageLevelTypeAware(['8.2' => 'void'], default: 'null|bool')]
+function register_shutdown_function(callable $callback, mixed ...$args): ?bool {}
+
+/**
+ * Register a function for execution on each tick
+ * @link https://php.net/manual/en/function.register-tick-function.php
+ * @param callable $callback
+ * The function name as a string, or an array consisting of an object and
+ * a method.
+ *
+ * @param mixed ...$args [optional]
+ *
+ * @return bool true on success or false on failure.
+ */
+function register_tick_function(callable $callback, mixed ...$args): bool {}
+
+/**
+ * De-register a function for execution on each tick
+ * @link https://php.net/manual/en/function.unregister-tick-function.php
+ * @param callable $callback
+ * The function name as a string, or an array consisting of an object and
+ * a method.
+ *
+ * @return void
+ */
+function unregister_tick_function(callable $callback): void {}
+
+/**
+ * Syntax highlighting of a file
+ * @link https://php.net/manual/en/function.highlight-file.php
+ * @param string $filename
+ * Path to the PHP file to be highlighted.
+ *
+ * @param bool $return [optional]
+ * Set this parameter to true to make this function return the
+ * highlighted code.
+ *
+ * @return string|bool If return is set to true, returns the highlighted
+ * code as a string instead of printing it out. Otherwise, it will return
+ * true on success, false on failure.
+ */
+function highlight_file(string $filename, bool $return = false): string|bool {}
+
+/**
+ * Alias:
+ * {@see highlight_file}
+ * @link https://php.net/manual/en/function.show-source.php
+ * @param string $filename
+ * @param bool $return [optional]
+ * @return string|bool
+ */
+function show_source(string $filename, bool $return = false): string|bool {}
+
+/**
+ * Syntax highlighting of a string
+ * @link https://php.net/manual/en/function.highlight-string.php
+ * @param string $string
+ * The PHP code to be highlighted. This should include the opening tag.
+ *
+ * @param bool $return [optional]
+ * Set this parameter to true to make this function return the
+ * highlighted code.
+ *
+ * @return string|bool If return is set to true, returns the highlighted
+ * code as a string instead of printing it out. Otherwise, it will return
+ * true on success, false on failure.
+ */
+function highlight_string(string $string, bool $return = false): string|bool {}
+
+/**
+ * Get the system's high resolution time
+ * @link https://secure.php.net/manual/en/function.hrtime.php
+ * @param bool $as_number Whether the high resolution time should be returned as array or number.
+ * @since 7.3
+ * @return int[]|int|float|false Returns an array of integers in the form [seconds, nanoseconds], if the parameter get_as_number is false.
+ * Otherwise the nanoseconds are returned as integer (64bit platforms) or float (32bit platforms).
+ */
+#[Pure(true)]
+function hrtime(bool $as_number = false): array|int|float|false {}
+
+/**
+ * Return source with stripped comments and whitespace
+ * @link https://php.net/manual/en/function.php-strip-whitespace.php
+ * @param string $filename
+ * Path to the PHP file.
+ *
+ * @return string The stripped source code will be returned on success, or an empty string
+ * on failure.
+ *
+ *
+ * This function works as described as of PHP 5.0.1. Before this it would
+ * only return an empty string. For more information on this bug and its
+ * prior behavior, see bug report
+ * #29606.
+ */
+#[Pure(true)]
+function php_strip_whitespace(string $filename): string {}
+
+/**
+ * Gets the value of a configuration option
+ * @link https://php.net/manual/en/function.ini-get.php
+ * @link https://php.net/manual/en/ini.list.php
+ * @param string $option
+ * The configuration option name.
+ *
+ * @return string|false the value of the configuration option as a string on success, or
+ * an empty string on failure or for null values.
+ */
+#[Pure(true)]
+function ini_get(string $option): string|false {}
+
+/**
+ * Gets all configuration options
+ * @link https://php.net/manual/en/function.ini-get-all.php
+ * @link https://php.net/manual/en/ini.list.php
+ * @param string|null $extension [optional]
+ * An optional extension name. If set, the function return only options
+ * specific for that extension.
+ *
+ * @param bool $details [optional]
+ * Retrieve details settings or only the current value for each setting.
+ * Default is true (retrieve details).
+ *
+ * @return array|false an associative array with directive name as the array key.
+ *
+ * When details is true (default) the array will
+ * contain global_value (set in
+ * "php.ini"), local_value (perhaps set with
+ * ini_set or ".htaccess"), and
+ * access (the access level).
+ *
+ *
+ * When details is false the value will be the
+ * current value of the option.
+ *
+ *
+ * See the manual section
+ * for information on what access levels mean.
+ *
+ *
+ * It's possible for a directive to have multiple access levels, which is
+ * why access shows the appropriate bitmask values.
+ *
+ */
+#[Pure(true)]
+#[ArrayShape(["global_value" => "string", "local_value" => "string", "access" => "int"])]
+function ini_get_all(?string $extension, #[PhpStormStubsElementAvailable(from: '7.0')] bool $details = true): array|false {}
+
+/**
+ * Sets the value of a configuration option
+ * @link https://php.net/manual/en/function.ini-set.php
+ * @link https://php.net/manual/en/ini.list.php
+ * @param string $option
+ *
+ *
+ * Not all the available options can be changed using
+ * ini_set. There is a list of all available options
+ * in the appendix.
+ *
+ * @param string $value
+ * The new value for the option.
+ *
+ * @return string|false the old value on success, false on failure.
+ */
+function ini_set(string $option, #[LanguageLevelTypeAware(['8.1' => 'string|int|float|bool|null'], default: 'string')] $value): string|false {}
+
+/**
+ * Alias:
+ * {@see ini_set}
+ * @link https://php.net/manual/en/function.ini-alter.php
+ * @link https://php.net/manual/en/ini.list.php
+ * @param string $option
+ * @param string $value
+ * @return string|false
+ */
+function ini_alter(string $option, #[LanguageLevelTypeAware(['8.1' => 'string|int|float|bool|null'], default: 'string')] $value): string|false {}
+
+/**
+ * Restores the value of a configuration option
+ * @link https://php.net/manual/en/function.ini-restore.php
+ * @link https://php.net/manual/en/ini.list.php
+ * @param string $option
+ * The configuration option name.
+ *
+ * @return void
+ */
+function ini_restore(string $option): void {}
+
+/**
+ * @param string $shorthand
+ * @return int
+ * @since 8.2
+ */
+function ini_parse_quantity(string $shorthand): int {}
+
+/**
+ * Gets the current include_path configuration option
+ * @link https://php.net/manual/en/function.get-include-path.php
+ * @return string|false the path, as a string.
+ */
+#[Pure(true)]
+function get_include_path(): string|false {}
+
+/**
+ * Sets the include_path configuration option
+ * @link https://php.net/manual/en/function.set-include-path.php
+ * @param string $include_path
+ * The new value for the include_path
+ *
+ * @return string|false the old include_path on
+ * success or false on failure.
+ */
+function set_include_path(string $include_path): string|false {}
+
+/**
+ * Restores the value of the include_path configuration option
+ * @link https://php.net/manual/en/function.restore-include-path.php
+ * @return void
+ * @removed 8.0
+ */
+#[Deprecated(since: '7.4')]
+function restore_include_path() {}
+
+/**
+ * Send a cookie
+ * @link https://php.net/manual/en/function.setcookie.php
+ * @param string $name
+ * The name of the cookie.
+ *
+ * @param string $value [optional]
+ * The value of the cookie. This value is stored on the clients
+ * computer; do not store sensitive information.
+ * Assuming the name is 'cookiename', this
+ * value is retrieved through $_COOKIE['cookiename']
+ *
+ * @param int $expires_or_options [optional]
+ * The time the cookie expires. This is a Unix timestamp so is
+ * in number of seconds since the epoch. In other words, you'll
+ * most likely set this with the time function
+ * plus the number of seconds before you want it to expire. Or
+ * you might use mktime.
+ * time()+60*60*24*30 will set the cookie to
+ * expire in 30 days. If set to 0, or omitted, the cookie will expire at
+ * the end of the session (when the browser closes).
+ *
+ *
+ *
+ * You may notice the expire parameter takes on a
+ * Unix timestamp, as opposed to the date format Wdy, DD-Mon-YYYY
+ * HH:MM:SS GMT, this is because PHP does this conversion
+ * internally.
+ *
+ *
+ * expire is compared to the client's time which can
+ * differ from server's time.
+ *
+ *
+ * @param string $path [optional]
+ * The path on the server in which the cookie will be available on.
+ * If set to '/', the cookie will be available
+ * within the entire domain. If set to
+ * '/foo/', the cookie will only be available
+ * within the /foo/ directory and all
+ * sub-directories such as /foo/bar/ of
+ * domain. The default value is the
+ * current directory that the cookie is being set in.
+ *
+ * @param string $domain [optional]
+ * The domain that the cookie is available.
+ * To make the cookie available on all subdomains of example.com
+ * then you'd set it to '.example.com'. The
+ * . is not required but makes it compatible
+ * with more browsers. Setting it to www.example.com
+ * will make the cookie only available in the www
+ * subdomain. Refer to tail matching in the
+ * spec for details.
+ *
+ * @param bool $secure [optional]
+ * Indicates that the cookie should only be transmitted over a
+ * secure HTTPS connection from the client. When set to true, the
+ * cookie will only be set if a secure connection exists.
+ * On the server-side, it's on the programmer to send this
+ * kind of cookie only on secure connection (e.g. with respect to
+ * $_SERVER["HTTPS"]).
+ *
+ * @param bool $httponly [optional]
+ * When true the cookie will be made accessible only through the HTTP
+ * protocol. This means that the cookie won't be accessible by
+ * scripting languages, such as JavaScript. This setting can effectively
+ * help to reduce identity theft through XSS attacks (although it is
+ * not supported by all browsers). Added in PHP 5.2.0.
+ * true or false
+ *
+ * @return bool If output exists prior to calling this function,
+ * setcookie will fail and return false. If
+ * setcookie successfully runs, it will return true.
+ * This does not indicate whether the user accepted the cookie.
+ */
+function setcookie(string $name, string $value = "", int $expires_or_options = 0, string $path = "", string $domain = "", bool $secure = false, bool $httponly = false): bool {}
+
+/**
+ * Send a cookie
+ *
+ * @link https://php.net/manual/en/function.setcookie.php
+ *
+ * @param string $name The name of the cookie.
+ * @param string $value [optional] The value of the cookie. This value is stored on the clients
+ * computer; do not store sensitive information.
+ * Assuming the name is 'cookiename', this value is retrieved through $_COOKIE['cookiename']
+ * @param array $options [optional] An associative array which may have any of the keys expires, path, domain, secure,
+ * httponly and samesite. The values have the same meaning as described for the parameters with
+ * the same name. The value of the samesite element should be either Lax or Strict.
+ * If any of the allowed options are not given, their default values are the same
+ * as the default values of the explicit parameters. If the samesite element is omitted,
+ * no SameSite cookie attribute is set.
+ *
+ * @return bool If output exists prior to calling this function, setcookie will fail and return false. If
+ * setcookie successfully runs, it will return true.
+ * This does not indicate whether the user accepted the cookie.
+ * @since 7.3
+ */
+function setcookie(string $name, string $value = '', array $options = []): bool {}
+
+/**
+ * Send a cookie without urlencoding the cookie value
+ * @link https://php.net/manual/en/function.setrawcookie.php
+ * @param string $name
+ * @param string $value [optional]
+ * @param int $expires_or_options [optional]
+ * @param string $path [optional]
+ * @param string $domain [optional]
+ * @param bool $secure [optional]
+ * @param bool $httponly [optional]
+ * @return bool true on success or false on failure.
+ */
+function setrawcookie(string $name, $value = '', $expires_or_options = 0, $path = "", $domain = "", $secure = false, $httponly = false): bool {}
+
+/**
+ * Send a cookie without urlencoding the cookie value
+ *
+ * @link https://php.net/manual/en/function.setrawcookie.php
+ *
+ * @param string $name The name of the cookie.
+ * @param string $value [optional] The value of the cookie. This value is stored on the clients
+ * computer; do not store sensitive information.
+ * Assuming the name is 'cookiename', this value is retrieved through $_COOKIE['cookiename']
+ * @param array $options [optional] An associative array which may have any of the keys expires, path, domain, secure,
+ * httponly and samesite. The values have the same meaning as described for the parameters with
+ * the same name. The value of the samesite element should be either Lax or Strict.
+ * If any of the allowed options are not given, their default values are the same
+ * as the default values of the explicit parameters. If the samesite element is omitted,
+ * no SameSite cookie attribute is set.
+ *
+ * @return bool If output exists prior to calling this function, setcookie will fail and return false. If
+ * setcookie successfully runs, it will return true.
+ * This does not indicate whether the user accepted the cookie.
+ * @since 7.3
+ */
+function setrawcookie(string $name, $value = '', array $options = []): bool {}
+
+/**
+ * Send a raw HTTP header
+ * @link https://php.net/manual/en/function.header.php
+ * @param string $header
+ * The header string.
+ *
+ *
+ * There are two special-case header calls. The first is a header
+ * that starts with the string "HTTP/" (case is not
+ * significant), which will be used to figure out the HTTP status
+ * code to send. For example, if you have configured Apache to
+ * use a PHP script to handle requests for missing files (using
+ * the ErrorDocument directive), you may want to
+ * make sure that your script generates the proper status code.
+ *
+ *
+ * The second special case is the "Location:" header. Not only does
+ * it send this header back to the browser, but it also returns a
+ * REDIRECT (302) status code to the browser
+ * unless the 201 or
+ * a 3xx status code has already been set.
+ *
+ * @param bool $replace [optional]
+ * The optional replace parameter indicates
+ * whether the header should replace a previous similar header, or
+ * add a second header of the same type. By default it will replace,
+ * but if you pass in false as the second argument you can force
+ * multiple headers of the same type. For example:
+ *
+ * @param int $response_code
+ * Forces the HTTP response code to the specified value.
+ *
+ * @return void
+ */
+function header(string $header, bool $replace = true, int $response_code = 0): void {}
+
+/**
+ * Remove previously set headers
+ * @link https://php.net/manual/en/function.header-remove.php
+ * @param string|null $name [optional]
+ * The header name to be removed.
+ *
+ * This parameter is case-insensitive.
+ * @return void
+ */
+function header_remove(?string $name): void {}
+
+/**
+ * Checks if or where headers have been sent
+ * @link https://php.net/manual/en/function.headers-sent.php
+ * @param string &$filename [optional]
+ * If the optional file and
+ * line parameters are set,
+ * headers_sent will put the PHP source file name
+ * and line number where output started in the file
+ * and line variables.
+ *
+ * @param int &$line [optional]
+ * The line number where the output started.
+ *
+ * @return bool headers_sent will return false if no HTTP headers
+ * have already been sent or true otherwise.
+ */
+function headers_sent(&$filename, &$line): bool {}
+
+/**
+ * Returns a list of response headers sent (or ready to send)
+ * @link https://php.net/manual/en/function.headers-list.php
+ * @return array a numerically indexed array of headers.
+ */
+#[Pure]
+function headers_list(): array {}
+
+/**
+ * Fetches all HTTP request headers from the current request
+ * @link https://php.net/manual/en/function.apache-request-headers.php
+ * @return array|false An associative array of all the HTTP headers in the current request, or FALSE on failure.
+ */
+#[Pure]
+function apache_request_headers(): false|array {}
+
+/**
+ * Fetches all HTTP headers from the current request.
+ * This function is an alias for apache_request_headers(). Please read the apache_request_headers() documentation for more information on how this function works.
+ * @link https://php.net/manual/en/function.getallheaders.php
+ * @return array|false An associative array of all the HTTP headers in the current request, or FALSE on failure.
+ */
+#[Pure]
+function getallheaders(): false|array {}
+
+/**
+ * Check whether client disconnected
+ * @link https://php.net/manual/en/function.connection-aborted.php
+ * @return int 1 if client disconnected, 0 otherwise.
+ */
+#[Pure(true)]
+function connection_aborted(): int {}
+
+/**
+ * Returns connection status bitfield
+ * @link https://php.net/manual/en/function.connection-status.php
+ * @return int the connection status bitfield, which can be used against the
+ * CONNECTION_XXX constants to determine the connection
+ * status.
+ */
+#[Pure(true)]
+function connection_status(): int {}
+
+/**
+ * Set whether a client disconnect should abort script execution
+ * @link https://php.net/manual/en/function.ignore-user-abort.php
+ * @param bool|null $enable [optional]
+ * If set, this function will set the ignore_user_abort ini setting
+ * to the given value. If not, this function will
+ * only return the previous setting without changing it.
+ *
+ * @return int the previous setting, as an integer.
+ */
+function ignore_user_abort(?bool $enable): int {}
+
+/**
+ * Parse a configuration file
+ * @link https://php.net/manual/en/function.parse-ini-file.php
+ * @param string $filename
+ * The filename of the ini file being parsed.
+ *
+ * @param bool $process_sections [optional]
+ * By setting the process_sections
+ * parameter to true, you get a multidimensional array, with
+ * the section names and settings included. The default
+ * for process_sections is false
+ *
+ * @param int $scanner_mode [optional]
+ * Can either be INI_SCANNER_NORMAL (default) or
+ * INI_SCANNER_RAW. If INI_SCANNER_RAW
+ * is supplied, then option values will not be parsed.
+ *
+ *
+ * As of PHP 5.6.1 can also be specified as INI_SCANNER_TYPED.
+ * In this mode boolean, null and integer types are preserved when possible.
+ * String values "true", "on" and "yes"
+ * are converted to TRUE. "false", "off", "no"
+ * and "none" are considered FALSE. "null" is converted to NULL
+ * in typed mode. Also, all numeric strings are converted to integer type if it is possible.
+ *
+ * @return array|false The settings are returned as an associative array on success,
+ * and false on failure.
+ */
+#[Pure(true)]
+function parse_ini_file(string $filename, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false {}
+
+/**
+ * Parse a configuration string
+ * @link https://php.net/manual/en/function.parse-ini-string.php
+ * @param string $ini_string
+ * The contents of the ini file being parsed.
+ *
+ * @param bool $process_sections [optional]
+ * By setting the process_sections
+ * parameter to true, you get a multidimensional array, with
+ * the section names and settings included. The default
+ * for process_sections is false
+ *
+ * @param int $scanner_mode [optional]
+ * Can either be INI_SCANNER_NORMAL (default) or
+ * INI_SCANNER_RAW. If INI_SCANNER_RAW
+ * is supplied, then option values will not be parsed.
+ *
+ * @return array|false The settings are returned as an associative array on success,
+ * and false on failure.
+ */
+#[Pure]
+function parse_ini_string(string $ini_string, bool $process_sections = false, int $scanner_mode = INI_SCANNER_NORMAL): array|false {}
+
+/**
+ * Tells whether the file was uploaded via HTTP POST
+ * @link https://php.net/manual/en/function.is-uploaded-file.php
+ * @param string $filename
+ * The filename being checked.
+ *
+ * @return bool true on success or false on failure.
+ */
+#[Pure(true)]
+function is_uploaded_file(string $filename): bool {}
+
+/**
+ * Moves an uploaded file to a new location
+ * @link https://php.net/manual/en/function.move-uploaded-file.php
+ * @param string $from
+ * The filename of the uploaded file.
+ *
+ * @param string $to
+ * The destination of the moved file.
+ *
+ * @return bool If filename is not a valid upload file,
+ * then no action will occur, and
+ * move_uploaded_file will return
+ * false.
+ *
+ *
+ * If filename is a valid upload file, but
+ * cannot be moved for some reason, no action will occur, and
+ * move_uploaded_file will return
+ * false. Additionally, a warning will be issued.
+ */
+function move_uploaded_file(string $from, string $to): bool {}
+
+/**
+ * @return array|false
+ * @since 7.3
+ */
+#[Pure]
+#[ArrayShape(["description" => "string", "mac" => "string", "mtu" => "int", "unicast" => "array", "up" => "bool"])]
+function net_get_interfaces(): array|false {}
+
+/**
+ * Get the Internet host name corresponding to a given IP address
+ * @link https://php.net/manual/en/function.gethostbyaddr.php
+ * @param string $ip
+ * The host IP address.
+ *
+ * @return string|false the host name or the unmodified ip_address
+ * on failure.
+ */
+#[Pure]
+function gethostbyaddr(string $ip): string|false {}
+
+/**
+ * Get the IPv4 address corresponding to a given Internet host name
+ * @link https://php.net/manual/en/function.gethostbyname.php
+ * @param string $hostname
+ * The host name.
+ *
+ * @return string the IPv4 address or a string containing the unmodified
+ * hostname on failure.
+ */
+#[Pure]
+function gethostbyname(string $hostname): string {}
+
+/**
+ * Get a list of IPv4 addresses corresponding to a given Internet host
+ * name
+ * @link https://php.net/manual/en/function.gethostbynamel.php
+ * @param string $hostname
+ * The host name.
+ *
+ * @return array|false an array of IPv4 addresses or false if
+ * hostname could not be resolved.
+ */
+#[Pure]
+function gethostbynamel(string $hostname): array|false {}
+
+/**
+ * Gets the host name
+ * @link https://php.net/manual/en/function.gethostname.php
+ * @return string|false a string with the hostname on success, otherwise false is
+ * returned.
+ */
+#[Pure]
+function gethostname(): string|false {}
+
+/**
+ * Alias:
+ * {@see checkdnsrr}
+ * @link https://php.net/manual/en/function.dns-check-record.php
+ * @param string $hostname
+ * host may either be the IP address in
+ * dotted-quad notation or the host name.
+ *
+ * @param string $type [optional]
+ * type may be any one of: A, MX, NS, SOA,
+ * PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT or ANY.
+ *
+ * @return bool Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.
+ */
+function dns_check_record(string $hostname, string $type = 'MX'): bool {}
+
+/**
+ * Check DNS records corresponding to a given Internet host name or IP address
+ * @link https://php.net/manual/en/function.checkdnsrr.php
+ * @param string $hostname
+ * host may either be the IP address in
+ * dotted-quad notation or the host name.
+ *
+ * @param string $type [optional]
+ * type may be any one of: A, MX, NS, SOA,
+ * PTR, CNAME, AAAA, A6, SRV, NAPTR, TXT or ANY.
+ *
+ * @return bool true if any records are found; returns false if no records
+ * were found or if an error occurred.
+ */
+#[Pure]
+function checkdnsrr(string $hostname, string $type = 'MX'): bool {}
+
+/**
+ * Alias:
+ * {@see getmxrr}
+ * @link https://php.net/manual/en/function.dns-get-mx.php
+ * @param string $hostname
+ * @param array &$hosts
+ * @param array &$weights [optional]
+ * @return bool
+ */
+function dns_get_mx(string $hostname, &$hosts, &$weights): bool {}
+
+/**
+ * Get MX records corresponding to a given Internet host name
+ * @link https://php.net/manual/en/function.getmxrr.php
+ * @param string $hostname
+ * The Internet host name.
+ *
+ * @param array &$hosts
+ * A list of the MX records found is placed into the array
+ * mxhosts.
+ *
+ * @param array &$weights [optional]
+ * If the weight array is given, it will be filled
+ * with the weight information gathered.
+ *
+ * @return bool true if any records are found; returns false if no records
+ * were found or if an error occurred.
+ */
+function getmxrr(string $hostname, &$hosts, &$weights): bool {}
+
+/**
+ * Fetch DNS Resource Records associated with a hostname
+ * @link https://php.net/manual/en/function.dns-get-record.php
+ * @param string $hostname
+ * hostname should be a valid DNS hostname such
+ * as "www.example.com". Reverse lookups can be generated
+ * using in-addr.arpa notation, but
+ * gethostbyaddr is more suitable for
+ * the majority of reverse lookups.
+ *
+ *
+ * Per DNS standards, email addresses are given in user.host format (for
+ * example: hostmaster.example.com as opposed to hostmaster@example.com),
+ * be sure to check this value and modify if necessary before using it
+ * with a functions such as mail.
+ *
+ * @param int $type [optional]
+ * By default, dns_get_record will search for any
+ * resource records associated with hostname.
+ * To limit the query, specify the optional type
+ * parameter. May be any one of the following:
+ * DNS_A, DNS_CNAME,
+ * DNS_HINFO, DNS_MX,
+ * DNS_NS, DNS_PTR,
+ * DNS_SOA, DNS_TXT,
+ * DNS_AAAA, DNS_SRV,
+ * DNS_NAPTR, DNS_A6,
+ * DNS_ALL or DNS_ANY.
+ *
+ *
+ * Because of eccentricities in the performance of libresolv
+ * between platforms, DNS_ANY will not
+ * always return every record, the slower DNS_ALL
+ * will collect all records more reliably.
+ *
+ * @param array &$authoritative_name_servers [optional]
+ * Passed by reference and, if given, will be populated with Resource
+ * Records for the Authoritative Name Servers.
+ *
+ * @param array &$additional_records [optional]
+ * Passed by reference and, if given, will be populated with any
+ * Additional Records.
+ *
+ * @param bool $raw [optional]
+ * In case of raw mode, we query only the requested type
+ * instead of looping type by type before going with the additional info stuff.
+ *
+ * @return array|false This function returns an array of associative arrays. Each associative array contains
+ * at minimum the following keys:
+ *
+ * Basic DNS attributes
+ *
+ * Attribute
+ * Meaning
+ *
+ *
+ * host
+ *
+ * The record in the DNS namespace to which the rest of the associated data refers.
+ *
+ *
+ *
+ * class
+ *
+ * dns_get_record only returns Internet class records and as
+ * such this parameter will always return IN.
+ *
+ *
+ *
+ * type
+ *
+ * String containing the record type. Additional attributes will also be contained
+ * in the resulting array dependant on the value of type. See table below.
+ *
+ *
+ *
+ * ttl
+ *
+ * "Time To Live" remaining for this record. This will not equal
+ * the record's original ttl, but will rather equal the original ttl minus whatever
+ * length of time has passed since the authoritative name server was queried.
+ *
+ *
+ *
+ *
+ *
+ *
+ * Other keys in associative arrays dependant on 'type'
+ *
+ * Type
+ * Extra Columns
+ *
+ *
+ * A
+ *
+ * ip: An IPv4 addresses in dotted decimal notation.
+ *
+ *
+ *
+ * MX
+ *
+ * pri: Priority of mail exchanger.
+ * Lower numbers indicate greater priority.
+ * target: FQDN of the mail exchanger.
+ * See also dns_get_mx.
+ *
+ *
+ *
+ * CNAME
+ *
+ * target: FQDN of location in DNS namespace to which
+ * the record is aliased.
+ *
+ *
+ *
+ * NS
+ *
+ * target: FQDN of the name server which is authoritative
+ * for this hostname.
+ *
+ *
+ *
+ * PTR
+ *
+ * target: Location within the DNS namespace to which
+ * this record points.
+ *
+ *
+ *
+ * TXT
+ *
+ * txt: Arbitrary string data associated with this record.
+ *
+ *
+ *
+ * HINFO
+ *
+ * cpu: IANA number designating the CPU of the machine
+ * referenced by this record.
+ * os: IANA number designating the Operating System on
+ * the machine referenced by this record.
+ * See IANA's Operating System
+ * Names for the meaning of these values.
+ *
+ *
+ *
+ * SOA
+ *
+ * mname: FQDN of the machine from which the resource
+ * records originated.
+ * rname: Email address of the administrative contain
+ * for this domain.
+ * serial: Serial # of this revision of the requested
+ * domain.
+ * refresh: Refresh interval (seconds) secondary name
+ * servers should use when updating remote copies of this domain.
+ * retry: Length of time (seconds) to wait after a
+ * failed refresh before making a second attempt.
+ * expire: Maximum length of time (seconds) a secondary
+ * DNS server should retain remote copies of the zone data without a
+ * successful refresh before discarding.
+ * minimum-ttl: Minimum length of time (seconds) a
+ * client can continue to use a DNS resolution before it should request
+ * a new resolution from the server. Can be overridden by individual
+ * resource records.
+ *
+ *
+ *
+ * AAAA
+ *
+ * ipv6: IPv6 address
+ *
+ *
+ *
+ * A6(PHP >= 5.1.0)
+ *
+ * masklen: Length (in bits) to inherit from the target
+ * specified by chain.
+ * ipv6: Address for this specific record to merge with
+ * chain.
+ * chain: Parent record to merge with
+ * ipv6 data.
+ *
+ *
+ *
+ * SRV
+ *
+ * pri: (Priority) lowest priorities should be used first.
+ * weight: Ranking to weight which of commonly prioritized
+ * targets should be chosen at random.
+ * target and port: hostname and port
+ * where the requested service can be found.
+ * For additional information see: RFC 2782
+ *
+ *
+ *
+ * NAPTR
+ *
+ * order and pref: Equivalent to
+ * pri and weight above.
+ * flags, services, regex,
+ * and replacement: Parameters as defined by
+ * RFC 2915.
+ *
+ *
+ *
+ */
+function dns_get_record(string $hostname, int $type = DNS_ANY, &$authoritative_name_servers, &$additional_records, bool $raw = false): array|false {}
diff --git a/phpstorm-stubs/standard/standard_5.php b/phpstorm-stubs/standard/standard_5.php
new file mode 100644
index 0000000..59156e0
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_5.php
@@ -0,0 +1,1093 @@
+
+ * Get the boolean value of a variable
+ * @param mixed $value the scalar value being converted to a boolean.
+ * @return bool The boolean value of var.
+ * @since 5.5
+ */
+#[Pure]
+function boolval(mixed $value): bool {}
+
+/**
+ * Get the integer value of a variable
+ * @link https://php.net/manual/en/function.intval.php
+ * @param mixed $value
+ * The scalar value being converted to an integer
+ *
+ * @param int $base [optional]
+ * The base for the conversion
+ *
+ * @return int The integer value of var on success, or 0 on
+ * failure. Empty arrays and objects return 0, non-empty arrays and
+ * objects return 1.
+ *
+ *
+ * The maximum value depends on the system. 32 bit systems have a
+ * maximum signed integer range of -2147483648 to 2147483647. So for example
+ * on such a system, intval('1000000000000') will return
+ * 2147483647. The maximum signed integer value for 64 bit systems is
+ * 9223372036854775807.
+ *
+ *
+ * Strings will most likely return 0 although this depends on the
+ * leftmost characters of the string. The common rules of
+ * integer casting
+ * apply.
+ */
+#[Pure]
+function intval(mixed $value, int $base = 10): int {}
+
+/**
+ * Get float value of a variable
+ * @link https://php.net/manual/en/function.floatval.php
+ * @param mixed $value May be any scalar type. should not be used on objects, as doing so will emit an E_NOTICE level error and return 1.
+ * @return float value of the given variable. Empty arrays return 0, non-empty arrays return 1.
+ */
+#[Pure]
+function floatval(mixed $value): float {}
+
+/**
+ * (PHP 4.2.0, PHP 5)
+ * Alias:
+ * {@see floatval}
+ * Get float value of a variable
+ * @link https://php.net/manual/en/function.doubleval.php
+ * @param mixed $value May be any scalar type. should not be used on objects, as doing so will emit an E_NOTICE level error and return 1.
+ * @return float value of the given variable. Empty arrays return 0, non-empty arrays return 1.
+ */
+#[Pure]
+function doubleval(mixed $value): float {}
+
+/**
+ * Get string value of a variable
+ * @link https://php.net/manual/en/function.strval.php
+ * @param mixed $value
+ * The variable that is being converted to a string.
+ *
+ *
+ * $var may be any scalar type or an object that implements the __toString() method.
+ * You cannot use strval() on arrays or objects that do not implement the __toString() method.
+ *
+ * @return string The string value of var.
+ */
+#[Pure]
+function strval(mixed $value): string {}
+
+/**
+ * Get the type of a variable
+ * @link https://php.net/manual/en/function.gettype.php
+ * @param mixed $value
+ * The variable being type checked.
+ *
+ * @return string Possibles values for the returned string are:
+ * "boolean"
+ * "integer"
+ * "double" (for historical reasons "double" is
+ * returned in case of a float, and not simply
+ * "float")
+ * "string"
+ * "array"
+ * "object"
+ * "resource"
+ * "NULL"
+ * "unknown type"
+ * "resource (closed)" since 7.2.0
+ */
+#[Pure]
+#[ExpectedValues([
+ "boolean", "integer", "double", "string", "array", "object", "resource", "NULL", "unknown type", "resource (closed)"
+])]
+function gettype(mixed $value): string {}
+
+/**
+ * Set the type of a variable
+ * @link https://php.net/manual/en/function.settype.php
+ * @param mixed &$var
+ * The variable being converted.
+ *
+ * @param string $type
+ * Possibles values of type are:
+ *
+ * -
+ * "boolean" (or, since PHP 4.2.0, "bool")
+ *
+ * -
+ * "integer" (or, since PHP 4.2.0, "int")
+ *
+ * -
+ * "float" (only possible since PHP 4.2.0, for older versions use the
+ * deprecated variant "double")
+ *
+ * -
+ * "string"
+ *
+ * -
+ * "array"
+ *
+ * -
+ * "object"
+ *
+ * -
+ * "null" (since PHP 4.2.0)
+ *
+ *
+ * @return bool true on success or false on failure.
+ */
+function settype(mixed &$var, #[ExpectedValues(["bool", "boolean", "int", "integer", "float", "double", "string", "array", "object", "null"])] string $type): bool {}
+
+/**
+ * Finds whether a variable is null.
+ * @link https://php.net/manual/en/function.is-null.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is null, false
+ * otherwise.
+ */
+#[Pure]
+function is_null(mixed $value): bool {}
+
+/**
+ * Finds whether a variable is a resource
+ * @link https://php.net/manual/en/function.is-resource.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a resource,
+ * false otherwise.
+ */
+#[Pure]
+function is_resource(mixed $value): bool {}
+
+/**
+ * Finds out whether a variable is a boolean
+ * @link https://php.net/manual/en/function.is-bool.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a boolean,
+ * false otherwise.
+ */
+#[Pure]
+function is_bool(mixed $value): bool {}
+
+/**
+ * Alias:
+ * {@see is_int}
+ * @link https://php.net/manual/en/function.is-long.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is an integer,
+ * false otherwise.
+ */
+#[Pure]
+function is_long(mixed $value): bool {}
+
+/**
+ * Finds whether the type of a variable is float
+ * @link https://php.net/manual/en/function.is-float.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a float,
+ * false otherwise.
+ */
+#[Pure]
+function is_float(mixed $value): bool {}
+
+/**
+ * Find whether the type of a variable is integer
+ * @link https://php.net/manual/en/function.is-int.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is an integer,
+ * false otherwise.
+ */
+#[Pure]
+function is_int(mixed $value): bool {}
+
+/**
+ * Alias:
+ * {@see is_int}
+ * @link https://php.net/manual/en/function.is-integer.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is an integer,
+ * false otherwise.
+ */
+#[Pure]
+function is_integer(mixed $value): bool {}
+
+/**
+ * Alias:
+ * {@see is_float}
+ * @link https://php.net/manual/en/function.is-double.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a float,
+ * false otherwise.
+ */
+#[Pure]
+function is_double(mixed $value): bool {}
+
+/**
+ * Alias:
+ * {@see is_float}
+ * @link https://php.net/manual/en/function.is-real.php
+ * @param mixed $var
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a float,
+ * false otherwise.
+ */
+#[Pure]
+#[Deprecated(since: '7.4')]
+function is_real(mixed $var): bool {}
+
+/**
+ * Finds whether a variable is a number or a numeric string
+ * @link https://php.net/manual/en/function.is-numeric.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a number or a numeric
+ * string, false otherwise.
+ */
+#[Pure]
+function is_numeric(mixed $value): bool {}
+
+/**
+ * Find whether the type of a variable is string
+ * @link https://php.net/manual/en/function.is-string.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is of type string,
+ * false otherwise.
+ */
+#[Pure]
+function is_string(mixed $value): bool {}
+
+/**
+ * Finds whether a variable is an array
+ * @link https://php.net/manual/en/function.is-array.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is an array,
+ * false otherwise.
+ */
+#[Pure]
+function is_array(mixed $value): bool {}
+
+/**
+ * Finds whether a variable is an object
+ * @link https://php.net/manual/en/function.is-object.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is an object, false otherwise.
+ * Since 7.2.0 returns true for unserialized objects without a class definition (class of __PHP_Incomplete_Class).
+ */
+#[Pure]
+function is_object(mixed $value): bool {}
+
+/**
+ * Finds whether a variable is a scalar
+ * @link https://php.net/manual/en/function.is-scalar.php
+ * @param mixed $value
+ * The variable being evaluated.
+ *
+ * @return bool true if var is a scalar false
+ * otherwise.
+ */
+#[Pure]
+function is_scalar(mixed $value): bool {}
+
+/**
+ * Verify that the contents of a variable can be called as a function
+ * @link https://php.net/manual/en/function.is-callable.php
+ * @param callable|mixed $value
+ * The value to check
+ *
+ * @param bool $syntax_only [optional]
+ * If set to TRUE the function only verifies that
+ * name might be a function or method. It will only
+ * reject simple variables that are not strings, or an array that does
+ * not have a valid structure to be used as a callback. The valid ones
+ * are supposed to have only 2 entries, the first of which is an object
+ * or a string, and the second a string.
+ *
+ * @param string &$callable_name [optional]
+ * Receives the "callable name". In the example below it is
+ * "someClass::someMethod". Note, however, that despite the implication
+ * that someClass::SomeMethod() is a callable static method, this is not
+ * the case.
+ *
+ * @return bool TRUE if $var is callable, FALSE
+ * otherwise.
+ */
+function is_callable(mixed $value, bool $syntax_only = false, &$callable_name): bool {}
+
+/**
+ * Verify that the contents of a variable is a countable value
+ * @link https://secure.php.net/is_countable
+ *
+ * @param mixed $value The value to check
+ * @return bool TRUE if $var is countable, FALSE otherwise.
+ * @since 7.3
+ */
+#[Pure]
+function is_countable(mixed $value): bool {}
+
+/**
+ * Closes process file pointer
+ * @link https://php.net/manual/en/function.pclose.php
+ * @param resource $handle
+ * The file pointer must be valid, and must have been returned by a
+ * successful call to popen.
+ *
+ * @return int the termination status of the process that was run. In case of an error then -1 is returned.
+ *
+ * If PHP has been compiled with --enable-sigchild, the return value of this function is undefined.
+ *
+ */
+function pclose($handle): int {}
+
+/**
+ * Opens process file pointer
+ * @link https://php.net/manual/en/function.popen.php
+ * @param string $command
+ * The command
+ *
+ * @param string $mode
+ * The mode
+ *
+ * @return resource|false a file pointer identical to that returned by
+ * fopen, except that it is unidirectional (may
+ * only be used for reading or writing) and must be closed with
+ * pclose. This pointer may be used with
+ * fgets, fgetss, and
+ * fwrite.
+ *
+ *
+ * If an error occurs, returns false.
+ */
+function popen(string $command, string $mode) {}
+
+/**
+ * Outputs a file
+ * @link https://php.net/manual/en/function.readfile.php
+ * @param string $filename
+ * The filename being read.
+ *
+ * @param bool $use_include_path [optional]
+ * You can use the optional second parameter and set it to true, if
+ * you want to search for the file in the include_path, too.
+ *
+ * @param resource $context [optional]
+ * A context stream resource.
+ *
+ * @return false|int the number of bytes read from the file, or FALSE on failure
+ */
+function readfile(string $filename, bool $use_include_path = false, $context): int|false {}
+
+/**
+ * Rewind the position of a file pointer
+ * @link https://php.net/manual/en/function.rewind.php
+ * @param resource $stream
+ * The file pointer must be valid, and must point to a file
+ * successfully opened by fopen.
+ *
+ * @return bool true on success or false on failure.
+ */
+function rewind($stream): bool {}
+
+/**
+ * Removes directory
+ * @link https://php.net/manual/en/function.rmdir.php
+ * @param string $directory
+ * Path to the directory.
+ *
+ * @param resource $context [optional]
+ * @return bool true on success or false on failure.
+ */
+function rmdir(string $directory, $context): bool {}
+
+/**
+ * Changes the current umask
+ * @link https://php.net/manual/en/function.umask.php
+ * @param int|null $mask [optional]
+ * The new umask.
+ *
+ * @return int umask without arguments simply returns the
+ * current umask otherwise the old umask is returned.
+ */
+function umask(?int $mask): int {}
+
+/**
+ * Closes an open file pointer
+ * @link https://php.net/manual/en/function.fclose.php
+ * @param resource $stream
+ * The file pointer must be valid, and must point to a file successfully
+ * opened by fopen or fsockopen.
+ *
+ * @return bool true on success or false on failure.
+ */
+function fclose($stream): bool {}
+
+/**
+ * Tests for end-of-file on a file pointer
+ * @link https://php.net/manual/en/function.feof.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @return bool true if the file pointer is at EOF or an error occurs
+ * (including socket timeout); otherwise returns false.
+ */
+#[Pure(true)]
+function feof($stream): bool {}
+
+/**
+ * Gets character from file pointer
+ * @link https://php.net/manual/en/function.fgetc.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @return string|false a string containing a single character read from the file pointed
+ * to by handle. Returns false on EOF.
+ */
+function fgetc($stream): string|false {}
+
+/**
+ * Gets line from file pointer
+ * @link https://php.net/manual/en/function.fgets.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @param int|null $length [optional]
+ * Reading ends when length - 1 bytes have been
+ * read, on a newline (which is included in the return value), or on EOF
+ * (whichever comes first). If no length is specified, it will keep
+ * reading from the stream until it reaches the end of the line.
+ *
+ *
+ * Until PHP 4.3.0, omitting it would assume 1024 as the line length.
+ * If the majority of the lines in the file are all larger than 8KB,
+ * it is more resource efficient for your script to specify the maximum
+ * line length.
+ *
+ * @return string|false a string of up to length - 1 bytes read from
+ * the file pointed to by handle.
+ *
+ *
+ * If an error occurs, returns false.
+ */
+function fgets($stream, ?int $length): string|false {}
+
+/**
+ * Gets line from file pointer and strip HTML tags
+ * @link https://php.net/manual/en/function.fgetss.php
+ * @param resource $handle The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @param null|int $length [optional]
+ * Length of the data to be retrieved.
+ *
+ * @param string $allowable_tags [optional]
+ * You can use the optional third parameter to specify tags which should
+ * not be stripped.
+ *
+ * @return string|false a string of up to length - 1 bytes read from
+ * the file pointed to by handle, with all HTML and PHP
+ * code stripped.
+ *
+ *
+ * If an error occurs, returns false.
+ * @removed 8.0
+ */
+#[Deprecated(since: '7.3')]
+function fgetss($handle, ?int $length = null, $allowable_tags = null): false|string {}
+
+/**
+ * Binary-safe file read
+ * @link https://php.net/manual/en/function.fread.php
+ * @param resource $stream &fs.file.pointer;
+ * @param int $length
+ * Up to length number of bytes read.
+ *
+ * @return string|false the read string or false on failure.
+ */
+function fread($stream, int $length): string|false {}
+
+/**
+ * Opens file or URL
+ * @link https://php.net/manual/en/function.fopen.php
+ * @param string $filename
+ * If filename is of the form "scheme://...", it
+ * is assumed to be a URL and PHP will search for a protocol handler
+ * (also known as a wrapper) for that scheme. If no wrappers for that
+ * protocol are registered, PHP will emit a notice to help you track
+ * potential problems in your script and then continue as though
+ * filename specifies a regular file.
+ *
+ *
+ * If PHP has decided that filename specifies
+ * a local file, then it will try to open a stream on that file.
+ * The file must be accessible to PHP, so you need to ensure that
+ * the file access permissions allow this access.
+ * If you have enabled "safemode",
+ * or open_basedir further
+ * restrictions may apply.
+ *
+ *
+ * If PHP has decided that filename specifies
+ * a registered protocol, and that protocol is registered as a
+ * network URL, PHP will check to make sure that
+ * allow_url_fopen is
+ * enabled. If it is switched off, PHP will emit a warning and
+ * the fopen call will fail.
+ *
+ *
+ * The list of supported protocols can be found in . Some protocols (also referred to as
+ * wrappers) support context
+ * and/or "php.ini" options. Refer to the specific page for the
+ * protocol in use for a list of options which can be set. (e.g.
+ * "php.ini" value user_agent used by the
+ * http wrapper).
+ *
+ *
+ * On the Windows platform, be careful to escape any backslashes
+ * used in the path to the file, or use forward slashes.
+ *
+ *
+ *
+ *
+ * @param string $mode
+ * The mode parameter specifies the type of access
+ * you require to the stream. It may be any of the following:
+ *
+ * A list of possible modes for fopen
+ * using mode
+ *
+ * mode
+ * Description
+ *
+ *
+ * 'r'
+ *
+ * Open for reading only; place the file pointer at the
+ * beginning of the file.
+ *
+ *
+ *
+ * 'r+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the beginning of the file.
+ *
+ *
+ *
+ * 'w'
+ *
+ * Open for writing only; place the file pointer at the
+ * beginning of the file and truncate the file to zero length.
+ * If the file does not exist, attempt to create it.
+ *
+ *
+ *
+ * 'w+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the beginning of the file and truncate the file to zero
+ * length. If the file does not exist, attempt to create it.
+ *
+ *
+ *
+ * 'a'
+ *
+ * Open for writing only; place the file pointer at the end of
+ * the file. If the file does not exist, attempt to create it.
+ *
+ *
+ *
+ * 'a+'
+ *
+ * Open for reading and writing; place the file pointer at
+ * the end of the file. If the file does not exist, attempt to
+ * create it.
+ *
+ *
+ *
+ * 'x'
+ *
+ * Create and open for writing only; place the file pointer at the
+ * beginning of the file. If the file already exists, the
+ * fopen call will fail by returning false and
+ * generating an error of level E_WARNING. If
+ * the file does not exist, attempt to create it. This is equivalent
+ * to specifying O_EXCL|O_CREAT flags for the
+ * underlying open(2) system call.
+ *
+ *
+ *
+ * 'x+'
+ *
+ * Create and open for reading and writing; place the file pointer at
+ * the beginning of the file. If the file already exists, the
+ * fopen call will fail by returning false and
+ * generating an error of level E_WARNING. If
+ * the file does not exist, attempt to create it. This is equivalent
+ * to specifying O_EXCL|O_CREAT flags for the
+ * underlying open(2) system call.
+ *
+ *
+ *
+ *
+ *
+ * Different operating system families have different line-ending
+ * conventions. When you write a text file and want to insert a line
+ * break, you need to use the correct line-ending character(s) for your
+ * operating system. Unix based systems use \n as the
+ * line ending character, Windows based systems use \r\n
+ * as the line ending characters and Macintosh based systems use
+ * \r as the line ending character.
+ *
+ *
+ * If you use the wrong line ending characters when writing your files, you
+ * might find that other applications that open those files will "look
+ * funny".
+ *
+ *
+ * Windows offers a text-mode translation flag ('t')
+ * which will transparently translate \n to
+ * \r\n when working with the file. In contrast, you
+ * can also use 'b' to force binary mode, which will not
+ * translate your data. To use these flags, specify either
+ * 'b' or 't' as the last character
+ * of the mode parameter.
+ *
+ *
+ * The default translation mode depends on the SAPI and version of PHP that
+ * you are using, so you are encouraged to always specify the appropriate
+ * flag for portability reasons. You should use the 't'
+ * mode if you are working with plain-text files and you use
+ * \n to delimit your line endings in your script, but
+ * expect your files to be readable with applications such as notepad. You
+ * should use the 'b' in all other cases.
+ *
+ *
+ * If you do not specify the 'b' flag when working with binary files, you
+ * may experience strange problems with your data, including broken image
+ * files and strange problems with \r\n characters.
+ *
+ *
+ * For portability, it is strongly recommended that you always
+ * use the 'b' flag when opening files with fopen.
+ *
+ *
+ * Again, for portability, it is also strongly recommended that
+ * you re-write code that uses or relies upon the 't'
+ * mode so that it uses the correct line endings and
+ * 'b' mode instead.
+ *
+ * @param bool $use_include_path [optional]
+ * The optional third use_include_path parameter
+ * can be set to '1' or true if you want to search for the file in the
+ * include_path, too.
+ *
+ * @param resource $context [optional]
+ * @return resource|false a file pointer resource on success, or false on error.
+ */
+function fopen(string $filename, string $mode, bool $use_include_path = false, $context) {}
+
+/**
+ * Output all remaining data on a file pointer
+ * @link https://php.net/manual/en/function.fpassthru.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @return int|false If an error occurs, fpassthru returns
+ * false. Otherwise, fpassthru returns
+ * the number of characters read from handle
+ * and passed through to the output.
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function fpassthru($stream) {}
+
+/**
+ * Truncates a file to a given length
+ * @link https://php.net/manual/en/function.ftruncate.php
+ * @param resource $stream
+ * The file pointer.
+ *
+ *
+ * The handle must be open for writing.
+ *
+ * @param int $size
+ * The size to truncate to.
+ *
+ *
+ * If size is larger than the file it is extended
+ * with null bytes.
+ *
+ *
+ * If size is smaller than the extra data
+ * will be lost.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ftruncate($stream, int $size): bool {}
+
+/**
+ * Gets information about a file using an open file pointer
+ * @link https://php.net/manual/en/function.fstat.php
+ * @param resource $stream &fs.file.pointer;
+ * @return array|false an array with the statistics of the file; the format of the array
+ * is described in detail on the stat manual page.
+ */
+#[Pure(true)]
+function fstat($stream): array|false {}
+
+/**
+ * Seeks on a file pointer
+ * @link https://php.net/manual/en/function.fseek.php
+ * @param resource $stream &fs.file.pointer;
+ * @param int $offset
+ * The offset.
+ *
+ *
+ * To move to a position before the end-of-file, you need to pass
+ * a negative value in offset and
+ * set whence
+ * to SEEK_END.
+ *
+ * @param int $whence [optional]
+ * whence values are:
+ * SEEK_SET - Set position equal to offset bytes.
+ * SEEK_CUR - Set position to current location plus offset.
+ * SEEK_END - Set position to end-of-file plus offset.
+ *
+ *
+ * If whence is not specified, it is assumed to be
+ * SEEK_SET.
+ *
+ * @return int Upon success, returns 0; otherwise, returns -1. Note that seeking
+ * past EOF is not considered an error.
+ */
+function fseek($stream, int $offset, int $whence = SEEK_SET): int {}
+
+/**
+ * Returns the current position of the file read/write pointer
+ * @link https://php.net/manual/en/function.ftell.php
+ * @param resource $stream
+ * The file pointer must be valid, and must point to a file successfully
+ * opened by fopen or popen.
+ * ftell gives undefined results for append-only streams
+ * (opened with "a" flag).
+ *
+ * @return int|false the position of the file pointer referenced by
+ * handle as an integer; i.e., its offset into the file stream.
+ *
+ *
+ * If an error occurs, returns false.
+ */
+#[Pure(true)]
+function ftell($stream): int|false {}
+
+/**
+ * Flushes the output to a file
+ * @link https://php.net/manual/en/function.fflush.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @return bool true on success or false on failure.
+ */
+function fflush($stream): bool {}
+
+/**
+ * Sync file to storage. Similar to fflush() but blocks until OS buffers have flushed.
+ * @param resource $stream
+ * @since 8.1
+ */
+function fsync($stream): bool {}
+
+/**
+ * Sync file data only to storage. Similar to fsync but does not flush modified metadata. POSIX only, aliased to fsync on Win32.
+ * @param resource $stream
+ * @since 8.1
+ */
+function fdatasync($stream): bool {}
+
+/**
+ * Binary-safe file write
+ * @link https://php.net/manual/en/function.fwrite.php
+ * @param resource $stream &fs.file.pointer;
+ * @param string $data
+ * The string that is to be written.
+ *
+ * @param int|null $length [optional]
+ * If the length argument is given, writing will
+ * stop after length bytes have been written or
+ * the end of string is reached, whichever comes
+ * first.
+ *
+ *
+ * Note that if the length argument is given,
+ * then the magic_quotes_runtime
+ * configuration option will be ignored and no slashes will be
+ * stripped from string.
+ *
+ * @return int|false the number of bytes written, or FALSE on error.
+ */
+function fwrite($stream, string $data, ?int $length): int|false {}
+
+/**
+ * Alias:
+ * {@see fwrite}
+ * @param resource $stream A file system pointer resource that is typically created using fopen().
+ * @param string $data
+ * The string that is to be written.
+ *
+ * @param int|null $length [optional]
+ * If the length argument is given, writing will
+ * stop after length bytes have been written or
+ * the end of string is reached, whichever comes
+ * first.
+ *
+ *
+ * Note that if the length argument is given,
+ * then the magic_quotes_runtime
+ * configuration option will be ignored and no slashes will be
+ * stripped from string.
+ *
+ * @return int|false the number of bytes written, or FALSE on error.
+ * @see fwrite()
+ * @link https://php.net/manual/en/function.fputs.php
+ * Binary-safe file write
+ */
+function fputs($stream, string $data, ?int $length): int|false {}
+
+/**
+ * Attempts to create the directory specified by pathname.
+ * @link https://php.net/manual/en/function.mkdir.php
+ * @param string $directory
+ * The directory path.
+ *
+ * @param int $permissions [optional]
+ * The mode is 0777 by default, which means the widest possible
+ * access. For more information on modes, read the details
+ * on the chmod page.
+ *
+ *
+ * mode is ignored on Windows.
+ *
+ *
+ * Note that you probably want to specify the mode as an octal number,
+ * which means it should have a leading zero. The mode is also modified
+ * by the current umask, which you can change using
+ * umask().
+ *
+ * @param bool $recursive [optional]
+ * Allows the creation of nested directories specified in the pathname. Default to false.
+ *
+ * @param resource $context [optional]
+ * @return bool true on success or false on failure.
+ */
+function mkdir(string $directory, int $permissions = 0777, bool $recursive = false, $context): bool {}
+
+/**
+ * Renames a file or directory
+ * @link https://php.net/manual/en/function.rename.php
+ * @param string $from
+ *
+ *
+ * The old name. The wrapper used in oldname
+ * must match the wrapper used in
+ * newname.
+ *
+ * @param string $to
+ * The new name.
+ *
+ * @param resource $context [optional]
+ * @return bool true on success or false on failure.
+ */
+function rename(string $from, string $to, $context): bool {}
+
+/**
+ * Copies file
+ * @link https://php.net/manual/en/function.copy.php
+ * @param string $from
+ * Path to the source file.
+ *
+ * @param string $to
+ * The destination path. If dest is a URL, the
+ * copy operation may fail if the wrapper does not support overwriting of
+ * existing files.
+ *
+ *
+ * If the destination file already exists, it will be overwritten.
+ *
+ * @param resource $context [optional]
+ * A valid context resource created with
+ * stream_context_create.
+ *
+ * @return bool true on success or false on failure.
+ */
+function copy(string $from, string $to, $context): bool {}
+
+/**
+ * Create file with unique file name
+ * @link https://php.net/manual/en/function.tempnam.php
+ * @param string $directory
+ * The directory where the temporary filename will be created.
+ *
+ * @param string $prefix
+ * The prefix of the generated temporary filename.
+ *
+ * Windows use only the first three characters of prefix.
+ * @return string|false the new temporary filename, or false on
+ * failure.
+ */
+function tempnam(string $directory, string $prefix): string|false {}
+
+/**
+ * Creates a temporary file
+ * @link https://php.net/manual/en/function.tmpfile.php
+ * @return resource|false a file handle, similar to the one returned by
+ * fopen, for the new file or false on failure.
+ */
+function tmpfile() {}
+
+/**
+ * Reads entire file into an array
+ * @link https://php.net/manual/en/function.file.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param int $flags
+ * The optional parameter flags can be one, or
+ * more, of the following constants:
+ *
+ * - FILE_USE_INCLUDE_PATH - Search for the file in the include_path.
+ * - FILE_IGNORE_NEW_LINES - Omit newline at the end of each array element
+ * - FILE_SKIP_EMPTY_LINES - Skip empty lines
+ *
+ *
+ * @param resource $context [optional]
+ * A context resource created with the
+ * stream_context_create function.
+ *
+ * @return array|false the file in an array. Each element of the array corresponds to a
+ * line in the file, with the newline still attached. Upon failure,
+ * file returns false.
+ *
+ * Each line in the resulting array will include the line ending, unless
+ * FILE_IGNORE_NEW_LINES is used, so you still need to
+ * use rtrim if you do not want the line ending
+ * present.
+ *
+ */
+#[Pure(true)]
+function file(string $filename, int $flags = 0, $context): array|false {}
+
+/**
+ * Reads entire file into a string
+ * @link https://php.net/manual/en/function.file-get-contents.php
+ * @param string $filename
+ * Name of the file to read.
+ *
+ * @param bool $use_include_path [optional]
+ * Note: As of PHP 5 the FILE_USE_INCLUDE_PATH constant can be
+ * used to trigger include path search.
+ *
+ * @param resource $context [optional]
+ * A valid context resource created with
+ * stream_context_create. If you don't need to use a
+ * custom context, you can skip this parameter by null.
+ *
+ * @param int $offset [optional]
+ * The offset where the reading starts.
+ *
+ * @param int|null $length [optional]
+ * Maximum length of data read. The default is to read until end
+ * of file is reached.
+ *
+ * @return string|false The function returns the read data or false on failure.
+ */
+#[Pure(true)]
+function file_get_contents(string $filename, bool $use_include_path = false, $context, int $offset = 0, ?int $length): string|false {}
+
+/**
+ * Write a string to a file
+ * @link https://php.net/manual/en/function.file-put-contents.php
+ * @param string $filename
+ * Path to the file where to write the data.
+ *
+ * @param mixed $data
+ * The data to write. Can be either a string, an
+ * array or a stream resource.
+ *
+ *
+ * If data is a stream resource, the
+ * remaining buffer of that stream will be copied to the specified file.
+ * This is similar with using stream_copy_to_stream.
+ *
+ *
+ * You can also specify the data parameter as a single
+ * dimension array. This is equivalent to
+ * file_put_contents($filename, implode('', $array)).
+ *
+ * @param int $flags [optional]
+ * The value of flags can be any combination of
+ * the following flags (with some restrictions), joined with the binary OR
+ * (|) operator.
+ *
+ *
+ *
+ * Available flags
+ *
+ * Flag
+ * Description
+ *
+ *
+ *
+ * FILE_USE_INCLUDE_PATH
+ *
+ *
+ * Search for filename in the include directory.
+ * See include_path for more
+ * information.
+ *
+ *
+ *
+ *
+ * FILE_APPEND
+ *
+ *
+ * If file filename already exists, append
+ * the data to the file instead of overwriting it. Mutually
+ * exclusive with LOCK_EX since appends are atomic and thus there
+ * is no reason to lock.
+ *
+ *
+ *
+ *
+ * LOCK_EX
+ *
+ *
+ * Acquire an exclusive lock on the file while proceeding to the
+ * writing. Mutually exclusive with FILE_APPEND.
+ *
+ *
+ *
+ *
+ * @param resource $context [optional]
+ * A valid context resource created with
+ * stream_context_create.
+ *
+ * @return int|false The function returns the number of bytes that were written to the file, or
+ * false on failure.
+ */
+function file_put_contents(string $filename, mixed $data, int $flags = 0, $context): int|false {}
diff --git a/phpstorm-stubs/standard/standard_6.php b/phpstorm-stubs/standard/standard_6.php
new file mode 100644
index 0000000..c72bdf2
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_6.php
@@ -0,0 +1,1223 @@
+
+ * The streams listed in the read array will be watched to
+ * see if characters become available for reading (more precisely, to see if
+ * a read will not block - in particular, a stream resource is also ready on
+ * end-of-file, in which case an fread will return
+ * a zero length string).
+ *
+ * @param array|null &$write
+ * The streams listed in the write array will be
+ * watched to see if a write will not block.
+ *
+ * @param array|null &$except
+ * The streams listed in the except array will be
+ * watched for high priority exceptional ("out-of-band") data arriving.
+ *
+ *
+ * When stream_select returns, the arrays
+ * read, write and
+ * except are modified to indicate which stream
+ * resource(s) actually changed status.
+ *
+ * You do not need to pass every array to
+ * stream_select. You can leave it out and use an
+ * empty array or null instead. Also do not forget that those arrays are
+ * passed by reference and will be modified after
+ * stream_select returns.
+ * @param int|null $seconds
+ * The tv_sec and tv_usec
+ * together form the timeout parameter,
+ * tv_sec specifies the number of seconds while
+ * tv_usec the number of microseconds.
+ * The timeout is an upper bound on the amount of time
+ * that stream_select will wait before it returns.
+ * If tv_sec and tv_usec are
+ * both set to 0, stream_select will
+ * not wait for data - instead it will return immediately, indicating the
+ * current status of the streams.
+ *
+ *
+ * If tv_sec is null stream_select
+ * can block indefinitely, returning only when an event on one of the
+ * watched streams occurs (or if a signal interrupts the system call).
+ *
+ *
+ * Using a timeout value of 0 allows you to
+ * instantaneously poll the status of the streams, however, it is NOT a
+ * good idea to use a 0 timeout value in a loop as it
+ * will cause your script to consume too much CPU time.
+ *
+ *
+ * It is much better to specify a timeout value of a few seconds, although
+ * if you need to be checking and running other code concurrently, using a
+ * timeout value of at least 200000 microseconds will
+ * help reduce the CPU usage of your script.
+ *
+ *
+ * Remember that the timeout value is the maximum time that will elapse;
+ * stream_select will return as soon as the
+ * requested streams are ready for use.
+ *
+ * @param int $microseconds [optional]
+ * See tv_sec description.
+ *
+ * @return int|false On success stream_select returns the number of
+ * stream resources contained in the modified arrays, which may be zero if
+ * the timeout expires before anything interesting happens. On error false
+ * is returned and a warning raised (this can happen if the system call is
+ * interrupted by an incoming signal).
+ */
+function stream_select(
+ ?array &$read,
+ ?array &$write,
+ ?array &$except,
+ ?int $seconds,
+ #[LanguageLevelTypeAware(['8.1' => 'int|null'], default: 'int')] $microseconds
+): int|false {}
+
+/**
+ * Create a stream context
+ * @link https://php.net/manual/en/function.stream-context-create.php
+ * @param null|array $options [optional]
+ * Must be an associative array of associative arrays in the format
+ * $arr['wrapper']['option'] = $value.
+ *
+ *
+ * Default to an empty array.
+ *
+ * @param null|array $params [optional]
+ * Must be an associative array in the format
+ * $arr['parameter'] = $value.
+ * Refer to context parameters for
+ * a listing of standard stream parameters.
+ *
+ * @return resource A stream context resource.
+ */
+function stream_context_create(?array $options, ?array $params) {}
+
+/**
+ * Set parameters for a stream/wrapper/context
+ * @link https://php.net/manual/en/function.stream-context-set-params.php
+ * @param resource $context
+ * The stream or context to apply the parameters too.
+ *
+ * @param array $params
+ * An array of parameters to set.
+ *
+ *
+ * params should be an associative array of the structure:
+ * $params['paramname'] = "paramvalue";.
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_context_set_params($context, array $params): bool {}
+
+/**
+ * Retrieves parameters from a context
+ * @link https://php.net/manual/en/function.stream-context-get-params.php
+ * @param resource $context
+ * A stream resource or a
+ * context resource
+ *
+ * @return array an associate array containing all context options and parameters.
+ */
+#[ArrayShape(["notification" => "string", "options" => "array"])]
+function stream_context_get_params($context): array {}
+
+/**
+ * Sets an option for a stream/wrapper/context
+ * @link https://php.net/manual/en/function.stream-context-set-option.php
+ * @param resource $context
+ * The stream or context resource to apply the options too.
+ *
+ * @param string $wrapper_or_options
+ * @param string $option_name
+ * @param mixed $value
+ * @return bool true on success or false on failure.
+ */
+function stream_context_set_option($context, string $wrapper_or_options, string $option_name, mixed $value): bool {}
+
+/**
+ * Sets an option for a stream/wrapper/context
+ * @link https://php.net/manual/en/function.stream-context-set-option.php
+ * @param resource $stream_or_context The stream or context resource to apply the options too.
+ * @param array $options The options to set for the default context.
+ * @return bool true on success or false on failure.
+ */
+function stream_context_set_option($stream_or_context, array $options): bool {}
+
+/**
+ * Retrieve options for a stream/wrapper/context
+ * @link https://php.net/manual/en/function.stream-context-get-options.php
+ * @param resource $stream_or_context
+ * The stream or context to get options from
+ *
+ * @return array an associative array with the options.
+ */
+function stream_context_get_options($stream_or_context): array {}
+
+/**
+ * Retreive the default stream context
+ * @link https://php.net/manual/en/function.stream-context-get-default.php
+ * @param null|array $options [optional] options must be an associative
+ * array of associative arrays in the format
+ * $arr['wrapper']['option'] = $value.
+ *
+ * As of PHP 5.3.0, the stream_context_set_default function
+ * can be used to set the default context.
+ *
+ * @return resource A stream context resource.
+ */
+function stream_context_get_default(?array $options) {}
+
+/**
+ * Set the default stream context
+ * @link https://php.net/manual/en/function.stream-context-set-default.php
+ * @param array $options
+ * The options to set for the default context.
+ *
+ *
+ * options must be an associative
+ * array of associative arrays in the format
+ * $arr['wrapper']['option'] = $value.
+ *
+ * @return resource the default stream context.
+ */
+function stream_context_set_default(array $options) {}
+
+/**
+ * Attach a filter to a stream
+ * @link https://php.net/manual/en/function.stream-filter-prepend.php
+ * @param resource $stream
+ * The target stream.
+ *
+ * @param string $filter_name
+ * The filter name.
+ *
+ * @param int $mode
+ * By default, stream_filter_prepend will
+ * attach the filter to the read filter chain
+ * if the file was opened for reading (i.e. File Mode:
+ * r, and/or +). The filter
+ * will also be attached to the write filter chain
+ * if the file was opened for writing (i.e. File Mode:
+ * w, a, and/or +).
+ * STREAM_FILTER_READ,
+ * STREAM_FILTER_WRITE, and/or
+ * STREAM_FILTER_ALL can also be passed to the
+ * read_write parameter to override this behavior.
+ * See stream_filter_append for an example of
+ * using this parameter.
+ *
+ * @param mixed $params [optional]
+ * This filter will be added with the specified params
+ * to the beginning of the list and will therefore be
+ * called first during stream operations. To add a filter to the end of the
+ * list, use stream_filter_append.
+ *
+ * @return resource|false a resource which can be used to refer to this filter
+ * instance during a call to stream_filter_remove.
+ */
+function stream_filter_prepend($stream, string $filter_name, int $mode = 0, mixed $params) {}
+
+/**
+ * Attach a filter to a stream
+ * @link https://php.net/manual/en/function.stream-filter-append.php
+ * @param resource $stream
+ * The target stream.
+ *
+ * @param string $filter_name
+ * The filter name.
+ *
+ * @param int $mode
+ * By default, stream_filter_append will
+ * attach the filter to the read filter chain
+ * if the file was opened for reading (i.e. File Mode:
+ * r, and/or +). The filter
+ * will also be attached to the write filter chain
+ * if the file was opened for writing (i.e. File Mode:
+ * w, a, and/or +).
+ * STREAM_FILTER_READ,
+ * STREAM_FILTER_WRITE, and/or
+ * STREAM_FILTER_ALL can also be passed to the
+ * read_write parameter to override this behavior.
+ *
+ * @param mixed $params [optional]
+ * This filter will be added with the specified
+ * params to the end of
+ * the list and will therefore be called last during stream operations.
+ * To add a filter to the beginning of the list, use
+ * stream_filter_prepend.
+ *
+ * @return resource|false a resource which can be used to refer to this filter
+ * instance during a call to stream_filter_remove.
+ */
+function stream_filter_append($stream, string $filter_name, int $mode = 0, mixed $params) {}
+
+/**
+ * Remove a filter from a stream
+ * @link https://php.net/manual/en/function.stream-filter-remove.php
+ * @param resource $stream_filter
+ * The stream filter to be removed.
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_filter_remove($stream_filter): bool {}
+
+/**
+ * Open Internet or Unix domain socket connection
+ * @link https://php.net/manual/en/function.stream-socket-client.php
+ * @param string $address
+ * Address to the socket to connect to.
+ *
+ * @param int &$error_code [optional]
+ * Will be set to the system level error number if connection fails.
+ *
+ * @param string &$error_message [optional]
+ * Will be set to the system level error message if the connection fails.
+ *
+ * @param float|null $timeout [optional]
+ * Number of seconds until the connect() system call
+ * should timeout.
+ * This parameter only applies when not making asynchronous
+ * connection attempts.
+ *
+ * To set a timeout for reading/writing data over the socket, use the
+ * stream_set_timeout, as the
+ * timeout only applies while making connecting
+ * the socket.
+ *
+ *
+ * @param int $flags [optional]
+ * Bitmask field which may be set to any combination of connection flags.
+ * Currently the select of connection flags is limited to
+ * STREAM_CLIENT_CONNECT (default),
+ * STREAM_CLIENT_ASYNC_CONNECT and
+ * STREAM_CLIENT_PERSISTENT.
+ *
+ * @param resource $context [optional]
+ * A valid context resource created with stream_context_create.
+ *
+ * @return resource|false On success a stream resource is returned which may
+ * be used together with the other file functions (such as
+ * fgets, fgetss,
+ * fwrite, fclose, and
+ * feof), false on failure.
+ */
+function stream_socket_client(string $address, &$error_code, &$error_message, ?float $timeout, int $flags = STREAM_CLIENT_CONNECT, $context) {}
+
+/**
+ * Create an Internet or Unix domain server socket
+ * @link https://php.net/manual/en/function.stream-socket-server.php
+ * @param string $address
+ * The type of socket created is determined by the transport specified
+ * using standard URL formatting: transport://target.
+ *
+ *
+ * For Internet Domain sockets (AF_INET) such as TCP and UDP, the
+ * target portion of the
+ * remote_socket parameter should consist of a
+ * hostname or IP address followed by a colon and a port number. For
+ * Unix domain sockets, the target portion should
+ * point to the socket file on the filesystem.
+ *
+ *
+ * Depending on the environment, Unix domain sockets may not be available.
+ * A list of available transports can be retrieved using
+ * stream_get_transports. See
+ * for a list of built-in transports.
+ *
+ * @param int &$error_code [optional]
+ * If the optional errno and errstr
+ * arguments are present they will be set to indicate the actual system
+ * level error that occurred in the system-level socket(),
+ * bind(), and listen() calls. If
+ * the value returned in errno is
+ * 0 and the function returned false, it is an
+ * indication that the error occurred before the bind()
+ * call. This is most likely due to a problem initializing the socket.
+ * Note that the errno and
+ * errstr arguments will always be passed by reference.
+ *
+ * @param string &$error_message [optional]
+ * See errno description.
+ *
+ * @param int $flags [optional]
+ * A bitmask field which may be set to any combination of socket creation
+ * flags.
+ *
+ *
+ * For UDP sockets, you must use STREAM_SERVER_BIND as
+ * the flags parameter.
+ *
+ * @param resource $context [optional]
+ *
+ * @return resource|false the created stream, or false on error.
+ */
+function stream_socket_server(string $address, &$error_code, &$error_message, int $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context) {}
+
+/**
+ * Accept a connection on a socket created by {@see stream_socket_server}
+ * @link https://php.net/manual/en/function.stream-socket-accept.php
+ * @param resource $socket
+ * @param float|null $timeout [optional]
+ * Override the default socket accept timeout. Time should be given in
+ * seconds.
+ *
+ * @param string &$peer_name [optional]
+ * Will be set to the name (address) of the client which connected, if
+ * included and available from the selected transport.
+ *
+ *
+ * Can also be determined later using
+ * stream_socket_get_name.
+ *
+ * @return resource|false Returns a stream to the accepted socket connection or FALSE on failure.
+ */
+function stream_socket_accept($socket, ?float $timeout, &$peer_name) {}
+
+/**
+ * Retrieve the name of the local or remote sockets
+ * @link https://php.net/manual/en/function.stream-socket-get-name.php
+ * @param resource $socket
+ * The socket to get the name of.
+ *
+ * @param bool $remote
+ * If set to true the remote socket name will be returned, if set
+ * to false the local socket name will be returned.
+ *
+ * @return string|false The name of the socket or false on error.
+ */
+function stream_socket_get_name($socket, bool $remote): string|false {}
+
+/**
+ * Receives data from a socket, connected or not
+ * @link https://php.net/manual/en/function.stream-socket-recvfrom.php
+ * @param resource $socket
+ * The remote socket.
+ *
+ * @param int $length
+ * The number of bytes to receive from the socket.
+ *
+ * @param int $flags
+ * The value of flags can be any combination
+ * of the following:
+ *
+ * Possible values for flags
+ *
+ * STREAM_OOB
+ *
+ * Process OOB (out-of-band) data.
+ *
+ *
+ *
+ * STREAM_PEEK
+ *
+ * Retrieve data from the socket, but do not consume the buffer.
+ * Subsequent calls to fread or
+ * stream_socket_recvfrom will see
+ * the same data.
+ *
+ *
+ *
+ *
+ * @param string &$address [optional]
+ * If address is provided it will be populated with
+ * the address of the remote socket.
+ *
+ * @return string|false the read data, as a string, or false on error
+ */
+function stream_socket_recvfrom($socket, int $length, int $flags = 0, &$address): string|false {}
+
+/**
+ * Sends a message to a socket, whether it is connected or not
+ * @link https://php.net/manual/en/function.stream-socket-sendto.php
+ * @param resource $socket
+ * The socket to send data to.
+ *
+ * @param string $data
+ * The data to be sent.
+ *
+ * @param int $flags
+ * The value of flags can be any combination
+ * of the following:
+ *
+ * possible values for flags
+ *
+ * STREAM_OOB
+ *
+ * Process OOB (out-of-band) data.
+ *
+ *
+ *
+ *
+ * @param string $address
+ * The address specified when the socket stream was created will be used
+ * unless an alternate address is specified in address.
+ *
+ *
+ * If specified, it must be in dotted quad (or [ipv6]) format.
+ *
+ * @return int|false a result code, as an integer.
+ */
+function stream_socket_sendto($socket, string $data, int $flags = 0, string $address = ''): int|false {}
+
+/**
+ * Turns encryption on/off on an already connected socket
+ * @link https://php.net/manual/en/function.stream-socket-enable-crypto.php
+ * @param resource $stream
+ * The stream resource.
+ *
+ * @param bool $enable
+ * Enable/disable cryptography on the stream.
+ *
+ * @param int|null $crypto_method [optional]
+ * Setup encryption on the stream.
+ * Valid methods are:
+ * STREAM_CRYPTO_METHOD_SSLv2_CLIENT
+ * @param resource $session_stream [optional]
+ * Seed the stream with settings from session_stream.
+ *
+ * @return bool|int true on success, false if negotiation has failed or
+ * 0 if there isn't enough data and you should try again
+ * (only for non-blocking sockets).
+ */
+function stream_socket_enable_crypto($stream, bool $enable, ?int $crypto_method, $session_stream): int|bool {}
+
+/**
+ * Shutdown a full-duplex connection
+ * @link https://php.net/manual/en/function.stream-socket-shutdown.php
+ * @param resource $stream
+ * An open stream (opened with stream_socket_client,
+ * for example)
+ *
+ * @param int $mode
+ * One of the following constants: STREAM_SHUT_RD
+ * (disable further receptions), STREAM_SHUT_WR
+ * (disable further transmissions) or
+ * STREAM_SHUT_RDWR (disable further receptions and
+ * transmissions).
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.2.1
+ */
+function stream_socket_shutdown($stream, int $mode): bool {}
+
+/**
+ * Creates a pair of connected, indistinguishable socket streams
+ * @link https://php.net/manual/en/function.stream-socket-pair.php
+ * @param int $domain
+ * The protocol family to be used: STREAM_PF_INET,
+ * STREAM_PF_INET6 or
+ * STREAM_PF_UNIX
+ *
+ * @param int $type
+ * The type of communication to be used:
+ * STREAM_SOCK_DGRAM,
+ * STREAM_SOCK_RAW,
+ * STREAM_SOCK_RDM,
+ * STREAM_SOCK_SEQPACKET or
+ * STREAM_SOCK_STREAM
+ *
+ * @param int $protocol
+ * The protocol to be used: STREAM_IPPROTO_ICMP,
+ * STREAM_IPPROTO_IP,
+ * STREAM_IPPROTO_RAW,
+ * STREAM_IPPROTO_TCP or
+ * STREAM_IPPROTO_UDP
+ *
+ * @return array|false an array with the two socket resources on success, or
+ * false on failure.
+ */
+function stream_socket_pair(int $domain, int $type, int $protocol): array|false {}
+
+/**
+ * Copies data from one stream to another
+ * @link https://php.net/manual/en/function.stream-copy-to-stream.php
+ * @param resource $from
+ * The source stream
+ *
+ * @param resource $to
+ * The destination stream
+ *
+ * @param int|null $length [optional]
+ * Maximum bytes to copy
+ *
+ * @param int $offset
+ * The offset where to start to copy data
+ *
+ * @return int|false the total count of bytes copied, or false on failure.
+ */
+function stream_copy_to_stream($from, $to, ?int $length, int $offset = 0): int|false {}
+
+/**
+ * Reads remainder of a stream into a string
+ * @link https://php.net/manual/en/function.stream-get-contents.php
+ * @param resource $stream
+ * A stream resource (e.g. returned from fopen)
+ *
+ * @param int|null $length
+ * The maximum bytes to read. Defaults to -1 (read all the remaining
+ * buffer).
+ *
+ * @param int $offset [optional]
+ * Seek to the specified offset before reading.
+ *
+ * @return string|false a string or false on failure.
+ */
+function stream_get_contents($stream, ?int $length = null, int $offset = -1): string|false {}
+
+/**
+ * Tells whether the stream supports locking.
+ * @link https://php.net/manual/en/function.stream-supports-lock.php
+ * @param resource $stream
+ * The stream to check.
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_supports_lock($stream): bool {}
+
+/**
+ * @since 8.3
+ */
+function stream_context_set_options($context, array $options): bool {}
+
+/**
+ * Gets line from file pointer and parse for CSV fields
+ * @link https://php.net/manual/en/function.fgetcsv.php
+ * @param resource $stream
+ * A valid file pointer to a file successfully opened by
+ * fopen, popen, or
+ * fsockopen.
+ *
+ * @param int|null $length
+ * Must be greater than the longest line (in characters) to be found in
+ * the CSV file (allowing for trailing line-end characters). It became
+ * optional in PHP 5. Omitting this parameter (or setting it to 0 in PHP
+ * 5.0.4 and later) the maximum line length is not limited, which is
+ * slightly slower.
+ *
+ * @param string $separator [optional]
+ * Set the field delimiter (one character only).
+ *
+ * @param string $enclosure [optional]
+ * Set the field enclosure character (one character only).
+ *
+ * @param string $escape [optional]
+ * Set the escape character (one character only). Defaults as a backslash.
+ *
+ * @return array|false|null an indexed array containing the fields read.
+ *
+ * A blank line in a CSV file will be returned as an array
+ * comprising a single null field, and will not be treated
+ * as an error.
+ *
+ *
+ * fgetcsv returns null if an invalid
+ * handle is supplied or false on other errors,
+ * including end of file.
+ *
+ */
+#[LanguageLevelTypeAware(['8.0' => 'array|false'], default: 'array|false|null')]
+function fgetcsv($stream, ?int $length = null, string $separator = ',', string $enclosure = '"', string $escape = '\\') {}
+
+/**
+ * Format line as CSV and write to file pointer
+ * @link https://php.net/manual/en/function.fputcsv.php
+ * @param resource $stream The file pointer must be valid, and must point to a file successfully opened by fopen() or fsockopen() (and not yet closed by fclose()).
+ * @param array $fields
+ * An array of values.
+ *
+ * @param string $separator [optional]
+ * The optional delimiter parameter sets the field
+ * delimiter (one character only).
+ *
+ * @param string $enclosure [optional]
+ * The optional enclosure parameter sets the field
+ * enclosure (one character only).
+ *
+ * @param string $escape [optional]
+ * The optional escape_char parameter sets the escape character (one character only).
+ *
+ * @return int|false the length of the written string or false on failure.
+ */
+function fputcsv(
+ $stream,
+ array $fields,
+ string $separator = ",",
+ string $enclosure = '"',
+ #[PhpStormStubsElementAvailable(from: '7.0')] string $escape = "\\",
+ #[PhpStormStubsElementAvailable('8.1')] string $eol = PHP_EOL
+): int|false {}
+
+/**
+ * Portable advisory file locking
+ * @link https://php.net/manual/en/function.flock.php
+ * @param resource $stream
+ * An open file pointer.
+ *
+ * @param int $operation
+ * operation is one of the following:
+ * LOCK_SH to acquire a shared lock (reader).
+ * @param int &$would_block [optional]
+ * The optional third argument is set to 1 if the lock would block
+ * (EWOULDBLOCK errno condition).
+ *
+ * @return bool true on success or false on failure.
+ */
+function flock($stream, int $operation, &$would_block): bool {}
+
+/**
+ * Extracts all meta tag content attributes from a file and returns an array
+ * @link https://php.net/manual/en/function.get-meta-tags.php
+ * @param string $filename
+ * The path to the HTML file, as a string. This can be a local file or an
+ * URL.
+ *
+ *
+ * What get_meta_tags parses
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * (pay attention to line endings - PHP uses a native function to
+ * parse the input, so a Mac file won't work on Unix).
+ *
+ * @param bool $use_include_path [optional]
+ * Setting use_include_path to true will result
+ * in PHP trying to open the file along the standard include path as per
+ * the include_path directive.
+ * This is used for local files, not URLs.
+ *
+ * @return array|false an array with all the parsed meta tags.
+ *
+ * The value of the name property becomes the key, the value of the content
+ * property becomes the value of the returned array, so you can easily use
+ * standard array functions to traverse it or access single values.
+ * Special characters in the value of the name property are substituted with
+ * '_', the rest is converted to lower case. If two meta tags have the same
+ * name, only the last one is returned.
+ *
+ */
+#[Pure(true)]
+function get_meta_tags(string $filename, bool $use_include_path = false): array|false {}
+
+/**
+ * Sets write file buffering on the given stream
+ * @link https://php.net/manual/en/function.stream-set-write-buffer.php
+ * @param resource $stream
+ * The file pointer.
+ *
+ * @param int $size
+ * The number of bytes to buffer. If buffer
+ * is 0 then write operations are unbuffered. This ensures that all writes
+ * with fwrite are completed before other processes are
+ * allowed to write to that output stream.
+ *
+ * @return int 0 on success, or EOF if the request cannot be honored.
+ * @see stream_set_read_buffer()
+ */
+function stream_set_write_buffer($stream, int $size): int {}
+
+/**
+ * Sets read file buffering on the given stream
+ * @link https://php.net/manual/en/function.stream-set-read-buffer.php
+ * @param resource $stream
+ * The file pointer.
+ *
+ * @param int $size
+ * The number of bytes to buffer. If buffer
+ * is 0 then write operations are unbuffered. This ensures that all writes
+ * with fwrite are completed before other processes are
+ * allowed to write to that output stream.
+ *
+ * @return int 0 on success, or EOF if the request cannot be honored.
+ * @see stream_set_write_buffer()
+ */
+function stream_set_read_buffer($stream, int $size): int {}
+
+/**
+ * Alias:
+ * {@see stream_set_write_buffer}
+ * Sets the buffering for write operations on the given stream to buffer bytes.
+ * Output using fwrite() is normally buffered at 8K.
+ * This means that if there are two processes wanting to write to the same output stream (a file),
+ * each is paused after 8K of data to allow the other to write.
+ *
+ * @link https://php.net/manual/en/function.set-file-buffer.php
+ * @param resource $stream The file pointer.
+ * @param int $size The number of bytes to buffer. If buffer is 0 then write operations are unbuffered.
+ * This ensures that all writes with fwrite() are completed before other processes are allowed to write to that output stream.
+ * @return int
+ */
+function set_file_buffer($stream, int $size): int {}
+
+/**
+ * Alias:
+ * {@see stream_set_blocking}
+ * Sets blocking or non-blocking mode on a stream.
+ * This function works for any stream that supports non-blocking mode (currently, regular files and socket streams)
+ *
+ * @link https://php.net/manual/en/function.set-socket-blocking.php
+ * @param resource $socket
+ * @param bool $mode If mode is FALSE, the given stream will be switched to non-blocking mode, and if TRUE, it will be switched to blocking mode.
+ * This affects calls like fgets() and fread() that read from the stream.
+ * In non-blocking mode an fgets() call will always return right away while in blocking mode it will wait for data to become available on the stream.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @removed 7.0
+ * @see stream_set_blocking()
+ */
+#[Deprecated(replacement: "stream_set_blocking(%parametersList%)", since: 5.3)]
+function set_socket_blocking($socket, bool $mode): bool {}
+
+/**
+ * Set blocking/non-blocking mode on a stream
+ * @link https://php.net/manual/en/function.stream-set-blocking.php
+ * @param resource $stream
+ * The stream.
+ *
+ * @param bool $enable
+ * If mode is FALSE, the given stream
+ * will be switched to non-blocking mode, and if TRUE, it
+ * will be switched to blocking mode. This affects calls like
+ * fgets and fread
+ * that read from the stream. In non-blocking mode an
+ * fgets call will always return right away
+ * while in blocking mode it will wait for data to become available
+ * on the stream.
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_set_blocking($stream, bool $enable): bool {}
+
+/**
+ * Alias:
+ * {@see stream_set_blocking}
+ * @link https://php.net/manual/en/function.socket-set-blocking.php
+ * @param resource $stream
+ * The stream.
+ *
+ * @param bool $enable
+ * If mode is FALSE, the given stream
+ * will be switched to non-blocking mode, and if TRUE, it
+ * will be switched to blocking mode. This affects calls like
+ * fgets and fread
+ * that read from the stream. In non-blocking mode an
+ * fgets call will always return right away
+ * while in blocking mode it will wait for data to become available
+ * on the stream.
+ *
+ * @return bool true on success or false on failure.
+ */
+function socket_set_blocking($stream, bool $enable): bool {}
+
+/**
+ * Retrieves header/meta data from streams/file pointers
+ * @link https://php.net/manual/en/function.stream-get-meta-data.php
+ * @param resource $stream
+ * The stream can be any stream created by fopen,
+ * fsockopen and pfsockopen.
+ *
+ * @return array The result array contains the following items:
+ *
+ * timed_out (bool) - true if the stream
+ * timed out while waiting for data on the last call to
+ * fread or fgets.
+ *
+ *
+ * blocked (bool) - true if the stream is
+ * in blocking IO mode. See stream_set_blocking.
+ *
+ *
+ * eof (bool) - true if the stream has reached
+ * end-of-file. Note that for socket streams this member can be true
+ * even when unread_bytes is non-zero. To
+ * determine if there is more data to be read, use
+ * feof instead of reading this item.
+ *
+ *
+ * unread_bytes (int) - the number of bytes
+ * currently contained in the PHP's own internal buffer.
+ *
+ * You shouldn't use this value in a script.
+ *
+ * stream_type (string) - a label describing
+ * the underlying implementation of the stream.
+ *
+ *
+ * wrapper_type (string) - a label describing
+ * the protocol wrapper implementation layered over the stream.
+ * See for more information about wrappers.
+ *
+ *
+ * wrapper_data (mixed) - wrapper specific
+ * data attached to this stream. See for
+ * more information about wrappers and their wrapper data.
+ *
+ *
+ * filters (array) - and array containing
+ * the names of any filters that have been stacked onto this stream.
+ * Documentation on filters can be found in the
+ * Filters appendix.
+ *
+ *
+ * mode (string) - the type of access required for
+ * this stream (see Table 1 of the fopen() reference)
+ *
+ *
+ * seekable (bool) - whether the current stream can
+ * be seeked.
+ *
+ *
+ * uri (string) - the URI/filename associated with this
+ * stream.
+ *
+ */
+#[ArrayShape(["timed_out" => "bool", "blocked" => "bool", "eof" => "bool", "unread_bytes" => "int", "stream_type" => "string", "wrapper_type" => "string", "wrapper_data" => "mixed", "mode" => "string", "seekable" => "bool", "uri" => "string", "crypto" => "array", "mediatype" => "string"])]
+function stream_get_meta_data($stream): array {}
+
+/**
+ * Gets line from stream resource up to a given delimiter
+ * @link https://php.net/manual/en/function.stream-get-line.php
+ * @param resource $stream
+ * A valid file handle.
+ *
+ * @param int $length
+ * The number of bytes to read from the handle.
+ *
+ * @param string $ending
+ * An optional string delimiter.
+ *
+ * @return string|false a string of up to length bytes read from the file
+ * pointed to by handle.
+ *
+ * If an error occurs, returns false.
+ *
+ */
+function stream_get_line($stream, int $length, string $ending = ''): string|false {}
+
+/**
+ * Register a URL wrapper implemented as a PHP class
+ * @link https://php.net/manual/en/function.stream-wrapper-register.php
+ * @param string $protocol
+ * The wrapper name to be registered.
+ *
+ * @param string $class
+ * The classname which implements the protocol.
+ *
+ * @param int $flags
+ * Should be set to STREAM_IS_URL if
+ * protocol is a URL protocol. Default is 0, local
+ * stream.
+ *
+ * @return bool true on success or false on failure.
+ *
+ * stream_wrapper_register will return false if the
+ * protocol already has a handler.
+ *
+ */
+function stream_wrapper_register(string $protocol, string $class, int $flags = 0): bool {}
+
+/**
+ * Alias:
+ * {@see stream_wrapper_register}
+ * Register a URL wrapper implemented as a PHP class
+ * @link https://php.net/manual/en/function.stream-register-wrapper.php
+ * @param string $protocol
+ * The wrapper name to be registered.
+ *
+ * @param string $class
+ * The classname which implements the protocol.
+ *
+ * @param int $flags [optional]
+ * Should be set to STREAM_IS_URL if
+ * protocol is a URL protocol. Default is 0, local
+ * stream.
+ *
+ * @return bool true on success or false on failure.
+ *
+ * stream_wrapper_register will return false if the
+ * protocol already has a handler.
+ *
+ */
+function stream_register_wrapper(string $protocol, string $class, int $flags = 0): bool {}
+
+/**
+ * Resolve filename against the include path according to the same rules as fopen()/include().
+ * @link https://php.net/manual/en/function.stream-resolve-include-path.php
+ * @param string $filename The filename to resolve.
+ * @return string|false containing the resolved absolute filename, or FALSE on failure.
+ * @since 5.3.2
+ */
+function stream_resolve_include_path(string $filename): string|false {}
+
+/**
+ * Unregister a URL wrapper
+ * @link https://php.net/manual/en/function.stream-wrapper-unregister.php
+ * @param string $protocol
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_wrapper_unregister(string $protocol): bool {}
+
+/**
+ * Restores a previously unregistered built-in wrapper
+ * @link https://php.net/manual/en/function.stream-wrapper-restore.php
+ * @param string $protocol
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_wrapper_restore(string $protocol): bool {}
+
+/**
+ * Retrieve list of registered streams
+ * @link https://php.net/manual/en/function.stream-get-wrappers.php
+ * @return list an indexed array containing the name of all stream wrappers
+ * available on the running system.
+ */
+#[Pure(true)]
+function stream_get_wrappers(): array {}
+
+/**
+ * Retrieve list of registered socket transports
+ * @link https://php.net/manual/en/function.stream-get-transports.php
+ * @return list an indexed array of socket transports names.
+ */
+#[Pure(true)]
+function stream_get_transports(): array {}
+
+/**
+ * Checks if a stream is a local stream
+ * @link https://php.net/manual/en/function.stream-is-local.php
+ * @param mixed $stream
+ * The stream resource or URL to check.
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.2.4
+ */
+#[Pure]
+function stream_is_local($stream): bool {}
+
+/**
+ * Fetches all the headers sent by the server in response to an HTTP request
+ * @link https://php.net/manual/en/function.get-headers.php
+ * @param string $url
+ * The target URL.
+ *
+ * @param bool $associative [optional]
+ * If the optional format parameter is set to true,
+ * get_headers parses the response and sets the
+ * array's keys.
+ *
+ * @param resource $context [optional]
+ * @return array|false an indexed or associative array with the headers, or false on
+ * failure.
+ */
+#[Pure(true)]
+function get_headers(
+ string $url,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: 'int')] $associative = false,
+ #[PhpStormStubsElementAvailable(from: '7.1')] $context = null
+): array|false {}
+
+/**
+ * Set timeout period on a stream
+ * @link https://php.net/manual/en/function.stream-set-timeout.php
+ * @param resource $stream
+ * The target stream.
+ *
+ * @param int $seconds
+ * The seconds part of the timeout to be set.
+ *
+ * @param int $microseconds
+ * The microseconds part of the timeout to be set.
+ *
+ * @return bool true on success or false on failure.
+ */
+function stream_set_timeout(
+ $stream,
+ int $seconds,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] int $microseconds,
+ #[PhpStormStubsElementAvailable(from: '7.0')] int $microseconds = 0
+): bool {}
+
+/**
+ * Alias:
+ * {@see stream_set_timeout}
+ * Set timeout period on a stream
+ * @link https://php.net/manual/en/function.socket-set-timeout.php
+ * @param resource $stream
+ * The target stream.
+ *
+ * @param int $seconds
+ * The seconds part of the timeout to be set.
+ *
+ * @param int $microseconds
+ * The microseconds part of the timeout to be set.
+ *
+ * @return bool true on success or false on failure.
+ */
+function socket_set_timeout(
+ $stream,
+ int $seconds,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '5.6')] int $microseconds,
+ #[PhpStormStubsElementAvailable(from: '7.0')] int $microseconds = 0
+): bool {}
+
+/**
+ * Alias:
+ * {@see stream_get_meta_data}
+ * Retrieves header/meta data from streams/file pointers
+ * @link https://php.net/manual/en/function.socket-get-status.php
+ * @param resource $stream
+ * The stream can be any stream created by fopen,
+ * fsockopen and pfsockopen.
+ *
+ * @return array The result array contains the following items:
+ *
+ * timed_out (bool) - true if the stream
+ * timed out while waiting for data on the last call to
+ * fread or fgets.
+ *
+ *
+ * blocked (bool) - true if the stream is
+ * in blocking IO mode. See stream_set_blocking.
+ *
+ *
+ * eof (bool) - true if the stream has reached
+ * end-of-file. Note that for socket streams this member can be true
+ * even when unread_bytes is non-zero. To
+ * determine if there is more data to be read, use
+ * feof instead of reading this item.
+ *
+ *
+ * unread_bytes (int) - the number of bytes
+ * currently contained in the PHP's own internal buffer.
+ *
+ * You shouldn't use this value in a script.
+ *
+ * stream_type (string) - a label describing
+ * the underlying implementation of the stream.
+ *
+ *
+ * wrapper_type (string) - a label describing
+ * the protocol wrapper implementation layered over the stream.
+ * See for more information about wrappers.
+ *
+ *
+ * wrapper_data (mixed) - wrapper specific
+ * data attached to this stream. See for
+ * more information about wrappers and their wrapper data.
+ *
+ *
+ * filters (array) - and array containing
+ * the names of any filters that have been stacked onto this stream.
+ * Documentation on filters can be found in the
+ * Filters appendix.
+ *
+ *
+ * mode (string) - the type of access required for
+ * this stream (see Table 1 of the fopen() reference)
+ *
+ *
+ * seekable (bool) - whether the current stream can
+ * be seeked.
+ *
+ *
+ * uri (string) - the URI/filename associated with this
+ * stream.
+ *
+ */
+function socket_get_status($stream): array {}
+
+/**
+ * Returns canonicalized absolute pathname
+ * @link https://php.net/manual/en/function.realpath.php
+ * @param string $path
+ * The path being checked.
+ *
+ * @return string|false the canonicalized absolute pathname on success. The resulting path
+ * will have no symbolic link, '/./' or '/../' components.
+ *
+ * realpath returns false on failure, e.g. if
+ * the file does not exist.
+ *
+ */
+#[Pure(true)]
+function realpath(string $path): string|false {}
+
+/**
+ * Match filename against a pattern
+ * @link https://php.net/manual/en/function.fnmatch.php
+ * @param string $pattern
+ * The shell wildcard pattern.
+ *
+ * @param string $filename
+ * The tested string. This function is especially useful for filenames,
+ * but may also be used on regular strings.
+ *
+ *
+ * The average user may be used to shell patterns or at least in their
+ * simplest form to '?' and '*'
+ * wildcards so using fnmatch instead of
+ * preg_match for
+ * frontend search expression input may be way more convenient for
+ * non-programming users.
+ *
+ * @param int $flags
+ * The value of flags can be any combination of
+ * the following flags, joined with the
+ * binary OR (|) operator.
+ *
+ * A list of possible flags for fnmatch
+ *
+ * Flag
+ * Description
+ *
+ *
+ * FNM_NOESCAPE
+ *
+ * Disable backslash escaping.
+ *
+ *
+ *
+ * FNM_PATHNAME
+ *
+ * Slash in string only matches slash in the given pattern.
+ *
+ *
+ *
+ * FNM_PERIOD
+ *
+ * Leading period in string must be exactly matched by period in the given pattern.
+ *
+ *
+ *
+ * FNM_CASEFOLD
+ *
+ * Caseless match. Part of the GNU extension.
+ *
+ *
+ *
+ *
+ * @return bool true if there is a match, false otherwise.
+ */
+#[Pure(true)]
+function fnmatch(string $pattern, string $filename, int $flags = 0): bool {}
diff --git a/phpstorm-stubs/standard/standard_7.php b/phpstorm-stubs/standard/standard_7.php
new file mode 100644
index 0000000..680ba31
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_7.php
@@ -0,0 +1,1196 @@
+
+ * If you have compiled in OpenSSL support, you may prefix the
+ * hostname with either ssl://
+ * or tls:// to use an SSL or TLS client connection
+ * over TCP/IP to connect to the remote host.
+ *
+ * @param int $port
+ * The port number.
+ *
+ * @param int &$error_code [optional]
+ * If provided, holds the system level error number that occurred in the
+ * system-level connect() call.
+ *
+ *
+ * If the value returned in errno is
+ * 0 and the function returned false, it is an
+ * indication that the error occurred before the
+ * connect() call. This is most likely due to a
+ * problem initializing the socket.
+ *
+ * @param string &$error_message [optional]
+ * The error message as a string.
+ *
+ * @param float|null $timeout [optional]
+ * The connection timeout, in seconds.
+ *
+ *
+ * If you need to set a timeout for reading/writing data over the
+ * socket, use stream_set_timeout, as the
+ * timeout parameter to
+ * fsockopen only applies while connecting the
+ * socket.
+ *
+ * @return resource|false fsockopen returns a file pointer which may be used
+ * together with the other file functions (such as
+ * fgets, fgetss,
+ * fwrite, fclose, and
+ * feof). If the call fails, it will return false
+ */
+function fsockopen(
+ string $hostname,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] int $port,
+ #[PhpStormStubsElementAvailable(from: '7.1')] int $port = -1,
+ &$error_code,
+ &$error_message,
+ ?float $timeout
+) {}
+
+/**
+ * Open persistent Internet or Unix domain socket connection
+ * @link https://php.net/manual/en/function.pfsockopen.php
+ * @see fsockopen
+ * @param string $hostname
+ * @param int $port
+ * @param int &$error_code [optional]
+ * @param string &$error_message [optional]
+ * @param float|null $timeout [optional]
+ * @return resource|false
+ */
+function pfsockopen(
+ string $hostname,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] int $port,
+ #[PhpStormStubsElementAvailable(from: '7.1')] int $port = -1,
+ &$error_code,
+ &$error_message,
+ ?float $timeout
+) {}
+
+/**
+ * Pack data into binary string
+ * @link https://php.net/manual/en/function.pack.php
+ * @param string $format
+ * The format string consists of format codes
+ * followed by an optional repeater argument. The repeater argument can
+ * be either an integer value or * for repeating to
+ * the end of the input data. For a, A, h, H the repeat count specifies
+ * how many characters of one data argument are taken, for @ it is the
+ * absolute position where to put the next data, for everything else the
+ * repeat count specifies how many data arguments are consumed and packed
+ * into the resulting binary string.
+ *
+ *
+ * Currently implemented formats are:
+ *
+ * pack format characters
+ *
+ * Code
+ * Description
+ *
+ *
+ * a
+ * NUL-padded string
+ *
+ *
+ * A
+ * SPACE-padded string
+ *
+ * h
+ * Hex string, low nibble first
+ *
+ * H
+ * Hex string, high nibble first
+ * c signed char
+ *
+ * C
+ * unsigned char
+ *
+ * s
+ * signed short (always 16 bit, machine byte order)
+ *
+ *
+ * S
+ * unsigned short (always 16 bit, machine byte order)
+ *
+ *
+ * n
+ * unsigned short (always 16 bit, big endian byte order)
+ *
+ *
+ * v
+ * unsigned short (always 16 bit, little endian byte order)
+ *
+ *
+ * i
+ * signed integer (machine dependent size and byte order)
+ *
+ *
+ * I
+ * unsigned integer (machine dependent size and byte order)
+ *
+ *
+ * l
+ * signed long (always 32 bit, machine byte order)
+ *
+ *
+ * L
+ * unsigned long (always 32 bit, machine byte order)
+ *
+ *
+ * N
+ * unsigned long (always 32 bit, big endian byte order)
+ *
+ *
+ * V
+ * unsigned long (always 32 bit, little endian byte order)
+ *
+ *
+ * f
+ * float (machine dependent size and representation, both little and big endian)
+ *
+ *
+ * d
+ * double (machine dependent size and representation, both little and big endian)
+ *
+ *
+ * x
+ * NUL byte
+ *
+ *
+ * X
+ * Back up one byte
+ *
+ *
+ * @
+ * NUL-fill to absolute position
+ *
+ *
+ *
+ * @param mixed ...$values
+ *
+ * @return string|false a binary string containing data or false if the format string contains errors
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function pack(
+ string $format,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $values,
+ mixed ...$values
+) {}
+
+/**
+ * Unpack data from binary string
+ * @link https://php.net/manual/en/function.unpack.php
+ * @param string $format
+ * See pack for an explanation of the format codes.
+ *
+ * @param string $string
+ * The packed data.
+ *
+ * @param int $offset [optional]
+ * @return array|false an associative array containing unpacked elements of binary
+ * string or false if the format string contains errors
+ */
+#[Pure]
+function unpack(
+ string $format,
+ string $string,
+ #[PhpStormStubsElementAvailable(from: '7.1')] int $offset = 0
+): array|false {}
+
+/**
+ * Tells what the user's browser is capable of
+ * @link https://php.net/manual/en/function.get-browser.php
+ * @param string|null $user_agent [optional]
+ * The User Agent to be analyzed. By default, the value of HTTP
+ * User-Agent header is used; however, you can alter this (i.e., look up
+ * another browser's info) by passing this parameter.
+ *
+ *
+ * You can bypass this parameter with a null value.
+ *
+ * @param bool $return_array [optional]
+ * If set to true, this function will return an array
+ * instead of an object.
+ *
+ * @return array|object|false Returns false if browscap.ini can't be loaded or the user agent can't be found, otherwise the information is returned in an object or an array which will contain
+ * various data elements representing, for instance, the browser's major and
+ * minor version numbers and ID string; true/false values for features
+ * such as frames, JavaScript, and cookies; and so forth.
+ *
+ *
+ * The cookies value simply means that the browser
+ * itself is capable of accepting cookies and does not mean the user has
+ * enabled the browser to accept cookies or not. The only way to test if
+ * cookies are accepted is to set one with setcookie,
+ * reload, and check for the value.
+ */
+#[Pure(true)]
+function get_browser(?string $user_agent, bool $return_array = false): object|array|false {}
+
+/**
+ * One-way string encryption (hashing)
+ * @link https://php.net/manual/en/function.crypt.php
+ * @param string $string
+ * The string to be encrypted.
+ *
+ * @param string $salt
+ * An optional salt string to base the encryption on. If not provided,
+ * one will be randomly generated by PHP each time you call this function.
+ * PHP 5.6 or later raise E_NOTICE error if this parameter is omitted
+ *
+ *
+ * If you are using the supplied salt, you should be aware that the salt
+ * is generated once. If you are calling this function repeatedly, this
+ * may impact both appearance and security.
+ *
+ * @return string|null the encrypted string or NULL if an error occurs
+ */
+#[Pure]
+#[PhpStormStubsElementAvailable(to: '7.4')]
+function crypt($string, $salt): ?string {}
+
+/**
+ * One-way string encryption (hashing)
+ * @link https://php.net/manual/en/function.crypt.php
+ * @param string $string
+ * The string to be encrypted.
+ *
+ * @param string $salt
+ * An optional salt string to base the encryption on. If not provided,
+ * one will be randomly generated by PHP each time you call this function.
+ * PHP 5.6 or later raise E_NOTICE error if this parameter is omitted
+ *
+ *
+ * If you are using the supplied salt, you should be aware that the salt
+ * is generated once. If you are calling this function repeatedly, this
+ * may impact both appearance and security.
+ *
+ * @return string the encrypted string or NULL if an error occurs
+ */
+#[Pure]
+#[PhpStormStubsElementAvailable('8.0')]
+function crypt(string $string, string $salt): string {}
+
+/**
+ * Open directory handle
+ * @link https://php.net/manual/en/function.opendir.php
+ * @param string $directory
+ * The directory path that is to be opened
+ *
+ * @param resource $context [optional]
+ * For a description of the context parameter,
+ * refer to the streams section of
+ * the manual.
+ *
+ * @return resource|false a directory handle resource on success, or
+ * false on failure.
+ *
+ *
+ * If path is not a valid directory or the
+ * directory can not be opened due to permission restrictions or
+ * filesystem errors, opendir returns false and
+ * generates a PHP error of level
+ * E_WARNING. You can suppress the error output of
+ * opendir by prepending
+ * '@' to the
+ * front of the function name.
+ */
+function opendir(string $directory, $context) {}
+
+/**
+ * Close directory handle
+ * @link https://php.net/manual/en/function.closedir.php
+ * @param resource $dir_handle [optional]
+ * The directory handle resource previously opened
+ * with opendir. If the directory handle is
+ * not specified, the last link opened by opendir
+ * is assumed.
+ *
+ * @return void
+ */
+function closedir($dir_handle): void {}
+
+/**
+ * Change directory
+ * @link https://php.net/manual/en/function.chdir.php
+ * @param string $directory
+ * The new current directory
+ *
+ * @return bool true on success or false on failure.
+ */
+function chdir(string $directory): bool {}
+
+/**
+ * Change the root directory
+ * @link https://php.net/manual/en/function.chroot.php
+ * @param string $directory
+ * The new directory
+ *
+ * @return bool true on success or false on failure.
+ */
+function chroot(string $directory): bool {}
+
+/**
+ * Gets the current working directory
+ * @link https://php.net/manual/en/function.getcwd.php
+ * @return string|false
+ * the current working directory on success, or false on
+ * failure.
+ *
+ * On some Unix variants, getcwd will return
+ * false if any one of the parent directories does not have the
+ * readable or search mode set, even if the current directory
+ * does. See chmod for more information on
+ * modes and permissions.
+ *
+ */
+#[Pure(true)]
+function getcwd(): string|false {}
+
+/**
+ * Rewind directory handle
+ * @link https://php.net/manual/en/function.rewinddir.php
+ * @param resource $dir_handle [optional]
+ * The directory handle resource previously opened
+ * with opendir. If the directory handle is
+ * not specified, the last link opened by opendir
+ * is assumed.
+ *
+ * @see https://bugs.php.net/bug.php?id=75485
+ */
+function rewinddir($dir_handle): void {}
+
+/**
+ * Read entry from directory handle
+ * @link https://php.net/manual/en/function.readdir.php
+ * @param resource $dir_handle [optional]
+ * The directory handle resource previously opened
+ * with opendir. If the directory handle is
+ * not specified, the last link opened by opendir
+ * is assumed.
+ *
+ * @return string|false the filename on success or false on failure.
+ */
+function readdir($dir_handle): string|false {}
+
+/**
+ * Return an instance of the Directory class
+ * @link https://php.net/manual/en/function.dir.php
+ * @param string $directory
+ * Directory to open
+ *
+ * @param resource $context [optional]
+ * @return Directory|false an instance of Directory, or NULL with wrong
+ * parameters, or FALSE in case of another error
+ */
+function dir(string $directory, $context): Directory|false {}
+
+/**
+ * Alias of dir()
+ * @param string $directory
+ * @param resource $context
+ * @since 8.0
+ * @return Directory|false
+ * @see dir()
+ */
+function getdir(string $directory, $context = null): Directory|false {}
+
+/**
+ * List files and directories inside the specified path
+ * @link https://php.net/manual/en/function.scandir.php
+ * @param string $directory
+ * The directory that will be scanned.
+ *
+ * @param int $sorting_order
+ * By default, the sorted order is alphabetical in ascending order. If
+ * the optional sorting_order is set to non-zero,
+ * then the sort order is alphabetical in descending order.
+ *
+ * @param resource $context [optional]
+ * For a description of the context parameter,
+ * refer to the streams section of
+ * the manual.
+ *
+ * @return array|false an array of filenames on success, or false on
+ * failure. If directory is not a directory, then
+ * boolean false is returned, and an error of level
+ * E_WARNING is generated.
+ */
+function scandir(string $directory, int $sorting_order = 0, $context): array|false {}
+
+/**
+ * Find pathnames matching a pattern
+ * @link https://php.net/manual/en/function.glob.php
+ * @param string $pattern
+ * The pattern. No tilde expansion or parameter substitution is done.
+ *
+ * @param int $flags
+ * Valid flags:
+ * GLOB_MARK - Adds a slash to each directory returned
+ * GLOB_NOSORT - Return files as they appear in the directory (no sorting). When this flag is not used, the pathnames are sorted alphabetically
+ * GLOB_NOCHECK - Return the search pattern if no files matching it were found
+ * GLOB_NOESCAPE - Backslashes do not quote metacharacters
+ * GLOB_BRACE - Expands {a,b,c} to match 'a', 'b', or 'c'
+ * GLOB_ONLYDIR - Return only directory entries which match the pattern
+ * GLOB_ERR - Stop on read errors (like unreadable directories), by default errors are ignored.
+ * @return array|false an array containing the matched files/directories, an empty array
+ * if no file matched or false on error.
+ *
+ *
+ * On some systems it is impossible to distinguish between empty match and an
+ * error.
+ */
+#[Pure(true)]
+function glob(string $pattern, int $flags = 0): array|false {}
+
+/**
+ * Gets last access time of file
+ * @link https://php.net/manual/en/function.fileatime.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the time the file was last accessed, or false on failure.
+ * The time is returned as a Unix timestamp.
+ */
+#[Pure(true)]
+function fileatime(string $filename): int|false {}
+
+/**
+ * Gets inode change time of file
+ * @link https://php.net/manual/en/function.filectime.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the time the file was last changed, or false on failure.
+ * The time is returned as a Unix timestamp.
+ */
+#[Pure(true)]
+function filectime(string $filename): int|false {}
+
+/**
+ * Gets file group
+ * @link https://php.net/manual/en/function.filegroup.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the group ID of the file, or false in case
+ * of an error. The group ID is returned in numerical format, use
+ * posix_getgrgid to resolve it to a group name.
+ * Upon failure, false is returned.
+ */
+#[Pure(true)]
+function filegroup(string $filename): int|false {}
+
+/**
+ * Gets file inode
+ * @link https://php.net/manual/en/function.fileinode.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the inode number of the file, or false on failure.
+ */
+#[Pure(true)]
+function fileinode(string $filename): int|false {}
+
+/**
+ * Gets file modification time
+ * @link https://php.net/manual/en/function.filemtime.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the time the file was last modified, or false on failure.
+ * The time is returned as a Unix timestamp, which is
+ * suitable for the date function.
+ */
+#[Pure(true)]
+function filemtime(string $filename): int|false {}
+
+/**
+ * Gets file owner
+ * @link https://php.net/manual/en/function.fileowner.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the user ID of the owner of the file, or false on failure.
+ * The user ID is returned in numerical format, use
+ * posix_getpwuid to resolve it to a username.
+ */
+#[Pure(true)]
+function fileowner(string $filename): int|false {}
+
+/**
+ * Gets file permissions
+ * @link https://php.net/manual/en/function.fileperms.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the permissions on the file, or false on failure.
+ */
+#[Pure(true)]
+function fileperms(string $filename): int|false {}
+
+/**
+ * Gets file size
+ * @link https://php.net/manual/en/function.filesize.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return int|false the size of the file in bytes, or false (and generates an error
+ * of level E_WARNING) in case of an error.
+ */
+#[Pure(true)]
+function filesize(string $filename): int|false {}
+
+/**
+ * Gets file type
+ * @link https://php.net/manual/en/function.filetype.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return string|false the type of the file. Possible values are fifo, char,
+ * dir, block, link, file, socket and unknown.
+ *
+ *
+ * Returns false if an error occurs. filetype will also
+ * produce an E_NOTICE message if the stat call fails
+ * or if the file type is unknown.
+ */
+#[Pure(true)]
+function filetype(string $filename): string|false {}
+
+/**
+ * Checks whether a file or directory exists
+ * @link https://php.net/manual/en/function.file-exists.php
+ * @param string $filename
+ * Path to the file or directory.
+ *
+ *
+ * On windows, use //computername/share/filename or
+ * \\computername\share\filename to check files on
+ * network shares.
+ *
+ * @return bool true if the file or directory specified by
+ * filename exists; false otherwise.
+ *
+ *
+ * This function will return false for symlinks pointing to non-existing
+ * files.
+ *
+ *
+ * This function returns false for files inaccessible due to safe mode restrictions. However these
+ * files still can be included if
+ * they are located in safe_mode_include_dir.
+ *
+ *
+ * The check is done using the real UID/GID instead of the effective one.
+ */
+#[Pure(true)]
+function file_exists(string $filename): bool {}
+
+/**
+ * Tells whether the filename is writable
+ * @link https://php.net/manual/en/function.is-writable.php
+ * @param string $filename
+ * The filename being checked.
+ *
+ * @return bool true if the filename exists and is
+ * writable.
+ */
+#[Pure(true)]
+function is_writable(string $filename): bool {}
+
+/**
+ * Alias:
+ * {@see is_writable}
+ * @link https://php.net/manual/en/function.is-writeable.php
+ * @param string $filename
+ * The filename being checked.
+ *
+ * @return bool true if the filename exists and is
+ * writable.
+ */
+#[Pure(true)]
+function is_writeable(string $filename): bool {}
+
+/**
+ * Tells whether a file or a directory exists and is readable
+ * @link https://php.net/manual/en/function.is-readable.php
+ * @param string $filename
+ * Path to the file or directory.
+ *
+ * @return bool true if the file or directory specified by
+ * filename exists and is readable, false otherwise.
+ */
+#[Pure(true)]
+function is_readable(string $filename): bool {}
+
+/**
+ * Tells whether the filename is executable
+ * @link https://php.net/manual/en/function.is-executable.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return bool true if the filename exists and is executable, or false on
+ * error.
+ */
+#[Pure(true)]
+function is_executable(string $filename): bool {}
+
+/**
+ * Tells whether the filename is a regular file
+ * @link https://php.net/manual/en/function.is-file.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return bool true if the filename exists and is a regular file, false
+ * otherwise.
+ */
+#[Pure(true)]
+function is_file(string $filename): bool {}
+
+/**
+ * Tells whether the filename is a directory
+ * @link https://php.net/manual/en/function.is-dir.php
+ * @param string $filename
+ * Path to the file. If filename is a relative
+ * filename, it will be checked relative to the current working
+ * directory. If filename is a symbolic or hard link
+ * then the link will be resolved and checked.
+ *
+ * @return bool true if the filename exists and is a directory, false
+ * otherwise.
+ */
+#[Pure(true)]
+function is_dir(string $filename): bool {}
+
+/**
+ * Tells whether the filename is a symbolic link
+ * @link https://php.net/manual/en/function.is-link.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return bool true if the filename exists and is a symbolic link, false
+ * otherwise.
+ */
+#[Pure(true)]
+function is_link(string $filename): bool {}
+
+/**
+ * Gives information about a file
+ * @link https://php.net/manual/en/function.stat.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @return array|false
+ * stat and fstat result
+ * format
+ *
+ * Numeric
+ * Associative (since PHP 4.0.6)
+ * Description
+ *
+ *
+ * 0
+ * dev
+ * device number
+ *
+ *
+ * 1
+ * ino
+ * inode number *
+ *
+ *
+ * 2
+ * mode
+ * inode protection mode
+ *
+ *
+ * 3
+ * nlink
+ * number of links
+ *
+ *
+ * 4
+ * uid
+ * userid of owner *
+ *
+ *
+ * 5
+ * gid
+ * groupid of owner *
+ *
+ *
+ * 6
+ * rdev
+ * device type, if inode device
+ *
+ *
+ * 7
+ * size
+ * size in bytes
+ *
+ *
+ * 8
+ * atime
+ * time of last access (Unix timestamp)
+ *
+ *
+ * 9
+ * mtime
+ * time of last modification (Unix timestamp)
+ *
+ *
+ * 10
+ * ctime
+ * time of last inode change (Unix timestamp)
+ *
+ *
+ * 11
+ * blksize
+ * blocksize of filesystem IO **
+ *
+ *
+ * 12
+ * blocks
+ * number of 512-byte blocks allocated **
+ *
+ *
+ * * On Windows this will always be 0.
+ *
+ *
+ * ** Only valid on systems supporting the st_blksize type - other
+ * systems (e.g. Windows) return -1.
+ *
+ *
+ * In case of error, stat returns false.
+ */
+#[Pure(true)]
+#[ArrayShape([
+ "dev" => "int",
+ "ino" => "int",
+ "mode" => "int",
+ "nlink" => "int",
+ "uid" => "int",
+ "gid" => "int",
+ "rdev" => "int",
+ "size" => "int",
+ "atime" => "int",
+ "mtime" => "int",
+ "ctime" => "int",
+ "blksize" => "int",
+ "blocks" => "int"
+])]
+function stat(string $filename): array|false {}
+
+/**
+ * Gives information about a file or symbolic link
+ * @link https://php.net/manual/en/function.lstat.php
+ * @see stat
+ * @param string $filename
+ * Path to a file or a symbolic link.
+ *
+ * @return array|false See the manual page for stat for information on
+ * the structure of the array that lstat returns.
+ * This function is identical to the stat function
+ * except that if the filename parameter is a symbolic
+ * link, the status of the symbolic link is returned, not the status of the
+ * file pointed to by the symbolic link.
+ */
+#[Pure(true)]
+function lstat(string $filename): array|false {}
+
+/**
+ * Changes file owner
+ * @link https://php.net/manual/en/function.chown.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param string|int $user
+ * A user name or number.
+ *
+ * @return bool true on success or false on failure.
+ */
+function chown(string $filename, string|int $user): bool {}
+
+/**
+ * Changes file group
+ * @link https://php.net/manual/en/function.chgrp.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param string|int $group
+ * A group name or number.
+ *
+ * @return bool true on success or false on failure.
+ */
+function chgrp(string $filename, string|int $group): bool {}
+
+/**
+ * Changes user ownership of symlink
+ * @link https://php.net/manual/en/function.lchown.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param string|int $user
+ * User name or number.
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.1.2
+ */
+function lchown(string $filename, string|int $user): bool {}
+
+/**
+ * Changes group ownership of symlink
+ * @link https://php.net/manual/en/function.lchgrp.php
+ * @param string $filename
+ * Path to the symlink.
+ *
+ * @param string|int $group
+ * The group specified by name or number.
+ *
+ * @return bool true on success or false on failure.
+ * @since 5.1.2
+ */
+function lchgrp(string $filename, string|int $group): bool {}
+
+/**
+ * Changes file mode
+ * @link https://php.net/manual/en/function.chmod.php
+ * @param string $filename
+ * Path to the file.
+ *
+ * @param int $permissions
+ * Note that mode is not automatically
+ * assumed to be an octal value, so strings (such as "g+w") will
+ * not work properly. To ensure the expected operation,
+ * you need to prefix mode with a zero (0):
+ *
+ *
+ *
+ *
+ *
+ * The mode parameter consists of three octal
+ * number components specifying access restrictions for the owner,
+ * the user group in which the owner is in, and to everybody else in
+ * this order. One component can be computed by adding up the needed
+ * permissions for that target user base. Number 1 means that you
+ * grant execute rights, number 2 means that you make the file
+ * writeable, number 4 means that you make the file readable. Add
+ * up these numbers to specify needed rights. You can also read more
+ * about modes on Unix systems with 'man 1 chmod'
+ * and 'man 2 chmod'.
+ *
+ * @return bool true on success or false on failure.
+ */
+function chmod(string $filename, int $permissions): bool {}
+
+/**
+ * Sets access and modification time of file
+ * @link https://php.net/manual/en/function.touch.php
+ * @param string $filename
+ * The name of the file being touched.
+ *
+ * @param int|null $mtime [optional]
+ * The touch time. If time is not supplied,
+ * the current system time is used.
+ *
+ * @param int|null $atime [optional]
+ * If present, the access time of the given filename is set to
+ * the value of atime. Otherwise, it is set to
+ * time.
+ *
+ * @return bool true on success or false on failure.
+ */
+function touch(string $filename, ?int $mtime, ?int $atime): bool {}
+
+/**
+ * Clears file status cache
+ * @link https://php.net/manual/en/function.clearstatcache.php
+ * @param bool $clear_realpath_cache [optional]
+ * Whenever to clear realpath cache or not.
+ *
+ * @param string $filename
+ * Clear realpath cache on a specific filename, only used if
+ * clear_realpath_cache is true.
+ *
+ * @return void
+ */
+function clearstatcache(bool $clear_realpath_cache = false, string $filename = ''): void {}
+
+/**
+ * Returns the total size of a filesystem or disk partition
+ * @link https://php.net/manual/en/function.disk-total-space.php
+ * @param string $directory
+ * A directory of the filesystem or disk partition.
+ *
+ * @return float|false the total number of bytes as a float
+ * or false on failure.
+ */
+#[Pure(true)]
+function disk_total_space(string $directory): float|false {}
+
+/**
+ * Returns available space in directory
+ * @link https://php.net/manual/en/function.disk-free-space.php
+ * @param string $directory
+ * A directory of the filesystem or disk partition.
+ *
+ *
+ * Given a file name instead of a directory, the behaviour of the
+ * function is unspecified and may differ between operating systems and
+ * PHP versions.
+ *
+ * @return float|false the number of available bytes as a float
+ * or false on failure.
+ */
+#[Pure(true)]
+function disk_free_space(string $directory): float|false {}
+
+/**
+ * Alias of {@see disk_free_space}
+ * @link https://php.net/manual/en/function.diskfreespace.php
+ * @see disk_free_space
+ * @param string $directory
+ * @return float|false
+ */
+#[Pure(true)]
+function diskfreespace(string $directory): float|false {}
+
+/**
+ * Send mail
+ * @link https://php.net/manual/en/function.mail.php
+ * @param string $to
+ * Receiver, or receivers of the mail.
+ *
+ *
+ * The formatting of this string must comply with
+ * RFC 2822. Some examples are:
+ * user@example.com
+ * user@example.com, anotheruser@example.com
+ * User <user@example.com>
+ * User <user@example.com>, Another User <anotheruser@example.com>
+ *
+ * @param string $subject
+ * Subject of the email to be sent.
+ *
+ *
+ * Subject must satisfy RFC 2047.
+ *
+ * @param string $message
+ * Message to be sent.
+ *
+ *
+ * Each line should be separated with a LF (\n). Lines should not be larger
+ * than 70 characters.
+ *
+ *
+ * Caution
+ * (Windows only) When PHP is talking to a SMTP server directly, if a full
+ * stop is found on the start of a line, it is removed. To counter-act this,
+ * replace these occurrences with a double dot.
+ *
+ *
+ *
+ *
+ * @param string|array $additional_headers
+ * String or array to be inserted at the end of the email header.
+ * Since 7.2.0 accepts an array. Its keys are the header names and its values are the respective header values.
+ *
+ *
+ * This is typically used to add extra headers (From, Cc, and Bcc).
+ * Multiple extra headers should be separated with a CRLF (\r\n).
+ *
+ *
+ * When sending mail, the mail must contain
+ * a From header. This can be set with the
+ * additional_headers parameter, or a default
+ * can be set in "php.ini".
+ *
+ *
+ * Failing to do this will result in an error
+ * message similar to Warning: mail(): "sendmail_from" not
+ * set in php.ini or custom "From:" header missing.
+ * The From header sets also
+ * Return-Path under Windows.
+ *
+ *
+ * If messages are not received, try using a LF (\n) only.
+ * Some poor quality Unix mail transfer agents replace LF by CRLF
+ * automatically (which leads to doubling CR if CRLF is used).
+ * This should be a last resort, as it does not comply with
+ * RFC 2822.
+ *
+ * @param string $additional_params
+ * The additional_parameters parameter
+ * can be used to pass additional flags as command line options to the
+ * program configured to be used when sending mail, as defined by the
+ * sendmail_path configuration setting. For example,
+ * this can be used to set the envelope sender address when using
+ * sendmail with the -f sendmail option.
+ *
+ *
+ * The user that the webserver runs as should be added as a trusted user to the
+ * sendmail configuration to prevent a 'X-Warning' header from being added
+ * to the message when the envelope sender (-f) is set using this method.
+ * For sendmail users, this file is /etc/mail/trusted-users.
+ *
+ * @return bool true if the mail was successfully accepted for delivery, false otherwise.
+ *
+ * It is important to note that just because the mail was accepted for delivery,
+ * it does NOT mean the mail will actually reach the intended destination.
+ *
+ */
+function mail(string $to, string $subject, string $message, array|string $additional_headers = [], string $additional_params = ''): bool {}
+
+/**
+ * Calculate the hash value needed by EZMLM
+ * @link https://php.net/manual/en/function.ezmlm-hash.php
+ * @param string $addr
+ * The email address that's being hashed.
+ *
+ * @return int The hash value of addr.
+ * @removed 8.0
+ */
+#[Deprecated(since: '7.4')]
+function ezmlm_hash(string $addr): int {}
+
+/**
+ * Open connection to system logger
+ * @link https://php.net/manual/en/function.openlog.php
+ * @param string $prefix
+ * The string ident is added to each message.
+ *
+ * @param int $flags
+ * The option argument is used to indicate
+ * what logging options will be used when generating a log message.
+ *
+ * openlog Options
+ *
+ * Constant
+ * Description
+ *
+ *
+ * LOG_CONS
+ *
+ * if there is an error while sending data to the system logger,
+ * write directly to the system console
+ *
+ *
+ *
+ * LOG_NDELAY
+ *
+ * open the connection to the logger immediately
+ *
+ *
+ *
+ * LOG_ODELAY
+ *
+ * (default) delay opening the connection until the first
+ * message is logged
+ *
+ *
+ *
+ * LOG_PERROR
+ * print log message also to standard error
+ *
+ *
+ * LOG_PID
+ * include PID with each message
+ *
+ *
+ * You can use one or more of this options. When using multiple options
+ * you need to OR them, i.e. to open the connection
+ * immediately, write to the console and include the PID in each message,
+ * you will use: LOG_CONS | LOG_NDELAY | LOG_PID
+ *
+ * @param int $facility
+ * The facility argument is used to specify what
+ * type of program is logging the message. This allows you to specify
+ * (in your machine's syslog configuration) how messages coming from
+ * different facilities will be handled.
+ *
+ * openlog Facilities
+ *
+ * Constant
+ * Description
+ *
+ *
+ * LOG_AUTH
+ *
+ * security/authorization messages (use
+ * LOG_AUTHPRIV instead
+ * in systems where that constant is defined)
+ *
+ *
+ *
+ * LOG_AUTHPRIV
+ * security/authorization messages (private)
+ *
+ *
+ * LOG_CRON
+ * clock daemon (cron and at)
+ *
+ *
+ * LOG_DAEMON
+ * other system daemons
+ *
+ *
+ * LOG_KERN
+ * kernel messages
+ *
+ *
+ * LOG_LOCAL0 ... LOG_LOCAL7
+ * reserved for local use, these are not available in Windows
+ *
+ *
+ * LOG_LPR
+ * line printer subsystem
+ *
+ *
+ * LOG_MAIL
+ * mail subsystem
+ *
+ *
+ * LOG_NEWS
+ * USENET news subsystem
+ *
+ *
+ * LOG_SYSLOG
+ * messages generated internally by syslogd
+ *
+ *
+ * LOG_USER
+ * generic user-level messages
+ *
+ *
+ * LOG_UUCP
+ * UUCP subsystem
+ *
+ *
+ *
+ *
+ * LOG_USER is the only valid log type under Windows
+ * operating systems
+ *
+ * @return bool true on success or false on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function openlog(string $prefix, int $flags, int $facility) {}
diff --git a/phpstorm-stubs/standard/standard_8.php b/phpstorm-stubs/standard/standard_8.php
new file mode 100644
index 0000000..a24464d
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_8.php
@@ -0,0 +1,1105 @@
+
+ * priority is a combination of the facility and
+ * the level. Possible values are:
+ *
+ * syslog Priorities (in descending order)
+ *
+ * Constant
+ * Description
+ *
+ *
+ * LOG_EMERG
+ * system is unusable
+ *
+ *
+ * LOG_ALERT
+ * action must be taken immediately
+ *
+ *
+ * LOG_CRIT
+ * critical conditions
+ *
+ *
+ * LOG_ERR
+ * error conditions
+ *
+ *
+ * LOG_WARNING
+ * warning conditions
+ *
+ *
+ * LOG_NOTICE
+ * normal, but significant, condition
+ *
+ *
+ * LOG_INFO
+ * informational message
+ *
+ *
+ * LOG_DEBUG
+ * debug-level message
+ *
+ *
+ *
+ * @param string $message
+ * The message to send, except that the two characters
+ * %m will be replaced by the error message string
+ * (strerror) corresponding to the present value of
+ * errno.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function syslog(int $priority, string $message) {}
+
+/**
+ * Close connection to system logger
+ * @link https://php.net/manual/en/function.closelog.php
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function closelog() {}
+
+/**
+ * Registers a function that will be called when PHP starts sending output.
+ * The callback is executed just after PHP prepares all headers to be sent,
+ * and before any other output is sent, creating a window to manipulate the outgoing headers before being sent.
+ * @link https://secure.php.net/manual/en/function.header-register-callback.php
+ * @param callable $callback Function called just before the headers are sent.
+ * @return bool true on success or false on failure.
+ */
+function header_register_callback(callable $callback): bool {}
+
+/**
+ * Get the size of an image from a string.
+ * @param string $string The image data, as a string.
+ * @param array &$image_info [optional] This optional parameter allows you to extract
+ * some extended information from the image file. Currently, this will
+ * return the different JPG APP markers as an associative array.
+ * Some programs use these APP markers to embed text information in images.
+ * A very common one is to embed » IPTC information in the APP13 marker.
+ * You can use the iptcparse() function to parse the binary APP13 marker into something readable.
+ * @return array|false Returns an array with 7 elements.
+ * Index 0 and 1 contains respectively the width and the height of the image.
+ * Index 2 is one of the IMAGETYPE_XXX constants indicating the type of the image.
+ * Index 3 is a text string with the correct height="yyy" width="xxx" string
+ * that can be used directly in an IMG tag.
+ * On failure, FALSE is returned.
+ * @link https://secure.php.net/manual/en/function.getimagesizefromstring.php
+ * @since 5.4
+ * @link https://secure.php.net/manual/en/function.getimagesizefromstring.php
+ * @since 5.4
+ */
+#[ArrayShape([0 => 'int', 1 => 'int', 2 => 'int', 3 => 'string', 'bits' => 'int', 'channels' => 'int', 'mime' => 'string'])]
+function getimagesizefromstring(string $string, &$image_info): array|false {}
+
+/**
+ * Set the stream chunk size.
+ * @param resource $stream The target stream.
+ * @param int $size The desired new chunk size.
+ * @return int|false Returns the previous chunk size on success.
+ * Will return FALSE if chunk_size is less than 1 or greater than PHP_INT_MAX.
+ * @link https://secure.php.net/manual/en/function.stream-set-chunk-size.php
+ * @since 5.4
+ */
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function stream_set_chunk_size($stream, int $size) {}
+
+/**
+ * Initializes all syslog related variables
+ * @link https://php.net/manual/en/function.define-syslog-variables.php
+ * @return void
+ * @removed 5.4
+ */
+#[Deprecated(since: '5.3')]
+function define_syslog_variables() {}
+
+/**
+ * Calculate the metaphone key of a string
+ * @link https://php.net/manual/en/function.metaphone.php
+ * @param string $string
+ * The input string.
+ *
+ * @param int $max_phonemes [optional]
+ * This parameter restricts the returned metaphone key to phonemes characters in length.
+ * The default value of 0 means no restriction.
+ *
+ * @return string|false the metaphone key as a string, or FALSE on failure
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "string"], default: "string|false")]
+function metaphone(string $string, int $max_phonemes = 0) {}
+
+/**
+ * Turn on output buffering
+ * @link https://php.net/manual/en/function.ob-start.php
+ * @param callable $callback [optional]
+ * An optional output_callback function may be
+ * specified. This function takes a string as a parameter and should
+ * return a string. The function will be called when
+ * the output buffer is flushed (sent) or cleaned (with
+ * ob_flush, ob_clean or similar
+ * function) or when the output buffer
+ * is flushed to the browser at the end of the request. When
+ * output_callback is called, it will receive the
+ * contents of the output buffer as its parameter and is expected to
+ * return a new output buffer as a result, which will be sent to the
+ * browser. If the output_callback is not a
+ * callable function, this function will return false.
+ *
+ *
+ * If the callback function has two parameters, the second parameter is
+ * filled with a bit-field consisting of
+ * PHP_OUTPUT_HANDLER_START,
+ * PHP_OUTPUT_HANDLER_CONT and
+ * PHP_OUTPUT_HANDLER_END.
+ *
+ *
+ * If output_callback returns false original
+ * input is sent to the browser.
+ *
+ *
+ * The output_callback parameter may be bypassed
+ * by passing a null value.
+ *
+ *
+ * ob_end_clean, ob_end_flush,
+ * ob_clean, ob_flush and
+ * ob_start may not be called from a callback
+ * function. If you call them from callback function, the behavior is
+ * undefined. If you would like to delete the contents of a buffer,
+ * return "" (a null string) from callback function.
+ * You can't even call functions using the output buffering functions like
+ * print_r($expression, true) or
+ * highlight_file($filename, true) from a callback
+ * function.
+ *
+ *
+ * In PHP 4.0.4, ob_gzhandler was introduced to
+ * facilitate sending gz-encoded data to web browsers that support
+ * compressed web pages. ob_gzhandler determines
+ * what type of content encoding the browser will accept and will return
+ * its output accordingly.
+ *
+ * @param int $chunk_size
+ * If the optional parameter chunk_size is passed, the
+ * buffer will be flushed after any output call which causes the buffer's
+ * length to equal or exceed chunk_size.
+ * Default value 0 means that the function is called only in the end,
+ * other special value 1 sets chunk_size to 4096.
+ *
+ * @param int $flags [optional]
+ * The flags parameter is a bitmask that controls the operations that can be performed on the output buffer.
+ * The default is to allow output buffers to be cleaned, flushed and removed, which can be set explicitly via
+ * PHP_OUTPUT_HANDLER_CLEANABLE | PHP_OUTPUT_HANDLER_FLUSHABLE | PHP_OUTPUT_HANDLER_REMOVABLE, or PHP_OUTPUT_HANDLER_STDFLAGS as shorthand.
+ *
+ * @return bool true on success or false on failure.
+ */
+function ob_start($callback, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool {}
+
+/**
+ * Flush (send) the output buffer
+ * @link https://php.net/manual/en/function.ob-flush.php
+ * @return bool
+ */
+function ob_flush(): bool {}
+
+/**
+ * Clean (erase) the output buffer
+ * @link https://php.net/manual/en/function.ob-clean.php
+ * @return bool
+ */
+function ob_clean(): bool {}
+
+/**
+ * Flush (send) the output buffer and turn off output buffering
+ * @link https://php.net/manual/en/function.ob-end-flush.php
+ * @return bool true on success or false on failure. Reasons for failure are first that you called the
+ * function without an active buffer or that for some reason a buffer could
+ * not be deleted (possible for special buffer).
+ */
+function ob_end_flush(): bool {}
+
+/**
+ * Clean (erase) the output buffer and turn off output buffering
+ * @link https://php.net/manual/en/function.ob-end-clean.php
+ * @return bool true on success or false on failure. Reasons for failure are first that you called the
+ * function without an active buffer or that for some reason a buffer could
+ * not be deleted (possible for special buffer).
+ */
+function ob_end_clean(): bool {}
+
+/**
+ * Flush the output buffer, return it as a string and turn off output buffering
+ * @link https://php.net/manual/en/function.ob-get-flush.php
+ * @return string|false the output buffer or false if no buffering is active.
+ */
+function ob_get_flush(): string|false {}
+
+/**
+ * Get current buffer contents and delete current output buffer
+ * @link https://php.net/manual/en/function.ob-get-clean.php
+ * @return string|false the contents of the output buffer and end output buffering.
+ * If output buffering isn't active then false is returned.
+ */
+function ob_get_clean(): string|false {}
+
+/**
+ * Return the length of the output buffer
+ * @link https://php.net/manual/en/function.ob-get-length.php
+ * @return int|false the length of the output buffer contents or false if no
+ * buffering is active.
+ */
+function ob_get_length(): int|false {}
+
+/**
+ * Return the nesting level of the output buffering mechanism
+ * @link https://php.net/manual/en/function.ob-get-level.php
+ * @return int the level of nested output buffering handlers or zero if output
+ * buffering is not active.
+ */
+function ob_get_level(): int {}
+
+/**
+ * Get status of output buffers
+ * @link https://php.net/manual/en/function.ob-get-status.php
+ * @param bool $full_status [optional]
+ * true to return all active output buffer levels. If false or not
+ * set, only the top level output buffer is returned.
+ *
+ * @return array If called without the full_status parameter
+ * or with full_status = false a simple array
+ * with the following elements is returned:
+ *
+ * Array
+ * (
+ * [level] => 2
+ * [type] => 0
+ * [status] => 0
+ * [name] => URL-Rewriter
+ * [del] => 1
+ * )
+ *
+ *
+ * Key Value
+ * level Output nesting level
+ * type PHP_OUTPUT_HANDLER_INTERNAL (0) or PHP_OUTPUT_HANDLER_USER (1)
+ * status One of PHP_OUTPUT_HANDLER_START (0), PHP_OUTPUT_HANDLER_CONT (1) or PHP_OUTPUT_HANDLER_END (2)
+ * name Name of active output handler or ' default output handler' if none is set
+ * del Erase-flag as set by ob_start()
+ *
+ *
+ * If called with full_status = TRUE an array with one element for each active output buffer
+ * level is returned. The output level is used as key of the top level array and each array
+ * element itself is another array holding status information on one active output level.
+ *
+ *
+ * Array
+ * (
+ * [0] => Array
+ * (
+ * [chunk_size] => 0
+ * [size] => 40960
+ * [block_size] => 10240
+ * [type] => 1
+ * [status] => 0
+ * [name] => default output handler
+ * [del] => 1
+ * )
+ *
+ * [1] => Array
+ * (
+ * [chunk_size] => 0
+ * [size] => 40960
+ * [block_size] => 10240
+ * [type] => 0
+ * [buffer_size] => 0
+ * [status] => 0
+ * [name] => URL-Rewriter
+ * [del] => 1
+ * )
+ *
+ * )
+ *
+ * The full output contains these additional elements:
+ *
+ * Key Value
+ * chunk_size Chunk size as set by ob_start()
+ * size ...
+ * blocksize ...
+ *
+ */
+#[ArrayShape([
+ "level" => "int",
+ "type" => "int",
+ "flags" => "int",
+ "name" => "string",
+ "del" => "int",
+ "chunk_size" => "int",
+ "buffer_size" => "int",
+ "buffer_used" => "int",
+])]
+function ob_get_status(bool $full_status = false): array {}
+
+/**
+ * Return the contents of the output buffer
+ * @link https://php.net/manual/en/function.ob-get-contents.php
+ * @return string|false This will return the contents of the output buffer or false, if output
+ * buffering isn't active.
+ */
+#[Pure(true)]
+function ob_get_contents(): string|false {}
+
+/**
+ * Turn implicit flush on/off
+ * @link https://php.net/manual/en/function.ob-implicit-flush.php
+ * @param int|bool $enable [optional]
+ * 1|TRUE to turn implicit flushing on, 0|FALSE turns it off.
+ *
default: 1|TRUE
+ *
+ * @return void
+ */
+function ob_implicit_flush(#[LanguageLevelTypeAware(["8.0" => "bool"], default: "int")] $enable = true): void {}
+
+/**
+ * List all output handlers in use
+ * @link https://php.net/manual/en/function.ob-list-handlers.php
+ * @return array This will return an array with the output handlers in use (if any). If
+ * output_buffering is enabled or
+ * an anonymous function was used with ob_start,
+ * ob_list_handlers will return "default output
+ * handler".
+ */
+function ob_list_handlers(): array {}
+
+/**
+ * Sort an array by key
+ * @link https://php.net/manual/en/function.ksort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details
+ * see sort.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function ksort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array by key in reverse order
+ * @link https://php.net/manual/en/function.krsort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * You may modify the behavior of the sort using the optional parameter
+ * sort_flags, for details see
+ * sort.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function krsort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array using a "natural order" algorithm
+ * @link https://php.net/manual/en/function.natsort.php
+ * @param array &$array
+ * The input array.
+ *
+ */
+#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')]
+function natsort(array &$array) {}
+
+/**
+ * Sort an array using a case insensitive "natural order" algorithm
+ * @link https://php.net/manual/en/function.natcasesort.php
+ * @param array &$array
+ * The input array.
+ *
+ */
+#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')]
+function natcasesort(array &$array) {}
+
+/**
+ * Sort an array and maintain index association
+ * @link https://php.net/manual/en/function.asort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details
+ * see sort.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function asort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array in reverse order and maintain index association
+ * @link https://php.net/manual/en/function.arsort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * You may modify the behavior of the sort using the optional parameter
+ * sort_flags, for details see
+ * sort.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function arsort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array
+ * @link https://php.net/manual/en/function.sort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * The optional second parameter sort_flags
+ * may be used to modify the sorting behavior using these values.
+ *
+ *
+ * Sorting type flags:
+ * SORT_REGULAR - compare items normally
+ * (don't change types)
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function sort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array in reverse order
+ * @link https://php.net/manual/en/function.rsort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $flags
+ * You may modify the behavior of the sort using the optional
+ * parameter sort_flags, for details see
+ * sort.
+ *
+ */
+#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')]
+function rsort(array &$array, int $flags = SORT_REGULAR) {}
+
+/**
+ * Sort an array by values using a user-defined comparison function
+ * @link https://php.net/manual/en/function.usort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param callable $callback
+ * The comparison function must return an integer less than, equal to, or
+ * greater than zero if the first argument is considered to be
+ * respectively less than, equal to, or greater than the second.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function usort(array &$array, callable $callback) {}
+
+/**
+ * Sort an array with a user-defined comparison function and maintain index association
+ * @link https://php.net/manual/en/function.uasort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param callable $callback
+ * See usort and uksort for
+ * examples of user-defined comparison functions.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function uasort(array &$array, callable $callback) {}
+
+/**
+ * Sort an array by keys using a user-defined comparison function
+ * @link https://php.net/manual/en/function.uksort.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param callable $callback
+ * The callback comparison function.
+ *
+ *
+ * Function cmp_function should accept two
+ * parameters which will be filled by pairs of array keys.
+ * The comparison function must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the
+ * second.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function uksort(array &$array, callable $callback) {}
+
+/**
+ * Shuffle an array
+ * @link https://php.net/manual/en/function.shuffle.php
+ * @param array &$array
+ * The array.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function shuffle(array &$array) {}
+
+/**
+ * Apply a user function to every member of an array
+ * @link https://php.net/manual/en/function.array-walk.php
+ * @param array|object &$array
+ * The input array.
+ *
+ * @param callable $callback
+ * Typically, funcname takes on two parameters.
+ * The array parameter's value being the first, and
+ * the key/index second.
+ *
+ *
+ * If funcname needs to be working with the
+ * actual values of the array, specify the first parameter of
+ * funcname as a
+ * reference. Then,
+ * any changes made to those elements will be made in the
+ * original array itself.
+ *
+ *
+ * Users may not change the array itself from the
+ * callback function. e.g. Add/delete elements, unset elements, etc. If
+ * the array that array_walk is applied to is
+ * changed, the behavior of this function is undefined, and unpredictable.
+ *
+ * @param mixed $arg [optional]
+ * If the optional userdata parameter is supplied,
+ * it will be passed as the third parameter to the callback
+ * funcname.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function array_walk(object|array &$array, callable $callback, mixed $arg) {}
+
+/**
+ * Apply a user function recursively to every member of an array
+ * @link https://php.net/manual/en/function.array-walk-recursive.php
+ * @param array|object &$array
+ * The input array.
+ *
+ * @param callable $callback
+ * Typically, funcname takes on two parameters.
+ * The input parameter's value being the first, and
+ * the key/index second.
+ *
+ *
+ * If funcname needs to be working with the
+ * actual values of the array, specify the first parameter of
+ * funcname as a
+ * reference. Then,
+ * any changes made to those elements will be made in the
+ * original array itself.
+ *
+ * @param mixed $arg [optional]
+ * If the optional userdata parameter is supplied,
+ * it will be passed as the third parameter to the callback
+ * funcname.
+ *
+ */
+#[LanguageLevelTypeAware(['8.2' => 'true'], default: 'bool')]
+function array_walk_recursive(object|array &$array, callable $callback, mixed $arg) {}
+
+/**
+ * Counts all elements in an array, or something in an object.
+ * For objects, if you have SPL installed, you can hook into count() by implementing interface {@see Countable}.
+ * The interface has exactly one method, {@see Countable::count()}, which returns the return value for the count() function.
+ * Please see the {@see Array} section of the manual for a detailed explanation of how arrays are implemented and used in PHP.
+ * @link https://php.net/manual/en/function.count.php
+ * @param array|Countable $value The array or the object.
+ * @param int $mode [optional] If the optional mode parameter is set to
+ * COUNT_RECURSIVE (or 1), count
+ * will recursively count the array. This is particularly useful for
+ * counting all the elements of a multidimensional array. count does not detect infinite recursion.
+ * @return int<0,max> the number of elements in var, which is
+ * typically an array, since anything else will have one
+ * element.
+ *
+ * If var is not an array or an object with
+ * implemented Countable interface,
+ * 1 will be returned.
+ * There is one exception, if var is null,
+ * 0 will be returned.
+ *
+ *
+ * Caution: count may return 0 for a variable that isn't set,
+ * but it may also return 0 for a variable that has been initialized with an
+ * empty array. Use isset to test if a variable is set.
+ *
+ */
+#[Pure]
+function count(Countable|array $value, int $mode = COUNT_NORMAL): int {}
+
+/**
+ * Set the internal pointer of an array to its last element
+ * @link https://php.net/manual/en/function.end.php
+ * @param array|object &$array
+ * The array. This array is passed by reference because it is modified by
+ * the function. This means you must pass it a real variable and not
+ * a function returning an array because only actual variables may be
+ * passed by reference.
+ *
+ * @return mixed|false the value of the last element or false for empty array.
+ * @meta
+ */
+function end(object|array &$array): mixed {}
+
+/**
+ * Rewind the internal array pointer
+ * @link https://php.net/manual/en/function.prev.php
+ * @param array|object &$array
+ * The input array.
+ *
+ * @return mixed|false the array value in the previous place that's pointed to by
+ * the internal array pointer, or false if there are no more
+ * elements.
+ * @meta
+ */
+function prev(object|array &$array): mixed {}
+
+/**
+ * Advance the internal array pointer of an array
+ * @link https://php.net/manual/en/function.next.php
+ * @param array|object &$array
+ * The array being affected.
+ *
+ * @return mixed|false the array value in the next place that's pointed to by the
+ * internal array pointer, or false if there are no more elements.
+ * @meta
+ */
+function next(object|array &$array): mixed {}
+
+/**
+ * Set the internal pointer of an array to its first element
+ * @link https://php.net/manual/en/function.reset.php
+ * @param array|object &$array
+ * The input array.
+ *
+ * @return mixed|false the value of the first array element, or false if the array is
+ * empty.
+ * @meta
+ */
+function reset(object|array &$array): mixed {}
+
+/**
+ * Return the current element in an array
+ * @link https://php.net/manual/en/function.current.php
+ * @param array|object $array
+ * The array.
+ *
+ * @return mixed|false The current function simply returns the
+ * value of the array element that's currently being pointed to by the
+ * internal pointer. It does not move the pointer in any way. If the
+ * internal pointer points beyond the end of the elements list or the array is
+ * empty, current returns false.
+ * @meta
+ */
+#[Pure]
+function current(object|array $array): mixed {}
+
+/**
+ * Fetch a key from an array
+ * @link https://php.net/manual/en/function.key.php
+ * @param array|object $array
+ * The array.
+ *
+ * @return int|string|null The key function simply returns the
+ * key of the array element that's currently being pointed to by the
+ * internal pointer. It does not move the pointer in any way. If the
+ * internal pointer points beyond the end of the elements list or the array is
+ * empty, key returns null.
+ */
+#[Pure]
+function key(object|array $array): string|int|null {}
+
+/**
+ * Find lowest value
+ * @link https://php.net/manual/en/function.min.php
+ * @param array|mixed $value Array to look through or first value to compare
+ * @param mixed ...$values any comparable value
+ * @return mixed min returns the numerically lowest of the
+ * parameter values.
+ */
+#[Pure]
+function min(
+ #[PhpStormStubsElementAvailable(from: '8.0')] mixed $value,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] mixed $values,
+ mixed ...$values
+): mixed {}
+
+/**
+ * Find highest value
+ * @link https://php.net/manual/en/function.max.php
+ * @param array|mixed $value Array to look through or first value to compare
+ * @param mixed ...$values any comparable value
+ * @return mixed max returns the numerically highest of the
+ * parameter values, either within a arg array or two arguments.
+ */
+#[Pure]
+function max(
+ #[PhpStormStubsElementAvailable(from: '8.0')] mixed $value,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] mixed $values,
+ mixed ...$values
+): mixed {}
+
+/**
+ * Checks if a value exists in an array
+ * @link https://php.net/manual/en/function.in-array.php
+ * @param mixed $needle
+ * The searched value.
+ *
+ *
+ * If needle is a string, the comparison is done
+ * in a case-sensitive manner.
+ *
+ * @param array $haystack
+ * The array.
+ *
+ * @param bool $strict [optional]
+ * If the third parameter strict is set to true
+ * then the in_array function will also check the
+ * types of the
+ * needle in the haystack.
+ *
+ * @return bool true if needle is found in the array,
+ * false otherwise.
+ */
+#[Pure]
+function in_array(mixed $needle, array $haystack, bool $strict = false): bool {}
+
+/**
+ * Searches the array for a given value and returns the first corresponding key if successful
+ * @link https://php.net/manual/en/function.array-search.php
+ * @param mixed $needle
+ * The searched value.
+ *
+ *
+ * If needle is a string, the comparison is done
+ * in a case-sensitive manner.
+ *
+ * @param array $haystack
+ * The array.
+ *
+ * @param bool $strict [optional]
+ * If the third parameter strict is set to true
+ * then the array_search function will also check the
+ * types of the
+ * needle in the haystack.
+ *
+ * @return int|string|false the key for needle if it is found in the
+ * array, false otherwise.
+ *
+ *
+ * If needle is found in haystack
+ * more than once, the first matching key is returned. To return the keys for
+ * all matching values, use array_keys with the optional
+ * search_value parameter instead.
+ */
+#[Pure]
+function array_search(mixed $needle, array $haystack, bool $strict = false): string|int|false {}
+
+/**
+ * Import variables into the current symbol table from an array
+ * @link https://php.net/manual/en/function.extract.php
+ * @param array &$array
+ * Note that prefix is only required if
+ * extract_type is EXTR_PREFIX_SAME,
+ * EXTR_PREFIX_ALL, EXTR_PREFIX_INVALID
+ * or EXTR_PREFIX_IF_EXISTS. If
+ * the prefixed result is not a valid variable name, it is not
+ * imported into the symbol table. Prefixes are automatically separated from
+ * the array key by an underscore character.
+ *
+ * @param int $flags
+ * The way invalid/numeric keys and collisions are treated is determined
+ * by the extract_type. It can be one of the
+ * following values:
+ * EXTR_OVERWRITE
+ * If there is a collision, overwrite the existing variable.
+ * @param string $prefix Only overwrite the variable if it already exists in the
+ * current symbol table, otherwise do nothing. This is useful
+ * for defining a list of valid variables and then extracting
+ * only those variables you have defined out of
+ * $_REQUEST, for example.
+ * @return int the number of variables successfully imported into the symbol
+ * table.
+ */
+function extract(
+ array &$array,
+ #[ExpectedValues(flags: [
+ EXTR_OVERWRITE,
+ EXTR_SKIP,
+ EXTR_PREFIX_SAME,
+ EXTR_PREFIX_ALL,
+ EXTR_PREFIX_INVALID,
+ EXTR_IF_EXISTS,
+ EXTR_PREFIX_IF_EXISTS,
+ EXTR_REFS
+ ])] int $flags = EXTR_OVERWRITE,
+ string $prefix = ""
+): int {}
+
+/**
+ * Create array containing variables and their values
+ * @link https://php.net/manual/en/function.compact.php
+ * @param mixed $var_name
+ * compact takes a variable number of parameters.
+ * Each parameter can be either a string containing the name of the
+ * variable, or an array of variable names. The array can contain other
+ * arrays of variable names inside it; compact
+ * handles it recursively.
+ *
+ * @param mixed ...$var_names
+ * @return array the output array with all the variables added to it.
+ */
+#[Pure]
+function compact(#[PhpStormStubsElementAvailable(from: '8.0')] $var_name, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $var_names, ...$var_names): array {}
+
+/**
+ * Fill an array with values
+ * @link https://php.net/manual/en/function.array-fill.php
+ * @param int $start_index
+ * The first index of the returned array.
+ * Supports non-negative indexes only.
+ *
+ * @param int $count
+ * Number of elements to insert
+ *
+ * @param mixed $value
+ * Value to use for filling
+ *
+ * @return array the filled array
+ */
+#[Pure]
+function array_fill(int $start_index, int $count, mixed $value): array {}
+
+/**
+ * Fill an array with values, specifying keys
+ * @link https://php.net/manual/en/function.array-fill-keys.php
+ * @param array $keys
+ * Array of values that will be used as keys. Illegal values
+ * for key will be converted to string.
+ *
+ * @param mixed $value
+ * Value to use for filling
+ *
+ * @return array the filled array
+ */
+#[Pure]
+function array_fill_keys(array $keys, mixed $value): array {}
+
+/**
+ * Create an array containing a range of elements
+ * @link https://php.net/manual/en/function.range.php
+ * @param mixed $start
+ * First value of the sequence.
+ *
+ * @param mixed $end
+ * The sequence is ended upon reaching the end value.
+ *
+ * @param positive-int|float $step [optional]
+ * If a step value is given, it will be used as the
+ * increment between elements in the sequence. step
+ * should be given as a positive number. If not specified,
+ * step will default to 1.
+ *
+ * @return array an array of elements from start to
+ * end, inclusive.
+ */
+#[Pure]
+function range(
+ #[LanguageLevelTypeAware(['8.3' => 'string|int|float'], default: '')] $start,
+ #[LanguageLevelTypeAware(['8.3' => 'string|int|float'], default: '')] $end,
+ int|float $step = 1
+): array {}
+
+/**
+ * Sort multiple or multi-dimensional arrays
+ * @link https://php.net/manual/en/function.array-multisort.php
+ * @param array &$array
+ * An array being sorted.
+ *
+ * @param &...$rest [optional]
+ * More arrays, optionally followed by sort order and flags.
+ * Only elements corresponding to equivalent elements in previous arrays are compared.
+ * In other words, the sort is lexicographical.
+ *
+ * @return bool true on success or false on failure.
+ */
+function array_multisort(
+ &$array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $sort_order = SORT_ASC,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $sort_flags = SORT_REGULAR,
+ &...$rest
+): bool {}
+
+/**
+ * Push elements onto the end of array
+ * Since 7.3.0 this function can be called with only one parameter.
+ * For earlier versions at least two parameters are required.
+ * @link https://php.net/manual/en/function.array-push.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param mixed ...$values
+ * The pushed variables.
+ *
+ * @return int the number of elements in the array.
+ */
+function array_push(
+ array &$array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] $values,
+ mixed ...$values
+): int {}
+
+/**
+ * Pop the element off the end of array
+ * @link https://php.net/manual/en/function.array-pop.php
+ * @param array &$array
+ * The array to get the value from.
+ *
+ * @return mixed|null the last value of array.
+ * If array is empty (or is not an array),
+ * null will be returned.
+ * @meta
+ */
+function array_pop(array &$array): mixed {}
+
+/**
+ * Shift an element off the beginning of array
+ * @link https://php.net/manual/en/function.array-shift.php
+ * @param array &$array
+ * The input array.
+ *
+ * @return mixed|null the shifted value, or null if array is
+ * empty or is not an array.
+ * @meta
+ */
+function array_shift(array &$array): mixed {}
+
+/**
+ * Prepend elements to the beginning of an array
+ * Since 7.3.0 this function can be called with only one parameter.
+ * For earlier versions at least two parameters are required.
+ * @link https://php.net/manual/en/function.array-unshift.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param mixed ...$values
+ * The prepended variables.
+ *
+ * @return int the number of elements in the array.
+ */
+function array_unshift(array &$array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.2')] $values, mixed ...$values): int {}
+
+/**
+ * Remove a portion of the array and replace it with something else
+ * @link https://php.net/manual/en/function.array-splice.php
+ * @param array &$array
+ * The input array.
+ *
+ * @param int $offset
+ * If offset is positive then the start of removed
+ * portion is at that offset from the beginning of the
+ * input array. If offset
+ * is negative then it starts that far from the end of the
+ * input array.
+ *
+ * @param int|null $length [optional]
+ * If length is omitted, removes everything
+ * from offset to the end of the array. If
+ * length is specified and is positive, then
+ * that many elements will be removed. If
+ * length is specified and is negative then
+ * the end of the removed portion will be that many elements from
+ * the end of the array. Tip: to remove everything from
+ * offset to the end of the array when
+ * replacement is also specified, use
+ * count($input) for
+ * length.
+ *
+ * @param mixed $replacement
+ * If replacement array is specified, then the
+ * removed elements are replaced with elements from this array.
+ *
+ *
+ * If offset and length
+ * are such that nothing is removed, then the elements from the
+ * replacement array are inserted in the place
+ * specified by the offset. Note that keys in
+ * replacement array are not preserved.
+ *
+ *
+ * If replacement is just one element it is
+ * not necessary to put array()
+ * around it, unless the element is an array itself.
+ *
+ * @return array the array consisting of the extracted elements.
+ */
+function array_splice(array &$array, int $offset, ?int $length, mixed $replacement = []): array {}
+
+/**
+ * Extract a slice of the array
+ * @link https://php.net/manual/en/function.array-slice.php
+ * @param array $array
+ * The input array.
+ *
+ * @param int $offset
+ * If offset is non-negative, the sequence will
+ * start at that offset in the array. If
+ * offset is negative, the sequence will
+ * start that far from the end of the array.
+ *
+ * @param int|null $length [optional]
+ * If length is given and is positive, then
+ * the sequence will have that many elements in it. If
+ * length is given and is negative then the
+ * sequence will stop that many elements from the end of the
+ * array. If it is omitted, then the sequence will have everything
+ * from offset up until the end of the
+ * array.
+ *
+ * @param bool $preserve_keys [optional]
+ * Note that array_slice will reorder and reset the
+ * array indices by default. You can change this behaviour by setting
+ * preserve_keys to true.
+ *
+ * @return array the slice.
+ * @meta
+ */
+#[Pure]
+function array_slice(array $array, int $offset, ?int $length, bool $preserve_keys = false): array {}
+
+/**
+ * Merges the elements of one or more arrays together (if the input arrays have the same string keys, then the later value for that key will overwrite the previous one; if the arrays contain numeric keys, the later value will be appended)
+ * Since 7.4.0 this function can be called without any parameter, and it will return empty array.
+ * @link https://php.net/manual/en/function.array-merge.php
+ * @param array ...$arrays
+ * Variable list of arrays to merge.
+ *
+ * @return array the resulting array.
+ * @meta
+ */
+#[Pure]
+function array_merge(
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.3')] $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $arrays,
+ array ...$arrays
+): array {}
diff --git a/phpstorm-stubs/standard/standard_9.php b/phpstorm-stubs/standard/standard_9.php
new file mode 100644
index 0000000..03b0054
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_9.php
@@ -0,0 +1,1318 @@
+
+ * The array in which elements are replaced.
+ *
+ * @param array ...$replacements
+ * The array from which elements will be extracted.
+ *
+ * @return array or null if an error occurs.
+ */
+#[Pure]
+function array_replace(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $replacements,
+ array ...$replacements
+): array {}
+
+/**
+ * Replaces elements from passed arrays into the first array recursively
+ * @link https://php.net/manual/en/function.array-replace-recursive.php
+ * @param array $array
+ * The array in which elements are replaced.
+ *
+ * @param array ...$replacements
+ * The array from which elements will be extracted.
+ *
+ * @return array an array, or null if an error occurs.
+ */
+#[Pure]
+function array_replace_recursive(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.0')] $replacements,
+ array ...$replacements
+): array {}
+
+/**
+ * Return all the keys or a subset of the keys of an array
+ * @link https://php.net/manual/en/function.array-keys.php
+ * @param array $array
+ * An array containing keys to return.
+ *
+ * @param mixed $filter_value [optional]
+ * If specified, then only keys containing these values are returned.
+ *
+ * @param bool $strict [optional]
+ * Determines if strict comparison (===) should be used during the search.
+ *
+ * @return int[]|string[] an array of all the keys in input.
+ */
+#[Pure]
+function array_keys(array $array, mixed $filter_value, bool $strict = false): array {}
+
+/**
+ * Return all the values of an array
+ * @link https://php.net/manual/en/function.array-values.php
+ * @param array $array
+ * The array.
+ *
+ * @return array an indexed array of values.
+ * @meta
+ */
+#[Pure]
+function array_values(array $array): array {}
+
+/**
+ * Counts all the values of an array
+ * @link https://php.net/manual/en/function.array-count-values.php
+ * @param array $array
+ * The array of values to count
+ *
+ * @return array an associative array of values from input as
+ * keys and their count as value.
+ */
+#[Pure]
+function array_count_values(array $array): array {}
+
+/**
+ * Return the values from a single column in the input array
+ * @link https://secure.php.net/manual/en/function.array-column.php
+ * @param array $array A multi-dimensional array (record set) from which to pull a column of values.
+ * @param string|int|null $column_key The column of values to return. This value may be the integer key of the column you wish to retrieve, or it may be the string key name for an associative array. It may also be NULL to return complete arrays (useful together with index_key to reindex the array).
+ * @param string|int|null $index_key [optional] The column to use as the index/keys for the returned array. This value may be the integer key of the column, or it may be the string key name.
+ * @return array Returns an array of values representing a single column from the input array.
+ * @since 5.5
+ */
+#[Pure]
+function array_column(array $array, string|int|null $column_key, string|int|null $index_key = null): array {}
+
+/**
+ * Return an array with elements in reverse order
+ * @link https://php.net/manual/en/function.array-reverse.php
+ * @param array $array
+ * The input array.
+ *
+ * @param bool $preserve_keys [optional]
+ * If set to true keys are preserved.
+ *
+ * @return array the reversed array.
+ * @meta
+ */
+#[Pure]
+function array_reverse(array $array, bool $preserve_keys = false): array {}
+
+/**
+ * Iteratively reduce the array to a single value using a callback function
+ * @link https://php.net/manual/en/function.array-reduce.php
+ * @param array $array
+ * The input array.
+ *
+ * @param callable $callback
+ * The callback function. Signature is
callback ( mixed $carry , mixed $item ) : mixed
+ * mixed $carry The return value of the previous iteration; on the first iteration it holds the value of $initial.
+ * mixed $item Holds the current iteration value of the $input
+ *
+ * @param mixed $initial [optional]
+ * If the optional initial is available, it will
+ * be used at the beginning of the process, or as a final result in case
+ * the array is empty.
+ *
+ * @return mixed the resulting value.
+ *
+ * If the array is empty and initial is not passed,
+ * array_reduce returns null.
+ *
+ *
+ *
+ * Example use:
+ *
array_reduce(['2', '3', '4'], function($ax, $dx) { return $ax . ", {$dx}"; }, '1') // Returns '1, 2, 3, 4'
+ * array_reduce(['2', '3', '4'], function($ax, $dx) { return $ax + (int)$dx; }, 1) // Returns 10
+ *
+ *
+ * @meta
+ */
+function array_reduce(array $array, callable $callback, mixed $initial = null): mixed {}
+
+/**
+ * Pad array to the specified length with a value
+ * @link https://php.net/manual/en/function.array-pad.php
+ * @param array $array
+ * Initial array of values to pad.
+ *
+ * @param int $length
+ * New size of the array.
+ *
+ * @param mixed $value
+ * Value to pad if input is less than
+ * pad_size.
+ *
+ * @return array a copy of the input padded to size specified
+ * by pad_size with value
+ * pad_value. If pad_size is
+ * positive then the array is padded on the right, if it's negative then
+ * on the left. If the absolute value of pad_size is less than or equal to
+ * the length of the input then no padding takes place.
+ */
+#[Pure]
+function array_pad(array $array, int $length, mixed $value): array {}
+
+/**
+ * Exchanges all keys with their associated values in an array
+ * @link https://php.net/manual/en/function.array-flip.php
+ * @param int[]|string[] $array
+ * An array of key/value pairs to be flipped.
+ *
+ * @return int[]|string[] Returns the flipped array.
+ */
+#[Pure]
+function array_flip(array $array): array {}
+
+/**
+ * Changes the case of all keys in an array
+ * @link https://php.net/manual/en/function.array-change-key-case.php
+ * @param array $array
+ * The array to work on
+ *
+ * @param int $case
+ * Either CASE_UPPER or
+ * CASE_LOWER (default)
+ *
+ * @return array an array with its keys lower or uppercased
+ * @meta
+ */
+#[Pure]
+function array_change_key_case(array $array, int $case = CASE_LOWER): array {}
+
+/**
+ * Pick one or more random keys out of an array
+ * @link https://php.net/manual/en/function.array-rand.php
+ * @param array $array
+ * The input array.
+ *
+ * @param int $num [optional]
+ * Specifies how many entries you want to pick.
+ *
+ * @return int|string|array If you are picking only one entry, array_rand
+ * returns the key for a random entry. Otherwise, it returns an array
+ * of keys for the random entries. This is done so that you can pick
+ * random keys as well as values out of the array.
+ */
+function array_rand(array $array, int $num = 1): array|string|int {}
+
+/**
+ * Removes duplicate values from an array
+ * @link https://php.net/manual/en/function.array-unique.php
+ * @param array $array
+ * The input array.
+ *
+ * @param int $flags [optional]
+ * The optional second parameter sort_flags
+ * may be used to modify the sorting behavior using these values:
+ *
+ *
+ * Sorting type flags:
+ *
+ * -
+ * SORT_REGULAR - compare items normally
+ * (don't change types)
+ *
+ * -
+ * SORT_NUMERIC - compare items numerically
+ *
+ * -
+ * SORT_STRING - compare items as strings
+ *
+ * -
+ * SORT_LOCALE_STRING - compare items as strings,
+ * based on the current locale
+ *
+ *
+ * @return array the filtered array.
+ * @meta
+ */
+#[Pure]
+function array_unique(array $array, int $flags = SORT_STRING): array {}
+
+/**
+ * Computes the intersection of arrays
+ * @link https://php.net/manual/en/function.array-intersect.php
+ * @param array $array
+ * The array with main values to check.
+ *
+ * @param array ...$arrays arrays to compare values against.
+ * @return array an array containing all of the values in
+ * array1 whose values exist in all of the parameters.
+ * @meta
+ */
+#[Pure]
+function array_intersect(array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays, array ...$arrays): array {}
+
+/**
+ * Computes the intersection of arrays using keys for comparison
+ * @link https://php.net/manual/en/function.array-intersect-key.php
+ * @param array $array
+ * The array with main keys to check.
+ *
+ * @param array ...$arrays
+ * @return array an associative array containing all the values and keys of
+ * array1 which have keys that are present in all
+ * arguments.
+ * @meta
+ */
+#[Pure]
+function array_intersect_key(array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays, array ...$arrays): array {}
+
+/**
+ * Computes the intersection of arrays using a callback function on the keys for comparison
+ * @link https://php.net/manual/en/function.array-intersect-ukey.php
+ * @param array $array
+ * Initial array for comparison of the arrays.
+ *
+ * @param array $array2
+ * First array to compare keys against.
+ *
+ * @param callable $key_compare_func
+ * User supplied callback function to do the comparison.
+ *
+ * @param ...$rest [optional]
+ * @return array the values of array1 whose keys exist
+ * in all the arguments.
+ * @meta
+ */
+function array_intersect_ukey(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Computes the intersection of arrays, compares data by a callback function
+ * @link https://php.net/manual/en/function.array-uintersect.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * The callback comparison function.
+ *
+ * @param array ...$rest
+ *
+ * The user supplied callback function is used for comparison.
+ * It must return an integer less than, equal to, or greater than zero if
+ * the first argument is considered to be respectively less than, equal
+ * to, or greater than the second.
+ *
+ * @return array an array containing all the values and keys of array1
+ * that are present in all the arguments.
+ * @meta
+ */
+function array_uintersect(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Computes the intersection of arrays with additional index check
+ * @link https://php.net/manual/en/function.array-intersect-assoc.php
+ * @param array $array
+ * The array with main values to check.
+ *
+ * @param array $arrays
+ * @return array an associative array containing all the values and keys in
+ * array1 that are present in all of the arguments.
+ * @meta
+ */
+#[Pure]
+function array_intersect_assoc(array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays, array ...$arrays): array {}
+
+/**
+ * Computes the intersection of arrays with additional index check, compares data by a callback function
+ * @link https://php.net/manual/en/function.array-uintersect-assoc.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * For comparison is used the user supplied callback function.
+ * It must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the
+ * second.
+ *
+ * @param array ...$rest
+ * @return array an array containing all the values and keys of
+ * array1 that are present in all the arguments.
+ * @meta
+ */
+function array_uintersect_assoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Computes the intersection of arrays with additional index check, compares indexes by a callback function
+ * @link https://php.net/manual/en/function.array-intersect-uassoc.php
+ * @param array $array
+ * Initial array for comparison of the arrays.
+ *
+ * @param array $array2
+ * First array to compare keys against.
+ *
+ * @param callable $key_compare_func
+ * User supplied callback function to do the comparison.
+ *
+ * @param array ...$rest
+ * @return array the values of array1 whose values exist
+ * in all of the arguments.
+ * @meta
+ */
+function array_intersect_uassoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Computes the intersection of arrays with additional index check, compares data and indexes by separate callback functions
+ * @link https://php.net/manual/en/function.array-uintersect-uassoc.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * For comparison is used the user supplied callback function.
+ * It must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the
+ * second.
+ *
+ * @param callable $key_compare_func
+ * Key comparison callback function.
+ *
+ * @param array ...$rest
+ * @return array an array containing all the values and keys of
+ * array1 that are present in all the arguments.
+ * @meta
+ */
+#[Pure]
+function array_uintersect_uassoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Computes the difference of arrays
+ * @link https://php.net/manual/en/function.array-diff.php
+ * @param array $array
+ * The array to compare from
+ *
+ * @param array ...$arrays
+ * @return array an array containing all the entries from
+ * array1 that are not present in any of the other arrays.
+ * @meta
+ */
+#[Pure]
+function array_diff(array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays, array ...$arrays): array {}
+
+/**
+ * Computes the difference of arrays using keys for comparison
+ * @link https://php.net/manual/en/function.array-diff-key.php
+ * @param array $array
+ * The array to compare from
+ *
+ * @param array $arrays
+ * An array to compare against
+ *
+ * @return array an array containing all the values and keys from
+ * array1 whose keys are not present in any of the
+ * other arrays.
+ * @meta
+ */
+#[Pure]
+function array_diff_key(array $array, #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays, array ...$arrays): array {}
+
+/**
+ * Computes the difference of arrays using a callback function on the keys for comparison
+ * @link https://php.net/manual/en/function.array-diff-ukey.php
+ * @param array $array
+ * The array to compare from
+ *
+ * @param array $array2
+ * An array to compare against
+ *
+ * @param callable $key_compare_func
+ * callback function to use.
+ * The callback function must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the second.
+ *
+ * @param array ...$rest [optional]
+ * @return array an array containing all the values and keys from
+ * array1 that are not present in any of the other arrays.
+ * @meta
+ */
+function array_diff_ukey(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest,
+): array {}
+
+/**
+ * Computes the difference of arrays by using a callback function for data comparison
+ * @link https://php.net/manual/en/function.array-udiff.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * The callback comparison function.
+ *
+ *
+ * The user supplied callback function is used for comparison.
+ * It must return an integer less than, equal to, or greater than zero if
+ * the first argument is considered to be respectively less than, equal
+ * to, or greater than the second.
+ *
+ * @param array ...$rest [optional]
+ * @return array an array containing all the values and keys of array1
+ * that are not present in any of the other arguments.
+ * @meta
+ */
+function array_udiff(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest,
+): array {}
+
+/**
+ * Computes the difference of arrays with additional index check
+ * @link https://php.net/manual/en/function.array-diff-assoc.php
+ * @param array $array
+ * The array to compare from
+ *
+ * @param array $arrays
+ * An array to compare against
+ *
+ * @return array an array containing all the values from
+ * array1 that are not present in any of the other arrays.
+ * @meta
+ */
+#[Pure]
+function array_diff_assoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays,
+ array ...$arrays
+): array {}
+
+/**
+ * Computes the difference of arrays with additional index check, compares data by a callback function
+ * @link https://php.net/manual/en/function.array-udiff-assoc.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * The callback comparison function.
+ *
+ *
+ * The user supplied callback function is used for comparison.
+ * It must return an integer less than, equal to, or greater than zero if
+ * the first argument is considered to be respectively less than, equal
+ * to, or greater than the second.
+ *
+ * @param array ...$rest [optional]
+ * @return array array_udiff_assoc returns an array
+ * containing all the values and keys from array1
+ * that are not present in any of the other arguments.
+ * Note that the keys are used in the comparison unlike
+ * array_diff and array_udiff.
+ * The comparison of arrays' data is performed by using an user-supplied
+ * callback. In this aspect the behaviour is opposite to the behaviour of
+ * array_diff_assoc which uses internal function for
+ * comparison.
+ * @meta
+ */
+function array_udiff_assoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest,
+): array {}
+
+/**
+ * Computes the difference of arrays with additional index check which is performed by a user supplied callback function
+ * @link https://php.net/manual/en/function.array-diff-uassoc.php
+ * @param array $array
+ * The array to compare from
+ *
+ * @param array $array2
+ * An array to compare against
+ *
+ * @param callable $key_compare_func
+ * callback function to use.
+ * The callback function must return an integer less than, equal
+ * to, or greater than zero if the first argument is considered to
+ * be respectively less than, equal to, or greater than the second.
+ *
+ * @param array ...$rest [optional]
+ * @return array an array containing all the values and keys from
+ * array1 that are not present in any of the other arrays.
+ * @meta
+ */
+function array_diff_uassoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest,
+): array {}
+
+/**
+ * Computes the difference of arrays with additional index check, compares data and indexes by a callback function
+ * @link https://php.net/manual/en/function.array-udiff-uassoc.php
+ * @param array $array
+ * The first array.
+ *
+ * @param array $array2
+ * The second array.
+ *
+ * @param callable $data_compare_func
+ * The callback comparison function.
+ *
+ *
+ * The user supplied callback function is used for comparison.
+ * It must return an integer less than, equal to, or greater than zero if
+ * the first argument is considered to be respectively less than, equal
+ * to, or greater than the second.
+ *
+ *
+ * The comparison of arrays' data is performed by using an user-supplied
+ * callback : data_compare_func. In this aspect
+ * the behaviour is opposite to the behaviour of
+ * array_diff_assoc which uses internal function for
+ * comparison.
+ *
+ * @param callable $key_compare_func
+ * The comparison of keys (indices) is done also by the callback function
+ * key_compare_func. This behaviour is unlike what
+ * array_udiff_assoc does, since the latter compares
+ * the indices by using an internal function.
+ *
+ * @param array ...$rest [optional]
+ * @return array an array containing all the values and keys from
+ * array1 that are not present in any of the other
+ * arguments.
+ * @meta
+ */
+function array_udiff_uassoc(
+ array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] array $array2,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $data_compare_func,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] callable $key_compare_func,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ...$rest
+): array {}
+
+/**
+ * Calculate the sum of values in an array
+ * @link https://php.net/manual/en/function.array-sum.php
+ * @param array $array
+ * The input array.
+ *
+ * @return int|float the sum of values as an integer or float.
+ */
+#[Pure]
+function array_sum(array $array): int|float {}
+
+/**
+ * Calculate the product of values in an array
+ * @link https://php.net/manual/en/function.array-product.php
+ * @param array $array
+ * The array.
+ *
+ * @return int|float the product as an integer or float.
+ */
+#[Pure]
+function array_product(array $array): int|float {}
+
+/**
+ * Iterates over each value in the array
+ * passing them to the callback function.
+ * If the callback function returns true, the
+ * current value from array is returned into
+ * the result array. Array keys are preserved.
+ * @link https://php.net/manual/en/function.array-filter.php
+ * @param array $array
+ * The array to iterate over
+ *
+ * @param callable|null $callback [optional]
+ * The callback function to use
+ *
+ *
+ * If no callback is supplied, all entries of
+ * input equal to false (see
+ * converting to
+ * boolean) will be removed.
+ *
+ * @param int $mode [optional]
+ * Flag determining what arguments are sent to callback:
+ *
+ * -
+ * ARRAY_FILTER_USE_KEY - pass key as the only argument
+ * to callback instead of the value
+ *
+ * -
+ * ARRAY_FILTER_USE_BOTH - pass both value and key as
+ * arguments to callback instead of the value
+ *
+ *
+ * @return array the filtered array.
+ * @meta
+ */
+function array_filter(array $array, ?callable $callback, int $mode = 0): array {}
+
+/**
+ * Applies the callback to the elements of the given arrays
+ * @link https://php.net/manual/en/function.array-map.php
+ * @param callable|null $callback
+ * Callback function to run for each element in each array.
+ *
+ * @param array $array
+ * An array to run through the callback function.
+ *
+ * @param array ...$arrays
+ * @return array an array containing all the elements of arr1
+ * after applying the callback function to each one.
+ * @meta
+ */
+function array_map(
+ ?callable $callback,
+ #[PhpStormStubsElementAvailable(from: '8.0')] array $array,
+ #[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $arrays,
+ array ...$arrays
+): array {}
+
+/**
+ * Split an array into chunks
+ * @link https://php.net/manual/en/function.array-chunk.php
+ * @param array $array
+ * The array to work on
+ *
+ * @param int $length
+ * The size of each chunk
+ *
+ * @param bool $preserve_keys [optional]
+ * When set to true keys will be preserved.
+ * Default is false which will reindex the chunk numerically
+ *
+ * @return array a multidimensional numerically indexed array, starting with zero,
+ * with each dimension containing size elements.
+ */
+#[Pure]
+function array_chunk(array $array, int $length, bool $preserve_keys = false): array {}
+
+/**
+ * Creates an array by using one array for keys and another for its values
+ * @link https://php.net/manual/en/function.array-combine.php
+ * @param array $keys
+ * Array of keys to be used. Illegal values for key will be
+ * converted to string.
+ *
+ * @param array $values
+ * Array of values to be used
+ *
+ * @return array|false the combined array, false if the number of elements
+ * for each array isn't equal or if the arrays are empty.
+ * @meta
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "array"], default: "array|false")]
+function array_combine(array $keys, array $values) {}
+
+/**
+ * Checks if the given key or index exists in the array
+ * @link https://php.net/manual/en/function.array-key-exists.php
+ * @param int|string $key
+ * Value to check.
+ *
+ * @param array|ArrayObject $array
+ * An array with keys to check.
+ *
+ * @return bool true on success or false on failure.
+ */
+#[Pure]
+function array_key_exists($key, #[LanguageLevelTypeAware(["8.0" => "array"], default: "array|ArrayObject")] $array): bool {}
+
+/**
+ * Gets the first key of an array
+ *
+ * Get the first key of the given array without affecting the internal array pointer.
+ *
+ * @link https://secure.php.net/array_key_first
+ * @param array $array An array
+ * @return string|int|null Returns the first key of array if the array is not empty; NULL otherwise.
+ * @since 7.3
+ */
+#[Pure]
+function array_key_first(array $array): string|int|null {}
+
+/**
+ * Gets the last key of an array
+ *
+ * Get the last key of the given array without affecting the internal array pointer.
+ *
+ * @link https://secure.php.net/array_key_last
+ * @param array $array An array
+ * @return string|int|null Returns the last key of array if the array is not empty; NULL otherwise.
+ * @since 7.3
+ */
+#[Pure]
+function array_key_last(array $array): string|int|null {}
+
+/**
+ * @link https://secure.php.net/array_is_list
+ * @param array $array An array
+ * @return bool return true if the array keys are 0 .. count($array)-1 in that order.
+ * For other arrays, it returns false. For non-arrays, it throws a TypeError.
+ * @since 8.1
+ */
+#[Pure]
+function array_is_list(array $array): bool {}
+
+/**
+ * Alias:
+ * {@see current}
+ * @link https://php.net/manual/en/function.pos.php
+ * @param array|ArrayAccess $array
+ * @return mixed
+ */
+#[Pure]
+function pos(object|array $array): mixed {}
+
+/**
+ * Alias:
+ * {@see \count}
+ * @link https://php.net/manual/en/function.sizeof.php
+ * @param array|Countable $value
+ * @param int $mode [optional]
+ * @return int<0, max>
+ */
+#[Pure]
+function sizeof(Countable|array $value, int $mode = COUNT_NORMAL): int {}
+
+/**
+ * Checks if the given key or index exists in the array. The name of this function is array_key_exists() in PHP > 4.0.6.
+ * @link https://php.net/manual/en/function.array-key-exists.php
+ * @param int|string $key
+ * Value to check.
+ *
+ * @param array $array
+ * An array with keys to check.
+ *
+ * @return bool true on success or false on failure.
+ */
+#[Pure]
+function key_exists($key, array $array): bool {}
+
+/**
+ * Checks if assertion is FALSE
+ * @link https://php.net/manual/en/function.assert.php
+ * @param Throwable|string|null $assertion
+ * The assertion.
+ * In PHP 5, this must be either a string to be evaluated or a boolean to be tested.
+ * In PHP 7, this may also be any expression that returns a value,
+ * which will be executed and the result used to indicate whether the assertion succeeded or failed.
+ * Since 7.2.0 using string is deprecated.
+ *
+ * @param string $description [optional]
+ * An optional description that will be included in the failure message if the assertion fails.
+ * @return bool false if the assertion is false, true otherwise.
+ */
+function assert(
+ mixed $assertion,
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['7.0' => 'Throwable|string|null'], default: 'string')] $description = null
+): bool {}
+
+/**
+ * AssertionError is thrown when an assertion made via {@see assert()} fails.
+ * @link https://php.net/manual/en/class.assertionerror.php
+ * @since 7.0
+ */
+class AssertionError extends Error {}
+
+/**
+ * Set/get the various assert flags
+ * @link https://php.net/manual/en/function.assert-options.php
+ * @param int $option
+ *
+ * Assert Options
+ *
+ * Option
+ * INI Setting
+ * Default value
+ * Description
+ *
+ *
+ * ASSERT_ACTIVE
+ * assert.active
+ * 1
+ * enable assert evaluation
+ *
+ *
+ * ASSERT_WARNING
+ * assert.warning
+ * 1
+ * issue a PHP warning for each failed assertion
+ *
+ *
+ * ASSERT_BAIL
+ * assert.bail
+ * 0
+ * terminate execution on failed assertions
+ *
+ *
+ * ASSERT_QUIET_EVAL
+ * assert.quiet_eval
+ * 0
+ *
+ * disable error_reporting during assertion expression
+ * evaluation
+ *
+ *
+ *
+ * ASSERT_CALLBACK
+ * assert.callback
+ * null
+ * Callback to call on failed assertions
+ *
+ *
+ *
+ * @param mixed $value [optional]
+ * An optional new value for the option.
+ *
+ * @return mixed The original setting of any option.
+ */
+#[Deprecated(since: "8.3")]
+function assert_options(int $option, mixed $value): mixed {}
+
+/**
+ * Compares two "PHP-standardized" version number strings
+ * @link https://php.net/manual/en/function.version-compare.php
+ * @param string $version1
+ * First version number.
+ *
+ * @param string $version2
+ * Second version number.
+ *
+ * @param string|null $operator [optional]
+ * If you specify the third optional operator
+ * argument, you can test for a particular relationship. The
+ * possible operators are: <,
+ * lt, <=,
+ * le, >,
+ * gt, >=,
+ * ge, ==,
+ * =, eq,
+ * !=, <>,
+ * ne respectively.
+ *
+ *
+ * This parameter is case-sensitive, so values should be lowercase.
+ *
+ * @return int|bool By default, version_compare returns
+ * -1 if the first version is lower than the second,
+ * 0 if they are equal, and
+ * 1 if the second is lower.
+ *
+ *
+ * When using the optional operator argument, the
+ * function will return true if the relationship is the one specified
+ * by the operator, false otherwise.
+ */
+#[ExpectedValues([-1, 0, 1, false, true])]
+function version_compare(
+ string $version1,
+ string $version2,
+ #[ExpectedValues(values: [
+ "<",
+ "lt",
+ "<=",
+ "le",
+ ">",
+ "gt",
+ ">=",
+ "ge",
+ "==",
+ "=",
+ "eq",
+ "!=",
+ "<>",
+ "ne"
+ ])] ?string $operator
+): int|bool {}
+
+/**
+ * Convert a pathname and a project identifier to a System V IPC key
+ * @link https://php.net/manual/en/function.ftok.php
+ * @param string $filename
+ * Path to an accessible file.
+ *
+ * @param string $project_id
+ * Project identifier. This must be a one character string.
+ *
+ * @return int On success the return value will be the created key value, otherwise
+ * -1 is returned.
+ */
+#[Pure(true)]
+function ftok(string $filename, string $project_id): int {}
+
+/**
+ * Perform the rot13 transform on a string
+ * @link https://php.net/manual/en/function.str-rot13.php
+ * @param string $string
+ * The input string.
+ *
+ * @return string the ROT13 version of the given string.
+ */
+#[Pure]
+function str_rot13(string $string): string {}
+
+/**
+ * Retrieve list of registered filters
+ * @link https://php.net/manual/en/function.stream-get-filters.php
+ * @return list an indexed array containing the name of all stream filters
+ * available.
+ */
+#[Pure(true)]
+function stream_get_filters(): array {}
+
+/**
+ * Check if a stream is a TTY
+ * @link https://php.net/manual/en/function.stream-isatty.php
+ * @param resource $stream
+ * @return bool
+ * @since 7.2
+ */
+#[Pure]
+function stream_isatty($stream): bool {}
+
+/**
+ * Register a user defined stream filter
+ * @link https://php.net/manual/en/function.stream-filter-register.php
+ * @param string $filter_name
+ * The filter name to be registered.
+ *
+ * @param string $class
+ * To implement a filter, you need to define a class as an extension of
+ * php_user_filter with a number of member functions
+ * as defined below. When performing read/write operations on the stream
+ * to which your filter is attached, PHP will pass the data through your
+ * filter (and any other filters attached to that stream) so that the
+ * data may be modified as desired. You must implement the methods
+ * exactly as described below - doing otherwise will lead to undefined
+ * behaviour.
+ *
+ * intfilter
+ * resourcein
+ * resourceout
+ * intconsumed
+ * boolclosing
+ *
+ * This method is called whenever data is read from or written to
+ * the attached stream (such as with fread or fwrite).
+ * in is a resource pointing to a bucket brigade
+ * which contains one or more bucket objects containing data to be filtered.
+ * out is a resource pointing to a second bucket brigade
+ * into which your modified buckets should be placed.
+ * consumed, which must always
+ * be declared by reference, should be incremented by the length of the data
+ * which your filter reads in and alters. In most cases this means you will
+ * increment consumed by $bucket->datalen
+ * for each $bucket. If the stream is in the process of closing
+ * (and therefore this is the last pass through the filterchain),
+ * the closing parameter will be set to true.
+ * The filter method must return one of
+ * three values upon completion.
+ *
+ * Return Value
+ * Meaning
+ *
+ *
+ * PSFS_PASS_ON
+ *
+ * Filter processed successfully with data available in the
+ * out bucket brigade.
+ *
+ *
+ *
+ * PSFS_FEED_ME
+ *
+ * Filter processed successfully, however no data was available to
+ * return. More data is required from the stream or prior filter.
+ *
+ *
+ *
+ * PSFS_ERR_FATAL (default)
+ *
+ * The filter experienced an unrecoverable error and cannot continue.
+ *
+ *
+ *
+ * boolonCreate
+ * This method is called during instantiation of the filter class
+ * object. If your filter allocates or initializes any other resources
+ * (such as a buffer), this is the place to do it. Your implementation of
+ * this method should return false on failure, or true on success.
+ * When your filter is first instantiated, and
+ * yourfilter->onCreate() is called, a number of properties
+ * will be available as shown in the table below.
+ *
+ *
+ * Property
+ * Contents
+ *
+ *
+ * FilterClass->filtername
+ *
+ * A string containing the name the filter was instantiated with.
+ * Filters may be registered under multiple names or under wildcards.
+ * Use this property to determine which name was used.
+ *
+ *
+ *
+ * FilterClass->params
+ *
+ * The contents of the params parameter passed
+ * to stream_filter_append
+ * or stream_filter_prepend.
+ *
+ *
+ *
+ * FilterClass->stream
+ *
+ * The stream resource being filtered. Maybe available only during
+ * filter calls when the
+ * closing parameter is set to false.
+ *
+ *
+ *
+ * voidonClose
+ *
+ * This method is called upon filter shutdown (typically, this is also
+ * during stream shutdown), and is executed after
+ * the flush method is called. If any resources
+ * were allocated or initialized during onCreate()
+ * this would be the time to destroy or dispose of them.
+ *
+ * @return bool true on success or false on failure.
+ *
+ * stream_filter_register will return false if the
+ * filtername is already defined.
+ *
+ */
+function stream_filter_register(string $filter_name, string $class): bool {}
+
+/**
+ * Return a bucket object from the brigade for operating on
+ * @link https://php.net/manual/en/function.stream-bucket-make-writeable.php
+ * @param resource $brigade
+ * @return object|null
+ */
+function stream_bucket_make_writeable($brigade): ?object {}
+
+/**
+ * Prepend bucket to brigade
+ * @link https://php.net/manual/en/function.stream-bucket-prepend.php
+ * @param resource $brigade
+ * @param object $bucket
+ * @return void
+ */
+function stream_bucket_prepend($brigade, object $bucket): void {}
+
+/**
+ * Append bucket to brigade
+ * @link https://php.net/manual/en/function.stream-bucket-append.php
+ * @param resource $brigade
+ * @param object $bucket
+ * @return void
+ */
+function stream_bucket_append($brigade, object $bucket): void {}
+
+/**
+ * Create a new bucket for use on the current stream
+ * @link https://php.net/manual/en/function.stream-bucket-new.php
+ * @param resource $stream
+ * @param string $buffer
+ * @return object
+ */
+function stream_bucket_new($stream, string $buffer): object {}
+
+/**
+ * Add URL rewriter values
+ * @link https://php.net/manual/en/function.output-add-rewrite-var.php
+ * @param string $name
+ * The variable name.
+ *
+ * @param string $value
+ * The variable value.
+ *
+ * @return bool true on success or false on failure.
+ */
+function output_add_rewrite_var(string $name, string $value): bool {}
+
+/**
+ * Reset URL rewriter values
+ *
+ *
+ *
+ * Version
+ * Description
+ *
+ *
+ *
+ *
+ *
+ *
+ * 7.1.0
+ *
+ * Before PHP 7.1.0, rewrite vars set by output_add_rewrite_var()
+ * use the same Session module trans sid output buffer. Since PHP 7.1.0,
+ * dedicated output buffer is used and {@see output_reset_rewrite_vars()}
+ * only removes rewrite vars defined by {@see output_add_rewrite_var()}.
+ *
+ *
+ *
+ *
+ *
+ *
+ *
+ * @link https://php.net/manual/en/function.output-reset-rewrite-vars.php
+ * @return bool true on success or false on failure.
+ */
+function output_reset_rewrite_vars(): bool {}
+
+/**
+ * Returns directory path used for temporary files
+ * @link https://php.net/manual/en/function.sys-get-temp-dir.php
+ * @return string the path of the temporary directory.
+ * @since 5.2.1
+ */
+function sys_get_temp_dir(): string {}
+
+/**
+ * Get the contents of the realpath cache.
+ * @link https://php.net/manual/en/function.realpath-cache-get.php
+ * @return array Returns an array of realpath cache entries. The keys are
+ * original path entries, and the values are arrays of data items,
+ * containing the resolved path, expiration date, and other options kept in
+ * the cache.
+ * @since 5.3.2
+ */
+#[Pure(true)]
+function realpath_cache_get(): array {}
+
+/**
+ * Get the amount of memory used by the realpath cache.
+ * @link https://php.net/manual/en/function.realpath-cache-size.php
+ * @return int Returns how much memory realpath cache is using.
+ * @since 5.3.2
+ */
+#[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 {}
+
+/**
+ * Get the type or object name of a variable
+ *
+ * @param mixed $value The variable being type checked.
+ * @return string Possibles values for the returned string are:
+ * - "int"
+ * - "float"
+ * - "bool"
+ * - "string"
+ * - "array"
+ * - "null"
+ * - A class name for named classes
+ * - "class@anonymous" for an anonymous classes
+ * - "resource (xxx)" for any resources where "xxx" is a name of resource
+ * - "resource (closed)" for closed resources
+ * @since 8.0
+ */
+#[Pure]
+function get_debug_type(mixed $value): string {}
+
+/**
+ * A more obvious and type-safe form of "(int) $resource"
+ *
+ * @param resource $resource
+ * @return int
+ * @since 8.0
+ */
+#[Pure]
+function get_resource_id($resource): int {}
diff --git a/phpstorm-stubs/standard/standard_defines.php b/phpstorm-stubs/standard/standard_defines.php
new file mode 100644
index 0000000..51a3b11
--- /dev/null
+++ b/phpstorm-stubs/standard/standard_defines.php
@@ -0,0 +1,1507 @@
+e constant
+ */
+define('M_E', 2.718281828459);
+
+/**
+ * {@link log}2e constant
+ */
+define('M_LOG2E', 1.442695040889);
+
+/**
+ * {@link log}10e constant
+ */
+define('M_LOG10E', 0.43429448190325);
+
+/**
+ * {@link log}e2 constant
+ */
+define('M_LN2', 0.69314718055995);
+
+/**
+ * {@link log}e10 constant
+ */
+define('M_LN10', 2.302585092994);
+
+/**
+ * π constant
+ */
+define('M_PI', 3.1415926535898);
+
+/**
+ * π/2 constant
+ */
+define('M_PI_2', 1.5707963267949);
+
+/**
+ * π/4 constant
+ */
+define('M_PI_4', 0.78539816339745);
+
+/**
+ * 1/π constant
+ */
+define('M_1_PI', 0.31830988618379);
+
+/**
+ * 2/π constant
+ */
+define('M_2_PI', 0.63661977236758);
+
+/**
+ * {@link sqrt}(π) constant
+ */
+define('M_SQRTPI', 1.7724538509055);
+
+/**
+ * 2/{@link sqrt}(π) constant
+ */
+define('M_2_SQRTPI', 1.1283791670955);
+
+/**
+ * {@link log}eπ constant
+ */
+define('M_LNPI', 1.1447298858494);
+
+/**
+ * Euler constant
+ */
+define('M_EULER', 0.57721566490153);
+
+/**
+ * {@link sqrt}(2) constant
+ */
+define('M_SQRT2', 1.4142135623731);
+
+/**
+ * 1/{@link sqrt}(2) constant
+ */
+define('M_SQRT1_2', 0.70710678118655);
+
+/**
+ * {@link sqrt}(3) constant
+ */
+define('M_SQRT3', 1.7320508075689);
+
+/**
+ * The infinite
+ */
+define('INF', (float)INF);
+
+/**
+ * Not A Number
+ */
+define('NAN', (float)NAN);
+
+/**
+ * Round halves up
+ * @link https://php.net/manual/en/math.constants.php
+ */
+define('PHP_ROUND_HALF_UP', 1);
+
+/**
+ * Round halves down
+ * @link https://php.net/manual/en/math.constants.php
+ */
+define('PHP_ROUND_HALF_DOWN', 2);
+
+/**
+ * Round halves to even numbers
+ * @link https://php.net/manual/en/math.constants.php
+ */
+define('PHP_ROUND_HALF_EVEN', 3);
+
+/**
+ * Round halves to odd numbers
+ * @link https://php.net/manual/en/math.constants.php
+ */
+define('PHP_ROUND_HALF_ODD', 4);
+define('INFO_GENERAL', 1);
+
+/**
+ * PHP Credits. See also phpcredits.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_CREDITS', 2);
+
+/**
+ * Current Local and Main values for PHP directives. See
+ * also ini_get.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_CONFIGURATION', 4);
+
+/**
+ * Loaded modules and their respective settings.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_MODULES', 8);
+
+/**
+ * Environment Variable information that's also available in
+ * $_ENV.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_ENVIRONMENT', 16);
+
+/**
+ * Shows all
+ * predefined variables from EGPCS (Environment, GET,
+ * POST, Cookie, Server).
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_VARIABLES', 32);
+
+/**
+ * PHP License information. See also the license faq.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('INFO_LICENSE', 64);
+define('INFO_ALL', 4294967295);
+
+/**
+ * A list of the core developers
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_GROUP', 1);
+
+/**
+ * General credits: Language design and concept, PHP
+ * authors and SAPI module.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_GENERAL', 2);
+
+/**
+ * A list of the server API modules for PHP, and their authors.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_SAPI', 4);
+
+/**
+ * A list of the extension modules for PHP, and their authors.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_MODULES', 8);
+
+/**
+ * The credits for the documentation team.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_DOCS', 16);
+
+/**
+ * Usually used in combination with the other flags. Indicates
+ * that a complete stand-alone HTML page needs to be
+ * printed including the information indicated by the other
+ * flags.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_FULLPAGE', 32);
+
+/**
+ * The credits for the quality assurance team.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_QA', 64);
+
+/**
+ * The configuration line, "php.ini" location, build date, Web
+ * Server, System and more.
+ * @link https://php.net/manual/en/info.constants.php
+ */
+define('CREDITS_ALL', 4294967295);
+define('HTML_SPECIALCHARS', 0);
+define('HTML_ENTITIES', 1);
+
+/**
+ * Will convert double-quotes and leave single-quotes alone.
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_COMPAT', 2);
+
+/**
+ * Will convert both double and single quotes.
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_QUOTES', 3);
+
+/**
+ * Will leave both double and single quotes unconverted.
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_NOQUOTES', 0);
+
+/**
+ * Silently discard invalid code unit sequences instead of returning an empty string.
+ * Using this flag is discouraged as it may have security implications.
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_IGNORE', 4);
+define('STR_PAD_LEFT', 0);
+define('STR_PAD_RIGHT', 1);
+define('STR_PAD_BOTH', 2);
+define('PATHINFO_DIRNAME', 1);
+define('PATHINFO_BASENAME', 2);
+define('PATHINFO_EXTENSION', 4);
+
+/**
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('PATHINFO_FILENAME', 8);
+define('PATHINFO_ALL', 15);
+define('CHAR_MAX', 127);
+define('LC_CTYPE', 0);
+define('LC_NUMERIC', 1);
+define('LC_TIME', 2);
+define('LC_COLLATE', 3);
+define('LC_MONETARY', 4);
+define('LC_ALL', 6);
+define('LC_MESSAGES', 5);
+define('SEEK_SET', 0);
+define('SEEK_CUR', 1);
+define('SEEK_END', 2);
+
+/**
+ * Acquire a shared lock (reader).
+ * @link https://www.php.net/manual/en/function.flock.php
+ */
+define('LOCK_SH', 1);
+
+/**
+ * Acquire an exclusive lock (writer).
+ * @link https://www.php.net/manual/en/function.flock.php
+ */
+define('LOCK_EX', 2);
+
+/**
+ * Release lock (shared or exclusive).
+ * @link https://www.php.net/manual/en/function.flock.php
+ */
+define('LOCK_UN', 3);
+
+/**
+ * Non-blocking operation while locking.
+ * @link https://www.php.net/manual/en/function.flock.php
+ */
+define('LOCK_NB', 4);
+
+/**
+ * A connection with an external resource has been established.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_CONNECT', 2);
+
+/**
+ * Additional authorization is required to access the specified resource.
+ * Typical issued with severity level of
+ * STREAM_NOTIFY_SEVERITY_ERR.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_AUTH_REQUIRED', 3);
+
+/**
+ * Authorization has been completed (with or without success).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_AUTH_RESULT', 10);
+
+/**
+ * The mime-type of resource has been identified,
+ * refer to message for a description of the
+ * discovered type.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_MIME_TYPE_IS', 4);
+
+/**
+ * The size of the resource has been discovered.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_FILE_SIZE_IS', 5);
+
+/**
+ * The external resource has redirected the stream to an alternate
+ * location. Refer to message.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_REDIRECTED', 6);
+
+/**
+ * Indicates current progress of the stream transfer in
+ * bytes_transferred and possibly
+ * bytes_max as well.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_PROGRESS', 7);
+
+/**
+ * A generic error occurred on the stream, consult
+ * message and message_code
+ * for details.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_FAILURE', 9);
+
+/**
+ * There is no more data available on the stream.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_COMPLETED', 8);
+
+/**
+ * A remote address required for this stream has been resolved, or the resolution
+ * failed. See severity for an indication of which happened.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_RESOLVE', 1);
+
+/**
+ * Normal, non-error related, notification.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_SEVERITY_INFO', 0);
+
+/**
+ * Non critical error condition. Processing may continue.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_SEVERITY_WARN', 1);
+
+/**
+ * A critical error occurred. Processing cannot continue.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_NOTIFY_SEVERITY_ERR', 2);
+
+/**
+ * Used with stream_filter_append and
+ * stream_filter_prepend to indicate
+ * that the specified filter should only be applied when
+ * reading
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_FILTER_READ', 1);
+
+/**
+ * Used with stream_filter_append and
+ * stream_filter_prepend to indicate
+ * that the specified filter should only be applied when
+ * writing
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_FILTER_WRITE', 2);
+
+/**
+ * This constant is equivalent to
+ * STREAM_FILTER_READ | STREAM_FILTER_WRITE
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_FILTER_ALL', 3);
+
+/**
+ * Client socket opened with stream_socket_client
+ * should remain persistent between page loads.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_CLIENT_PERSISTENT', 1);
+
+/**
+ * Open client socket asynchronously. This option must be used
+ * together with the STREAM_CLIENT_CONNECT flag.
+ * Used with stream_socket_client.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_CLIENT_ASYNC_CONNECT', 2);
+
+/**
+ * Open client socket connection. Client sockets should always
+ * include this flag. Used with stream_socket_client.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_CLIENT_CONNECT', 4);
+
+/**
+ * Used with stream_socket_shutdown to disable
+ * further receptions.
+ * @since 5.2.1
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SHUT_RD', 0);
+
+/**
+ * Used with stream_socket_shutdown to disable
+ * further transmissions.
+ * @since 5.2.1
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SHUT_WR', 1);
+
+/**
+ * Used with stream_socket_shutdown to disable
+ * further receptions and transmissions.
+ * @since 5.2.1
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SHUT_RDWR', 2);
+
+/**
+ * Internet Protocol Version 4 (IPv4).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_PF_INET', 2);
+
+/**
+ * Internet Protocol Version 6 (IPv6).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_PF_INET6', 10);
+
+/**
+ * Unix system internal protocols.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_PF_UNIX', 1);
+
+/**
+ * Provides a IP socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_IPPROTO_IP', 0);
+
+/**
+ * Provides a TCP socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_IPPROTO_TCP', 6);
+
+/**
+ * Provides a UDP socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_IPPROTO_UDP', 17);
+
+/**
+ * Provides a ICMP socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_IPPROTO_ICMP', 1);
+
+/**
+ * Provides a RAW socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_IPPROTO_RAW', 255);
+
+/**
+ * Provides sequenced, two-way byte streams with a transmission mechanism
+ * for out-of-band data (TCP, for example).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SOCK_STREAM', 1);
+
+/**
+ * Provides datagrams, which are connectionless messages (UDP, for
+ * example).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SOCK_DGRAM', 2);
+
+/**
+ * Provides a raw socket, which provides access to internal network
+ * protocols and interfaces. Usually this type of socket is just available
+ * to the root user.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SOCK_RAW', 3);
+
+/**
+ * Provides a sequenced packet stream socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SOCK_SEQPACKET', 5);
+
+/**
+ * Provides a RDM (Reliably-delivered messages) socket.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SOCK_RDM', 4);
+define('STREAM_PEEK', 2);
+define('STREAM_OOB', 1);
+
+/**
+ * Tells a stream created with stream_socket_server
+ * to bind to the specified target. Server sockets should always include this flag.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SERVER_BIND', 4);
+
+/**
+ * Tells a stream created with stream_socket_server
+ * and bound using the STREAM_SERVER_BIND flag to start
+ * listening on the socket. Connection-orientated transports (such as TCP)
+ * must use this flag, otherwise the server socket will not be enabled.
+ * Using this flag for connect-less transports (such as UDP) is an error.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_SERVER_LISTEN', 8);
+
+/**
+ * Search for filename in include_path
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FILE_USE_INCLUDE_PATH', 1);
+
+/**
+ * Strip EOL characters
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FILE_IGNORE_NEW_LINES', 2);
+
+/**
+ * Skip empty lines
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FILE_SKIP_EMPTY_LINES', 4);
+
+/**
+ * Append content to existing file.
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FILE_APPEND', 8);
+define('FILE_NO_DEFAULT_CONTEXT', 16);
+
+/**
+ *
+ * This constant has no effect prior to PHP 6. It is only available for
+ * forward compatibility.
+ *
+ * @since 5.2.7
+ * @link https://php.net/manual/en/filesystem.constants.php
+ * @deprecated 8.1
+ */
+define('FILE_TEXT', 0);
+
+/**
+ *
+ * This constant has no effect prior to PHP 6. It is only available for
+ * forward compatibility.
+ *
+ * @since 5.2.7
+ * @link https://php.net/manual/en/filesystem.constants.php
+ * @deprecated 8.1
+ */
+define('FILE_BINARY', 0);
+
+/**
+ * Disable backslash escaping.
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FNM_NOESCAPE', 2);
+
+/**
+ * Slash in string only matches slash in the given pattern.
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FNM_PATHNAME', 1);
+
+/**
+ * Leading period in string must be exactly matched by period in the given pattern.
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FNM_PERIOD', 4);
+
+/**
+ * Caseless match. Part of the GNU extension.
+ * @link https://php.net/manual/en/filesystem.constants.php
+ */
+define('FNM_CASEFOLD', 16);
+
+/**
+ * Return Code indicating that the
+ * userspace filter returned buckets in $out.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_PASS_ON', 2);
+
+/**
+ * Return Code indicating that the
+ * userspace filter did not return buckets in $out
+ * (i.e. No data available).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_FEED_ME', 1);
+
+/**
+ * Return Code indicating that the
+ * userspace filter encountered an unrecoverable error
+ * (i.e. Invalid data received).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_ERR_FATAL', 0);
+
+/**
+ * Regular read/write.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_FLAG_NORMAL', 0);
+
+/**
+ * An incremental flush.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_FLAG_FLUSH_INC', 1);
+
+/**
+ * Final flush prior to closing.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('PSFS_FLAG_FLUSH_CLOSE', 2);
+define('ABDAY_1', 131072);
+define('ABDAY_2', 131073);
+define('ABDAY_3', 131074);
+define('ABDAY_4', 131075);
+define('ABDAY_5', 131076);
+define('ABDAY_6', 131077);
+define('ABDAY_7', 131078);
+define('DAY_1', 131079);
+define('DAY_2', 131080);
+define('DAY_3', 131081);
+define('DAY_4', 131082);
+define('DAY_5', 131083);
+define('DAY_6', 131084);
+define('DAY_7', 131085);
+define('ABMON_1', 131086);
+define('ABMON_2', 131087);
+define('ABMON_3', 131088);
+define('ABMON_4', 131089);
+define('ABMON_5', 131090);
+define('ABMON_6', 131091);
+define('ABMON_7', 131092);
+define('ABMON_8', 131093);
+define('ABMON_9', 131094);
+define('ABMON_10', 131095);
+define('ABMON_11', 131096);
+define('ABMON_12', 131097);
+define('MON_1', 131098);
+define('MON_2', 131099);
+define('MON_3', 131100);
+define('MON_4', 131101);
+define('MON_5', 131102);
+define('MON_6', 131103);
+define('MON_7', 131104);
+define('MON_8', 131105);
+define('MON_9', 131106);
+define('MON_10', 131107);
+define('MON_11', 131108);
+define('MON_12', 131109);
+define('AM_STR', 131110);
+define('PM_STR', 131111);
+define('D_T_FMT', 131112);
+define('D_FMT', 131113);
+define('T_FMT', 131114);
+define('T_FMT_AMPM', 131115);
+define('ERA', 131116);
+define('ERA_D_T_FMT', 131120);
+define('ERA_D_FMT', 131118);
+define('ERA_T_FMT', 131121);
+define('ALT_DIGITS', 131119);
+define('CRNCYSTR', 262159);
+define('RADIXCHAR', 65536);
+define('THOUSEP', 65537);
+define('YESEXPR', 327680);
+define('NOEXPR', 327681);
+define('YESSTR', 327682);
+define('NOSTR', 327683);
+define('CODESET', 14);
+define('CRYPT_SALT_LENGTH', 123);
+define('CRYPT_STD_DES', 1);
+define('CRYPT_EXT_DES', 1);
+define('CRYPT_MD5', 1);
+define('CRYPT_BLOWFISH', 1);
+define('CRYPT_SHA256', 1);
+define('CRYPT_SHA512', 1);
+define('DIRECTORY_SEPARATOR', "/");
+define('PATH_SEPARATOR', ":");
+define('GLOB_BRACE', 1024);
+define('GLOB_MARK', 2);
+define('GLOB_NOSORT', 4);
+define('GLOB_NOCHECK', 16);
+define('GLOB_NOESCAPE', 64);
+define('GLOB_ERR', 1);
+define('GLOB_ONLYDIR', 1073741824);
+define('GLOB_AVAILABLE_FLAGS', 1073741911);
+define('EXTR_OVERWRITE', 0);
+define('EXTR_SKIP', 1);
+define('EXTR_PREFIX_SAME', 2);
+define('EXTR_PREFIX_ALL', 3);
+define('EXTR_PREFIX_INVALID', 4);
+define('EXTR_PREFIX_IF_EXISTS', 5);
+define('EXTR_IF_EXISTS', 6);
+define('EXTR_REFS', 256);
+
+/**
+ * SORT_ASC is used with
+ * array_multisort to sort in ascending order.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_ASC', 4);
+
+/**
+ * SORT_DESC is used with
+ * array_multisort to sort in descending order.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_DESC', 3);
+
+/**
+ * SORT_REGULAR is used to compare items normally.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_REGULAR', 0);
+
+/**
+ * SORT_NUMERIC is used to compare items numerically.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_NUMERIC', 1);
+
+/**
+ * SORT_STRING is used to compare items as strings.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_STRING', 2);
+
+/**
+ * SORT_LOCALE_STRING is used to compare items as
+ * strings, based on the current locale.
+ * @since 5.0.2
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_LOCALE_STRING', 5);
+
+/**
+ * CASE_LOWER is used with
+ * array_change_key_case and is used to convert array
+ * keys to lower case. This is also the default case for
+ * array_change_key_case.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('CASE_LOWER', 0);
+
+/**
+ * CASE_UPPER is used with
+ * array_change_key_case and is used to convert array
+ * keys to upper case.
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('CASE_UPPER', 1);
+define('COUNT_NORMAL', 0);
+define('COUNT_RECURSIVE', 1);
+define('ASSERT_ACTIVE', 1);
+define('ASSERT_CALLBACK', 2);
+define('ASSERT_BAIL', 3);
+define('ASSERT_WARNING', 4);
+
+/**
+ * @removed 8.0
+ */
+define('ASSERT_QUIET_EVAL', 5);
+define('ASSERT_EXCEPTION', 5);
+
+/**
+ * Flag indicating if the stream used the include path.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_USE_PATH', 1);
+define('STREAM_IGNORE_URL', 2);
+define('STREAM_ENFORCE_SAFE_MODE', 4);
+
+/**
+ * Flag indicating if the wrapper
+ * is responsible for raising errors using trigger_error
+ * during opening of the stream. If this flag is not set, you
+ * should not raise any errors.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_REPORT_ERRORS', 8);
+
+/**
+ * This flag is useful when your extension really must be able to randomly
+ * seek around in a stream. Some streams may not be seekable in their
+ * native form, so this flag asks the streams API to check to see if the
+ * stream does support seeking. If it does not, it will copy the stream
+ * into temporary storage (which may be a temporary file or a memory
+ * stream) which does support seeking.
+ * Please note that this flag is not useful when you want to seek the
+ * stream and write to it, because the stream you are accessing might
+ * not be bound to the actual resource you requested.
+ * If the requested resource is network based, this flag will cause the
+ * opener to block until the whole contents have been downloaded.
+ * @link https://www.php.net/manual/en/stream.constants.php
+ */
+define('STREAM_MUST_SEEK', 16);
+define('STREAM_URL_STAT_LINK', 1);
+define('STREAM_URL_STAT_QUIET', 2);
+define('STREAM_MKDIR_RECURSIVE', 1);
+define('STREAM_IS_URL', 1);
+define('STREAM_OPTION_BLOCKING', 1);
+define('STREAM_OPTION_READ_TIMEOUT', 4);
+define('STREAM_OPTION_READ_BUFFER', 2);
+define('STREAM_OPTION_WRITE_BUFFER', 3);
+define('STREAM_BUFFER_NONE', 0);
+define('STREAM_BUFFER_LINE', 1);
+define('STREAM_BUFFER_FULL', 2);
+
+/**
+ * Stream casting, when stream_cast is called
+ * otherwise (see above).
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_CAST_AS_STREAM', 0);
+
+/**
+ * Stream casting, for when stream_select is
+ * calling stream_cast.
+ * @link https://php.net/manual/en/stream.constants.php
+ */
+define('STREAM_CAST_FOR_SELECT', 3);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_GIF', 1);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JPEG', 2);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_PNG', 3);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_SWF', 4);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_PSD', 5);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_BMP', 6);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_TIFF_II', 7);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_TIFF_MM', 8);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JPC', 9);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JP2', 10);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JPX', 11);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JB2', 12);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_SWC', 13);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_IFF', 14);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_WBMP', 15);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_JPEG2000', 9);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_XBM', 16);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ */
+define('IMAGETYPE_ICO', 17);
+
+/**
+ * Image type constant used by the {@link image_type_to_mime_type()} and {@link image_type_to_extension()} functions.
+ * @link https://php.net/manual/en/image.constants.php
+ * @since 7.1
+ */
+define('IMAGETYPE_WEBP', 18);
+define('IMAGETYPE_UNKNOWN', 0);
+define('IMAGETYPE_COUNT', 20);
+
+/**
+ * @since 8.1
+ */
+define('IMAGETYPE_AVIF', 19);
+/**
+ * IPv4 Address Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_A', 1);
+
+define('DNS_CAA', 8192);
+
+/**
+ * Authoritative Name Server Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_NS', 2);
+
+/**
+ * Alias (Canonical Name) Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_CNAME', 16);
+
+/**
+ * Start of Authority Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_SOA', 32);
+
+/**
+ * Pointer Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_PTR', 2048);
+
+/**
+ * Host Info Resource (See IANA's
+ * Operating System Names
+ * for the meaning of these values)
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_HINFO', 4096);
+
+/**
+ * Mail Exchanger Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_MX', 16384);
+
+/**
+ * Text Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_TXT', 32768);
+define('DNS_SRV', 33554432);
+define('DNS_NAPTR', 67108864);
+
+/**
+ * IPv6 Address Resource
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_AAAA', 134217728);
+define('DNS_A6', 16777216);
+
+/**
+ * Any Resource Record. On most systems
+ * this returns all resource records, however
+ * it should not be counted upon for critical
+ * uses. Try DNS_ALL instead.
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_ANY', 268435456);
+
+/**
+ * Iteratively query the name server for
+ * each available record type.
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('DNS_ALL', 251721779);
+
+// End of standard v.5.3.1-0.dotdeb.1
+
+//WI-11084 Constant not defined PHP_QUERY_RFC3986
+
+/**
+ * Encoding is performed per RFC 1738 and the application/x-www-form-urlencoded media type,
+ * which implies that spaces are encoded as plus (+) signs.
+ * @link https://php.net/manual/en/function.http-build-query.php
+ */
+define('PHP_QUERY_RFC1738', 1);
+/**
+ * Encoding is performed according to RFC 3986, and spaces will be percent encoded (%20).
+ * @link https://php.net/manual/en/function.http-build-query.php
+ */
+define('PHP_QUERY_RFC3986', 2);
+
+//WI-11254 Stubs for missing constants from PHP 5.4
+
+/**
+ * (PHP4, PHP5)
+ * Constant containing either the session name and session ID in the form of "name=ID" or
+ * empty string if session ID was set in an appropriate session cookie.
+ * This is the same id as the one returned by session_id().
+ * @see session_id()
+ * @link https://php.net/manual/en/session.constants.php
+ */
+define('SID', "name=ID");
+/**
+ * Return value of session_status() if sessions are disabled.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.session-status.php
+ */
+define('PHP_SESSION_DISABLED', 0);
+/**
+ * Return value of session_status() if sessions are enabled, but no session exists.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.session-status.php
+ */
+define('PHP_SESSION_NONE', 1);
+/**
+ * Return value of session_status() if sessions are enabled, and a session exists.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.session-status.php
+ */
+define('PHP_SESSION_ACTIVE', 2);
+
+/**
+ * Replace invalid code unit sequences with a Unicode Replacement Character
+ * U+FFFD (UTF-8) or FFFD; (otherwise) instead of returning an empty string.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_SUBSTITUTE', 8);
+/**
+ * Replace invalid code points for the given document type with
+ * a Unicode Replacement Character U+FFFD (UTF-8) or FFFD;
+ * (otherwise) instead of leaving them as is. This may be useful,
+ * for instance, to ensure the well-formedness of XML documents
+ * with embedded external content.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_DISALLOWED', 128);
+/**
+ * Handle code as HTML 4.01.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_HTML401', 0);
+/**
+ * Handle code as XML 1.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_XML1', 16);
+/**
+ * Handle code as XHTML.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_XHTML', 32);
+/**
+ * Handle code as HTML 5.
+ * @since 5.4
+ * @link https://php.net/manual/en/function.htmlspecialchars.php
+ */
+define('ENT_HTML5', 48);
+
+/** @link https://php.net/manual/en/function.scandir.php */
+define('SCANDIR_SORT_ASCENDING', 0);
+/** @link https://php.net/manual/en/function.scandir.php */
+define('SCANDIR_SORT_DESCENDING', 1);
+/** @link https://php.net/manual/en/function.scandir.php */
+define('SCANDIR_SORT_NONE', 2);
+
+/**
+ * SORT_NATURAL is used to compare items as strings using "natural ordering" like natsort().
+ * @since 5.4
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_NATURAL', 6);
+/**
+ * SORT_FLAG_CASE can be combined (bitwise OR) with SORT_STRING or SORT_NATURAL to sort strings case-insensitively.
+ * @since 5.4
+ * @link https://php.net/manual/en/array.constants.php
+ */
+define('SORT_FLAG_CASE', 8);
+
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_TOUCH', 1);
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_OWNER', 3);
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_OWNER_NAME', 2);
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_GROUP', 5);
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_GROUP_NAME', 4);
+/** @link https://php.net/manual/en/streamwrapper.stream-metadata.php */
+define('STREAM_META_ACCESS', 6);
+
+define('STREAM_CRYPTO_METHOD_SSLv2_CLIENT', 3);
+define('STREAM_CRYPTO_METHOD_SSLv3_CLIENT', 5);
+define('STREAM_CRYPTO_METHOD_SSLv23_CLIENT', 57);
+define('STREAM_CRYPTO_METHOD_TLS_CLIENT', 121);
+define('STREAM_CRYPTO_METHOD_SSLv2_SERVER', 2);
+define('STREAM_CRYPTO_METHOD_SSLv3_SERVER', 4);
+define('STREAM_CRYPTO_METHOD_SSLv23_SERVER', 120);
+define('STREAM_CRYPTO_METHOD_TLS_SERVER', 120);
+
+define("STREAM_CRYPTO_METHOD_ANY_CLIENT", 127);
+define("STREAM_CRYPTO_METHOD_ANY_SERVER", 126);
+define("STREAM_CRYPTO_METHOD_TLSv1_0_CLIENT", 9);
+define("STREAM_CRYPTO_METHOD_TLSv1_0_SERVER", 8);
+define("STREAM_CRYPTO_METHOD_TLSv1_1_CLIENT", 17);
+define("STREAM_CRYPTO_METHOD_TLSv1_1_SERVER", 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);
+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
+ */
+define("MT_RAND_MT19937", 0);
+/**
+ * @since 7.1
+ * @deprecated 8.3
+ */
+define("MT_RAND_PHP", 1);
+
+/**
+ * system is unusable
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_EMERG', 0);
+
+/**
+ * action must be taken immediately
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_ALERT', 1);
+
+/**
+ * critical conditions
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_CRIT', 2);
+
+/**
+ * error conditions
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_ERR', 3);
+
+/**
+ * warning conditions
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_WARNING', 4);
+
+/**
+ * normal, but significant, condition
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_NOTICE', 5);
+
+/**
+ * informational message
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_INFO', 6);
+
+/**
+ * debug-level message
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_DEBUG', 7);
+
+/**
+ * kernel messages
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_KERN', 0);
+
+/**
+ * generic user-level messages
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_USER', 8);
+
+/**
+ * mail subsystem
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_MAIL', 16);
+
+/**
+ * other system daemons
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_DAEMON', 24);
+
+/**
+ * security/authorization messages (use LOG_AUTHPRIV instead
+ * in systems where that constant is defined)
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_AUTH', 32);
+
+/**
+ * messages generated internally by syslogd
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_SYSLOG', 40);
+
+/**
+ * line printer subsystem
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_LPR', 48);
+
+/**
+ * USENET news subsystem
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_NEWS', 56);
+
+/**
+ * UUCP subsystem
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_UUCP', 64);
+
+/**
+ * clock daemon (cron and at)
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_CRON', 72);
+
+/**
+ * security/authorization messages (private)
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_AUTHPRIV', 80);
+define('LOG_LOCAL0', 128);
+define('LOG_LOCAL1', 136);
+define('LOG_LOCAL2', 144);
+define('LOG_LOCAL3', 152);
+define('LOG_LOCAL4', 160);
+define('LOG_LOCAL5', 168);
+define('LOG_LOCAL6', 176);
+define('LOG_LOCAL7', 184);
+
+/**
+ * include PID with each message
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_PID', 1);
+
+/**
+ * if there is an error while sending data to the system logger,
+ * write directly to the system console
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_CONS', 2);
+
+/**
+ * (default) delay opening the connection until the first
+ * message is logged
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_ODELAY', 4);
+
+/**
+ * open the connection to the logger immediately
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_NDELAY', 8);
+define('LOG_NOWAIT', 16);
+
+/**
+ * print log message also to standard error
+ * @link https://php.net/manual/en/network.constants.php
+ */
+define('LOG_PERROR', 32);
+
+/**
+ * @since 8.2
+ */
+define('DECIMAL_POINT', 65536);
+/**
+ * @since 8.2
+ */
+define('THOUSANDS_SEP', 65537);
+/**
+ * @since 8.2
+ */
+define('GROUPING', 65538);
+
+/**
+ * @since 8.2
+ */
+define('ERA_YEAR', 131117);
+
+/**
+ * @since 8.2
+ */
+define('INT_CURR_SYMBOL', 262144);
+/**
+ * @since 8.2
+ */
+define('CURRENCY_SYMBOL', 262145);
+/**
+ * @since 8.2
+ */
+define('MON_DECIMAL_POINT', 262146);
+/**
+ * @since 8.2
+ */
+define('MON_THOUSANDS_SEP', 262147);
+/**
+ * @since 8.2
+ */
+define('MON_GROUPING', 262148);
+/**
+ * @since 8.2
+ */
+define('POSITIVE_SIGN', 262149);
+/**
+ * @since 8.2
+ */
+define('NEGATIVE_SIGN', 262150);
+/**
+ * @since 8.2
+ */
+define('INT_FRAC_DIGITS', 262151);
+/**
+ * @since 8.2
+ */
+define('FRAC_DIGITS', 262152);
+/**
+ * @since 8.2
+ */
+define('P_CS_PRECEDES', 262153);
+/**
+ * @since 8.2
+ */
+define('P_SEP_BY_SPACE', 262154);
+/**
+ * @since 8.2
+ */
+define('N_CS_PRECEDES', 262155);
+/**
+ * @since 8.2
+ */
+define('N_SEP_BY_SPACE', 262156);
+/**
+ * @since 8.2
+ */
+define('P_SIGN_POSN', 262157);
+/**
+ * @since 8.2
+ */
+define('N_SIGN_POSN', 262158);
diff --git a/phpstorm-stubs/stats/stats.php b/phpstorm-stubs/stats/stats.php
new file mode 100644
index 0000000..1610779
--- /dev/null
+++ b/phpstorm-stubs/stats/stats.php
@@ -0,0 +1,718 @@
+
+ * Cookie name.
+ *
+ * @param string $value
+ * Cookie value.
+ *
+ * @return string|false the encrypted string or false on failure.
+ */
+function suhosin_encrypt_cookie($name, $value) {}
+
+/**
+ * Returns an array containing the raw cookie values
+ * @link https://php.net/manual/en/function.suhosin-get-raw-cookies.php
+ * @return array an array containing the raw cookie values.
+ */
+function suhosin_get_raw_cookies() {}
diff --git a/phpstorm-stubs/superglobals/_superglobals.php b/phpstorm-stubs/superglobals/_superglobals.php
new file mode 100644
index 0000000..fc780f0
--- /dev/null
+++ b/phpstorm-stubs/superglobals/_superglobals.php
@@ -0,0 +1,240 @@
+https://secure.php.net/manual/en/reserved.variables.php
+ */
+$GLOBALS = [];
+
+/**
+ * @xglobal $_COOKIE array
+ * Variables provided to the script via HTTP cookies. Analogous to the old $HTTP_COOKIE_VARS array
+ * (which is still available, but deprecated).
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_COOKIE = [];
+
+/**
+ * @xglobal $_ENV array
+ * @xglobal $HTTP_ENV_VARS array
+ *
+ * Variables provided to the script via the environment.
+ * Analogous to the old $HTTP_ENV_VARS array (which is still available, but deprecated).
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_ENV = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_ENV_VARS = [];
+
+/**
+ * @xglobal $_FILES array
+ * @xglobal $HTTP_POST_FILES array
+ *
+ * Variables provided to the script via HTTP post file uploads. Analogous to the old $HTTP_POST_FILES array
+ * (which is still available, but deprecated).
+ * See POST method uploads for more information.
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_FILES = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_POST_FILES = [];
+
+/**
+ * @xglobal $_GET array
+ * @xglobal $HTTP_GET_VARS array
+ *
+ * Variables provided to the script via URL query string.
+ * Analogous to the old $HTTP_GET_VARS array (which is still available, but deprecated).
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_GET = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_GET_VARS = [];
+
+/**
+ * @xglobal $_POST array
+ * @xglobal $HTTP_POST_VARS array
+ *
+ * Variables provided to the script via HTTP POST. Analogous to the old $HTTP_POST_VARS array
+ * (which is still available, but deprecated).
+ * @link https://secure.php.net/manual/en/language.variables.predefined.php
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_POST = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_POST_VARS = [];
+
+/**
+ * @xglobal $_REQUEST array
+ * Variables provided to the script via the GET, POST, and COOKIE input mechanisms,
+ * and which therefore cannot be trusted.
+ * The presence and order of variable inclusion in this array is defined according to the
+ * PHP variables_order configuration directive.
+ * This array has no direct analogue in versions of PHP prior to 4.1.0.
+ * See also import_request_variables().
+ *
+ * Caution
+ *
Since PHP 4.3.0, FILE information from $_FILES does not exist in $_REQUEST.
+ *
+ * Note: When running on the command line , this will not include the argv and argc entries; these are present in the $_SERVER array.
+ *
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_REQUEST = [];
+
+/**
+ * @xglobal $_SERVER array
+ * @xglobal $HTTP_SERVER_VARS array
+ *
+ * Variables set by the web server or otherwise directly related to the execution environment of the current script.
+ * Analogous to the old $HTTP_SERVER_VARS array (which is still available, but deprecated).
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_SERVER = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_SERVER_VARS = [];
+
+$_SERVER['PHP_SELF'] = '';
+$_SERVER['argv'] = '';
+$_SERVER['argc'] = '';
+$_SERVER['GATEWAY_INTERFACE'] = 'CGI/1.1';
+$_SERVER['SERVER_ADDR'] = '127.0.0.1';
+$_SERVER['SERVER_NAME'] = 'localhost';
+$_SERVER['SERVER_SOFTWARE'] = '';
+$_SERVER['SERVER_PROTOCOL'] = 'HTTP/1.0';
+$_SERVER['REQUEST_METHOD'] = 'GET';
+$_SERVER['REQUEST_TIME'] = 946713600;
+$_SERVER['REQUEST_TIME_FLOAT'] = 946713600.123456;
+$_SERVER['QUERY_STRING'] = '';
+$_SERVER['DOCUMENT_ROOT'] = '';
+$_SERVER['HTTP_ACCEPT'] = '';
+$_SERVER['HTTP_ACCEPT_CHARSET'] = 'iso-8859-1,*,utf-8';
+$_SERVER['HTTP_ACCEPT_ENCODING'] = 'gzip';
+$_SERVER['HTTP_ACCEPT_LANGUAGE'] = 'en';
+$_SERVER['HTTP_CONNECTION'] = 'Keep-Alive';
+$_SERVER['HTTP_HOST'] = '';
+$_SERVER['HTTP_REFERER'] = '';
+$_SERVER['HTTP_USER_AGENT'] = 'Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586).';
+$_SERVER['HTTPS'] = '';
+$_SERVER['REMOTE_ADDR'] = '';
+$_SERVER['REMOTE_HOST'] = '';
+$_SERVER['REMOTE_PORT'] = '';
+$_SERVER['REMOTE_USER'] = '';
+$_SERVER['REDIRECT_REMOTE_USER'] = '';
+$_SERVER['SCRIPT_FILENAME'] = '';
+$_SERVER['SERVER_ADMIN'] = '';
+$_SERVER['SERVER_PORT'] = '80';
+$_SERVER['SERVER_SIGNATURE'] = '';
+$_SERVER['PATH_TRANSLATED'] = '';
+$_SERVER['SCRIPT_NAME'] = '';
+$_SERVER['REQUEST_URI'] = '/index.html';
+$_SERVER['PHP_AUTH_DIGEST'] = '';
+$_SERVER['PHP_AUTH_USER'] = '';
+$_SERVER['PHP_AUTH_PW'] = '';
+$_SERVER['AUTH_TYPE'] = '';
+$_SERVER['PATH_INFO'] = '';
+$_SERVER['ORIG_PATH_INFO'] = '';
+
+/**
+ * @xglobal $_SESSION array
+ * @xglobal $HTTP_SESSION_VARS array
+ *
+ * Variables which are currently registered to a script's session.
+ * Analogous to the old $HTTP_SESSION_VARS array (which is still available, but deprecated).
+ * See the Session handling functions section for more information.
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$_SESSION = [];
+/**
+ * @deprecated 4.1
+ * @removed 5.4
+ */
+$HTTP_SESSION_VARS = [];
+
+/**
+ * @xglobal $argc int
+ * @type int<1, max>
+ *
+ * The number of arguments passed to script
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$argc = 0;
+
+/**
+ * @xglobal $argv array
+ *
+ * Array of arguments passed to script
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$argv = [1 + 1 => "a" . "b"];
+
+/**
+ * @xglobal $HTTP_RAW_POST_DATA string
+ *
+ * Raw POST data
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ *
+ * @deprecated 5.6 Deprecated as of PHP 5.6.0. Use the php://input stream instead.
+ * @removed 7.0
+ */
+$HTTP_RAW_POST_DATA = '';
+
+/**
+ * @xglobal $http_response_header array
+ *
+ * HTTP response headers
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ */
+$http_response_header = [];
+
+/**
+ * @xglobal $php_errormsg string
+ * The previous error message
+ *
+ *
+ * https://secure.php.net/manual/en/reserved.variables.php
+ * @deprecated 7.2
+ */
+$php_errormsg = '';
diff --git a/phpstorm-stubs/svm/SVM.php b/phpstorm-stubs/svm/SVM.php
new file mode 100644
index 0000000..26e1d78
--- /dev/null
+++ b/phpstorm-stubs/svm/SVM.php
@@ -0,0 +1,174 @@
+ data pairs. A URL to a file containing a SVM Light formatted problem, with the each line being a new training example, the start of each line containing the class (1, -1) then a series of tab separated data values shows as key:value. A opened stream pointing to a data source formatted as in the file above.
+ * @param array|null $weights Weights are an optional set of weighting parameters for the different classes, to help account for unbalanced training sets. For example, if the classes were 1 and -1, and -1 had significantly more example than one, the weight for -1 could be 0.5. Weights should be in the range 0-1.
+ * @return SVMModel Returns an SVMModel that can be used to classify previously unseen data. Throws SVMException on error
+ * @throws SMVException
+ * @link https://www.php.net/manual/en/svm.train.php
+ */
+ public function train(array $problem, array $weights = null): SVMModel {}
+}
diff --git a/phpstorm-stubs/svm/SVMModel.php b/phpstorm-stubs/svm/SVMModel.php
new file mode 100644
index 0000000..a0647a2
--- /dev/null
+++ b/phpstorm-stubs/svm/SVMModel.php
@@ -0,0 +1,104 @@
+ value pairs in increasing key order, but not necessarily continuous.
+ * @return float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error
+ * @throws SVMException Throws SVMException on error
+ * @link https://www.php.net/manual/en/svmmodel.predict-probability.php
+ */
+ public function predict_probability(array $data): float {}
+
+ /**
+ * Predict a value for previously unseen data
+ *
+ * This function accepts an array of data and attempts to predict the class or regression value based on the model extracted from previously trained data.
+ * @param array $data The array to be classified. This should be a series of key => value pairs in increasing key order, but not necessarily continuous.
+ * @return float the predicted value. This will be a class label in the case of classification, a real value in the case of regression. Throws SVMException on error
+ * @throws SVMException Throws SVMException on error
+ * @link https://www.php.net/manual/en/svmmodel.predict.php
+ */
+ public function predict(array $data): float {}
+
+ /**
+ * Save a model to a file, for later use
+ * @param string $filename The file to save the model to.
+ * @return bool Throws SVMException on error. Returns true on success.
+ * @throws SVMException Throws SVMException on error
+ * @link https://www.php.net/manual/en/svmmodel.save.php
+ */
+ public function save(string $filename): bool {}
+}
diff --git a/phpstorm-stubs/svn/svn.php b/phpstorm-stubs/svn/svn.php
new file mode 100644
index 0000000..705d1fe
--- /dev/null
+++ b/phpstorm-stubs/svn/svn.php
@@ -0,0 +1,1306 @@
+
+ * Checks out a working copy from the repository
+ * @link https://php.net/manual/en/function.svn-checkout.php
+ * @param string $repos
+ * String URL path to directory in repository to check out.
+ *
+ * @param string $targetpath
+ * String local path to directory to check out in to
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param int $revision [optional]
+ * Integer revision number of repository to check out. Default is
+ * HEAD, the most recent revision.
+ *
+ * @param int $flags [optional]
+ * Any combination of SVN_NON_RECURSIVE and
+ * SVN_IGNORE_EXTERNALS.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_checkout($repos, $targetpath, $revision = SVN_REVISION_HEAD, $flags = 0) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the contents of a file in a repository
+ * @link https://php.net/manual/en/function.svn-cat.php
+ * @param string $repos_url
+ * String URL path to item in a repository.
+ *
+ * @param int $revision_no [optional]
+ * Integer revision number of item to retrieve, default is the HEAD
+ * revision.
+ *
+ * @return string the string contents of the item from the repository on
+ * success, and FALSE on failure.
+ */
+function svn_cat($repos_url, $revision_no = SVN_REVISION_HEAD) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns list of directory contents in repository URL, optionally at revision number
+ * @link https://php.net/manual/en/function.svn-ls.php
+ * @param string $repos_url
+ * @param int $revision_no [optional]
+ * @param bool $recurse [optional]
+ * Enables recursion.
+ *
+ * @param bool $peg [optional]
+ * @return array On success, this function returns an array file listing in the format
+ * of:
+ *
+ * [0] => Array
+ * (
+ * [created_rev] => integer revision number of last edit
+ * [last_author] => string author name of last edit
+ * [size] => integer byte file size of file
+ * [time] => string date of last edit in form 'M d H:i'
+ * or 'M d Y', depending on how old the file is
+ * [time_t] => integer unix timestamp of last edit
+ * [name] => name of file/directory
+ * [type] => type, can be 'file' or 'dir'
+ * )
+ * [1] => ...
+ *
+ */
+function svn_ls($repos_url, $revision_no = SVN_REVISION_HEAD, $recurse = false, $peg = false) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the commit log messages of a repository URL
+ * @link https://php.net/manual/en/function.svn-log.php
+ * @param string $repos_url
+ * Repository URL of the item to retrieve log history from.
+ *
+ * @param int $start_revision [optional]
+ * Revision number of the first log to retrieve. Use
+ * SVN_REVISION_HEAD to retrieve the log from
+ * the most recent revision.
+ *
+ * @param int $end_revision [optional]
+ * Revision number of the last log to retrieve. Defaults to
+ * start_revision if specified or to
+ * SVN_REVISION_INITIAL otherwise.
+ *
+ * @param int $limit [optional]
+ * Number of logs to retrieve.
+ *
+ * @param int $flags [optional]
+ * Any combination of SVN_OMIT_MESSAGES,
+ * SVN_DISCOVER_CHANGED_PATHS and
+ * SVN_STOP_ON_COPY.
+ *
+ * @return array On success, this function returns an array file listing in the format
+ * of:
+ *
+ * [0] => Array, ordered most recent (highest) revision first
+ * (
+ * [rev] => integer revision number
+ * [author] => string author name
+ * [msg] => string log message
+ * [date] => string date formatted per ISO 8601, i.e. date('c')
+ * [paths] => Array, describing changed files
+ * (
+ * [0] => Array
+ * (
+ * [action] => string letter signifying change
+ * [path] => absolute repository path of changed file
+ * )
+ * [1] => ...
+ * )
+ * )
+ * [1] => ...
+ *
+ *
+ *
+ * The output will always be a numerically indexed array of arrays,
+ * even when there are none or only one log message(s).
+ *
+ *
+ * The value of action is a subset of the
+ * status output
+ * in the first column, where possible values are:
+ *
+ *
+ * Actions
+ *
+ * Letter
+ * Description
+ *
+ *
+ * M
+ * Item/props was modified
+ *
+ *
+ * A
+ * Item was added
+ *
+ *
+ * D
+ * Item was deleted
+ *
+ *
+ * R
+ * Item was replaced
+ *
+ *
+ *
+ * If no changes were made to the item, an empty array is returned.
+ */
+function svn_log($repos_url, $start_revision = null, $end_revision = null, $limit = 0, $flags = SVN_DISCOVER_CHANGED_PATHS|SVN_STOP_ON_COPY) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Sets an authentication parameter
+ * @link https://php.net/manual/en/function.svn-auth-set-parameter.php
+ * @param string $key
+ * String key name. Use the authentication constants
+ * defined by this extension to specify a key.
+ *
+ * @param string $value
+ * String value to set to parameter at key. Format of value varies
+ * with the parameter.
+ *
+ * @return void No value is returned.
+ */
+function svn_auth_set_parameter($key, $value) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Retrieves authentication parameter
+ * @link https://php.net/manual/en/function.svn-auth-get-parameter.php
+ * @param string $key
+ * String key name. Use the authentication constants
+ * defined by this extension to specify a key.
+ *
+ * @return string|null the string value of the parameter at key;
+ * returns NULL if parameter does not exist.
+ */
+function svn_auth_get_parameter($key) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the version of the SVN client libraries
+ * @link https://php.net/manual/en/function.svn-client-version.php
+ * @return string String version number, usually in form of x.y.z.
+ */
+function svn_client_version() {}
+
+function svn_config_ensure() {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Recursively diffs two paths
+ * @link https://php.net/manual/en/function.svn-diff.php
+ * @param string $path1
+ * First path to diff. This can be a URL to a file/directory in an SVN
+ * repository or a local file/directory path.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * If a local file path has only backslashes and no forward slashes,
+ * this extension will fail to find the path. Always
+ * replace all backslashes with forward slashes when using this
+ * function.
+ * @param int $rev1
+ * First path's revision number. Use SVN_REVISION_HEAD
+ * to specify the most recent revision.
+ *
+ * @param string $path2
+ * Second path to diff. See path1 for description.
+ *
+ * @param int $rev2
+ * Second path's revision number. See rev1
+ * for description.
+ *
+ * @return array an array-list consisting of two streams: the first is the diff output
+ * and the second contains error stream output. The streams can be
+ * read using fread. Returns FALSE or NULL on
+ * error.
+ *
+ *
+ * The diff output will, by default, be in the form of Subversion's
+ * custom unified diff format, but an
+ * external
+ * diff engine may be
+ * used depending on Subversion's configuration.
+ */
+function svn_diff($path1, $rev1, $path2, $rev2) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Recursively cleanup a working copy directory, finishing incomplete operations and removing locks
+ * @link https://php.net/manual/en/function.svn-cleanup.php
+ * @param string $workingdir
+ * String path to local working directory to cleanup
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_cleanup($workingdir) {}
+
+/**
+ * (PECL svn >= 0.3.0)
+ * Revert changes to the working copy
+ * @link https://php.net/manual/en/function.svn-revert.php
+ * @param string $path
+ * The path to the working repository.
+ *
+ * @param bool $recursive [optional]
+ * Optionally make recursive changes.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_revert($path, $recursive = false) {}
+
+function svn_resolved() {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Sends changes from the local working copy to the repository
+ * @link https://php.net/manual/en/function.svn-commit.php
+ * @param string $log
+ * String log text to commit
+ *
+ * @param array $targets
+ * Array of local paths of files to be committed
+ *
+ * This parameter must be an array, a string for a single
+ * target is not acceptable.
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param bool $recursive [optional]
+ * Boolean flag to disable recursive committing of
+ * directories in the targets array.
+ * Default is TRUE.
+ *
+ * @return array array in form of:
+ *
+ * array(
+ * 0 => integer revision number of commit
+ * 1 => string ISO 8601 date and time of commit
+ * 2 => name of committer
+ * )
+ *
+ *
+ * Returns FALSE on failure.
+ *
+ */
+function svn_commit($log, array $targets, $recursive = true) {}
+
+function svn_lock() {}
+
+function svn_unlock() {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Schedules the addition of an item in a working directory
+ * @link https://php.net/manual/en/function.svn-add.php
+ * @param string $path
+ * Path of item to add.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param bool $recursive [optional]
+ * If item is directory, whether or not to recursively add
+ * all of its contents. Default is TRUE
+ *
+ * @param bool $force [optional]
+ * If true, Subversion will recurse into already versioned directories
+ * in order to add unversioned files that may be hiding in those
+ * directories. Default is FALSE
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_add($path, $recursive = true, $force = false) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the status of working copy files and directories
+ * @link https://php.net/manual/en/function.svn-status.php
+ * @param string $path
+ * Local path to file or directory to retrieve status of.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param int $flags [optional]
+ * Any combination of SVN_NON_RECURSIVE,
+ * SVN_ALL (regardless of modification status),
+ * SVN_SHOW_UPDATES (entries will be added for items
+ * that are out-of-date), SVN_NO_IGNORE (disregard
+ * svn:ignore properties when scanning for new files)
+ * and SVN_IGNORE_EXTERNALS.
+ *
+ * @return array a numerically indexed array of associative arrays detailing
+ * the status of items in the repository:
+ *
+ *
+ * Array (
+ * [0] => Array (
+ * // information on item
+ * )
+ * [1] => ...
+ * )
+ *
+ *
+ * The information on the item is an associative array that can contain
+ * the following keys:
+ *
+ * path
+ * String path to file/directory of this entry on local filesystem.
+ * text_status
+ * Status of item's text. Refer to status constants for possible values.
+ * repos_text_status
+ * Status of item's text in repository. Only accurate if
+ * update was set to TRUE.
+ * Refer to status constants for possible values.
+ * prop_status
+ * Status of item's properties. Refer to status constants for possible values.
+ * repos_prop_status
+ * Status of item's property in repository. Only accurate if
+ * update was set to TRUE. Refer to status constants for possible values.
+ * locked
+ * Whether or not the item is locked. (Only set if TRUE.)
+ * copied
+ * Whether or not the item was copied (scheduled for addition with
+ * history). (Only set if TRUE.)
+ * switched
+ * Whether or not the item was switched using the switch command.
+ * (Only set if TRUE)
+ *
+ * These keys are only set if the item is versioned:
+ *
+ * name
+ * Base name of item in repository.
+ * url
+ * URL of item in repository.
+ * repos
+ * Base URL of repository.
+ * revision
+ * Integer revision of item in working copy.
+ * kind
+ * Type of item, i.e. file or directory. Refer to type constants for possible values.
+ * schedule
+ * Scheduled action for item, i.e. addition or deletion. Constants
+ * for these magic numbers are not available, they can
+ * be emulated by using:
+ *
+ * if (!defined('svn_wc_schedule_normal')) {
+ * define('svn_wc_schedule_normal', 0); // nothing special
+ * define('svn_wc_schedule_add', 1); // item will be added
+ * define('svn_wc_schedule_delete', 2); // item will be deleted
+ * define('svn_wc_schedule_replace', 3); // item will be added and deleted
+ * }
+ *
+ * deleted
+ * Whether or not the item was deleted, but parent revision lags
+ * behind. (Only set if TRUE.)
+ * absent
+ * Whether or not the item is absent, that is, Subversion knows that
+ * there should be something there but there isn't. (Only set if
+ * TRUE.)
+ * incomplete
+ * Whether or not the entries file for a directory is incomplete.
+ * (Only set if TRUE.)
+ * cmt_date
+ * Integer Unix timestamp of last commit date. (Unaffected by update.)
+ * cmt_rev
+ * Integer revision of last commit. (Unaffected by update.)
+ * cmt_author
+ * String author of last commit. (Unaffected by update
+ */
+function svn_status($path, $flags = 0) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Update working copy
+ * @link https://php.net/manual/en/function.svn-update.php
+ * @param string $path
+ * Path to local working copy.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param int $revno [optional]
+ * Revision number to update to, default is SVN_REVISION_HEAD.
+ *
+ * @param bool $recurse [optional]
+ * Whether or not to recursively update directories.
+ *
+ * @return int|false new revision number on success, returns FALSE on failure.
+ */
+function svn_update($path, $revno = SVN_REVISION_HEAD, $recurse = true) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Imports an unversioned path into a repository
+ * @link https://php.net/manual/en/function.svn-import.php
+ * @param string $path
+ * Path of file or directory to import.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param string $url
+ * Repository URL to import into.
+ *
+ * @param bool $nonrecursive
+ * Whether or not to refrain from recursively processing directories.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_import($path, $url, $nonrecursive) {}
+
+function svn_info() {}
+
+/**
+ * (PECL svn >= 0.3.0)
+ * Export the contents of a SVN directory
+ * @link https://php.net/manual/en/function.svn-export.php
+ * @param string $frompath
+ * The path to the current repository.
+ *
+ * @param string $topath
+ * The path to the new repository.
+ *
+ * @param bool $working_copy [optional]
+ * If TRUE, it will export uncommitted files from the working copy.
+ *
+ * @param int $revision_no [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_export($frompath, $topath, $working_copy = true, $revision_no = -1) {}
+
+function svn_copy() {}
+
+function svn_switch() {}
+
+/**
+ * (PECL svn >= 0.3.0)
+ * Get the SVN blame for a file
+ * @link https://php.net/manual/en/function.svn-blame.php
+ * @param string $repository_url
+ * The repository URL.
+ *
+ * @param int $revision_no [optional]
+ * The revision number.
+ *
+ * @return array An array of SVN blame information separated by line
+ * which includes the revision number, line number, line of code,
+ * author, and date.
+ */
+function svn_blame($repository_url, $revision_no = SVN_REVISION_HEAD) {}
+
+/**
+ * (PECL svn >= 0.4.0)
+ * Delete items from a working copy or repository.
+ * @link https://php.net/manual/en/function.svn-delete.php
+ * @param string $path
+ * Path of item to delete.
+ *
+ * Relative paths will be resolved as if the current working directory was the one that contains the PHP binary. To use the calling script's working directory, use realpath or dirname(__FILE__).
+ * @param bool $force [optional]
+ * If TRUE, the file will be deleted even if it has local modifications.
+ * Otherwise, local modifications will result in a failure. Default is
+ * FALSE
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_delete($path, $force = false) {}
+
+/**
+ * (PECL svn >= 0.4.0)
+ * Creates a directory in a working copy or repository
+ * @link https://php.net/manual/en/function.svn-mkdir.php
+ * @param string $path
+ * The path to the working copy or repository.
+ *
+ * @param string $log_message [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function svn_mkdir($path, $log_message = null) {}
+
+/**
+ * @link https://php.net/manual/en/ref.svn.php
+ * @param string $src_path
+ * @param string $dst_path
+ * @param bool $force [optional]
+ * @return mixed
+ */
+function svn_move($src_path, $dst_path, $force = false) {}
+
+/**
+ * @link https://php.net/manual/en/ref.svn.php
+ * @param string $path
+ * @param bool $recurse [optional]
+ * @param int $revision [optional]
+ * @return mixed
+ */
+function svn_proplist($path, $recurse = false, $revision) {}
+
+/**
+ * @param string $path
+ * @param string $property_name
+ * @param bool $recurse [optional]
+ * @param int $revision [optional]
+ * @return mixed
+ */
+function svn_propget($path, $property_name, $recurse = false, $revision) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Create a new subversion repository at path
+ * @link https://php.net/manual/en/function.svn-repos-create.php
+ * @param string $path
+ * Its description
+ *
+ * @param null|array $config [optional]
+ * Its description
+ *
+ * @param null|array $fsconfig [optional]
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_repos_create($path, ?array $config = null, ?array $fsconfig = null) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Run recovery procedures on the repository located at path.
+ * @link https://php.net/manual/en/function.svn-repos-recover.php
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_repos_recover($path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Make a hot-copy of the repos at repospath; copy it to destpath
+ * @link https://php.net/manual/en/function.svn-repos-hotcopy.php
+ * @param string $repospath
+ * Its description
+ *
+ * @param string $destpath
+ * Its description
+ *
+ * @param bool $cleanlogs
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_repos_hotcopy($repospath, $destpath, $cleanlogs) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Open a shared lock on a repository.
+ * @link https://php.net/manual/en/function.svn-repos-open.php
+ * @param string $path
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_repos_open($path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Gets a handle on the filesystem for a repository
+ * @link https://php.net/manual/en/function.svn-repos-fs.php
+ * @param resource $repos
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_repos_fs($repos) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Create a new transaction
+ * @link https://php.net/manual/en/function.svn-repos-fs-begin-txn-for-commit.php
+ * @param resource $repos
+ * Its description
+ *
+ * @param int $rev
+ * Its description
+ *
+ * @param string $author
+ * Its description
+ *
+ * @param string $log_msg
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_repos_fs_begin_txn_for_commit($repos, $rev, $author, $log_msg) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Commits a transaction and returns the new revision
+ * @link https://php.net/manual/en/function.svn-repos-fs-commit-txn.php
+ * @param resource $txn
+ * Its description
+ *
+ * @return int What the function returns, first on success, then on failure.
+ */
+function svn_repos_fs_commit_txn($txn) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Get a handle on a specific version of the repository root
+ * @link https://php.net/manual/en/function.svn-fs-revision-root.php
+ * @param resource $fs
+ * Its description
+ *
+ * @param int $revnum
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_fs_revision_root($fs, $revnum) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Determines what kind of item lives at path in a given repository fsroot
+ * @link https://php.net/manual/en/function.svn-fs-check-path.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return int What the function returns, first on success, then on failure.
+ */
+function svn_fs_check_path($fsroot, $path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Fetches the value of a named property
+ * @link https://php.net/manual/en/function.svn-fs-revision-prop.php
+ * @param resource $fs
+ * Its description
+ *
+ * @param int $revnum
+ * Its description
+ *
+ * @param string $propname
+ * Its description
+ *
+ * @return string What the function returns, first on success, then on failure.
+ */
+function svn_fs_revision_prop($fs, $revnum, $propname) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Enumerates the directory entries under path; returns a hash of dir names to file type
+ * @link https://php.net/manual/en/function.svn-fs-dir-entries.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return array What the function returns, first on success, then on failure.
+ */
+function svn_fs_dir_entries($fsroot, $path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the revision in which path under fsroot was created
+ * @link https://php.net/manual/en/function.svn-fs-node-created-rev.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return int What the function returns, first on success, then on failure.
+ */
+function svn_fs_node_created_rev($fsroot, $path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the number of the youngest revision in the filesystem
+ * @link https://php.net/manual/en/function.svn-fs-youngest-rev.php
+ * @param resource $fs
+ * Its description
+ *
+ * @return int What the function returns, first on success, then on failure.
+ */
+function svn_fs_youngest_rev($fs) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns a stream to access the contents of a file from a given version of the fs
+ * @link https://php.net/manual/en/function.svn-fs-file-contents.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_fs_file_contents($fsroot, $path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the length of a file from a given version of the fs
+ * @link https://php.net/manual/en/function.svn-fs-file-length.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return int What the function returns, first on success, then on failure.
+ */
+function svn_fs_file_length($fsroot, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Creates and returns a transaction root
+ * @link https://php.net/manual/en/function.svn-fs-txn-root.php
+ * @param resource $txn
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_fs_txn_root($txn) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Creates a new empty file, returns true if all is ok, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-make-file.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_make_file($root, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Creates a new empty directory, returns true if all is ok, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-make-dir.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_make_dir($root, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Creates and returns a stream that will be used to replace
+ * @link https://php.net/manual/en/function.svn-fs-apply-text.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_fs_apply_text($root, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Copies a file or a directory, returns true if all is ok, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-copy.php
+ * @param resource $from_root
+ * Its description
+ *
+ * @param string $from_path
+ * Its description
+ *
+ * @param resource $to_root
+ * Its description
+ *
+ * @param string $to_path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_copy($from_root, $from_path, $to_root, $to_path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Deletes a file or a directory, return true if all is ok, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-delete.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_delete($root, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Create a new transaction
+ * @link https://php.net/manual/en/function.svn-fs-begin-txn2.php
+ * @param resource $repos
+ * Its description
+ *
+ * @param int $rev
+ * Its description
+ *
+ * @return resource What the function returns, first on success, then on failure.
+ */
+function svn_fs_begin_txn2($repos, $rev) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Return true if the path points to a directory, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-is-dir.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_is_dir($root, $path) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Return true if the path points to a file, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-is-file.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_is_file($root, $path) {}
+
+/**
+ * (PECL svn >= 0.1.0)
+ * Returns the value of a property for a node
+ * @link https://php.net/manual/en/function.svn-fs-node-prop.php
+ * @param resource $fsroot
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @param string $propname
+ * Its description
+ *
+ * @return string What the function returns, first on success, then on failure.
+ */
+function svn_fs_node_prop($fsroot, $path, $propname) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Return true if everything is ok, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-change-node-prop.php
+ * @param resource $root
+ * Its description
+ *
+ * @param string $path
+ * Its description
+ *
+ * @param string $name
+ * Its description
+ *
+ * @param string $value
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_change_node_prop($root, $path, $name, $value) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Return true if content is different, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-contents-changed.php
+ * @param resource $root1
+ * Its description
+ *
+ * @param string $path1
+ * Its description
+ *
+ * @param resource $root2
+ * Its description
+ *
+ * @param string $path2
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_contents_changed($root1, $path1, $root2, $path2) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Return true if props are different, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-props-changed.php
+ * @param resource $root1
+ * Its description
+ *
+ * @param string $path1
+ * Its description
+ *
+ * @param resource $root2
+ * Its description
+ *
+ * @param string $path2
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_props_changed($root1, $path1, $root2, $path2) {}
+
+/**
+ * (PECL svn >= 0.2.0)
+ * Abort a transaction, returns true if everything is okay, false otherwise
+ * @link https://php.net/manual/en/function.svn-fs-abort-txn.php
+ * @param resource $txn
+ * Its description
+ *
+ * @return bool What the function returns, first on success, then on failure.
+ */
+function svn_fs_abort_txn($txn) {}
+
+/**
+ * Property for default username to use when performing basic authentication
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_AUTH_PARAM_DEFAULT_USERNAME', "svn:auth:username");
+
+/**
+ * Property for default password to use when performing basic authentication
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_AUTH_PARAM_DEFAULT_PASSWORD', "svn:auth:password");
+define('SVN_AUTH_PARAM_NON_INTERACTIVE', "svn:auth:non-interactive");
+define('SVN_AUTH_PARAM_DONT_STORE_PASSWORDS', "svn:auth:dont-store-passwords");
+define('SVN_AUTH_PARAM_NO_AUTH_CACHE', "svn:auth:no-auth-cache");
+define('SVN_AUTH_PARAM_SSL_SERVER_FAILURES', "svn:auth:ssl:failures");
+define('SVN_AUTH_PARAM_SSL_SERVER_CERT_INFO', "svn:auth:ssl:cert-info");
+define('SVN_AUTH_PARAM_CONFIG', "svn:auth:config-category-servers");
+define('SVN_AUTH_PARAM_SERVER_GROUP', "svn:auth:server-group");
+define('SVN_AUTH_PARAM_CONFIG_DIR', "svn:auth:config-dir");
+
+/**
+ * Custom property for ignoring SSL cert verification errors
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('PHP_SVN_AUTH_PARAM_IGNORE_SSL_VERIFY_ERRORS', "php:svn:auth:ignore-ssl-verify-errors");
+
+/**
+ * Configuration key that determines filesystem type
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_FS_CONFIG_FS_TYPE', "fs-type");
+
+/**
+ * Filesystem is Berkeley-DB implementation
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_FS_TYPE_BDB', "bdb");
+
+/**
+ * Filesystem is native-filesystem implementation
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_FS_TYPE_FSFS', "fsfs");
+
+/**
+ * svn:date
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_PROP_REVISION_DATE', "svn:date");
+
+/**
+ * svn:original-date
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_PROP_REVISION_ORIG_DATE', "svn:original-date");
+
+/**
+ * svn:author
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_PROP_REVISION_AUTHOR', "svn:author");
+
+/**
+ * svn:log
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_PROP_REVISION_LOG', "svn:log");
+define('SVN_REVISION_INITIAL', 1);
+
+/**
+ * Magic number (-1) specifying the HEAD revision
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_REVISION_HEAD', -1);
+define('SVN_REVISION_BASE', -2);
+define('SVN_REVISION_COMMITTED', -3);
+define('SVN_REVISION_PREV', -4);
+define('SVN_REVISION_UNSPECIFIED', -5);
+define('SVN_NON_RECURSIVE', 1);
+define('SVN_DISCOVER_CHANGED_PATHS', 2);
+define('SVN_OMIT_MESSAGES', 4);
+define('SVN_STOP_ON_COPY', 8);
+define('SVN_ALL', 16);
+define('SVN_SHOW_UPDATES', 32);
+define('SVN_NO_IGNORE', 64);
+
+/**
+ * Status does not exist
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_NONE', 1);
+
+/**
+ * Item is not versioned in working copy
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_UNVERSIONED', 2);
+
+/**
+ * Item exists, nothing else is happening
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_NORMAL', 3);
+
+/**
+ * Item is scheduled for addition
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_ADDED', 4);
+
+/**
+ * Item is versioned but missing from the working copy
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_MISSING', 5);
+
+/**
+ * Item is scheduled for deletion
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_DELETED', 6);
+
+/**
+ * Item was deleted and then re-added
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_REPLACED', 7);
+
+/**
+ * Item (text or properties) was modified
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_MODIFIED', 8);
+
+/**
+ * Item's local modifications were merged with repository modifications
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_MERGED', 9);
+
+/**
+ * Item's local modifications conflicted with repository modifications
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_CONFLICTED', 10);
+
+/**
+ * Item is unversioned but configured to be ignored
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_IGNORED', 11);
+
+/**
+ * Unversioned item is in the way of a versioned resource
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_OBSTRUCTED', 12);
+
+/**
+ * Unversioned path that is populated using svn:externals
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_EXTERNAL', 13);
+
+/**
+ * Directory does not contain complete entries list
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_WC_STATUS_INCOMPLETE', 14);
+
+/**
+ * Absent
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_NODE_NONE', 0);
+
+/**
+ * File
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_NODE_FILE', 1);
+
+/**
+ * Directory
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_NODE_DIR', 2);
+
+/**
+ * Something Subversion cannot identify
+ * @link https://php.net/manual/en/svn.constants.php
+ */
+define('SVN_NODE_UNKNOWN', 3);
+define('SVN_WC_SCHEDULE_NORMAL', 0);
+define('SVN_WC_SCHEDULE_ADD', 1);
+define('SVN_WC_SCHEDULE_DELETE', 2);
+define('SVN_WC_SCHEDULE_REPLACE', 3);
diff --git a/phpstorm-stubs/swoole/Swoole/Atomic.php b/phpstorm-stubs/swoole/Swoole/Atomic.php
new file mode 100644
index 0000000..19b904a
--- /dev/null
+++ b/phpstorm-stubs/swoole/Swoole/Atomic.php
@@ -0,0 +1,42 @@
+
+ * swoole_coroutine_create(function () { // The surrounding function of a coroutine.
+ * echo '1';
+ * swoole_coroutine_defer(function () { // The callback function to be deferred.
+ * echo '3';
+ * });
+ * echo '2';
+ * });
+ *
+ */
+function swoole_coroutine_defer(callable $callback) {}
+
+/**
+ * @param $domain[required]
+ * @param $type[required]
+ * @param $protocol[required]
+ * @return mixed
+ */
+function swoole_coroutine_socketpair($domain, $type, $protocol) {}
+
+/**
+ * @param $count[optional]
+ * @param $sleep_time[optional]
+ * @return mixed
+ */
+function swoole_test_kernel_coroutine($count = null, $sleep_time = null) {}
+
+/**
+ * @param $read_array[required]
+ * @param $write_array[required]
+ * @param $error_array[required]
+ * @param $timeout[optional]
+ * @return mixed
+ */
+function swoole_client_select(&$read_array, &$write_array, &$error_array, $timeout = null) {}
+
+/**
+ * @param $read_array[required]
+ * @param $write_array[required]
+ * @param $error_array[required]
+ * @param $timeout[optional]
+ * @return mixed
+ */
+function swoole_select(&$read_array, &$write_array, &$error_array, $timeout = null) {}
+
+/**
+ * @param $process_name[required]
+ * @return mixed
+ */
+function swoole_set_process_name($process_name) {}
+
+/**
+ * @return mixed
+ */
+function swoole_get_local_ip() {}
+
+/**
+ * @return mixed
+ */
+function swoole_get_local_mac() {}
+
+/**
+ * @param $errno[required]
+ * @param $error_type[optional]
+ * @return mixed
+ */
+function swoole_strerror($errno, $error_type = null) {}
+
+/**
+ * @return mixed
+ */
+function swoole_errno() {}
+
+/**
+ * @return mixed
+ */
+function swoole_clear_error() {}
+
+/**
+ * @return void
+ */
+function swoole_error_log(int $level, string $msg) {}
+
+/**
+ * @return void
+ * @since 4.8.1
+ */
+function swoole_error_log_ex(int $level, int $error, string $msg) {}
+
+/**
+ * @return void
+ * @since 4.8.1
+ */
+function swoole_ignore_error(int $error) {}
+
+/**
+ * @param $data[required]
+ * @param $type[optional]
+ * @return mixed
+ */
+function swoole_hashcode($data, $type = null) {}
+
+/**
+ * @param $suffix[required]
+ * @param $mime_type[required]
+ * @return mixed
+ */
+function swoole_mime_type_add($suffix, $mime_type) {}
+
+/**
+ * @param $suffix[required]
+ * @param $mime_type[required]
+ * @return mixed
+ */
+function swoole_mime_type_set($suffix, $mime_type) {}
+
+/**
+ * @param $suffix[required]
+ * @return mixed
+ */
+function swoole_mime_type_delete($suffix) {}
+
+/**
+ * @param $filename[required]
+ * @return mixed
+ */
+function swoole_mime_type_get($filename) {}
+
+/**
+ * @param $filename[required]
+ * @return mixed
+ */
+function swoole_get_mime_type($filename) {}
+
+/**
+ * @param $filename[required]
+ * @return mixed
+ */
+function swoole_mime_type_exists($filename) {}
+
+/**
+ * @return mixed
+ */
+function swoole_mime_type_list() {}
+
+/**
+ * @return mixed
+ */
+function swoole_clear_dns_cache() {}
+
+/**
+ * @param $str[required]
+ * @param $offset[required]
+ * @param $length[optional]
+ * @param $options[optional]
+ * @return mixed
+ */
+function swoole_substr_unserialize($str, $offset, $length = null, $options = null) {}
+
+/**
+ * @param $json[required]
+ * @param $offset[required]
+ * @param $length[optional]
+ * @param $associative[optional]
+ * @param $depth[optional]
+ * @param $flags[optional]
+ * @return mixed
+ */
+function swoole_substr_json_decode($json, $offset, $length = null, $associative = null, $depth = null, $flags = null) {}
+
+/**
+ * @return mixed
+ */
+function swoole_internal_call_user_shutdown_begin() {}
+
+/**
+ * Get all PHP objects of current call stack.
+ *
+ * @return array|false Return an array of objects back; return FALSE when no objects exist or when error happens.
+ * @since 4.8.1
+ */
+function swoole_get_objects() {}
+
+/**
+ * Get status information of current call stack.
+ *
+ * @return array The array contains two fields: "object_num" (# of objects) and "resource_num" (# of resources).
+ * @since 4.8.1
+ */
+function swoole_get_vm_status() {}
+
+/**
+ * @return array|false Return the specified object back; return FALSE when no object found or when error happens.
+ * @since 4.8.1
+ */
+function swoole_get_object_by_handle(int $handle) {}
+
+/**
+ * This function is an alias of function swoole_coroutine_create(); it's available only when directive
+ * "swoole.use_shortname" is not explicitly turned off.
+ *
+ * @return int|false
+ * @see swoole_coroutine_create()
+ */
+function go(callable $func, ...$params) {}
+
+/**
+ * Defers the execution of a callback function until the surrounding function of a coroutine returns.
+ *
+ * This function is an alias of function swoole_coroutine_defer(); it's available only when directive
+ * "swoole.use_shortname" is not explicitly turned off.
+ *
+ * @return void
+ * @see swoole_coroutine_defer()
+ *
+ * @example
+ *
+ * go(function () { // The surrounding function of a coroutine.
+ * echo '1';
+ * defer(function () { // The callback function to be deferred.
+ * echo '3';
+ * });
+ * echo '2';
+ * });
+ *
+ */
+function defer(callable $callback) {}
+
+/**
+ * @param $fd[required]
+ * @param $read_callback[required]
+ * @param $write_callback[optional]
+ * @param $events[optional]
+ * @return mixed
+ */
+function swoole_event_add($fd, $read_callback, $write_callback = null, $events = null) {}
+
+/**
+ * @param $fd[required]
+ * @return mixed
+ */
+function swoole_event_del($fd) {}
+
+/**
+ * @param $fd[required]
+ * @param $read_callback[optional]
+ * @param $write_callback[optional]
+ * @param $events[optional]
+ * @return mixed
+ */
+function swoole_event_set($fd, $read_callback = null, $write_callback = null, $events = null) {}
+
+/**
+ * @param $fd[required]
+ * @param $events[optional]
+ * @return mixed
+ */
+function swoole_event_isset($fd, $events = null) {}
+
+/**
+ * @return mixed
+ */
+function swoole_event_dispatch() {}
+
+/**
+ * This function is an alias of method \Swoole\Event::defer().
+ *
+ * @return true
+ * @see \Swoole\Event::defer()
+ */
+function swoole_event_defer(callable $callback) {}
+
+/**
+ * @param $callback[required]
+ * @param $before[optional]
+ * @return mixed
+ */
+function swoole_event_cycle($callback, $before = null) {}
+
+/**
+ * @param $fd[required]
+ * @param $data[required]
+ * @return mixed
+ */
+function swoole_event_write($fd, $data) {}
+
+/**
+ * @return mixed
+ */
+function swoole_event_wait() {}
+
+/**
+ * @return mixed
+ */
+function swoole_event_exit() {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::set().
+ *
+ * @return void
+ * @see \Swoole\Timer::set()
+ */
+function swoole_timer_set(array $settings) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::after().
+ *
+ * @return int
+ * @see \Swoole\Timer::after()
+ */
+function swoole_timer_after(int $ms, callable $callback, ...$params) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::tick().
+ *
+ * @return int
+ * @see \Swoole\Timer::tick()
+ */
+function swoole_timer_tick(int $ms, callable $callback, ...$params) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::exists().
+ *
+ * @return bool
+ * @see \Swoole\Timer::exists()
+ */
+function swoole_timer_exists(int $timer_id) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::info().
+ *
+ * @return array
+ * @see \Swoole\Timer::info()
+ */
+function swoole_timer_info(int $timer_id) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::stats().
+ *
+ * @return array
+ * @see \Swoole\Timer::stats()
+ */
+function swoole_timer_stats() {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::list().
+ *
+ * @return \Swoole\timer\Iterator
+ * @see \Swoole\Timer::list()
+ */
+function swoole_timer_list() {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::clear().
+ *
+ * @return bool
+ * @see \Swoole\Timer::clear()
+ */
+function swoole_timer_clear(int $timer_id) {}
+
+/**
+ * This function is an alias of method \Swoole\Timer::clearAll().
+ *
+ * @return bool
+ * @see \Swoole\Timer::clearAll()
+ */
+function swoole_timer_clear_all() {}
diff --git a/phpstorm-stubs/sybase/sybase_ct.php b/phpstorm-stubs/sybase/sybase_ct.php
new file mode 100644
index 0000000..d8a462b
--- /dev/null
+++ b/phpstorm-stubs/sybase/sybase_ct.php
@@ -0,0 +1,225 @@
+
+ * Message queue numeric ID
+ *
+ * @param int $permissions [optional]
+ * Queue permissions. Default to 0666. If the message queue already
+ * exists, the perms will be ignored.
+ *
+ * @return resource|SysvMessageQueue|false a resource handle that can be used to access the System V message queue.
+ */
+#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue|false"], default: "resource|false")]
+function msg_get_queue(int $key, int $permissions = 0666) {}
+
+/**
+ * Send a message to a message queue
+ * @link https://php.net/manual/en/function.msg-send.php
+ * @param SysvMessageQueue|resource $queue
+ * @param int $message_type
+ * @param mixed $message
+ * @param bool $serialize [optional]
+ * The optional serialize controls how the
+ * message is sent. serialize
+ * defaults to TRUE which means that the message is
+ * serialized using the same mechanism as the session module before being
+ * sent to the queue. This allows complex arrays and objects to be sent to
+ * other PHP scripts, or if you are using the WDDX serializer, to any WDDX
+ * compatible client.
+ *
+ * @param bool $blocking [optional]
+ * If the message is too large to fit in the queue, your script will wait
+ * until another process reads messages from the queue and frees enough
+ * space for your message to be sent.
+ * This is called blocking; you can prevent blocking by setting the
+ * optional blocking parameter to FALSE, in which
+ * case msg_send will immediately return FALSE if the
+ * message is too big for the queue, and set the optional
+ * errorcode to MSG_EAGAIN,
+ * indicating that you should try to send your message again a little
+ * later on.
+ *
+ * @param int &$error_code [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * Upon successful completion the message queue data structure is updated as
+ * follows: msg_lspid is set to the process-ID of the
+ * calling process, msg_qnum is incremented by 1 and
+ * msg_stime is set to the current time.
+ *
+ */
+function msg_send(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, int $message_type, $message, bool $serialize = true, bool $blocking = true, &$error_code): bool {}
+
+/**
+ * Receive a message from a message queue
+ * @link https://php.net/manual/en/function.msg-receive.php
+ * @param SysvMessageQueue|resource $queue
+ * @param int $desired_message_type
+ * If desiredmsgtype is 0, the message from the front
+ * of the queue is returned. If desiredmsgtype is
+ * greater than 0, then the first message of that type is returned.
+ * If desiredmsgtype is less than 0, the first
+ * message on the queue with the lowest type less than or equal to the
+ * absolute value of desiredmsgtype will be read.
+ * If no messages match the criteria, your script will wait until a suitable
+ * message arrives on the queue. You can prevent the script from blocking
+ * by specifying MSG_IPC_NOWAIT in the
+ * flags parameter.
+ *
+ * @param int &$received_message_type
+ * The type of the message that was received will be stored in this
+ * parameter.
+ *
+ * @param int $max_message_size
+ * The maximum size of message to be accepted is specified by the
+ * maxsize; if the message in the queue is larger
+ * than this size the function will fail (unless you set
+ * flags as described below).
+ *
+ * @param mixed &$message
+ * The received message will be stored in message,
+ * unless there were errors receiving the message.
+ *
+ * @param bool $unserialize [optional]
+ * If set to
+ * TRUE, the message is treated as though it was serialized using the
+ * same mechanism as the session module. The message will be unserialized
+ * and then returned to your script. This allows you to easily receive
+ * arrays or complex object structures from other PHP scripts, or if you
+ * are using the WDDX serializer, from any WDDX compatible source.
+ *
+ *
+ * If unserialize is FALSE, the message will be
+ * returned as a binary-safe string.
+ *
+ * @param int $flags [optional]
+ * The optional flags allows you to pass flags to the
+ * low-level msgrcv system call. It defaults to 0, but you may specify one
+ * or more of the following values (by adding or ORing them together).
+ *
+ * Flag values for msg_receive
+ *
+ * MSG_IPC_NOWAIT
+ * If there are no messages of the
+ * desiredmsgtype, return immediately and do not
+ * wait. The function will fail and return an integer value
+ * corresponding to MSG_ENOMSG.
+ *
+ *
+ *
+ * MSG_EXCEPT
+ * Using this flag in combination with a
+ * desiredmsgtype greater than 0 will cause the
+ * function to receive the first message that is not equal to
+ * desiredmsgtype.
+ *
+ *
+ * MSG_NOERROR
+ *
+ * If the message is longer than maxsize,
+ * setting this flag will truncate the message to
+ * maxsize and will not signal an error.
+ *
+ *
+ *
+ *
+ * @param int $error_code [optional]
+ * If the function fails, the optional errorcode
+ * will be set to the value of the system errno variable.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * Upon successful completion the message queue data structure is updated as
+ * follows: msg_lrpid is set to the process-ID of the
+ * calling process, msg_qnum is decremented by 1 and
+ * msg_rtime is set to the current time.
+ *
+ */
+function msg_receive(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, int $desired_message_type, &$received_message_type, int $max_message_size, mixed &$message, bool $unserialize = true, int $flags = 0, &$error_code): bool {}
+
+/**
+ * Destroy a message queue
+ * @link https://php.net/manual/en/function.msg-remove-queue.php
+ * @param SysvMessageQueue|resource $queue
+ * Message queue resource handle
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function msg_remove_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue): bool {}
+
+/**
+ * Returns information from the message queue data structure
+ * @link https://php.net/manual/en/function.msg-stat-queue.php
+ * @param SysvMessageQueue|resource $queue
+ * Message queue resource handle
+ *
+ * @return array|false The return value is an array whose keys and values have the following
+ * meanings:
+ *
+ * Array structure for msg_stat_queue
+ *
+ * msg_perm.uid
+ *
+ * The uid of the owner of the queue.
+ *
+ *
+ *
+ * msg_perm.gid
+ *
+ * The gid of the owner of the queue.
+ *
+ *
+ *
+ * msg_perm.mode
+ *
+ * The file access mode of the queue.
+ *
+ *
+ *
+ * msg_stime
+ *
+ * The time that the last message was sent to the queue.
+ *
+ *
+ *
+ * msg_rtime
+ *
+ * The time that the last message was received from the queue.
+ *
+ *
+ *
+ * msg_ctime
+ *
+ * The time that the queue was last changed.
+ *
+ *
+ *
+ * msg_qnum
+ *
+ * The number of messages waiting to be read from the queue.
+ *
+ *
+ *
+ * msg_qbytes
+ *
+ * The maximum number of bytes allowed in one message queue. On
+ * Linux, this value may be read and modified via
+ * /proc/sys/kernel/msgmnb.
+ *
+ *
+ *
+ * msg_lspid
+ *
+ * The pid of the process that sent the last message to the queue.
+ *
+ *
+ *
+ * msg_lrpid
+ *
+ * The pid of the process that received the last message from the queue.
+ *
+ *
+ *
+ */
+#[ArrayShape([
+ "msg_perm.uid" => "int",
+ "msg_perm.gid" => "int",
+ "msg_perm.mode" => "int",
+ "msg_stime" => "int",
+ "msg_rtime" => "int",
+ "msg_ctime" => "int",
+ "msg_qnum" => "int",
+ "msg_qbytes" => "int",
+ "msg_lspid" => "int",
+ "msg_lrpid" => "int",
+])]
+function msg_stat_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue): array|false {}
+
+/**
+ * Set information in the message queue data structure
+ * @link https://php.net/manual/en/function.msg-set-queue.php
+ * @param SysvMessageQueue|resource $queue
+ * Message queue resource handle
+ *
+ * @param array $data
+ * You specify the values you require by setting the value of the keys
+ * that you require in the data array.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function msg_set_queue(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], default: "resource")] $queue, array $data): bool {}
+
+/**
+ * Check whether a message queue exists
+ * @link https://php.net/manual/en/function.msg-queue-exists.php
+ * @param int $key
+ * Queue key.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function msg_queue_exists(int $key): bool {}
+
+define('MSG_IPC_NOWAIT', 1);
+define('MSG_EAGAIN', 11);
+define('MSG_ENOMSG', 42);
+define('MSG_NOERROR', 2);
+define('MSG_EXCEPT', 4);
+
+/**
+ * @since 8.0
+ */
+final class SysvMessageQueue
+{
+ /**
+ * Cannot directly construct SysvMessageQueue, use msg_get_queue() instead
+ * @see msg_get_queue()
+ */
+ private function __construct() {}
+}
+
+// End of sysvmsg v.
diff --git a/phpstorm-stubs/sysvsem/sysvsem.php b/phpstorm-stubs/sysvsem/sysvsem.php
new file mode 100644
index 0000000..0623c27
--- /dev/null
+++ b/phpstorm-stubs/sysvsem/sysvsem.php
@@ -0,0 +1,79 @@
+
+ * The number of processes that can acquire the semaphore simultaneously
+ * is set to max_acquire.
+ *
+ * @param int $permissions [optional]
+ * The semaphore permissions. Actually this value is
+ * set only if the process finds it is the only process currently
+ * attached to the semaphore.
+ *
+ * @param bool $auto_release [optional]
+ * Specifies if the semaphore should be automatically released on request
+ * shutdown.
+ *
+ * @return resource|false|SysvSemaphore a positive semaphore identifier on success, or FALSE on
+ * error.
+ */
+#[LanguageLevelTypeAware(["8.0" => "SysvSemaphore|false"], default: "resource|false")]
+function sem_get(int $key, int $max_acquire = 1, int $permissions = 0666, bool $auto_release = true) {}
+
+/**
+ * Acquire a semaphore
+ * @link https://php.net/manual/en/function.sem-acquire.php
+ * @param SysvSemaphore|resource $semaphore
+ * sem_identifier is a semaphore resource,
+ * obtained from sem_get.
+ *
+ * @param bool $non_blocking [optional]
+ * Specifies if the process shouldn't wait for the semaphore to be acquired.
+ * If set to true, the call will return false immediately if a
+ * semaphore cannot be immediately acquired.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function sem_acquire(#[LanguageLevelTypeAware(["8.0" => "SysvSemaphore"], default: "resource")] $semaphore, bool $non_blocking = false): bool {}
+
+/**
+ * Release a semaphore
+ * @link https://php.net/manual/en/function.sem-release.php
+ * @param SysvSemaphore|resource $semaphore
+ * A Semaphore resource handle as returned by
+ * sem_get.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function sem_release(#[LanguageLevelTypeAware(["8.0" => "SysvSemaphore"], default: "resource")] $semaphore): bool {}
+
+/**
+ * Remove a semaphore
+ * @link https://php.net/manual/en/function.sem-remove.php
+ * @param SysvSemaphore|resource $semaphore
+ * A semaphore resource identifier as returned
+ * by sem_get.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function sem_remove(#[LanguageLevelTypeAware(["8.0" => "SysvSemaphore"], default: "resource")] $semaphore): bool {}
+
+/**
+ * @since 8.0
+ */
+final class SysvSemaphore
+{
+ /**
+ * Cannot directly construct SysvSemaphore, use sem_get() instead
+ * @see sem_get()
+ */
+ private function __construct() {}
+}
+
+// End of sysvsem v.
diff --git a/phpstorm-stubs/sysvshm/sysvshm.php b/phpstorm-stubs/sysvshm/sysvshm.php
new file mode 100644
index 0000000..8cfddfc
--- /dev/null
+++ b/phpstorm-stubs/sysvshm/sysvshm.php
@@ -0,0 +1,119 @@
+
+ * A numeric shared memory segment ID
+ *
+ * @param int|null $size [optional]
+ * The memory size. If not provided, default to the
+ * sysvshm.init_mem in the php.ini, otherwise 10000
+ * bytes.
+ *
+ * @param int $permissions [optional]
+ * The optional permission bits. Default to 0666.
+ *
+ * @return resource|SysvSharedMemory|false a shared memory segment identifier.
+ */
+#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory|false"], default: "resource|false")]
+function shm_attach(int $key, ?int $size, int $permissions = 0666) {}
+
+/**
+ * Removes shared memory from Unix systems
+ * @link https://php.net/manual/en/function.shm-remove.php
+ * @param SysvSharedMemory $shm
+ * The shared memory identifier as returned by
+ * shm_attach
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function shm_remove(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm): bool {}
+
+/**
+ * Disconnects from shared memory segment
+ * @link https://php.net/manual/en/function.shm-detach.php
+ * @param SysvSharedMemory $shm
+ * A shared memory resource handle as returned by
+ * shm_attach
+ *
+ * @return bool shm_detach always returns TRUE.
+ */
+function shm_detach(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm): bool {}
+
+/**
+ * Inserts or updates a variable in shared memory
+ * @link https://php.net/manual/en/function.shm-put-var.php
+ * @param SysvSharedMemory $shm
+ * A shared memory resource handle as returned by
+ * shm_attach
+ *
+ * @param int $key
+ * The variable key.
+ *
+ * @param mixed $value
+ * The variable. All variable types
+ * that serialize supports may be used: generally
+ * this means all types except for resources and some internal objects
+ * that cannot be serialized.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function shm_put_var(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm, int $key, mixed $value): bool {}
+
+/**
+ * Check whether a specific entry exists
+ * @link https://php.net/manual/en/function.shm-has-var.php
+ * @param SysvSharedMemory $shm
+ * Shared memory segment, obtained from shm_attach.
+ *
+ * @param int $key
+ * The variable key.
+ *
+ * @return bool TRUE if the entry exists, otherwise FALSE
+ */
+function shm_has_var(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm, int $key): bool {}
+
+/**
+ * Returns a variable from shared memory
+ * @link https://php.net/manual/en/function.shm-get-var.php
+ * @param SysvSharedMemory $shm
+ * Shared memory segment, obtained from shm_attach.
+ *
+ * @param int $key
+ * The variable key.
+ *
+ * @return mixed the variable with the given key.
+ */
+function shm_get_var(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm, int $key): mixed {}
+
+/**
+ * Removes a variable from shared memory
+ * @link https://php.net/manual/en/function.shm-remove-var.php
+ * @param SysvSharedMemory $shm
+ * The shared memory identifier as returned by
+ * shm_attach
+ *
+ * @param int $key
+ * The variable key.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function shm_remove_var(#[LanguageLevelTypeAware(["8.0" => "SysvSharedMemory"], default: "resource")] $shm, int $key): bool {}
+
+/**
+ * @since 8.0
+ */
+final class SysvSharedMemory
+{
+ /**
+ * Cannot directly construct SysvSharedMemory, use shm_attach() instead
+ * @see shm_attach()
+ */
+ private function __construct() {}
+}
+
+// End of sysvshm v.
diff --git a/phpstorm-stubs/tests/.phpstorm.meta.php b/phpstorm-stubs/tests/.phpstorm.meta.php
new file mode 100644
index 0000000..cb35006
--- /dev/null
+++ b/phpstorm-stubs/tests/.phpstorm.meta.php
@@ -0,0 +1,4 @@
+name;
+ if ($defaultValueName !== 'false' && $defaultValueName !== 'true' && $defaultValueName !== 'null') {
+ $constant = PhpStormStubsSingleton::getPhpStormStubs()->getConstant($defaultValueName);
+ $value = $constant->value;
+ } else {
+ $value = $defaultValueName;
+ }
+ } elseif ($defaultValue instanceof String_ || $defaultValue instanceof LNumber || $defaultValue instanceof DNumber) {
+ $value = strval($defaultValue->value);
+ } elseif ($defaultValue instanceof BitwiseOr) {
+ if ($defaultValue->left instanceof ConstFetch && $defaultValue->right instanceof ConstFetch) {
+ $constants = array_filter(
+ PhpStormStubsSingleton::getPhpStormStubs()->getConstants(),
+ fn (PHPConst $const) => property_exists($defaultValue->left, 'name') &&
+ $const->name === (string)$defaultValue->left->name
+ );
+ /** @var PHPConst $leftConstant */
+ $leftConstant = array_pop($constants);
+ $constants = array_filter(
+ PhpStormStubsSingleton::getPhpStormStubs()->getConstants(),
+ fn (PHPConst $const) => property_exists($defaultValue->right, 'name') &&
+ $const->name === (string)$defaultValue->right->name
+ );
+ /** @var PHPConst $rightConstant */
+ $rightConstant = array_pop($constants);
+ $value = $leftConstant->value|$rightConstant->value;
+ } elseif ($defaultValue->left instanceof ClassConstFetch && $defaultValue->right instanceof ClassConstFetch){
+ $leftClass = $defaultValue->left->class->toString();
+ $rightClass = $defaultValue->right->class->toString();
+ $leftClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($leftClass);
+ $rightClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($rightClass);
+ if ($leftClass === null || $rightClass === null) {
+ throw new Exception("Class $leftClass->name or $rightClass->name not found in stubs");
+ }
+ $leftConstant = $leftClass->getConstant((string)$defaultValue->left->name);
+ $rightConstant = $rightClass->getConstant((string)$defaultValue->right->name);
+ $value = $leftConstant->value|$rightConstant->value;
+ }
+ } elseif ($defaultValue instanceof UnaryMinus && property_exists($defaultValue->expr, 'value')) {
+ $value = '-' . $defaultValue->expr->value;
+ } elseif ($defaultValue instanceof ClassConstFetch) {
+ $class = (string)$defaultValue->class;
+ if ($class === 'self' && $contextClass !== null) {
+ $class = $contextClass->name;
+ }
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($class) ??
+ PhpStormStubsSingleton::getPhpStormStubs()->getClass($class) ??
+ PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class);
+ if ($parentClass === null) {
+ throw new Exception("Class $class not found in stubs");
+ }
+ if ($parentClass instanceof PHPEnum) {
+ $value = $parentClass->name . "::" . $defaultValue->name;
+ } elseif ((string)$defaultValue->name === 'class') {
+ $value = (string)$defaultValue->class;
+ } else {
+ $constant = $parentClass->getConstant((string)$defaultValue->name);;
+ $value = $constant->value;
+ }
+ } elseif ($defaultValue === null) {
+ $value = "null";
+ } elseif (is_array($defaultValue) || $defaultValue instanceof Array_) {
+ $value = '[]';
+ } elseif ($defaultValue instanceof \UnitEnum){
+ $value = get_class($defaultValue) . "::" . $defaultValue->name;
+ } else {
+ $value = strval($defaultValue);
+ }
+ return $value;
+ }
+
+ public static function getParameterRepresentation(PHPFunction $function): string
+ {
+ $result = '';
+ foreach ($function->parameters as $parameter) {
+ $types = array_unique($parameter->typesFromSignature + Model\CommonUtils::flattenArray($parameter->typesFromAttribute, false));
+ if (!empty($types)) {
+ $result .= implode('|', $types) . ' ';
+ }
+ if ($parameter->is_passed_by_ref) {
+ $result .= '&';
+ }
+ if ($parameter->is_vararg) {
+ $result .= '...';
+ }
+ $result .= '$' . $parameter->name . ', ';
+ }
+ return rtrim($result, ', ');
+ }
+
+ /**
+ * @param PHPFunction[] $filtered
+ * @return PHPFunction[]
+ * @throws RuntimeException
+ */
+ protected static function getDuplicatedFunctions(array $filtered): array
+ {
+ $duplicatedFunctions = array_filter($filtered, function (PHPFunction $value, int|string $key) {
+ $duplicatesOfFunction = self::getAllDuplicatesOfFunction($value->name);
+ $functionVersions[] = ParserUtils::getAvailableInVersions(
+ PhpStormStubsSingleton::getPhpStormStubs()->getFunction($value->name, shouldSuitCurrentPhpVersion: false)
+ );
+ array_push($functionVersions, ...array_values(array_map(
+ fn (PHPFunction $function) => ParserUtils::getAvailableInVersions($function),
+ $duplicatesOfFunction
+ )));
+ $hasDuplicates = false;
+ $current = array_pop($functionVersions);
+ $next = array_pop($functionVersions);
+ while ($next !== null) {
+ if (!empty(array_intersect($current, $next))) {
+ $hasDuplicates = true;
+ }
+ $current = array_merge($current, $next);
+ $next = array_pop($functionVersions);
+ }
+ return $hasDuplicates;
+ }, ARRAY_FILTER_USE_BOTH);
+ return array_unique(array_map(fn (PHPFunction $function) => $function->name, $duplicatedFunctions));
+ }
+
+ /**
+ * @return PHPFunction[]
+ */
+ protected static function getAllDuplicatesOfFunction(?string $name): array
+ {
+ return array_filter(
+ PhpStormStubsSingleton::getPhpStormStubs()->getFunctions(),
+ fn ($duplicateValue, $duplicateKey) => $duplicateValue->name === $name && str_contains($duplicateKey, 'duplicated'),
+ ARRAY_FILTER_USE_BOTH
+ );
+ }
+
+ /**
+ * @param string[] $reflectionTypes
+ * @param string[] $typesFromSignature
+ */
+ public static function isReflectionTypesMatchSignature(array $reflectionTypes, array $typesFromSignature): bool
+ {
+ return empty(array_merge(
+ array_diff($reflectionTypes, $typesFromSignature),
+ array_diff($typesFromSignature, $reflectionTypes)
+ ));
+ }
+
+ /**
+ * @param string[] $reflectionTypes
+ * @param string[] $typesFromAttribute
+ */
+ public static function isReflectionTypesExistInAttributes(array $reflectionTypes, array $typesFromAttribute): bool
+ {
+ return empty(array_merge(
+ array_diff($reflectionTypes, array_filter($typesFromAttribute, fn ($type) => !empty($type))),
+ array_diff(array_filter($typesFromAttribute, fn ($type) => !empty($type)), $reflectionTypes)
+ ));
+ }
+
+ /**
+ * @param string[][] $typesFromAttribute
+ */
+ public static function getStringRepresentationOfTypeHintsFromAttributes(array $typesFromAttribute): string
+ {
+ $resultString = '';
+ foreach ($typesFromAttribute as $types) {
+ $resultString .= '[' . implode('|', $types) . ']';
+ }
+ return $resultString;
+ }
+
+ /**
+ * @param string[] $typesToProcess
+ * @param string[] $resultArray
+ */
+ public static function convertNullableTypesToUnion(array $typesToProcess, array &$resultArray)
+ {
+ array_walk($typesToProcess, function (string $type) use (&$resultArray) {
+ if (str_contains($type, '?')) {
+ array_push($resultArray, 'null', ltrim($type, '?'));
+ } else {
+ $resultArray[] = $type;
+ }
+ });
+ }
+}
diff --git a/phpstorm-stubs/tests/BaseClassesTest.php b/phpstorm-stubs/tests/BaseClassesTest.php
new file mode 100644
index 0000000..a11d42d
--- /dev/null
+++ b/phpstorm-stubs/tests/BaseClassesTest.php
@@ -0,0 +1,301 @@
+name;
+ if ($class instanceof PHPClass) {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className);
+ static::assertEquals(
+ $class->parentClass,
+ $stubClass->parentClass,
+ empty($class->parentClass) ? "Class $className should not extend $stubClass->parentClass" :
+ "Class $className should extend $class->parentClass"
+ );
+ } else {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className);
+ foreach ($class->parentInterfaces as $parentInterface) {
+ static::assertContains(
+ $parentInterface,
+ $stubClass->parentInterfaces,
+ "Interface $className should extend $parentInterface"
+ );
+ }
+ }
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classMethodsProvider')]
+ public function testClassesMethodsExist(PHPClass|PHPInterface|PHPEnum $class, PHPMethod $method)
+ {
+ $className = $class->name;
+ if ($class instanceof PHPEnum) {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($className);
+ } elseif ($class instanceof PHPClass) {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className);
+ } else {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className);
+ }
+ static::assertNotEmpty($stubClass->getMethod($method->name), "Missing method $className::$method->name");
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classFinalMethodsProvider')]
+ public function testClassesFinalMethods(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $className = $class->name;
+ if ($class instanceof PHPEnum) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($className)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($method->name);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($method->name);
+ }
+ static::assertEquals(
+ $method->isFinal,
+ $stubMethod->isFinal,
+ "Method $className::$method->name final modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classStaticMethodsProvider')]
+ public function testClassesStaticMethods(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $className = $class->name;
+ if ($class instanceof PHPEnum) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($className)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($method->name);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($method->name);
+ }
+ static::assertEquals(
+ $method->isStatic,
+ $stubMethod->isStatic,
+ "Method $className::$method->name static modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classMethodsWithAccessProvider')]
+ public function testClassesMethodsVisibility(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $className = $class->name;
+ if ($class instanceof PHPEnum) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($className)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($method->name);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($method->name);
+ }
+ static::assertEquals(
+ $method->access,
+ $stubMethod->access,
+ "Method $className::$method->name access modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classMethodsWithParametersProvider')]
+ public function testClassMethodsParametersCount(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $className = $class->name;
+ if ($class instanceof PHPEnum) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($className)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($method->name);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($method->name);
+ }
+ $filteredStubParameters = array_filter(
+ $stubMethod->parameters,
+ function ($parameter) {
+ if (!empty($parameter->availableVersionsRangeFromAttribute)) {
+ return $parameter->availableVersionsRangeFromAttribute['from'] <= (doubleval(getenv('PHP_VERSION') ?? PhpVersions::getFirst()))
+ && $parameter->availableVersionsRangeFromAttribute['to'] >= (doubleval(getenv('PHP_VERSION')) ?? PhpVersions::getLatest());
+ } else {
+ return true;
+ }
+ }
+ );
+ static::assertSameSize(
+ $method->parameters,
+ $filteredStubParameters,
+ "Parameter number mismatch for method $className::$method->name.
+ Expected: " . self::getParameterRepresentation($method)
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionClassesTestDataProviders::class, 'classesWithInterfacesProvider')]
+ public function testClassInterfaces(PHPClass $class)
+ {
+ $className = $class->name;
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name, shouldSuitCurrentPhpVersion: false);
+ foreach ($class->interfaces as $interface) {
+ static::assertContains(
+ $interface,
+ $stubClass->interfaces,
+ "Class $className doesn't implement interface $interface"
+ );
+ }
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionPropertiesProvider::class, 'classPropertiesProvider')]
+ public function testClassProperties(PHPClass $class, PHPProperty $property)
+ {
+ $className = $class->name;
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name);
+ static::assertNotEmpty($stubClass->getProperty($property->name), "Missing property $property->access "
+ . implode('|', $property->typesFromSignature) .
+ "$className::$$property->name");
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionPropertiesProvider::class, 'classStaticPropertiesProvider')]
+ public function testClassStaticProperties(PHPClass $class, PHPProperty $property)
+ {
+ $className = $class->name;
+ $stubProperty = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getProperty($property->name);
+ static::assertEquals(
+ $property->is_static,
+ $stubProperty->is_static,
+ "Property $className::$property->name static modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionPropertiesProvider::class, 'classPropertiesWithAccessProvider')]
+ public function testClassPropertiesVisibility(PHPClass $class, PHPProperty $property)
+ {
+ $className = $class->name;
+ $stubProperty = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getProperty($property->name);
+ static::assertEquals(
+ $property->access,
+ $stubProperty->access,
+ "Property $className::$property->name access modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionPropertiesProvider::class, 'classPropertiesWithTypeProvider')]
+ public function testClassPropertiesType(PHPClass $class, PHPProperty $property)
+ {
+ $className = $class->name;
+ $stubProperty = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getProperty($property->name);
+ $propertyName = $stubProperty->name;
+ $unifiedStubsPropertyTypes = [];
+ $unifiedStubsAttributesPropertyTypes = [];
+ $unifiedReflectionPropertyTypes = [];
+ self::convertNullableTypesToUnion($property->typesFromSignature, $unifiedReflectionPropertyTypes);
+ if (!empty($stubProperty->typesFromSignature)) {
+ self::convertNullableTypesToUnion($stubProperty->typesFromSignature, $unifiedStubsPropertyTypes);
+ }
+ foreach ($stubProperty->typesFromAttribute as $languageVersion => $listOfTypes) {
+ $unifiedStubsAttributesPropertyTypes[$languageVersion] = [];
+ self::convertNullableTypesToUnion($listOfTypes, $unifiedStubsAttributesPropertyTypes[$languageVersion]);
+ }
+ $typesFromAttribute = [];
+ $testCondition = self::isReflectionTypesMatchSignature($unifiedReflectionPropertyTypes, $unifiedStubsPropertyTypes);
+ if (!$testCondition) {
+ if (!empty($unifiedStubsAttributesPropertyTypes)) {
+ $typesFromAttribute = !empty($unifiedStubsAttributesPropertyTypes[getenv('PHP_VERSION')]) ?
+ $unifiedStubsAttributesPropertyTypes[getenv('PHP_VERSION')] :
+ $unifiedStubsAttributesPropertyTypes['default'];
+ $testCondition = self::isReflectionTypesExistInAttributes($unifiedReflectionPropertyTypes, $typesFromAttribute);
+ }
+ }
+ self::assertTrue($testCondition, "Property $className::$propertyName has invalid typehint.
+ Reflection property has type " . implode('|', $unifiedReflectionPropertyTypes) . ' but stubs has type ' .
+ implode('|', $unifiedStubsPropertyTypes) . ' in signature and attribute has types ' .
+ implode('|', $typesFromAttribute));
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionClassesTestDataProviders::class, 'allClassesProvider')]
+ public function testClassesExist(PHPClass|PHPInterface $class): void
+ {
+ $className = $class->name;
+ if ($class instanceof PHPClass) {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className);
+ } else {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className);
+ }
+ static::assertNotEmpty($stubClass, "Missing class $className: class $className {}");
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionClassesTestDataProviders::class, 'finalClassesProvider')]
+ public function testClassesFinal(PHPClass|PHPInterface $class): void
+ {
+ $className = $class->name;
+ if ($class instanceof PHPClass) {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className);
+ } else {
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className);
+ }
+ static::assertEquals($class->isFinal, $stubClass->isFinal, "Final modifier of class $className is incorrect");
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionClassesTestDataProviders::class, 'readonlyClassesProvider')]
+ public function testClassesReadonly(?PHPClass $class): void
+ {
+ $className = $class->name;
+ $stubClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className);
+ static::assertEquals(
+ $class->isReadonly,
+ $stubClass->isReadonly,
+ "Readonly modifier for class $className is incorrect"
+ );
+ }
+}
diff --git a/phpstorm-stubs/tests/BaseConstantsTest.php b/phpstorm-stubs/tests/BaseConstantsTest.php
new file mode 100644
index 0000000..20cef50
--- /dev/null
+++ b/phpstorm-stubs/tests/BaseConstantsTest.php
@@ -0,0 +1,70 @@
+name;
+ $constantValue = $constant->value;
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getConstant($constantName);
+ static::assertNotEmpty(
+ $stubConstant,
+ "Missing constant: const $constantName = $constantValue\n"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionConstantsProvider::class, 'classConstantProvider')]
+ public function testClassConstants(PHPClass|PHPInterface $class, PHPConst $constant): void
+ {
+ $constantName = $constant->name;
+ $constantValue = $constant->value;
+ if ($class instanceof PHPClass) {
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getConstant($constantName);
+ } else {
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getConstant($constantName);
+ }
+ static::assertNotEmpty(
+ $stubConstant,
+ "Missing constant: const $constantName = $constantValue\n"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionConstantsProvider::class, 'classConstantProvider')]
+ public function testClassConstantsVisibility(PHPClass|PHPInterface $class, PHPConst $constant): void
+ {
+ $constantName = $constant->name;
+ $constantVisibility = $constant->visibility;
+ if ($class instanceof PHPClass) {
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getConstant($constantName);
+ } else {
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getConstant($constantName);
+ }
+ static::assertEquals(
+ $constantVisibility,
+ $stubConstant->visibility,
+ "Constant visibility mismatch: const $constantName \n
+ Expected visibility: $constantVisibility but was $stubConstant->visibility"
+ );
+ }
+}
diff --git a/phpstorm-stubs/tests/BaseFunctionsTest.php b/phpstorm-stubs/tests/BaseFunctionsTest.php
new file mode 100644
index 0000000..6db5df4
--- /dev/null
+++ b/phpstorm-stubs/tests/BaseFunctionsTest.php
@@ -0,0 +1,193 @@
+name;
+ $stubFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($functionName);
+ $params = AbstractBaseStubsTestCase::getParameterRepresentation($function);
+ static::assertNotEmpty($stubFunction, "Missing function: function $functionName($params){}");
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionFunctionsProvider::class, 'functionsForDeprecationTestsProvider')]
+ public function testFunctionsDeprecation(PHPFunction $function)
+ {
+ $functionName = $function->name;
+ $stubFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($functionName);
+ static::assertFalse(
+ $function->isDeprecated && $stubFunction->isDeprecated !== true,
+ "Function $functionName is not deprecated in stubs"
+ );
+ }
+
+ /**
+ * @throws Exception|RuntimeException
+ */
+ #[DataProviderExternal(ReflectionFunctionsProvider::class, 'functionsForParamsAmountTestsProvider')]
+ public function testFunctionsParametersAmount(PHPFunction $function)
+ {
+ $functionName = $function->name;
+ $stubFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($functionName);
+ $filteredStubParameters = array_filter(
+ $stubFunction->parameters,
+ fn ($parameter) => BasePHPElement::entitySuitsCurrentPhpVersion($parameter)
+ );
+ $uniqueParameterNames = array_unique(array_map(fn (PHPParameter $parameter) => $parameter->name, $filteredStubParameters));
+
+ static::assertSameSize(
+ $function->parameters,
+ $uniqueParameterNames,
+ "Parameter number mismatch for function $functionName.
+ Expected: " . AbstractBaseStubsTestCase::getParameterRepresentation($function) . "\n" .
+ 'Actual: ' . AbstractBaseStubsTestCase::getParameterRepresentation($stubFunction)
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function testFunctionsDuplicates()
+ {
+ $filtered = EntitiesFilter::getFiltered(
+ PhpStormStubsSingleton::getPhpStormStubs()->getFunctions(),
+ problemTypes: StubProblemType::HAS_DUPLICATION
+ );
+ $duplicates = self::getDuplicatedFunctions($filtered);
+ self::assertCount(
+ 0,
+ $duplicates,
+ "Functions \"" . implode(', ', $duplicates) .
+ "\" have duplicates in stubs.\nPlease use #[LanguageLevelTypeAware] or #[PhpStormStubsElementAvailable] if possible"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'functionOptionalParametersProvider')]
+ public function testFunctionsOptionalParameters(PHPFunction $function, PHPParameter $parameter)
+ {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($function->name);
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+ self::assertEquals(
+ $parameter->isOptional,
+ $stubOptionalParameter->isOptional,
+ sprintf(
+ 'Reflection function %s %s optional parameter %s with index %d
+ but stubs parameter %s with index %d %s',
+ $function->name,
+ $parameter->isOptional ? 'has' : 'has no',
+ $parameter->name,
+ $parameter->indexInSignature,
+ $stubOptionalParameter->name,
+ $stubOptionalParameter->indexInSignature,
+ $stubOptionalParameter->isOptional ? 'is optional' : 'is not optional'
+ )
+ );
+ self::assertEquals(
+ $parameter->is_vararg,
+ $stubOptionalParameter->is_vararg,
+ sprintf(
+ 'Reflection function %s %s vararg parameter %s with index %d
+ but stubs parameter %s with index %d %s',
+ $function->name,
+ $parameter->is_vararg ? 'has' : 'has no',
+ $parameter->name,
+ $parameter->indexInSignature,
+ $stubOptionalParameter->name,
+ $stubOptionalParameter->indexInSignature,
+ $stubOptionalParameter->is_vararg ? 'is vararg' : 'is not vararg'
+ )
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'methodOptionalParametersProvider')]
+ public function testMethodsOptionalParameters(PHPClass|PHPInterface $class, PHPMethod $method, PHPParameter $parameter)
+ {
+ if ($class instanceof PHPClass) {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getMethod($method->name);
+ } else {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getMethod($method->name);
+ }
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+ self::assertEquals(
+ $parameter->isOptional,
+ $stubOptionalParameter->isOptional,
+ sprintf(
+ 'Reflection method %s::%s has %s optional parameter %s with index %d but stub parameter %s with index %d is %s optional',
+ $class->name,
+ $method->name,
+ $parameter->isOptional ? "" : "not",
+ $parameter->name,
+ $parameter->indexInSignature,
+ $stubOptionalParameter->name,
+ $stubOptionalParameter->indexInSignature,
+ $stubOptionalParameter->isOptional ? "" : "not"
+ )
+ );
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testImplodeFunctionIsCorrect()
+ {
+ $implodeFunctions = array_filter(
+ PhpStormStubsSingleton::getPhpStormStubs()->getFunctions(),
+ fn (PHPFunction $function) => $function->name === 'implode'
+ );
+ self::assertCount(1, $implodeFunctions);
+ /** @var PHPFunction $implodeFunction */
+ $implodeFunction = array_pop($implodeFunctions);
+ $implodeParameters = $implodeFunction->parameters;
+ $separatorParameters = array_filter($implodeParameters, fn (PHPParameter $parameter) => $parameter->name === 'separator');
+ $arrayParameters = array_filter($implodeParameters, fn (PHPParameter $parameter) => $parameter->name === 'array');
+ /** @var PHPParameter $separatorParameter */
+ $separatorParameter = array_pop($separatorParameters);
+ /** @var PHPParameter $arrayParameter */
+ $arrayParameter = array_pop($arrayParameters);
+ self::assertCount(2, $implodeParameters);
+ self::assertEquals(['array', 'string'], $separatorParameter->typesFromSignature);
+ if (property_exists($separatorParameter->defaultValue, 'value')) {
+ self::assertEquals('', $separatorParameter->defaultValue->value);
+ } else {
+ self::fail("Couldn't read default value");
+ }
+ self::assertEquals(['?array'], $arrayParameter->typesFromSignature);
+ self::assertEquals(['string'], $implodeFunction->returnTypesFromSignature);
+ self::assertEquals(['string'], $implodeFunction->returnTypesFromPhpDoc);
+ }
+}
diff --git a/phpstorm-stubs/tests/CheckStubMapTest.php b/phpstorm-stubs/tests/CheckStubMapTest.php
new file mode 100644
index 0000000..2b47266
--- /dev/null
+++ b/phpstorm-stubs/tests/CheckStubMapTest.php
@@ -0,0 +1,41 @@
+assertFileEquals(
+ $this->newMapFile,
+ $this->oldMapFile,
+ 'The commited stub map is not up to date. Please regenerate it using ./generate-stub-map'
+ );
+ }
+
+ protected function setUp(): void
+ {
+ parent::setUp();
+
+ $this->newMapFile = tempnam(__DIR__ . '/../', 'stub');
+ $generator = escapeshellarg(__DIR__ . '/Tools/generate-stub-map');
+ $newStubMap = escapeshellarg($this->newMapFile);
+ exec("php $generator $newStubMap", $output, $exitCode);
+ if ($exitCode) {
+ $this->fail("PHP script $generator exited with code $exitCode: " . implode("\n", $output));
+ }
+ }
+
+ protected function tearDown(): void
+ {
+ parent::tearDown();
+
+ unlink($this->newMapFile);
+ }
+}
diff --git a/phpstorm-stubs/tests/CodeStyle/BracesOneLineFixer.php b/phpstorm-stubs/tests/CodeStyle/BracesOneLineFixer.php
new file mode 100644
index 0000000..b9b4cf1
--- /dev/null
+++ b/phpstorm-stubs/tests/CodeStyle/BracesOneLineFixer.php
@@ -0,0 +1,87 @@
+ $token) {
+ if (!$token->equals('{')) {
+ continue;
+ }
+ $braceStartIndex = $index;
+ $braceEndIndex = $tokens->getNextMeaningfulToken($index);
+
+ $token = $tokens[$braceEndIndex];
+ if ($token->equals('}')) {
+ $beforeBraceIndex = $tokens->getPrevNonWhitespace($braceStartIndex);
+ for ($i = $beforeBraceIndex + 1; $i <= $braceEndIndex; $i++) {
+ $tokens->clearAt($i);
+ }
+ if ($braceEndIndex - $beforeBraceIndex > 2) {
+ $tokens[$beforeBraceIndex + 1] = new Token(' ');
+ } else {
+ $tokens->insertAt($beforeBraceIndex + 1, new Token(' '));
+ }
+ $tokens[$beforeBraceIndex + 2] = new Token('{');
+ $tokens[$beforeBraceIndex + 3] = new Token('}');
+ }
+ }
+ }
+
+ public function getName(): string
+ {
+ return 'PhpStorm/braces_one_line';
+ }
+
+ public function getPriority(): int
+ {
+ return 0;
+ }
+
+ public function supports(SplFileInfo $file): bool
+ {
+ return true;
+ }
+
+ #[Pure]
+ public function getDefinition(): FixerDefinitionInterface
+ {
+ return new FixerDefinition(
+ "Braces of empty function's body should be placed on the same line",
+ [
+ new CodeSample(
+ <<> /usr/local/etc/php/conf.d/docker-php-memlimit.ini
+COPY --from=composer /usr/bin/composer /usr/bin/composer
+
+RUN apt-get update && apt-get -y install git zip unzip
+RUN apt-get update -y && \
+ apt-get install git -y && \
+ git clone https://github.com/xdebug/xdebug
+WORKDIR xdebug
+RUN phpize && \
+ chmod +x configure && \
+ ./configure --enable-xdebug && \
+ make && \
+ make install
+# Enable xdebug extension
+RUN echo "zend_extension=$(php-config --extension-dir)/xdebug.so" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+RUN echo "xdebug.mode=develop,debug,coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+RUN echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/php.ini
+RUN echo "xdebug.start_with_request=yes" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+RUN echo "xdebug.output_dir=/opt/project/xdebug_snapshots" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+RUN echo "xdebug.log=/opt/project/xdebug_logs/xdebug33php82.log" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
+WORKDIR /opt/project/phpstorm-stubs
diff --git a/phpstorm-stubs/tests/Model/BasePHPClass.php b/phpstorm-stubs/tests/Model/BasePHPClass.php
new file mode 100644
index 0000000..300ec83
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/BasePHPClass.php
@@ -0,0 +1,105 @@
+name)) {
+ if (array_key_exists($parsedConstant->name, $this->constants)) {
+ $amount = count(array_filter(
+ $this->constants,
+ function (PHPConst $nextConstant) use ($parsedConstant) {
+ return $nextConstant->name === $parsedConstant->name;
+ }
+ ));
+ $this->constants[$parsedConstant->name . '_duplicated_' . $amount] = $parsedConstant;
+ } else {
+ $this->constants[$parsedConstant->name] = $parsedConstant;
+ }
+ }
+ }
+
+ public function addEnumCase(PHPEnumCase $parsedConstant)
+ {
+ if (isset($parsedConstant->name)) {
+ if (array_key_exists($parsedConstant->name, $this->constants)) {
+ $amount = count(array_filter(
+ $this->constants,
+ function (PHPConst $nextConstant) use ($parsedConstant) {
+ return $nextConstant->name === $parsedConstant->name;
+ }
+ ));
+ $this->constants[$parsedConstant->name . '_duplicated_' . $amount] = $parsedConstant;
+ } else {
+ $this->constants[$parsedConstant->name] = $parsedConstant;
+ }
+ }
+ }
+
+ /**
+ * @return PHPConst|null
+ * @throws RuntimeException
+ */
+ public function getConstant($constantName)
+ {
+ $constants = array_filter($this->constants, function (PHPConst $constant) use ($constantName) {
+ return $constant->name === $constantName && $constant->duplicateOtherElement === false
+ && BasePHPElement::entitySuitsCurrentPhpVersion($constant);
+ });
+ if (empty($constants)) {
+ throw new RuntimeException("Constant $constantName not found in stubs for set language version");
+ }
+ return array_pop($constants);
+ }
+
+ public function addMethod(PHPMethod $parsedMethod)
+ {
+ if (isset($parsedMethod->name)) {
+ if (array_key_exists($parsedMethod->name, $this->methods)) {
+ $amount = count(array_filter(
+ $this->methods,
+ function (PHPMethod $nextMethod) use ($parsedMethod) {
+ return $nextMethod->name === $parsedMethod->name;
+ }
+ ));
+ $this->methods[$parsedMethod->name . '_duplicated_' . $amount] = $parsedMethod;
+ } else {
+ $this->methods[$parsedMethod->name] = $parsedMethod;
+ }
+ }
+ }
+
+ /**
+ * @param string $methodName
+ * @return PHPMethod|null
+ * @throws RuntimeException
+ */
+ public function getMethod($methodName)
+ {
+ $methods = array_filter($this->methods, function (PHPMethod $method) use ($methodName) {
+ return $method->name === $methodName && $method->duplicateOtherElement === false
+ && BasePHPElement::entitySuitsCurrentPhpVersion($method);
+ });
+ if (empty($methods)) {
+ throw new RuntimeException("Method $methodName not found in stubs for set language version");
+ }
+ return array_pop($methods);
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/BasePHPElement.php b/phpstorm-stubs/tests/Model/BasePHPElement.php
new file mode 100644
index 0000000..8fd9c64
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/BasePHPElement.php
@@ -0,0 +1,251 @@
+namespacedName === null) {
+ if (property_exists($node, 'name')) {
+ $fqn = $node->name;
+ } else {
+ foreach ($node->parts as $part) {
+ $fqn .= "$part\\";
+ }
+ }
+ } else {
+ return (string)$node->namespacedName;
+ }
+ return rtrim($fqn, "\\");
+ }
+
+ /**
+ * @param ReflectionType|null $type
+ * @return array
+ */
+ protected static function getReflectionTypeAsArray($type)
+ {
+ $reflectionTypes = [];
+ if ($type instanceof ReflectionNamedType) {
+ $type->allowsNull() && $type->getName() !== 'mixed' ?
+ array_push($reflectionTypes, '?' . $type->getName()) : array_push($reflectionTypes, $type->getName());
+ }
+ if ($type instanceof ReflectionUnionType) {
+ foreach ($type->getTypes() as $namedType) {
+ $reflectionTypes[] = $namedType->getName();
+ }
+ }
+ return $reflectionTypes;
+ }
+
+ /**
+ * @param Name|Identifier|NullableType|string|UnionType|null|Type $type
+ * @return array
+ */
+ protected static function convertParsedTypeToArray($type)
+ {
+ $types = [];
+ if ($type !== null) {
+ if ($type instanceof UnionType) {
+ foreach ($type->types as $namedType) {
+ $types[] = self::getTypeNameFromNode($namedType);
+ }
+ } elseif ($type instanceof Type) {
+ array_push($types, ...explode('|', (string)$type));
+ } else {
+ $types[] = self::getTypeNameFromNode($type);
+ }
+ }
+ return $types;
+ }
+
+ /**
+ * @param Name|Identifier|NullableType|string $type
+ * @return string
+ */
+ protected static function getTypeNameFromNode($type)
+ {
+ $nullable = false;
+ $typeName = '';
+ if ($type instanceof NullableType) {
+ $type = $type->type;
+ $nullable = true;
+ }
+ if (empty($type->name)) {
+ if (!empty($type->parts)) {
+ $typeName = $nullable ? '?' . implode('\\', $type->parts) : implode('\\', $type->parts);
+ }
+ } else {
+ $typeName = $nullable ? '?' . $type->name : $type->name;
+ }
+ return $typeName;
+ }
+
+ /**
+ * @param AttributeGroup[] $attrGroups
+ * @return string[]
+ */
+ protected static function findTypesFromAttribute(array $attrGroups)
+ {
+ foreach ($attrGroups as $attrGroup) {
+ foreach ($attrGroup->attrs as $attr) {
+ if ($attr->name->toString() === LanguageLevelTypeAware::class) {
+ $types = [];
+ $versionTypesMap = $attr->args[0]->value->items;
+ foreach ($versionTypesMap as $item) {
+ $types[number_format((float)$item->key->value, 1)] =
+ explode('|', preg_replace('/\w+\[]/', 'array', $item->value->value));
+ }
+ $maxVersion = max(array_keys($types));
+ foreach (new PhpVersions() as $version) {
+ if ($version > (float)$maxVersion) {
+ $types[number_format($version, 1)] = $types[$maxVersion];
+ }
+ }
+ $types[$attr->args[1]->name->name] = explode('|', preg_replace('/\w+\[]/', 'array', $attr->args[1]->value->value));
+ return $types;
+ }
+ }
+ }
+ return [];
+ }
+
+ /**
+ * @param AttributeGroup[] $attrGroups
+ * @return array
+ */
+ protected static function findAvailableVersionsRangeFromAttribute(array $attrGroups)
+ {
+ $versionRange = [];
+ foreach ($attrGroups as $attrGroup) {
+ foreach ($attrGroup->attrs as $attr) {
+ if ($attr->name->toString() === PhpStormStubsElementAvailable::class) {
+ if (count($attr->args) === 2) {
+ foreach ($attr->args as $arg) {
+ $versionRange[$arg->name->name] = (float)$arg->value->value;
+ }
+ } else {
+ $arg = $attr->args[0]->value;
+ if ($arg instanceof Array_) {
+ $value = $arg->items[0]->value;
+ if ($value instanceof String_) {
+ return ['from' => (float)$value->value];
+ }
+ } else {
+ $rangeName = $attr->args[0]->name;
+ return $rangeName === null || $rangeName->name === 'from' ?
+ ['from' => (float)$arg->value, 'to' => PhpVersions::getLatest()] :
+ ['from' => PhpVersions::getFirst(), 'to' => (float)$arg->value];
+ }
+ }
+ }
+ }
+ }
+ return $versionRange;
+ }
+
+ /**
+ * @param array $attrGroups
+ * @return bool
+ */
+ protected static function hasTentativeTypeAttribute(array $attrGroups)
+ {
+ foreach ($attrGroups as $attrGroup) {
+ foreach ($attrGroup->attrs as $attr) {
+ if ($attr->name->toString() === TentativeType::class) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param int $stubProblemType
+ * @return bool
+ */
+ public function hasMutedProblem($stubProblemType)
+ {
+ if (array_key_exists($stubProblemType, $this->mutedProblems)) {
+ if (in_array('ALL', $this->mutedProblems[$stubProblemType], true) ||
+ in_array((float)getenv('PHP_VERSION'), $this->mutedProblems[$stubProblemType], true)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param BasePHPElement $element
+ * @return bool
+ * @throws RuntimeException
+ */
+ public static function entitySuitsCurrentPhpVersion(BasePHPElement $element)
+ {
+ return in_array((float)getenv('PHP_VERSION'), ParserUtils::getAvailableInVersions($element), true);
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/CommonUtils.php b/phpstorm-stubs/tests/Model/CommonUtils.php
new file mode 100644
index 0000000..3e90e0c
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/CommonUtils.php
@@ -0,0 +1,19 @@
+name = $reflectionObject->getName();
+ $parent = $reflectionObject->getParentClass();
+ if ($parent !== false) {
+ $this->parentClass = $parent->getName();
+ }
+ $this->interfaces = $reflectionObject->getInterfaceNames();
+ $this->isFinal = $reflectionObject->isFinal();
+ if (method_exists($reflectionObject, 'isReadOnly')) {
+ $this->isReadonly = $reflectionObject->isReadOnly();
+ }
+ foreach ($reflectionObject->getMethods() as $method) {
+ if ($method->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $parsedMethod = (new PHPMethod())->readObjectFromReflection($method);
+ $this->addMethod($parsedMethod);
+ }
+
+ if (method_exists($reflectionObject, 'getReflectionConstants')) {
+ foreach ($reflectionObject->getReflectionConstants() as $constant) {
+ if ($constant->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $parsedConstant = (new PHPConst())->readObjectFromReflection($constant);
+ $this->addConstant($parsedConstant);
+ }
+ }
+
+ foreach ($reflectionObject->getProperties() as $property) {
+ if ($property->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $parsedProperty = (new PHPProperty())->readObjectFromReflection($property);
+ $this->addProperty($parsedProperty);
+ }
+ return $this;
+ }
+
+ /**
+ * @param Class_ $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = self::getFQN($node);
+ $this->isFinal = $node->isFinal();
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ $this->collectTags($node);
+ if (!empty($node->extends)) {
+ $this->parentClass = $node->extends->name;
+ }
+ if (!empty($node->implements)) {
+ foreach ($node->implements as $interfaceObject) {
+ $this->interfaces[] = $interfaceObject->name;
+ }
+ }
+ if ($node->getDocComment() !== null) {
+ $docBlock = DocBlockFactory::createInstance()->create($node->getDocComment()->getText());
+ /** @var PropertyRead[] $properties */
+ $properties = array_merge(
+ $docBlock->getTagsByName('property-read'),
+ $docBlock->getTagsByName('property')
+ );
+ foreach ($properties as $property) {
+ $propertyName = $property->getVariableName();
+ assert($propertyName !== '', "@property name is empty in class $this->name");
+ $newProperty = new PHPProperty($this->name);
+ $newProperty->is_static = false;
+ $newProperty->access = 'public';
+ $newProperty->name = $propertyName;
+ $newProperty->parentName = $this->name;
+ $newProperty->typesFromSignature = self::convertParsedTypeToArray($property->getType());
+ assert(
+ !array_key_exists($propertyName, $this->properties),
+ "Property '$propertyName' is already declared in class '$this->name'"
+ );
+ $this->properties[$propertyName] = $newProperty;
+ }
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $class) {
+ if ($class->name === $this->name) {
+ if (!empty($class->problems)) {
+ foreach ($class->problems as $problem) {
+ switch ($problem->description) {
+ case 'wrong parent':
+ $this->mutedProblems[StubProblemType::WRONG_PARENT] = $problem->versions;
+ break;
+ case 'wrong interface':
+ $this->mutedProblems[StubProblemType::WRONG_INTERFACE] = $problem->versions;
+ break;
+ case 'missing class':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ case 'has wrong final modifier':
+ $this->mutedProblems[StubProblemType::WRONG_FINAL_MODIFIER] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ if (!empty($class->methods)) {
+ foreach ($this->methods as $method) {
+ $method->readMutedProblems($class->methods);
+ }
+ }
+ if (!empty($class->constants)) {
+ foreach ($this->constants as $constant) {
+ $constant->readMutedProblems($class->constants);
+ }
+ }
+ if (!empty($class->properties)) {
+ foreach ($this->properties as $property) {
+ $property->readMutedProblems($class->properties);
+ }
+ }
+ return;
+ }
+ }
+ }
+
+ public function addProperty(PHPProperty $parsedProperty)
+ {
+ if (isset($parsedProperty->name)) {
+ if (array_key_exists($parsedProperty->name, $this->properties)) {
+ $amount = count(array_filter(
+ $this->properties,
+ function (PHPProperty $nextProperty) use ($parsedProperty) {
+ return $nextProperty->name === $parsedProperty->name;
+ }
+ ));
+ $this->properties[$parsedProperty->name . '_duplicated_' . $amount] = $parsedProperty;
+ } else {
+ $this->properties[$parsedProperty->name] = $parsedProperty;
+ }
+ }
+ }
+
+ /**
+ * @return PHPProperty|null
+ * @throws RuntimeException
+ */
+ public function getProperty($propertyName)
+ {
+ $properties = array_filter($this->properties, function (PHPProperty $property) use ($propertyName) {
+ return $property->name === $propertyName && $property->duplicateOtherElement === false
+ && BasePHPElement::entitySuitsCurrentPhpVersion($property);
+ });
+ if (empty($properties)) {
+ throw new RuntimeException("Property $propertyName not found in stubs for set language version");
+ }
+ return array_pop($properties);
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPConst.php b/phpstorm-stubs/tests/Model/PHPConst.php
new file mode 100644
index 0000000..e5f5216
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPConst.php
@@ -0,0 +1,147 @@
+name = $reflectionObject->name;
+ $this->value = $reflectionObject->getValue();
+ if ($reflectionObject->isPrivate()) {
+ $this->visibility = 'private';
+ } elseif ($reflectionObject->isProtected()) {
+ $this->visibility = 'protected';
+ } else {
+ $this->visibility = 'public';
+ }
+ return $this;
+ }
+
+ /**
+ * @param Const_ $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = $this->getConstantFQN($node, $node->name->name);
+ $this->value = $this->getConstValue($node);
+ $this->collectTags($node);
+ $parentNode = $node->getAttribute('parent');
+ if (property_exists($parentNode, 'attrGroups')) {
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($parentNode->attrGroups);
+ }
+ if ($parentNode instanceof ClassConst) {
+ if ($parentNode->isPrivate()) {
+ $this->visibility = 'private';
+ } elseif ($parentNode->isProtected()) {
+ $this->visibility = 'protected';
+ } else {
+ $this->visibility = 'public';
+ }
+ $this->parentName = self::getFQN($parentNode->getAttribute('parent'));
+ }
+ return $this;
+ }
+
+ /**
+ * @param $node
+ * @return int|string|bool|float|null
+ */
+ protected function getConstValue($node)
+ {
+ if (in_array('value', $node->value->getSubNodeNames(), true)) {
+ return $node->value->value;
+ }
+ if (in_array('expr', $node->value->getSubNodeNames(), true)) {
+ if ($node->value instanceof UnaryMinus) {
+ return -$node->value->expr->value;
+ } elseif ($node->value instanceof Cast && $node->value->expr instanceof ConstFetch) {
+ return $node->value->expr->name->name;
+ }
+ return $node->value->expr->value;
+ }
+ if (in_array('name', $node->value->getSubNodeNames(), true)) {
+ $value = isset($node->value->name->parts[0]) ? $node->value->name->parts[0] : $node->value->name->name;
+ return $value === 'null' ? null : $value;
+ }
+ return null;
+ }
+
+ /**
+ * @param NodeAbstract $node
+ * @param string $nodeName
+ * @return string
+ */
+ protected function getConstantFQN(NodeAbstract $node, $nodeName)
+ {
+ $namespace = '';
+ $parentNode = $node->getAttribute('parent');
+ if ($parentNode instanceof Enum_) {
+ return $nodeName;
+ } else {
+ $parentParentNode = $parentNode->getAttribute('parent');
+ if ($parentParentNode instanceof Namespace_ && !empty($parentParentNode->name)) {
+ $namespace = '\\' . $parentParentNode->name->name . '\\';
+ }
+ }
+
+ return $namespace . $nodeName;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $constant) {
+ if ($constant->name === $this->name && !empty($constant->problems)) {
+ foreach ($constant->problems as $problem) {
+ switch ($problem->description) {
+ case 'wrong value':
+ $this->mutedProblems[StubProblemType::WRONG_CONSTANT_VALUE] = $problem->versions;
+ break;
+ case 'missing constant':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPDefineConstant.php b/phpstorm-stubs/tests/Model/PHPDefineConstant.php
new file mode 100644
index 0000000..b1e34a4
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPDefineConstant.php
@@ -0,0 +1,56 @@
+name = mb_convert_encoding($reflectionObject[0], 'UTF-8');
+ } else {
+ $this->name = $reflectionObject[0];
+ }
+ $constantValue = $reflectionObject[1];
+ if ($constantValue !== null) {
+ if (is_resource($constantValue)) {
+ $this->value = 'PHPSTORM_RESOURCE';
+ } elseif (is_string($constantValue) || is_float($constantValue)) {
+ $this->value = mb_convert_encoding((string)$constantValue, 'UTF-8');
+ } else {
+ $this->value = $constantValue;
+ }
+ } else {
+ $this->value = null;
+ }
+ $this->visibility = 'public';
+ return $this;
+ }
+
+ /**
+ * @param FuncCall $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $constName = $this->getConstantFQN($node, $node->args[0]->value->value);
+ if (in_array($constName, ['null', 'true', 'false'])) {
+ $constName = strtoupper($constName);
+ }
+ $this->name = $constName;
+ $this->value = $this->getConstValue($node->args[1]);
+ $this->visibility = 'public';
+ $this->collectTags($node);
+ return $this;
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPDocElement.php b/phpstorm-stubs/tests/Model/PHPDocElement.php
new file mode 100644
index 0000000..f8a3528
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPDocElement.php
@@ -0,0 +1,116 @@
+getDocComment() !== null) {
+ try {
+ $text = $node->getDocComment()->getText();
+ $text = preg_replace("/int\<\w+,\s*\w+\>/", "int", $text);
+ $text = preg_replace("/callable\(\w+(,\s*\w+)*\)(:\s*\w*)?/", "callable", $text);
+ $this->phpdoc = $text;
+ $phpDoc = DocFactoryProvider::getDocFactory()->create($text);
+ $tags = $phpDoc->getTags();
+ foreach ($tags as $tag) {
+ $this->tagNames[] = $tag->getName();
+ }
+ $this->paramTags = $phpDoc->getTagsByName('param');
+ $this->returnTags = $phpDoc->getTagsByName('return');
+ $this->varTags = $phpDoc->getTagsByName('var');
+ $this->links = $phpDoc->getTagsByName('link');
+ $this->see = $phpDoc->getTagsByName('see');
+ $this->sinceTags = $phpDoc->getTagsByName('since');
+ $this->deprecatedTags = $phpDoc->getTagsByName('deprecated');
+ $this->removedTags = $phpDoc->getTagsByName('removed');
+ $this->hasInternalMetaTag = $phpDoc->hasTag('meta');
+ $this->hasInheritDocTag = $phpDoc->hasTag('inheritdoc') || $phpDoc->hasTag('inheritDoc') ||
+ stripos($phpDoc->getSummary(), 'inheritdoc') > 0;
+ $this->templateTypes += array_map(
+ function (Generic $tag) {
+ return preg_split("/\W/", $tag->getDescription()->getBodyTemplate())[0];
+ },
+ $phpDoc->getTagsByName('template')
+ );
+ } catch (Exception $e) {
+ $this->parseError = $e;
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPEnum.php b/phpstorm-stubs/tests/Model/PHPEnum.php
new file mode 100644
index 0000000..0b30967
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPEnum.php
@@ -0,0 +1,111 @@
+name = $reflectionObject->getName();
+ $this->interfaces = $reflectionObject->getInterfaceNames();
+ $this->isFinal = $reflectionObject->isFinal();
+ if (method_exists($reflectionObject, 'isReadOnly')) {
+ $this->isReadonly = $reflectionObject->isReadOnly();
+ }
+ foreach ($reflectionObject->getMethods() as $method) {
+ if ($method->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $parsedMethod = (new PHPMethod())->readObjectFromReflection($method);
+ $this->addMethod($parsedMethod);
+ }
+
+ if (method_exists($reflectionObject, 'getReflectionConstants')) {
+ foreach ($reflectionObject->getReflectionConstants() as $constant) {
+ if ($constant->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ if ($constant->isEnumCase()) {
+ $enumCase = (new PHPEnumCase())->readObjectFromReflection($constant);
+ $this->addEnumCase($enumCase);
+ } else {
+ $parsedConstant = (new PHPConst())->readObjectFromReflection($constant);
+ $this->addConstant($parsedConstant);
+ }
+ }
+ }
+
+ foreach ($reflectionObject->getProperties() as $property) {
+ if ($property->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $parsedProperty = (new PHPProperty())->readObjectFromReflection($property);
+ $this->addProperty($parsedProperty);
+ }
+
+ return $this;
+ }
+
+ /**
+ * @param Enum_ $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = self::getFQN($node);
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ $this->collectTags($node);
+ if (!empty($node->extends)) {
+ $this->parentClass = '';
+ foreach ($node->extends->parts as $part) {
+ $this->parentClass .= "\\$part";
+ }
+ $this->parentClass = ltrim($this->parentClass, "\\");
+ }
+ if (!empty($node->implements)) {
+ foreach ($node->implements as $interfaceObject) {
+ $interfaceFQN = '';
+ foreach ($interfaceObject->parts as $interface) {
+ $interfaceFQN .= "\\$interface";
+ }
+ $this->interfaces[] = ltrim($interfaceFQN, "\\");
+ }
+ }
+ if ($node->getDocComment() !== null) {
+ $docBlock = DocBlockFactory::createInstance()->create($node->getDocComment()->getText());
+ /** @var PropertyRead[] $properties */
+ $properties = array_merge(
+ $docBlock->getTagsByName('property-read'),
+ $docBlock->getTagsByName('property')
+ );
+ foreach ($properties as $property) {
+ $propertyName = $property->getVariableName();
+ assert($propertyName !== '', "@property name is empty in class $this->name");
+ $newProperty = new PHPProperty($this->name);
+ $newProperty->is_static = false;
+ $newProperty->access = 'public';
+ $newProperty->name = $propertyName;
+ $newProperty->parentName = $this->name;
+ $newProperty->typesFromSignature = self::convertParsedTypeToArray($property->getType());
+ assert(
+ !array_key_exists($propertyName, $this->properties),
+ "Property '$propertyName' is already declared in class '$this->name'"
+ );
+ $this->properties[$propertyName] = $newProperty;
+ }
+ }
+
+ return $this;
+ }
+
+ public function readMutedProblems($jsonData) {}
+}
diff --git a/phpstorm-stubs/tests/Model/PHPEnumCase.php b/phpstorm-stubs/tests/Model/PHPEnumCase.php
new file mode 100644
index 0000000..ea5bc4e
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPEnumCase.php
@@ -0,0 +1,45 @@
+name = $reflectionObject->name;
+ $this->value = $reflectionObject->getValue();
+ if ($reflectionObject->isPrivate()) {
+ $this->visibility = 'private';
+ } elseif ($reflectionObject->isProtected()) {
+ $this->visibility = 'protected';
+ } else {
+ $this->visibility = 'public';
+ }
+ return $this;
+ }
+
+ /**
+ * @param EnumCase $node
+ * @return $this|PHPEnumCase
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = $this->getConstantFQN($node, $node->name->name);
+ //$this->value = $this->getConstValue($node);
+ //$this->collectTags($node);
+ $parentNode = $node->getAttribute('parent');
+ if (property_exists($parentNode, 'attrGroups')) {
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($parentNode->attrGroups);
+ }
+ $this->parentName = self::getFQN($parentNode->namespacedName);
+ return $this;
+ }
+
+ public function readMutedProblems($jsonData) {}
+}
diff --git a/phpstorm-stubs/tests/Model/PHPFunction.php b/phpstorm-stubs/tests/Model/PHPFunction.php
new file mode 100644
index 0000000..98ac6b6
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPFunction.php
@@ -0,0 +1,236 @@
+name = $reflectionObject->name;
+ $this->isDeprecated = $reflectionObject->isDeprecated();
+ foreach ($reflectionObject->getParameters() as $parameter) {
+ $this->parameters[] = (new PHPParameter())->readObjectFromReflection($parameter);
+ }
+ if (method_exists($reflectionObject, 'getReturnType')) {
+ $returnTypes = self::getReflectionTypeAsArray($reflectionObject->getReturnType());
+ }
+ if (!empty($returnTypes)) {
+ array_push($this->returnTypesFromSignature, ...$returnTypes);
+ }
+ return $this;
+ }
+
+ /**
+ * @param Function_ $node
+ * @return static
+ * @throws RuntimeException
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $functionName = self::getFQN($node);
+ $this->name = $functionName;
+ $typesFromAttribute = self::findTypesFromAttribute($node->attrGroups);
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ $this->returnTypesFromAttribute = $typesFromAttribute;
+ array_push($this->returnTypesFromSignature, ...self::convertParsedTypeToArray($node->getReturnType()));
+ $index = 0;
+ foreach ($node->getParams() as $parameter) {
+ $parsedParameter = (new PHPParameter())->readObjectFromStubNode($parameter);
+ if (self::entitySuitsCurrentPhpVersion($parsedParameter)) {
+ $parsedParameter->indexInSignature = $index;
+ $addedParameters = array_filter($this->parameters, function (PHPParameter $addedParameter) use ($parsedParameter) {
+ return $addedParameter->name === $parsedParameter->name;
+ });
+ if (!empty($addedParameters)) {
+ if ($parsedParameter->is_vararg) {
+ $parsedParameter->isOptional = false;
+ $index--;
+ $parsedParameter->indexInSignature = $index;
+ }
+ }
+ $this->parameters[$parsedParameter->name] = $parsedParameter;
+ $index++;
+ }
+ }
+
+ $this->collectTags($node);
+ foreach ($this->parameters as $parameter) {
+ $relatedParamTags = array_filter($this->paramTags, function (Param $tag) use ($parameter) {
+ return $tag->getVariableName() === $parameter->name;
+ });
+ /** @var Param $relatedParamTag */
+ $relatedParamTag = array_pop($relatedParamTags);
+ if ($relatedParamTag !== null) {
+ $parameter->isOptional = $parameter->isOptional || str_contains((string)$relatedParamTag->getDescription(), '[optional]');
+ $parameter->markedOptionalInPhpDoc = str_contains((string)$relatedParamTag->getDescription(), '[optional]');
+ }
+ }
+
+ $this->checkIfReturnTypeIsTentative($node);
+ $this->checkDeprecationTag($node);
+ $this->checkReturnTag();
+ return $this;
+ }
+
+ protected function checkIfReturnTypeIsTentative(FunctionLike $node) {
+ $this->hasTentativeReturnType = self::hasTentativeReturnTypeAttribute($node);
+ }
+
+ protected function checkDeprecationTag(FunctionLike $node)
+ {
+ $this->isDeprecated = self::hasDeprecatedAttribute($node) || !empty($this->deprecatedTags);
+ }
+
+ protected function checkReturnTag()
+ {
+ if (!empty($this->returnTags) && $this->returnTags[0] instanceof Return_) {
+ $type = $this->returnTags[0]->getType();
+ if ($type instanceof Collection) {
+ $returnType = $type->getFqsen();
+ } elseif ($type instanceof Array_ && $type->getValueType() instanceof Collection) {
+ $returnType = "array";
+ } else {
+ $returnType = $type;
+ }
+ if ($returnType instanceof Compound) {
+ foreach ($returnType as $nextType) {
+ $this->returnTypesFromPhpDoc[] = (string)$nextType;
+ }
+ } else {
+ $this->returnTypesFromPhpDoc[] = (string)$returnType;
+ }
+ }
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $function) {
+ if ($function->name === $this->name) {
+ if (!empty($function->problems)) {
+ foreach ($function->problems as $problem) {
+ switch ($problem->description) {
+ case 'parameter mismatch':
+ $this->mutedProblems[StubProblemType::FUNCTION_PARAMETER_MISMATCH] = $problem->versions;
+ break;
+ case 'missing function':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ case 'deprecated function':
+ $this->mutedProblems[StubProblemType::FUNCTION_IS_DEPRECATED] = $problem->versions;
+ break;
+ case 'absent in meta':
+ $this->mutedProblems[StubProblemType::ABSENT_IN_META] = $problem->versions;
+ break;
+ case 'has return typehint':
+ $this->mutedProblems[StubProblemType::FUNCTION_HAS_RETURN_TYPEHINT] = $problem->versions;
+ break;
+ case 'wrong return typehint':
+ $this->mutedProblems[StubProblemType::WRONG_RETURN_TYPEHINT] = $problem->versions;
+ break;
+ case 'has duplicate in stubs':
+ $this->mutedProblems[StubProblemType::HAS_DUPLICATION] = $problem->versions;
+ break;
+ case 'has type mismatch in signature and phpdoc':
+ $this->mutedProblems[StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ if (!empty($function->parameters)) {
+ foreach ($this->parameters as $parameter) {
+ $parameter->readMutedProblems($function->parameters);
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * @param FunctionLike $node
+ * @return bool
+ */
+ private static function hasDeprecatedAttribute(FunctionLike $node)
+ {
+ foreach ($node->getAttrGroups() as $group) {
+ foreach ($group->attrs as $attr) {
+ if ((string)$attr->name === Deprecated::class) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param FunctionLike $node
+ * @return bool
+ */
+ public static function hasTentativeReturnTypeAttribute(FunctionLike $node)
+ {
+ foreach ($node->getAttrGroups() as $group) {
+ foreach ($group->attrs as $attr) {
+ if ((string)$attr->name === TentativeType::class) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ /**
+ * @param Doc|null $docComment
+ * @return bool
+ */
+ private static function hasDeprecatedDocTag($docComment)
+ {
+ $phpDoc = $docComment !== null ? DocFactoryProvider::getDocFactory()->create($docComment->getText()) : null;
+ return $phpDoc !== null && !empty($phpDoc->getTagsByName('deprecated'));
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPInterface.php b/phpstorm-stubs/tests/Model/PHPInterface.php
new file mode 100644
index 0000000..4dfe50f
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPInterface.php
@@ -0,0 +1,91 @@
+name = $reflectionObject->getName();
+ foreach ($reflectionObject->getMethods() as $method) {
+ if ($method->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $this->methods[$method->name] = (new PHPMethod())->readObjectFromReflection($method);
+ }
+ $this->parentInterfaces = $reflectionObject->getInterfaceNames();
+ if (method_exists($reflectionObject, 'getReflectionConstants')) {
+ foreach ($reflectionObject->getReflectionConstants() as $constant) {
+ if ($constant->getDeclaringClass()->getName() !== $this->name) {
+ continue;
+ }
+ $this->constants[$constant->name] = (new PHPConst())->readObjectFromReflection($constant);
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @param Interface_ $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = self::getFQN($node);
+ $this->collectTags($node);
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ if (!empty($node->extends)) {
+ foreach ($node->extends as $extend) {
+ $this->parentInterfaces[] = $extend->name;
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $interface) {
+ if ($interface->name === $this->name) {
+ if (!empty($interface->problems)) {
+ foreach ($interface->problems as $problem) {
+ switch ($problem->description) {
+ case 'wrong parent':
+ $this->mutedProblems[StubProblemType::WRONG_PARENT] = $problem->versions;
+ break;
+ case 'missing interface':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ if (!empty($interface->methods)) {
+ foreach ($this->methods as $method) {
+ $method->readMutedProblems($interface->methods);
+ }
+ }
+ if (!empty($interface->constants)) {
+ foreach ($this->constants as $constant) {
+ $constant->readMutedProblems($interface->constants);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPMethod.php b/phpstorm-stubs/tests/Model/PHPMethod.php
new file mode 100644
index 0000000..da02716
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPMethod.php
@@ -0,0 +1,198 @@
+isStatic = $reflectionObject->isStatic();
+ $this->isFinal = $reflectionObject->isFinal();
+ $this->parentName = $reflectionObject->class;
+ if ($reflectionObject->isProtected()) {
+ $access = 'protected';
+ } elseif ($reflectionObject->isPrivate()) {
+ $access = 'private';
+ } else {
+ $access = 'public';
+ }
+ $this->access = $access;
+ if (method_exists($reflectionObject, 'hasTentativeReturnType')) {
+ $this->isReturnTypeTentative = $reflectionObject->hasTentativeReturnType();
+ if ($this->isReturnTypeTentative) {
+ $returnTypes = self::getReflectionTypeAsArray($reflectionObject->getTentativeReturnType());
+ if (!empty($returnTypes)) {
+ array_push($this->returnTypesFromSignature, ...$returnTypes);
+ }
+ }
+ } else {
+ $this->isReturnTypeTentative = false;
+ }
+ return $this;
+ }
+
+ /**
+ * @param ClassMethod $node
+ * @return static
+ * @throws RuntimeException
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->parentName = self::getFQN($node->getAttribute('parent'));
+ $this->name = $node->name->name;
+ $typesFromAttribute = self::findTypesFromAttribute($node->attrGroups);
+ $this->isReturnTypeTentative = self::hasTentativeTypeAttribute($node->attrGroups);
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ $this->returnTypesFromAttribute = $typesFromAttribute;
+ array_push($this->returnTypesFromSignature, ...self::convertParsedTypeToArray($node->getReturnType()));
+ $this->collectTags($node);
+ $this->checkIfReturnTypeIsTentative($node);
+ $this->checkDeprecationTag($node);
+ $this->checkReturnTag();
+
+ if (strncmp($this->name, 'PS_UNRESERVE_PREFIX_', 20) === 0) {
+ $this->name = substr($this->name, strlen('PS_UNRESERVE_PREFIX_'));
+ }
+ $index = 0;
+ foreach ($node->getParams() as $parameter) {
+ $parsedParameter = (new PHPParameter())->readObjectFromStubNode($parameter);
+ if (self::entitySuitsCurrentPhpVersion($parsedParameter)) {
+ $parsedParameter->indexInSignature = $index;
+ $addedParameters = array_filter($this->parameters, function (PHPParameter $addedParameter) use ($parsedParameter) {
+ return $addedParameter->name === $parsedParameter->name;
+ });
+ if (!empty($addedParameters)) {
+ if ($parsedParameter->is_vararg) {
+ $parsedParameter->isOptional = false;
+ $index--;
+ $parsedParameter->indexInSignature = $index;
+ }
+ }
+ $this->parameters[$parsedParameter->name] = $parsedParameter;
+ $index++;
+ }
+ }
+
+ foreach ($this->parameters as $parameter) {
+ $relatedParamTags = array_filter($this->paramTags, function (Param $tag) use ($parameter) {
+ return $tag->getVariableName() === $parameter->name;
+ });
+ /** @var Param $relatedParamTag */
+ $relatedParamTag = array_pop($relatedParamTags);
+ if ($relatedParamTag !== null) {
+ $parameter->isOptional = $parameter->isOptional || str_contains((string)$relatedParamTag->getDescription(), '[optional]');
+ $parameter->markedOptionalInPhpDoc = str_contains((string)$relatedParamTag->getDescription(), '[optional]');
+ }
+ }
+
+ $this->isFinal = $node->isFinal();
+ $this->isStatic = $node->isStatic();
+ if ($node->isPrivate()) {
+ $this->access = 'private';
+ } elseif ($node->isProtected()) {
+ $this->access = 'protected';
+ } else {
+ $this->access = 'public';
+ }
+ return $this;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $method) {
+ if ($method->name === $this->name) {
+ if (!empty($method->problems)) {
+ foreach ($method->problems as $problem) {
+ switch ($problem->description) {
+ case 'parameter mismatch':
+ $this->mutedProblems[StubProblemType::FUNCTION_PARAMETER_MISMATCH] = $problem->versions;
+ break;
+ case 'missing method':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ case 'deprecated method':
+ $this->mutedProblems[StubProblemType::FUNCTION_IS_DEPRECATED] = $problem->versions;
+ break;
+ case 'absent in meta':
+ $this->mutedProblems[StubProblemType::ABSENT_IN_META] = $problem->versions;
+ break;
+ case 'wrong access':
+ $this->mutedProblems[StubProblemType::FUNCTION_ACCESS] = $problem->versions;
+ break;
+ case 'has duplicate in stubs':
+ $this->mutedProblems[StubProblemType::HAS_DUPLICATION] = $problem->versions;
+ break;
+ case 'has nullable typehint':
+ $this->mutedProblems[StubProblemType::HAS_NULLABLE_TYPEHINT] = $problem->versions;
+ break;
+ case 'has union typehint':
+ $this->mutedProblems[StubProblemType::HAS_UNION_TYPEHINT] = $problem->versions;
+ break;
+ case 'wrong return typehint':
+ $this->mutedProblems[StubProblemType::WRONG_RETURN_TYPEHINT] = $problem->versions;
+ break;
+ case 'has type mismatch in signature and phpdoc':
+ $this->mutedProblems[StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE] = $problem->versions;
+ break;
+ case 'has wrong final modifier':
+ $this->mutedProblems[StubProblemType::WRONG_FINAL_MODIFIER] = $problem->versions;
+ break;
+ case 'has wrong static modifier':
+ $this->mutedProblems[StubProblemType::WRONG_STATIC_MODIFIER] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ if (!empty($method->parameters)) {
+ foreach ($this->parameters as $parameter) {
+ $parameter->readMutedProblems($method->parameters);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPParameter.php b/phpstorm-stubs/tests/Model/PHPParameter.php
new file mode 100644
index 0000000..a445855
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPParameter.php
@@ -0,0 +1,119 @@
+name = $reflectionObject->name;
+ if (method_exists($reflectionObject, 'getType')){
+ $this->typesFromSignature = self::getReflectionTypeAsArray($reflectionObject->getType());
+ }
+ $this->is_vararg = $reflectionObject->isVariadic();
+ $this->is_passed_by_ref = $reflectionObject->isPassedByReference() && !$reflectionObject->canBePassedByValue();
+ $this->isOptional = $reflectionObject->isOptional();
+ $this->indexInSignature = $reflectionObject->getPosition();
+ $this->isDefaultValueAvailable = $reflectionObject->isDefaultValueAvailable();
+ if ($reflectionObject->isDefaultValueAvailable()) {
+ $this->defaultValue = $reflectionObject->getDefaultValue();
+ if (in_array('bool', $this->typesFromSignature, true)) {
+ $this->defaultValue = $reflectionObject->getDefaultValue() ? 'true' : 'false';
+ }
+ }
+ return $this;
+ }
+
+ /**
+ * @param Param $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = $node->var->name;
+
+ $this->typesFromAttribute = self::findTypesFromAttribute($node->attrGroups);
+ $this->typesFromSignature = self::convertParsedTypeToArray($node->type);
+ $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups);
+ $this->is_vararg = $node->variadic;
+ $this->is_passed_by_ref = $node->byRef;
+ $this->defaultValue = $node->default;
+ $this->isOptional = !empty($this->defaultValue) || $this->is_vararg;
+ return $this;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $parameter) {
+ if ($parameter->name === $this->name && !empty($parameter->problems)) {
+ foreach ($parameter->problems as $problem) {
+ switch ($problem->description) {
+ case 'parameter type mismatch':
+ $this->mutedProblems[StubProblemType::PARAMETER_TYPE_MISMATCH] = $problem->versions;
+ break;
+ case 'parameter reference':
+ $this->mutedProblems[StubProblemType::PARAMETER_REFERENCE] = $problem->versions;
+ break;
+ case 'parameter vararg':
+ $this->mutedProblems[StubProblemType::PARAMETER_VARARG] = $problem->versions;
+ break;
+ case 'has scalar typehint':
+ $this->mutedProblems[StubProblemType::PARAMETER_HAS_SCALAR_TYPEHINT] = $problem->versions;
+ break;
+ case 'parameter name mismatch':
+ $this->mutedProblems[StubProblemType::PARAMETER_NAME_MISMATCH] = $problem->versions;
+ break;
+ case 'has nullable typehint':
+ $this->mutedProblems[StubProblemType::HAS_NULLABLE_TYPEHINT] = $problem->versions;
+ break;
+ case 'has union typehint':
+ $this->mutedProblems[StubProblemType::HAS_UNION_TYPEHINT] = $problem->versions;
+ break;
+ case 'has type mismatch in signature and phpdoc':
+ $this->mutedProblems[StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE] = $problem->versions;
+ break;
+ case 'wrong default value':
+ $this->mutedProblems[StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE] = $problem->versions;
+ break;
+ case 'wrong optionallity':
+ $this->mutedProblems[StubProblemType::WRONG_OPTIONALLITY] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PHPProperty.php b/phpstorm-stubs/tests/Model/PHPProperty.php
new file mode 100644
index 0000000..82fb307
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PHPProperty.php
@@ -0,0 +1,112 @@
+parentName = $parentName;
+ }
+
+ /**
+ * @param ReflectionProperty $reflectionObject
+ * @return static
+ */
+ public function readObjectFromReflection($reflectionObject)
+ {
+ $this->name = $reflectionObject->getName();
+ if ($reflectionObject->isProtected()) {
+ $access = 'protected';
+ } elseif ($reflectionObject->isPrivate()) {
+ $access = 'private';
+ } else {
+ $access = 'public';
+ }
+ $this->access = $access;
+ $this->is_static = $reflectionObject->isStatic();
+ if (method_exists($reflectionObject, 'getType')) {
+ $this->typesFromSignature = self::getReflectionTypeAsArray($reflectionObject->getType());
+ }
+ if (method_exists($reflectionObject, 'isReadonly')) {
+ $this->isReadonly = $reflectionObject->isReadOnly();
+ }
+ return $this;
+ }
+
+ /**
+ * @param Property $node
+ * @return static
+ */
+ public function readObjectFromStubNode($node)
+ {
+ $this->name = $node->props[0]->name->name;
+ $this->collectTags($node);
+ $this->is_static = $node->isStatic();
+ if ($node->isProtected()) {
+ $access = 'protected';
+ } elseif ($node->isPrivate()) {
+ $access = 'private';
+ } else {
+ $access = 'public';
+ }
+ $this->access = $access;
+ $this->isReadonly = $node->isReadonly();
+ $this->typesFromSignature = self::convertParsedTypeToArray($node->type);
+ $this->typesFromAttribute = self::findTypesFromAttribute($node->attrGroups);
+ foreach ($this->varTags as $varTag) {
+ $this->typesFromPhpDoc = explode('|', (string)$varTag->getType());
+ }
+
+ $parentNode = $node->getAttribute('parent');
+ if ($parentNode !== null) {
+ $this->parentName = self::getFQN($parentNode);
+ }
+ return $this;
+ }
+
+ /**
+ * @param stdClass|array $jsonData
+ * @throws Exception
+ */
+ public function readMutedProblems($jsonData)
+ {
+ foreach ($jsonData as $property) {
+ if ($property->name === $this->name && !empty($property->problems)) {
+ foreach ($property->problems as $problem) {
+ switch ($problem->description) {
+ case 'missing property':
+ $this->mutedProblems[StubProblemType::STUB_IS_MISSED] = $problem->versions;
+ break;
+ case 'wrong readonly':
+ $this->mutedProblems[StubProblemType::WRONG_READONLY] = $problem->versions;
+ break;
+ default:
+ throw new Exception("Unexpected value $problem->description");
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/PhpVersions.php b/phpstorm-stubs/tests/Model/PhpVersions.php
new file mode 100644
index 0000000..784dc29
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/PhpVersions.php
@@ -0,0 +1,64 @@
+offsetExists($offset) ? self::$versions[$offset] : null;
+ }
+
+ #[ReturnTypeWillChange]
+ public function offsetSet($offset, $value)
+ {
+ throw new RuntimeException('Unsupported operation');
+ }
+
+ #[ReturnTypeWillChange]
+ public function offsetUnset($offset)
+ {
+ throw new RuntimeException('Unsupported operation');
+ }
+
+ /**
+ * @return ArrayIterator
+ */
+ #[ReturnTypeWillChange]
+ public function getIterator()
+ {
+ return new ArrayIterator(self::$versions);
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/StubProblemType.php b/phpstorm-stubs/tests/Model/StubProblemType.php
new file mode 100644
index 0000000..b22bdc7
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/StubProblemType.php
@@ -0,0 +1,34 @@
+constants;
+ }
+
+ /**
+ * @param string $constantName
+ * @param string|null $sourceFilePath
+ * @return PHPConst|null
+ * @throws RuntimeException
+ */
+ public function getConstant($constantName, $sourceFilePath = null)
+ {
+ $constants = array_filter($this->constants, function (PHPConst $const) use ($constantName) {
+ return $const->name === $constantName && $const->duplicateOtherElement === false
+ && BasePHPElement::entitySuitsCurrentPhpVersion($const);
+ });
+ if (count($constants) === 1) {
+ return array_pop($constants);
+ }
+
+ if ($sourceFilePath !== null) {
+ $constants = array_filter($constants, function (PHPConst $constant) use ($sourceFilePath) {
+ return $constant->sourceFilePath === $sourceFilePath
+ && BasePHPElement::entitySuitsCurrentPhpVersion($constant);
+ });
+ }
+ if (count($constants) > 1) {
+ throw new RuntimeException("Multiple constants with name $constantName found");
+ }
+ if (!empty($constants)) {
+ return array_pop($constants);
+ }
+ return null;
+ }
+
+ public function addConstant(PHPConst $constant)
+ {
+ if (isset($constant->name)) {
+ if (array_key_exists($constant->name, $this->constants)) {
+ $amount = count(array_filter(
+ $this->constants,
+ function (PHPConst $nextConstant) use ($constant) {
+ return $nextConstant->name === $constant->name;
+ }
+ ));
+ $constant->duplicateOtherElement = true;
+ $this->constants[$constant->name . '_duplicated_' . $amount] = $constant;
+ } else {
+ $this->constants[$constant->name] = $constant;
+ }
+ }
+ }
+
+ /**
+ * @return PHPFunction[]
+ */
+ public function getFunctions()
+ {
+ return $this->functions;
+ }
+
+ /**
+ * @param string $name
+ * @param string|null $sourceFilePath
+ * @param bool $shouldSuitCurrentPhpVersion
+ * @return PHPFunction
+ * @throws RuntimeException
+ */
+ public function getFunction($name, $sourceFilePath = null, $shouldSuitCurrentPhpVersion = true)
+ {
+ $functions = array_filter($this->functions, function (PHPFunction $function) use ($shouldSuitCurrentPhpVersion, $name) {
+ return $function->name === $name && (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($function));
+ });
+ if (count($functions) > 1) {
+ $functions = array_filter($functions, function (PHPFunction $function) {
+ return $function->duplicateOtherElement === false;
+ });
+ }
+ if (count($functions) === 1) {
+ return array_pop($functions);
+ }
+
+ if ($sourceFilePath !== null) {
+ $functions = array_filter($functions, function (PHPFunction $function) use ($shouldSuitCurrentPhpVersion, $sourceFilePath) {
+ return $function->sourceFilePath === $sourceFilePath
+ && (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($function));
+ });
+ }
+ if (count($functions) > 1) {
+ throw new RuntimeException("Multiple functions with name $name found");
+ }
+ if (!empty($functions)) {
+ return array_pop($functions);
+ } else {
+ throw new RuntimeException("Could not get function {$name} from reflection");
+ }
+ }
+
+ public function addFunction(PHPFunction $function)
+ {
+ if (isset($function->name)) {
+ if (array_key_exists($function->name, $this->functions)) {
+ $amount = count(array_filter(
+ $this->functions,
+ function (PHPFunction $nextFunction) use ($function) {
+ return $nextFunction->name === $function->name;
+ }
+ ));
+ $function->duplicateOtherElement = true;
+ $this->functions[$function->name . '_duplicated_' . $amount] = $function;
+ } else {
+ $this->functions[$function->name] = $function;
+ }
+ }
+ }
+
+ /**
+ * @return PHPClass[]
+ */
+ public function getClasses()
+ {
+ return $this->classes;
+ }
+
+ /**
+ * @param string $name
+ * @param string|null $sourceFilePath
+ * @param bool $shouldSuitCurrentPhpVersion
+ * @return PHPClass|null
+ * @throws RuntimeException
+ */
+ public function getClass($name, $sourceFilePath = null, $shouldSuitCurrentPhpVersion = true)
+ {
+ $classes = array_filter($this->classes, function (PHPClass $class) use ($shouldSuitCurrentPhpVersion, $name) {
+ return $class->name === $name &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($class));
+ });
+ if (count($classes) === 1) {
+ return array_pop($classes);
+ }
+
+ if ($sourceFilePath !== null) {
+ $classes = array_filter($classes, function (PHPClass $class) use ($shouldSuitCurrentPhpVersion, $sourceFilePath) {
+ return $class->sourceFilePath === $sourceFilePath &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($class));
+ });
+ }
+ if (count($classes) > 1) {
+ throw new RuntimeException("Multiple classes with name $name found");
+ }
+ if (!empty($classes)) {
+ return array_pop($classes);
+ }
+ return null;
+ }
+
+ /**
+ * @param string $name
+ * @param string|null $sourceFilePath
+ * @param bool $shouldSuitCurrentPhpVersion
+ * @return PHPEnum|null
+ * @throws RuntimeException
+ */
+ public function getEnum($name, $sourceFilePath = null, $shouldSuitCurrentPhpVersion = true)
+ {
+ $enums = array_filter($this->enums, function (PHPEnum $enum) use ($shouldSuitCurrentPhpVersion, $name) {
+ return $enum->name === $name &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($enum));
+ });
+ if (count($enums) === 1) {
+ return array_pop($enums);
+ }
+
+ if ($sourceFilePath !== null) {
+ $enums = array_filter($enums, function (PHPEnum $enum) use ($shouldSuitCurrentPhpVersion, $sourceFilePath) {
+ return $enum->sourceFilePath === $sourceFilePath &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($enum));
+ });
+ }
+ if (count($enums) > 1) {
+ throw new RuntimeException("Multiple enums with name $name found");
+ }
+ if (!empty($enums)) {
+ return array_pop($enums);
+ }
+ return null;
+ }
+
+ /**
+ * @return PHPClass[]
+ */
+ public function getCoreClasses()
+ {
+ return array_filter($this->classes, function (PHPClass $class) {
+ return $class->stubBelongsToCore === true;
+ });
+ }
+
+ public function addClass(PHPClass $class)
+ {
+ if (isset($class->name)) {
+ if (array_key_exists($class->name, $this->classes)) {
+ $amount = count(array_filter(
+ $this->classes,
+ function (PHPClass $nextClass) use ($class) {
+ return $nextClass->name === $class->name;
+ }
+ ));
+ $this->classes[$class->name . '_duplicated_' . $amount] = $class;
+ } else {
+ $this->classes[$class->name] = $class;
+ }
+ }
+ }
+
+ /**
+ * @param string $name
+ * @param string|null $sourceFilePath
+ * @param bool $shouldSuitCurrentPhpVersion
+ * @return PHPInterface|null
+ * @throws RuntimeException
+ */
+ public function getInterface($name, $sourceFilePath = null, $shouldSuitCurrentPhpVersion = true)
+ {
+ $interfaces = array_filter($this->interfaces, function (PHPInterface $interface) use ($shouldSuitCurrentPhpVersion, $name) {
+ return $interface->name === $name &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($interface));
+ });
+ if (count($interfaces) === 1) {
+ return array_pop($interfaces);
+ }
+
+ if ($sourceFilePath !== null) {
+ $interfaces = array_filter($interfaces, function (PHPInterface $interface) use ($shouldSuitCurrentPhpVersion, $sourceFilePath) {
+ return $interface->sourceFilePath === $sourceFilePath &&
+ (!$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($interface));
+ });
+ }
+ if (count($interfaces) > 1) {
+ throw new RuntimeException("Multiple interfaces with name $name found");
+ }
+ if (!empty($interfaces)) {
+ return array_pop($interfaces);
+ }
+ return null;
+ }
+
+ /**
+ * @return PHPInterface[]
+ */
+ public function getInterfaces()
+ {
+ return $this->interfaces;
+ }
+
+ /**
+ * @return PHPEnum[]
+ */
+ public function getEnums()
+ {
+ return $this->enums;
+ }
+
+ /**
+ * @return PHPInterface[]
+ */
+ public function getCoreInterfaces()
+ {
+ return array_filter($this->interfaces, function (PHPInterface $interface) {
+ return $interface->stubBelongsToCore === true;
+ });
+ }
+
+ public function addInterface(PHPInterface $interface)
+ {
+ if (isset($interface->name)) {
+ if (array_key_exists($interface->name, $this->interfaces)) {
+ $amount = count(array_filter(
+ $this->interfaces,
+ function (PHPInterface $nextInterface) use ($interface) {
+ return $nextInterface->name === $interface->name;
+ }
+ ));
+ $this->interfaces[$interface->name . '_duplicated_' . $amount] = $interface;
+ } else {
+ $this->interfaces[$interface->name] = $interface;
+ }
+ }
+ }
+
+ public function addEnum(PHPEnum $enum)
+ {
+ if (isset($enum->name)) {
+ if (array_key_exists($enum->name, $this->enums)) {
+ $amount = count(array_filter(
+ $this->enums,
+ function (PHPEnum $nextEnum) use ($enum) {
+ return $nextEnum->name === $enum->name;
+ }
+ ));
+ $this->enums[$enum->name . '_duplicated_' . $amount] = $enum;
+ } else {
+ $this->enums[$enum->name] = $enum;
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/Model/Tags/RemovedTag.php b/phpstorm-stubs/tests/Model/Tags/RemovedTag.php
new file mode 100644
index 0000000..7ed990c
--- /dev/null
+++ b/phpstorm-stubs/tests/Model/Tags/RemovedTag.php
@@ -0,0 +1,67 @@
+version = $version;
+ $this->name = 'removed';
+ $this->description = $description;
+ }
+
+ /**
+ * @param string|null $body
+ * @param DescriptionFactory|null $descriptionFactory
+ * @param Context|null $context
+ * @return RemovedTag
+ */
+ public static function create($body, $descriptionFactory = null, $context = null)
+ {
+ if (empty($body)) {
+ return new self();
+ }
+
+ $matches = [];
+ if ($descriptionFactory !== null) {
+ if (!preg_match('/^(' . self::REGEX_VECTOR . ')\s*(.+)?$/sux', $body, $matches)) {
+ return new self(null, $descriptionFactory->create($body, $context));
+ }
+
+ return new self(
+ $matches[1],
+ $descriptionFactory->create(isset($matches[2]) ? $matches[2] : '', $context)
+ );
+ }
+ return new self();
+ }
+
+ /**
+ * @return string|null
+ */
+ public function getVersion()
+ {
+ return $this->version;
+ }
+
+ /**
+ * @return string
+ */
+ public function __toString()
+ {
+ return "PhpStorm internal '@removed' tag";
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/DocFactoryProvider.php b/phpstorm-stubs/tests/Parsers/DocFactoryProvider.php
new file mode 100644
index 0000000..d13216f
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/DocFactoryProvider.php
@@ -0,0 +1,20 @@
+ RemovedTag::class]);
+ }
+ return self::$docFactory;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/ExpectedFunctionArgumentsInfo.php b/phpstorm-stubs/tests/Parsers/ExpectedFunctionArgumentsInfo.php
new file mode 100644
index 0000000..e8fd6cd
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/ExpectedFunctionArgumentsInfo.php
@@ -0,0 +1,61 @@
+functionReference;
+ }
+
+ public function setFunctionReference(Expr $functionReference): void
+ {
+ $this->functionReference = $functionReference;
+ }
+
+ /**
+ * @return Expr[]
+ */
+ public function getExpectedArguments(): array
+ {
+ return $this->expectedArguments;
+ }
+
+ /**
+ * @param Expr[] $expectedArguments
+ */
+ public function setExpectedArguments(array $expectedArguments): void
+ {
+ $this->expectedArguments = $expectedArguments;
+ }
+
+ public function getIndex(): int
+ {
+ return $this->index;
+ }
+
+ #[Pure]
+ public function __toString(): string
+ {
+ if ($this->functionReference === null) {
+ return '';
+ }
+ if (property_exists($this->functionReference, 'name')) {
+ return (string)$this->functionReference->name;
+ }
+ return implode(',', $this->functionReference->getAttributes());
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/MetaExpectedArgumentsCollector.php b/phpstorm-stubs/tests/Parsers/MetaExpectedArgumentsCollector.php
new file mode 100644
index 0000000..e78a6d3
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/MetaExpectedArgumentsCollector.php
@@ -0,0 +1,124 @@
+ $file->getFilename() === '.phpstorm.meta.php'
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function enterNode(Node $node): void
+ {
+ if ($node instanceof FuncCall) {
+ $name = (string)$node->name;
+ if ($name === self::EXPECTED_ARGUMENTS) {
+ $args = $node->args;
+ if (count($args) < 3) {
+ throw new RuntimeException('Expected at least 3 arguments for expectedArguments call');
+ }
+ $this->expectedArgumentsInfos[] = self::getExpectedArgumentsInfo($args[0]->value, array_slice($args, 2), $args[1]->value->value);
+ } elseif ($name === self::REGISTER_ARGUMENTS_SET_NAME) {
+ $args = $node->args;
+ if (count($args) < 2) {
+ throw new RuntimeException('Expected at least 2 arguments for registerArgumentsSet call');
+ }
+ $this->expectedArgumentsInfos[] = self::getExpectedArgumentsInfo(null, array_slice($args, 1));
+ $name = $args[0]->value->value;
+ $this->registeredArgumentsSet[] = $name;
+ } elseif ($name === self::EXPECTED_RETURN_VALUES) {
+ $args = $node->args;
+ if (count($args) < 2) {
+ throw new RuntimeException('Expected at least 2 arguments for expectedReturnValues call');
+ }
+ $this->expectedArgumentsInfos[] = self::getExpectedArgumentsInfo($args[0]->value, array_slice($args, 1));
+ }
+ }
+ }
+
+ /**
+ * @return ExpectedFunctionArgumentsInfo[]
+ */
+ public function getExpectedArgumentsInfos(): array
+ {
+ return $this->expectedArgumentsInfos;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getRegisteredArgumentsSet(): array
+ {
+ return $this->registeredArgumentsSet;
+ }
+
+ /**
+ * @param Expr[] $expressions
+ * @return Expr[]
+ */
+ private static function unpackArguments(array $expressions): array
+ {
+ $result = [];
+ foreach ($expressions as $expr) {
+ if ($expr instanceof BitwiseOr) {
+ /** @noinspection SlowArrayOperationsInLoopInspection */
+ $result = array_merge($result, self::unpackArguments([$expr->left, $expr->right]));
+ } else {
+ $result[] = $expr;
+ }
+ }
+ return $result;
+ }
+
+ /**
+ * @param Expr|null $functionReference
+ * @param Arg[] $args
+ * @param int $index
+ * @return ExpectedFunctionArgumentsInfo
+ */
+ private static function getExpectedArgumentsInfo(?Expr $functionReference, array $args, int $index = -1): ExpectedFunctionArgumentsInfo
+ {
+ $expressions = array_map(fn (Arg $arg): Expr => $arg->value, $args);
+ return new ExpectedFunctionArgumentsInfo($functionReference, self::unpackArguments($expressions), $index);
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/PHPReflectionParser.php b/phpstorm-stubs/tests/Parsers/PHPReflectionParser.php
new file mode 100644
index 0000000..4a6bb91
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/PHPReflectionParser.php
@@ -0,0 +1,72 @@
+ $value) {
+ $constant = (new PHPDefineConstant())->readObjectFromReflection([$name, $value]);
+ $constant->readMutedProblems($jsonData->constants);
+ $stubs->addConstant($constant);
+ }
+
+ foreach (get_defined_functions()['internal'] as $function) {
+ $reflectionFunction = new ReflectionFunction($function);
+ $phpFunction = (new PHPFunction())->readObjectFromReflection($reflectionFunction);
+ $phpFunction->readMutedProblems($jsonData->functions);
+ $stubs->addFunction($phpFunction);
+ }
+
+ foreach (get_declared_classes() as $clazz) {
+ $reflectionClass = new ReflectionClass($clazz);
+ if ($reflectionClass->isInternal()) {
+ if (method_exists($reflectionClass, 'isEnum') && $reflectionClass->isEnum()) {
+ $enum = (new PHPEnum())->readObjectFromReflection($reflectionClass);
+ $enum->readMutedProblems($jsonData->enums);
+ $stubs->addEnum($enum);
+ } else {
+ $class = (new PHPClass())->readObjectFromReflection($reflectionClass);
+ $class->readMutedProblems($jsonData->classes);
+ $stubs->addClass($class);
+ }
+ }
+ }
+
+ foreach (get_declared_interfaces() as $interface) {
+ $reflectionInterface = new ReflectionClass($interface);
+ if ($reflectionInterface->isInternal()) {
+ $phpInterface = (new PHPInterface())->readObjectFromReflection($reflectionInterface);
+ $phpInterface->readMutedProblems($jsonData->interfaces);
+ $stubs->addInterface($phpInterface);
+ }
+ }
+ }
+
+ return $stubs;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/ParserUtils.php b/phpstorm-stubs/tests/Parsers/ParserUtils.php
new file mode 100644
index 0000000..a2b3b66
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/ParserUtils.php
@@ -0,0 +1,178 @@
+getVersion()); //find version like any but 7.4.0
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function getDeclaredSinceVersion(BasePHPElement $element): ?float
+ {
+ $allSinceVersions = self::getSinceVersionsFromPhpDoc($element);
+ $allSinceVersions[] = self::getSinceVersionsFromAttribute($element);
+ if ($element instanceof PHPMethod) {
+ if ($element->hasInheritDocTag) {
+ return null;
+ }
+ $allSinceVersions[] = self::getSinceVersionsFromParentClass($element);
+ } elseif ($element instanceof PHPConst && !empty($element->parentName)) {
+ $allSinceVersions[] = self::getSinceVersionsFromParentClass($element);
+ }
+ $flattenedArray = CommonUtils::flattenArray($allSinceVersions, false);
+ sort($flattenedArray, SORT_DESC);
+ return array_pop($flattenedArray);
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function getLatestAvailableVersion(BasePHPElement $element): ?float
+ {
+ $latestVersionsFromPhpDoc = self::getLatestAvailableVersionFromPhpDoc($element);
+ $latestVersionsFromAttribute = self::getLatestAvailableVersionsFromAttribute($element);
+ if ($element instanceof PHPMethod) {
+ if ($element->hasInheritDocTag) {
+ return null;
+ }
+ $latestVersionsFromPhpDoc[] = self::getLatestAvailableVersionsFromParentClass($element);
+ } elseif ($element instanceof PHPConst && !empty($element->parentName)) {
+ $latestVersionsFromPhpDoc[] = self::getLatestAvailableVersionsFromParentClass($element);
+ }
+ if (empty($latestVersionsFromAttribute)) {
+ $flattenedArray = CommonUtils::flattenArray($latestVersionsFromPhpDoc, false);
+ } else {
+ $flattenedArray = CommonUtils::flattenArray($latestVersionsFromAttribute, false);
+ }
+ sort($flattenedArray, SORT_DESC);
+ return array_pop($flattenedArray);
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function getAvailableInVersions(?BasePHPElement $element): array
+ {
+ if ($element !== null) {
+ $firstSinceVersion = self::getDeclaredSinceVersion($element);
+ if ($firstSinceVersion === null) {
+ $firstSinceVersion = PhpVersions::getFirst();
+ }
+ $lastAvailableVersion = self::getLatestAvailableVersion($element);
+ if ($lastAvailableVersion === null) {
+ $lastAvailableVersion = PhpVersions::getLatest();
+ }
+ return array_filter(
+ iterator_to_array(new PhpVersions()),
+ fn ($version) => $version >= $firstSinceVersion && $version <= $lastAvailableVersion
+ );
+ }
+ return [];
+ }
+
+ /**
+ * @return float[]
+ */
+ private static function getSinceVersionsFromPhpDoc(BasePHPElement $element): array
+ {
+ $allSinceVersions = [];
+ if (!empty($element->sinceTags) && $element->stubBelongsToCore) {
+ $allSinceVersions[] = array_map(fn (Since $tag) => (float)$tag->getVersion(), $element->sinceTags);
+ }
+ return $allSinceVersions;
+ }
+
+ /**
+ * @return float[]
+ */
+ private static function getLatestAvailableVersionFromPhpDoc(BasePHPElement $element): array
+ {
+ $latestAvailableVersion = [PhpVersions::getLatest()];
+ if (!empty($element->removedTags) && $element->stubBelongsToCore) {
+ $allRemovedVersions = array_map(fn (RemovedTag $tag) => (float)$tag->getVersion(), $element->removedTags);
+ sort($allRemovedVersions, SORT_DESC);
+ $removedVersion = array_pop($allRemovedVersions);
+ $allVersions = new PhpVersions();
+ $indexOfRemovedVersion = array_search($removedVersion, iterator_to_array($allVersions), true);
+ $latestAvailableVersion = [$allVersions[$indexOfRemovedVersion - 1]];
+ }
+ return $latestAvailableVersion;
+ }
+
+ /**
+ * @return float[]
+ * @throws RuntimeException
+ */
+ private static function getSinceVersionsFromParentClass(PHPMethod|PHPConst $element): array
+ {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($element->parentName, shouldSuitCurrentPhpVersion: false);
+ if ($parentClass === null) {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($element->parentName, shouldSuitCurrentPhpVersion: false);
+ }
+ if ($parentClass === null) {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($element->parentName, shouldSuitCurrentPhpVersion: false);
+ }
+ $allSinceVersions = [self::getSinceVersionsFromPhpDoc($parentClass)];
+ $allSinceVersions[] = self::getSinceVersionsFromAttribute($parentClass);
+ return $allSinceVersions;
+ }
+
+ /**
+ * @return float[]
+ * @throws RuntimeException
+ */
+ public static function getLatestAvailableVersionsFromParentClass(PHPMethod|PHPConst $element): array
+ {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($element->parentName, shouldSuitCurrentPhpVersion: false);
+ if ($parentClass === null) {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getClass($element->parentName, shouldSuitCurrentPhpVersion: false);
+ }
+ if ($parentClass === null) {
+ $parentClass = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($element->parentName, shouldSuitCurrentPhpVersion: false);
+ }
+ $latestAvailableVersionFromPhpDoc = self::getLatestAvailableVersionFromPhpDoc($parentClass);
+ $latestAvailableVersionFromAttribute = self::getLatestAvailableVersionsFromAttribute($parentClass);
+ return empty($latestAvailableVersionFromAttribute) ? $latestAvailableVersionFromPhpDoc : $latestAvailableVersionFromAttribute;
+ }
+
+ /**
+ * @return float[]
+ */
+ public static function getSinceVersionsFromAttribute(BasePHPElement $element): array
+ {
+ $allSinceVersions = [];
+ if (!empty($element->availableVersionsRangeFromAttribute)) {
+ $allSinceVersions[] = $element->availableVersionsRangeFromAttribute['from'];
+ }
+ return $allSinceVersions;
+ }
+
+ /**
+ * @return float[]
+ */
+ public static function getLatestAvailableVersionsFromAttribute(BasePHPElement $element): array
+ {
+ $latestAvailableVersions = [];
+ if (!empty($element->availableVersionsRangeFromAttribute)) {
+ $latestAvailableVersions[] = $element->availableVersionsRangeFromAttribute['to'];
+ }
+ return $latestAvailableVersions;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/StubParser.php b/phpstorm-stubs/tests/Parsers/StubParser.php
new file mode 100644
index 0000000..cdfe8fc
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/StubParser.php
@@ -0,0 +1,119 @@
+ $file->getFilename() !== '.phpstorm.meta.php'
+ );
+
+ $jsonData = json_decode(file_get_contents(__DIR__ . '/../TestData/mutedProblems.json'), false, 512, JSON_THROW_ON_ERROR);
+ foreach (self::$stubs->getInterfaces() as $interface) {
+ $interface->readMutedProblems($jsonData->interfaces);
+ $interface->parentInterfaces = $visitor->combineParentInterfaces($interface);
+ }
+ foreach (self::$stubs->getClasses() as $class) {
+ $class->readMutedProblems($jsonData->classes);
+ $class->interfaces = CommonUtils::flattenArray($visitor->combineImplementedInterfaces($class), false);
+ foreach ($class->methods as $method) {
+ $method->templateTypes += $class->templateTypes;
+ }
+ }
+ foreach (self::$stubs->getFunctions() as $function) {
+ $function->readMutedProblems($jsonData->functions);
+ }
+ foreach (self::$stubs->getConstants() as $constant) {
+ $constant->readMutedProblems($jsonData->constants);
+ }
+ return self::$stubs;
+ }
+
+ /**
+ * @throws LogicException
+ * @throws UnexpectedValueException
+ */
+ public static function processStubs(NodeVisitorAbstract $visitor, ?CoreStubASTVisitor $coreStubASTVisitor, callable $fileCondition): void
+ {
+ $parser = (new ParserFactory())->createForNewestSupportedVersion();
+ $nameResolver = new NameResolver(null, ['preserveOriginalNames' => true]);
+
+ $stubsIterator =
+ new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator(__DIR__ . '/../../', FilesystemIterator::SKIP_DOTS)
+ );
+ $coreStubDirectories = PhpCoreStubsProvider::getCoreStubsDirectories();
+ /** @var SplFileInfo $file */
+ foreach ($stubsIterator as $file) {
+ if (!$fileCondition($file) || basename(dirname($file->getRealPath())) === 'phpstorm-stubs' ||
+ strpos($file->getRealPath(), 'vendor') || strpos($file->getRealPath(), '.git') ||
+ strpos($file->getRealPath(), 'tests') || strpos($file->getRealPath(), '.idea')) {
+ continue;
+ }
+ $code = file_get_contents($file->getRealPath());
+ $traverser = new NodeTraverser();
+ $traverser->addVisitor(new ParentConnector());
+ $traverser->addVisitor($nameResolver);
+ if ($coreStubASTVisitor !== null && self::stubBelongsToCore($file, $coreStubDirectories)) {
+ $coreStubASTVisitor->sourceFilePath = $file->getPath();
+ $traverser->addVisitor($coreStubASTVisitor);
+ } else {
+ if ($visitor instanceof ASTVisitor) {
+ $visitor->sourceFilePath = $file->getPath();
+ }
+ $traverser->addVisitor($visitor);
+ }
+ $traverser->traverse($parser->parse($code, new StubsParserErrorHandler()));
+ }
+ }
+
+ private static function stubBelongsToCore(SplFileInfo $file, array $coreStubDirectories): bool
+ {
+ $filePath = dirname($file->getRealPath());
+ while (stripos($filePath, 'phpstorm-stubs') !== strlen($filePath) - strlen('phpstorm-stubs')) {
+ if (in_array(basename($filePath), $coreStubDirectories, true)) {
+ return true;
+ }
+ $filePath = dirname($filePath);
+ }
+ return false;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/StubsParserErrorHandler.php b/phpstorm-stubs/tests/Parsers/StubsParserErrorHandler.php
new file mode 100644
index 0000000..3c48dd4
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/StubsParserErrorHandler.php
@@ -0,0 +1,15 @@
+setRawMessage($error->getRawMessage() . "\n" . $error->getFile());
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/Visitors/ASTVisitor.php b/phpstorm-stubs/tests/Parsers/Visitors/ASTVisitor.php
new file mode 100644
index 0000000..ed2c8b5
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/Visitors/ASTVisitor.php
@@ -0,0 +1,199 @@
+readObjectFromStubNode($node);
+ $function->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $function->stubBelongsToCore = true;
+ }
+ $this->stubs->addFunction($function);
+ } elseif ($node instanceof Node\Stmt\EnumCase) {
+ $constant = (new PHPEnumCase())->readObjectFromStubNode($node);
+ $constant->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $constant->stubBelongsToCore = true;
+ }
+ if ($this->stubs->getEnum($constant->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getEnum($constant->parentName, $this->sourceFilePath, false)->addEnumCase($constant);
+ }
+ } elseif ($node instanceof Const_) {
+ $constant = (new PHPConst())->readObjectFromStubNode($node);
+ $constant->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $constant->stubBelongsToCore = true;
+ }
+ if ($constant->parentName === null) {
+ $this->stubs->addConstant($constant);
+ } elseif ($this->stubs->getEnum($constant->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getEnum($constant->parentName, $this->sourceFilePath, false)->addConstant($constant);
+ } elseif ($this->stubs->getClass($constant->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getClass($constant->parentName, $this->sourceFilePath, false)->addConstant($constant);
+ } elseif ($this->stubs->getInterface($constant->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getInterface($constant->parentName, $this->sourceFilePath, false)->addConstant($constant);
+ }
+ } elseif ($node instanceof FuncCall) {
+ if ((string)$node->name === 'define') {
+ $constant = (new PHPDefineConstant())->readObjectFromStubNode($node);
+ $constant->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $constant->stubBelongsToCore = true;
+ }
+ $this->stubs->addConstant($constant);
+ }
+ } elseif ($node instanceof ClassMethod) {
+ $method = (new PHPMethod())->readObjectFromStubNode($node);
+ $method->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $method->stubBelongsToCore = true;
+ }
+ if ($this->stubs->getEnum($method->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getEnum($method->parentName, $this->sourceFilePath, false)->addMethod($method);
+ }
+ elseif ($this->stubs->getClass($method->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getClass($method->parentName, $this->sourceFilePath, false)->addMethod($method);
+ } elseif ($this->stubs->getInterface($method->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getInterface($method->parentName, $this->sourceFilePath, false)->addMethod($method);
+ }
+ } elseif ($node instanceof Interface_) {
+ $interface = (new PHPInterface())->readObjectFromStubNode($node);
+ $interface->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $interface->stubBelongsToCore = true;
+ }
+ $this->stubs->addInterface($interface);
+ } elseif ($node instanceof Class_) {
+ $class = (new PHPClass())->readObjectFromStubNode($node);
+ $class->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $class->stubBelongsToCore = true;
+ }
+ $this->stubs->addClass($class);
+ } elseif ($node instanceof Enum_) {
+ $enum = (new PHPEnum())->readObjectFromStubNode($node);
+ $enum->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $enum->stubBelongsToCore = true;
+ }
+ $this->stubs->addEnum($enum);
+ } elseif ($node instanceof Node\Stmt\Property) {
+ $property = (new PHPProperty())->readObjectFromStubNode($node);
+ $property->sourceFilePath = $this->sourceFilePath;
+ if ($this->isStubCore) {
+ $property->stubBelongsToCore = true;
+ }
+
+ if ($this->stubs->getClass($property->parentName, $this->sourceFilePath, false) !== null) {
+ $this->stubs->getClass($property->parentName, $this->sourceFilePath, false)->addProperty($property);
+ }
+ }
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function combineParentInterfaces(PHPInterface $interface): array
+ {
+ $parents = [];
+ if (empty($interface->parentInterfaces)) {
+ return $parents;
+ }
+ /** @var string $parentInterface */
+ foreach ($interface->parentInterfaces as $parentInterface) {
+ $parents[] = $parentInterface;
+ if ($this->stubs->getInterface(
+ $parentInterface,
+ $interface->stubBelongsToCore ? null : $interface->sourceFilePath,
+ false
+ ) !== null) {
+ foreach ($this->combineParentInterfaces(
+ $this->stubs->getInterface(
+ $parentInterface,
+ $interface->stubBelongsToCore ? null : $interface->sourceFilePath,
+ false
+ )
+ ) as $value) {
+ $parents[] = $value;
+ }
+ }
+ }
+ return $parents;
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function combineImplementedInterfaces(PHPClass $class): array
+ {
+ $interfaces = [];
+ /** @var string $interface */
+ foreach ($class->interfaces as $interface) {
+ $interfaces[] = $interface;
+ if ($this->stubs->getInterface(
+ $interface,
+ $class->stubBelongsToCore ? null : $class->sourceFilePath,
+ false
+ ) !== null) {
+ $interfaces[] = $this->stubs->getInterface(
+ $interface,
+ $class->stubBelongsToCore ? null : $class->sourceFilePath,
+ false
+ )->parentInterfaces;
+ }
+ }
+ if ($class->parentClass === null) {
+ return $interfaces;
+ }
+ if ($this->stubs->getClass(
+ $class->parentClass,
+ $class->stubBelongsToCore ? null : $class->sourceFilePath,
+ false
+ ) !== null) {
+ $inherited = $this->combineImplementedInterfaces($this->stubs->getClass(
+ $class->parentClass,
+ $class->stubBelongsToCore ? null : $class->sourceFilePath,
+ false
+ ));
+ $interfaces[] = CommonUtils::flattenArray($inherited, false);
+ }
+ return $interfaces;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/Visitors/CoreStubASTVisitor.php b/phpstorm-stubs/tests/Parsers/Visitors/CoreStubASTVisitor.php
new file mode 100644
index 0000000..ba461f9
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/Visitors/CoreStubASTVisitor.php
@@ -0,0 +1,17 @@
+isStubCore = true;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/Visitors/MetaOverrideFunctionsParser.php b/phpstorm-stubs/tests/Parsers/Visitors/MetaOverrideFunctionsParser.php
new file mode 100644
index 0000000..0425461
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/Visitors/MetaOverrideFunctionsParser.php
@@ -0,0 +1,63 @@
+overridenFunctions = [];
+ StubParser::processStubs(
+ $this,
+ null,
+ fn (SplFileInfo $file): bool => $file->getFilename() === '.phpstorm.meta.php'
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function enterNode(Node $node): void
+ {
+ if ($node instanceof Node\Expr\FuncCall && (string)$node->name === self::OVERRIDE_FUNCTION) {
+ $args = $node->args;
+ if (count($args) < 2) {
+ throw new RuntimeException('Expected at least 2 arguments for override call');
+ }
+ $this->overridenFunctions[] = self::getOverrideFunctionName($args[0]);
+ }
+ }
+
+ private static function getOverrideFunctionName(Node\Arg $param): string
+ {
+ $paramValue = $param->value;
+ if ($paramValue instanceof Expr\StaticCall) {
+ $targetFunction = $paramValue->class . '::' . $paramValue->name;
+ } else {
+ $targetFunction = (string)$paramValue->name;
+ }
+ return $targetFunction;
+ }
+}
diff --git a/phpstorm-stubs/tests/Parsers/Visitors/ParentConnector.php b/phpstorm-stubs/tests/Parsers/Visitors/ParentConnector.php
new file mode 100644
index 0000000..769b831
--- /dev/null
+++ b/phpstorm-stubs/tests/Parsers/Visitors/ParentConnector.php
@@ -0,0 +1,37 @@
+stack = [];
+ }
+
+ public function enterNode(Node $node): void
+ {
+ if (!empty($this->stack)) {
+ $node->setAttribute('parent', $this->stack[count($this->stack) - 1]);
+ }
+ $this->stack[] = $node;
+ }
+
+ public function leaveNode(Node $node): void
+ {
+ array_pop($this->stack);
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsCompositeMixedReturnTypeTest.php b/phpstorm-stubs/tests/StubsCompositeMixedReturnTypeTest.php
new file mode 100644
index 0000000..820786e
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsCompositeMixedReturnTypeTest.php
@@ -0,0 +1,30 @@
+returnTypesFromPhpDoc;
+ static::assertContains('false', $returnTypesFromPhpDoc, "Return type of " . $function->name .
+ " should contain 'false' in PhpDoc. See https://youtrack.jetbrains.com/issue/WI-57991 for details");
+ static::assertContains('mixed', $returnTypesFromPhpDoc, "Return type of " . $function->name .
+ " should contain 'mixed' in PhpDoc. See https://youtrack.jetbrains.com/issue/WI-57991 for details");
+ }
+
+ #[DataProviderExternal(StubsCompositeMixedProvider::class, 'expectedFunctionsMixedNullReturnProvider')]
+ public function testPhpDocContainsMixedNullReturnType(PHPFunction $function)
+ {
+ $returnTypesFromPhpDoc = $function->returnTypesFromPhpDoc;
+ static::assertContains('mixed', $returnTypesFromPhpDoc, "Return type of " . $function->name .
+ " should contain 'mixed' in PhpDoc. See https://youtrack.jetbrains.com/issue/WI-57991 for details");
+ static::assertContains('null', $returnTypesFromPhpDoc, "Return type of " . $function->name .
+ " should contain 'null' in PhpDoc. See https://youtrack.jetbrains.com/issue/WI-57991 for details");
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsConstantsAndParametersValuesTest.php b/phpstorm-stubs/tests/StubsConstantsAndParametersValuesTest.php
new file mode 100644
index 0000000..ee22b58
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsConstantsAndParametersValuesTest.php
@@ -0,0 +1,157 @@
+name;
+ $constantValue = $constant->value;
+ $stubConstant = PhpStormStubsSingleton::getPhpStormStubs()->getConstant($constantName);
+ self::assertEquals(
+ $constantValue,
+ $stubConstant->value,
+ "Constant value mismatch: const $constantName \n
+ Expected value: $constantValue but was $stubConstant->value"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'functionOptionalParametersWithDefaultValueProvider')]
+ public function testFunctionsDefaultParametersValue(PHPFunction $function, PHPParameter $parameter)
+ {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($function->name);
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+ $reflectionValue = AbstractBaseStubsTestCase::getStringRepresentationOfDefaultParameterValue($parameter->defaultValue);
+ $stubValue = AbstractBaseStubsTestCase::getStringRepresentationOfDefaultParameterValue($stubOptionalParameter->defaultValue);
+ self::assertEquals(
+ $reflectionValue,
+ $stubValue,
+ sprintf(
+ 'Reflection function %s has optional parameter %s with default value "%s" but stub parameter has value "%s"',
+ $function->name,
+ $parameter->name,
+ $reflectionValue,
+ $stubValue
+ )
+ );
+ }
+
+ /**
+ * @dataProvider \StubTests\TestData\Providers\Reflection\ReflectionParametersProvider::functionOptionalParametersWithoutDefaultValueProvider
+ * @throws Exception|RuntimeException
+ */
+ public function testFunctionsWithoutOptionalDefaultParametersValue(PHPFunction $function, PHPParameter $parameter)
+ {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($function->name);
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+
+ self::assertTrue(
+ empty($stubOptionalParameter->defaultValue),
+ sprintf(
+ 'Stub function "%s" has a parameter "%s" which expected to have no default value but it has',
+ $function->name,
+ $stubOptionalParameter->name
+ )
+ );
+ self::assertTrue(
+ $stubOptionalParameter->markedOptionalInPhpDoc,
+ sprintf(
+ 'Stub function "%s" has a parameter "%s" which expected to be marked as [optional] at PHPDoc but it is not',
+ $function->name,
+ $stubOptionalParameter->name
+ )
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'methodOptionalParametersWithDefaultValueProvider')]
+ public function testMethodsDefaultParametersValue(PHPClass|PHPInterface $class, PHPMethod $method, PHPParameter $parameter)
+ {
+ if ($class instanceof PHPEnum) {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($class->name)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getMethod($method->name);
+ } else {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getMethod($method->name);
+ }
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+ $reflectionValue = AbstractBaseStubsTestCase::getStringRepresentationOfDefaultParameterValue($parameter->defaultValue);
+ $stubValue = AbstractBaseStubsTestCase::getStringRepresentationOfDefaultParameterValue($stubOptionalParameter->defaultValue, $class);
+ self::assertEquals(
+ $reflectionValue,
+ $stubValue,
+ sprintf(
+ 'Reflection method %s::%s has optional parameter %s with default value %s but stub parameter has value %s',
+ $class->name,
+ $method->name,
+ $parameter->name,
+ $reflectionValue,
+ $stubValue
+ )
+ );
+ }
+
+ /**
+ * @dataProvider \StubTests\TestData\Providers\Reflection\ReflectionParametersProvider::methodOptionalParametersWithoutDefaultValueProvider
+ * @throws Exception|RuntimeException
+ */
+ public function testMethodsWithoutOptionalDefaultParametersValue(PHPClass|PHPInterface $class, PHPMethod $method, PHPParameter $parameter)
+ {
+ if ($class instanceof PHPEnum) {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($class->name)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getMethod($method->name);
+ } else {
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getMethod($method->name);
+ }
+ $stubParameters = array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature);
+ /** @var PHPParameter $stubOptionalParameter */
+ $stubOptionalParameter = array_pop($stubParameters);
+
+ self::assertTrue(
+ empty($stubOptionalParameter->defaultValue),
+ sprintf(
+ 'Stub method %s::%s has a parameter "%s" which expected to have no default value but it has',
+ $class->name,
+ $method->name,
+ $stubOptionalParameter->name
+ )
+ );
+ self::assertTrue(
+ $stubOptionalParameter->markedOptionalInPhpDoc,
+ sprintf(
+ 'Stub method %s::%s has a parameter "%s" which expected to be marked as [optional] at PHPDoc but it is not',
+ $class->name,
+ $method->name,
+ $stubOptionalParameter->name
+ )
+ );
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsForbiddenTypeHintsTest.php b/phpstorm-stubs/tests/StubsForbiddenTypeHintsTest.php
new file mode 100644
index 0000000..f73c7d0
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsForbiddenTypeHintsTest.php
@@ -0,0 +1,105 @@
+returnTypesFromSignature;
+ self::assertEmpty(
+ array_filter($returnTypes, fn (string $type) => str_contains($type, '?')),
+ "Method '$stubMethod->parentName::$stubMethod->name' has since version '$sinceVersion'
+ but has nullable return typehint '" . implode('|', $returnTypes) . "' that supported only since PHP 7.1.
+ Please declare return type via PhpDoc"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForUnionTypeHintTestsProvider')]
+ public static function testMethodDoesNotHaveUnionTypeHintsInParameters(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $parameter)
+ {
+ $sinceVersion = ParserUtils::getDeclaredSinceVersion($stubMethod);
+ self::assertLessThan(
+ 2,
+ count($parameter->typesFromSignature),
+ "Method '$class->name::$stubMethod->name' with @since '$sinceVersion'
+ has parameter '$parameter->name' with union typehint '" . implode('|', $parameter->typesFromSignature) . "'
+ but union typehints available only since php 8.0"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForNullableTypeHintTestsProvider')]
+ public static function testMethodDoesNotHaveNullableTypeHintsInParameters(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $parameter)
+ {
+ $sinceVersion = ParserUtils::getDeclaredSinceVersion($stubMethod);
+ self::assertEmpty(
+ array_filter($parameter->typesFromSignature, fn (string $type) => str_contains($type, '?')),
+ "Method '$class->name::$stubMethod->name' with @since '$sinceVersion'
+ has nullable parameter '$parameter->name' with typehint '" . implode('|', $parameter->typesFromSignature) . "'
+ but nullable typehints available only since php 7.1"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubMethodsProvider::class, 'methodsForUnionReturnTypeHintTestsProvider')]
+ public static function testMethodDoesNotHaveUnionReturnTypeHint(PHPMethod $stubMethod)
+ {
+ $sinceVersion = ParserUtils::getDeclaredSinceVersion($stubMethod);
+ self::assertLessThan(
+ 2,
+ count($stubMethod->returnTypesFromSignature),
+ "Method '$stubMethod->parentName::$stubMethod->name' has since version '$sinceVersion'
+ but has union return typehint '" . implode('|', $stubMethod->returnTypesFromSignature) . "' that supported only since PHP 8.0.
+ Please declare return type via PhpDoc"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForScalarTypeHintTestsProvider')]
+ public static function testMethodDoesNotHaveScalarTypeHintsInParameters(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $parameter)
+ {
+ $sinceVersion = ParserUtils::getDeclaredSinceVersion($stubMethod);
+ self::assertEmpty(
+ array_intersect(['int', 'float', 'string', 'bool', 'mixed', 'object'], $parameter->typesFromSignature),
+ "Method '$class->name::$stubMethod->name' with @since '$sinceVersion'
+ has parameter '$parameter->name' with typehint '" . implode('|', $parameter->typesFromSignature) .
+ "' but typehints available only since php 7"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubMethodsProvider::class, 'methodsForReturnTypeHintTestsProvider')]
+ public static function testMethodDoesNotHaveReturnTypeHint(PHPMethod $stubMethod)
+ {
+ $sinceVersion = ParserUtils::getDeclaredSinceVersion($stubMethod);
+ self::assertEmpty($stubMethod->returnTypesFromSignature, "Method '$stubMethod->parentName::$stubMethod->name' has since version '$sinceVersion'
+ but has return typehint '" . implode('|', $stubMethod->returnTypesFromSignature) . "' that supported only since PHP 7. Please declare return type via PhpDoc");
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsMetaExpectedArgumentsTest.php b/phpstorm-stubs/tests/StubsMetaExpectedArgumentsTest.php
new file mode 100644
index 0000000..53adf12
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsMetaExpectedArgumentsTest.php
@@ -0,0 +1,312 @@
+getExpectedArgumentsInfos();
+ self::$registeredArgumentsSet = $argumentsCollector->getRegisteredArgumentsSet();
+ $stubs = PhpStormStubsSingleton::getPhpStormStubs();
+ self::$functionsFqns = array_map(fn (PHPFunction $func) => self::toPresentableFqn($func->name), $stubs->getFunctions());
+ self::$methodsFqns = self::getMethodsFqns($stubs);
+ self::$constantsFqns = self::getConstantsFqns($stubs);
+ }
+
+ private static function flatten(array $array): array
+ {
+ $return = [];
+ array_walk_recursive($array, function ($a) use (&$return) {
+ $return[$a] = $a;
+ });
+ return $return;
+ }
+
+ public static function getConstantsFqns(StubsContainer $stubs): array
+ {
+ $constants = array_map(fn (PHPConst $constant) => self::toPresentableFqn($constant->name), $stubs->getConstants());
+ foreach ($stubs->getClasses() as $class) {
+ foreach ($class->constants as $classConstant) {
+ $name = self::getClassMemberFqn($class->name, $classConstant->name);
+ $constants[$name] = $name;
+ }
+ }
+ return $constants;
+ }
+
+ public static function getMethodsFqns(StubsContainer $stubs): array
+ {
+ return self::flatten(
+ array_map(fn (PHPClass $class) => array_map(fn (PHPMethod $method) => self::getClassMemberFqn($class->name, $method->name), $class->methods), $stubs->getClasses())
+ );
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testFunctionReferencesExists()
+ {
+ foreach (self::$expectedArguments as $argument) {
+ $expr = $argument->getFunctionReference();
+ if ($expr instanceof FuncCall) {
+ $fqn = self::toPresentableFqn($expr->name->toCodeString());
+ if (!str_starts_with($fqn, self::PSR_LOG_LOGGER_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::GUZZLE_HTTP_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::ILLUMINATE_NAMESPACE_PREFIX)) {
+ self::assertArrayHasKey($fqn, self::$functionsFqns, "Can't resolve function " . $fqn);
+ }
+ } elseif ($expr instanceof StaticCall) {
+ if ((string)$expr->name !== '__construct') {
+ $fqn = self::getClassMemberFqn($expr->class->toCodeString(), (string)$expr->name);
+ if (!str_starts_with($fqn, self::PSR_LOG_LOGGER_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::GUZZLE_HTTP_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::ILLUMINATE_NAMESPACE_PREFIX)) {
+ self::assertArrayHasKey($fqn, self::$methodsFqns, "Can't resolve method " . $fqn);
+ }
+ }
+ } elseif ($expr instanceof ConstFetch) {
+ $fqn = self::toPresentableFqn($expr->name->toCodeString());
+ if (!str_starts_with($fqn, self::PSR_LOG_LOGGER_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::GUZZLE_HTTP_NAMESPACE_PREFIX) &&
+ !str_starts_with($fqn, self::ILLUMINATE_NAMESPACE_PREFIX)) {
+ self::assertArrayHasKey($fqn, self::$constantsFqns, "Can't resolve constant " . $fqn);
+ }
+ }
+ elseif ($expr !== null) {
+ self::fail('First argument should be function reference or method reference, got: ' . $expr::class);
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testConstantsExists()
+ {
+ foreach (self::$expectedArguments as $argument) {
+ $expectedArguments = $argument->getExpectedArguments();
+ self::assertNotEmpty($expectedArguments, 'Expected arguments should not be empty for ' . $argument);
+ foreach ($expectedArguments as $constantReference) {
+ if ($constantReference instanceof ClassConstFetch) {
+ $fqn = self::getClassMemberFqn($constantReference->class->toCodeString(), (string)$constantReference->name);
+ if (!str_starts_with($fqn, self::PSR_LOG_LOGGER_NAMESPACE_PREFIX)) {
+ self::assertArrayHasKey($fqn, self::$constantsFqns, "Can't resolve class constant " . $fqn);
+ }
+ } elseif ($constantReference instanceof ConstFetch) {
+ $fqn = self::toPresentableFqn($constantReference->name->toCodeString());
+ self::assertArrayHasKey($fqn, self::$constantsFqns, "Can't resolve constant " . $fqn);
+ }
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testRegisteredArgumentsSetExists()
+ {
+ foreach (self::$expectedArguments as $argument) {
+ $usedArgumentsSet = [];
+ foreach ($argument->getExpectedArguments() as $argumentsSet) {
+ if ($argumentsSet instanceof FuncCall && (string)$argumentsSet->name === 'argumentsSet') {
+ $args = $argumentsSet->args;
+ self::assertGreaterThanOrEqual(1, count($args), 'argumentsSet call should provide set name');
+ if (property_exists($args[0]->value, 'value')) {
+ $name = $args[0]->value->value;
+ } else {
+ self::fail("Couldn't read name of arguments set");
+ }
+ self::assertContains($name, self::$registeredArgumentsSet, 'Can\'t find registered argument set: ' . $name);
+ self::assertArrayNotHasKey(
+ $name,
+ $usedArgumentsSet,
+ $name . ' argumentsSet used more then once for ' . self::getFqn($argument->getFunctionReference())
+ );
+ $usedArgumentsSet[$name] = $name;
+ }
+ }
+ }
+ }
+
+ public function testStringLiteralsSingleQuoted()
+ {
+ foreach (self::$expectedArguments as $argument) {
+ foreach ($argument->getExpectedArguments() as $literalArgument) {
+ if ($literalArgument instanceof String_) {
+ self::assertEquals(
+ String_::KIND_SINGLE_QUOTED,
+ $literalArgument->getAttribute('kind'),
+ 'String literals as expectedArguments should be single-quoted'
+ );
+ }
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testExpectedArgumentsAreUnique()
+ {
+ $functionsFqnsWithIndeces = [];
+ foreach (self::$expectedArguments as $argument) {
+ if ($argument->getIndex() < 0) {
+ continue;
+ }
+ $functionReferenceFqn = self::getFqn($argument->getFunctionReference());
+ $index = $argument->getIndex();
+ if (array_key_exists($functionReferenceFqn, $functionsFqnsWithIndeces)) {
+ self::assertNotContains($index, $functionsFqnsWithIndeces[$functionReferenceFqn], 'Expected arguments for ' . $functionReferenceFqn . ' with index ' . $index . ' already registered');
+ $functionsFqnsWithIndeces[$functionReferenceFqn][] = $index;
+ } else {
+ $functionsFqnsWithIndeces[$functionReferenceFqn] = [$index];
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testExpectedReturnValuesAreUnique()
+ {
+ $expectedReturnValuesFunctionsFqns = [];
+ foreach (self::$expectedArguments as $argument) {
+ if ($argument->getIndex() >= 0 || $argument->getFunctionReference() === null) {
+ continue;
+ }
+ $functionReferenceFqn = self::getFqn($argument->getFunctionReference());
+ self::assertArrayNotHasKey(
+ $functionReferenceFqn,
+ $expectedReturnValuesFunctionsFqns,
+ 'Expected return values for ' . $functionReferenceFqn . ' already registered'
+ );
+ $expectedReturnValuesFunctionsFqns[$functionReferenceFqn] = $functionReferenceFqn;
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public static function testRegisteredArgumentsSetAreUnique()
+ {
+ $registeredArgumentsSet = [];
+ foreach (self::$registeredArgumentsSet as $name) {
+ self::assertArrayNotHasKey($name, $registeredArgumentsSet, 'Set with name ' . $name . ' already registered');
+ $registeredArgumentsSet[$name] = $name;
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testReferencesAreAbsolute()
+ {
+ foreach (self::$expectedArguments as $argument) {
+ $expr = $argument->getFunctionReference();
+ if ($expr !== null) {
+ if ($expr instanceof StaticCall) {
+ $name = $expr->class;
+ } elseif (property_exists($expr, 'name')) {
+ $name = $expr->name;
+ } else {
+ self::fail("Couldn't read name of expression");
+ }
+ $originalName = $name->getAttribute('originalName');
+ if (method_exists($originalName, 'isFullyQualified')) {
+ self::assertTrue(
+ $originalName->isFullyQualified(),
+ self::getFqn($expr) . ' should be fully qualified'
+ );
+ } else {
+ self::fail('Could not check if name is fully qualified');
+ }
+ }
+ }
+ }
+
+ #[Pure]
+ private static function getClassMemberFqn(string $className, string $memberName): string
+ {
+ return self::toPresentableFqn($className) . '.' . $memberName;
+ }
+
+ private static function toPresentableFqn(string $name): string
+ {
+ if (str_starts_with($name, '\\')) {
+ return substr($name, 1);
+ }
+ return $name;
+ }
+
+ /**
+ * @throws Exception
+ */
+ private static function getFqn(?Expr $expr): string
+ {
+ if ($expr instanceof StaticCall) {
+ return self::getClassMemberFqn($expr->class->toCodeString(), (string)$expr->name);
+ } elseif (property_exists($expr, 'name')) {
+ return self::toPresentableFqn((string)$expr->name);
+ } else {
+ throw new Exception("Couldn't read a name of property with type {$expr->getType()}");
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsMetaInternalTagTest.php b/phpstorm-stubs/tests/StubsMetaInternalTagTest.php
new file mode 100644
index 0000000..a39378a
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsMetaInternalTagTest.php
@@ -0,0 +1,89 @@
+overridenFunctions;
+ }
+
+ /**
+ * @throws Exception
+ */
+ public function testFunctionInternalMetaTag(): void
+ {
+ $functions = PhpStormStubsSingleton::getPhpStormStubs()->getFunctions();
+ foreach ($functions as $function) {
+ if ($function->hasInternalMetaTag) {
+ $reflectionFunctions = array_filter(
+ ReflectionStubsSingleton::getReflectionStubs()->getFunctions(),
+ fn ($refFunction) => $refFunction->name === $function->name
+ );
+ $reflectionFunction = array_pop($reflectionFunctions);
+ if ($reflectionFunction !== null && !$reflectionFunction->hasMutedProblem(StubProblemType::ABSENT_IN_META)) {
+ self::checkInternalMetaInOverride($function->name);
+ }
+ }
+ }
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function testMethodsInternalMetaTag(): void
+ {
+ foreach (PhpStormStubsSingleton::getPhpStormStubs()->getClasses() as $className => $class) {
+ foreach ($class->methods as $methodName => $method) {
+ if ($method->hasInternalMetaTag) {
+ $refClass = ReflectionStubsSingleton::getReflectionStubs()->getClass($className);
+ if ($refClass !== null) {
+ $reflectionMethods = array_filter(
+ $refClass->methods,
+ fn ($refMethod) => $refMethod->name === $methodName
+ );
+ /** @var PHPMethod $reflectionMethod */
+ $reflectionMethod = array_pop($reflectionMethods);
+ if ($reflectionMethod->hasMutedProblem(StubProblemType::ABSENT_IN_META)) {
+ static::markTestSkipped('method intentionally not added to meta');
+ } else {
+ self::checkInternalMetaInOverride($className . '::' . $methodName);
+ }
+ }
+ } else {
+ $this->expectNotToPerformAssertions();
+ }
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ private static function checkInternalMetaInOverride(string $elementName): void
+ {
+ self::assertContains(
+ $elementName,
+ self::$overriddenFunctionsInMeta,
+ "$elementName contains @meta in phpdoc but isn't added to 'override()' functions in meta file"
+ );
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsParameterNamesTest.php b/phpstorm-stubs/tests/StubsParameterNamesTest.php
new file mode 100644
index 0000000..8f767c6
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsParameterNamesTest.php
@@ -0,0 +1,71 @@
+getFunction($function->name);
+ self::assertNotEmpty(
+ array_filter(
+ $phpstormFunction->parameters,
+ fn (PHPParameter $stubParameter) => $stubParameter->name === $parameter->name
+ ),
+ "Function $function->name has signature $function->name(" . self::printParameters($function->parameters) . ')' .
+ " but stub function has signature $phpstormFunction->name(" . self::printParameters($phpstormFunction->parameters) . ')'
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'methodParametersProvider')]
+ public function testMethodsParameterNames(PHPClass|PHPInterface $reflectionClass, PHPMethod $reflectionMethod, PHPParameter $reflectionParameter)
+ {
+ $className = $reflectionClass->name;
+ $methodName = $reflectionMethod->name;
+ if ($reflectionClass instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($methodName);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($methodName);
+ }
+ self::assertNotEmpty(
+ array_filter(
+ $stubMethod->parameters,
+ fn (PHPParameter $stubParameter) => $stubParameter->name === $reflectionParameter->name
+ ),
+ "Method $className::$methodName has signature $methodName(" . self::printParameters($reflectionMethod->parameters) . ')' .
+ " but stub function has signature $methodName(" . self::printParameters($stubMethod->parameters) . ')'
+ );
+ }
+
+ /**
+ * @param PHPParameter[] $params
+ */
+ #[Pure]
+ public static function printParameters(array $params): string
+ {
+ $signature = '';
+ foreach ($params as $param) {
+ $signature .= '$' . $param->name . ', ';
+ }
+ return trim($signature, ', ');
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsPhp81Tests.php b/phpstorm-stubs/tests/StubsPhp81Tests.php
new file mode 100644
index 0000000..8e21f9a
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsPhp81Tests.php
@@ -0,0 +1,78 @@
+name;
+ $stubProperty = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getProperty($property->name);
+ static::assertEquals(
+ $property->isReadonly,
+ $stubProperty->isReadonly,
+ "Property $className::$property->name readonly modifier is incorrect"
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classMethodsWithTentitiveReturnTypeProvider')]
+ public function testTentativeReturnTypeHints(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $functionName = $method->name;
+ if ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getMethod($functionName);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getMethod($functionName);
+ }
+ $unifiedStubsReturnTypes = [];
+ $unifiedStubsAttributesReturnTypes = [];
+ $unifiedReflectionReturnTypes = [];
+ self::convertNullableTypesToUnion($method->returnTypesFromSignature, $unifiedReflectionReturnTypes);
+ if (!empty($stubMethod->returnTypesFromSignature)) {
+ self::convertNullableTypesToUnion($stubMethod->returnTypesFromSignature, $unifiedStubsReturnTypes);
+ } else {
+ foreach ($stubMethod->returnTypesFromAttribute as $languageVersion => $listOfTypes) {
+ $unifiedStubsAttributesReturnTypes[$languageVersion] = [];
+ self::convertNullableTypesToUnion($listOfTypes, $unifiedStubsAttributesReturnTypes[$languageVersion]);
+ }
+ }
+ $conditionToCompareWithSignature = AbstractBaseStubsTestCase::isReflectionTypesMatchSignature(
+ $unifiedReflectionReturnTypes,
+ $unifiedStubsReturnTypes
+ );
+ $typesFromAttribute = [];
+ if (!empty($unifiedStubsAttributesReturnTypes)) {
+ $typesFromAttribute = !empty($unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')]) ?
+ $unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')] :
+ $unifiedStubsAttributesReturnTypes['default'];
+ }
+ $conditionToCompareWithAttribute = AbstractBaseStubsTestCase::isReflectionTypesExistInAttributes($unifiedReflectionReturnTypes, $typesFromAttribute);
+ $testCondition = $conditionToCompareWithSignature || $conditionToCompareWithAttribute;
+ self::assertTrue(
+ $testCondition,
+ "Method $class->name::$functionName has invalid return type. Reflection method has return type " .
+ implode('|', $method->returnTypesFromSignature) .
+ ' but stubs has return type ' . implode('|', $stubMethod->returnTypesFromSignature) .
+ ' in signature and attribute has types ' . implode('|', $typesFromAttribute)
+ );
+ self::assertTrue($stubMethod->isReturnTypeTentative, "Reflection method $class->name::$functionName has " .
+ "tentative return type but stub's method isn't declared as tentative");
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsPhpDocTest.php b/phpstorm-stubs/tests/StubsPhpDocTest.php
new file mode 100644
index 0000000..613d64b
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsPhpDocTest.php
@@ -0,0 +1,238 @@
+parseError, $constant->parseError ?: '');
+ self::checkPHPDocCorrectness($constant, "constant $class->sourceFilePath/$class->name::$constant->name");
+ }
+
+ /**
+ * @throws Exception
+ */
+ #[DataProviderExternal(StubConstantsProvider::class, 'globalConstantProvider')]
+ public static function testConstantsPHPDocs(PHPConst $constant): void
+ {
+ self::assertNull($constant->parseError, $constant->parseError ?: '');
+ self::checkPHPDocCorrectness($constant, "constant $constant->name");
+ }
+
+ /**
+ * @throws Exception
+ */
+ #[DataProviderExternal(StubsTestDataProviders::class, 'allFunctionsProvider')]
+ public static function testFunctionPHPDocs(PHPFunction $function): void
+ {
+ self::assertNull($function->parseError, $function->parseError?->getMessage() ?: '');
+ self::checkPHPDocCorrectness($function, "function $function->name");
+ }
+
+ /**
+ * @throws Exception
+ */
+ #[DataProviderExternal(StubsTestDataProviders::class, 'allClassesProvider')]
+ public static function testClassesPHPDocs(BasePHPClass $class): void
+ {
+ self::assertNull($class->parseError, $class->parseError?->getMessage() ?: '');
+ self::checkPHPDocCorrectness($class, "class $class->name");
+ }
+
+ /**
+ * @throws Exception
+ */
+ #[DataProviderExternal(StubMethodsProvider::class, 'allMethodsProvider')]
+ public static function testMethodsPHPDocs(PHPMethod $method): void
+ {
+ if ($method->name === '__construct') {
+ self::assertEmpty($method->returnTypesFromPhpDoc, '@return tag for __construct should be omitted');
+ }
+ self::assertNull($method->parseError, $method->parseError ?: '');
+ self::checkPHPDocCorrectness($method, "method $method->name");
+ }
+
+ //TODO IF: Add test to check that phpdocs contain only resource, object etc typehints or if contains type like Resource then Resource should be declared in stubs
+
+ private static function checkDeprecatedRemovedSinceVersionsMajor(BasePHPElement $element, string $elementName): void
+ {
+ /** @var PHPDocElement $element */
+ foreach ($element->sinceTags as $sinceTag) {
+ if ($sinceTag instanceof Since) {
+ $version = $sinceTag->getVersion();
+ if ($version !== null) {
+ self::assertTrue(ParserUtils::tagDoesNotHaveZeroPatchVersion($sinceTag), "$elementName has
+ 'since' version $version.'Since' version for PHP Core functionality for style consistency
+ should have X.X format for the case when patch version is '0'.");
+ }
+ }
+ }
+ foreach ($element->deprecatedTags as $deprecatedTag) {
+ if ($deprecatedTag instanceof Deprecated) {
+ $version = $deprecatedTag->getVersion();
+ if ($version !== null) {
+ self::assertTrue(ParserUtils::tagDoesNotHaveZeroPatchVersion($deprecatedTag), "$elementName has
+ 'deprecated' version $version.'Deprecated' version for PHP Core functionality for style consistency
+ should have X.X format for the case when patch version is '0'.");
+ }
+ }
+ }
+ foreach ($element->removedTags as $removedTag) {
+ if ($removedTag instanceof RemovedTag) {
+ $version = $removedTag->getVersion();
+ if ($version !== null) {
+ self::assertTrue(ParserUtils::tagDoesNotHaveZeroPatchVersion($removedTag), "$elementName has
+ 'removed' version $version.'Removed' version for PHP Core functionality for style consistency
+ should have X.X format for the case when patch version is '0'.");
+ }
+ }
+ }
+ }
+
+ private static function checkHtmlTags(BasePHPElement $element, string $elementName): void
+ {
+ /** @var PHPDocElement $element */
+ $phpdoc = trim($element->phpdoc);
+
+ $phpdoc = preg_replace(
+ [
+ '#
#',
+ '#
#i',
+ '#->#',
+ '#=>#',
+ '#"->"#',
+ '# >= #',
+ '#\(>=#',
+ '#\'>\'#',
+ '# > #',
+ '#\?>#',
+ '#`<.*>`#U',
+ '#`.*<.*>`#U',
+ '#.*
#sU',
+ '#.*#sU',
+ '#@author.*<.*>#U',
+ '#(\s[\w]+[-][\w]+<[a-zA-Z,\s]+>[\s|]+)|([\w]+<[a-zA-Z,|\s]+>[\s|\W]+)#'
+ ],
+ '',
+ $phpdoc
+ );
+
+ $countTags = substr_count($phpdoc, '>');
+ self::assertSame(
+ 0,
+ $countTags % 2,
+ "In $elementName phpdoc has a html error and the phpdoc maybe not displayed correctly in PhpStorm: " . print_r($phpdoc, true)
+ );
+ }
+
+ private static function checkLinks(BasePHPElement $element, string $elementName): void
+ {
+ /** @var PHPDocElement $element */
+ foreach ($element->links as $link) {
+ if ($link instanceof Link) {
+ self::assertStringStartsWith(
+ 'https',
+ $link->getLink(),
+ "In $elementName @link doesn't start with https"
+ );
+ if (getenv('CHECK_LINKS') === 'true') {
+ if ($element->stubBelongsToCore) {
+ $request = curl_init($link->getLink());
+ curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
+ curl_exec($request);
+ $response = curl_getinfo($request, CURLINFO_RESPONSE_CODE);
+ curl_close($request);
+ self::assertTrue($response < 400);
+ }
+ }
+ }
+ }
+ foreach ($element->see as $see) {
+ if ($see instanceof See && $see->getReference() instanceof Url) {
+ $uri = (string)$see->getReference();
+ self::assertStringStartsWith('https', $uri, "In $elementName @see doesn't start with https");
+ }
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ private static function checkContainsOnlyValidTags(BasePHPElement $element, string $elementName): void
+ {
+ $VALID_TAGS = [
+ 'author',
+ 'copyright',
+ 'deprecated',
+ 'example', //temporary addition due to the number of existing cases
+ 'extends',
+ 'inheritdoc',
+ 'inheritDoc',
+ 'internal',
+ 'implements',
+ 'link',
+ 'meta',
+ 'method',
+ 'mixin',
+ 'package',
+ 'param',
+ 'property',
+ 'property-read',
+ 'removed',
+ 'return',
+ 'see',
+ 'since',
+ 'throws',
+ 'template',
+ 'template-implements', // https://github.com/JetBrains/phpstorm-stubs/pull/1212#issuecomment-907263735
+ 'template-extends',
+ 'template-covariant',
+ 'uses',
+ 'var',
+ 'version',
+ ];
+ /** @var PHPDocElement $element */
+ foreach ($element->tagNames as $tagName) {
+ self::assertContains($tagName, $VALID_TAGS, "Element $elementName has invalid tag: @$tagName");
+ }
+ }
+
+ /**
+ * @throws Exception
+ */
+ private static function checkPHPDocCorrectness(BasePHPElement $element, string $elementName): void
+ {
+ self::checkLinks($element, $elementName);
+ //self::checkHtmlTags($element, $elementName);
+ if ($element->stubBelongsToCore) {
+ self::checkDeprecatedRemovedSinceVersionsMajor($element, $elementName);
+ }
+ self::checkContainsOnlyValidTags($element, $elementName);
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsReflectionClassesTest.php b/phpstorm-stubs/tests/StubsReflectionClassesTest.php
new file mode 100644
index 0000000..ddc7242
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsReflectionClassesTest.php
@@ -0,0 +1,78 @@
+getClass('ReflectionFunctionAbstract')->getMethod('getReturnType');
+ $allReturnTypes = array_unique(Model\CommonUtils::flattenArray($getReturnTypeMethod->returnTypesFromAttribute +
+ $getReturnTypeMethod->returnTypesFromSignature + $getReturnTypeMethod->returnTypesFromPhpDoc, false));
+ self::assertContains(
+ 'ReflectionNamedType',
+ $allReturnTypes,
+ 'method ReflectionFunctionAbstract::getReturnType should have ReflectionNamedType in return types for php 7.1+'
+ );
+ self::assertContains(
+ 'ReflectionUnionType',
+ $allReturnTypes,
+ 'method ReflectionFunctionAbstract::getReturnType should have ReflectionUnionType in return types for php 8.0+'
+ );
+ self::assertContains(
+ 'ReflectionType',
+ $allReturnTypes,
+ 'method ReflectionFunctionAbstract::getReturnType should have ReflectionType in return types for php 7.0'
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function testReflectionPropertyGetTypeMethod()
+ {
+ $getTypeMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass('ReflectionProperty')->getMethod('getType');
+ $allReturnTypes = array_unique(Model\CommonUtils::flattenArray($getTypeMethod->returnTypesFromAttribute +
+ $getTypeMethod->returnTypesFromSignature + $getTypeMethod->returnTypesFromPhpDoc, false));
+ self::assertContains(
+ 'ReflectionNamedType',
+ $allReturnTypes,
+ 'method ReflectionProperty::getType should have ReflectionNamedType in return types for php 7.1+'
+ );
+ self::assertContains(
+ 'ReflectionUnionType',
+ $allReturnTypes,
+ 'method ReflectionProperty::getType should have ReflectionUnionType in return types for php 8.0+'
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public function testReflectionParameterGetTypeMethod()
+ {
+ $getTypeMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass('ReflectionParameter')->getMethod('getType');
+ $allReturnTypes = array_unique(Model\CommonUtils::flattenArray($getTypeMethod->returnTypesFromAttribute +
+ $getTypeMethod->returnTypesFromSignature + $getTypeMethod->returnTypesFromPhpDoc, false));
+ self::assertContains(
+ 'ReflectionNamedType',
+ $allReturnTypes,
+ 'method ReflectionParameter::getType should have ReflectionNamedType in return types'
+ );
+ self::assertContains(
+ 'ReflectionUnionType',
+ $allReturnTypes,
+ 'method ReflectionParameter::getType should have ReflectionUnionType in return types'
+ );
+ }
+}
diff --git a/phpstorm-stubs/tests/StubsStructureTest.php b/phpstorm-stubs/tests/StubsStructureTest.php
new file mode 100644
index 0000000..211fae0
--- /dev/null
+++ b/phpstorm-stubs/tests/StubsStructureTest.php
@@ -0,0 +1,24 @@
+name;
+ $stubFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($functionName);
+ $unifiedStubsReturnTypes = [];
+ $unifiedStubsAttributesReturnTypes = [];
+ $unifiedReflectionReturnTypes = [];
+ self::convertNullableTypesToUnion($function->returnTypesFromSignature, $unifiedReflectionReturnTypes);
+ if (!empty($stubFunction->returnTypesFromSignature)) {
+ self::convertNullableTypesToUnion($stubFunction->returnTypesFromSignature, $unifiedStubsReturnTypes);
+ }
+ foreach ($stubFunction->returnTypesFromAttribute as $languageVersion => $listOfTypes) {
+ $unifiedStubsAttributesReturnTypes[$languageVersion] = [];
+ self::convertNullableTypesToUnion($listOfTypes, $unifiedStubsAttributesReturnTypes[$languageVersion]);
+ }
+ $conditionToCompareWithSignature = AbstractBaseStubsTestCase::isReflectionTypesMatchSignature(
+ $unifiedReflectionReturnTypes,
+ $unifiedStubsReturnTypes
+ );
+ $typesFromAttribute = [];
+ if (!empty($unifiedStubsAttributesReturnTypes)) {
+ $typesFromAttribute = !empty($unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')]) ?
+ $unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')] :
+ $unifiedStubsAttributesReturnTypes['default'];
+ }
+ $conditionToCompareWithAttribute = AbstractBaseStubsTestCase::isReflectionTypesExistInAttributes($unifiedReflectionReturnTypes, $typesFromAttribute);
+ $testCondition = $conditionToCompareWithSignature || $conditionToCompareWithAttribute;
+ self::assertTrue($testCondition, "Function $functionName has invalid return type.
+ Reflection function has return type " . implode('|', $function->returnTypesFromSignature) . ' but stubs has return type ' .
+ implode('|', $stubFunction->returnTypesFromSignature) . ' in signature and attribute has types ' .
+ implode('|', $typesFromAttribute));
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'functionParametersWithTypeProvider')]
+ public function testFunctionsParametersTypeHints(PHPFunction $function, PHPParameter $parameter)
+ {
+ $functionName = $function->name;
+ $phpstormFunction = PhpStormStubsSingleton::getPhpStormStubs()->getFunction($functionName);
+ /** @var PHPParameter $stubParameter */
+ $stubParameter = current(array_filter($phpstormFunction->parameters, fn (PHPParameter $stubParameter) => $stubParameter->indexInSignature === $parameter->indexInSignature));
+ self::compareTypeHintsWithReflection($parameter, $stubParameter, $functionName);
+ if (!$parameter->hasMutedProblem(StubProblemType::PARAMETER_REFERENCE)) {
+ self::assertEquals(
+ $parameter->is_passed_by_ref,
+ $stubParameter->is_passed_by_ref,
+ "Invalid pass by ref $functionName: \$$parameter->name "
+ );
+ }
+ self::assertEquals(
+ $parameter->is_vararg,
+ $stubParameter->is_vararg,
+ "Invalid vararg $functionName: \$$parameter->name "
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionMethodsProvider::class, 'classMethodsWithoutTentitiveReturnTypeProvider')]
+ public function testMethodsReturnTypeHints(PHPClass|PHPInterface $class, PHPMethod $method)
+ {
+ $functionName = $method->name;
+ if ($class instanceof PHPEnum) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getEnum($class->name)->getMethod($method->name);
+ } elseif ($class instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($class->name)->getMethod($functionName);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($class->name)->getMethod($functionName);
+ }
+ $unifiedStubsReturnTypes = [];
+ $unifiedStubsAttributesReturnTypes = [];
+ $unifiedReflectionReturnTypes = [];
+ self::convertNullableTypesToUnion($method->returnTypesFromSignature, $unifiedReflectionReturnTypes);
+ if (!empty($stubMethod->returnTypesFromSignature)) {
+ self::convertNullableTypesToUnion($stubMethod->returnTypesFromSignature, $unifiedStubsReturnTypes);
+ } else {
+ foreach ($stubMethod->returnTypesFromAttribute as $languageVersion => $listOfTypes) {
+ $unifiedStubsAttributesReturnTypes[$languageVersion] = [];
+ self::convertNullableTypesToUnion($listOfTypes, $unifiedStubsAttributesReturnTypes[$languageVersion]);
+ }
+ }
+ $conditionToCompareWithSignature = AbstractBaseStubsTestCase::isReflectionTypesMatchSignature(
+ $unifiedReflectionReturnTypes,
+ $unifiedStubsReturnTypes
+ );
+ $typesFromAttribute = [];
+ if (!empty($unifiedStubsAttributesReturnTypes)) {
+ $typesFromAttribute = !empty($unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')]) ?
+ $unifiedStubsAttributesReturnTypes[getenv('PHP_VERSION')] :
+ $unifiedStubsAttributesReturnTypes['default'];
+ }
+ $conditionToCompareWithAttribute = AbstractBaseStubsTestCase::isReflectionTypesExistInAttributes($unifiedReflectionReturnTypes, $typesFromAttribute);
+ $testCondition = $conditionToCompareWithSignature || $conditionToCompareWithAttribute;
+ self::assertTrue($testCondition, "Method $class->name::$functionName has invalid return type.
+ Reflection method has return type " . implode('|', $method->returnTypesFromSignature) . ' but stubs has return type ' .
+ implode('|', $stubMethod->returnTypesFromSignature) . ' in signature and attribute has types ' .
+ implode('|', $typesFromAttribute));
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(ReflectionParametersProvider::class, 'methodParametersWithTypeHintProvider')]
+ public function testMethodsParametersTypeHints(PHPClass|PHPInterface $reflectionClass, PHPMethod $reflectionMethod, PHPParameter $reflectionParameter)
+ {
+ $className = $reflectionClass->name;
+ $methodName = $reflectionMethod->name;
+ if ($reflectionClass instanceof PHPClass) {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getClass($className)->getMethod($methodName);
+ } else {
+ $stubMethod = PhpStormStubsSingleton::getPhpStormStubs()->getInterface($className)->getMethod($methodName);
+ }
+ /** @var PHPParameter $stubParameter */
+ $stubParameter = current(array_filter(
+ $stubMethod->parameters,
+ fn (PHPParameter $stubParameter) => $stubParameter->name === $reflectionParameter->name
+ ));
+ self::assertNotFalse($stubParameter, "Parameter $$reflectionParameter->name not found at
+ $reflectionClass->name::$stubMethod->name(" .
+ StubsParameterNamesTest::printParameters($stubMethod->parameters) . ')');
+ self::compareTypeHintsWithReflection($reflectionParameter, $stubParameter, $methodName);
+ if (!$reflectionParameter->hasMutedProblem(StubProblemType::PARAMETER_REFERENCE)) {
+ self::assertEquals(
+ $reflectionParameter->is_passed_by_ref,
+ $stubParameter->is_passed_by_ref,
+ "Invalid pass by ref $className::$methodName: \$$reflectionParameter->name "
+ );
+ }
+ self::assertEquals(
+ $reflectionParameter->is_vararg,
+ $stubParameter->is_vararg,
+ "Invalid pass by ref $className::$methodName: \$$reflectionParameter->name "
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForAllowedScalarTypeHintTestsProvider')]
+ public function testMethodScalarTypeHintsInParametersMatchReflection(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $stubParameter)
+ {
+ $reflectionMethod = ReflectionStubsSingleton::getReflectionStubs()->getClass($class->name)->getMethod($stubMethod->name);
+ $reflectionParameters = array_filter($reflectionMethod->parameters, fn (PHPParameter $parameter) => $parameter->name === $stubParameter->name);
+ $reflectionParameter = array_pop($reflectionParameters);
+ self::compareTypeHintsWithReflection($reflectionParameter, $stubParameter, $stubMethod->name);
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForAllowedNullableTypeHintTestsProvider')]
+ public function testMethodNullableTypeHintsInParametersMatchReflection(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $stubParameter)
+ {
+ $reflectionMethod = ReflectionStubsSingleton::getReflectionStubs()->getClass($class->name)->getMethod($stubMethod->name);
+ $reflectionParameters = array_filter($reflectionMethod->parameters, fn (PHPParameter $parameter) => $parameter->name === $stubParameter->name);
+ $reflectionParameter = array_pop($reflectionParameters);
+ self::compareTypeHintsWithReflection($reflectionParameter, $stubParameter, $stubMethod->name);
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ #[DataProviderExternal(StubsParametersProvider::class, 'parametersForAllowedUnionTypeHintTestsProvider')]
+ public function testMethodUnionTypeHintsInParametersMatchReflection(PHPClass|PHPInterface $class, PHPMethod $stubMethod, PHPParameter $stubParameter)
+ {
+ $reflectionMethod = ReflectionStubsSingleton::getReflectionStubs()->getClass($class->name)->getMethod($stubMethod->name);
+ $reflectionParameters = array_filter($reflectionMethod->parameters, fn (PHPParameter $parameter) => $parameter->name === $stubParameter->name);
+ $reflectionParameter = array_pop($reflectionParameters);
+ self::compareTypeHintsWithReflection($reflectionParameter, $stubParameter, $stubMethod->name);
+ }
+
+ /**
+ * @throws Exception
+ */
+ #[DataProviderExternal(StubMethodsProvider::class, 'allFunctionAndMethodsWithReturnTypeHintsProvider')]
+ public static function testSignatureTypeHintsConformPhpDocInMethods(PHPFunction|PHPMethod $method)
+ {
+ $functionName = $method->name;
+ $unifiedPhpDocTypes = array_map(function (string $type) use ($method) {
+ $typeParts = explode('\\', $type);
+ $typeName = end($typeParts);
+ foreach ($method->templateTypes as $templateType) {
+ if ($typeName === $templateType) {
+ $typeName = 'object';
+ }
+ }
+
+ // replace array notations like int[] or array or array{name:type} to match the array type
+ return preg_replace(['/\w+\[]/', '/array[{<][a-z,\s:|_]+[>}]/'], 'array', $typeName);
+ }, $method->returnTypesFromPhpDoc);
+ $unifiedSignatureTypes = array_map(function (string $type) {
+ $typeParts = explode('\\', $type);
+ return end($typeParts);
+ }, $method->returnTypesFromSignature);
+ if (count($unifiedSignatureTypes) === 1) {
+ $type = array_pop($unifiedSignatureTypes);
+ if (str_contains($type, '?')) {
+ $unifiedSignatureTypes[] = 'null';
+ }
+ $typeParts = explode('\\', ltrim($type, '?'));
+ $typeName = end($typeParts);
+ $unifiedSignatureTypes[] = $typeName;
+ }
+ $typesIntersection = array_intersect($unifiedSignatureTypes, $unifiedPhpDocTypes);
+ $name = $method instanceof PHPMethod ? "Method $method->parentName::" : 'Function ';
+ self::assertSameSize(
+ $unifiedSignatureTypes,
+ $typesIntersection,
+ $name . "$functionName has mismatch in phpdoc return type and signature return type.
+ Signature has " . implode('|', $unifiedSignatureTypes) . " but phpdoc has " . implode('|', $unifiedPhpDocTypes)
+ );
+ }
+
+ private static function compareTypeHintsWithReflection(PHPParameter $parameter, PHPParameter $stubParameter, ?string $functionName): void
+ {
+ $unifiedStubsParameterTypes = [];
+ $unifiedStubsAttributesParameterTypes = [];
+ $unifiedReflectionParameterTypes = [];
+ self::convertNullableTypesToUnion($parameter->typesFromSignature, $unifiedReflectionParameterTypes);
+ if (!empty($stubParameter->typesFromSignature)) {
+ self::convertNullableTypesToUnion($stubParameter->typesFromSignature, $unifiedStubsParameterTypes);
+ }
+ foreach ($stubParameter->typesFromAttribute as $languageVersion => $listOfTypes) {
+ $unifiedStubsAttributesParameterTypes[$languageVersion] = [];
+ self::convertNullableTypesToUnion($listOfTypes, $unifiedStubsAttributesParameterTypes[$languageVersion]);
+ }
+ $typesFromAttribute = [];
+ $testCondition = AbstractBaseStubsTestCase::isReflectionTypesMatchSignature($unifiedReflectionParameterTypes, $unifiedStubsParameterTypes);
+ if (!$testCondition) {
+ if (!empty($unifiedStubsAttributesParameterTypes)) {
+ $typesFromAttribute = !empty($unifiedStubsAttributesParameterTypes[getenv('PHP_VERSION')]) ?
+ $unifiedStubsAttributesParameterTypes[getenv('PHP_VERSION')] :
+ $unifiedStubsAttributesParameterTypes['default'];
+ $testCondition = AbstractBaseStubsTestCase::isReflectionTypesExistInAttributes($unifiedReflectionParameterTypes, $typesFromAttribute);
+ }
+ }
+ self::assertTrue($testCondition, "Type mismatch $functionName: \$$parameter->name \n
+ Reflection parameter $parameter->name with index $parameter->indexInSignature has type '" . implode('|', $unifiedReflectionParameterTypes) .
+ "' but stub parameter $stubParameter->name with index $stubParameter->indexInSignature has type '" . implode('|', $unifiedStubsParameterTypes) . "' in signature and " .
+ implode('|', $typesFromAttribute) . ' in attribute');
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/EntitiesFilter.php b/phpstorm-stubs/tests/TestData/Providers/EntitiesFilter.php
new file mode 100644
index 0000000..2eff58e
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/EntitiesFilter.php
@@ -0,0 +1,99 @@
+ $entity) {
+ foreach ($problemTypes as $problemType) {
+ if ($entity->hasMutedProblem($problemType)) {
+ $hasProblem = true;
+ }
+ }
+ if ($entity->hasMutedProblem(StubProblemType::STUB_IS_MISSED) ||
+ $additionalFilter !== null && $additionalFilter($entity) === true) {
+ $hasProblem = true;
+ }
+ if ($hasProblem) {
+ $hasProblem = false;
+ } else {
+ $resultArray[$key] = $entity;
+ }
+ }
+
+ return $resultArray;
+ }
+
+ /**
+ * @return PHPFunction[]
+ * @throws RuntimeException
+ */
+ public static function getFilteredFunctions(PHPInterface|PHPClass $class = null, bool $shouldSuitCurrentPhpVersion = true): array
+ {
+ if ($class === null) {
+ $allFunctions = ReflectionStubsSingleton::getReflectionStubs()->getFunctions();
+ } else {
+ $allFunctions = $class->methods;
+ }
+ /** @var PHPFunction[] $resultArray */
+ $resultArray = [];
+ $allFunctions = array_filter(
+ $allFunctions,
+ fn ($function) => !$shouldSuitCurrentPhpVersion || BasePHPElement::entitySuitsCurrentPhpVersion($function)
+ );
+ foreach (self::getFiltered($allFunctions, null, StubProblemType::HAS_DUPLICATION, StubProblemType::FUNCTION_PARAMETER_MISMATCH) as $function) {
+ $resultArray[] = $function;
+ }
+ return $resultArray;
+ }
+
+ public static function getFilteredParameters(PHPFunction $function, callable $additionalFilter = null, int ...$problemType): array
+ {
+ /** @var PHPParameter[] $resultArray */
+ $resultArray = [];
+ foreach (self::getFiltered(
+ $function->parameters,
+ $additionalFilter,
+ StubProblemType::FUNCTION_PARAMETER_MISMATCH,
+ ...$problemType
+ ) as $parameter) {
+ $resultArray[] = $parameter;
+ }
+ return $resultArray;
+ }
+
+ public static function getFilterFunctionForAllowedTypeHintsInLanguageLevel(float $languageVersion): callable
+ {
+ return function (PHPClass|PHPInterface $stubClass, PHPMethod $stubMethod, ?float $firstSinceVersion) use ($languageVersion) {
+ $reflectionClass = ReflectionStubsSingleton::getReflectionStubs()->getClass($stubClass->name);
+ $reflectionMethod = null;
+ if ($reflectionClass !== null) {
+ $reflectionMethods = array_filter(
+ $reflectionClass->methods,
+ fn (PHPMethod $method) => $stubMethod->name === $method->name
+ );
+ $reflectionMethod = array_pop($reflectionMethods);
+ }
+ return $reflectionMethod !== null && ($stubMethod->isFinal || $stubClass->isFinal || $firstSinceVersion !== null &&
+ $firstSinceVersion > $languageVersion);
+ };
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/PhpStormStubsSingleton.php b/phpstorm-stubs/tests/TestData/Providers/PhpStormStubsSingleton.php
new file mode 100644
index 0000000..7a2ffac
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/PhpStormStubsSingleton.php
@@ -0,0 +1,20 @@
+getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($allClassesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ yield "class $class->name" => [$class];
+ }
+ }
+ }
+
+ public static function classesWithInterfacesProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFiltered(
+ ReflectionStubsSingleton::getReflectionStubs()->getClasses(),
+ fn (PHPClass $class) => empty($class->interfaces),
+ StubProblemType::WRONG_INTERFACE
+ ) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ yield "class $class->name" => [$class];
+ }
+ }
+ }
+
+ public static function classWithParentProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ $filtered = EntitiesFilter::getFiltered(
+ $classesAndInterfaces,
+ fn ($class) => empty($class->parentInterfaces) && empty($class->parentClass),
+ StubProblemType::WRONG_PARENT
+ );
+ foreach ($filtered as $class) {
+ yield "class $class->name" => [$class];
+ }
+ }
+
+ public static function finalClassesProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ $filtered = EntitiesFilter::getFiltered(
+ $classesAndInterfaces,
+ null,
+ StubProblemType::WRONG_FINAL_MODIFIER
+ );
+ foreach ($filtered as $class) {
+ yield "class $class->name" => [$class];
+ }
+ }
+
+ public static function readonlyClassesProvider(): ?Generator
+ {
+ $classes = ReflectionStubsSingleton::getReflectionStubs()->getClasses();
+ $filtered = EntitiesFilter::getFiltered(
+ $classes,
+ problemTypes: StubProblemType::WRONG_READONLY
+ );
+ foreach ($filtered as $class) {
+ yield "class $class->name" => [$class];
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionConstantsProvider.php b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionConstantsProvider.php
new file mode 100644
index 0000000..3a901fa
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionConstantsProvider.php
@@ -0,0 +1,73 @@
+getConstants()
+ ) as $constant) {
+ yield "constant $constant->name" => [$constant];
+ }
+ }
+
+ public static function constantValuesProvider(): ?Generator
+ {
+ foreach (self::getFilteredConstants() as $constant) {
+ yield "constant $constant->name" => [$constant];
+ }
+ }
+
+ public static function classConstantProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ $filteredClasses = EntitiesFilter::getFiltered($classesAndInterfaces);
+ foreach ($filteredClasses as $class) {
+ $constants = EntitiesFilter::getFiltered($class->constants);
+ foreach ($constants as $constant) {
+ yield "constant $class->name::$constant->name" => [$class, $constant];
+ }
+ }
+ }
+
+ public static function classConstantValuesProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ foreach (self::getFilteredConstants($class) as $constant) {
+ yield "constant $class->name::$constant->name" => [$class, $constant];
+ }
+ }
+ }
+
+ /**
+ * @return PHPConst[]
+ */
+ public static function getFilteredConstants(PHPInterface|PHPClass $class = null): array
+ {
+ if ($class === null) {
+ $allConstants = ReflectionStubsSingleton::getReflectionStubs()->getConstants();
+ } else {
+ $allConstants = $class->constants;
+ }
+ /** @var PHPConst[] $resultArray */
+ $resultArray = [];
+ foreach (EntitiesFilter::getFiltered($allConstants, null, StubProblemType::WRONG_CONSTANT_VALUE) as $constant) {
+ $resultArray[] = $constant;
+ }
+ return $resultArray;
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionFunctionsProvider.php b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionFunctionsProvider.php
new file mode 100644
index 0000000..ce96bd7
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionFunctionsProvider.php
@@ -0,0 +1,53 @@
+getFunctions()) as $function) {
+ yield "function $function->name" => [$function];
+ }
+ }
+
+ public static function functionsForReturnTypeHintsTestProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFiltered(
+ ReflectionStubsSingleton::getReflectionStubs()->getFunctions(),
+ null,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ ) as $function) {
+ yield "function $function->name" => [$function];
+ }
+ }
+
+ public static function functionsForDeprecationTestsProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFiltered(
+ ReflectionStubsSingleton::getReflectionStubs()->getFunctions(),
+ null,
+ StubProblemType::FUNCTION_IS_DEPRECATED
+ ) as $function) {
+ yield "function $function->name" => [$function];
+ }
+ }
+
+ public static function functionsForParamsAmountTestsProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFiltered(
+ ReflectionStubsSingleton::getReflectionStubs()->getFunctions(),
+ null,
+ StubProblemType::FUNCTION_PARAMETER_MISMATCH,
+ StubProblemType::HAS_DUPLICATION
+ ) as $function) {
+ yield "function $function->name" => [$function];
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionMethodsProvider.php b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionMethodsProvider.php
new file mode 100644
index 0000000..56015c4
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionMethodsProvider.php
@@ -0,0 +1,94 @@
+getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces() +
+ ReflectionStubsSingleton::getReflectionStubs()->getEnums();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ foreach (EntitiesFilter::getFiltered(
+ $class->methods,
+ fn (PHPMethod $method) => $method->isReturnTypeTentative,
+ StubProblemType::HAS_DUPLICATION,
+ StubProblemType::FUNCTION_PARAMETER_MISMATCH,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ ) as $method) {
+ yield "Method $class->name::$method->name" => [$class, $method];
+ }
+ }
+ }
+
+ public static function classMethodsWithTentitiveReturnTypeProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces() +
+ ReflectionStubsSingleton::getReflectionStubs()->getEnums();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ foreach (EntitiesFilter::getFiltered(
+ $class->methods,
+ fn (PHPMethod $method) => !$method->isReturnTypeTentative,
+ StubProblemType::HAS_DUPLICATION,
+ StubProblemType::FUNCTION_PARAMETER_MISMATCH,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ ) as $method) {
+ yield "Method $class->name::$method->name" => [$class, $method];
+ }
+ }
+ }
+
+ private static function yieldFilteredMethods(int ...$problemTypes): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces() +
+ ReflectionStubsSingleton::getReflectionStubs()->getEnums();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ foreach (EntitiesFilter::getFiltered($class->methods, null, ...$problemTypes) as $method) {
+ yield "Method $class->name::$method->name" => [$class, $method];
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionParametersProvider.php b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionParametersProvider.php
new file mode 100644
index 0000000..d5bea6f
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionParametersProvider.php
@@ -0,0 +1,174 @@
+name($parameter->name)" => [$function, $parameter];
+ }
+ }
+ }
+
+ public static function functionParametersWithTypeProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFilteredFunctions() as $function) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $function,
+ null,
+ StubProblemType::PARAMETER_TYPE_MISMATCH
+ ) as $parameter) {
+ yield "$function->name($parameter->name)" => [$function, $parameter];
+ }
+ }
+ }
+
+ public static function functionOptionalParametersProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFilteredFunctions() as $function) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $function,
+ fn (PHPParameter $parameter) => !$parameter->isOptional,
+ StubProblemType::PARAMETER_TYPE_MISMATCH,
+ StubProblemType::WRONG_OPTIONALLITY
+ ) as $parameter) {
+ yield "$function->name($parameter->name)" => [$function, $parameter];
+ }
+ }
+ }
+
+ public static function functionOptionalParametersWithDefaultValueProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFilteredFunctions() as $function) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $function,
+ fn (PHPParameter $parameter) => !$parameter->isOptional,
+ StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE
+ ) as $parameter) {
+ yield "$function->name($parameter->name)" => [$function, $parameter];
+ }
+ }
+ }
+
+ public static function functionOptionalParametersWithoutDefaultValueProvider(): ?Generator
+ {
+ foreach (EntitiesFilter::getFilteredFunctions() as $function) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $function,
+ fn (PHPParameter $parameter) => !$parameter->isOptional || $parameter->isDefaultValueAvailable || $parameter->is_vararg,
+ StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE
+ ) as $parameter) {
+ yield "$function->name($parameter->name)" => [$function, $parameter];
+ }
+ }
+ }
+
+ public static function methodParametersProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ foreach (EntitiesFilter::getFilteredFunctions($class) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters($method) as $parameter) {
+ yield "$class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+
+ public static function methodParametersWithTypeHintProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ foreach (EntitiesFilter::getFilteredFunctions($class) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $method,
+ null,
+ StubProblemType::PARAMETER_TYPE_MISMATCH
+ ) as $parameter) {
+ yield "$class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+
+ public static function methodOptionalParametersProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ foreach (EntitiesFilter::getFilteredFunctions($class) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $method,
+ null,
+ StubProblemType::WRONG_OPTIONALLITY
+ ) as $parameter) {
+ yield "$class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+
+ public static function methodOptionalParametersWithDefaultValueProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ foreach (EntitiesFilter::getFilteredFunctions($class) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $method,
+ fn (PHPParameter $parameter) => !$parameter->isOptional || !$parameter->isDefaultValueAvailable,
+ StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE
+ ) as $parameter) {
+ yield "$class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+
+ public static function methodOptionalParametersWithoutDefaultValueProvider(): ?Generator
+ {
+ $classesAndInterfaces = ReflectionStubsSingleton::getReflectionStubs()->getClasses() +
+ ReflectionStubsSingleton::getReflectionStubs()->getInterfaces();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ //exclude classes from PHPReflectionParser
+ if (strncmp($class->name, 'PHP', 3) !== 0) {
+ foreach (EntitiesFilter::getFilteredFunctions($class) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters(
+ $method,
+ fn (PHPParameter $parameter) => !$parameter->isOptional || $parameter->isDefaultValueAvailable || $parameter->is_vararg,
+ StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE
+ ) as $parameter) {
+ yield "$class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionPropertiesProvider.php b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionPropertiesProvider.php
new file mode 100644
index 0000000..345d0fe
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Reflection/ReflectionPropertiesProvider.php
@@ -0,0 +1,52 @@
+getClasses();
+ foreach (EntitiesFilter::getFiltered($classesAndInterfaces) as $class) {
+ foreach (EntitiesFilter::getFiltered(
+ $class->properties,
+ fn (PHPProperty $property) => $property->access === 'private',
+ ...$problemTypes
+ ) as $property) {
+ yield "Property $class->name::$property->name" => [$class, $property];
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/ReflectionStubsSingleton.php b/phpstorm-stubs/tests/TestData/Providers/ReflectionStubsSingleton.php
new file mode 100644
index 0000000..5b327b8
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/ReflectionStubsSingleton.php
@@ -0,0 +1,25 @@
+ [
+ 'Core',
+ 'date',
+ 'filter',
+ 'fpm',
+ 'hash',
+ 'meta',
+ 'pcre',
+ 'random',
+ 'Phar',
+ 'Reflection',
+ 'regex',
+ 'session',
+ 'SPL',
+ 'standard',
+ 'superglobals',
+ 'tokenizer'
+ ],
+ 'BUNDLED' => [
+ 'apache',
+ 'bcmath',
+ 'calendar',
+ 'ctype',
+ 'dba',
+ 'exif',
+ 'fileinfo',
+ 'ftp',
+ 'gd',
+ 'iconv',
+ 'intl',
+ 'json',
+ 'mbstring',
+ 'pcntl',
+ 'PDO',
+ 'posix',
+ 'shmop',
+ 'sockets',
+ 'sqlite3',
+ 'sysvmsg',
+ 'sysvsem',
+ 'sysvshm',
+ 'xmlrpc',
+ 'zlib'
+ ],
+ 'EXTERNAL' => [
+ 'aerospike',
+ 'bz2',
+ 'curl',
+ 'dom',
+ 'enchant',
+ 'gettext',
+ 'gmp',
+ 'imap',
+ 'ldap',
+ 'libxml',
+ 'mcrypt',
+ 'mssql',
+ 'mysql',
+ 'mysqli',
+ 'oci8',
+ 'odbc',
+ 'openssl',
+ 'pdo_ibm',
+ 'pdo_mysql',
+ 'pdo_pgsql',
+ 'pdo_sqlite',
+ 'pgsql',
+ 'pspell',
+ 'readline',
+ 'recode',
+ 'SimpleXML',
+ 'snmp',
+ 'soap',
+ 'sodium',
+ 'sybase',
+ 'tidy',
+ 'wddx',
+ 'xml',
+ 'xmlreader',
+ 'xmlwriter',
+ 'xsl',
+ 'Zend OPcache',
+ 'zip'
+ ],
+ 'PECL' => [
+ 'apcu',
+ 'ast',
+ 'crypto',
+ 'cubrid',
+ 'decimal',
+ 'ds',
+ 'eio',
+ 'event',
+ 'expect',
+ 'gearman',
+ 'geoip',
+ 'gmagick',
+ 'http',
+ 'ibm_db2',
+ 'imagick',
+ 'inotify',
+ 'interbase',
+ 'leveldb',
+ 'libevent',
+ 'LuaSandbox',
+ 'lzf',
+ 'mailparse',
+ 'memcache',
+ 'memcached',
+ 'ming',
+ 'mongo',
+ 'mongodb',
+ 'msgpack',
+ 'mysql_xdevapi',
+ 'ncurses',
+ 'oauth',
+ 'opentelemetry',
+ 'pam',
+ 'parallel',
+ 'Parle',
+ 'pcov',
+ 'pdflib',
+ 'pq',
+ 'pthreads',
+ 'radius',
+ 'rdkafka',
+ 'rpminfo',
+ 'simdjson',
+ 'simple_kafka_client',
+ 'solr',
+ 'SplType',
+ 'SQLite',
+ 'sqlsrv',
+ 'ssh2',
+ 'stats',
+ 'stomp',
+ 'svn',
+ 'swoole',
+ 'sync',
+ 'uopz',
+ 'uploadprogress',
+ 'uuid',
+ 'uv',
+ 'winbinder',
+ 'wincache',
+ 'xdiff',
+ 'xhprof',
+ 'xxtea',
+ 'yaf',
+ 'yaml',
+ 'yar',
+ 'zookeeper',
+ 'zstd'
+ ],
+ 'OTHERS' => [
+ 'amqp',
+ 'blackfire',
+ 'cassandra',
+ 'com_dotnet',
+ 'couchbase',
+ 'couchbase_v2',
+ 'dio',
+ 'elastic_apm',
+ 'Ev',
+ 'fann',
+ 'FFI',
+ 'ffmpeg',
+ 'geos',
+ 'gnupg',
+ 'grpc',
+ 'igbinary',
+ 'judy',
+ 'libsodium',
+ 'libvirt-php',
+ 'lua',
+ 'mapscript',
+ 'meminfo',
+ 'mosquitto-php',
+ 'mqseries',
+ 'newrelic',
+ 'phpdbg',
+ 'rar',
+ 'redis',
+ 'relay',
+ 'rrd',
+ 'SaxonC',
+ 'snappy',
+ 'suhosin',
+ 'svm',
+ 'v8js',
+ 'win32service',
+ 'xcache',
+ 'xdebug',
+ 'xlswriter',
+ 'zend',
+ 'ZendCache',
+ 'ZendDebugger',
+ 'ZendUtils',
+ 'zmq'
+ ]
+ ];
+
+ /**
+ * @return string[]
+ */
+ public static function getCoreStubsDirectories(): array
+ {
+ $coreStubs = [self::$StubDirectoryMap['CORE']];
+ $coreStubs[] = self::$StubDirectoryMap['BUNDLED'];
+ $coreStubs[] = self::$StubDirectoryMap['EXTERNAL'];
+ return CommonUtils::flattenArray($coreStubs, false);
+ }
+
+ /**
+ * @return string[]
+ */
+ public static function getNonCoreStubsDirectories(): array
+ {
+ $coreStubs = [self::$StubDirectoryMap['PECL']];
+ $coreStubs[] = self::$StubDirectoryMap['OTHERS'];
+ return CommonUtils::flattenArray($coreStubs, false);
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Stubs/StubConstantsProvider.php b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubConstantsProvider.php
new file mode 100644
index 0000000..d0696c7
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubConstantsProvider.php
@@ -0,0 +1,28 @@
+getClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getInterfaces();
+ foreach ($classesAndInterfaces as $class) {
+ foreach ($class->constants as $constant) {
+ yield "constant $class->sourceFilePath/$class->name::$constant->name" => [$class, $constant];
+ }
+ }
+ }
+
+ public static function globalConstantProvider(): ?Generator
+ {
+ foreach (PhpStormStubsSingleton::getPhpStormStubs()->getConstants() as $constantName => $constant) {
+ yield "constant $constantName" => [$constant];
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Stubs/StubMethodsProvider.php b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubMethodsProvider.php
new file mode 100644
index 0000000..3845e16
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubMethodsProvider.php
@@ -0,0 +1,126 @@
+getClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getInterfaces();
+ foreach ($classesAndInterfaces as $className => $class) {
+ foreach ($class->methods as $methodName => $method) {
+ yield "method $className::$methodName" => [$method];
+ }
+ }
+ }
+
+ public static function allFunctionAndMethodsWithReturnTypeHintsProvider(): ?Generator
+ {
+ $coreClassesAndInterfaces = PhpStormStubsSingleton::getPhpStormStubs()->getCoreClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getCoreInterfaces();
+ $allFunctions = PhpStormStubsSingleton::getPhpStormStubs()->getFunctions();
+ $filteredMethods = [];
+ foreach (EntitiesFilter::getFiltered($coreClassesAndInterfaces) as $class) {
+ $filteredMethods += EntitiesFilter::getFiltered(
+ $class->methods,
+ fn (PHPMethod $method) => empty($method->returnTypesFromSignature) || empty($method->returnTypesFromPhpDoc)
+ || $method->parentName === '___PHPSTORM_HELPERS\object' || $method->hasTentativeReturnType
+ || in_array('mixed', $method->returnTypesFromSignature),
+ StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE
+ );
+ }
+ $filteredMethods += EntitiesFilter::getFiltered(
+ $allFunctions,
+ fn (PHPFunction $function) => empty($function->returnTypesFromSignature) || empty($function->returnTypesFromPhpDoc)
+ || $function->hasTentativeReturnType || in_array('mixed', $function->returnTypesFromSignature),
+ StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE
+ );
+ foreach ($filteredMethods as $methodName => $method) {
+ if ($method instanceof PHPMethod) {
+ yield "method $method->parentName::$methodName" => [$method];
+ } else {
+ yield "function $methodName" => [$method];
+ }
+ }
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function methodsForReturnTypeHintTestsProvider(): ?Generator
+ {
+ $filterFunction = self::getFilterFunctionForLanguageLevel(7);
+ return self::yieldFilteredMethods(
+ $filterFunction,
+ StubProblemType::FUNCTION_HAS_RETURN_TYPEHINT,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function methodsForNullableReturnTypeHintTestsProvider(): ?Generator
+ {
+ $filterFunction = self::getFilterFunctionForLanguageLevel(7.1);
+ return self::yieldFilteredMethods(
+ $filterFunction,
+ StubProblemType::HAS_NULLABLE_TYPEHINT,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ );
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ public static function methodsForUnionReturnTypeHintTestsProvider(): ?Generator
+ {
+ $filterFunction = self::getFilterFunctionForLanguageLevel(8);
+ return self::yieldFilteredMethods(
+ $filterFunction,
+ StubProblemType::HAS_UNION_TYPEHINT,
+ StubProblemType::WRONG_RETURN_TYPEHINT
+ );
+ }
+
+ private static function getFilterFunctionForLanguageLevel(float $languageVersion): callable
+ {
+ return fn (PHPClass|PHPInterface $class, PHPMethod $method, ?float $firstSinceVersion) => !$method->isFinal &&
+ !$class->isFinal && $firstSinceVersion !== null && $firstSinceVersion < $languageVersion && !$method->isReturnTypeTentative;
+ }
+
+ /**
+ * @throws RuntimeException
+ */
+ private static function yieldFilteredMethods(callable $filterFunction, int ...$problemTypes): ?Generator
+ {
+ $coreClassesAndInterfaces = PhpStormStubsSingleton::getPhpStormStubs()->getCoreClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getCoreInterfaces();
+ foreach (EntitiesFilter::getFiltered($coreClassesAndInterfaces) as $className => $class) {
+ foreach (EntitiesFilter::getFiltered(
+ $class->methods,
+ fn (PHPMethod $method) => $method->parentName === '___PHPSTORM_HELPERS\object',
+ ...$problemTypes
+ ) as $methodName => $method) {
+ $firstSinceVersion = ParserUtils::getDeclaredSinceVersion($method);
+ if ($filterFunction($class, $method, $firstSinceVersion) === true) {
+ yield "method $className::$methodName" => [$method];
+ }
+ }
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsCompositeMixedProvider.php b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsCompositeMixedProvider.php
new file mode 100644
index 0000000..1a5bd01
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsCompositeMixedProvider.php
@@ -0,0 +1,25 @@
+ [PhpStormStubsSingleton::getPhpStormStubs()->getFunction($function)];
+ }
+ }
+
+ public static function expectedFunctionsMixedNullReturnProvider(): ?Generator
+ {
+ $functions = ['array_pop', 'array_shift'];
+ foreach ($functions as $function) {
+ yield $function => [PhpStormStubsSingleton::getPhpStormStubs()->getFunction($function)];
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsParametersProvider.php b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsParametersProvider.php
new file mode 100644
index 0000000..d412e47
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsParametersProvider.php
@@ -0,0 +1,100 @@
+getCoreClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getCoreInterfaces();
+ foreach (EntitiesFilter::getFiltered($coreClassesAndInterfaces) as $class) {
+ foreach (EntitiesFilter::getFilteredFunctions($class, false) as $method) {
+ foreach (EntitiesFilter::getFilteredParameters($method, null, ...$problemTypes) as $parameter) {
+ if (!empty($parameter->availableVersionsRangeFromAttribute)) {
+ $firstSinceVersion = max(ParserUtils::getDeclaredSinceVersion($method), min($parameter->availableVersionsRangeFromAttribute));
+ } else {
+ $firstSinceVersion = ParserUtils::getDeclaredSinceVersion($method);
+ }
+ if ($filterFunction($class, $method, $firstSinceVersion) === true) {
+ yield "method $class->name::$method->name($parameter->name)" => [$class, $method, $parameter];
+ }
+ }
+ }
+ }
+ }
+
+ private static function getFilterFunctionForLanguageLevel(float $languageVersion): callable
+ {
+ return fn (PHPClass|PHPInterface $class, PHPMethod $method, ?float $firstSinceVersion) => !$method->isFinal &&
+ !$class->isFinal && $firstSinceVersion !== null && $firstSinceVersion < $languageVersion;
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsTestDataProviders.php b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsTestDataProviders.php
new file mode 100644
index 0000000..4a47543
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/Providers/Stubs/StubsTestDataProviders.php
@@ -0,0 +1,53 @@
+getFunctions() as $functionName => $function) {
+ yield "function $functionName" => [$function];
+ }
+ }
+
+ public static function allClassesProvider(): ?Generator
+ {
+ $allClassesAndInterfaces = PhpStormStubsSingleton::getPhpStormStubs()->getClasses() +
+ PhpStormStubsSingleton::getPhpStormStubs()->getInterfaces();
+ foreach ($allClassesAndInterfaces as $class) {
+ yield "class $class->sourceFilePath/$class->name" => [$class];
+ }
+ }
+
+ public static function coreFunctionsProvider(): ?Generator
+ {
+ $allFunctions = PhpStormStubsSingleton::getPhpStormStubs()->getFunctions();
+ $coreFunctions = array_filter($allFunctions, fn (PHPFunction $function): bool => $function->stubBelongsToCore === true);
+ foreach ($coreFunctions as $coreFunction) {
+ yield "function $coreFunction->name" => [$coreFunction];
+ }
+ }
+
+ public static function stubsDirectoriesProvider(): ?Generator
+ {
+ $stubsDirectory = dirname(__DIR__, 4);
+ /** @var SplFileInfo $directory */
+ foreach (new DirectoryIterator($stubsDirectory) as $directory) {
+ $directoryName = $directory->getBasename();
+ if ($directory->isDot() || !$directory->isDir() || in_array($directoryName, ['tests', 'meta', 'vendor'], true) || str_starts_with($directoryName, '.')) {
+ continue;
+ }
+ yield "directory $directoryName" => [$directoryName];
+ }
+ }
+}
diff --git a/phpstorm-stubs/tests/TestData/mutedProblems.json b/phpstorm-stubs/tests/TestData/mutedProblems.json
new file mode 100644
index 0000000..4802b4d
--- /dev/null
+++ b/phpstorm-stubs/tests/TestData/mutedProblems.json
@@ -0,0 +1,3124 @@
+{
+ "constants": [
+ {
+ "name": "DEBUG_BACKTRACE_PROVIDE_OBJECT",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DEBUG_BACKTRACE_IGNORE_ARGS",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "TRUE",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "FALSE",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZEND_THREAD_SAFE",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZEND_DEBUG_BUILD",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NULL",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_MAJOR_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_MINOR_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_RELEASE_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_EXTRA_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_VERSION_ID",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DEFAULT_INCLUDE_PATH",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PEAR_INSTALL_DIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PEAR_EXTENSION_DIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_PREFIX",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_BINDIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_MANDIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_LIBDIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_DATADIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_SYSCONFDIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_LOCALSTATEDIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_EXTENSION_DIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_CONFIG_FILE_PATH",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_CONFIG_FILE_SCAN_DIR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_INT_MIN",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_BINARY",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_OUTPUT_HANDLER_CONT",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PHP_OUTPUT_HANDLER_END",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "STDIN",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "STDOUT",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "STDERR",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LIBXML_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LIBXML_DOTTED_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LIBXML_LOADED_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "LIBXML_BIGLINES",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "OPENSSL_VERSION_TEXT",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "OPENSSL_VERSION_NUMBER",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "OPENSSL_DEFAULT_STREAM_CIPHERS",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PCRE_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZLIB_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZLIB_VERNUM",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "FILEINFO_EXTENSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ICONV_VERSION",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "POSIX_RLIMIT_AS",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "POSIX_RLIMIT_MEMLOCK",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "POSIX_RLIMIT_NOFILE",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "POSIX_RLIMIT_NPROC",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "POSIX_RLIMIT_INFINITY",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZEND_ACC_PPP_MASK",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "pcov\\version",
+ "problems": [
+ {
+ "description": "wrong value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ],
+ "functions": [
+ {
+ "name": "imagefilledpolygon",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "session_set_save_handler",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "array_map",
+ "problems": [
+ {
+ "description": "absent in meta",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stream_context_set_option",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setcookie",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setrawcookie",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "strtr",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "implode",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "join",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "array_multisort",
+ "parameters": [
+ {
+ "name": "rest",
+ "problems": [
+ {
+ "description": "parameter reference",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "array",
+ "problems": [
+ {
+ "description": "parameter reference",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "extract",
+ "parameters": [
+ {
+ "name": "array",
+ "problems": [
+ {
+ "description": "parameter reference",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "dba_fetch",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "cubrid_execute",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "crypt",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "pg_lo_import",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "pg_lo_export",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "session_set_cookie_params",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ },
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "parallel\\run",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "bcdiv",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "bcmod",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "hash_update_file",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ 5.6,
+ 7.0
+ ]
+ }
+ ]
+ },
+ {
+ "name": "var_dump",
+ "parameters": [
+ {
+ "name": "vars",
+ "problems": [
+ {
+ "description": "wrong optionallity",
+ "versions": [
+ 5.6,
+ 7.0,
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "print_r",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2
+ ]
+ }
+ ]
+ },
+ {
+ "name": "rewinddir",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stream_get_filters",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stream_get_transports",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stream_get_wrappers",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "hrtime",
+ "parameters": [
+ {
+ "name": "get_as_number",
+ "problems": [
+ {
+ "description": "wrong optionallity",
+ "versions": [
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "hash_pbkdf2",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ 8.2
+ ]
+ }
+ ]
+ }
+ ],
+ "classes": [
+ {
+ "name": "DOMException",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 5.6
+ ]
+ }
+ ]
+ },
+ {
+ "name": "mysqli_sql_exception",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 5.6
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Application",
+ "methods": [
+ {
+ "name": "execute",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ 8.0,
+ 8.1
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Dispatcher",
+ "methods": [
+ {
+ "name": "setErrorHandler",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "call == callable"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionFunction",
+ "methods": [
+ {
+ "name": "export",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionFunctionAbstract",
+ "methods": [
+ {
+ "name": "getReturnType",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionReference",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2,
+ 8.3
+ ]
+ }
+ ],
+ "methods": [
+ {
+ "name": "fromArrayElement",
+ "parameters": [
+ {
+ "name": "key",
+ "problems": [
+ {
+ "description": "parameter type mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionClassConstant",
+ "methods": [
+ {
+ "name": "__construct",
+ "parameters": [
+ {
+ "name": "class",
+ "problems": [
+ {
+ "description": "parameter type mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ZMQSocket",
+ "methods": [
+ {
+ "name": "getSockOpt",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionExtension",
+ "methods": [
+ {
+ "name": "export",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Request_Http",
+ "methods": [
+ {
+ "name": "getQuery",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getPost",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getCookie",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Request_Abstract",
+ "methods": [
+ {
+ "name": "getParam",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$default is mixed"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Registry",
+ "methods": [
+ {
+ "name": "set",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value is mixed"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Request_Abstract",
+ "methods": [
+ {
+ "name": "getServer",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value is mixed"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Session",
+ "methods": [
+ {
+ "name": "offsetGet",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$name is mixed in ArrayAccess"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Router",
+ "methods": [
+ {
+ "name": "addRoute",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "There is no Yaf_Route_Abstract class"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "NumberFormatter",
+ "methods": [
+ {
+ "name": "format",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value is number"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvCheck",
+ "methods": [
+ {
+ "name": "createStopped",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvPeriodic",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvPrepare",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvIdle",
+ "methods": [
+ {
+ "name": "createStopped",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvLoop",
+ "methods": [
+ {
+ "name": "child",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "embed",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ },
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "check",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ },
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "prepare",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "fork",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "EvPrepare",
+ "methods": {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "name": "EvIdle",
+ "methods": {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ },
+ {
+ "name": "EvFork",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "createStopped",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Route_Rewrite",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yar_Concurrent_Client",
+ "methods": [
+ {
+ "name": "call",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "parallel\\Sync",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value is scalar"
+ ]
+ },
+ {
+ "name": "set",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value is scalar"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Lua",
+ "methods": [
+ {
+ "name": "call",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$use_self appears to be bool"
+ ]
+ },
+ {
+ "name": "assign",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "$value appears to be mixed"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SoapFault",
+ "methods": [
+ {
+ "name": "SoapFault",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Yaf_Route_Map",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "XSLTProcessor",
+ "methods": [
+ {
+ "name": "transformToXml",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SolrQuery",
+ "methods": [
+ {
+ "name": "setFacetDateHardEnd",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Imagick",
+ "methods": [
+ {
+ "name": "getImageDistortion",
+ "problems": [
+ {
+ "description": "has type mismatch in signature and phpdoc",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ],
+ "comment": [
+ "magickwand is a type from c sources"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "AMQPBasicProperties",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ArrayObject",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ 5.3,
+ 5.4,
+ 5.5,
+ 5.6
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RecursiveRegexIterator",
+ "methods": [
+ {
+ "name": "accept",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Phar",
+ "methods": [
+ {
+ "name": "getPath",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PharData",
+ "methods": [
+ {
+ "name": "__destruct",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "addEmptyDir",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "addFile",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "addFromString",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "buildFromDirectory",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "buildFromIterator",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "compressFiles",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "decompressFiles",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "compress",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "decompress",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "convertToExecutable",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "convertToData",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "copy",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "count",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "delete",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "delMetadata",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "extractTo",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getAlias",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getPath",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getMetadata",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getModified",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getSignature",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getStub",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getVersion",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "hasMetadata",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "isBuffering",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "isCompressed",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "isFileFormat",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "isWritable",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setAlias",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setDefaultStub",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setMetadata",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setSignatureAlgorithm",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "setStub",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "startBuffering",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "stopBuffering",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "apiVersion",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "canCompress",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "canWrite",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "createDefaultStub",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getSupportedCompression",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getSupportedSignatures",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "interceptFileFunc",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "isValidPharFilename",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "loadPhar",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "mapPhar",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "running",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "mount",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "mungServer",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "unlinkArchive",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "webPhar",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "interceptFileFuncs",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ],
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DirectoryIterator",
+ "methods": [
+ {
+ "name": "getFilename",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getExtension",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getBasename",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "__toString",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "getSignature",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionNamedType",
+ "methods": [
+ {
+ "name": "getName",
+ "problems": [
+ {
+ "description": "missing method",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionProperty",
+ "methods": [
+ {
+ "name": "getType",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionParameter",
+ "methods": [
+ {
+ "name": "getType",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionClass",
+ "methods": [
+ {
+ "name": "newInstance",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DatePeriod",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DOMImplementation",
+ "methods": [
+ {
+ "name": "hasFeature",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTimeImmutable",
+ "methods": [
+ {
+ "name": "__set_state",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTime",
+ "methods": [
+ {
+ "name": "__set_state",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DOMXPath",
+ "methods": [
+ {
+ "name": "registerPhpFunctions",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SplHeap",
+ "methods": [
+ {
+ "name": "compare",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PDO",
+ "methods": [
+ {
+ "name": "query",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "XMLWriter",
+ "methods": [
+ {
+ "name": "writeDtdEntity",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionMethod",
+ "methods": [
+ {
+ "name": "invoke",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateTimeZone",
+ "methods": [
+ {
+ "name": "__set_state",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "FilesystemIterator",
+ "methods": [
+ {
+ "name": "__construct",
+ "parameters": [
+ {
+ "name": "flags",
+ "problems": [
+ {
+ "description": "wrong default value",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DateInterval",
+ "methods": [
+ {
+ "name": "__set_state",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "PDOStatement",
+ "methods": [
+ {
+ "name": "setFetchMode",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RecursiveTreeIterator",
+ "methods": [
+ {
+ "name": "setPostfix",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DOMDocument",
+ "methods": [
+ {
+ "name": "schemaValidate",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "saveHTML",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "save",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "schemaValidateSource",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Closure",
+ "methods": [
+ {
+ "name": "__invoke",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SyncEvent",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "mysqli_stmt",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "bind_param",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "bind_result",
+ "problems": [
+ {
+ "description": "parameter mismatch",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SQLite3",
+ "methods": [
+ {
+ "name": "createFunction",
+ "parameters": [
+ {
+ "name": "flags",
+ "problems": [
+ {
+ "description": "has scalar typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "openBlob",
+ "parameters": [
+ {
+ "name": "flags",
+ "problems": [
+ {
+ "description": "has scalar typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntlCalendar",
+ "methods": [
+ {
+ "name": "set",
+ "problems": [
+ {
+ "description": "has duplicate in stubs",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IntlBreakIterator",
+ "methods": [
+ {
+ "name": "getPartsIterator",
+ "parameters": [
+ {
+ "name": "type",
+ "problems": [
+ {
+ "description": "parameter type mismatch",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ParseError",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ 7.0,
+ 7.1,
+ 7.2
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SimpleXMLElement",
+ "methods": [
+ {
+ "name": "__construct",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 5.6,
+ 7.0,
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ },
+ {
+ "name": "current",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "attributes",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "children",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "addChild",
+ "problems": [
+ {
+ "description": "wrong return typehint",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "XMLReader",
+ "methods": [
+ {
+ "name": "open",
+ "problems": [
+ {
+ "description": "has wrong static modifier",
+ "versions": [
+ 5.6,
+ 7.0,
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ },
+ {
+ "name": "XML",
+ "problems": [
+ {
+ "description": "has wrong static modifier",
+ "versions": [
+ 5.6,
+ 7.0,
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "DOMNamedNodeMap",
+ "methods": [
+ {
+ "name": "item",
+ "parameters": [
+ {
+ "name": "index",
+ "problems": [
+ {
+ "description": "wrong optionallity",
+ "versions": [
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionGenerator",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2,
+ 8.3
+ ]
+ }
+ ]
+ },
+ {
+ "name": "ReflectionAttribute",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 7.1,
+ 7.2,
+ 7.3,
+ 7.4
+ ]
+ }
+ ]
+ },
+ {
+ "name": "__PHP_Incomplete_Class",
+ "problems": [
+ {
+ "description": "has wrong final modifier",
+ "versions": [
+ 8.0,
+ 8.1,
+ 8.2,
+ 8.3
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Transliterator",
+ "properties": [
+ {
+ "name": "id",
+ "problems": [
+ {
+ "description": "wrong readonly",
+ "versions": [
+ 8.1,
+ 8.2
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "interfaces": [
+ {
+ "name": "Traversable",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "IteratorAggregate",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "Iterator",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "RecursiveIterator",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "OuterIterator",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ },
+ {
+ "name": "SeekableIterator",
+ "problems": [
+ {
+ "description": "wrong parent",
+ "versions": [
+ "ALL"
+ ]
+ }
+ ]
+ }
+ ],
+ "enums": []
+}
diff --git a/phpstorm-stubs/tests/Tools/ModelAutoloader.php b/phpstorm-stubs/tests/Tools/ModelAutoloader.php
new file mode 100644
index 0000000..e0b859f
--- /dev/null
+++ b/phpstorm-stubs/tests/Tools/ModelAutoloader.php
@@ -0,0 +1,19 @@
+ true]);
+/** @var StubsContainer $peclAndCoreStubs */
+$peclAndCoreStubs = unserialize(file_get_contents(__DIR__ . '/../../ReflectionDataPecl.json'), ['allowed_classes' => true]);
+$onlyPeclStubs = new StubsContainer();
+foreach ($peclAndCoreStubs->getConstants() as $peclConstant) {
+ if (empty(array_filter($coreStubs->getConstants(), fn ($constant) => $constant->name === $peclConstant->name))) {
+ $onlyPeclStubs->addConstant($peclConstant);
+ }
+}
+foreach ($peclAndCoreStubs->getClasses() as $peclClass) {
+ if (empty(array_filter($coreStubs->getClasses(), fn ($class) => $class->name === $peclClass->name))) {
+ $onlyPeclStubs->addClass($peclClass);
+ }
+}
+foreach ($peclAndCoreStubs->getFunctions() as $peclFunction) {
+ if (empty(array_filter($coreStubs->getFunctions(), fn ($function) => $function->name === $peclFunction->name))) {
+ $onlyPeclStubs->addFunction($peclFunction);
+ }
+}
+foreach ($peclAndCoreStubs->getInterfaces() as $peclInterface) {
+ if (empty(array_filter($coreStubs->getInterfaces(), fn ($interface) => $interface->name === $peclInterface->name))) {
+ $onlyPeclStubs->addInterface($peclInterface);
+ }
+}
+file_put_contents(__DIR__ . '/../../ReflectionData.json', serialize($onlyPeclStubs));
diff --git a/phpstorm-stubs/tests/Tools/dump-reflection-to-file.php b/phpstorm-stubs/tests/Tools/dump-reflection-to-file.php
new file mode 100644
index 0000000..1a82030
--- /dev/null
+++ b/phpstorm-stubs/tests/Tools/dump-reflection-to-file.php
@@ -0,0 +1,12 @@
+prettyPrint([$node]), 0, 50)
+ ));
+ }
+ }
+
+ class InvalidFileLocation extends RuntimeException
+ {
+ }
+
+ /**
+ * @throws InvalidFileLocation
+ */
+ function assertReadableFile(string $filename): void
+ {
+ if (empty($filename)) {
+ throw new InvalidFileLocation('Filename was empty');
+ }
+ if (!file_exists($filename)) {
+ throw new InvalidFileLocation(sprintf('File "%s" does not exist', $filename));
+ }
+ if (!is_readable($filename)) {
+ throw new InvalidFileLocation(sprintf('File "%s" is not readable', $filename));
+ }
+ if (!is_file($filename)) {
+ throw new InvalidFileLocation(sprintf('"%s" is not a file', $filename));
+ }
+ }
+
+ /**
+ * @throws InvalidConstantNode
+ */
+ function assertValidDefineFunctionCall(Node\Expr\FuncCall $node): void
+ {
+ if (!($node->name instanceof Node\Name)) {
+ throw InvalidConstantNode::create($node);
+ }
+ if ($node->name->toLowerString() !== 'define') {
+ throw InvalidConstantNode::create($node);
+ }
+ if (!in_array(count($node->args), [2, 3], true)) {
+ throw InvalidConstantNode::create($node);
+ }
+ if (!($node->args[0]->value instanceof Node\Scalar\String_)) {
+ throw InvalidConstantNode::create($node);
+ }
+ $valueNode = $node->args[1]->value;
+ if ($valueNode instanceof Node\Expr\Variable) {
+ throw InvalidConstantNode::create($node);
+ }
+ }
+
+ $phpStormStubsDirectory = __DIR__ . '/../../';
+
+ $fileVisitor = new class() extends NodeVisitorAbstract {
+ /** @var string[] */
+ private $classNames = [];
+
+ /** @var string[] */
+ private $functionNames = [];
+
+ /** @var string[] */
+ private $constantNames = [];
+
+ /**
+ * {@inheritdoc}
+ */
+ public function enterNode(Node $node): ?int
+ {
+ if ($node instanceof Node\Stmt\ClassLike) {
+ if ($node->getDocComment() !== null && strpos($node->getDocComment()->getText(), '@internal') !== false) {
+ return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ }
+
+ $this->classNames[] = $node->namespacedName->toString();
+
+ return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ }
+
+ if ($node instanceof Node\Stmt\Function_) {
+ $this->functionNames[] = $node->namespacedName->toString();
+
+ return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ }
+
+ if ($node instanceof Node\Const_) {
+ $this->constantNames[] = $node->namespacedName->toString();
+
+ return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ }
+
+ if ($node instanceof Node\Expr\FuncCall) {
+ try {
+ assertValidDefineFunctionCall($node);
+ } catch (InvalidConstantNode $e) {
+ return null;
+ }
+
+ /** @var Node\Scalar\String_ $nameNode */
+ $nameNode = $node->args[0]->value;
+
+ if (count($node->args) === 3
+ && $node->args[2]->value instanceof Node\Expr\ConstFetch
+ && $node->args[2]->value->name->toLowerString() === 'true'
+ ) {
+ $this->constantNames[] = strtolower($nameNode->value);
+ }
+
+ $this->constantNames[] = $nameNode->value;
+
+ return NodeTraverser::DONT_TRAVERSE_CHILDREN;
+ }
+
+ return null;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getClassNames(): array
+ {
+ return $this->classNames;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getFunctionNames(): array
+ {
+ return $this->functionNames;
+ }
+
+ /**
+ * @return string[]
+ */
+ public function getConstantNames(): array
+ {
+ return $this->constantNames;
+ }
+
+ public function clear(): void
+ {
+ $this->classNames = [];
+ $this->functionNames = [];
+ $this->constantNames = [];
+ }
+ };
+
+ $phpParser = (new ParserFactory())->createForNewestSupportedVersion();
+
+ $nodeTraverser = new NodeTraverser();
+ $nodeTraverser->addVisitor(new NameResolver());
+ $nodeTraverser->addVisitor($fileVisitor);
+
+ $map = ['classes' => [], 'functions' => [], 'constants' => []];
+
+ foreach (new DirectoryIterator($phpStormStubsDirectory) as $directoryInfo) {
+ /** @var DirectoryIterator $directoryInfo */
+ if ($directoryInfo->isDot()) {
+ continue;
+ }
+
+ if (!$directoryInfo->isDir()) {
+ continue;
+ }
+
+ if (in_array($directoryInfo->getBasename(), ['tests', 'meta', 'vendor', 'couchbase_v2'], true)) {
+ continue;
+ }
+
+ $iterator = new RecursiveIteratorIterator(
+ new RecursiveDirectoryIterator($directoryInfo->getPathName(), RecursiveDirectoryIterator::SKIP_DOTS)
+ );
+
+ /** @var SplFileInfo $fileInfo */
+ foreach ($iterator as $fileInfo) {
+ if (!preg_match('/\.php$/', $fileInfo->getBasename())) {
+ continue;
+ }
+
+ assertReadableFile($fileInfo->getPathname());
+
+ echo sprintf('Parsing "%s"', $fileInfo->getPathname()) . PHP_EOL;
+
+ $ast = $phpParser->parse(file_get_contents($fileInfo->getPathname()));
+
+ $nodeTraverser->traverse($ast);
+
+ foreach ($fileVisitor->getClassNames() as $className) {
+ $map['classes'][$className] = $fileInfo->getPathname();
+ }
+
+ foreach ($fileVisitor->getFunctionNames() as $functionName) {
+ $map['functions'][$functionName] = $fileInfo->getPathname();
+ }
+
+ foreach ($fileVisitor->getConstantNames() as $constantName) {
+ $map['constants'][$constantName] = $fileInfo->getPathname();
+ }
+
+ $fileVisitor->clear();
+ }
+ }
+
+ $mapWithRelativeFilePaths = array_map(static function (array $files) use ($phpStormStubsDirectory): array {
+ ksort($files);
+
+ return array_map(static function (string $filePath) use ($phpStormStubsDirectory): string {
+ return str_replace('\\', '/', substr($filePath, strlen($phpStormStubsDirectory)));
+ }, $files);
+ }, $map);
+
+ $exportedClasses = var_export($mapWithRelativeFilePaths['classes'], true);
+ $exportedFunctions = var_export($mapWithRelativeFilePaths['functions'], true);
+ $exportedConstants = var_export($mapWithRelativeFilePaths['constants'], true);
+
+ $output = <<<"PHP"
+
+ * Returns the value of the specified configuration option for the tidy document
+ * @link https://php.net/manual/en/tidy.getopt.php
+ * @param string $option
+ * You will find a list with each configuration option and their types
+ * at: http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @return mixed the value of the specified option.
+ * The return type depends on the type of the specified one.
+ */
+ public function getOpt($option) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Execute configured cleanup and repair operations on parsed markup
+ * @link https://php.net/manual/en/tidy.cleanrepair.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function cleanRepair() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Parse markup in file or URI
+ * @link https://php.net/manual/en/tidy.parsefile.php
+ * @param string $filename
+ * If the filename parameter is given, this function
+ * will also read that file and initialize the object with the file,
+ * acting like tidy_parse_file.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * For an explanation about each option, see
+ * http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @param bool $use_include_path [optional]
+ * Search for the file in the include_path.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function parseFile($filename, $config = null, $encoding = null, $use_include_path = false) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Parse a document stored in a string
+ * @link https://php.net/manual/en/tidy.parsestring.php
+ * @param string $input
+ * The data to be parsed.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @return bool a new tidy instance.
+ */
+ public function parseString($input, $config = null, $encoding = null) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Repair a string using an optionally provided configuration file
+ * @link https://php.net/manual/en/tidy.repairstring.php
+ * @param string $data
+ * The data to be repaired.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * Check http://tidy.sourceforge.net/docs/quickref.html for
+ * an explanation about each option.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @return string the repaired string.
+ */
+ public function repairString($data, $config = null, $encoding = null) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Repair a file and return it as a string
+ * @link https://php.net/manual/en/tidy.repairfile.php
+ * @param string $filename
+ * The file to be repaired.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * Check http://tidy.sourceforge.net/docs/quickref.html for an
+ * explanation about each option.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @param bool $use_include_path [optional]
+ * Search for the file in the include_path.
+ *
+ * @return string the repaired contents as a string.
+ */
+ public function repairFile($filename, $config = null, $encoding = null, $use_include_path = false) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Run configured diagnostics on parsed and repaired markup
+ * @link https://php.net/manual/en/tidy.diagnose.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function diagnose() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get release date (version) for Tidy library
+ * @link https://php.net/manual/en/tidy.getrelease.php
+ * @return string a string with the release date of the Tidy library.
+ */
+ public function getRelease() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Get current Tidy configuration
+ * @link https://php.net/manual/en/tidy.getconfig.php
+ * @return array an array of configuration options.
+ *
+ *
+ * For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.
+ */
+ public function getConfig() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get status of specified document
+ * @link https://php.net/manual/en/tidy.getstatus.php
+ * @return int 0 if no error/warning was raised, 1 for warnings or accessibility
+ * errors, or 2 for errors.
+ */
+ public function getStatus() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get the Detected HTML version for the specified document
+ * @link https://php.net/manual/en/tidy.gethtmlver.php
+ * @return int the detected HTML version.
+ *
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return 0.
+ */
+ public function getHtmlVer() {}
+
+ /**
+ * Returns the documentation for the given option name
+ * @link https://php.net/manual/en/tidy.getoptdoc.php
+ * @param string $optname
+ * The option name
+ *
+ * @return string a string if the option exists and has documentation available, or
+ * FALSE otherwise.
+ */
+ public function getOptDoc($optname) {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Indicates if the document is a XHTML document
+ * @link https://php.net/manual/en/tidy.isxhtml.php
+ * @return bool This function returns TRUE if the specified tidy
+ * object is a XHTML document, or FALSE otherwise.
+ *
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return FALSE.
+ */
+ public function isXhtml() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Indicates if the document is a generic (non HTML/XHTML) XML document
+ * @link https://php.net/manual/en/tidy.isxml.php
+ * @return bool This function returns TRUE if the specified tidy
+ * object is a generic XML document (non HTML/XHTML),
+ * or FALSE otherwise.
+ *
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return FALSE.
+ */
+ public function isXml() {}
+
+ /**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object representing the root of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.root.php
+ * @return tidyNode the tidyNode object.
+ */
+ public function root() {}
+
+ /**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object starting from the <head> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.head.php
+ * @return tidyNode the tidyNode object.
+ */
+ public function head() {}
+
+ /**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object starting from the <html> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.html.php
+ * @return tidyNode the tidyNode object.
+ */
+ public function html() {}
+
+ /**
+ * (PHP 5, PECL tidy 0.5.2-1.0)
+ * Returns a tidyNode object starting from the <body> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.body.php
+ * @return tidyNode a tidyNode object starting from the
+ * <body> tag of the tidy parse tree.
+ */
+ public function body() {}
+
+ /**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Constructs a new tidy object
+ * @link https://php.net/manual/en/tidy.construct.php
+ * @param string $filename [optional]
+ * If the filename parameter is given, this function
+ * will also read that file and initialize the object with the file,
+ * acting like tidy_parse_file.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @param bool $use_include_path [optional]
+ * Search for the file in the include_path.
+ *
+ */
+ public function __construct($filename = null, $config = null, $encoding = null, $use_include_path = null) {}
+}
+
+/**
+ * An HTML node in an HTML file, as detected by tidy.
+ * @link https://php.net/manual/en/class.tidynode.php
+ */
+final class tidyNode
+{
+ /**
+ * The HTML representation of the node, including the surrounding tags.
+ * @var string
+ */
+ public $value;
+
+ /**
+ * The name of the HTML node
+ * @var string
+ */
+ public $name;
+
+ /**
+ * The type of the tag (one of the constants above, e.g. TIDY_NODETYPE_PHP)
+ * @var int
+ */
+ public $type;
+
+ /**
+ * The line number at which the tags is located in the file
+ * @var int
+ */
+ public $line;
+
+ /**
+ * The column number at which the tags is located in the file
+ * @var int
+ */
+ public $column;
+
+ /**
+ * Indicates if the node is a proprietary tag
+ * @var bool
+ */
+ public $proprietary;
+
+ /**
+ * The ID of the tag (one of the constants above, e.g. TIDY_TAG_FRAME)
+ * @var int
+ */
+ public $id;
+
+ /**
+ *
+ * An array of string, representing
+ * the attributes names (as keys) of the current node.
+ *
+ * @var array
+ */
+ public $attribute;
+
+ /**
+ *
+ * An array of tidyNode, representing
+ * the children of the current node.
+ *
+ * @var array
+ */
+ public $child;
+
+ /**
+ * Checks if a node has children
+ * @link https://php.net/manual/en/tidynode.haschildren.php
+ * @return bool TRUE if the node has children, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function hasChildren() {}
+
+ /**
+ * Checks if a node has siblings
+ * @link https://php.net/manual/en/tidynode.hassiblings.php
+ * @return bool TRUE if the node has siblings, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function hasSiblings() {}
+
+ /**
+ * Checks if a node represents a comment
+ * @link https://php.net/manual/en/tidynode.iscomment.php
+ * @return bool TRUE if the node is a comment, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isComment() {}
+
+ /**
+ * Checks if a node is part of a HTML document
+ * @link https://php.net/manual/en/tidynode.ishtml.php
+ * @return bool TRUE if the node is part of a HTML document, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isHtml() {}
+
+ /**
+ * Checks if a node represents text (no markup)
+ * @link https://php.net/manual/en/tidynode.istext.php
+ * @return bool TRUE if the node represent a text, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isText() {}
+
+ /**
+ * Checks if this node is JSTE
+ * @link https://php.net/manual/en/tidynode.isjste.php
+ * @return bool TRUE if the node is JSTE, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isJste() {}
+
+ /**
+ * Checks if this node is ASP
+ * @link https://php.net/manual/en/tidynode.isasp.php
+ * @return bool TRUE if the node is ASP, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isAsp() {}
+
+ /**
+ * Checks if a node is PHP
+ * @link https://php.net/manual/en/tidynode.isphp.php
+ * @return bool TRUE if the current node is PHP code, FALSE otherwise.
+ * @since 5.0.1
+ */
+ public function isPhp() {}
+
+ /**
+ * Returns the parent node of the current node
+ * @link https://php.net/manual/en/tidynode.getparent.php
+ * @return tidyNode a tidyNode if the node has a parent, or NULL
+ * otherwise.
+ * @since 5.2.2
+ */
+ public function getParent() {}
+
+ private function __construct() {}
+}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Returns the value of the specified configuration option for the tidy document
+ * @link https://php.net/manual/en/tidy.getopt.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @param string $option
+ * You will find a list with each configuration option and their types
+ * at: http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @return mixed the value of the specified option.
+ * The return type depends on the type of the specified one.
+ */
+function tidy_getopt(tidy $object, $option) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Parse a document stored in a string
+ * @link https://php.net/manual/en/tidy.parsestring.php
+ * @param string $input
+ * The data to be parsed.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @return tidy a new tidy instance.
+ */
+function tidy_parse_string($input, $config = null, $encoding = null) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Parse markup in file or URI
+ * @link https://php.net/manual/en/tidy.parsefile.php
+ * @param string $filename
+ * If the filename parameter is given, this function
+ * will also read that file and initialize the object with the file,
+ * acting like tidy_parse_file.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * For an explanation about each option, see
+ * http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @param bool $use_include_path [optional]
+ * Search for the file in the include_path.
+ *
+ * @return tidy a new tidy instance.
+ */
+function tidy_parse_file($filename, $config = null, $encoding = null, $use_include_path = false) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Return a string representing the parsed tidy markup
+ * @link https://php.net/manual/en/function.tidy-get-output.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return string the parsed tidy markup.
+ */
+function tidy_get_output(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Return warnings and errors which occurred parsing the specified document
+ * @link https://php.net/manual/en/tidy.props.errorbuffer.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return mixed the error buffer as a string.
+ */
+function tidy_get_error_buffer(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Execute configured cleanup and repair operations on parsed markup
+ * @link https://php.net/manual/en/tidy.cleanrepair.php
+ * @param tidy $object The Tidy object.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function tidy_clean_repair(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Repair a string using an optionally provided configuration file
+ * @link https://php.net/manual/en/tidy.repairstring.php
+ * @param string $data
+ * The data to be repaired.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * Check http://tidy.sourceforge.net/docs/quickref.html for
+ * an explanation about each option.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @return string the repaired string.
+ */
+function tidy_repair_string($data, $config = null, $encoding = null) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Repair a file and return it as a string
+ * @link https://php.net/manual/en/tidy.repairfile.php
+ * @param string $filename
+ * The file to be repaired.
+ *
+ * @param mixed $config [optional]
+ * The config config can be passed either as an
+ * array or as a string. If a string is passed, it is interpreted as the
+ * name of the configuration file, otherwise, it is interpreted as the
+ * options themselves.
+ *
+ *
+ * Check http://tidy.sourceforge.net/docs/quickref.html for an
+ * explanation about each option.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding parameter sets the encoding for
+ * input/output documents. The possible values for encoding are:
+ * ascii, latin0, latin1,
+ * raw, utf8, iso2022,
+ * mac, win1252, ibm858,
+ * utf16, utf16le, utf16be,
+ * big5, and shiftjis.
+ *
+ * @param bool $use_include_path [optional]
+ * Search for the file in the include_path.
+ *
+ * @return string the repaired contents as a string.
+ */
+function tidy_repair_file($filename, $config = null, $encoding = null, $use_include_path = false) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Run configured diagnostics on parsed and repaired markup
+ * @link https://php.net/manual/en/tidy.diagnose.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function tidy_diagnose(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get release date (version) for Tidy library
+ * @link https://php.net/manual/en/tidy.getrelease.php
+ * @return string a string with the release date of the Tidy library.
+ */
+function tidy_get_release() {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.7.0)
+ * Get current Tidy configuration
+ * @link https://php.net/manual/en/tidy.getconfig.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return array an array of configuration options.
+ *
+ * For an explanation about each option, visit http://tidy.sourceforge.net/docs/quickref.html.
+ *
+ */
+function tidy_get_config(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get status of specified document
+ * @link https://php.net/manual/en/tidy.getstatus.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int 0 if no error/warning was raised, 1 for warnings or accessibility
+ * errors, or 2 for errors.
+ */
+function tidy_get_status(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Get the Detected HTML version for the specified document
+ * @link https://php.net/manual/en/tidy.gethtmlver.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int the detected HTML version.
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return 0.
+ *
+ */
+function tidy_get_html_ver(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Indicates if the document is a XHTML document
+ * @link https://php.net/manual/en/tidy.isxhtml.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return bool This function returns TRUE if the specified tidy
+ * object is a XHTML document, or FALSE otherwise.
+ *
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return FALSE.
+ */
+function tidy_is_xhtml(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Indicates if the document is a generic (non HTML/XHTML) XML document
+ * @link https://php.net/manual/en/tidy.isxml.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return bool This function returns TRUE if the specified tidy
+ * object is a generic XML document (non HTML/XHTML),
+ * or FALSE otherwise.
+ *
+ *
+ * This function is not yet implemented in the Tidylib itself, so it always
+ * return FALSE.
+ */
+function tidy_is_xml(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Returns the Number of Tidy errors encountered for specified document
+ * @link https://php.net/manual/en/function.tidy-error-count.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int the number of errors.
+ */
+function tidy_error_count(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Returns the Number of Tidy warnings encountered for specified document
+ * @link https://php.net/manual/en/function.tidy-warning-count.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int the number of warnings.
+ */
+function tidy_warning_count(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Returns the Number of Tidy accessibility warnings encountered for specified document
+ * @link https://php.net/manual/en/function.tidy-access-count.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int the number of warnings.
+ */
+function tidy_access_count(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy >= 0.5.2)
+ * Returns the Number of Tidy configuration errors encountered for specified document
+ * @link https://php.net/manual/en/function.tidy-config-count.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return int the number of errors.
+ */
+function tidy_config_count(tidy $object) {}
+
+/**
+ * Returns the documentation for the given option name
+ * @link https://php.net/manual/en/tidy.getoptdoc.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @param string $optname
+ * The option name
+ *
+ * @return string a string if the option exists and has documentation available, or
+ * FALSE otherwise.
+ */
+function tidy_get_opt_doc(tidy $object, $optname) {}
+
+/**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object representing the root of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.root.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return tidyNode the tidyNode object.
+ */
+function tidy_get_root(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object starting from the <head> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.head.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return tidyNode the tidyNode object.
+ */
+function tidy_get_head(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy 0.5.2-1.0.0)
+ * Returns a tidyNode object starting from the <html> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.html.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return tidyNode the tidyNode object.
+ */
+function tidy_get_html(tidy $object) {}
+
+/**
+ * (PHP 5, PECL tidy 0.5.2-1.0)
+ * Returns a tidyNode object starting from the <body> tag of the tidy parse tree
+ * @link https://php.net/manual/en/tidy.body.php
+ * @param tidy $object
+ * The Tidy object.
+ *
+ * @return tidyNode a tidyNode object starting from the
+ * <body> tag of the tidy parse tree.
+ */
+function tidy_get_body(tidy $object) {}
+
+/**
+ * ob_start callback function to repair the buffer
+ * @link https://php.net/manual/en/function.ob-tidyhandler.php
+ * @param string $input
+ * The buffer.
+ *
+ * @param int $mode [optional]
+ * The buffer mode.
+ *
+ * @return string the modified buffer.
+ */
+function ob_tidyhandler($input, $mode = null) {}
+
+/**
+ * description
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_TAG_UNKNOWN', 0);
+define('TIDY_TAG_A', 1);
+define('TIDY_TAG_ABBR', 2);
+define('TIDY_TAG_ACRONYM', 3);
+define('TIDY_TAG_ADDRESS', 4);
+define('TIDY_TAG_ALIGN', 5);
+define('TIDY_TAG_APPLET', 6);
+define('TIDY_TAG_AREA', 7);
+define('TIDY_TAG_B', 8);
+define('TIDY_TAG_BASE', 9);
+define('TIDY_TAG_BASEFONT', 10);
+define('TIDY_TAG_BDO', 11);
+define('TIDY_TAG_BGSOUND', 12);
+define('TIDY_TAG_BIG', 13);
+define('TIDY_TAG_BLINK', 14);
+define('TIDY_TAG_BLOCKQUOTE', 15);
+define('TIDY_TAG_BODY', 16);
+define('TIDY_TAG_BR', 17);
+define('TIDY_TAG_BUTTON', 18);
+define('TIDY_TAG_CAPTION', 19);
+define('TIDY_TAG_CENTER', 20);
+define('TIDY_TAG_CITE', 21);
+define('TIDY_TAG_CODE', 22);
+define('TIDY_TAG_COL', 23);
+define('TIDY_TAG_COLGROUP', 24);
+define('TIDY_TAG_COMMENT', 25);
+define('TIDY_TAG_DD', 26);
+define('TIDY_TAG_DEL', 27);
+define('TIDY_TAG_DFN', 28);
+define('TIDY_TAG_DIR', 29);
+define('TIDY_TAG_DIV', 30);
+define('TIDY_TAG_DL', 31);
+define('TIDY_TAG_DT', 32);
+define('TIDY_TAG_EM', 33);
+define('TIDY_TAG_EMBED', 34);
+define('TIDY_TAG_FIELDSET', 35);
+define('TIDY_TAG_FONT', 36);
+define('TIDY_TAG_FORM', 37);
+define('TIDY_TAG_FRAME', 38);
+define('TIDY_TAG_FRAMESET', 39);
+define('TIDY_TAG_H1', 40);
+define('TIDY_TAG_H2', 41);
+define('TIDY_TAG_H3', 42);
+define('TIDY_TAG_H4', 43);
+define('TIDY_TAG_H5', 44);
+define('TIDY_TAG_H6', 45);
+define('TIDY_TAG_HEAD', 46);
+define('TIDY_TAG_HR', 47);
+define('TIDY_TAG_HTML', 48);
+define('TIDY_TAG_I', 49);
+define('TIDY_TAG_IFRAME', 50);
+define('TIDY_TAG_ILAYER', 51);
+define('TIDY_TAG_IMG', 52);
+define('TIDY_TAG_INPUT', 53);
+define('TIDY_TAG_INS', 54);
+define('TIDY_TAG_ISINDEX', 55);
+define('TIDY_TAG_KBD', 56);
+define('TIDY_TAG_KEYGEN', 57);
+define('TIDY_TAG_LABEL', 58);
+define('TIDY_TAG_LAYER', 59);
+define('TIDY_TAG_LEGEND', 60);
+define('TIDY_TAG_LI', 61);
+define('TIDY_TAG_LINK', 62);
+define('TIDY_TAG_LISTING', 63);
+define('TIDY_TAG_MAP', 64);
+define('TIDY_TAG_MARQUEE', 65);
+define('TIDY_TAG_MENU', 66);
+define('TIDY_TAG_META', 67);
+define('TIDY_TAG_MULTICOL', 68);
+define('TIDY_TAG_NOBR', 69);
+define('TIDY_TAG_NOEMBED', 70);
+define('TIDY_TAG_NOFRAMES', 71);
+define('TIDY_TAG_NOLAYER', 72);
+define('TIDY_TAG_NOSAVE', 73);
+define('TIDY_TAG_NOSCRIPT', 74);
+define('TIDY_TAG_OBJECT', 75);
+define('TIDY_TAG_OL', 76);
+define('TIDY_TAG_OPTGROUP', 77);
+define('TIDY_TAG_OPTION', 78);
+define('TIDY_TAG_P', 79);
+define('TIDY_TAG_PARAM', 80);
+define('TIDY_TAG_PLAINTEXT', 81);
+define('TIDY_TAG_PRE', 82);
+define('TIDY_TAG_Q', 83);
+define('TIDY_TAG_RB', 84);
+define('TIDY_TAG_RBC', 85);
+define('TIDY_TAG_RP', 86);
+define('TIDY_TAG_RT', 87);
+define('TIDY_TAG_RTC', 88);
+define('TIDY_TAG_RUBY', 89);
+define('TIDY_TAG_S', 90);
+define('TIDY_TAG_SAMP', 91);
+define('TIDY_TAG_SCRIPT', 92);
+define('TIDY_TAG_SELECT', 93);
+define('TIDY_TAG_SERVER', 94);
+define('TIDY_TAG_SERVLET', 95);
+define('TIDY_TAG_SMALL', 96);
+define('TIDY_TAG_SPACER', 97);
+define('TIDY_TAG_SPAN', 98);
+define('TIDY_TAG_STRIKE', 99);
+define('TIDY_TAG_STRONG', 100);
+define('TIDY_TAG_STYLE', 101);
+define('TIDY_TAG_SUB', 102);
+define('TIDY_TAG_SUP', 103);
+define('TIDY_TAG_TABLE', 104);
+define('TIDY_TAG_TBODY', 105);
+define('TIDY_TAG_TD', 106);
+define('TIDY_TAG_TEXTAREA', 107);
+define('TIDY_TAG_TFOOT', 108);
+define('TIDY_TAG_TH', 109);
+define('TIDY_TAG_THEAD', 110);
+define('TIDY_TAG_TITLE', 111);
+define('TIDY_TAG_TR', 112);
+define('TIDY_TAG_TT', 113);
+define('TIDY_TAG_U', 114);
+define('TIDY_TAG_UL', 115);
+define('TIDY_TAG_VAR', 116);
+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
+ */
+define('TIDY_NODETYPE_ROOT', 0);
+
+/**
+ * doctype
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_DOCTYPE', 1);
+
+/**
+ * HTML comment
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_COMMENT', 2);
+
+/**
+ * Processing Instruction
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_PROCINS', 3);
+
+/**
+ * Text
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_TEXT', 4);
+
+/**
+ * start tag
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_START', 5);
+
+/**
+ * end tag
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_END', 6);
+
+/**
+ * empty tag
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_STARTEND', 7);
+
+/**
+ * CDATA
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_CDATA', 8);
+
+/**
+ * XML section
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_SECTION', 9);
+
+/**
+ * ASP code
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_ASP', 10);
+
+/**
+ * JSTE code
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_JSTE', 11);
+
+/**
+ * PHP code
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_PHP', 12);
+
+/**
+ * XML declaration
+ * @link https://php.net/manual/en/tidy.constants.php
+ */
+define('TIDY_NODETYPE_XMLDECL', 13);
+
+// End of tidy v.2.0
diff --git a/phpstorm-stubs/tokenizer/PhpToken.php b/phpstorm-stubs/tokenizer/PhpToken.php
new file mode 100644
index 0000000..23097a3
--- /dev/null
+++ b/phpstorm-stubs/tokenizer/PhpToken.php
@@ -0,0 +1,77 @@
+
+ * The PHP source to parse.
+ *
+ * @param int $flags
+ *
+ *
+ * Valid flags:
+ *
+ * -
+ *
+ * TOKEN_PARSE - Recognises the ability to use
+ * reserved words in specific contexts.
+ *
+ *
+ *
+ * @return array An array of token identifiers. Each individual token identifier is either
+ * a single character (i.e.: ;, .,
+ * >, !, etc...),
+ * or a three element array containing the token index in element 0, the string
+ * content of the original token in element 1 and the line number in element 2.
+ */
+#[Pure]
+function token_get_all(string $code, #[PhpStormStubsElementAvailable(from: '7.0')] int $flags = 0): array {}
+
+/**
+ * Get the symbolic name of a given PHP token
+ * @link https://php.net/manual/en/function.token-name.php
+ * @param int $id
+ * The token value.
+ *
+ * @return string The symbolic name of the given token.
+ */
+#[Pure]
+function token_name(int $id): string {}
+
+define('TOKEN_PARSE', 1);
+define('T_REQUIRE_ONCE', 263);
+define('T_REQUIRE', 262);
+define('T_EVAL', 323);
+define('T_INCLUDE_ONCE', 261);
+define('T_INCLUDE', 260);
+define('T_LOGICAL_OR', 264);
+define('T_LOGICAL_XOR', 265);
+define('T_LOGICAL_AND', 266);
+define('T_PRINT', 267);
+define('T_YIELD', 268);
+define('T_DOUBLE_ARROW', 269);
+define('T_YIELD_FROM', 270);
+define('T_POW_EQUAL', 282);
+define('T_SR_EQUAL', 281);
+define('T_SL_EQUAL', 280);
+define('T_XOR_EQUAL', 279);
+define('T_OR_EQUAL', 278);
+define('T_AND_EQUAL', 277);
+define('T_MOD_EQUAL', 276);
+define('T_CONCAT_EQUAL', 275);
+define('T_DIV_EQUAL', 274);
+define('T_MUL_EQUAL', 273);
+define('T_MINUS_EQUAL', 272);
+define('T_PLUS_EQUAL', 271);
+/**
+ * @since 7.4
+ */
+define('T_COALESCE_EQUAL', 283);
+define('T_COALESCE', 284);
+define('T_BOOLEAN_OR', 285);
+define('T_BOOLEAN_AND', 286);
+define('T_SPACESHIP', 293);
+define('T_IS_NOT_IDENTICAL', 292);
+define('T_IS_IDENTICAL', 291);
+define('T_IS_NOT_EQUAL', 290);
+define('T_IS_EQUAL', 289);
+define('T_IS_GREATER_OR_EQUAL', 295);
+define('T_IS_SMALLER_OR_EQUAL', 294);
+define('T_SR', 297);
+define('T_SL', 296);
+define('T_INSTANCEOF', 298);
+define('T_UNSET_CAST', 305);
+define('T_BOOL_CAST', 304);
+define('T_OBJECT_CAST', 303);
+define('T_ARRAY_CAST', 302);
+define('T_STRING_CAST', 301);
+define('T_DOUBLE_CAST', 300);
+define('T_INT_CAST', 299);
+define('T_DEC', 389);
+define('T_INC', 388);
+define('T_POW', 306);
+define('T_CLONE', 307);
+define('T_NEW', 324);
+define('T_ELSEIF', 309);
+define('T_ELSE', 310);
+define('T_ENDIF', 327);
+define('T_PUBLIC', 362);
+define('T_PROTECTED', 361);
+define('T_PRIVATE', 360);
+define('T_FINAL', 359);
+define('T_ABSTRACT', 358);
+define('T_STATIC', 357);
+define('T_LNUMBER', 311);
+define('T_DNUMBER', 312);
+define('T_STRING', 313);
+define('T_VARIABLE', 317);
+define('T_INLINE_HTML', 318);
+define('T_ENCAPSED_AND_WHITESPACE', 319);
+define('T_CONSTANT_ENCAPSED_STRING', 320);
+define('T_STRING_VARNAME', 321);
+define('T_NUM_STRING', 322);
+define('T_EXIT', 325);
+define('T_IF', 326);
+define('T_ECHO', 328);
+define('T_DO', 329);
+define('T_WHILE', 330);
+define('T_ENDWHILE', 331);
+define('T_FOR', 332);
+define('T_ENDFOR', 333);
+define('T_FOREACH', 334);
+define('T_ENDFOREACH', 335);
+define('T_DECLARE', 336);
+define('T_ENDDECLARE', 337);
+define('T_AS', 338);
+define('T_SWITCH', 339);
+define('T_ENDSWITCH', 340);
+define('T_CASE', 341);
+define('T_DEFAULT', 342);
+define('T_MATCH', 343);
+define('T_BREAK', 344);
+define('T_CONTINUE', 345);
+define('T_GOTO', 346);
+define('T_FUNCTION', 347);
+define('T_CONST', 349);
+define('T_RETURN', 350);
+define('T_TRY', 351);
+define('T_CATCH', 352);
+define('T_FINALLY', 353);
+define('T_THROW', 258);
+define('T_USE', 354);
+define('T_INSTEADOF', 355);
+define('T_GLOBAL', 356);
+define('T_VAR', 364);
+define('T_UNSET', 365);
+define('T_ISSET', 366);
+define('T_EMPTY', 367);
+define('T_HALT_COMPILER', 368);
+define('T_CLASS', 369);
+define('T_TRAIT', 370);
+define('T_INTERFACE', 371);
+/**
+ * @since 8.1
+ */
+define('T_ENUM', 372);
+define('T_EXTENDS', 373);
+define('T_IMPLEMENTS', 374);
+define('T_OBJECT_OPERATOR', 390);
+define('T_LIST', 376);
+define('T_ARRAY', 377);
+define('T_CALLABLE', 378);
+define('T_LINE', 379);
+define('T_FILE', 380);
+define('T_DIR', 381);
+define('T_CLASS_C', 382);
+define('T_TRAIT_C', 383);
+define('T_METHOD_C', 384);
+define('T_FUNC_C', 385);
+define('T_NS_C', 386);
+/**
+ * @since 8.0
+ */
+define('T_ATTRIBUTE', 387);
+define('T_COMMENT', 392);
+define('T_DOC_COMMENT', 393);
+define('T_OPEN_TAG', 394);
+define('T_OPEN_TAG_WITH_ECHO', 395);
+define('T_CLOSE_TAG', 396);
+define('T_WHITESPACE', 397);
+define('T_START_HEREDOC', 398);
+define('T_END_HEREDOC', 399);
+define('T_DOLLAR_OPEN_CURLY_BRACES', 400);
+define('T_CURLY_OPEN', 401);
+define('T_PAAMAYIM_NEKUDOTAYIM', 402);
+define('T_NAMESPACE', 375);
+define('T_NS_SEPARATOR', 403);
+define('T_ELLIPSIS', 404);
+define('T_DOUBLE_COLON', 402);
+/**
+ * @since 7.4
+ */
+define('T_FN', 348);
+define('T_BAD_CHARACTER', 405);
+
+/**
+ * @since 8.0
+ */
+define('T_NAME_FULLY_QUALIFIED', 314);
+/**
+ * @since 8.0
+ */
+define('T_NAME_RELATIVE', 315);
+/**
+ * @since 8.0
+ */
+define('T_NAME_QUALIFIED', 316);
+/**
+ * @since 8.0
+ */
+define('T_NULLSAFE_OBJECT_OPERATOR', 391);
+
+/**
+ * @since 8.1
+ */
+define('T_AMPERSAND_FOLLOWED_BY_VAR_OR_VARARG', 288);
+
+/**
+ * @since 8.1
+ */
+define('T_AMPERSAND_NOT_FOLLOWED_BY_VAR_OR_VARARG', 287);
+
+/**
+ * @since 8.1
+ */
+define('T_READONLY', 363);
+
+/**
+ * @removed 7.0
+ */
+define('T_CHARACTER', 315);
diff --git a/phpstorm-stubs/uopz/uopz.php b/phpstorm-stubs/uopz/uopz.php
new file mode 100644
index 0000000..059bc92
--- /dev/null
+++ b/phpstorm-stubs/uopz/uopz.php
@@ -0,0 +1,275 @@
+= 0.9.0
+ */
+function uploadprogress_get_contents(string $identifier, string $fieldname, int $maxlen = -1): ?string {}
+
+/**
+ * @param string $identifier
+ * @return array|null
+ * @since PECL uploadprogress >= 0.3.0
+ */
+function uploadprogress_get_info(string $identifier): ?array {}
diff --git a/phpstorm-stubs/uuid/uuid_c.php b/phpstorm-stubs/uuid/uuid_c.php
new file mode 100644
index 0000000..38cee3e
--- /dev/null
+++ b/phpstorm-stubs/uuid/uuid_c.php
@@ -0,0 +1,128 @@
+
+ * The value to be serialized
+ *
+ * @param string $comment [optional]
+ * An optional comment string that appears in the packet header.
+ *
+ * @return string|false the WDDX packet, or FALSE on error.
+ * @removed 7.4
+ */
+function wddx_serialize_value($var, $comment = null) {}
+
+/**
+ * Serialize variables into a WDDX packet
+ * @link https://php.net/manual/en/function.wddx-serialize-vars.php
+ * @param mixed $var_name
+ * Can be either a string naming a variable or an array containing
+ * strings naming the variables or another array, etc.
+ *
+ * @param mixed ...$_ [optional]
+ * @return string|false the WDDX packet, or FALSE on error.
+ * @removed 7.4
+ */
+function wddx_serialize_vars($var_name, ...$_) {}
+
+/**
+ * Starts a new WDDX packet with structure inside it
+ * @link https://php.net/manual/en/function.wddx-packet-start.php
+ * @param string $comment [optional]
+ * An optional comment string.
+ *
+ * @return resource|false a packet ID for use in later functions, or FALSE on error.
+ * @removed 7.4
+ */
+function wddx_packet_start($comment = null) {}
+
+/**
+ * Ends a WDDX packet with the specified ID
+ * @link https://php.net/manual/en/function.wddx-packet-end.php
+ * @param resource $packet_id
+ * A WDDX packet, returned by wddx_packet_start.
+ *
+ * @return string the string containing the WDDX packet.
+ * @removed 7.4
+ */
+function wddx_packet_end($packet_id) {}
+
+/**
+ * Add variables to a WDDX packet with the specified ID
+ * @link https://php.net/manual/en/function.wddx-add-vars.php
+ * @param resource $packet_id
+ * A WDDX packet, returned by wddx_packet_start.
+ *
+ * @param mixed $var_name
+ * Can be either a string naming a variable or an array containing
+ * strings naming the variables or another array, etc.
+ *
+ * @param mixed ...$_ [optional]
+ * @return bool TRUE on success or FALSE on failure.
+ * @removed 7.4
+ */
+function wddx_add_vars($packet_id, $var_name, ...$_) {}
+
+/**
+ * Unserializes a WDDX packet
+ * @link https://php.net/manual/en/function.wddx-deserialize.php
+ * @param string $packet
+ * A WDDX packet, as a string or stream.
+ *
+ * @return mixed the deserialized value which can be a string, a number or an
+ * array. Note that structures are deserialized into associative arrays.
+ * @removed 7.4
+ */
+function wddx_deserialize($packet) {}
+
+// End of wddx v.
diff --git a/phpstorm-stubs/win32service/win32service.php b/phpstorm-stubs/win32service/win32service.php
new file mode 100644
index 0000000..0b94342
--- /dev/null
+++ b/phpstorm-stubs/win32service/win32service.php
@@ -0,0 +1,578 @@
+
+ * -
+ * service
+ * The short name of the service. This is the name that you will use to control the
+ * service
+ * using the net command. The service must be unique (no two services can share the same
+ * name), and, ideally, should avoid having spaces in the name.
+ *
+ *
+ * -
+ * display
+ * The display name of the service. This is the name that you will see in the Services
+ * Applet.
+ *
+ *
+ * -
+ * description
+ * The long description of the service. This is the description that you will see in the
+ * Services Applet.
+ *
+ *
+ * -
+ * user
+ * The name of the user account under which you want the service to run. If omitted, the
+ * service will run as the LocalSystem account. If the username is specified, you must
+ * also provide a password.
+ *
+ *
+ * -
+ * password
+ * The password that corresponds to the user.
+ *
+ *
+ * -
+ * path
+ * The full path to the executable module that will be launched when the service is
+ * started. If omitted, the path to the current PHP process will be used.
+ *
+ *
+ * -
+ * params
+ * Command line parameters to pass to the service when it starts. If you want to run a PHP
+ * script as the service, then the first parameter should be the full path to the PHP
+ * script that you intend to run. If the script name or path contains spaces, then wrap
+ * the full path to the PHP script with ".
+ *
+ *
+ * -
+ * load_order
+ * Controls the load_order. This is not yet fully supported.
+ *
+ *
+ * -
+ * svc_type
+ * Sets the service type. If omitted, the default value is
+ * WIN32_SERVICE_WIN32_OWN_PROCESS. Don't change this unless you know what you're doing.
+ *
+ *
+ * -
+ * start_type
+ * Specifies how the service should be started. The default is WIN32_SERVICE_AUTO_START
+ * which means the service will be launched when the machine starts up.
+ *
+ *
+ * -
+ * error_control
+ * Informs the SCM what it should do when it detects a problem with the service. The
+ * default is WIN32_SERVER_ERROR_IGNORE. Changing this value is not yet fully supported.
+ *
+ *
+ * -
+ * delayed_start
+ * If delayed_start is set to TRUE, then this will inform the SCM that this service should
+ * be started after other auto-start services are started plus a short delay.
+ *
+ * Any service can be marked as a delayed auto-start service; however, this setting has no
+ * effect unless the service's start_type is WIN32_SERVICE_AUTO_START.
+ *
+ * This setting is only applicable on Windows Vista and Windows Server 2008 or greater.
+ *
+ *
+ * -
+ * base_priority
+ * To reduce the impact on processor utilisation, it may be necessary to set a base
+ * priority lower than normal.
+ *
+ * The base_priority can be set to one of the constants define in Win32 Base Priority
+ * Classes.
+ *
+ *
+ * @param string $machine The optional machine name on which you want to create a service. If omitted, it will
+ * use the local machine.
+ *
+ * @return int|false Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code
+ * on failure.
+ */
+function win32_create_service($details, $machine = "") {}
+
+/**
+ * Deletes a service entry from the SCM database
+ * This function really just marks the service for deletion. If other processes (such as the Services Applet) are
+ * open, then the deletion will be deferred until those applications are closed. If a service is marked for deletion,
+ * further attempts to delete it will fail, and attempts to create a new service with that name will also fail.
+ *
+ * @param string $serviceName The short name of the service.
+ * @param string $machine Optional machine name. If omitted, the local machine is used.
+ *
+ * @return int|false Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code
+ * on failure.
+ */
+function win32_delete_service($serviceName, $machine = "") {}
+
+/**
+ * Returns the last control message that was sent to this service
+ * When running as a service you should periodically check this to determine if your service needs to stop running.
+ *
+ * Caution
+ * Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.
+ *
+ *
+ * @return int Returns a control constant which will be one of the Win32Service Service Control Message Constants:
+ * WIN32_SERVICE_CONTROL_CONTINUE, WIN32_SERVICE_CONTROL_INTERROGATE, WIN32_SERVICE_CONTROL_PAUSE,
+ * WIN32_SERVICE_CONTROL_PRESHUTDOWN, WIN32_SERVICE_CONTROL_SHUTDOWN, WIN32_SERVICE_CONTROL_STOP.
+ */
+function win32_get_last_control_message() {}
+
+/**
+ * Pauses a named service. Requires administrative privileges.
+ *
+ * @param string $serviceName The short name of the service.
+ * @param string $machine Optional machine name. If omitted, the local machine is used.
+ *
+ * @return int|false Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code
+ * on failure.
+ */
+function win32_pause_service($serviceName, $machine = "") {}
+
+/**
+ * Queries the current status for a service, returning an array of information.
+ *
+ * @param string $serviceName The short name of the service.
+ * @param string $machine Optional machine name. If omitted, the local machine is used.
+ *
+ * @return array|false Returns an array consisting of the following information on success, FALSE if there is a problem with
+ * the parameters or a Win32 Error Code on failure.
+ *
+ * -
+ * ServiceType
+ * The dwServiceType. See Win32Service Service Type Bitmasks.
+ *
+ * -
+ * CurrentState
+ * The dwCurrentState. See Win32Service Service Status Constants.
+ *
+ * -
+ * ControlsAccepted
+ * Which service controls are accepted by the service. See Win32Service Service Control Message
+ * Accepted Bitmasks.
+ *
+ * -
+ * Win32ExitCode
+ * If the service exited, the return code from the process.
+ *
+ * -
+ * ServiceSpecificExitCode
+ * If the service exited with an error condition, the service specific code that is logged in the
+ * event log is visible here.
+ *
+ * -
+ * CheckPoint
+ * If the service is shutting down, holds the current check point number. This is used by the
+ * SCM as a kind of heart-beat to detect a wedged service process. The value of the check point
+ * is best interpreted in conjunction with the WaitHint value.
+ *
+ * -
+ * WaitHint
+ * If the service is shutting down it will set WaitHint to a checkpoint value that will indicate
+ * 100% completion. This can be used to implement a progress indicator.
+ *
+ * -
+ * ProcessId
+ * The Windows process identifier. If 0, the process is not running.
+ *
+ * -
+ * ServiceFlags
+ * The dwServiceFlags. See Win32Service Service Service Flag Constants.
+ *
+ *
+ */
+function win32_query_service_status($serviceName, $machine = "") {}
+
+/**
+ * Update the service status
+ * Informs the SCM of the current status of a running service. This call is only valid for a running service process.
+ *
+ * Caution
+ * Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.
+ *
+ *
+ * @param int $status The service status code, one of WIN32_SERVICE_RUNNING, WIN32_SERVICE_STOPPED,
+ * WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING,
+ * WIN32_SERVICE_CONTINUE_PENDING,
+ * WIN32_SERVICE_PAUSE_PENDING, WIN32_SERVICE_PAUSED.
+ * @param int $checkpoint The checkpoint value the service increments periodically to report its progress during
+ * a lengthy start, stop, pause, or continue operation. For example, the service should
+ * increment this value as it completes each step of its initialization when it is
+ * starting up. The checkpoint is only valid when the status is one of
+ * WIN32_SERVICE_STOP_PENDING, WIN32_SERVICE_START_PENDING, WIN32_SERVICE_CONTINUE_PENDING
+ * or WIN32_SERVICE_PAUSE_PENDING.
+ *
+ * @return bool|int Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on
+ * failure.
+ */
+function win32_set_service_status($status, $checkpoint = 0) {}
+
+/**
+ * Registers the script with the SCM, so that it can act as the service with the given name
+ * When launched via the Service Control Manager, a service process is required to "check-in" with it to establish
+ * service monitoring and communication facilities. This function performs the check-in by spawning a thread to handle
+ * the lower-level communication with the service control manager.
+ *
+ * Once started, the service process should do 2 things. The first is to tell the Service Control Manager that the
+ * service is running. This is achieved by calling win32_set_service_status() with the WIN32_SERVICE_RUNNING constant.
+ * If you need to perform some lengthy process before the service is actually running, then you can use the
+ * WIN32_SERVICE_START_PENDING constant. The second is to continue to check-in with the service control manager so that
+ * it can determine if it should terminate. This is achieved by periodically calling win32_get_last_control_message()
+ * and handling the return code appropriately.
+ *
+ * Caution
+ * Since version 0.2.0, this function work only in "cli" SAPI. On other SAPI this function is disabled.
+ *
+ *
+ * @param string $name The short-name of the service, as registered by win32_create_service().
+ *
+ * @return bool|int Returns TRUE on success, FALSE if there is a problem with the parameters or a Win32 Error Code on
+ * failure.
+ */
+function win32_start_service_ctrl_dispatcher($name) {}
+
+/**
+ * Starts a service
+ * Attempts to start the named service. Usually requires administrative privileges.
+ *
+ * @param string $serviceName The short name of the service.
+ * @param string $machine Optional machine name. If omitted, the local machine is used.
+ *
+ * @return int|false Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code
+ * on failure.
+ */
+function win32_start_service($serviceName, $machine = "") {}
+
+/**
+ * Stops a named service. Requires administrative privileges.
+ *
+ * @param string $serviceName The short name of the service.
+ * @param string $machine Optional machine name. If omitted, the local machine is used.
+ *
+ * @return int|false Returns WIN32_NO_ERROR on success, FALSE if there is a problem with the parameters or a Win32 Error Code
+ * on failure.
+ */
+function win32_stop_service($serviceName, $machine = "") {}
diff --git a/phpstorm-stubs/winbinder/winbinder.php b/phpstorm-stubs/winbinder/winbinder.php
new file mode 100644
index 0000000..1d49a28
--- /dev/null
+++ b/phpstorm-stubs/winbinder/winbinder.php
@@ -0,0 +1,1753 @@
+
+ * Retrieves information about files cached in the file cache
+ * @link https://secure.php.net/manual/en/function.wincache-fcache-fileinfo.php
+ * @param bool $summaryonly [optional]
+ * Controls whether the returned array will contain information about individual
+ * cache entries along with the file cache summary.
+ * @return array|false Array of meta data about file cache or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - total_cache_uptime - total time in seconds that the file cache has been active
+ * - total_file_count - total number of files that are currently in the file cache
+ * - total_hit_count - number of times the files have been served from the file cache
+ * - total_miss_count - number of times the files have not been found in the file cache
+ * - file_entries - an array that contains the information about all the cached files:
+ *
+ * - file_name - absolute file name of the cached file
+ * - add_time - time in seconds since the file has been added to the file cache
+ * - use_time - time in seconds since the file has been accessed in the file cache
+ * - last_check - time in seconds since the file has been checked for modifications
+ * - hit_count - number of times the file has been served from the cache
+ * - file_size - size of the cached file in bytes
+ *
+ *
+ */
+function wincache_fcache_fileinfo($summaryonly = false) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Retrieves information about memory usage by file cache.
+ * @link https://secure.php.net/manual/en/function.wincache-fcache-meminfo.php
+ * @return array|false Array of meta data about file cache memory usage or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - memory_total - amount of memory in bytes allocated for the file cache
+ * - memory_free - amount of free memory in bytes available for the file cache
+ * - num_used_blks - number of memory blocks used by the file cache
+ * - num_free_blks - number of free memory blocks available for the file cache
+ * - memory_overhead - amount of memory in bytes used for the file cache internal structures
+ *
+ */
+function wincache_fcache_meminfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Obtains an exclusive lock on a given key.
+ * The execution of the current script will be blocked until the lock can be
+ * obtained. Once the lock is obtained, the other scripts that try to request the
+ * lock by using the same key will be blocked, until the current script releases
+ * the lock by using wincache_unlock().
+ * @link https://secure.php.net/manual/en/function.wincache-lock.php
+ * @param string $key Name of the key in the cache to get the lock on.
+ * @param bool $isglobal [optional]
+ * Controls whether the scope of the lock is system-wide or local. Local locks
+ * are scoped to the application pool in IIS FastCGI case or to all php processes
+ * that have the same parent process identifier.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function wincache_lock($key, $isglobal = false) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Retrieves information about opcode cache content and its usage
+ * @link https://secure.php.net/manual/en/function.wincache-ocache-fileinfo.php
+ * @param bool $summaryonly [optional]
+ * Controls whether the returned array will contain information about individual
+ * cache entries along with the opcode cache summary.
+ * @return array|false Array of meta data about opcode cache or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - total_cache_uptime - total time in seconds that the opcode cache has been active
+ * - total_file_count - total number of files that are currently in the opcode cache
+ * - total_hit_count - number of times the compiled opcode have been served from the cache
+ * - total_miss_count - number of times the compiled opcode have not been found in the cache
+ * - is_local_cache - true is the cache metadata is for a local cache instance, false
+ * if the metadata is for the global cache
+ * - file_entries - an array that contains the information about all the cached files:
+ *
+ * - file_name - absolute file name of the cached file
+ * - add_time - time in seconds since the file has been added to the opcode cache
+ * - use_time - time in seconds since the file has been accessed in the opcode cache
+ * - last_check - time in seconds since the file has been checked for modifications
+ * - hit_count - number of times the file has been served from the cache
+ * - function_count - number of functions in the cached file
+ * - class_count - number of classes in the cached file
+ *
+ *
+ */
+function wincache_ocache_fileinfo($summaryonly = false) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Retrieves information about memory usage by opcode cache.
+ * @link https://secure.php.net/manual/en/function.wincache-ocache-meminfo.php
+ * @return array|false Array of meta data about opcode cache memory usage or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - memory_total - amount of memory in bytes allocated for the opcode cache
+ * - memory_free - amount of free memory in bytes available for the opcode cache
+ * - num_used_blks - number of memory blocks used by the opcode cache
+ * - num_free_blks - number of free memory blocks available for the opcode cache
+ * - memory_overhead - amount of memory in bytes used for the opcode cache internal structures
+ *
+ */
+function wincache_ocache_meminfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Refreshes the cache entries for the files, whose names were passed in the input argument.
+ * If no argument is specified then refreshes all the entries in the cache.
+ * @link https://secure.php.net/manual/en/function.wincache-refresh-if-changed.php
+ * @param array $files [optional]
+ * An array of file names for files that need to be refreshed. An absolute
+ * or relative file paths can be used.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function wincache_refresh_if_changed(array $files) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Retrieves information about cached mappings between relative file paths and
+ * corresponding absolute file paths.
+ * @link https://secure.php.net/manual/en/function.wincache-rplist-fileinfo.php
+ * @return array|false Array of meta data about the resolve file path cache or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - total_file_count - total number of file path mappings stored in the cache
+ * - rplist_entries - an array that contains the information about all the cached file paths:
+ *
+ * - resolve_path - path to a file
+ * - subkey_data - corresponding absolute path to a file
+ *
+ *
+ */
+function wincache_rplist_fileinfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.0.0)
+ * Retrieves information about memory usage by resolve file path cache.
+ * @link https://secure.php.net/manual/en/function.wincache-rplist-meminfo.php
+ * @return array|false Array of meta data that describes memory usage by resolve file path cache. or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - memory_total - amount of memory in bytes allocated for the resolve file path cache
+ * - memory_free - amount of free memory in bytes available for the resolve file path cache
+ * - num_used_blks - number of memory blocks used by the resolve file path cache
+ * - num_free_blks - number of free memory blocks available for the resolve file path cache
+ * - memory_overhead - amount of memory in bytes used for the internal structures of resolve file path cache
+ *
+ */
+function wincache_rplist_meminfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Retrieves information about session cache content and its usage.
+ * @link https://secure.php.net/manual/en/function.wincache-scache-info.php
+ * @param bool $summaryonly [optional]
+ * Controls whether the returned array will contain information about individual
+ * cache entries along with the session cache summary.
+ * @return array|false Array of meta data about session cache or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - total_cache_uptime - total time in seconds that the session cache has been active
+ * - total_item_count - total number of elements that are currently in the session cache
+ * - is_local_cache - true is the cache metadata is for a local cache instance, false
+ * if the metadata is for the global cache
+ * - total_hit_count - number of times the data has been served from the cache
+ * - total_miss_count - number of times the data has not been found in the cache
+ * - scache_entries - an array that contains the information about all the cached items:
+ *
+ * - key_name - name of the key which is used to store the data
+ * - value_type - type of value stored by the key
+ * - use_time - time in seconds since the file has been accessed in the opcode cache
+ * - last_check - time in seconds since the file has been checked for modifications
+ * - ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
+ * - age_seconds - time elapsed from the time data has been added in the cache
+ * - hitcount - number of times data has been served from the cache
+ *
+ *
+ */
+function wincache_scache_info($summaryonly = false) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Retrieves information about memory usage by session cache.
+ * @link https://secure.php.net/manual/en/function.wincache-scache-meminfo.php
+ * @return array|false Array of meta data about session cache memory usage or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - memory_total - amount of memory in bytes allocated for the session cache
+ * - memory_free - amount of free memory in bytes available for the session cache
+ * - num_used_blks - number of memory blocks used by the session cache
+ * - num_free_blks - number of free memory blocks available for the session cache
+ * - memory_overhead - amount of memory in bytes used for the session cache internal structures
+ *
+ */
+function wincache_scache_meminfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Adds a variable in user cache, only if this variable doesn't already exist in the cache.
+ * The added variable remains in the user cache unless its time to live expires
+ * or it is deleted by using wincache_ucache_delete() or wincache_ucache_clear() functions.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-add.php
+ * @param string $key Store the variable using this key name. If a variable with
+ * same key is already present the function will fail and return FALSE. key is case
+ * sensitive. To override the value even if key is present use wincache_ucache_set()
+ * function instad. key can also take array of name => value pairs where names will
+ * be used as keys. This can be used to add multiple values in the cache in one
+ * operation, thus avoiding race condition.
+ * @param mixed $value Value of a variable to store. Value supports all data
+ * types except resources, such as file handles. This parameter is ignored if
+ * first argument is an array. A general guidance is to pass NULL as value while
+ * using array as key.
+ * @param int $ttl [optional]
+ * Time for the variable to live in the cache in seconds. After the value
+ * specified in ttl has passed the stored variable will be deleted from the
+ * cache. This parameter takes a default value of 0 which means the variable
+ * will stay in the cache unless explicitly deleted by using wincache_ucache_delete()
+ * or wincache_ucache_clear() functions.
+ * @return bool If key is string, the function returns TRUE on success and FALSE on failure.
+ * If key is an array, the function returns:
+ *
+ * - If all the name => value pairs in the array can be set, function returns an empty array;
+ * - If all the name => value pairs in the array cannot be set, function returns FALSE;
+ * - If some can be set while others cannot, function returns an array with name=>value pair
+ * for which the addition failed in the user cache.
+ *
+ */
+function wincache_ucache_add($key, $value, $ttl = 0) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Compares the variable associated with the key with old_value
+ * and if it matches then assigns the new_value to it.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-cas.php
+ * @param string $key The key that is used to store the variable in the cache. key is case sensitive.
+ * @param int $old_value Old value of the variable pointed by key in the user cache.
+ * The value should be of type long, otherwise the function returns FALSE.
+ * @param int $new_value New value which will get assigned to variable pointer by key
+ * if a match is found. The value should be of type long, otherwise the function returns FALSE.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function wincache_ucache_cas($key, $old_value, $new_value) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Clears/deletes all the values stored in the user cache.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-clear.php
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function wincache_ucache_clear() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Decrements the value associated with the key by 1 or as specified by dec_by.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-dec.php
+ * @param string $key The key that was used to store the variable in the cache.
+ * key is case sensitive.
+ * @param int $dec_by The value by which the variable associated with the key will
+ * get decremented. If the argument is a floating point number it will be truncated
+ * to nearest integer. The variable associated with the key should be of type long,
+ * otherwise the function fails and returns FALSE.
+ * @param bool|null &$success [optional]
+ * Will be set to TRUE on success and FALSE on failure.
+ * @return int|false Returns the decremented value on success and FALSE on failure.
+ */
+function wincache_ucache_dec($key, $dec_by = 1, &$success) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Deletes the elements in the user cache pointed by key.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-delete.php
+ * @param string|string[] $key The key that was used to store the variable in the cache.
+ * key is case sensitive. key can be an array of keys.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * If key is an array then the function returns FALSE if every element of
+ * the array fails to get deleted from the user cache, otherwise returns an
+ * array which consists of all the keys that are deleted.
+ */
+function wincache_ucache_delete($key) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Checks if a variable with the key exists in the user cache or not.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-exists.php
+ * @param string $key The key that was used to store the variable in the cache. key is case sensitive.
+ * @return bool Returns TRUE if variable with the key exitsts, otherwise returns FALSE.
+ */
+function wincache_ucache_exists($key) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Gets a variable stored in the user cache.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-get.php
+ * @param string|string[] $key The key that was used to store the variable in the cache.
+ * key is case sensitive. key can be an array of keys. In this case the return
+ * value will be an array of values of each element in the key array.
+ * @param bool|null &$success [optional]
+ * Will be set to TRUE on success and FALSE on failure.
+ * @return mixed If key is a string, the function returns the value of the variable
+ * stored with that key. The success is set to TRUE on success and to FALSE on failure.
+ * The key is an array, the parameter success is always set to TRUE. The returned array
+ * (name => value pairs) will contain only those name => value pairs for which the get
+ * operation in user cache was successful. If none of the keys in the key array finds a
+ * match in the user cache an empty array will be returned.
+ */
+function wincache_ucache_get($key, &$success) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Increments the value associated with the key by 1 or as specified by inc_by.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-inc.php
+ * @param string $key The key that was used to store the variable in the cache.
+ * key is case sensitive.
+ * @param int $inc_by The value by which the variable associated with the key will
+ * get incremented. If the argument is a floating point number it will be truncated
+ * to nearest integer. The variable associated with the key should be of type long,
+ * otherwise the function fails and returns FALSE.
+ * @param bool|null &$success [optional]
+ * Will be set to TRUE on success and FALSE on failure.
+ * @return int|false Returns the incremented value on success and FALSE on failure.
+ */
+function wincache_ucache_inc($key, $inc_by = 1, &$success) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Retrieves information about data stored in the user cache.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-info.php
+ * @param bool $summaryonly [optional]
+ * Controls whether the returned array will contain information about
+ * individual cache entries along with the user cache summary.
+ * @param null|string $key [optional]
+ * The key of an entry in the user cache. If specified then the returned array
+ * will contain information only about that cache entry. If not specified and
+ * summaryonly is set to false then the returned array will contain information
+ * about all entries in the cache.
+ * @return array|false Array of meta data about user cache or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - total_cache_uptime - total time in seconds that the user cache has been active
+ * - total_item_count - total number of elements that are currently in the user cache
+ * - is_local_cache - true is the cache metadata is for a local cache instance, false
+ * if the metadata is for the global cache
+ * - total_hit_count - number of times the data has been served from the cache
+ * - total_miss_count - number of times the data has not been found in the cache
+ * - ucache_entries - an array that contains the information about all the cached items:
+ *
+ * - key_name - name of the key which is used to store the data
+ * - value_type - type of value stored by the key
+ * - use_time - time in seconds since the file has been accessed in the opcode cache
+ * - last_check - time in seconds since the file has been checked for modifications
+ * - is_session - indicates if the data is a session variable
+ * - ttl_seconds - time remaining for the data to live in the cache, 0 meaning infinite
+ * - age_seconds - time elapsed from the time data has been added in the cache
+ * - hitcount - number of times data has been served from the cache
+ *
+ *
+ */
+function wincache_ucache_info(bool $summaryonly = false, $key = null) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Retrieves information about memory usage by user cache.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-meminfo.php
+ * @return array|false Array of meta data about user cache memory usage or FALSE on failure
+ * The array returned by this function contains the following elements:
+ *
+ * - memory_total - amount of memory in bytes allocated for the user cache
+ * - memory_free - amount of free memory in bytes available for the user cache
+ * - num_used_blks - number of memory blocks used by the user cache
+ * - num_free_blks - number of free memory blocks available for the user cache
+ * - memory_overhead - amount of memory in bytes used for the user cache internal structures
+ *
+ */
+function wincache_ucache_meminfo() {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Adds a variable in user cache and overwrites a variable if it already exists in the cache.
+ * The added or updated variable remains in the user cache unless its time to
+ * live expires or it is deleted by using wincache_ucache_delete() or
+ * wincache_ucache_clear() functions.
+ * @link https://secure.php.net/manual/en/function.wincache-ucache-set.php
+ * @param string|string[] $key
+ * Store the variable using this key name. If a variable with same key is already
+ * present the function will overwrite the previous value with the new one. key
+ * is case sensitive. key can also take array of name => value pairs where
+ * names will be used as keys. This can be used to add multiple values in the
+ * cache in one operation, thus avoiding race condition.
+ * @param mixed $value
+ * Value of a variable to store. Value supports all data types except resources,
+ * such as file handles. This parameter is ignored if first argument is an array.
+ * A general guidance is to pass NULL as value while using array as key.
+ * @param int $ttl [optional]
+ * Time for the variable to live in the cache in seconds. After the value specified
+ * in ttl has passed the stored variable will be deleted from the cache. This
+ * parameter takes a default value of 0 which means the variable will stay in the
+ * cache unless explicitly deleted by using wincache_ucache_delete() or
+ * wincache_ucache_clear() functions.
+ * @return bool
+ * If key is string, the function returns TRUE on success and FALSE on failure.
+ * If key is an array, the function returns:
+ *
+ * - If all the name => value pairs in the array can be set, function
+ * returns an empty array;
+ * - If all the name => value pairs in the array cannot be set, function
+ * returns FALSE;
+ * - If some can be set while others cannot, function returns an array with
+ * name=>value pair for which the addition failed in the user cache.
+ *
+ */
+function wincache_ucache_set($key, $value, $ttl = 0) {}
+
+/**
+ * (PHP 5.2+; PECL wincache >= 1.1.0)
+ * Releases an exclusive lock that was obtained on a given key by using wincache_lock().
+ * If any other process was blocked waiting for the lock on this key, that process will be able to obtain the lock.
+ * @link https://secure.php.net/manual/en/function.wincache-unlock.php
+ * @param string $key Name of the key in the cache to release the lock on.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+function wincache_unlock($key) {}
diff --git a/phpstorm-stubs/xcache/xcache.php b/phpstorm-stubs/xcache/xcache.php
new file mode 100644
index 0000000..9b6a592
--- /dev/null
+++ b/phpstorm-stubs/xcache/xcache.php
@@ -0,0 +1,217 @@
+
+ * Start xhprof profiler.
+ *
+ * @link https://php.net/manual/en/function.xhprof-enable.php
+ *
+ * @param int $flags Optional flags to add additional information to the profiling. See the a
+ * href="https://secure.php.net/manual/en/xhprof.constants.php">XHprof constants for further
+ * information about these flags, e.g., XHPROF_FLAGS_MEMORY to enable memory
+ * profiling.
+ * @param array $options [optional] An array of optional options, namely, the 'ignored_functions' option to pass in functions
+ * to be ignored during profiling.
+ *
+ * @return null
+ */
+function xhprof_enable($flags = 0, array $options = []) {}
+
+/**
+ * (PHP >= 5.2.0, PECL xhprof >= 0.9.0)
+ * Stops the profiler, and returns xhprof data from the run.
+ *
+ * @link https://php.net/manual/en/function.xhprof-disable.php
+ * @return array an array of xhprof data, from the run.
+ */
+function xhprof_disable() {}
+
+/**
+ * (PHP >= 5.2.0, PECL xhprof >= 0.9.0)
+ * Starts profiling in sample mode, which is a lighter weight version of {@see xhprof_enable()}. The sampling interval
+ * is 0.1 seconds, and samples record the full function call stack. The main use case is when lower overhead is
+ * required when doing performance monitoring and diagnostics.
+ *
+ * @link https://php.net/manual/en/function.xhprof-sample-enable.php
+ * @return null
+ */
+function xhprof_sample_enable() {}
+
+/**
+ * (PHP >= 5.2.0, PECL xhprof >= 0.9.0)
+ * Stops the sample mode xhprof profiler, and returns xhprof data from the run.
+ *
+ * @link https://php.net/manual/en/function.xhprof-sample-disable.php
+ * @return array an array of xhprof sample data, from the run.
+ */
+function xhprof_sample_disable() {}
+
+/**
+ * @link https://php.net/manual/en/xhprof.constants.php#constant.xhprof-flags-no-builtins
+ */
+const XHPROF_FLAGS_NO_BUILTINS = 1;
+/**
+ * @link https://php.net/manual/en/xhprof.constants.php#constant.xhprof-flags-cpu
+ */
+const XHPROF_FLAGS_CPU = 2;
+/**
+ * @link https://php.net/manual/en/xhprof.constants.php##constant.xhprof-flags-memory
+ */
+const XHPROF_FLAGS_MEMORY = 4;
+
+// End of xhprof v.0.9.4
diff --git a/phpstorm-stubs/xlswriter/xlswriter.php b/phpstorm-stubs/xlswriter/xlswriter.php
new file mode 100644
index 0000000..99ee95f
--- /dev/null
+++ b/phpstorm-stubs/xlswriter/xlswriter.php
@@ -0,0 +1,625 @@
+
+ * The optional encoding specifies the character
+ * encoding for the input/output in PHP 4. Starting from PHP 5, the input
+ * encoding is automatically detected, so that the
+ * encoding parameter specifies only the output
+ * encoding. In PHP 4, the default output encoding is the same as the
+ * input charset. If empty string is passed, the parser attempts to identify
+ * which encoding the document is encoded in by looking at the heading 3 or
+ * 4 bytes. In PHP 5.0.0 and 5.0.1, the default output charset is
+ * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
+ * encodings are ISO-8859-1, UTF-8 and
+ * US-ASCII.
+ *
+ * @return resource|false|XMLParser a resource handle for the new XML parser.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")]
+function xml_parser_create(?string $encoding) {}
+
+/**
+ * Create an XML parser with namespace support
+ * @link https://php.net/manual/en/function.xml-parser-create-ns.php
+ * @param string|null $encoding [optional]
+ * The optional encoding specifies the character
+ * encoding for the input/output in PHP 4. Starting from PHP 5, the input
+ * encoding is automatically detected, so that the
+ * encoding parameter specifies only the output
+ * encoding. In PHP 4, the default output encoding is the same as the
+ * input charset. In PHP 5.0.0 and 5.0.1, the default output charset is
+ * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported
+ * encodings are ISO-8859-1, UTF-8 and
+ * US-ASCII.
+ *
+ * @param string $separator [optional]
+ * With a namespace aware parser tag parameters passed to the various
+ * handler functions will consist of namespace and tag name separated by
+ * the string specified in separator.
+ *
+ * @return resource|false|XMLParser a resource handle for the new XML parser.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")]
+function xml_parser_create_ns(?string $encoding, string $separator = ':') {}
+
+/**
+ * Use XML Parser within an object
+ * @link https://php.net/manual/en/function.xml-set-object.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to use inside the object.
+ *
+ * @param object $object
+ * The object where to use the XML parser.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_object(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, object $object) {}
+
+/**
+ * Set up start and end element handlers
+ * @link https://php.net/manual/en/function.xml-set-element-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up start and end element handler functions.
+ *
+ * @param callable $start_handler
+ * The function named by start_element_handler
+ * must accept three parameters:
+ * start_element_handler
+ * resourceparser
+ * stringname
+ * arrayattribs
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @param callable $end_handler
+ * The function named by end_element_handler
+ * must accept two parameters:
+ * end_element_handler
+ * resourceparser
+ * stringname
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_element_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $start_handler, $end_handler) {}
+
+/**
+ * Set up character data handler
+ * @link https://php.net/manual/en/function.xml-set-character-data-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up character data handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * two parameters:
+ * handler
+ * resourceparser
+ * stringdata
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_character_data_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up processing instruction (PI) handler
+ * @link https://php.net/manual/en/function.xml-set-processing-instruction-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up processing instruction (PI) handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * three parameters:
+ * handler
+ * resourceparser
+ * stringtarget
+ * stringdata
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_processing_instruction_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up default handler
+ * @link https://php.net/manual/en/function.xml-set-default-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up default handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * two parameters:
+ * handler
+ * resourceparser
+ * stringdata
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_default_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up unparsed entity declaration handler
+ * @link https://php.net/manual/en/function.xml-set-unparsed-entity-decl-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up unparsed entity declaration handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept six
+ * parameters:
+ * handler
+ * resourceparser
+ * stringentity_name
+ * stringbase
+ * stringsystem_id
+ * stringpublic_id
+ * stringnotation_name
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the
+ * handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_unparsed_entity_decl_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up notation declaration handler
+ * @link https://php.net/manual/en/function.xml-set-notation-decl-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up notation declaration handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * five parameters:
+ * handler
+ * resourceparser
+ * stringnotation_name
+ * stringbase
+ * stringsystem_id
+ * stringpublic_id
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_notation_decl_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up external entity reference handler
+ * @link https://php.net/manual/en/function.xml-set-external-entity-ref-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set up external entity reference handler function.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * five parameters, and should return an integer value.If the
+ * value returned from the handler is FALSE (which it will be if no
+ * value is returned), the XML parser will stop parsing and
+ * xml_get_error_code will return
+ * XML_ERROR_EXTERNAL_ENTITY_HANDLING.
+ * handler
+ * resourceparser
+ * stringopen_entity_names
+ * stringbase
+ * stringsystem_id
+ * stringpublic_id
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_external_entity_ref_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up start namespace declaration handler
+ * @link https://php.net/manual/en/function.xml-set-start-namespace-decl-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * three parameters, and should return an integer value. If the
+ * value returned from the handler is FALSE (which it will be if no
+ * value is returned), the XML parser will stop parsing and
+ * xml_get_error_code will return
+ * XML_ERROR_EXTERNAL_ENTITY_HANDLING.
+ * handler
+ * resourceparser
+ * stringprefix
+ * stringuri
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_start_namespace_decl_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Set up end namespace declaration handler
+ * @link https://php.net/manual/en/function.xml-set-end-namespace-decl-handler.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser.
+ *
+ * @param callable $handler
+ * handler is a string containing the name of a
+ * function that must exist when xml_parse is called
+ * for parser.
+ *
+ *
+ * The function named by handler must accept
+ * two parameters, and should return an integer value. If the
+ * value returned from the handler is FALSE (which it will be if no
+ * value is returned), the XML parser will stop parsing and
+ * xml_get_error_code will return
+ * XML_ERROR_EXTERNAL_ENTITY_HANDLING.
+ * handler
+ * resourceparser
+ * stringprefix
+ * parser
+ * The first parameter, parser, is a
+ * reference to the XML parser calling the handler.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+function xml_set_end_namespace_decl_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, $handler) {}
+
+/**
+ * Start parsing an XML document
+ * @link https://php.net/manual/en/function.xml-parse.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to use.
+ *
+ * @param string $data
+ * Chunk of data to parse. A document may be parsed piece-wise by
+ * calling xml_parse several times with new data,
+ * as long as the is_final parameter is set and
+ * TRUE when the last data is parsed.
+ *
+ * @param bool $is_final [optional]
+ * If set and TRUE, data is the last piece of
+ * data sent in this parse.
+ *
+ * @return int 1 on success or 0 on failure.
+ *
+ * For unsuccessful parses, error information can be retrieved with
+ * xml_get_error_code,
+ * xml_error_string,
+ * xml_get_current_line_number,
+ * xml_get_current_column_number and
+ * xml_get_current_byte_index.
+ *
+ *
+ * Entity errors are reported at the end of the data thus only if
+ * is_final is set and TRUE.
+ *
+ */
+function xml_parse(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, string $data, bool $is_final = false): int {}
+
+/**
+ * Parse XML data into an array structure
+ * @link https://php.net/manual/en/function.xml-parse-into-struct.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser.
+ *
+ * @param string $data
+ * A string containing the XML data.
+ *
+ * @param array &$values
+ * An array containing the values of the XML data
+ *
+ * @param array &$index [optional]
+ * An array containing pointers to the location of the appropriate values in the $values.
+ *
+ * @return int xml_parse_into_struct returns 0 for failure and 1 for
+ * success. This is not the same as FALSE and TRUE, be careful with
+ * operators such as ===.
+ */
+#[LanguageLevelTypeAware(['8.1' => 'int|false'], default: 'int')]
+function xml_parse_into_struct(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, string $data, &$values, &$index) {}
+
+/**
+ * Get XML parser error code
+ * @link https://php.net/manual/en/function.xml-get-error-code.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to get error code from.
+ *
+ * @return int|false Returns one of the error codes listed in the error codes
+ * section.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function xml_get_error_code(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser) {}
+
+/**
+ * Get XML parser error string
+ * @link https://php.net/manual/en/function.xml-error-string.php
+ * @param int $error_code
+ * An error code from xml_get_error_code.
+ *
+ * @return string|null a string with a textual description of the error
+ * code, or FALSE if no description was found.
+ */
+#[Pure]
+function xml_error_string(int $error_code): ?string {}
+
+/**
+ * Get current line number for an XML parser
+ * @link https://php.net/manual/en/function.xml-get-current-line-number.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to get line number from.
+ *
+ * @return int|false This function returns FALSE if parser does
+ * not refer to a valid parser, or else it returns which line the
+ * parser is currently at in its data buffer.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function xml_get_current_line_number(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser) {}
+
+/**
+ * Get current column number for an XML parser
+ * @link https://php.net/manual/en/function.xml-get-current-column-number.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to get column number from.
+ *
+ * @return int|false This function returns FALSE if parser does
+ * not refer to a valid parser, or else it returns which column on
+ * the current line (as given by
+ * xml_get_current_line_number) the parser is
+ * currently at.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function xml_get_current_column_number(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser) {}
+
+/**
+ * Get current byte index for an XML parser
+ * @link https://php.net/manual/en/function.xml-get-current-byte-index.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to get byte index from.
+ *
+ * @return int|false This function returns FALSE if parser does
+ * not refer to a valid parser, or else it returns which byte index
+ * the parser is currently at in its data buffer (starting at 0).
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "int"], default: "int|false")]
+function xml_get_current_byte_index(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser) {}
+
+/**
+ * Free an XML parser
+ * @link https://php.net/manual/en/function.xml-parser-free.php
+ * @param XMLParser|resource $parser A reference to the XML parser to free.
+ * @return bool This function returns FALSE if parser does not
+ * refer to a valid parser, or else it frees the parser and returns TRUE.
+ */
+function xml_parser_free(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser): bool {}
+
+/**
+ * Set options in an XML parser
+ * @link https://php.net/manual/en/function.xml-parser-set-option.php
+ * @param XMLParser|resource $parser
+ * A reference to the XML parser to set an option in.
+ *
+ * @param int $option
+ * Which option to set. See below.
+ *
+ *
+ * The following options are available:
+ *
+ * XML parser options
+ *
+ * Option constant
+ * Data type
+ * Description
+ *
+ *
+ * XML_OPTION_CASE_FOLDING
+ * integer
+ *
+ * Controls whether case-folding is enabled for this
+ * XML parser. Enabled by default.
+ *
+ *
+ *
+ * XML_OPTION_SKIP_TAGSTART
+ * integer
+ *
+ * Specify how many characters should be skipped in the beginning of a
+ * tag name.
+ *
+ *
+ *
+ * XML_OPTION_SKIP_WHITE
+ * integer
+ *
+ * Whether to skip values consisting of whitespace characters.
+ *
+ *
+ *
+ * XML_OPTION_TARGET_ENCODING
+ * string
+ *
+ * Sets which target encoding to
+ * use in this XML parser.By default, it is set to the same as the
+ * source encoding used by xml_parser_create.
+ * Supported target encodings are ISO-8859-1,
+ * US-ASCII and UTF-8.
+ *
+ *
+ *
+ *
+ * @param mixed $value
+ * The option's new value.
+ *
+ * @return bool This function returns FALSE if parser does not
+ * refer to a valid parser, or if the option could not be set. Else the
+ * option is set and TRUE is returned.
+ */
+function xml_parser_set_option(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, int $option, $value): bool {}
+
+/**
+ * Get options from an XML parser
+ * @link https://php.net/manual/en/function.xml-parser-get-option.php
+ * @param XMLParser|resource $parser A reference to the XML parser to get an option from.
+ * @param int $option Which option to fetch. XML_OPTION_CASE_FOLDING
+ * and XML_OPTION_TARGET_ENCODING are available.
+ * See xml_parser_set_option for their description.
+ * @return string|int|bool This function returns FALSE if parser does
+ * not refer to a valid parser or if option isn't
+ * valid (generates also a E_WARNING).
+ * Else the option's value is returned.
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.3" => "string|int|bool"], default: "string|int")]
+function xml_parser_get_option(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, int $option) {}
+
+define('XML_ERROR_NONE', 0);
+define('XML_ERROR_NO_MEMORY', 1);
+define('XML_ERROR_SYNTAX', 2);
+define('XML_ERROR_NO_ELEMENTS', 3);
+define('XML_ERROR_INVALID_TOKEN', 4);
+define('XML_ERROR_UNCLOSED_TOKEN', 5);
+define('XML_ERROR_PARTIAL_CHAR', 6);
+define('XML_ERROR_TAG_MISMATCH', 7);
+define('XML_ERROR_DUPLICATE_ATTRIBUTE', 8);
+define('XML_ERROR_JUNK_AFTER_DOC_ELEMENT', 9);
+define('XML_ERROR_PARAM_ENTITY_REF', 10);
+define('XML_ERROR_UNDEFINED_ENTITY', 11);
+define('XML_ERROR_RECURSIVE_ENTITY_REF', 12);
+define('XML_ERROR_ASYNC_ENTITY', 13);
+define('XML_ERROR_BAD_CHAR_REF', 14);
+define('XML_ERROR_BINARY_ENTITY_REF', 15);
+define('XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF', 16);
+define('XML_ERROR_MISPLACED_XML_PI', 17);
+define('XML_ERROR_UNKNOWN_ENCODING', 18);
+define('XML_ERROR_INCORRECT_ENCODING', 19);
+define('XML_ERROR_UNCLOSED_CDATA_SECTION', 20);
+define('XML_ERROR_EXTERNAL_ENTITY_HANDLING', 21);
+define('XML_OPTION_CASE_FOLDING', 1);
+define('XML_OPTION_TARGET_ENCODING', 2);
+define('XML_OPTION_SKIP_TAGSTART', 3);
+define('XML_OPTION_SKIP_WHITE', 4);
+
+/**
+ * Holds the SAX implementation method.
+ * Can be libxml or expat.
+ * @link https://php.net/manual/en/xml.constants.php
+ */
+define('XML_SAX_IMPL', "libxml");
+
+/**
+ * @since 8.0
+ */
+final class XMLParser {}
+
+// End of xml v.
diff --git a/phpstorm-stubs/xmlreader/xmlreader.php b/phpstorm-stubs/xmlreader/xmlreader.php
new file mode 100644
index 0000000..d895cab
--- /dev/null
+++ b/phpstorm-stubs/xmlreader/xmlreader.php
@@ -0,0 +1,457 @@
+TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ public function close() {}
+
+ /**
+ * Get the value of a named attribute
+ * @link https://php.net/manual/en/xmlreader.getattribute.php
+ * @param string $name
+ * The name of the attribute.
+ *
+ * @return string|null The value of the attribute, or NULL if no attribute with the given
+ * name is found or not positioned on an element node.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function getAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): ?string {}
+
+ /**
+ * Get the value of an attribute by index
+ * @link https://php.net/manual/en/xmlreader.getattributeno.php
+ * @param int $index
+ * The position of the attribute.
+ *
+ * @return string|null The value of the attribute, or NULL if no attribute exists
+ * at index or not positioned of element.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function getAttributeNo(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index): ?string {}
+
+ /**
+ * Get the value of an attribute by localname and URI
+ * @link https://php.net/manual/en/xmlreader.getattributens.php
+ * @param string $name
+ * The local name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @return string|null The value of the attribute, or NULL if no attribute with the
+ * given localName and
+ * namespaceURI is found or not positioned of element.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function getAttributeNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace
+ ): ?string {}
+
+ /**
+ * Indicates if specified property has been set
+ * @link https://php.net/manual/en/xmlreader.getparserproperty.php
+ * @param int $property
+ * One of the parser option
+ * constants.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function getParserProperty(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property): bool {}
+
+ /**
+ * Indicates if the parsed document is valid
+ * @link https://php.net/manual/en/xmlreader.isvalid.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function isValid(): bool {}
+
+ /**
+ * Lookup namespace for a prefix
+ * @link https://php.net/manual/en/xmlreader.lookupnamespace.php
+ * @param string $prefix
+ * String containing the prefix.
+ *
+ * @return string|null TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function lookupNamespace(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $prefix): ?string {}
+
+ /**
+ * Move cursor to an attribute by index
+ * @link https://php.net/manual/en/xmlreader.movetoattributeno.php
+ * @param int $index
+ * The position of the attribute.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToAttributeNo(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index): bool {}
+
+ /**
+ * Move cursor to a named attribute
+ * @link https://php.net/manual/en/xmlreader.movetoattribute.php
+ * @param string $name
+ * The name of the attribute.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {}
+
+ /**
+ * Move cursor to a named attribute
+ * @link https://php.net/manual/en/xmlreader.movetoattributens.php
+ * @param string $name
+ * The local name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToAttributeNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $namespace
+ ): bool {}
+
+ /**
+ * Position cursor on the parent Element of current Attribute
+ * @link https://php.net/manual/en/xmlreader.movetoelement.php
+ * @return bool TRUE if successful and FALSE if it fails or not positioned on
+ * Attribute when this method is called.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToElement(): bool {}
+
+ /**
+ * Position cursor on the first Attribute
+ * @link https://php.net/manual/en/xmlreader.movetofirstattribute.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToFirstAttribute(): bool {}
+
+ /**
+ * Position cursor on the next Attribute
+ * @link https://php.net/manual/en/xmlreader.movetonextattribute.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function moveToNextAttribute(): bool {}
+
+ /**
+ * Set the URI containing the XML to parse
+ * @link https://php.net/manual/en/xmlreader.open.php
+ * @param string $uri
+ * URI pointing to the document.
+ *
+ * @param string $encoding [optional]
+ * The document encoding or NULL.
+ *
+ * @param int $flags [optional]
+ * A bitmask of the LIBXML_*
+ * constants.
+ *
+ * @return XMLReader|bool TRUE on success or FALSE on failure. If called statically, returns an
+ * XMLReader or FALSE on failure.
+ * @since 5.1.2
+ */
+ public static function open(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $uri,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $encoding = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0
+ ) {}
+
+ /**
+ * Move to next node in document
+ * @link https://php.net/manual/en/xmlreader.read.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function read(): bool {}
+
+ /**
+ * Move cursor to next node skipping all subtrees
+ * @link https://php.net/manual/en/xmlreader.next.php
+ * @param string $name [optional]
+ * The name of the next node to move to.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function next(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null): bool {}
+
+ /**
+ * Retrieve XML from current node
+ * @link https://php.net/manual/en/xmlreader.readinnerxml.php
+ * @return string the contents of the current node as a string. Empty string on failure.
+ */
+ #[TentativeType]
+ public function readInnerXml(): string {}
+
+ /**
+ * Retrieve XML from current node, including it self
+ * @link https://php.net/manual/en/xmlreader.readouterxml.php
+ * @return string the contents of current node, including itself, as a string. Empty string on failure.
+ */
+ #[TentativeType]
+ public function readOuterXml(): string {}
+
+ /**
+ * Reads the contents of the current node as a string
+ * @link https://php.net/manual/en/xmlreader.readstring.php
+ * @return string the content of the current node as a string. Empty string on
+ * failure.
+ */
+ #[TentativeType]
+ public function readString(): string {}
+
+ /**
+ * Validate document against XSD
+ * @link https://php.net/manual/en/xmlreader.setschema.php
+ * @param string $filename
+ * The filename of the XSD schema.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function setSchema(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $filename): bool {}
+
+ /**
+ * Set parser options
+ * @link https://php.net/manual/en/xmlreader.setparserproperty.php
+ * @param int $property
+ * One of the parser option
+ * constants.
+ *
+ * @param bool $value
+ * If set to TRUE the option will be enabled otherwise will
+ * be disabled.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function setParserProperty(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $property,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $value
+ ): bool {}
+
+ /**
+ * Set the filename or URI for a RelaxNG Schema
+ * @link https://php.net/manual/en/xmlreader.setrelaxngschema.php
+ * @param string $filename
+ * filename or URI pointing to a RelaxNG Schema.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function setRelaxNGSchema(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $filename): bool {}
+
+ /**
+ * Set the data containing a RelaxNG Schema
+ * @link https://php.net/manual/en/xmlreader.setrelaxngschemasource.php
+ * @param string $source
+ * String containing the RelaxNG Schema.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function setRelaxNGSchemaSource(#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $source): bool {}
+
+ /**
+ * Set the data containing the XML to parse
+ * @link https://php.net/manual/en/xmlreader.xml.php
+ * @param string $source
+ * String containing the XML to be parsed.
+ *
+ * @param string $encoding [optional]
+ * The document encoding or NULL.
+ *
+ * @param int $flags [optional]
+ * A bitmask of the LIBXML_*
+ * constants.
+ *
+ * @return XMLReader|bool TRUE on success or FALSE on failure. If called statically, returns an
+ * XMLReader or FALSE on failure.
+ * @since 5.1.2
+ */
+ public static function XML(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $source,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $encoding = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0
+ ) {}
+
+ /**
+ * Returns a copy of the current node as a DOM object
+ * @link https://php.net/manual/en/xmlreader.expand.php
+ * @param null|DOMNode $baseNode [optional]
+ * @return DOMNode|false The resulting DOMNode or FALSE on error.
+ * @since 5.1.2
+ */
+ #[TentativeType]
+ public function expand(
+ #[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'DOMNode|null'], default: '')] $baseNode = null
+ ): DOMNode|false {}
+}
+// End of xmlreader v.0.2
diff --git a/phpstorm-stubs/xmlrpc/xmlrpc.php b/phpstorm-stubs/xmlrpc/xmlrpc.php
new file mode 100644
index 0000000..8d904f3
--- /dev/null
+++ b/phpstorm-stubs/xmlrpc/xmlrpc.php
@@ -0,0 +1,152 @@
+
+ * XML response returned by XMLRPC method.
+ *
+ * @param string $encoding [optional]
+ * Input encoding supported by iconv.
+ *
+ * @return mixed either an array, or an integer, or a string, or a boolean according
+ * to the response returned by the XMLRPC method.
+ */
+function xmlrpc_decode($xml, $encoding = "iso-8859-1") {}
+
+/**
+ * Decodes XML into native PHP types
+ * @link https://php.net/manual/en/function.xmlrpc-decode-request.php
+ * @param string $xml
+ * @param string &$method
+ * @param string $encoding [optional]
+ * @return mixed
+ */
+function xmlrpc_decode_request($xml, &$method, $encoding = null) {}
+
+/**
+ * Generates XML for a method request
+ * @link https://php.net/manual/en/function.xmlrpc-encode-request.php
+ * @param string $method
+ * Name of the method to call.
+ *
+ * @param mixed $params
+ * Method parameters compatible with method signature.
+ *
+ * @param null|array $output_options [optional]
+ * Array specifying output options may contain (default values are
+ * emphasised):
+ * output_type: php, xml
+ * @return string a string containing the XML representation of the request.
+ */
+function xmlrpc_encode_request($method, $params, ?array $output_options = null) {}
+
+/**
+ * Gets xmlrpc type for a PHP value
+ * @link https://php.net/manual/en/function.xmlrpc-get-type.php
+ * @param mixed $value
+ * PHP value
+ *
+ * @return string the XML-RPC type.
+ */
+function xmlrpc_get_type($value) {}
+
+/**
+ * Sets xmlrpc type, base64 or datetime, for a PHP string value
+ * @link https://php.net/manual/en/function.xmlrpc-set-type.php
+ * @param string &$value
+ * Value to set the type
+ *
+ * @param string $type
+ * 'base64' or 'datetime'
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * If successful, value is converted to an object.
+ */
+function xmlrpc_set_type(&$value, $type) {}
+
+/**
+ * Determines if an array value represents an XMLRPC fault
+ * @link https://php.net/manual/en/function.xmlrpc-is-fault.php
+ * @param array $arg
+ * Array returned by xmlrpc_decode.
+ *
+ * @return bool TRUE if the argument means fault, FALSE otherwise. Fault
+ * description is available in $arg["faultString"], fault
+ * code is in $arg["faultCode"].
+ */
+function xmlrpc_is_fault(array $arg) {}
+
+/**
+ * Creates an xmlrpc server
+ * @link https://php.net/manual/en/function.xmlrpc-server-create.php
+ * @return resource
+ */
+function xmlrpc_server_create() {}
+
+/**
+ * Destroys server resources
+ * @link https://php.net/manual/en/function.xmlrpc-server-destroy.php
+ * @param resource $server
+ * @return int
+ */
+function xmlrpc_server_destroy($server) {}
+
+/**
+ * Register a PHP function to resource method matching method_name
+ * @link https://php.net/manual/en/function.xmlrpc-server-register-method.php
+ * @param resource $server
+ * @param string $method_name
+ * @param callable $function
+ * @return bool
+ */
+function xmlrpc_server_register_method($server, $method_name, $function) {}
+
+/**
+ * Parses XML requests and call methods
+ * @link https://php.net/manual/en/function.xmlrpc-server-call-method.php
+ * @param resource $server
+ * @param string $xml
+ * @param mixed $user_data
+ * @param null|array $output_options [optional]
+ * @return string
+ */
+function xmlrpc_server_call_method($server, $xml, $user_data, ?array $output_options = null) {}
+
+/**
+ * Decodes XML into a list of method descriptions
+ * @link https://php.net/manual/en/function.xmlrpc-parse-method-descriptions.php
+ * @param string $xml
+ * @return array
+ */
+function xmlrpc_parse_method_descriptions($xml) {}
+
+/**
+ * Adds introspection documentation
+ * @link https://php.net/manual/en/function.xmlrpc-server-add-introspection-data.php
+ * @param resource $server
+ * @param array $desc
+ * @return int
+ */
+function xmlrpc_server_add_introspection_data($server, array $desc) {}
+
+/**
+ * Register a PHP function to generate documentation
+ * @link https://php.net/manual/en/function.xmlrpc-server-register-introspection-callback.php
+ * @param resource $server
+ * @param string $function
+ * @return bool
+ */
+function xmlrpc_server_register_introspection_callback($server, $function) {}
+
+// End of xmlrpc v.0.51
diff --git a/phpstorm-stubs/xmlwriter/xmlwriter.php b/phpstorm-stubs/xmlwriter/xmlwriter.php
new file mode 100644
index 0000000..1cec7a3
--- /dev/null
+++ b/phpstorm-stubs/xmlwriter/xmlwriter.php
@@ -0,0 +1,1315 @@
+
+ * Create new xmlwriter using source uri for output
+ * @link https://php.net/manual/en/function.xmlwriter-openuri.php
+ * @param string $uri
+ * The URI of the resource for the output.
+ *
+ * @return bool Object oriented style: Returns TRUE on success or FALSE on failure.
+ *
+ *
+ * Procedural style: Returns a new xmlwriter resource for later use with the
+ * xmlwriter functions on success, FALSE on error.
+ */
+ #[TentativeType]
+ public function openUri(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $uri): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create new xmlwriter using memory for string output
+ * @link https://php.net/manual/en/function.xmlwriter-openmemory.php
+ * @return bool Object oriented style: Returns TRUE on success or FALSE on failure.
+ *
+ *
+ * Procedural style: Returns a new xmlwriter resource for later use with the
+ * xmlwriter functions on success, FALSE on error.
+ */
+ #[TentativeType]
+ public function openMemory(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Toggle indentation on/off.
+ * @link https://www.php.net/manual/en/xmlwriter.setindent.php
+ * @param bool|int $enable
+ * Whether indentation is enabled or number of indent strings
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function setIndent(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $enable): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Set string used for indenting.
+ * @link https://www.php.net/manual/en/xmlwriter.setindentstring.php
+ * @param string $indentation
+ * The indentation string.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function setIndentString(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $indentation): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Create start comment
+ * @link https://php.net/manual/en/function.xmlwriter-startcomment.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startComment(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Create end comment
+ * @link https://php.net/manual/en/function.xmlwriter-endcomment.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endComment(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start attribute
+ * @link https://php.net/manual/en/function.xmlwriter-startattribute.php
+ * @param string $name
+ * The attribute name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startAttribute(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End attribute
+ * @link https://php.net/manual/en/function.xmlwriter-endattribute.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endAttribute(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full attribute
+ * @link https://php.net/manual/en/function.xmlwriter-writeattribute.php
+ * @param string $name
+ * The name of the attribute.
+ *
+ * @param string $value
+ * The value of the attribute.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeAttribute(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start namespaced attribute
+ * @link https://php.net/manual/en/function.xmlwriter-startattributens.php
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The attribute name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startAttributeNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $prefix,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full namespaced attribute
+ * @link https://php.net/manual/en/function.xmlwriter-writeattributens.php
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The attribute name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $value
+ * The attribute value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeAttributeNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $prefix,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $value
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start element tag
+ * @link https://php.net/manual/en/function.xmlwriter-startelement.php
+ * @param string $name
+ * The element name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startElement(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current element
+ * @link https://php.net/manual/en/function.xmlwriter-endelement.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endElement(): bool {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)
+ * End current element
+ * @link https://php.net/manual/en/function.xmlwriter-fullendelement.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function fullEndElement(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start namespaced element tag
+ * @link https://php.net/manual/en/function.xmlwriter-startelementns.php
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The element name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startElementNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $prefix,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writeelement.php
+ * @param string $name
+ * The element name.
+ *
+ * @param string $content [optional]
+ * The element contents.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeElement(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $content = null
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full namespaced element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writeelementns.php
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The element name.
+ *
+ * @param string $namespace
+ * The namespace URI.
+ *
+ * @param string $content [optional]
+ * The element contents.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeElementNs(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $prefix,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $namespace,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $content = null
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start PI tag
+ * @link https://php.net/manual/en/function.xmlwriter-startpi.php
+ * @param string $target
+ * The target of the processing instruction.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startPi(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $target): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current PI
+ * @link https://php.net/manual/en/function.xmlwriter-endpi.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endPi(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Writes a PI
+ * @link https://php.net/manual/en/function.xmlwriter-writepi.php
+ * @param string $target
+ * The target of the processing instruction.
+ *
+ * @param string $content
+ * The content of the processing instruction.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writePi(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $target,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start CDATA tag
+ * @link https://php.net/manual/en/function.xmlwriter-startcdata.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startCdata(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current CDATA
+ * @link https://php.net/manual/en/function.xmlwriter-endcdata.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endCdata(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full CDATA tag
+ * @link https://php.net/manual/en/function.xmlwriter-writecdata.php
+ * @param string $content
+ * The contents of the CDATA.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeCdata(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write text
+ * @link https://php.net/manual/en/function.xmlwriter-text.php
+ * @param string $content
+ * The contents of the text.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function text(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content): bool {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)
+ * Write a raw XML text
+ * @link https://php.net/manual/en/function.xmlwriter-writeraw.php
+ * @param string $content
+ * The text string to write.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeRaw(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create document tag
+ * @link https://php.net/manual/en/function.xmlwriter-startdocument.php
+ * @param string $version [optional]
+ * The version number of the document as part of the XML declaration.
+ *
+ * @param string $encoding [optional]
+ * The encoding of the document as part of the XML declaration.
+ *
+ * @param string $standalone [optional]
+ * yes or no.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startDocument(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $version = '1.0',
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $encoding = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $standalone = null
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current document
+ * @link https://php.net/manual/en/function.xmlwriter-enddocument.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endDocument(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full comment tag
+ * @link https://php.net/manual/en/function.xmlwriter-writecomment.php
+ * @param string $content
+ * The contents of the comment.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeComment(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD tag
+ * @link https://php.net/manual/en/function.xmlwriter-startdtd.php
+ * @param string $qualifiedName
+ * The qualified name of the document type to create.
+ *
+ * @param string $publicId [optional]
+ * The external subset public identifier.
+ *
+ * @param string $systemId [optional]
+ * The external subset system identifier.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startDtd(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $publicId = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $systemId = null
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD
+ * @link https://php.net/manual/en/function.xmlwriter-enddtd.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endDtd(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtd.php
+ * @param string $name
+ * The DTD name.
+ *
+ * @param string $publicId [optional]
+ * The external subset public identifier.
+ *
+ * @param string $systemId [optional]
+ * The external subset system identifier.
+ *
+ * @param string $content [optional]
+ * The content of the DTD.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeDtd(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $publicId = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $systemId = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $content = null
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD element
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdelement.php
+ * @param string $qualifiedName
+ * The qualified name of the document type to create.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startDtdElement(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $qualifiedName): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD element
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdelement.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endDtdElement(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdelement.php
+ * @param string $name
+ * The name of the DTD element.
+ *
+ * @param string $content
+ * The content of the element.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeDtdElement(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD AttList
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdattlist.php
+ * @param string $name
+ * The attribute list name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startDtdAttlist(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD AttList
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdattlist.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endDtdAttlist(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD AttList tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdattlist.php
+ * @param string $name
+ * The name of the DTD attribute list.
+ *
+ * @param string $content
+ * The content of the DTD attribute list.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function writeDtdAttlist(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD Entity
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdentity.php
+ * @param string $name
+ * The name of the entity.
+ *
+ * @param bool $isParam
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function startDtdEntity(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $isParam
+ ): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD Entity
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdentity.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function endDtdEntity(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD Entity tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdentity.php
+ * @param string $name
+ * The name of the entity.
+ *
+ * @param string $content
+ * The content of the entity.
+ *
+ * @param bool $pe
+ * @param string $pubid
+ * @param string $sysid
+ * @param string $ndataid
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function writeDtdEntity(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content,
+ $pe,
+ $pubid,
+ $sysid,
+ $ndataid
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Returns current buffer
+ * @link https://php.net/manual/en/function.xmlwriter-outputmemory.php
+ * @param bool $flush [optional]
+ * Whether to flush the output buffer or not. Default is TRUE.
+ *
+ * @return string the current buffer as a string.
+ */
+ #[TentativeType]
+ public function outputMemory(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $flush = true): string {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Flush current buffer
+ * @link https://php.net/manual/en/function.xmlwriter-flush.php
+ * @param bool $empty [optional]
+ * Whether to empty the buffer or not. Default is TRUE.
+ *
+ * @return string|int If you opened the writer in memory, this function returns the generated XML buffer,
+ * Else, if using URI, this function will write the buffer and return the number of
+ * written bytes.
+ */
+ #[TentativeType]
+ public function flush(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $empty = true): string|int {}
+}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create new xmlwriter using source uri for output
+ * @link https://php.net/manual/en/function.xmlwriter-openuri.php
+ * @param string $uri
+ * The URI of the resource for the output.
+ *
+ * @return false|resource|XMLWriter Object oriented style: Returns TRUE on success or FALSE on failure.
+ *
+ * Procedural style: Returns a new xmlwriter resource for later use with the
+ * xmlwriter functions on success, FALSE on error.
+ *
+ */
+#[LanguageLevelTypeAware(["8.0" => "XMLWriter|false"], default: "resource|false")]
+function xmlwriter_open_uri(string $uri) {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create new xmlwriter using memory for string output
+ * @link https://php.net/manual/en/function.xmlwriter-openmemory.php
+ * @return XMLWriter|false|resource Object oriented style: Returns TRUE on success or FALSE on failure.
+ *
+ * Procedural style: Returns a new xmlwriter resource for later use with the
+ * xmlwriter functions on success, FALSE on error.
+ *
+ */
+#[LanguageLevelTypeAware(["8.0" => "XMLWriter|false"], default: "resource|false")]
+function xmlwriter_open_memory() {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Toggle indentation on/off
+ * @link https://php.net/manual/en/function.xmlwriter-setindent.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param bool $enable
+ * Whether indentation is enabled.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_set_indent(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, bool $enable): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Set string used for indenting
+ * @link https://php.net/manual/en/function.xmlwriter-setindentstring.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $indentation
+ * The indentation string.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_set_indent_string(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $indentation): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Create start comment
+ * @link https://php.net/manual/en/function.xmlwriter-startcomment.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_comment(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Create end comment
+ * @link https://php.net/manual/en/function.xmlwriter-endcomment.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_comment(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start attribute
+ * @link https://php.net/manual/en/function.xmlwriter-startattribute.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The attribute name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_attribute(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End attribute
+ * @link https://php.net/manual/en/function.xmlwriter-endattribute.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_attribute(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full attribute
+ * @link https://php.net/manual/en/function.xmlwriter-writeattribute.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The name of the attribute.
+ *
+ * @param string $value
+ * The value of the attribute.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_attribute(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, string $value): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start namespaced attribute
+ * @link https://php.net/manual/en/function.xmlwriter-startattributens.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The attribute name.
+ *
+ * @param string|null $namespace
+ * The namespace URI.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_attribute_ns(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, ?string $prefix, string $name, ?string $namespace): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full namespaced attribute
+ * @link https://php.net/manual/en/function.xmlwriter-writeattributens.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The attribute name.
+ *
+ * @param string|null $namespace
+ * The namespace URI.
+ *
+ * @param string $value
+ * The attribute value.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_attribute_ns(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, ?string $prefix, string $name, ?string $namespace, string $value): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start element tag
+ * @link https://php.net/manual/en/function.xmlwriter-startelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The element name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current element
+ * @link https://php.net/manual/en/function.xmlwriter-endelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)
+ * End current element
+ * @link https://php.net/manual/en/function.xmlwriter-fullendelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_full_end_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start namespaced element tag
+ * @link https://php.net/manual/en/function.xmlwriter-startelementns.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The element name.
+ *
+ * @param string|null $namespace
+ * The namespace URI.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_element_ns(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, ?string $prefix, string $name, ?string $namespace): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writeelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The element name.
+ *
+ * @param string|null $content [optional]
+ * The element contents.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, ?string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full namespaced element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writeelementns.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string|null $prefix
+ * The namespace prefix.
+ *
+ * @param string $name
+ * The element name.
+ *
+ * @param string|null $namespace
+ * The namespace URI.
+ *
+ * @param string|null $content [optional]
+ * The element contents.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_element_ns(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, ?string $prefix, string $name, ?string $namespace, ?string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start PI tag
+ * @link https://php.net/manual/en/function.xmlwriter-startpi.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $target
+ * The target of the processing instruction.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_pi(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $target): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current PI
+ * @link https://php.net/manual/en/function.xmlwriter-endpi.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_pi(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Writes a PI
+ * @link https://php.net/manual/en/function.xmlwriter-writepi.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $target
+ * The target of the processing instruction.
+ *
+ * @param string $content
+ * The content of the processing instruction.
+ *
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_pi(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $target, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start CDATA tag
+ * @link https://php.net/manual/en/function.xmlwriter-startcdata.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_cdata(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current CDATA
+ * @link https://php.net/manual/en/function.xmlwriter-endcdata.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_cdata(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full CDATA tag
+ * @link https://php.net/manual/en/function.xmlwriter-writecdata.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $content
+ * The contents of the CDATA.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_cdata(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write text
+ * @link https://php.net/manual/en/function.xmlwriter-text.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $content
+ * The contents of the text.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_text(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL xmlwriter >= 2.0.4)
+ * Write a raw XML text
+ * @link https://php.net/manual/en/function.xmlwriter-writeraw.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $content
+ * The text string to write.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_raw(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create document tag
+ * @link https://php.net/manual/en/function.xmlwriter-startdocument.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string|null $version [optional]
+ * The version number of the document as part of the XML declaration.
+ *
+ * @param string|null $encoding [optional]
+ * The encoding of the document as part of the XML declaration.
+ *
+ * @param string|null $standalone [optional]
+ * yes or no.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_document(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, ?string $version = '1.0', ?string $encoding, ?string $standalone): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current document
+ * @link https://php.net/manual/en/function.xmlwriter-enddocument.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_document(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full comment tag
+ * @link https://php.net/manual/en/function.xmlwriter-writecomment.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $content
+ * The contents of the comment.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_comment(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD tag
+ * @link https://php.net/manual/en/function.xmlwriter-startdtd.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $qualifiedName
+ * The qualified name of the document type to create.
+ *
+ * @param string|null $publicId [optional]
+ * The external subset public identifier.
+ *
+ * @param string|null $systemId [optional]
+ * The external subset system identifier.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_dtd(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $qualifiedName, ?string $publicId, ?string $systemId): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD
+ * @link https://php.net/manual/en/function.xmlwriter-enddtd.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_dtd(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtd.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The DTD name.
+ *
+ * @param string|null $publicId [optional]
+ * The external subset public identifier.
+ *
+ * @param string|null $systemId [optional]
+ * The external subset system identifier.
+ *
+ * @param string|null $content [optional]
+ * The content of the DTD.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_dtd(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, ?string $publicId, ?string $systemId, ?string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD element
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $qualifiedName
+ * The qualified name of the document type to create.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_dtd_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $qualifiedName): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD element
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdelement.php
+ * @param $writer
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_dtd_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD element tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdelement.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The name of the DTD element.
+ *
+ * @param string $content
+ * The content of the element.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_dtd_element(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD AttList
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdattlist.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The attribute list name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_dtd_attlist(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD AttList
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdattlist.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_dtd_attlist(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD AttList tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdattlist.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The name of the DTD attribute list.
+ *
+ * @param string $content
+ * The content of the DTD attribute list.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_dtd_attlist(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, string $content): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Create start DTD Entity
+ * @link https://php.net/manual/en/function.xmlwriter-startdtdentity.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The name of the entity.
+ *
+ * @param bool $isParam
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_start_dtd_entity(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, string $name, bool $isParam): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * End current DTD Entity
+ * @link https://php.net/manual/en/function.xmlwriter-enddtdentity.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
* @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_end_dtd_entity(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Write full DTD Entity tag
+ * @link https://php.net/manual/en/function.xmlwriter-writedtdentity.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param string $name
+ * The name of the entity.
+ *
+ * @param string $content
+ * The content of the entity.
+ *
+ * @param bool $isParam
+ * @param string $publicId
+ * @param string $systemId
+ * @param string $notationData
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function xmlwriter_write_dtd_entity(
+ #[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer,
+ string $name,
+ string $content,
+ #[PhpStormStubsElementAvailable(from: '8.0')] bool $isParam = false,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ?string $publicId = null,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ?string $systemId = null,
+ #[PhpStormStubsElementAvailable(from: '8.0')] ?string $notationData = null
+): bool {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 0.1.0)
+ * Returns current buffer
+ * @link https://php.net/manual/en/function.xmlwriter-outputmemory.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param bool $flush [optional]
+ * Whether to flush the output buffer or not. Default is TRUE.
+ *
+ * @return string the current buffer as a string.
+ */
+function xmlwriter_output_memory(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, bool $flush = true): string {}
+
+/**
+ * (PHP 5 >= 5.1.2, PECL xmlwriter >= 1.0.0)
+ * Flush current buffer
+ * @link https://php.net/manual/en/function.xmlwriter-flush.php
+ * @param resource|XMLWriter $writer
+ * Only for procedural calls.
+ * The XMLWriter {@link https://php.net/manual/en/language.types.resource.php" resource} that is being modified.
+ * This resource comes from a call to {@link https://php.net/manual/en/function.xmlwriter-openuri.php" xmlwriter_open_uri()}
+ * or {@link https://php.net/manual/en/function.xmlwriter-openmemory.php" xmlwriter_open_memory()}.
+ * @param bool $empty [optional]
+ * Whether to empty the buffer or not. Default is TRUE.
+ *
+ * @return string|int If you opened the writer in memory, this function returns the generated XML buffer,
+ * Else, if using URI, this function will write the buffer and return the number of
+ * written bytes.
+ */
+function xmlwriter_flush(#[LanguageLevelTypeAware(["8.0" => "XMLWriter"], default: "resource")] $writer, bool $empty = true): string|int {}
diff --git a/phpstorm-stubs/xsl/xsl.php b/phpstorm-stubs/xsl/xsl.php
new file mode 100644
index 0000000..b4ba0ba
--- /dev/null
+++ b/phpstorm-stubs/xsl/xsl.php
@@ -0,0 +1,203 @@
+
+ * The imported style sheet as a DOMDocument or
+ * SimpleXMLElement object.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function importStylesheet($stylesheet) {}
+
+ /**
+ * Transform to a DOMDocument
+ * @link https://php.net/manual/en/xsltprocessor.transformtodoc.php
+ * @param DOMNode $doc
+ * The node to be transformed.
+ *
+ * @return DOMDocument|false The resulting DOMDocument or FALSE on error.
+ */
+ public function transformToDoc(DOMNode $doc) {}
+
+ /**
+ * Transform to URI
+ * @link https://php.net/manual/en/xsltprocessor.transformtouri.php
+ * @param DOMDocument|SimpleXMLElement $doc
+ * The document to transform.
+ *
+ * @param string $uri
+ * The target URI for the transformation.
+ *
+ * @return int|false the number of bytes written or FALSE if an error occurred.
+ */
+ public function transformToUri($doc, $uri) {}
+
+ /**
+ * Transform to XML
+ * @link https://php.net/manual/en/xsltprocessor.transformtoxml.php
+ * @param DOMDocument|SimpleXMLElement $doc
+ * The transformed document.
+ *
+ * @return string|false|null The result of the transformation as a string or FALSE on error.
+ */
+ public function transformToXml($doc) {}
+
+ /**
+ * Set value for a parameter
+ * @link https://php.net/manual/en/xsltprocessor.setparameter.php
+ * @param string $namespace
+ * The namespace URI of the XSLT parameter.
+ *
+ * @param array $options
+ * An array of name => value pairs. This syntax is available since PHP 5.1.0.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setParameter($namespace, $options) {}
+
+ /**
+ * Set value for a parameter
+ * @link https://php.net/manual/en/xsltprocessor.setparameter.php
+ * @param string $namespace
+ * The namespace URI of the XSLT parameter.
+ *
+ * @param string $name
+ * The local name of the XSLT parameter.
+ *
+ * @param string $value
+ * The new value of the XSLT parameter.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setParameter($namespace, $name, $value) {}
+
+ /**
+ * Get value of a parameter
+ * @link https://php.net/manual/en/xsltprocessor.getparameter.php
+ * @param string $namespaceURI
+ * The namespace URI of the XSLT parameter.
+ *
+ * @param string $localName
+ * The local name of the XSLT parameter.
+ *
+ * @return string|false The value of the parameter (as a string), or FALSE if it's not set.
+ */
+ public function getParameter($namespaceURI, $localName) {}
+
+ /**
+ * Remove parameter
+ * @link https://php.net/manual/en/xsltprocessor.removeparameter.php
+ * @param string $namespaceURI
+ * The namespace URI of the XSLT parameter.
+ *
+ * @param string $localName
+ * The local name of the XSLT parameter.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function removeParameter($namespaceURI, $localName) {}
+
+ /**
+ * Determine if PHP has EXSLT support
+ * @link https://php.net/manual/en/xsltprocessor.hasexsltsupport.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @since 5.0.4
+ */
+ public function hasExsltSupport() {}
+
+ /**
+ * Enables the ability to use PHP functions as XSLT functions
+ * @link https://php.net/manual/en/xsltprocessor.registerphpfunctions.php
+ * @param mixed $restrict [optional]
+ * Use this parameter to only allow certain functions to be called from
+ * XSLT.
+ *
+ *
+ * This parameter can be either a string (a function name) or an array of
+ * functions.
+ *
+ * @return void No value is returned.
+ * @since 5.0.4
+ */
+ public function registerPHPFunctions($restrict = null) {}
+
+ /**
+ * Sets profiling output file
+ * @link https://php.net/manual/en/xsltprocessor.setprofiling.php
+ * @param string $filename
+ * Path to the file to dump profiling information.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setProfiling($filename) {}
+
+ /**
+ * Set security preferences
+ * @link https://php.net/manual/en/xsltprocessor.setsecurityprefs.php
+ * @param int $securityPrefs
+ * @return int
+ * @since 5.4
+ */
+ public function setSecurityPrefs($securityPrefs) {}
+
+ /**
+ * Get security preferences
+ * @link https://php.net/manual/en/xsltprocessor.getsecurityprefs.php
+ * @return int
+ * @since 5.4
+ */
+ public function getSecurityPrefs() {}
+}
+define('XSL_CLONE_AUTO', 0);
+define('XSL_CLONE_NEVER', -1);
+define('XSL_CLONE_ALWAYS', 1);
+
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_NONE', 0);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_READ_FILE', 2);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_WRITE_FILE', 4);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_CREATE_DIRECTORY', 8);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_READ_NETWORK', 16);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_WRITE_NETWORK', 32);
+/** @link https://php.net/manual/en/xsl.constants.php */
+define('XSL_SECPREF_DEFAULT', 44);
+
+/**
+ * libxslt version like 10117. Available as of PHP 5.1.2.
+ * @link https://php.net/manual/en/xsl.constants.php
+ */
+define('LIBXSLT_VERSION', 10128);
+
+/**
+ * libxslt version like 1.1.17. Available as of PHP 5.1.2.
+ * @link https://php.net/manual/en/xsl.constants.php
+ */
+define('LIBXSLT_DOTTED_VERSION', "1.1.28");
+
+/**
+ * libexslt version like 813. Available as of PHP 5.1.2.
+ * @link https://php.net/manual/en/xsl.constants.php
+ */
+define('LIBEXSLT_VERSION', 817);
+
+/**
+ * libexslt version like 1.1.17. Available as of PHP 5.1.2.
+ * @link https://php.net/manual/en/xsl.constants.php
+ */
+define('LIBEXSLT_DOTTED_VERSION', "1.1.28");
+
+// End of xsl v.0.1
diff --git a/phpstorm-stubs/xxtea/xxtea.php b/phpstorm-stubs/xxtea/xxtea.php
new file mode 100644
index 0000000..0afc305
--- /dev/null
+++ b/phpstorm-stubs/xxtea/xxtea.php
@@ -0,0 +1,56 @@
+
+ * Note:
+ *
+ * Yaf_Application implements the singleton pattern, and Yaf_Application can not be serialized or un-serialized which will cause problem when you try to use PHPUnit to write some test case for Yaf.
+ * You may use @backupGlobals annotation of PHPUnit to control the backup and restore operations for global variables. thus can solve this problem.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-application.php
+ */
+final class Yaf_Application
+{
+ /**
+ * @var Yaf_Application
+ */
+ protected static $_app;
+
+ /**
+ * @var Yaf_Config_Abstract
+ */
+ protected $config;
+
+ /**
+ * @var Yaf_Dispatcher
+ */
+ protected $dispatcher;
+
+ /**
+ * @var array
+ */
+ protected $_modules;
+
+ /**
+ * @var string
+ */
+ protected $_running = "";
+
+ /**
+ * @var string
+ */
+ protected $_environ = YAF_ENVIRON;
+
+ /**
+ * @since 2.1.2
+ * @var int
+ */
+ protected $_err_no = 0;
+
+ /**
+ * @since 2.1.2
+ * @var string
+ */
+ protected $_err_msg = "";
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.construct.php
+ *
+ * @param string|array $config A ini config file path, or a config array
+ *
+ * If is a ini config file, there should be a section named as the one defined by yaf.environ, which is "product" by default.
+ *
+ *
+ * Note:
+ * If you use a ini configuration file as your application's config container. you would open the yaf.cache_config to improve performance.
+ * And the config entry(and there default value) list blow:
+ *
+ *
+ * Example #1 A ini config file example
+ * [product]
+ * ;this one should always be defined, and have no default value
+ * application.directory=APPLICATION_PATH
+ *
+ *
+ * ;following configs have default value, you may no need to define them
+ *
+ * application.library = APPLICATION_PATH . "/library"
+ * application.dispatcher.throwException=1
+ * application.dispatcher.catchException=1
+ *
+ * application.baseUri=""
+ *
+ * ;the php script ext name
+ * ap.ext=php
+ *
+ *
+ * ;the view template ext name
+ * ap.view.ext=phtml
+ *
+ *
+ * ap.dispatcher.defaultModule=Index
+ * ap.dispatcher.defaultController=Index
+ * ap.dispatcher.defaultAction=index
+ *
+ *
+ * ;defined modules
+ * ap.modules=Index
+ *
+ * @param string $environ Which section will be loaded as the final config
+ *
+ * @throws Yaf_Exception_TypeError|Yaf_Exception_StartupError
+ */
+ public function __construct($config, $environ = null) {}
+
+ public function getInstance() {}
+
+ /**
+ * Run a Yaf_Application, let the Yaf_Application accept a request, and route the request, dispatch to controller/action, and render response.
+ * return response to client finally.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.run.php
+ * @throws Yaf_Exception_StartupError
+ */
+ public function run() {}
+
+ /**
+ * This method is typically used to run Yaf_Application in a crontab work.
+ * Make the crontab work can also use the autoloader and Bootstrap mechanism.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.execute.php
+ *
+ * @param callable $entry a valid callback
+ * @param string ...$_ parameters will pass to the callback
+ */
+ public function execute(callable $entry, ...$_) {}
+
+ /**
+ * Retrieve the Yaf_Application instance, alternatively, we also could use Yaf_Dispatcher::getApplication().
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.app.php
+ *
+ * @return Yaf_Application|null an Yaf_Application instance, if no Yaf_Application initialized before, NULL will be returned.
+ */
+ public static function app() {}
+
+ /**
+ * Retrieve environ which was defined in yaf.environ which has a default value "product".
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.environ.php
+ *
+ * @return string
+ */
+ public function environ() {}
+
+ /**
+ * Run a Bootstrap, all the methods defined in the Bootstrap and named with prefix "_init" will be called according to their declaration order, if the parameter bootstrap is not supplied, Yaf will look for a Bootstrap under application.directory.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.bootstrap.php
+ *
+ * @param Yaf_Bootstrap_Abstract $bootstrap A Yaf_Bootstrap_Abstract instance
+ * @return Yaf_Application
+ */
+ public function bootstrap($bootstrap = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.getconfig.php
+ *
+ * @return Yaf_Config_Abstract
+ */
+ public function getConfig() {}
+
+ /**
+ * Get the modules list defined in config, if no one defined, there will always be a module named "Index".
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.getmodules.php
+ *
+ * @return array
+ */
+ public function getModules() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.getdispatcher.php
+ *
+ * @return Yaf_Dispatcher
+ */
+ public function getDispatcher() {}
+
+ /**
+ * Change the application directory
+ *
+ * @param string $directory
+ * @return Yaf_Application
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-application.setappdirectory.php
+ */
+ public function setAppDirectory($directory) {}
+
+ /**
+ * @return string
+ * @link https://secure.php.net/manual/en/yaf-application.getappdirectory.php
+ *
+ * @since 2.1.4
+ */
+ public function getAppDirectory() {}
+
+ /**
+ * @return int
+ * @link https://secure.php.net/manual/en/yaf-application.getlasterrorno.php
+ *
+ * @since 2.1.2
+ */
+ public function getLastErrorNo() {}
+
+ /**
+ * @return string
+ * @link https://secure.php.net/manual/en/yaf-application.getlasterrormsg.php
+ *
+ * @since 2.1.2
+ */
+ public function getLastErrorMsg() {}
+
+ /**
+ * @since 2.1.2
+ * @link https://secure.php.net/manual/en/yaf-application.clearlasterror.php
+ */
+ public function clearLastError() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.wakeup.php
+ */
+ private function __wakeup() {}
+}
+
+/**
+ * Yaf_Dispatcher purpose is to initialize the request environment, route the incoming request, and then dispatch any discovered actions; it aggregates any responses and returns them when the process is complete.
+ * Yaf_Dispatcher also implements the Singleton pattern, meaning only a single instance of it may be available at any given time. This allows it to also act as a registry on which the other objects in the dispatch process may draw.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-dispatcher.php
+ */
+final class Yaf_Dispatcher
+{
+ /**
+ * @var Yaf_Dispatcher
+ */
+ protected static $_instance;
+
+ /**
+ * @var Yaf_Router
+ */
+ protected $_router;
+
+ /**
+ * @var Yaf_View_Interface
+ */
+ protected $_view;
+
+ /**
+ * @var Yaf_Request_Abstract
+ */
+ protected $_request;
+
+ /**
+ * @var Yaf_Plugin_Abstract
+ */
+ protected $_plugins;
+
+ /**
+ * @var bool
+ */
+ protected $_auto_render = true;
+
+ /**
+ * @var string
+ */
+ protected $_return_response = "";
+
+ /**
+ * @var string
+ */
+ protected $_instantly_flush = "";
+
+ /**
+ * @var string
+ */
+ protected $_default_module;
+
+ /**
+ * @var string
+ */
+ protected $_default_controller;
+
+ /**
+ * @var string
+ */
+ protected $_default_action;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * enable view rendering
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.enableview.php
+ *
+ * @return Yaf_Dispatcher
+ */
+ public function enableView() {}
+
+ public function getResponse() {}
+
+ public function getDefaultModule() {}
+
+ public function getDefaultController() {}
+
+ public function getDefaultAction() {}
+
+ /**
+ * disable view engine, used in some app that user will output by himself
+ * Note:
+ * you can simply return FALSE in a action to prevent the auto-rendering of that action
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.disableview.php
+ *
+ * @return bool
+ */
+ public function disableView() {}
+
+ /**
+ * Initialize view and return it
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.initview.php
+ *
+ * @param string $templates_dir
+ * @param array|null $options
+ * @return Yaf_View_Interface
+ */
+ public function initView($templates_dir, ?array $options = null) {}
+
+ /**
+ * This method provides a solution for that if you want use a custom view engine instead of Yaf_View_Simple
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setview.php
+ *
+ * @param Yaf_View_Interface $view A Yaf_View_Interface instance
+ * @return Yaf_Dispatcher
+ */
+ public function setView($view) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setrequest.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @return Yaf_Dispatcher
+ */
+ public function setRequest($request) {}
+
+ /**
+ * Retrieve the Yaf_Application instance. same as Yaf_Application::app().
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getapplication.php
+ * @return Yaf_Application
+ */
+ public function getApplication() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getrouter.php
+ *
+ * @return Yaf_Router
+ */
+ public function getRouter() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getrequest.php
+ *
+ * @return Yaf_Request_Abstract
+ */
+ public function getRequest() {}
+
+ /**
+ * Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catch-able error while unexpected errors occurred.
+ * Thus, this error handler will be called while the error raise.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.seterrorhandler.php
+ *
+ * @param callable $callback a callable callback
+ * @param int $error_types YAF_ERR_* constants mask
+ *
+ * @return Yaf_Dispatcher
+ */
+ public function setErrorHandler($callback, $error_types = YAF_ERR_TYPE_ERROR) {}
+
+ /**
+ * Change default module name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultmodule.php
+ *
+ * @param string $module
+ * @return Yaf_Dispatcher
+ */
+ public function setDefaultModule($module) {}
+
+ /**
+ * Change default controller name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultcontroller.php
+ *
+ * @param string $controller
+ * @return Yaf_Dispatcher
+ */
+ public function setDefaultController($controller) {}
+
+ /**
+ * Change default action name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultaction.php
+ *
+ * @param string $action
+ * @return Yaf_Dispatcher
+ */
+ public function setDefaultAction($action) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.returnresponse.php
+ *
+ * @param bool $flag
+ * @return Yaf_Dispatcher
+ */
+ public function returnResponse($flag) {}
+
+ /**
+ * Yaf_Dispatcher will render automatically after dispatches an incoming request, you can prevent the rendering by calling this method with $flag TRUE
+ * Note:
+ * you can simply return FALSE in a action to prevent the auto-rendering of that action
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.autorender.php
+ *
+ * @param bool $flag since 2.2.0, if this parameter is not given, then the current state will be set
+ * @return Yaf_Dispatcher
+ */
+ public function autoRender($flag = null) {}
+
+ /**
+ * Switch on/off the instant flushing
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.flushinstantly.php
+ *
+ * @param bool $flag since 2.2.0, if this parameter is not given, then the current state will be set
+ * @return Yaf_Dispatcher
+ */
+ public function flushInstantly($flag = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getinstance.php
+ *
+ * @return Yaf_Dispatcher
+ */
+ public static function getInstance() {}
+
+ /**
+ * This method does the heavy work of the Yaf_Dispatcher. It take a request object.
+ * The dispatch process has three distinct events:
+ *
+ * - Routing
+ * - Dispatching
+ * - Response
+ *
+ * Routing takes place exactly once, using the values in the request object when dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see Yaf_Plugin_Abstract. When all is done, the Yaf_Dispatcher returns a response.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.dispatch.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @throws Yaf_Exception_TypeError
+ * @throws Yaf_Exception_RouterFailed
+ * @throws Yaf_Exception_DispatchFailed
+ * @throws Yaf_Exception_LoadFailed
+ * @throws Yaf_Exception_LoadFailed_Action
+ * @throws Yaf_Exception_LoadFailed_Controller
+ *
+ * @return Yaf_Response_Abstract
+ */
+ public function dispatch($request) {}
+
+ /**
+ * Switch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.
+ * You can also use application.dispatcher.throwException to achieve the same purpose.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.throwexception.php
+ *
+ * @param bool $flag
+ * @return Yaf_Dispatcher
+ */
+ public function throwException($flag = null) {}
+
+ /**
+ * While the application.dispatcher.throwException is On(you can also calling to Yaf_Dispatcher::throwException(TRUE) to enable it), Yaf will throw Exception whe error occurs instead of trigger error.
+ * then if you enable Yaf_Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught Exceptions will be caught by ErrorController::error if you have defined one.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.catchexception.php
+ *
+ * @param bool $flag
+ * @return Yaf_Dispatcher
+ */
+ public function catchException($flag = null) {}
+
+ /**
+ * Register a plugin(see Yaf_Plugin_Abstract). Generally, we register plugins in Bootstrap(see Yaf_Bootstrap_Abstract).
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.registerplugin.php
+ *
+ * @param Yaf_Plugin_Abstract $plugin
+ * @return Yaf_Dispatcher
+ */
+ public function registerPlugin($plugin) {}
+
+ public function setResponse($response) {}
+}
+
+/**
+ * Yaf_Loader introduces a comprehensive autoloading solution for Yaf.
+ *
+ * The first time an instance of Yaf_Application is retrieved, Yaf_Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the Yaf_Loader::getInstance()
+ *
+ * Yaf_Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_autoload, if this config is On Yaf_Loader::autoload() will return FALSE, thus give the chance to other autoload function. if it is Off (by default), Yaf_Loader::autoload() will return TRUE, and more important is that a very useful warning will be triggered (very useful to find out why a class could not be loaded).
+ *
+ * Note:
+ * Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.
+ *
+ * If you want Yaf_Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the Yaf_Loader::registerLocalNameSpace()
+ * @link https://secure.php.net/manual/en/class.yaf-loader.php
+ */
+class Yaf_Loader
+{
+ /**
+ * @var string
+ */
+ protected $_local_ns;
+
+ /**
+ * By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to Yaf_Loader::setLibraryPath()
+ * @var string
+ */
+ protected $_library;
+
+ /**
+ * @var string
+ */
+ protected $_global_library;
+
+ /**
+ * @var Yaf_Loader
+ */
+ protected static $_instance;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.autoload.php
+ *
+ * @param string $class_name
+ *
+ * @return bool
+ */
+ public function autoload($class_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.getinstance.php
+ *
+ * @param string $local_library_path
+ * @param string $global_library_path
+ *
+ * @return Yaf_Loader
+ */
+ public static function getInstance($local_library_path = null, $global_library_path = null) {}
+
+ /**
+ * Register local class prefix name, Yaf_Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local library directory; the other is configured via yaf.library (in php.ini) which is called global library directory, since it can be shared by many applications in the same server.
+ *
+ * When an autoloading is triggered, Yaf_Loader will determine which library directory should be searched in by examining the prefix name of the missed classname. If the prefix name is registered as a local namespace then look for it in local library directory, otherwise look for it in global library directory.
+ *
+ * Note:
+ * If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.
+ * @link https://secure.php.net/manual/en/yaf-loader.registerlocalnamespace.php
+ *
+ * @param string|string[] $namespace a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.
+ * @param string $path
+ *
+ * @return bool
+ */
+ public function registerLocalNamespace($namespace, $path = '') {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.getlocalnamespace.php
+ *
+ * @return string
+ */
+ public function getLocalNamespace() {}
+
+ public function getNamespaces() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.clearlocalnamespace.php
+ */
+ public function clearLocalNamespace() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.islocalname.php
+ *
+ * @param string $class_name
+ *
+ * @return bool
+ */
+ public function isLocalName($class_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.import.php
+ *
+ * @param string $file
+ *
+ * @return bool
+ */
+ public static function import($file) {}
+
+ /**
+ * @param string $library_path
+ * @param bool $is_global
+ *
+ * @return Yaf_Loader
+ * @link https://secure.php.net/manual/en/yaf-loader.setlibrarypath.php
+ *
+ * @since 2.1.4
+ */
+ public function setLibraryPath($library_path, $is_global = false) {}
+
+ /**
+ * @param bool $is_global
+ *
+ * @return string
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-loader.getlibrarypath.php
+ */
+ public function getLibraryPath($is_global = false) {}
+
+ public function registerNamespace($namespace, $path = '') {}
+
+ public function getNamespacePath($class_name) {}
+}
+
+/**
+ * All methods of Yaf_Registry declared as static, making it universally accessible. This provides the ability to get or set any custom data from anyway in your code as necessary.
+ * @link https://secure.php.net/manual/en/class.yaf-registry.php
+ */
+final class Yaf_Registry
+{
+ /**
+ * @var Yaf_Registry
+ */
+ protected static $_instance;
+
+ /**
+ * @var array
+ */
+ protected $_entries;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * Retrieve an item from registry
+ *
+ * @link https://secure.php.net/manual/en/yaf-registry.get.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public static function get($name) {}
+
+ /**
+ * Check whether an item exists
+ *
+ * @link https://secure.php.net/manual/en/yaf-registry.has.php
+ *
+ * @param string $name
+ *
+ * @return bool
+ */
+ public static function has($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.set.php
+ *
+ * @param string $name
+ * @param string $value
+ *
+ * @return bool
+ */
+ public static function set($name, $value) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.del.php
+ *
+ * @param string $name
+ *
+ * @return void|bool
+ */
+ public static function del($name) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-session.php
+ * @version 2.2.9
+ */
+final class Yaf_Session implements Iterator, ArrayAccess, Countable
+{
+ /**
+ * @var Yaf_Session
+ */
+ protected static $_instance;
+
+ /**
+ * @var array
+ */
+ protected $_session;
+
+ /**
+ * @var bool
+ */
+ protected $_started = true;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.getinstance.php
+ *
+ * @return Yaf_Session
+ */
+ public static function getInstance() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.start.php
+ *
+ * @return Yaf_Session
+ */
+ public function start() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.get.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public function get($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.has.php
+ *
+ * @param string $name
+ *
+ * @return bool
+ */
+ public function has($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.set.php
+ *
+ * @param string $name
+ * @param mixed $value
+ *
+ * @return Yaf_Session|false return FALSE on failure
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.del.php
+ *
+ * @param string $name
+ *
+ * @return Yaf_Session|false return FALSE on failure
+ */
+ public function del($name) {}
+
+ /**
+ * @see Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @param string $name
+ * @see ArrayAccess::offsetUnset
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @param string $name
+ * @return mixed
+ * @see ArrayAccess::offsetGet
+ */
+ public function offsetGet($name) {}
+
+ /**
+ * @see ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @param string $name
+ * @param string $value
+ * @return void
+ * @see ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+
+ /**
+ * @see Yaf_Session::get()
+ */
+ public function __get($name) {}
+
+ /**
+ * @see Yaf_Session::has()
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see Yaf_Session::set()
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see Yaf_Session::del()
+ */
+ public function __unset($name) {}
+
+ public function clear() {}
+}
+
+/**
+ * Yaf_Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a Yaf_Request_Abstract object which is then processed by Yaf_Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. Yaf_Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting
+ *
+ * Default Route
+ *
+ * Yaf_Router comes pre-configured with a default route Yaf_Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.
+ *
+ * Note:
+ * Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considered as a module name. if doesn't config, there is only one module named "Index".
+ *
+ * ** See examples by opening the external documentation
+ * @link https://secure.php.net/manual/en/class.yaf-router.php
+ */
+class Yaf_Router
+{
+ /**
+ * @var Yaf_Route_Interface[] registered routes stack
+ */
+ protected $_routes;
+
+ /**
+ * @var string after routing phase, this indicated the name of which route is used to route current request. you can get this name by Yaf_Router::getCurrentRoute()
+ */
+ protected $_current;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * by default, Yaf_Router using a Yaf_Route_Static as its default route. you can add new routes into router's route stack by calling this method.
+ *
+ * the newer route will be called before the older(route stack), and if the newer router return TRUE, the router process will be end. otherwise, the older one will be called.
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.addroute.php
+ *
+ * @param string $name
+ * @param Yaf_Route_Interface $route
+ *
+ * @return Yaf_Router|false return FALSE on failure
+ */
+ public function addRoute($name, $route) {}
+
+ /**
+ * Add routes defined by configs into Yaf_Router's route stack
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.addconfig.php
+ *
+ * @param Yaf_Config_Abstract $config
+ *
+ * @return Yaf_Router|false return FALSE on failure
+ */
+ public function addConfig($config) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return Yaf_Router|false return FALSE on failure
+ */
+ public function route($request) {}
+
+ /**
+ * Retrieve a route by name, see also Yaf_Router::getCurrentRoute()
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.getroute.php
+ *
+ * @param string $name
+ *
+ * @return Yaf_Route_Interface
+ */
+ public function getRoute($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.getroutes.php
+ *
+ * @return Yaf_Route_Interface[]
+ */
+ public function getRoutes() {}
+
+ /**
+ * Get the name of the route which is effective in the route process.
+ *
+ * Note:
+ * You should call this method after the route process finished, since before that, this method will always return NULL.
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.getcurrentroute.php
+ *
+ * @return string the name of the effective route.
+ */
+ public function getCurrentRoute() {}
+}
+
+/**
+ * Bootstrap is a mechanism used to do some initial config before a Application run.
+ * User may define their own Bootstrap class by inheriting Yaf_Bootstrap_Abstract
+ * Any method declared in Bootstrap class with leading "_init", will be called by Yaf_Application::bootstrap() one by one according to their defined order
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-bootstrap-abstract.php
+ */
+abstract class Yaf_Bootstrap_Abstract {}
+
+/**
+ * Yaf_Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.
+ *
+ * Every custom controller shall inherit Yaf_Controller_Abstract.
+ *
+ * You will find that you can not define __construct function for your custom controller, thus, Yaf_Controller_Abstract provides a magic method: Yaf_Controller_Abstract::init().
+ *
+ * If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.
+ *
+ * Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see Yaf_Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see Yaf_Action_Abstract::execute()).
+ *
+ * Note:
+ * These arguments are directly fetched without filtering, it should be carefully processed before use them.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-controller-abstract.php
+ */
+abstract class Yaf_Controller_Abstract
+{
+ /**
+ * @see Yaf_Action_Abstract
+ * @var array You can also define a action method in a separate PHP script by using this property and Yaf_Action_Abstract.
+ */
+ public $actions;
+
+ /**
+ * @var string module name
+ */
+ protected $_module;
+
+ /**
+ * @var string controller name
+ */
+ protected $_name;
+
+ /**
+ * @var Yaf_Request_Abstract current request object
+ */
+ protected $_request;
+
+ /**
+ * @var Yaf_Response_Abstract current response object
+ */
+ protected $_response;
+
+ /**
+ * @var array
+ */
+ protected $_invoke_args;
+
+ /**
+ * @var Yaf_View_Interface view engine object
+ */
+ protected $_view;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.render.php
+ *
+ * @param string $tpl
+ * @param array|null $parameters
+ *
+ * @return string
+ */
+ protected function render($tpl, ?array $parameters = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.display.php
+ *
+ * @param string $tpl
+ * @param array|null $parameters
+ *
+ * @return bool
+ */
+ protected function display($tpl, ?array $parameters = null) {}
+
+ /**
+ * retrieve current request object
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getrequest.php
+ *
+ * @return Yaf_Request_Abstract
+ */
+ public function getRequest() {}
+
+ /**
+ * retrieve current response object
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getresponse.php
+ *
+ * @return Yaf_Response_Abstract
+ */
+ public function getResponse() {}
+
+ /**
+ * get the controller's module name
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getmodulename.php
+ *
+ * @return string
+ */
+ public function getModuleName() {}
+
+ /**
+ * retrieve view engine
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getview.php
+ *
+ * @return Yaf_View_Interface
+ */
+ public function getView() {}
+
+ public function getName() {}
+
+ /**
+ * @param array|null $options
+ *
+ * @return Yaf_Response_Abstract
+ * @deprecated not_implemented
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.initview.php
+ */
+ public function initView(?array $options = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.setviewpath.php
+ *
+ * @param string $view_directory
+ *
+ * @return bool
+ */
+ public function setViewpath($view_directory) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getviewpath.php
+ *
+ * @return string
+ */
+ public function getViewpath() {}
+
+ /**
+ * forward current execution process to other action.
+ *
+ * Note:
+ * this method doesn't switch to the destination action immediately, it will take place after current flow finish.
+ *
+ * Notice, there are 3 available method signatures:
+ * Yaf_Controller_Abstract::forward ( string $module , string $controller , string $action [, array $parameters ] )
+ * Yaf_Controller_Abstract::forward ( string $controller , string $action [, array $parameters ] )
+ * Yaf_Controller_Abstract::forward ( string $action [, array $parameters ] )
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.forward.php
+ *
+ * @param string $module destination module name, if NULL was given, then default module name is assumed
+ * @param string $controller destination controller name
+ * @param string $action destination action name
+ * @param array|null $parameters calling arguments
+ *
+ * @return bool return FALSE on failure
+ */
+ public function forward($module, $controller = null, $action = null, ?array $parameters = null) {}
+
+ /**
+ * redirect to a URL by sending a 302 header
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.redirect.php
+ *
+ * @param string $url a location URL
+ *
+ * @return bool
+ */
+ public function redirect($url) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getinvokeargs.php
+ *
+ * @return array
+ */
+ public function getInvokeArgs() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getinvokearg.php
+ * @param string $name
+ *
+ * @return mixed|null
+ */
+ public function getInvokeArg($name) {}
+
+ /**
+ * Yaf_Controller_Abstract::__construct() is final, which means users can not override it. but users can define Yaf_Controller_Abstract::init(), which will be called after controller object is instantiated.
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.init.php
+ */
+ public function init() {}
+
+ /**
+ * Yaf_Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see Yaf_Controller_Abstract::init() instead.
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ * @param Yaf_View_Interface $view
+ * @param array|null $args
+ * @see Yaf_Controller_Abstract::init()
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.construct.php
+ */
+ public function __construct($request, $response, $view, ?array $args = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.clone.php
+ */
+ private function __clone() {}
+}
+
+/**
+ * A action can be defined in a separate file in Yaf(see Yaf_Controller_Abstract). that is a action method can also be a Yaf_Action_Abstract class.
+ *
+ * Since there should be a entry point which can be called by Yaf (as of PHP 5.3, there is a new magic method __invoke, but Yaf is not only works with PHP 5.3+, Yaf choose another magic method execute), you must implement the abstract method Yaf_Action_Abstract::execute() in your custom action class.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-action-abstract.php
+ */
+abstract class Yaf_Action_Abstract extends Yaf_Controller_Abstract
+{
+ /**
+ * @var Yaf_Controller_Abstract
+ */
+ protected $_controller;
+
+ /**
+ * user should always define this method for a action, this is the entry point of an action. Yaf_Action_Abstract::execute() may have arguments.
+ *
+ * Note:
+ * The value retrieved from the request is not safe. you should do some filtering work before you use it.
+ * @link https://secure.php.net/manual/en/yaf-action-abstract.execute.php
+ *
+ * @param mixed ... unlimited number of arguments
+ * @return mixed
+ */
+ abstract public function execute();
+
+ /**
+ * retrieve current controller object.
+ *
+ * @link https://secure.php.net/manual/en/yaf-action-abstract.getcontroller.php
+ *
+ * @return Yaf_Controller_Abstract
+ */
+ public function getController() {}
+
+ public function getControllerName() {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-config-abstract.php
+ */
+abstract class Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable
+{
+ /**
+ * @var array
+ */
+ protected $_config = null;
+
+ /**
+ * @var bool
+ */
+ protected $_readonly = true;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.get.php
+ *
+ * @param string $name
+ * @return mixed
+ */
+ abstract public function get($name = null);
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.set.php
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return Yaf_Config_Abstract
+ */
+ abstract public function set($name, $value);
+
+ public function count() {}
+
+ public function rewind() {}
+
+ public function current() {}
+
+ public function key() {}
+
+ public function next() {}
+
+ public function valid() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.readonly.php
+ *
+ * @return bool
+ */
+ abstract public function readonly();
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.toarray.php
+ *
+ * @return array
+ */
+ abstract public function toArray();
+
+ public function offsetSet($name, $value) {}
+
+ public function offsetUnset($name) {}
+
+ public function offsetExists($name) {}
+
+ public function offsetGet($name = '') {}
+
+ public function __get($name = '') {}
+
+ public function __isset($name) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-request-abstract.php
+ */
+abstract class Yaf_Request_Abstract
+{
+ public const SCHEME_HTTP = 'http';
+ public const SCHEME_HTTPS = 'https';
+
+ /**
+ * @var string
+ */
+ public $module;
+
+ /**
+ * @var string
+ */
+ public $controller;
+
+ /**
+ * @var string
+ */
+ public $action;
+
+ /**
+ * @var string
+ */
+ public $method;
+
+ /**
+ * @var array
+ */
+ protected $params;
+
+ /**
+ * @var string
+ */
+ protected $language;
+
+ /**
+ * @var Yaf_Exception
+ */
+ protected $_exception;
+
+ /**
+ * @var string
+ */
+ protected $_base_uri = "";
+
+ /**
+ * @var string
+ */
+ protected $uri = "";
+
+ /**
+ * @var string
+ */
+ protected $dispatched = "";
+
+ /**
+ * @var string
+ */
+ protected $routed = "";
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isget.php
+ *
+ * @return bool
+ */
+ public function isGet() {}
+
+ public function isDelete() {}
+
+ public function isPatch() {}
+
+ public function getRaw() {}
+
+ public function clearParams() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.ispost.php
+ *
+ * @return bool
+ */
+ public function isPost() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isput.php
+ *
+ * @return bool
+ */
+ public function isPut() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.ishead.php
+ *
+ * @return bool
+ */
+ public function isHead() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isoptions.php
+ *
+ * @return bool
+ */
+ public function isOptions() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.iscli.php
+ *
+ * @return bool
+ */
+ public function isCli() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isdispached.php
+ *
+ * @return bool
+ */
+ final public function isDispatched() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isrouted.php
+ *
+ * @return bool
+ */
+ final public function isRouted() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isxmlhttprequest.php
+ *
+ * @return bool
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * Retrieve $_SERVER variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getserver.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getServer($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_ENV variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getenv.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getEnv($name = null, $default = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getparam.php
+ *
+ * @param string $name
+ * @param string $default
+ *
+ * @return mixed
+ */
+ public function getParam($name = '', $default = '') {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getparams.php
+ *
+ * @return array
+ */
+ public function getParams() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getexception.php
+ *
+ * @return Yaf_Exception
+ */
+ public function getException() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getmoudlename.php
+ *
+ * @return string
+ */
+ public function getModuleName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getcontrollername.php
+ *
+ * @return string
+ */
+ public function getControllerName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getactionname.php
+ *
+ * @return string
+ */
+ public function getActionName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setparam.php
+ *
+ * @param string|array $name the variable name, or an array of key=>value pairs
+ * @param string $value
+ *
+ * @return Yaf_Request_Abstract|bool
+ */
+ public function setParam($name, $value = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setmodulename.php
+ *
+ * @param string $module
+ * @param bool $format_name
+ *
+ * @return Yaf_Request_Abstract|bool
+ */
+ public function setModuleName($module, $format_name = true) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setcontrollername.php
+ *
+ * @param string $controller
+ * @param bool $format_name
+ *
+ * @return Yaf_Request_Abstract|bool
+ */
+ public function setControllerName($controller, $format_name = true) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setactionname.php
+ *
+ * @param string $action
+ * @param bool $format_name
+ *
+ * @return Yaf_Request_Abstract|bool
+ */
+ public function setActionName($action, $format_name = true) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getmethod.php
+ *
+ * @return string
+ */
+ public function getMethod() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getlanguage.php
+ *
+ * @return string
+ */
+ public function getLanguage() {}
+
+ /**
+ * Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leading part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.
+ *
+ * Note:
+ * generally, you don't need to set this, Yaf will determine it automatically.
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setbaseuri.php
+ *
+ * @param string $uri base URI
+ *
+ * @return bool
+ */
+ public function setBaseUri($uri) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getbaseuri.php
+ *
+ * @return string
+ */
+ public function getBaseUri() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getrequesturi.php
+ *
+ * @return string
+ */
+ public function getRequestUri() {}
+
+ /**
+ * @param string $uri request URI
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setrequesturi.php
+ *
+ * @since 2.1.0
+ */
+ public function setRequestUri($uri) {}
+
+ /**
+ * Set request as dispatched
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setdispatched.php
+ *
+ * @return bool
+ */
+ final public function setDispatched($dispatched = null) {}
+
+ /**
+ * Set request as routed
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setrouted.php
+ *
+ * @return Yaf_Request_Abstract|bool
+ */
+ final public function setRouted($flag = null) {}
+
+ public function get($name = null, $default = null) {}
+
+ public function getFiles($name = null, $default = null) {}
+
+ public function getCookie($name = null, $default = null) {}
+
+ public function getPost($name = null, $default = null) {}
+
+ public function getRequest($name = null, $default = null) {}
+
+ public function getQuery($name = null, $default = null) {}
+}
+
+/**
+ * Plugins allow for easy extensibility and customization of the framework.
+ *
+ * Plugins are classes. The actual class definition will vary based on the component -- you may need to implement this interface, but the fact remains that the plugin is itself a class.
+ *
+ * A plugin could be loaded into Yaf by using Yaf_Dispatcher::registerPlugin(), after registered, All the methods which the plugin implemented according to this interface, will be called at the proper time.
+ * @link https://secure.php.net/manual/en/class.yaf-plugin-abstract.php
+ */
+abstract class Yaf_Plugin_Abstract
+{
+ /**
+ * This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.routerstartup.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function routerStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * This hook will be trigged after the route process finished, this hook is usually used for login check.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.routershutdown.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function routerShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.dispatchloopstartup.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function dispatchLoopStartup(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.dispatchloopshutdown.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function dispatchLoopShutdown(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.predispatch.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function preDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.postdispatch.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function postDispatch(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.preresponse.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @param Yaf_Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function preResponse(Yaf_Request_Abstract $request, Yaf_Response_Abstract $response) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-response-abstract.php
+ */
+abstract class Yaf_Response_Abstract
+{
+ public const DEFAULT_BODY = "content";
+
+ /**
+ * @var string
+ */
+ protected $_header;
+
+ /**
+ * @var string
+ */
+ protected $_body;
+
+ /**
+ * @var bool
+ */
+ protected $_sendheader;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.tostring.php
+ */
+ public function __toString() {}
+
+ /**
+ * Send response
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.response.php
+ *
+ * @return void
+ */
+ public function response() {}
+
+ /**
+ * Set response header
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setheader.php
+ *
+ * @param string $name header name
+ * @param string $value header value
+ * @param bool $rep
+ *
+ * @return bool
+ */
+ public function setHeader($name, $value, $rep = false) {}
+
+ /**
+ * Set content to response
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setbody.php
+ *
+ * @param string $body content string
+ * @param string $name the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function setBody($body, $name = self::DEFAULT_BODY) {}
+
+ /**
+ * append a content to a exists content block
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.appendbody.php
+ *
+ * @param string $body content string
+ * @param string $name the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function appendBody($body, $name = self::DEFAULT_BODY) {}
+
+ /**
+ * prepend a content to a exists content block
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.prependbody.php
+ *
+ * @param string $body content string
+ * @param string $name the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function prependBody($body, $name = self::DEFAULT_BODY) {}
+
+ /**
+ * Clear existing content
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clearbody.php
+ *
+ * @param string $name the content key, you can set a content with a key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function clearBody($name = self::DEFAULT_BODY) {}
+
+ /**
+ * Retrieve an existing content
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.getbody.php
+ *
+ * @param string|null $name the content key, if you don't specific, then Yaf_Response_Abstract::DEFAULT_BODY will be used. if you pass in a NULL, then all contents will be returned as a array
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return mixed
+ */
+ public function getBody($name = self::DEFAULT_BODY) {}
+}
+
+/**
+ * Yaf provides a ability for developers to use custom view engine instead of build-in engine which is Yaf_View_Simple. There is a example to explain how to do this, please see Yaf_Dispatcher::setView()
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-view-interface.php
+ */
+interface Yaf_View_Interface
+{
+ /**
+ * Assign values to View engine, then the value can access directly by name in template.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.assign.php
+ *
+ * @param string|array $name
+ * @param string $value
+ * @return bool
+ */
+ public function assign($name, $value = '');
+
+ /**
+ * Render a template and output the result immediately.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.display.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ * @return bool
+ */
+ public function display($tpl, $tpl_vars = null);
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-interface.getscriptpath.php
+ *
+ * @return string
+ */
+ public function getScriptPath($request = null);
+
+ /**
+ * Render a template and return the result.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.render.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ * @return string
+ */
+ public function render($tpl, $tpl_vars = null);
+
+ /**
+ * Set the templates base directory, this is usually called by Yaf_Dispatcher
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.setscriptpath.php
+ *
+ * @param string $template_dir An absolute path to the template directory, by default, Yaf_Dispatcher use application.directory . "/views" as this parameter.
+ */
+ public function setScriptPath($template_dir);
+}
+
+/**
+ * Yaf_Route_Interface used for developer defined their custom route.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-interface.php
+ */
+interface Yaf_Route_Interface
+{
+ /**
+ * Yaf_Route_Interface::route() is the only method that a custom route should implement.
+ * if this method return TRUE, then the route process will be end. otherwise, Yaf_Router will call next route in the route stack to route request.
+ * This method would set the route result to the parameter request, by calling Yaf_Request_Abstract::setControllerName(), Yaf_Request_Abstract::setActionName() and Yaf_Request_Abstract::setModuleName().
+ * This method should also call Yaf_Request_Abstract::setRouted() to make the request routed at last.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-interface.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ * @return bool
+ */
+ public function route($request);
+
+ /**
+ * Yaf_Route_Interface::assemble() - assemble a request
+ * this method returns a url according to the argument info, and append query strings to the url according to the argument query.
+ * a route should implement this method according to its own route rules, and do a reverse progress.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-interface.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null);
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception.php
+ */
+class Yaf_Exception extends Exception
+{
+ protected $message;
+ protected $code;
+ protected $previous;
+}
+
+class Yaf_Response_Http extends Yaf_Response_Abstract
+{
+ /**
+ * @var int
+ */
+ protected $_response_code = 0;
+
+ private function __clone() {}
+
+ /**
+ * @return string
+ */
+ public function __toString() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setheader.php
+ *
+ * @param string $name
+ * @param string $value
+ * @param bool $rep
+ * @param int $response_code
+ *
+ * @return bool
+ */
+ public function setHeader($name, $value, $rep = false, $response_code = 0) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setallheaders.php
+ *
+ * @param array $headers
+ *
+ * @return bool
+ */
+ public function setAllHeaders($headers) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.getheader.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public function getHeader($name = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clearheaders.php
+ *
+ *
+ * @return Yaf_Response_Abstract|false
+ */
+ public function clearHeaders() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setredirect.php
+ *
+ * @param string $url
+ *
+ * @return bool
+ */
+ public function setRedirect($url) {}
+
+ /**
+ * send response
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.response.php
+ *
+ * @return bool
+ */
+ public function response() {}
+}
+
+class Yaf_Response_Cli extends Yaf_Response_Abstract
+{
+ private function __clone() {}
+
+ /**
+ * @return string
+ */
+ public function __toString() {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-request-http.php
+ */
+class Yaf_Request_Http extends Yaf_Request_Abstract
+{
+ /**
+ * Retrieve $_GET variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getquery.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getQuery($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_REQUEST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getrequest.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getRequest($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_POST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getpost.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getPost($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_COOKIE variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getcookie.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getCookie($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_FILES variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getfiles.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getFiles($name = null, $default = null) {}
+
+ /**
+ * Retrieve variable from client, this method will search the name in $_REQUEST params, if the name is not found, then will search in $_POST, $_GET, $_COOKIE, $_SERVER
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.get.php
+ *
+ * @param string $name the variable name
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function get($name, $default = null) {}
+
+ /**
+ * Check the request whether it is a Ajax Request
+ *
+ *
+ * Note:
+ *
+ * This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.isxmlhttprequest.php
+ *
+ * @return bool
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-http.construct.php
+ *
+ * @param string $request_uri
+ * @param string $base_uri
+ */
+ public function __construct($request_uri = '', $base_uri = '') {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-http.clone.php
+ */
+ private function __clone() {}
+}
+
+/**
+ * Yaf_Request_Simple is particularly used for test purpose. ie. simulate a spacial request under CLI mode.
+ * @link https://secure.php.net/manual/en/class.yaf-request-simple.php
+ */
+class Yaf_Request_Simple extends Yaf_Request_Abstract
+{
+ /**
+ * Retrieve $_GET variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getquery.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getQuery($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_REQUEST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getrequest.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getRequest($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_POST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getpost.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getPost($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_Cookie variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getcookie.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getCookie($name = null, $default = null) {}
+
+ /**
+ * @param mixed $name
+ * @param null $default
+ *
+ * @return array
+ */
+ public function getFiles($name = null, $default = null) {}
+
+ /**
+ * Retrieve variable from client, this method will search the name in $_REQUEST params, if the name is not found, then will search in $_POST, $_GET, $_COOKIE, $_SERVER
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.get.php
+ *
+ * @param string $name the variable name
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function get($name, $default = null) {}
+
+ /**
+ * Check the request whether it is a Ajax Request
+ *
+ *
+ * Note:
+ *
+ * This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.isxmlhttprequest.php
+ *
+ * @return bool
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-simple.construct.php
+ *
+ * @param string $method
+ * @param string $module
+ * @param string $controller
+ * @param string $action
+ * @param array $params
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($method = '', $module = '', $controller = '', $action = '', $params = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-simple.clone.php
+ */
+ private function __clone() {}
+}
+
+/**
+ * Yaf_Config_Ini enables developers to store configuration data in a familiar INI format and read them in the application by using nested object property syntax. The INI format is specialized to provide both the ability to have a hierarchy of configuration data keys and inheritance between configuration data sections. Configuration data hierarchies are supported by separating the keys with the dot or period character ("."). A section may extend or inherit from another section by following the section name with a colon character (":") and the name of the section from which data are to be inherited.
+ * Note:
+ * Yaf_Config_Ini utilizes the » parse_ini_file() PHP function. Please review this documentation to be aware of its specific behaviors, which propagate to Yaf_Config_Ini, such as how the special values of "TRUE", "FALSE", "yes", "no", and "NULL" are handled.
+ * @link https://secure.php.net/manual/en/class.yaf-config-ini.php
+ */
+class Yaf_Config_Ini extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable
+{
+ /**
+ * @see Yaf_Config_Abstract::get
+ */
+ public function __get($name = null) {}
+
+ /**
+ * @see Yaf_Config_Abstract::set
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see Yaf_Config_Abstract::get
+ */
+ public function get($name = null) {}
+
+ /**
+ * @see Yaf_Config_Abstract::set
+ * @deprecated not_implemented
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @see Yaf_Config_Abstract::toArray
+ */
+ public function toArray() {}
+
+ /**
+ * @see Yaf_Config_Abstract::readonly
+ */
+ public function readonly() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-ini.construct.php
+ *
+ * @param string $config_file path to an INI configure file
+ * @param string $section which section in that INI file you want to be parsed
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($config_file, $section = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-ini.isset.php
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @see ArrayAccess::offsetUnset
+ * @deprecated not_implemented
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @see ArrayAccess::offsetGet
+ */
+ public function offsetGet($name = '') {}
+
+ /**
+ * @see ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @see ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-config-simple.php
+ */
+class Yaf_Config_Simple extends Yaf_Config_Abstract implements Iterator, ArrayAccess, Countable
+{
+ /**
+ * @see Yaf_Config_Abstract::get
+ */
+ public function __get($name = null) {}
+
+ /**
+ * @see Yaf_Config_Abstract::set
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see Yaf_Config_Abstract::get
+ */
+ public function get($name = null) {}
+
+ /**
+ * @see Yaf_Config_Abstract::set
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @see Yaf_Config_Abstract::toArray
+ */
+ public function toArray() {}
+
+ /**
+ * @see Yaf_Config_Abstract::readonly
+ */
+ public function readonly() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-simple.construct.php
+ *
+ * @param array $config
+ * @param bool $readonly
+ */
+ public function __construct($config, $readonly = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-simple.isset.php
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @see ArrayAccess::offsetUnset
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @see ArrayAccess::offsetGet
+ */
+ public function offsetGet($name) {}
+
+ /**
+ * @see ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @see ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+}
+
+/**
+ * Yaf_View_Simple is the built-in template engine in Yaf, it is a simple but fast template engine, and only support PHP script template.
+ * @link https://secure.php.net/manual/en/class.yaf-view-simple.php
+ */
+class Yaf_View_Simple implements Yaf_View_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_tpl_dir;
+
+ /**
+ * @var array
+ */
+ protected $_tpl_vars;
+
+ /**
+ * @var array
+ */
+ protected $_options;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.construct.php
+ *
+ * @param string $template_dir The base directory of the templates, by default, it is APPLICATION . "/views" for Yaf.
+ * @param array|null $options Options for the engine, as of Yaf 2.1.13, you can use short tag
+ * "=$var?>" in your template(regardless of "short_open_tag"),
+ * so comes a option named "short_tag", you can switch this off
+ * to prevent use short_tag in template.
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ final public function __construct($template_dir, ?array $options = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.isset.php
+ *
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * assign variable to view engine
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.assign.php
+ *
+ * @param string|array $name A string or an array.
if is string, then the next argument $value is required.
+ * @param mixed $value mixed value
+ * @return Yaf_View_Simple
+ */
+ public function assign($name, $value = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.render.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ *
+ * @throws Yaf_Exception_LoadFailed_View
+ *
+ * @return string|void
+ */
+ public function render($tpl, $tpl_vars = null) {}
+
+ /**
+ * Render a template and display the result instantly.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.display.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ *
+ * @throws Yaf_Exception_LoadFailed_View
+ *
+ * @return bool
+ */
+ public function display($tpl, $tpl_vars = null) {}
+
+ /**
+ * unlike Yaf_View_Simple::assign(), this method assign a ref value to engine.
+ * @link https://secure.php.net/manual/en/yaf-view-simple.assignref.php
+ *
+ * @param string $name A string name which will be used to access the value in the template.
+ * @param mixed &$value mixed value
+ *
+ * @return Yaf_View_Simple
+ */
+ public function assignRef($name, &$value) {}
+
+ /**
+ * clear assigned variable
+ * @link https://secure.php.net/manual/en/yaf-view-simple.clear.php
+ *
+ * @param string $name assigned variable name.
if empty, will clear all assigned variables.
+ *
+ * @return Yaf_View_Simple
+ */
+ public function clear($name = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.setscriptpath.php
+ *
+ * @param string $template_dir
+ *
+ * @return Yaf_View_Simple
+ */
+ public function setScriptPath($template_dir) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.getscriptpath.php
+ *
+ * @return string
+ */
+ public function getScriptPath($request = null) {}
+
+ /**
+ * Retrieve assigned variable
+ *
+ * Note:
+ * $name parameter can be empty since 2.1.11
+ * @link https://secure.php.net/manual/en/yaf-view-simple.get.php
+ *
+ * @param string $name the assigned variable name
+ *
+ * if this is empty, all assigned variables will be returned
+ *
+ * @return mixed
+ */
+ public function __get($name = null) {}
+
+ /**
+ * This is a alternative and easier way to Yaf_View_Simple::assign().
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.set.php
+ *
+ * @param string $name A string value name.
+ * @param mixed $value mixed value
+ */
+ public function __set($name, $value = null) {}
+
+ /**
+ * Render a string template and return the result.
+ * @link https://secure.php.net/manual/en/yaf-view-simple.eval.php
+ * @param string $tpl_str string template
+ * @param array $vars
+ * @return void|false return FALSE on failure
+ */
+ public function eval($tpl_str, $vars = null) {}
+
+ public function get($name = '') {}
+}
+
+/**
+ * by default, Yaf_Router only have a Yaf_Route_Static as its default route.
+ *
+ * Yaf_Route_Static is designed to handle 80% of normal requirements.
+ *
+ * Note:
+ * it is unnecessary to instance a Yaf_Route_Static, also unnecessary to add it into Yaf_Router's routes stack, since there is always be one in Yaf_Router's routes stack, and always be called at the last time.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-static.php
+ */
+class Yaf_Route_Static implements Yaf_Route_Interface
+{
+ /**
+ * @param string $uri
+ *
+ * @return bool
+ * @deprecated not_implemented
+ * @link https://secure.php.net/manual/en/yaf-route-static.match.php
+ */
+ public function match($uri) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-static.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool always TRUE
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Static::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-static.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+}
+
+/**
+ * Yaf_Route_Simple will match the query string, and find the route info.
+ *
+ * all you need to do is tell Yaf_Route_Simple what key in the $_GET is module, what key is controller, and what key is action.
+ *
+ * Yaf_Route_Simple::route() will always return TRUE, so it is important put Yaf_Route_Simple in the front of the Route stack, otherwise all the other routes will not be called
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-simple.php
+ */
+final class Yaf_Route_Simple implements Yaf_Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $controller;
+
+ /**
+ * @var string
+ */
+ protected $module;
+
+ /**
+ * @var string
+ */
+ protected $action;
+
+ /**
+ * Yaf_Route_Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.construct.php
+ *
+ * @param string $module_name
+ * @param string $controller_name
+ * @param string $action_name
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($module_name, $controller_name, $action_name) {}
+
+ /**
+ * see Yaf_Route_Simple::__construct()
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool always TRUE
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Simple::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-route-supervar.php
+ */
+final class Yaf_Route_Supervar implements Yaf_Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_var_name;
+
+ /**
+ * Yaf_Route_Supervar is similar to Yaf_Route_Static, the difference is that Yaf_Route_Supervar will look for path info in query string, and the parameter supervar_name is the key.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.construct.php
+ *
+ * @param string $supervar_name The name of key.
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($supervar_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool If there is a key(which was defined in Yaf_Route_Supervar::__construct()) in $_GET, return TRUE. otherwise return FALSE.
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Supervar::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+}
+
+/**
+ * For usage, please see the example section of Yaf_Route_Rewrite::__construct()
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-rewrite.php
+ */
+final class Yaf_Route_Rewrite extends Yaf_Router implements Yaf_Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_route;
+
+ /**
+ * @var array
+ */
+ protected $_default;
+
+ /**
+ * @var array
+ */
+ protected $_verify;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.construct.php
+ *
+ * @param string $match A pattern, will be used to match a request uri, if doesn't matched, Yaf_Route_Rewrite will return FALSE.
+ * @param array $route When the match pattern matches the request uri, Yaf_Route_Rewrite will use this to decide which m/c/a to routed.
+ *
+ * either of m/c/a in this array is optional, if you don't assign a specific value, it will be routed to default.
+ * @param array $verify
+ * @param string $reverse
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($match, array $route, array $verify = null, $reverse = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Rewrite::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+
+ public function match($uri) {}
+}
+
+/**
+ * Yaf_Route_Regex is the most flexible route among the Yaf built-in routes.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-regex.php
+ */
+final class Yaf_Route_Regex extends Yaf_Router implements Yaf_Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_route;
+
+ /**
+ * @var array
+ */
+ protected $_default;
+
+ /**
+ * @var array
+ */
+ protected $_maps;
+
+ /**
+ * @var array
+ */
+ protected $_verify;
+
+ /**
+ * @var string
+ */
+ protected $_reverse;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-regex.construct.php
+ *
+ * @param string $match A complete Regex pattern, will be used to match a request uri, if doesn't matched, Yaf_Route_Regex will return FALSE.
+ * @param array $route When the match pattern matches the request uri, Yaf_Route_Regex will use this to decide which m/c/a to routed.
+ *
+ * either of m/c/a in this array is optional, if you don't assign a specific value, it will be routed to default.
+ * @param array|null $map A array to assign name to the captures in the match result.
+ * @param array|null $verify
+ * @param string $reverse
+ *
+ * @throws Yaf_Exception_TypeError
+ */
+ public function __construct($match, array $route, ?array $map = null, ?array $verify = null, $reverse = null) {}
+
+ /**
+ * Route a incoming request.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-regex.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool If the pattern given by the first parameter of Yaf_Route_Regex::_construct() matches the request uri, return TRUE, otherwise return FALSE.
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Regex::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-regex.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+
+ public function match($uri) {}
+}
+
+/**
+ * Yaf_Route_Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see Yaf_Request_Abstract::setBaseUri()) to a controller name or action name(depends on the parameter passed to Yaf_Route_Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.
+ *
+ * If the second parameter of Yaf_Route_Map::__construct() is specified, then only the part before delimiter of URI will used to routing, the part after it is used to routing request parameters (see the example section of Yaf_Route_Map::__construct()).
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-map.php
+ */
+final class Yaf_Route_Map implements Yaf_Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_ctl_router = '';
+
+ /**
+ * @var string
+ */
+ protected $_delimiter;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-map.construct.php
+ *
+ * @param bool $controller_prefer Whether the result should considering as controller or action
+ * @param string $delimiter
+ */
+ public function __construct($controller_prefer = false, $delimiter = '') {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-map.route.php
+ *
+ * @param Yaf_Request_Abstract $request
+ *
+ * @return bool
+ */
+ public function route($request) {}
+
+ /**
+ * Yaf_Route_Map::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-map.assemble.php
+ *
+ * @param array $info
+ * @param array|null $query
+ * @return bool
+ */
+ public function assemble(array $info, ?array $query = null) {}
+}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-typeerror.php
+ */
+class Yaf_Exception_TypeError extends Yaf_Exception {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-startuperror.php
+ */
+class Yaf_Exception_StartupError extends Yaf_Exception {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-routefaild.php
+ */
+class Yaf_Exception_RouterFailed extends Yaf_Exception {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-dispatchfaild.php
+ */
+class Yaf_Exception_DispatchFailed extends Yaf_Exception {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild.php
+ */
+class Yaf_Exception_LoadFailed extends Yaf_Exception {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-module.php
+ */
+class Yaf_Exception_LoadFailed_Module extends Yaf_Exception_LoadFailed {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-controller.php
+ */
+class Yaf_Exception_LoadFailed_Controller extends Yaf_Exception_LoadFailed {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-action.php
+ */
+class Yaf_Exception_LoadFailed_Action extends Yaf_Exception_LoadFailed {}
+
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-view.php
+ */
+class Yaf_Exception_LoadFailed_View extends Yaf_Exception_LoadFailed {}
diff --git a/phpstorm-stubs/yaf/yaf_namespace.php b/phpstorm-stubs/yaf/yaf_namespace.php
new file mode 100644
index 0000000..c28dda6
--- /dev/null
+++ b/phpstorm-stubs/yaf/yaf_namespace.php
@@ -0,0 +1,2882 @@
+
+ * Note:
+ *
+ * \Yaf\Application implements the singleton pattern, and \Yaf\Application can not be serialized or un-serialized which will cause problem when you try to use PHPUnit to write some test case for Yaf.
+ * You may use @backupGlobals annotation of PHPUnit to control the backup and restore operations for global variables. thus can solve this problem.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-application.php
+ */
+final class Application
+{
+ /**
+ * @var \Yaf\Application
+ */
+ protected static $_app;
+
+ /**
+ * @var \Yaf\Config_Abstract
+ */
+ protected $config;
+
+ /**
+ * @var \Yaf\Dispatcher
+ */
+ protected $dispatcher;
+
+ /**
+ * @var array
+ */
+ protected $_modules;
+
+ /**
+ * @var string
+ */
+ protected $_running = "";
+
+ /**
+ * @var string
+ */
+ protected $_environ = YAF_ENVIRON;
+
+ /**
+ * @since 2.1.2
+ * @var int
+ */
+ protected $_err_no = 0;
+
+ /**
+ * @since 2.1.2
+ * @var string
+ */
+ protected $_err_msg = "";
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.construct.php
+ *
+ * @param string|array $config A ini config file path, or a config array
+ *
+ * If is a ini config file, there should be a section named as the one defined by yaf.environ, which is "product" by default.
+ *
+ *
+ * Note:
+ * If you use a ini configuration file as your application's config container. you would open the yaf.cache_config to improve performance.
+ * And the config entry(and there default value) list blow:
+ *
+ *
+ * Example #1 A ini config file example
+ * [product]
+ * ;this one should always be defined, and have no default value
+ * application.directory=APPLICATION_PATH
+ *
+ *
+ * ;following configs have default value, you may no need to define them
+ *
+ * application.library = APPLICATION_PATH . "/library"
+ * application.dispatcher.throwException=1
+ * application.dispatcher.catchException=1
+ *
+ * application.baseUri=""
+ *
+ * ;the php script ext name
+ * ap.ext=php
+ *
+ *
+ * ;the view template ext name
+ * ap.view.ext=phtml
+ *
+ *
+ * ap.dispatcher.defaultModule=Index
+ * ap.dispatcher.defaultController=Index
+ * ap.dispatcher.defaultAction=index
+ *
+ *
+ * ;defined modules
+ * ap.modules=Index
+ *
+ * @param string $envrion Which section will be loaded as the final config
+ *
+ * @throws \Yaf\Exception\TypeError|\Yaf\Exception\StartupError
+ */
+ public function __construct($config, $envrion = null) {}
+
+ /**
+ * Run a \Yaf\Application, let the \Yaf\Application accept a request, and route the request, dispatch to controller/action, and render response.
+ * return response to client finally.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.run.php
+ * @throws \Yaf\Exception\StartupError
+ */
+ public function run() {}
+
+ /**
+ * This method is typically used to run \Yaf\Application in a crontab work.
+ * Make the crontab work can also use the autoloader and Bootstrap mechanism.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.execute.php
+ *
+ * @param callable $entry a valid callback
+ * @param string ...$_ parameters will pass to the callback
+ */
+ public function execute(callable $entry, ...$_) {}
+
+ /**
+ * Retrieve the \Yaf\Application instance, alternatively, we also could use \Yaf\Dispatcher::getApplication().
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.app.php
+ *
+ * @return \Yaf\Application|null an \Yaf\Application instance, if no \Yaf\Application initialized before, NULL will be returned.
+ */
+ public static function app() {}
+
+ /**
+ * Retrieve environ which was defined in yaf.environ which has a default value "product".
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.environ.php
+ *
+ * @return string
+ */
+ public function environ() {}
+
+ /**
+ * Run a Bootstrap, all the methods defined in the Bootstrap and named with prefix "_init" will be called according to their declaration order, if the parameter bootstrap is not supplied, Yaf will look for a Bootstrap under application.directory.
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.bootstrap.php
+ *
+ * @param \Yaf\Bootstrap_Abstract $bootstrap A \Yaf\Bootstrap_Abstract instance
+ * @return \Yaf\Application
+ */
+ public function bootstrap(Bootstrap_Abstract $bootstrap = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.getconfig.php
+ *
+ * @return \Yaf\Config_Abstract
+ */
+ public function getConfig() {}
+
+ /**
+ * Get the modules list defined in config, if no one defined, there will always be a module named "Index".
+ *
+ * @link https://secure.php.net/manual/en/yaf-application.getmodules.php
+ *
+ * @return array
+ */
+ public function getModules() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.getdispatcher.php
+ *
+ * @return \Yaf\Dispatcher
+ */
+ public function getDispatcher() {}
+
+ /**
+ * Change the application directory
+ *
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-application.setappdirectory.php
+ *
+ * @param string $directory
+ * @return \Yaf\Application
+ */
+ public function setAppDirectory($directory) {}
+
+ /**
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-application.getappdirectory.php
+ *
+ * @return string
+ */
+ public function getAppDirectory() {}
+
+ /**
+ * @since 2.1.2
+ * @link https://secure.php.net/manual/en/yaf-application.getlasterrorno.php
+ *
+ * @return int
+ */
+ public function getLastErrorNo() {}
+
+ /**
+ * @since 2.1.2
+ * @link https://secure.php.net/manual/en/yaf-application.getlasterrormsg.php
+ *
+ * @return string
+ */
+ public function getLastErrorMsg() {}
+
+ /**
+ * @since 2.1.2
+ * @link https://secure.php.net/manual/en/yaf-application.clearlasterror.php
+ */
+ public function clearLastError() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-application.wakeup.php
+ */
+ private function __wakeup() {}
+}/**
+ * \Yaf\Dispatcher purpose is to initialize the request environment, route the incoming request, and then dispatch any discovered actions; it aggregates any responses and returns them when the process is complete.
+ * \Yaf\Dispatcher also implements the Singleton pattern, meaning only a single instance of it may be available at any given time. This allows it to also act as a registry on which the other objects in the dispatch process may draw.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-dispatcher.php
+ */
+final class Dispatcher
+{
+ /**
+ * @var \Yaf\Dispatcher
+ */
+ protected static $_instance;
+
+ /**
+ * @var \Yaf\Router
+ */
+ protected $_router;
+
+ /**
+ * @var \Yaf\View_Interface
+ */
+ protected $_view;
+
+ /**
+ * @var \Yaf\Request_Abstract
+ */
+ protected $_request;
+
+ /**
+ * @var \Yaf\Plugin_Abstract
+ */
+ protected $_plugins;
+
+ /**
+ * @var bool
+ */
+ protected $_auto_render = true;
+
+ /**
+ * @var string
+ */
+ protected $_return_response = "";
+
+ /**
+ * @var string
+ */
+ protected $_instantly_flush = "";
+
+ /**
+ * @var string
+ */
+ protected $_default_module;
+
+ /**
+ * @var string
+ */
+ protected $_default_controller;
+
+ /**
+ * @var string
+ */
+ protected $_default_action;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * enable view rendering
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.enableview.php
+ *
+ * @return \Yaf\Dispatcher
+ */
+ public function enableView() {}
+
+ /**
+ * disable view engine, used in some app that user will output by himself
+ * Note:
+ * you can simply return FALSE in a action to prevent the auto-rendering of that action
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.disableview.php
+ *
+ * @return bool
+ */
+ public function disableView() {}
+
+ /**
+ * Initialize view and return it
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.initview.php
+ *
+ * @param string $templates_dir
+ * @param array $options
+ * @return \Yaf\View_Interface
+ */
+ public function initView($templates_dir, array $options = null) {}
+
+ /**
+ * This method provides a solution for that if you want use a custom view engine instead of \Yaf\View\Simple
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setview.php
+ *
+ * @param \Yaf\View_Interface $view A \Yaf\View_Interface instance
+ * @return \Yaf\Dispatcher
+ */
+ public function setView(View_Interface $view) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setrequest.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @return \Yaf\Dispatcher
+ */
+ public function setRequest(Request_Abstract $request) {}
+
+ /**
+ * Retrieve the \Yaf\Application instance. same as \Yaf\Application::app().
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getapplication.php
+ * @return \Yaf\Application
+ */
+ public function getApplication() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getrouter.php
+ *
+ * @return \Yaf\Router
+ */
+ public function getRouter() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getrequest.php
+ *
+ * @return \Yaf\Request_Abstract
+ */
+ public function getRequest() {}
+
+ /**
+ * Set error handler for Yaf. when application.dispatcher.throwException is off, Yaf will trigger catch-able error while unexpected errors occurred.
+ * Thus, this error handler will be called while the error raise.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.seterrorhandler.php
+ *
+ * @param callable $callback a callable callback
+ * @param int $error_types YAF_ERR_* constants mask
+ *
+ * @return \Yaf\Dispatcher
+ */
+ public function setErrorHandler(callable $callback, $error_types) {}
+
+ /**
+ * Change default module name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultmodule.php
+ *
+ * @param string $module
+ * @return \Yaf\Dispatcher
+ */
+ public function setDefaultModule($module) {}
+
+ /**
+ * Change default controller name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultcontroller.php
+ *
+ * @param string $controller
+ * @return \Yaf\Dispatcher
+ */
+ public function setDefaultController($controller) {}
+
+ /**
+ * Change default action name
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.setdefaultaction.php
+ *
+ * @param string $action
+ * @return \Yaf\Dispatcher
+ */
+ public function setDefaultAction($action) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.returnresponse.php
+ *
+ * @param bool $flag
+ * @return \Yaf\Dispatcher
+ */
+ public function returnResponse($flag) {}
+
+ /**
+ * \Yaf\Dispatcher will render automatically after dispatches an incoming request, you can prevent the rendering by calling this method with $flag TRUE
+ * Note:
+ * you can simply return FALSE in a action to prevent the auto-rendering of that action
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.autorender.php
+ *
+ * @param bool $flag since 2.2.0, if this parameter is not given, then the current state will be set
+ * @return \Yaf\Dispatcher
+ */
+ public function autoRender($flag = null) {}
+
+ /**
+ * Switch on/off the instant flushing
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.flushinstantly.php
+ *
+ * @param bool $flag since 2.2.0, if this parameter is not given, then the current state will be set
+ * @return \Yaf\Dispatcher
+ */
+ public function flushInstantly($flag = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.getinstance.php
+ *
+ * @return \Yaf\Dispatcher
+ */
+ public static function getInstance() {}
+
+ /**
+ * This method does the heavy work of the \Yaf\Dispatcher. It take a request object.
+ * The dispatch process has three distinct events:
+ *
+ * - Routing
+ * - Dispatching
+ * - Response
+ *
+ * Routing takes place exactly once, using the values in the request object when dispatch() is called. Dispatching takes place in a loop; a request may either indicate multiple actions to dispatch, or the controller or a plugin may reset the request object to force additional actions to dispatch(see \Yaf\Plugin_Abstract. When all is done, the \Yaf\Dispatcher returns a response.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.dispatch.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @throws \Yaf\Exception\TypeError
+ * @throws \Yaf\Exception\RouterFailed
+ * @throws \Yaf\Exception\DispatchFailed
+ * @throws \Yaf\Exception\LoadFailed
+ * @throws \Yaf\Exception\LoadFailed\Action
+ * @throws \Yaf\Exception\LoadFailed\Controller
+ *
+ * @return \Yaf\Response_Abstract
+ */
+ public function dispatch(Request_Abstract $request) {}
+
+ /**
+ * Switch on/off exception throwing while unexpected error occurring. When this is on, Yaf will throwing exceptions instead of triggering catchable errors.
+ * You can also use application.dispatcher.throwException to achieve the same purpose.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.throwexception.php
+ *
+ * @param bool $flag
+ * @return \Yaf\Dispatcher
+ */
+ public function throwException($flag = null) {}
+
+ /**
+ * While the application.dispatcher.throwException is On(you can also calling to \Yaf\Dispatcher::throwException(TRUE) to enable it), Yaf will throw \Exception whe error occurs instead of trigger error.
+ * then if you enable \Yaf\Dispatcher::catchException()(also can enabled by set application.dispatcher.catchException), all uncaught \Exceptions will be caught by ErrorController::error if you have defined one.
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.catchexception.php
+ *
+ * @param bool $flag
+ * @return \Yaf\Dispatcher
+ */
+ public function catchException($flag = null) {}
+
+ /**
+ * Register a plugin(see \Yaf\Plugin_Abstract). Generally, we register plugins in Bootstrap(see \Yaf\Bootstrap_Abstract).
+ *
+ * @link https://secure.php.net/manual/en/yaf-dispatcher.registerplugin.php
+ *
+ * @param \Yaf\Plugin_Abstract $plugin
+ * @return \Yaf\Dispatcher
+ */
+ public function registerPlugin(Plugin_Abstract $plugin) {}
+}/**
+ * \Yaf\Loader introduces a comprehensive autoloading solution for Yaf.
+ *
+ * The first time an instance of \Yaf\Application is retrieved, \Yaf\Loader will instance a singleton, and registers itself with spl_autoload. You retrieve an instance using the \Yaf\Loader::getInstance()
+ *
+ * \Yaf\Loader attempt to load a class only one shot, if failed, depend on yaf.use_spl_autoload, if this config is On \Yaf\Loader::autoload() will return FALSE, thus give the chance to other autoload function. if it is Off (by default), \Yaf\Loader::autoload() will return TRUE, and more important is that a very useful warning will be triggered (very useful to find out why a class could not be loaded).
+ *
+ * Note:
+ * Please keep yaf.use_spl_autoload Off unless there is some library have their own autoload mechanism and impossible to rewrite it.
+ *
+ * If you want \Yaf\Loader search some classes(libraries) in the local class directory(which is defined in application.ini, and by default, it is application.directory . "/library"), you should register the class prefix using the \Yaf\Loader::registerLocalNameSpace()
+ * @link https://secure.php.net/manual/en/class.yaf-loader.php
+ */
+class Loader
+{
+ /**
+ * @var string
+ */
+ protected $_local_ns;
+
+ /**
+ * By default, this value is application.directory . "/library", you can change this either in the application.ini(application.library) or call to \Yaf\Loader::setLibraryPath()
+ * @var string
+ */
+ protected $_library;
+
+ /**
+ * @var string
+ */
+ protected $_global_library;
+
+ /**
+ * @var \Yaf\Loader
+ */
+ protected static $_instance;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.autoload.php
+ *
+ * @param string $class_name
+ *
+ * @return bool
+ */
+ public function autoload($class_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.getinstance.php
+ *
+ * @param string $local_library_path
+ * @param string $global_library_path
+ *
+ * @return \Yaf\Loader
+ */
+ public static function getInstance($local_library_path = null, $global_library_path = null) {}
+
+ /**
+ * Register local class prefix name, \Yaf\Loader search classes in two library directories, the one is configured via application.library.directory(in application.ini) which is called local library directory; the other is configured via yaf.library (in php.ini) which is called global library directory, since it can be shared by many applications in the same server.
+ *
+ * When an autoloading is triggered, \Yaf\Loader will determine which library directory should be searched in by examining the prefix name of the missed classname. If the prefix name is registered as a local namespace then look for it in local library directory, otherwise look for it in global library directory.
+ *
+ * Note:
+ * If yaf.library is not configured, then the global library directory is assumed to be the local library directory. in that case, all autoloading will look for local library directory. But if you want your Yaf application be strong, then always register your own classes as local classes.
+ * @link https://secure.php.net/manual/en/yaf-loader.registerlocalnamespace.php
+ *
+ * @param string|string[] $name_prefix a string or a array of class name prefix. all class prefix with these prefix will be loaded in local library path.
+ *
+ * @return bool
+ */
+ public function registerLocalNamespace($name_prefix) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.getlocalnamespace.php
+ *
+ * @return string
+ */
+ public function getLocalNamespace() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.clearlocalnamespace.php
+ */
+ public function clearLocalNamespace() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.islocalname.php
+ *
+ * @param string $class_name
+ *
+ * @return bool
+ */
+ public function isLocalName($class_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-loader.import.php
+ *
+ * @param string $file
+ *
+ * @return bool
+ */
+ public static function import($file) {}
+
+ /**
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-loader.setlibrarypath.php
+ *
+ * @param string $directory
+ * @param bool $global
+ *
+ * @return \Yaf\Loader
+ */
+ public function setLibraryPath($directory, $global = false) {}
+
+ /**
+ * @since 2.1.4
+ * @link https://secure.php.net/manual/en/yaf-loader.getlibrarypath.php
+ *
+ * @param bool $is_global
+ *
+ * @return string
+ */
+ public function getLibraryPath($is_global = false) {}
+}/**
+ * All methods of \Yaf\Registry declared as static, making it universally accessible. This provides the ability to get or set any custom data from anyway in your code as necessary.
+ * @link https://secure.php.net/manual/en/class.yaf-registry.php
+ */
+final class Registry
+{
+ /**
+ * @var \Yaf\Registry
+ */
+ protected static $_instance;
+
+ /**
+ * @var array
+ */
+ protected $_entries;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * Retrieve an item from registry
+ *
+ * @link https://secure.php.net/manual/en/yaf-registry.get.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public static function get($name) {}
+
+ /**
+ * Check whether an item exists
+ *
+ * @link https://secure.php.net/manual/en/yaf-registry.has.php
+ *
+ * @param string $name
+ *
+ * @return bool
+ */
+ public static function has($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.set.php
+ *
+ * @param string $name
+ * @param mixed $value
+ *
+ * @return bool
+ */
+ public static function set($name, $value) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-registry.del.php
+ *
+ * @param string $name
+ *
+ * @return void|bool
+ */
+ public static function del($name) {}
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-session.php
+ * @version 2.2.9
+ */
+final class Session implements \Iterator, \Traversable, \ArrayAccess, \Countable
+{
+ /**
+ * @var \Yaf\Session
+ */
+ protected static $_instance;
+
+ /**
+ * @var array
+ */
+ protected $_session;
+
+ /**
+ * @var bool
+ */
+ protected $_started = true;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.construct.php
+ */
+ private function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.sleep.php
+ */
+ private function __sleep() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.wakeup.php
+ */
+ private function __wakeup() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.getinstance.php
+ *
+ * @return \Yaf\Session
+ */
+ public static function getInstance() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.start.php
+ *
+ * @return \Yaf\Session
+ */
+ public function start() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.get.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public function get($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.has.php
+ *
+ * @param string $name
+ *
+ * @return bool
+ */
+ public function has($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.set.php
+ *
+ * @param string $name
+ * @param mixed $value
+ *
+ * @return \Yaf\Session|false return FALSE on failure
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-session.del.php
+ *
+ * @param string $name
+ *
+ * @return \Yaf\Session|false return FALSE on failure
+ */
+ public function del($name) {}
+
+ /**
+ * @see \Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see \Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see \Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see \Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see \Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see \Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @see \ArrayAccess::offsetUnset
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetGet
+ */
+ public function offsetGet($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+
+ /**
+ * @see \Yaf\Session::get()
+ */
+ public function __get($name) {}
+
+ /**
+ * @see \Yaf\Session::has()
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see \Yaf\Session::set()
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see \Yaf\Session::del()
+ */
+ public function __unset($name) {}
+}/**
+ * \Yaf\Router is the standard framework router. Routing is the process of taking a URI endpoint (that part of the URI which comes after the base URI: see \Yaf\Request_Abstract::setBaseUri()) and decomposing it into parameters to determine which module, controller, and action of that controller should receive the request. This values of the module, controller, action and other parameters are packaged into a \Yaf\Request_Abstract object which is then processed by \Yaf\Dispatcher. Routing occurs only once: when the request is initially received and before the first controller is dispatched. \Yaf\Router is designed to allow for mod_rewrite-like functionality using pure PHP structures. It is very loosely based on Ruby on Rails routing and does not require any prior knowledge of webserver URL rewriting
+ *
+ * Default Route
+ *
+ * \Yaf\Router comes pre-configured with a default route \Yaf\Route_Static, which will match URIs in the shape of controller/action. Additionally, a module name may be specified as the first path element, allowing URIs of the form module/controller/action. Finally, it will also match any additional parameters appended to the URI by default - controller/action/var1/value1/var2/value2.
+ *
+ * Note:
+ * Module name must be defined in config, considering application.module="Index,Foo,Bar", in this case, only index, foo and bar can be considered as a module name. if doesn't config, there is only one module named "Index".
+ *
+ * ** See examples by opening the external documentation
+ * @link https://secure.php.net/manual/en/class.yaf-router.php
+ */
+class Router
+{
+ /**
+ * @var \Yaf\Route_Interface[] registered routes stack
+ */
+ protected $_routes;
+
+ /**
+ * @var string after routing phase, this indicated the name of which route is used to route current request. you can get this name by \Yaf\Router::getCurrentRoute()
+ */
+ protected $_current;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * by default, \Yaf\Router using a \Yaf\Route_Static as its default route. you can add new routes into router's route stack by calling this method.
+ *
+ * the newer route will be called before the older(route stack), and if the newer router return TRUE, the router process will be end. otherwise, the older one will be called.
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.addroute.php
+ *
+ * @param string $name
+ * @param \Yaf\Route_Interface $route
+ *
+ * @return \Yaf\Router|false return FALSE on failure
+ */
+ public function addRoute($name, Route_Interface $route) {}
+
+ /**
+ * Add routes defined by configs into \Yaf\Router's route stack
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.addconfig.php
+ *
+ * @param \Yaf\Config_Abstract $config
+ *
+ * @return \Yaf\Router|false return FALSE on failure
+ */
+ public function addConfig(Config_Abstract $config) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return \Yaf\Router|false return FALSE on failure
+ */
+ public function route(Request_Abstract $request) {}
+
+ /**
+ * Retrieve a route by name, see also \Yaf\Router::getCurrentRoute()
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.getroute.php
+ *
+ * @param string $name
+ *
+ * @return \Yaf\Route_Interface
+ */
+ public function getRoute($name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-router.getroutes.php
+ *
+ * @return \Yaf\Route_Interface[]
+ */
+ public function getRoutes() {}
+
+ /**
+ * Get the name of the route which is effective in the route process.
+ *
+ * Note:
+ * You should call this method after the route process finished, since before that, this method will always return NULL.
+ *
+ * @link https://secure.php.net/manual/en/yaf-router.getcurrentroute.php
+ *
+ * @return string the name of the effective route.
+ */
+ public function getCurrentRoute() {}
+}/**
+ * Bootstrap is a mechanism used to do some initial config before a Application run.
+ * User may define their own Bootstrap class by inheriting \Yaf\Bootstrap_Abstract
+ * Any method declared in Bootstrap class with leading "_init", will be called by \Yaf\Application::bootstrap() one by one according to their defined order
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-bootstrap-abstract.php
+ */
+abstract class Bootstrap_Abstract {}/**
+ * \Yaf\Controller_Abstract is the heart of Yaf's system. MVC stands for Model-View-Controller and is a design pattern targeted at separating application logic from display logic.
+ *
+ * Every custom controller shall inherit \Yaf\Controller_Abstract.
+ *
+ * You will find that you can not define __construct function for your custom controller, thus, \Yaf\Controller_Abstract provides a magic method: \Yaf\Controller_Abstract::init().
+ *
+ * If you have defined a init() method in your custom controller, it will be called as long as the controller was instantiated.
+ *
+ * Action may have arguments, when a request coming, if there are the same name variable in the request parameters(see \Yaf\Request_Abstract::getParam()) after routed, Yaf will pass them to the action method (see \Yaf\Action_Abstract::execute()).
+ *
+ * Note:
+ * These arguments are directly fetched without filtering, it should be carefully processed before use them.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-controller-abstract.php
+ */
+abstract class Controller_Abstract
+{
+ /**
+ * @see \Yaf\Action_Abstract
+ * @var array You can also define a action method in a separate PHP script by using this property and \Yaf\Action_Abstract.
+ */
+ public $actions;
+
+ /**
+ * @var string module name
+ */
+ protected $_module;
+
+ /**
+ * @var string controller name
+ */
+ protected $_name;
+
+ /**
+ * @var \Yaf\Request_Abstract current request object
+ */
+ protected $_request;
+
+ /**
+ * @var \Yaf\Response_Abstract current response object
+ */
+ protected $_response;
+
+ /**
+ * @var array
+ */
+ protected $_invoke_args;
+
+ /**
+ * @var \Yaf\View_Interface view engine object
+ */
+ protected $_view;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.render.php
+ *
+ * @param string $tpl
+ * @param array $parameters
+ *
+ * @return string
+ */
+ protected function render($tpl, array $parameters = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.display.php
+ *
+ * @param string $tpl
+ * @param array $parameters
+ *
+ * @return bool
+ */
+ protected function display($tpl, array $parameters = null) {}
+
+ /**
+ * retrieve current request object
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getrequest.php
+ *
+ * @return \Yaf\Request_Abstract
+ */
+ public function getRequest() {}
+
+ /**
+ * retrieve current response object
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getresponse.php
+ *
+ * @return \Yaf\Response_Abstract
+ */
+ public function getResponse() {}
+
+ /**
+ * get the controller's module name
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getmodulename.php
+ *
+ * @return string
+ */
+ public function getModuleName() {}
+
+ /**
+ * retrieve view engine
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getview.php
+ *
+ * @return \Yaf\View_Interface
+ */
+ public function getView() {}
+
+ /**
+ * @deprecated not_implemented
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.initview.php
+ *
+ * @param array $options
+ *
+ * @return \Yaf\Response_Abstract
+ */
+ public function initView(array $options = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.setviewpath.php
+ *
+ * @param string $view_directory
+ *
+ * @return bool
+ */
+ public function setViewpath($view_directory) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getviewpath.php
+ *
+ * @return string
+ */
+ public function getViewpath() {}
+
+ /**
+ * forward current execution process to other action.
+ *
+ * Note:
+ * this method doesn't switch to the destination action immediately, it will take place after current flow finish.
+ *
+ * Notice, there are 3 available method signatures:
+ * \Yaf\Controller_Abstract::forward ( string $module , string $controller , string $action [, array $parameters ] )
+ * \Yaf\Controller_Abstract::forward ( string $controller , string $action [, array $parameters ] )
+ * \Yaf\Controller_Abstract::forward ( string $action [, array $parameters ] )
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.forward.php
+ *
+ * @param string $module destination module name, if NULL was given, then default module name is assumed
+ * @param string $controller destination controller name
+ * @param string $action destination action name
+ * @param array $parameters calling arguments
+ *
+ * @return bool return FALSE on failure
+ */
+ public function forward($module, $controller = null, $action = null, array $parameters = null) {}
+
+ /**
+ * redirect to a URL by sending a 302 header
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.redirect.php
+ *
+ * @param string $url a location URL
+ *
+ * @return bool
+ */
+ public function redirect($url) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getinvokeargs.php
+ *
+ * @return array
+ */
+ public function getInvokeArgs() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.getinvokearg.php
+ * @param string $name
+ *
+ * @return mixed|null
+ */
+ public function getInvokeArg($name) {}
+
+ /**
+ * \Yaf\Controller_Abstract::__construct() is final, which means users can not override it. but users can define \Yaf\Controller_Abstract::init(), which will be called after controller object is instantiated.
+ *
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.init.php
+ */
+ public function init() {}
+
+ /**
+ * \Yaf\Controller_Abstract::__construct() is final, which means it can not be overridden. You may want to see \Yaf\Controller_Abstract::init() instead.
+ *
+ * @see \Yaf\Controller_Abstract::init()
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.construct.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ * @param \Yaf\View_Interface $view
+ * @param array $invokeArgs
+ */
+ final public function __construct(Request_Abstract $request, Response_Abstract $response, View_Interface $view, array $invokeArgs = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-controller-abstract.clone.php
+ */
+ final private function __clone() {}
+}/**
+ * A action can be defined in a separate file in Yaf(see \Yaf\Controller_Abstract). that is a action method can also be a \Yaf\Action_Abstract class.
+ *
+ * Since there should be a entry point which can be called by Yaf (as of PHP 5.3, there is a new magic method __invoke, but Yaf is not only works with PHP 5.3+, Yaf choose another magic method execute), you must implement the abstract method \Yaf\Action_Abstract::execute() in your custom action class.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-action-abstract.php
+ */
+abstract class Action_Abstract extends \Yaf\Controller_Abstract
+{
+ /**
+ * @var \Yaf\Controller_Abstract
+ */
+ protected $_controller;
+
+ /**
+ * user should always define this method for a action, this is the entry point of an action. \Yaf\Action_Abstract::execute() may have arguments.
+ *
+ * Note:
+ * The value retrieved from the request is not safe. you should do some filtering work before you use it.
+ * @link https://secure.php.net/manual/en/yaf-action-abstract.execute.php
+ *
+ * @param mixed ... unlimited number of arguments
+ * @return mixed
+ */
+ abstract public function execute();
+
+ /**
+ * retrieve current controller object.
+ *
+ * @link https://secure.php.net/manual/en/yaf-action-abstract.getcontroller.php
+ *
+ * @return \Yaf\Controller_Abstract
+ */
+ public function getController() {}
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-config-abstract.php
+ */
+abstract class Config_Abstract
+{
+ /**
+ * @var array
+ */
+ protected $_config = null;
+
+ /**
+ * @var bool
+ */
+ protected $_readonly = true;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.get.php
+ *
+ * @param string $name
+ * @return mixed
+ */
+ abstract public function get($name = null);
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.set.php
+ *
+ * @param string $name
+ * @param mixed $value
+ * @return \Yaf\Config_Abstract
+ */
+ abstract public function set($name, $value);
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.readonly.php
+ *
+ * @return bool
+ */
+ abstract public function readonly();
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-abstract.toarray.php
+ *
+ * @return array
+ */
+ abstract public function toArray();
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-request-abstract.php
+ */
+abstract class Request_Abstract
+{
+ public const SCHEME_HTTP = 'http';
+ public const SCHEME_HTTPS = 'https';
+
+ /**
+ * @var string
+ */
+ public $module;
+
+ /**
+ * @var string
+ */
+ public $controller;
+
+ /**
+ * @var string
+ */
+ public $action;
+
+ /**
+ * @var string
+ */
+ public $method;
+
+ /**
+ * @var array
+ */
+ protected $params;
+
+ /**
+ * @var string
+ */
+ protected $language;
+
+ /**
+ * @var \Yaf\Exception
+ */
+ protected $_exception;
+
+ /**
+ * @var string
+ */
+ protected $_base_uri = "";
+
+ /**
+ * @var string
+ */
+ protected $uri = "";
+
+ /**
+ * @var string
+ */
+ protected $dispatched = "";
+
+ /**
+ * @var string
+ */
+ protected $routed = "";
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isget.php
+ *
+ * @return bool
+ */
+ public function isGet() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.ispost.php
+ *
+ * @return bool
+ */
+ public function isPost() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isput.php
+ *
+ * @return bool
+ */
+ public function isPut() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.ishead.php
+ *
+ * @return bool
+ */
+ public function isHead() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isoptions.php
+ *
+ * @return bool
+ */
+ public function isOptions() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.iscli.php
+ *
+ * @return bool
+ */
+ public function isCli() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isdispached.php
+ *
+ * @return bool
+ */
+ public function isDispatched() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isrouted.php
+ *
+ * @return bool
+ */
+ public function isRouted() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.isxmlhttprequest.php
+ *
+ * @return bool false
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * Retrieve $_SERVER variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getserver.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getServer($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_ENV variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getenv.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getEnv($name = null, $default = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getparam.php
+ *
+ * @param string $name
+ * @param mixed $default
+ *
+ * @return mixed
+ */
+ public function getParam($name, $default = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getparams.php
+ *
+ * @return array
+ */
+ public function getParams() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getexception.php
+ *
+ * @return \Yaf\Exception
+ */
+ public function getException() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getmoudlename.php
+ *
+ * @return string
+ */
+ public function getModuleName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getcontrollername.php
+ *
+ * @return string
+ */
+ public function getControllerName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getactionname.php
+ *
+ * @return string
+ */
+ public function getActionName() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setparam.php
+ *
+ * @param string|array $name the variable name, or an array of key=>value pairs
+ * @param string $value
+ *
+ * @return \Yaf\Request_Abstract|bool
+ */
+ public function setParam($name, $value = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setmodulename.php
+ *
+ * @param string $module
+ *
+ * @return \Yaf\Request_Abstract|bool
+ */
+ public function setModuleName($module) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setcontrollername.php
+ *
+ * @param string $controller
+ *
+ * @return \Yaf\Request_Abstract|bool
+ */
+ public function setControllerName($controller) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setactionname.php
+ *
+ * @param string $action
+ *
+ * @return \Yaf\Request_Abstract|bool
+ */
+ public function setActionName($action) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getmethod.php
+ *
+ * @return string
+ */
+ public function getMethod() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getlanguage.php
+ *
+ * @return string
+ */
+ public function getLanguage() {}
+
+ /**
+ * Set base URI, base URI is used when doing routing, in routing phase request URI is used to route a request, while base URI is used to skip the leading part(base URI) of request URI. That is, if comes a request with request URI a/b/c, then if you set base URI to "a/b", only "/c" will be used in routing phase.
+ *
+ * Note:
+ * generally, you don't need to set this, Yaf will determine it automatically.
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setbaseuri.php
+ *
+ * @param string $uri base URI
+ *
+ * @return bool
+ */
+ public function setBaseUri($uri) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getbaseuri.php
+ *
+ * @return string
+ */
+ public function getBaseUri() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.getrequesturi.php
+ *
+ * @return string
+ */
+ public function getRequestUri() {}
+
+ /**
+ * @since 2.1.0
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setrequesturi.php
+ *
+ * @param string $uri request URI
+ */
+ public function setRequestUri($uri) {}
+
+ /**
+ * Set request as dispatched
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setdispatched.php
+ *
+ * @return bool
+ */
+ public function setDispatched() {}
+
+ /**
+ * Set request as routed
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-abstract.setrouted.php
+ *
+ * @return \Yaf\Request_Abstract|bool
+ */
+ public function setRouted() {}
+}/**
+ * Plugins allow for easy extensibility and customization of the framework.
+ *
+ * Plugins are classes. The actual class definition will vary based on the component -- you may need to implement this interface, but the fact remains that the plugin is itself a class.
+ *
+ * A plugin could be loaded into Yaf by using \Yaf\Dispatcher::registerPlugin(), after registered, All the methods which the plugin implemented according to this interface, will be called at the proper time.
+ * @link https://secure.php.net/manual/en/class.yaf-plugin-abstract.php
+ */
+abstract class Plugin_Abstract
+{
+ /**
+ * This is the earliest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called before routing a request.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.routerstartup.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function routerStartup(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * This hook will be trigged after the route process finished, this hook is usually used for login check.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.routershutdown.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function routerShutdown(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.dispatchloopstartup.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function dispatchLoopStartup(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * This is the latest hook in Yaf plugin hook system, if a custom plugin implement this method, then it will be called after the dispatch loop finished.
+ *
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.dispatchloopshutdown.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function dispatchLoopShutdown(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.predispatch.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function preDispatch(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.postdispatch.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function postDispatch(Request_Abstract $request, Response_Abstract $response) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-plugin-abstract.preresponse.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @param \Yaf\Response_Abstract $response
+ *
+ * @return bool true
+ */
+ public function preResponse(Request_Abstract $request, Response_Abstract $response) {}
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-response-abstract.php
+ */
+abstract class Response_Abstract
+{
+ public const DEFAULT_BODY = "content";
+
+ /**
+ * @var string
+ */
+ protected $_header;
+
+ /**
+ * @var string
+ */
+ protected $_body;
+
+ /**
+ * @var bool
+ */
+ protected $_sendheader;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.construct.php
+ */
+ public function __construct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.destruct.php
+ */
+ public function __destruct() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clone.php
+ */
+ private function __clone() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.tostring.php
+ */
+ public function __toString() {}
+
+ /**
+ * Set content to response
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setbody.php
+ *
+ * @param string $content content string
+ * @param string $key the content key, you can set a content with a key, if you don't specific, then \Yaf\Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function setBody($content, $key = self::DEFAULT_BODY) {}
+
+ /**
+ * append a content to a exists content block
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.appendbody.php
+ *
+ * @param string $content content string
+ * @param string $key the content key, you can set a content with a key, if you don't specific, then \Yaf\Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function appendBody($content, $key = self::DEFAULT_BODY) {}
+
+ /**
+ * prepend a content to a exists content block
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.prependbody.php
+ *
+ * @param string $content content string
+ * @param string $key the content key, you can set a content with a key, if you don't specific, then \Yaf\Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function prependBody($content, $key = self::DEFAULT_BODY) {}
+
+ /**
+ * Clear existing content
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clearbody.php
+ *
+ * @param string $key the content key, you can set a content with a key, if you don't specific, then \Yaf\Response_Abstract::DEFAULT_BODY will be used
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return bool
+ */
+ public function clearBody($key = self::DEFAULT_BODY) {}
+
+ /**
+ * Retrieve an existing content
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.getbody.php
+ *
+ * @param string|null $key the content key, if you don't specific, then \Yaf\Response_Abstract::DEFAULT_BODY will be used. if you pass in a NULL, then all contents will be returned as a array
+ *
+ * Note:
+ * this parameter is introduced as of 2.2.0
+ *
+ * @return mixed
+ */
+ public function getBody($key = self::DEFAULT_BODY) {}
+}/**
+ * Yaf provides a ability for developers to use custom view engine instead of build-in engine which is \Yaf\View\Simple. There is a example to explain how to do this, please see \Yaf\Dispatcher::setView()
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-view-interface.php
+ */
+interface View_Interface
+{
+ /**
+ * Assign values to View engine, then the value can access directly by name in template.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.assign.php
+ *
+ * @param string|array $name
+ * @param mixed $value
+ * @return bool
+ */
+ public function assign($name, $value);
+
+ /**
+ * Render a template and output the result immediately.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.display.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ * @return bool
+ */
+ public function display($tpl, array $tpl_vars = null);
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-interface.getscriptpath.php
+ *
+ * @return string
+ */
+ public function getScriptPath();
+
+ /**
+ * Render a template and return the result.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.render.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ * @return string
+ */
+ public function render($tpl, array $tpl_vars = null);
+
+ /**
+ * Set the templates base directory, this is usually called by \Yaf\Dispatcher
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-interface.setscriptpath.php
+ *
+ * @param string $template_dir An absolute path to the template directory, by default, \Yaf\Dispatcher use application.directory . "/views" as this parameter.
+ */
+ public function setScriptPath($template_dir);
+}/**
+ * \Yaf\Route_Interface used for developer defined their custom route.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-interface.php
+ */
+interface Route_Interface
+{
+ /**
+ * \Yaf\Route_Interface::route() is the only method that a custom route should implement.
+ * if this method return TRUE, then the route process will be end. otherwise, \Yaf\Router will call next route in the route stack to route request.
+ * This method would set the route result to the parameter request, by calling \Yaf\Request_Abstract::setControllerName(), \Yaf\Request_Abstract::setActionName() and \Yaf\Request_Abstract::setModuleName().
+ * This method should also call \Yaf\Request_Abstract::setRouted() to make the request routed at last.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-interface.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ * @return bool
+ */
+ public function route(Request_Abstract $request);
+
+ /**
+ * \Yaf\Route_Interface::assemble() - assemble a request
+ * this method returns a url according to the argument info, and append query strings to the url according to the argument query.
+ * a route should implement this method according to its own route rules, and do a reverse progress.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-interface.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null);
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception.php
+ */
+class Exception extends \Exception {}/**
+ * by default, \Yaf\Router only have a \Yaf\Route_Static as its default route.
+ *
+ * \Yaf\Route_Static is designed to handle 80% of normal requirements.
+ *
+ * Note:
+ * it is unnecessary to instance a \Yaf\Route_Static, also unnecessary to add it into \Yaf\Router's routes stack, since there is always be one in \Yaf\Router's routes stack, and always be called at the last time.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-static.php
+ */
+class Route_Static implements \Yaf\Route_Interface
+{
+ /**
+ * @deprecated not_implemented
+ * @link https://secure.php.net/manual/en/yaf-route-static.match.php
+ *
+ * @param string $uri
+ *
+ * @return bool
+ */
+ public function match($uri) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-static.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool always TRUE
+ */
+ public function route(Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route_Static::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-static.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}}
+
+namespace Yaf\Response {
+ class Http extends \Yaf\Response_Abstract
+{
+ /**
+ * @var int
+ */
+ protected $_response_code = 0;
+
+ private function __clone() {}
+
+ /**
+ * @return string
+ */
+ private function __toString() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setheader.php
+ *
+ * @param string $name
+ * @param string $value
+ * @param bool $replace
+ * @param int $response_code
+ *
+ * @return bool
+ */
+ public function setHeader($name, $value, $replace = false, $response_code = 0) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setallheaders.php
+ *
+ * @param array $headers
+ *
+ * @return bool
+ */
+ public function setAllHeaders(array $headers) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.getheader.php
+ *
+ * @param string $name
+ *
+ * @return mixed
+ */
+ public function getHeader($name = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.clearheaders.php
+ *
+ *
+ * @return \Yaf\Response_Abstract|false
+ */
+ public function clearHeaders() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.setredirect.php
+ *
+ * @param string $url
+ *
+ * @return bool
+ */
+ public function setRedirect($url) {}
+
+ /**
+ * send response
+ *
+ * @link https://secure.php.net/manual/en/yaf-response-abstract.response.php
+ *
+ * @return bool
+ */
+ public function response() {}
+}
+class Cli extends \Yaf\Response_Abstract
+{
+ private function __clone() {}
+
+ /**
+ * @return string
+ */
+ private function __toString() {}
+}}
+
+namespace Yaf\Request {
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-request-http.php
+ */
+class Http extends \Yaf\Request_Abstract
+{
+ /**
+ * Retrieve $_GET variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getquery.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getQuery($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_REQUEST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getrequest.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getRequest($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_POST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getpost.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getPost($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_COOKIE variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getcookie.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getCookie($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_FILES variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.getfiles.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param mixed $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getFiles($name = null, $default = null) {}
+
+ /**
+ * Retrieve variable from client, this method will search the name in $_REQUEST params, if the name is not found, then will search in $_POST, $_GET, $_COOKIE, $_SERVER
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.get.php
+ *
+ * @param string $name the variable name
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function get($name, $default = null) {}
+
+ /**
+ * Check the request whether it is a Ajax Request
+ *
+ *
+ * Note:
+ *
+ * This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-http.isxmlhttprequest.php
+ *
+ * @return bool
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-http.construct.php
+ *
+ * @param string $request_uri
+ * @param string $base_uri
+ */
+ public function __construct($request_uri, $base_uri) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-http.clone.php
+ */
+ private function __clone() {}
+}/**
+ * \Yaf\Request\Simple is particularly used for test purpose. ie. simulate a spacial request under CLI mode.
+ * @link https://secure.php.net/manual/en/class.yaf-request-simple.php
+ */
+class Simple extends \Yaf\Request_Abstract
+{
+ /**
+ * Retrieve $_GET variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getquery.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getQuery($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_REQUEST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getrequest.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getRequest($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_POST variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getpost.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getPost($name = null, $default = null) {}
+
+ /**
+ * Retrieve $_Cookie variable
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.getcookie.php
+ *
+ * @param string $name the variable name, if not provided returns all
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function getCookie($name = null, $default = null) {}
+
+ /**
+ * @param mixed $name
+ * @param null $default
+ *
+ * @return array
+ */
+ public function getFiles($name = null, $default = null) {}
+
+ /**
+ * Retrieve variable from client, this method will search the name in $_REQUEST params, if the name is not found, then will search in $_POST, $_GET, $_COOKIE, $_SERVER
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.get.php
+ *
+ * @param string $name the variable name
+ * @param string $default if this parameter is provide, this will be returned if the variable can not be found
+ *
+ * @return mixed
+ */
+ public function get($name, $default = null) {}
+
+ /**
+ * Check the request whether it is a Ajax Request
+ *
+ *
+ * Note:
+ *
+ * This method depends on the request header: HTTP_X_REQUESTED_WITH, some Javascript library doesn't set this header while doing Ajax request
+ *
+ * @link https://secure.php.net/manual/en/yaf-request-simple.isxmlhttprequest.php
+ *
+ * @return bool
+ */
+ public function isXmlHttpRequest() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-simple.construct.php
+ *
+ * @param string $method
+ * @param string $controller
+ * @param string $action
+ * @param string $params
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($method, $controller, $action, $params = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-request-simple.clone.php
+ */
+ private function __clone() {}
+}}
+
+namespace Yaf\Config {
+/**
+ * \Yaf\Config\Ini enables developers to store configuration data in a familiar INI format and read them in the application by using nested object property syntax. The INI format is specialized to provide both the ability to have a hierarchy of configuration data keys and inheritance between configuration data sections. Configuration data hierarchies are supported by separating the keys with the dot or period character ("."). A section may extend or inherit from another section by following the section name with a colon character (":") and the name of the section from which data are to be inherited.
+ * Note:
+ * \Yaf\Config\Ini utilizes the » parse_ini_file() PHP function. Please review this documentation to be aware of its specific behaviors, which propagate to \Yaf\Config\Ini, such as how the special values of "TRUE", "FALSE", "yes", "no", and "NULL" are handled.
+ * @link https://secure.php.net/manual/en/class.yaf-config-ini.php
+ */
+class Ini extends \Yaf\Config_Abstract implements \Iterator, \Traversable, \ArrayAccess, \Countable
+{
+ /**
+ * @see \Yaf\Config_Abstract::get
+ */
+ public function __get($name = null) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::set
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::get
+ */
+ public function get($name = null) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::set
+ * @deprecated not_implemented
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::toArray
+ */
+ public function toArray() {}
+
+ /**
+ * @see \Yaf\Config_Abstract::readonly
+ */
+ public function readonly() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-ini.construct.php
+ *
+ * @param string $config_file path to an INI configure file
+ * @param string $section which section in that INI file you want to be parsed
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($config_file, $section = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-ini.isset.php
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see \Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see \Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see \Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see \Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see \Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see \Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @see \ArrayAccess::offsetUnset
+ * @deprecated not_implemented
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetGet
+ */
+ public function offsetGet($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-config-simple.php
+ */
+class Simple extends \Yaf\Config_Abstract implements \Iterator, \Traversable, \ArrayAccess, \Countable
+{
+ /**
+ * @see \Yaf\Config_Abstract::get
+ */
+ public function __get($name = null) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::set
+ */
+ public function __set($name, $value) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::get
+ */
+ public function get($name = null) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::set
+ */
+ public function set($name, $value) {}
+
+ /**
+ * @see \Yaf\Config_Abstract::toArray
+ */
+ public function toArray() {}
+
+ /**
+ * @see \Yaf\Config_Abstract::readonly
+ */
+ public function readonly() {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-simple.construct.php
+ *
+ * @param array $array
+ * @param string $readonly
+ */
+ public function __construct(array $array, $readonly = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-config-simple.isset.php
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * @see \Countable::count
+ */
+ public function count() {}
+
+ /**
+ * @see \Iterator::rewind
+ */
+ public function rewind() {}
+
+ /**
+ * @see \Iterator::current
+ */
+ public function current() {}
+
+ /**
+ * @see \Iterator::next
+ */
+ public function next() {}
+
+ /**
+ * @see \Iterator::valid
+ */
+ public function valid() {}
+
+ /**
+ * @see \Iterator::key
+ */
+ public function key() {}
+
+ /**
+ * @see \ArrayAccess::offsetUnset
+ */
+ public function offsetUnset($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetGet
+ */
+ public function offsetGet($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetExists
+ */
+ public function offsetExists($name) {}
+
+ /**
+ * @see \ArrayAccess::offsetSet
+ */
+ public function offsetSet($name, $value) {}
+}}
+
+namespace Yaf\View {
+/**
+ * \Yaf\View\Simple is the built-in template engine in Yaf, it is a simple but fast template engine, and only support PHP script template.
+ * @link https://secure.php.net/manual/en/class.yaf-view-simple.php
+ *
+ * @method void|bool eval(string $tpl_str, array $vars = null) Render a string template and return the result.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.eval.php
+ *
+ * @param string $tpl_str string template
+ * @param array $vars
+ *
+ * @return void|false return FALSE on failure
+ */
+class Simple implements \Yaf\View_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_tpl_dir;
+
+ /**
+ * @var array
+ */
+ protected $_tpl_vars;
+
+ /**
+ * @var array
+ */
+ protected $_options;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.construct.php
+ *
+ * @param string $template_dir The base directory of the templates, by default, it is APPLICATION . "/views" for Yaf.
+ * @param array $options Options for the engine, as of Yaf 2.1.13, you can use short tag
+ * "=$var?>" in your template(regardless of "short_open_tag"),
+ * so comes a option named "short_tag", you can switch this off
+ * to prevent use short_tag in template.
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ final public function __construct($template_dir, array $options = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.isset.php
+ *
+ * @param string $name
+ */
+ public function __isset($name) {}
+
+ /**
+ * assign variable to view engine
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.assign.php
+ *
+ * @param string|array $name A string or an array.
if is string, then the next argument $value is required.
+ * @param mixed $value mixed value
+ * @return \Yaf\View\Simple
+ */
+ public function assign($name, $value = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.render.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ *
+ * @throws \Yaf\Exception\LoadFailed\View
+ *
+ * @return string|void
+ */
+ public function render($tpl, array $tpl_vars = null) {}
+
+ /**
+ * Render a template and display the result instantly.
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.display.php
+ *
+ * @param string $tpl
+ * @param array $tpl_vars
+ *
+ * @throws \Yaf\Exception\LoadFailed\View
+ *
+ * @return bool
+ */
+ public function display($tpl, array $tpl_vars = null) {}
+
+ /**
+ * unlike \Yaf\View\Simple::assign(), this method assign a ref value to engine.
+ * @link https://secure.php.net/manual/en/yaf-view-simple.assignref.php
+ *
+ * @param string $name A string name which will be used to access the value in the template.
+ * @param mixed &$value mixed value
+ *
+ * @return \Yaf\View\Simple
+ */
+ public function assignRef($name, &$value) {}
+
+ /**
+ * clear assigned variable
+ * @link https://secure.php.net/manual/en/yaf-view-simple.clear.php
+ *
+ * @param string $name assigned variable name.
if empty, will clear all assigned variables.
+ *
+ * @return \Yaf\View\Simple
+ */
+ public function clear($name = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.setscriptpath.php
+ *
+ * @param string $template_dir
+ *
+ * @return \Yaf\View\Simple
+ */
+ public function setScriptPath($template_dir) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-view-simple.getscriptpath.php
+ *
+ * @return string
+ */
+ public function getScriptPath() {}
+
+ /**
+ * Retrieve assigned variable
+ *
+ * Note:
+ * $name parameter can be empty since 2.1.11
+ * @link https://secure.php.net/manual/en/yaf-view-simple.get.php
+ *
+ * @param null $name the assigned variable name
+ *
+ * if this is empty, all assigned variables will be returned
+ *
+ * @return mixed
+ */
+ public function __get($name = null) {}
+
+ /**
+ * This is a alternative and easier way to \Yaf\View\Simple::assign().
+ *
+ * @link https://secure.php.net/manual/en/yaf-view-simple.set.php
+ *
+ * @param string $name A string value name.
+ * @param mixed $value mixed value
+ */
+ public function __set($name, $value = null) {}
+}}
+
+namespace Yaf\Route {
+/**
+ * \Yaf\Route\Simple will match the query string, and find the route info.
+ *
+ * all you need to do is tell \Yaf\Route\Simple what key in the $_GET is module, what key is controller, and what key is action.
+ *
+ * \Yaf\Route\Simple::route() will always return TRUE, so it is important put \Yaf\Route\Simple in the front of the Route stack, otherwise all the other routes will not be called
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-simple.php
+ */
+final class Simple implements \Yaf\Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $controller;
+
+ /**
+ * @var string
+ */
+ protected $module;
+
+ /**
+ * @var string
+ */
+ protected $action;
+
+ /**
+ * \Yaf\Route\Simple will get route info from query string. and the parameters of this constructor will used as keys while searching for the route info in $_GET.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.construct.php
+ *
+ * @param string $module_name
+ * @param string $controller_name
+ * @param string $action_name
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($module_name, $controller_name, $action_name) {}
+
+ /**
+ * see \Yaf\Route\Simple::__construct()
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool always TRUE
+ */
+ public function route(Yaf\Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route\Simple::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-simple.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}/**
+ * @link https://secure.php.net/manual/en/class.yaf-route-supervar.php
+ */
+final class Supervar implements \Yaf\Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_var_name;
+
+ /**
+ * \Yaf\Route\Supervar is similar to \Yaf\Route_Static, the difference is that \Yaf\Route\Supervar will look for path info in query string, and the parameter supervar_name is the key.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.construct.php
+ *
+ * @param string $supervar_name The name of key.
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($supervar_name) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool If there is a key(which was defined in \Yaf\Route\Supervar::__construct()) in $_GET, return TRUE. otherwise return FALSE.
+ */
+ public function route(Yaf\Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route\Supervar::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-supervar.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}/**
+ * For usage, please see the example section of \Yaf\Route\Rewrite::__construct()
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-rewrite.php
+ */
+final class Rewrite extends \Yaf\Router implements \Yaf\Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_route;
+
+ /**
+ * @var array
+ */
+ protected $_default;
+
+ /**
+ * @var array
+ */
+ protected $_verify;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.construct.php
+ *
+ * @param string $match A pattern, will be used to match a request uri, if doesn't matched, \Yaf\Route\Rewrite will return FALSE.
+ * @param array $route When the match pattern matches the request uri, \Yaf\Route\Rewrite will use this to decide which m/c/a to routed.
+ *
+ * either of m/c/a in this array is optional, if you don't assign a specific value, it will be routed to default.
+ * @param array $verify
+ * @param string $reverse
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($match, array $route, array $verify = null, $reverse = null) {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool
+ */
+ public function route(Yaf\Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route\Rewrite::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-rewrite.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}/**
+ * \Yaf\Route\Regex is the most flexible route among the Yaf built-in routes.
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-regex.php
+ */
+final class Regex extends \Yaf\Router implements \Yaf\Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_route;
+
+ /**
+ * @var array
+ */
+ protected $_default;
+
+ /**
+ * @var array
+ */
+ protected $_maps;
+
+ /**
+ * @var array
+ */
+ protected $_verify;
+
+ /**
+ * @var string
+ */
+ protected $_reverse;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-regex.construct.php
+ *
+ * @param string $match A complete Regex pattern, will be used to match a request uri, if doesn't matched, \Yaf\Route\Regex will return FALSE.
+ * @param array $route When the match pattern matches the request uri, \Yaf\Route\Regex will use this to decide which m/c/a to routed.
+ *
+ * either of m/c/a in this array is optional, if you don't assign a specific value, it will be routed to default.
+ * @param array $map A array to assign name to the captures in the match result.
+ * @param array $verify
+ * @param string $reverse
+ *
+ * @throws \Yaf\Exception\TypeError
+ */
+ public function __construct($match, array $route, array $map = null, array $verify = null, $reverse = null) {}
+
+ /**
+ * Route a incoming request.
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-regex.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool If the pattern given by the first parameter of \Yaf\Route\Regex::_construct() matches the request uri, return TRUE, otherwise return FALSE.
+ */
+ public function route(Yaf\Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route\Regex::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-regex.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}/**
+ * \Yaf\Route\Map is a built-in route, it simply convert a URI endpoint (that part of the URI which comes after the base URI: see \Yaf\Request_Abstract::setBaseUri()) to a controller name or action name(depends on the parameter passed to \Yaf\Route\Map::__construct()) in following rule: A => controller A. A/B/C => controller A_B_C. A/B/C/D/E => controller A_B_C_D_E.
+ *
+ * If the second parameter of \Yaf\Route\Map::__construct() is specified, then only the part before delimiter of URI will used to routing, the part after it is used to routing request parameters (see the example section of \Yaf\Route\Map::__construct()).
+ *
+ * @link https://secure.php.net/manual/en/class.yaf-route-map.php
+ */
+final class Map implements \Yaf\Route_Interface
+{
+ /**
+ * @var string
+ */
+ protected $_ctl_router = '';
+
+ /**
+ * @var string
+ */
+ protected $_delimiter;
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-map.construct.php
+ *
+ * @param bool $controller_prefer Whether the result should considering as controller or action
+ * @param string $delimiter
+ */
+ public function __construct($controller_prefer = false, $delimiter = '') {}
+
+ /**
+ * @link https://secure.php.net/manual/en/yaf-route-map.route.php
+ *
+ * @param \Yaf\Request_Abstract $request
+ *
+ * @return bool
+ */
+ public function route(Yaf\Request_Abstract $request) {}
+
+ /**
+ * \Yaf\Route\Map::assemble() - Assemble a url
+ *
+ * @link https://secure.php.net/manual/en/yaf-route-map.assemble.php
+ *
+ * @param array $info
+ * @param array $query
+ * @return bool
+ */
+ public function assemble(array $info, array $query = null) {}
+}}
+
+namespace Yaf\Exception {
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-typeerror.php
+ */
+class TypeError extends \Yaf\Exception {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-startuperror.php
+ */
+class StartupError extends \Yaf\Exception {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-routefaild.php
+ */
+class RouterFailed extends \Yaf\Exception {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-dispatchfaild.php
+ */
+class DispatchFailed extends \Yaf\Exception {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild.php
+ */
+class LoadFailed extends \Yaf\Exception {}}
+
+namespace Yaf\Exception\LoadFailed {
+/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-module.php
+ */
+class Module extends \Yaf\Exception\LoadFailed {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-controller.php
+ */
+class Controller extends \Yaf\Exception\LoadFailed {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-action.php
+ */
+class Action extends \Yaf\Exception\LoadFailed {}/**
+ * @link https://secure.php.net/manual/en/class.yaf-exception-loadfaild-view.php
+ */
+class View extends \Yaf\Exception\LoadFailed {}
+}
diff --git a/phpstorm-stubs/yaml/yaml.php b/phpstorm-stubs/yaml/yaml.php
new file mode 100644
index 0000000..761d00f
--- /dev/null
+++ b/phpstorm-stubs/yaml/yaml.php
@@ -0,0 +1,121 @@
+
+ * Send the YAML representation of a value to a file
+ * @link https://php.net/manual/en/function.yaml-emit-file.php
+ * @param string $filename Path to the file.
+ * @param mixed $data The data being encoded. Can be any type except a resource.
+ * @param int $encoding Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.
+ * @param int $linebreak Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.
+ * @param array $callbacks [optional] Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.
+ * @return bool Returns TRUE on success.
+ */
+function yaml_emit_file($filename, $data, $encoding = YAML_ANY_ENCODING, $linebreak = YAML_ANY_BREAK, array $callbacks = []) {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL yaml >= 0.5.0)
+ * @link https://php.net/manual/en/function.yaml-emit.php
+ * @param mixed $data The data being encoded. Can be any type except a resource.
+ * @param int $encoding [optional] Output character encoding chosen from YAML_ANY_ENCODING, YAML_UTF8_ENCODING, YAML_UTF16LE_ENCODING, YAML_UTF16BE_ENCODING.
+ * @param int $linebreak [optional] Output linebreak style chosen from YAML_ANY_BREAK, YAML_CR_BREAK, YAML_LN_BREAK, YAML_CRLN_BREAK.
+ * @param array $callbacks [optional] Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.
+ * @return string Returns a YAML encoded string on success.
+ */
+function yaml_emit($data, $encoding = YAML_ANY_ENCODING, $linebreak = YAML_ANY_BREAK, array $callbacks = []) {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL yaml >= 0.4.0)
+ * Parse a YAML stream from a file
+ * @link https://php.net/manual/en/function.yaml-parse-file.php
+ * @param string $filename Path to the file.
+ * @param int $pos [optional] Document to extract from stream (-1 for all documents, 0 for first document, ...).
+ * @param int &$ndocs [optional] If ndocs is provided, then it is filled with the number of documents found in stream.
+ * @param array $callbacks [optional] Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.
+ * @return mixed|false Returns the value encoded in input in appropriate PHP type or FALSE on failure. If pos is -1 an array will be returned with one entry for each document found in the stream.
+ */
+function yaml_parse_file($filename, $pos = 0, &$ndocs = null, array $callbacks = []) {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL yaml >= 0.4.0)
+ * Parse a Yaml stream from a URL
+ * @link https://php.net/manual/en/function.yaml-parse-url.php
+ * @param string $url url should be of the form "scheme://...". PHP will search for a protocol handler (also known as a wrapper) for that scheme. If no wrappers for that protocol are registered, PHP will emit a notice to help you track potential problems in your script and then continue as though filename specifies a regular file.
+ * @param int $pos [optional] Document to extract from stream (-1 for all documents, 0 for first document, ...).
+ * @param int &$ndocs [optional] If ndocs is provided, then it is filled with the number of documents found in stream.
+ * @param array $callbacks [optional] Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.
+ * @return mixed|false Returns the value encoded in input in appropriate PHP type or FALSE on failure. If pos is -1 an array will be returned with one entry for each document found in the stream.
+ */
+function yaml_parse_url($url, $pos = 0, &$ndocs = null, array $callbacks = []) {}
+
+/**
+ * (PHP 5 >= 5.2.0, PECL yaml >= 0.4.0)
+ * Parse a YAML stream
+ * @link https://php.net/manual/en/function.yaml-parse.php
+ * @param string $input The string to parse as a YAML document stream.
+ * @param int $pos [optional] Document to extract from stream (-1 for all documents, 0 for first document, ...).
+ * @param int &$ndocs [optional] If ndocs is provided, then it is filled with the number of documents found in stream.
+ * @param array $callbacks [optional] Content handlers for YAML nodes. Associative array of YAML tag => callable mappings. See parse callbacks for more details.
+ * @return mixed|false Returns the value encoded in input in appropriate PHP type or FALSE on failure. If pos is -1 an array will be returned with one entry for each document found in the stream.
+ */
+function yaml_parse($input, $pos = 0, &$ndocs = null, array $callbacks = []) {}
diff --git a/phpstorm-stubs/yar/yar.php b/phpstorm-stubs/yar/yar.php
new file mode 100644
index 0000000..510a925
--- /dev/null
+++ b/phpstorm-stubs/yar/yar.php
@@ -0,0 +1,198 @@
+
+ * Options can be: priority, application_id, name, status, recurring.
+ * @param int $max_jobs Maximum jobs to retrieve. Default is -1, getting all jobs available.
+ * @param bool $with_globals_and_output Whether gets the global variables dataand job output.
+ * Default is false.
+ * @return array Jobs that satisfies filter_options.
+ */
+ public function getJobsInQueue($filter_options = null, $max_jobs = -1, $with_globals_and_output = false) {}
+
+ /**
+ * Return the number of jobs in the queue according to the options given in the filter_options parameter
+ * @param array $filter_options Array of optional filter options to filter the jobs we want to get from the queue. If not set, all jobs will be counted.
+ * Options can be: priority, application_id, host, name, status, recurring.
+ * @return int Number of jobs that satisfy filter_options.
+ */
+ public function getNumOfJobsInQueue($filter_options = null) {}
+
+ /**
+ * Return all the hosts that jobs were submitted from.
+ * @return array
+ */
+ public function getAllhosts() {}
+
+ /**
+ * Return all the application ids exists in queue.
+ * @return array
+ */
+ public function getAllApplicationIDs() {}
+
+ /**
+ * Return finished jobs (either failed or successed) between time range allowing paging.
+ * Jobs are sorted by job id descending.
+ *
+ * @param int $status Filter to jobs by status, 1-success, 0-failed either logical or execution.
+ * @param int $start_time UNIX timestamp. Get only jobs finished after $start_time.
+ * @param int $end_time UNIX timestamp. Get only jobs finished before $end_time.
+ * @param int $index Get jobs starting from the $index-th place.
+ * @param int $count Get only $count jobs.
+ * @param int &$total Pass by reference. Return the total number of jobs statisifed the query criteria.
+ *
+ * @return array of jobs.
+ */
+ public function getHistoricJobs($status, $start_time, $end_time, $index, $count, &$total) {}
+
+ /**
+ * Suspends queue operation
+ * @return bool - TRUE if successful FALSE otherwise
+ */
+ public function suspendQueue() {}
+
+ /**
+ * Resumes queue operation
+ * @return bool - TRUE if successful FALSE otherwise
+ */
+ public function resumeQueue() {}
+
+ /**
+ * Return description of the last error occurred in the queue object. After every
+ * method invoked an error string describing the error is store in the queue object.
+ * @return string
+ */
+ public function getLastError() {}
+
+ /**
+ * Sets a new maximum time for keeping historic jobs
+ * @return bool - TRUE if successful FALSE otherwise
+ */
+ public function setMaxHistoryTime() {}
+}
+
+/**
+ * Describing a job in a queue
+ * In order to add/modify a job in the queue, a Job class must be created/retrieved and than saved in a queue
+ *
+ * For simplicity, a job can be added directly to a queue and without creating an instant of a Queue object
+ */
+class ZendAPI_Job
+{
+ /**
+ * Unique id of the Job in the job queue
+ *
+ * @var int
+ */
+ public $_id;
+
+ /**
+ * Full path of the script that this job calls when it's processed
+ *
+ * @var string
+ */
+ public $_script;
+
+ /**
+ * The host that the job was submit from
+ *
+ * @var string
+ */
+ public $_host;
+
+ /**
+ * A short string describing the job
+ *
+ * @var string
+ */
+ public $_name;
+
+ /**
+ * The job output after executing
+ *
+ * @var string
+ */
+ public $_output;
+
+ /**
+ * The status of the job
+ * By default, the job status is waiting to being execute.
+ * The status is determent by the queue and can not be modify by the user.
+ *
+ * @var int
+ */
+ public $_status = JOB_QUEUE_STATUS_WAITING;
+
+ /**
+ * The application id of the job
+ * If the application id is not set, this job may get an application id automatically from the queue
+ * (if the queue was assigned one). By default it is null (which indicates no application id is assigned)
+ *
+ * @var string
+ */
+ public $_application_id = null;
+
+ /**
+ * The priority of the job, options are the priority constants
+ * By default the priority is set to normal (JOB_QUEUE_PRIORITY_NORMAL)
+ *
+ * @var int
+ */
+ public $_priority = JOB_QUEUE_PRIORITY_NORMAL;
+
+ /**
+ * Array holding all the variables that the user wants the job's script to have when it's called
+ * The structure is variable_name => variable_value
+ i.e. if the user_variables array is array('my_var' => 8), when the script is called,
+ a global variable called $my_var will have the int value of 8
+ * By default there are no variables that we want to add to the job's script
+ *
+ * @var array
+ */
+ public $_user_variables = [];
+
+ /**
+ * Bit mask holding the global variables that the user want the job's script to have when it's called
+ * Options are prefixed with "JOB_QUEUE_SAVE_" and may be:
+ POST|GET|COOKIE|SESSION|RAW_POST|SERVER|FILES|ENV
+ * By default there are no global variables we want to add to the job's script
+ * i.e. In order to save the current GET and COOKIE global variables,
+ this property should be JOB_QUEUE_SAVE_GET|JOB_QUEUE_SAVE_COOKIE (or the integer 6)
+ In that case (of GET and COOKIE), when the job is added, the current $_GET and
+ $_COOKIE variables should be saved, and when the job's script is called,
+ those global variables should be populated
+ *
+ * @var int
+ */
+ public $_global_variables = 0;
+
+ /**
+ * The job may have a dependency (another job that must be performed before this job)
+ * This property hold the id of the job that must be performed. if this variable is an array of integers,
+ it means that there are several jobs that must be performed before this job
+ * By default there are no dependencies
+ *
+ * @var mixed (int|array)
+ */
+ public $_predecessor = null;
+
+ /**
+ * The time that this job should be performed, this variables is the UNIX timestamp.
+ * If set to 0, it means that the job should be performed now (or at least as soon as possible)
+ * By default there is no scheduled time, which means we want to perform the job as soon as possible
+ *
+ * @var int
+ */
+ public $_scheduled_time = 0;
+
+ /**
+ * The job running frequency in seconds. The job should run every _internal seconds
+ * This property applys only to recurrent job.
+ * By default, its value is 0 e.g. run it only once.
+ *
+ * @var int
+ */
+ public $_interval = 0;
+
+ /**
+ * UNIX timestamp that it's the last time this job should occurs. If _interval was set, and _end_time
+ * was not, then this job will run forever.
+ * By default there is no end_time, so recurrent job will run forever. If the job is not recurrent
+ * (occurs only once) then the job will run at most once. If end_time has reached and the job was not
+ * execute yet, it will not run.
+ *
+ * @var int
+ */
+ public $_end_time = null;
+
+ /**
+ * A bit that determine whether job can be deleted from history. When set, removeJob will not
+ * delete the job from history.
+ *
+ * @var int
+ */
+ public $_preserved = 0;
+
+ /**
+ * Instantiate a Job object, describe all the information and properties of a job
+ *
+ * @param string $script relative path (relative to document root supplied in ini file) of the script this job should call when it's executing
+ * @return Job
+ *
+ * @removed 8.0
+ */
+ public function ZendAPI_Job($script) {}
+
+ /**
+ * Add the job the the specified queue (without instantiating a JobQueue object)
+ * This function should be used for extreme simplicity of the user when adding a single job,
+ when the user want to insert more than one job and/or manipulating other jobs (or job tasks)
+ he should create and use the JobQueue object
+ * Actually what this function do is to create a new JobQueue, login to it (with the given parameters),
+ add this job to it and logout
+ *
+ * @param string $jobqueue_url Full address of the queue we want to connect to
+ * @param string $password For authentication, the queue password
+ * @return int|false The added job id or false on failure
+ */
+ public function addJobToQueue($jobqueue_url, $password) {}
+
+ /**
+ * Set a new priority to the job
+ *
+ * @param int $priority Priority options are constants with the "JOB_QUEUE_PRIORITY_" prefix
+ */
+ public function setJobPriority($priority) {}
+
+ // All properties SET functions
+ public function setJobName($name) {}
+
+ public function setScript($script) {}
+
+ public function setApplicationID($app_id) {}
+
+ public function setUserVariables($vars) {}
+
+ public function setGlobalVariables($vars) {}
+
+ public function setJobDependency($job_id) {}
+
+ public function setScheduledTime($timestamp) {}
+
+ public function setRecurrenceData($interval, $end_time = null) {}
+
+ public function setPreserved($preserved) {}
+
+ /**
+ * Get the job properties
+ *
+ * @return array The same format of job options array as in the Job constructor
+ */
+ public function getProperties() {}
+
+ /**
+ * Get the job output
+ *
+ * @return mixed An HTML representing the job output
+ */
+ public function getOutput() {}
+
+ // All properties GET functions
+ public function getID() {}
+
+ public function getHost() {}
+
+ public function getScript() {}
+
+ public function getJobPriority() {}
+
+ public function getJobName() {}
+
+ public function getApplicationID() {}
+
+ public function getUserVariables() {}
+
+ public function getGlobalVariables() {}
+
+ public function getJobDependency() {}
+
+ public function getScheduledTime() {}
+
+ public function getInterval() {}
+
+ public function getEndTime() {}
+
+ public function getPreserved() {}
+
+ /**
+ * Get the current status of the job
+ * If this job was created and not returned from a queue (using the JobQueue::GetJob() function),
+ * the function will return false
+ * The status is one of the constants with the "JOB_QUEUE_STATUS_" prefix.
+ * E.g. job was performed and failed, job is waiting etc.
+ *
+ * @return int|false
+ */
+ public function getJobStatus() {}
+
+ /**
+ * Get how much seconds there are until the next time the job will run.
+ * If the job is not recurrence or it past its end time, then return 0.
+ *
+ * @return int
+ */
+ public function getTimeToNextRepeat() {}
+
+ /**
+ * For recurring job get the status of the last execution. For simple job,
+ * getLastPerformedStatus is equivalent to getJobStatus.
+ * jobs that haven't been executed yet will return STATUS_WAITING
+ * @return int
+ */
+ public function getLastPerformedStatus() {}
+}
+
+/**
+ * Disable/enable the Code Acceleration functionality at run time.
+ * @param bool $status If false, Acceleration is disabled, if true - enabled
+ * @return void
+ */
+function accelerator_set_status($status) {}
+
+/**
+ * Disables output caching for currently running scripts.
+ * @return void
+ */
+function output_cache_disable() {}
+
+/**
+ * Does not allow the cache to perform compression on the output of the current page.
+ * This output will not be compressed, even if the global set tings would normally allow
+ * compression on files of this type.
+ * @return void
+ */
+function output_cache_disable_compression() {}
+
+/**
+ * Gets the code’s return value from the cache if it is there, if not - run function and cache the value.
+ * @param string $key cache key
+ * @param string $function PHP expression
+ * @param int $lifetime data lifetime in cache (seconds)
+ * @return string function's return
+ */
+function output_cache_fetch($key, $function, $lifetime) {}
+
+/**
+ * If they cache for the key exists, output it, otherwise capture expression output, cache and pass it out.
+ * @param string $key cache key
+ * @param string $function PHP expression
+ * @param int $lifetime data lifetime in cache (seconds)
+ * @return mixed expression output
+ */
+function output_cache_output($key, $function, $lifetime) {}
+
+/**
+ * Removes all the cache data for the given filename.
+ * @param string $filename full script path on local filesystem
+ * @return bool true if OK, false if something went wrong
+ */
+function output_cache_remove($filename) {}
+
+/**
+ * Remove cache data for the script with given URL (all dependent data is removed)
+ * @param string $url the local url for the script
+ * @return bool true if OK
+ */
+function output_cache_remove_url($url) {}
+
+/**
+ * Remove item from PHP API cache by key
+ * @param string $key cache key as given to output_cache_get/output_cache_put
+ * @return bool true if OK
+ */
+function output_cache_remove_key($key) {}
+
+/**
+ * Puts data in cache according to the assigned key.
+ * @param string $key cache key
+ * @param mixed $data cached data (must not contain objects or resources)
+ * @return bool true if OK
+ */
+function output_cache_put($key, $data) {}
+
+/**
+ * Gets cached data according to the assigned key.
+ * @param string $key cache key
+ * @param int $lifetime cache validity time (seconds)
+ * @return mixed|false cached data if cache exists, false otherwise
+ */
+function output_cache_get($key, $lifetime) {}
+
+/**
+ * If data for assigned key exists, this function outputs it and returns a value of true.
+ * If not, it starts capturing the output. To be used in pair with output_cache_stop.
+ * @param string $key cache key
+ * @param int $lifetime cache validity time (seconds)
+ * @return bool true if cached data exists
+ */
+function output_cache_exists($key, $lifetime) {}
+
+/**
+ * If output was captured by output_cache_exists, this function stops the output capture and stores
+ * the data under the key that was given to output_cache_exists().
+ * @return void
+ */
+function output_cache_stop() {}
+
+/**
+ * Should be called from a custom error handler to pass the error to the monitor.
+ * The user function needs to accept two parameters: the error code, and a string describing the error.
+ * Then there are two optional parameters that may be supplied: the filename in which the error occurred
+ * and the line number in which the error occurred.
+ * @param int $errno
+ * @param string $errstr
+ * @param string $errfile
+ * @param int $errline
+ * @return void
+ */
+function monitor_pass_error($errno, $errstr, $errfile, $errline) {}
+
+/**
+ * Limited in the database to 255 chars
+ * @param string $hint
+ * @return void
+ */
+function monitor_set_aggregation_hint($hint) {}
+
+/**
+ * Creates a custom event with class $class, text $text and possibly severity and other user data
+ * @param string $class
+ * @param string $text
+ * @param int $severe [optional]
+ * @param mixed $user_data [optional]
+ * @return void
+ */
+function monitor_custom_event($class, $text, $severe = null, $user_data = null) {}
+
+/**
+ * Create an HTTPERROR event
+ * @param int $error_code the http error code to be associated with this event
+ * @param string $url the URL to be associated with this event
+ * @param int $severe [optional] the severety of the event: 0 - not severe, 1 - severe
+ * @return void
+ */
+function monitor_httperror_event($error_code, $url, $severe = null) {}
+
+/**
+ * Returns an array containing information about
+ * - module loading status (and cause of error if module failed to load)
+ *
- module license status (and cause of error if license not valid)
+ * @return array
+ */
+function monitor_license_info() {}
+
+/**
+ * Allow you to register a user function as an event handler.When a monitor event is triggerd
+ * all the user event handler are called and the return value from the handler is saved in
+ * an array keyed by the name the event handler was registered under. The event handlers
+ * results array is saved in the event_extra_data table.
+ * @param string $event_handler_func The callback function that will be call when the event is triggered, object methods may also be invoked statically using t
+his function by passing array($objectname, $methodname) to the function parameter
+ * @param string $handler_register_name [optional] The name this function is registered under - if none is supplied, the function will be registered under it's own name
+ * @param int $event_type_mask The mask of event types that the handler should be called on by default it's set to MONITOR_EVENT_ALL.
+ * @return bool TRUE on success and FALSE if an error occurs.
+ */
+function register_event_handler($event_handler_func, $handler_register_name, $event_type_mask) {}
+
+/**
+ * Allow you to unregister an event handler.
+ * @param string $handler_name the name you registered with the handler you now wish to unregister.
+ * @return bool TRUE on success and FALSE if no handler we registered under the given name.
+ */
+function unregister_event_handler($handler_name) {}
+
+/**
+ * Send a file using ZDS
+ * @param string $filename path to the file
+ * @param string $mime_type [optional] MIME type of the file, if omitted, taken from configured MIME types file
+ * @param string $custom_headers [optional] user defined headers that will be send instead of regular ZDS headers. few basic essential headers will be send anyway
+ * @return void|false FALSE if sending file failed, does not return otherwise
+ */
+function zend_send_file($filename, $mime_type, $custom_headers) {}
+
+/**
+ * Send a buffer using ZDS
+ * @param string $buffer the content that will be send
+ * @param string $mime_type [optional] MIME type of the buffer, if omitted, taken from configured MIME types file
+ * @param string $custom_headers [optional] user defined headers that will be send instead of regular ZDS headers. few basic essential headers will be send anyway
+ * @return void|false FALSE if sending file failed, does not return otherwise
+ */
+function zend_send_buffer($buffer, $mime_type, $custom_headers) {}
+
+class java
+{
+ /**
+ * Create Java object
+ *
+ * @param string $classname
+ * @return java
+ *
+ * @removed 8.0
+ */
+ public function java($classname) {}
+};
+
+class JavaException
+{
+ /**
+ * Get Java exception that led to this exception
+ *
+ * @return object
+ */
+ public function getCause() {}
+};
diff --git a/phpstorm-stubs/zend/zend_d.php b/phpstorm-stubs/zend/zend_d.php
new file mode 100644
index 0000000..68a7e9e
--- /dev/null
+++ b/phpstorm-stubs/zend/zend_d.php
@@ -0,0 +1,33 @@
+bar and $foo->bar() would match Bar too.
+ * @return void
+ */
+function java_set_ignore_case($ignore) {}
+
+/**
+ * Set encoding for strings received by Java from PHP. Default is UTF-8.
+ * @param string $encoding
+ * @return array
+ */
+function java_set_encoding($encoding) {}
+
+/**
+ * Control if exceptions are thrown on Java exception. Only for PHP5.
+ * @param bool $throw If true, PHP exception is thrown when Java exception happens. If set to false, use java_last_exception_get() to check for exception.
+ * @return void
+ */
+function java_throw_exceptions($throw) {}
+
+/**
+ * Reload Jar's that were dynamically loaded
+ *
+ * @return array
+ * @param string $new_jarpath
+ */
+function java_reload($new_jarpath) {}
+
+/**
+ * Add to Java's classpath in runtime
+ *
+ * @return array
+ * @param string $new_classpath
+ */
+function java_require($new_classpath) {}
+
+/**
+ * Shown if loader is enabled
+ * @return bool
+ */
+function zend_loader_enabled() {}
+
+/**
+ * Returns true if the current file is a Zend-encoded file.
+ * @return bool
+ */
+function zend_loader_file_encoded() {}
+
+/**
+ * Returns license (array with fields) if the current file has a valid license and is encoded, otherwise it returns false.
+ * @return array
+ */
+function zend_loader_file_licensed() {}
+
+/**
+ * Returns the name of the file currently being executed.
+ * @return string
+ */
+function zend_loader_current_file() {}
+
+/**
+ * Dynamically loads a license for applications encoded with Zend SafeGuard. The Override controls if it will override old licenses for the same product.
+ * @param string $license_file
+ * @param bool $override [optional]
+ * @return bool
+ */
+function zend_loader_install_license($license_file, $override) {}
+
+/**
+ * Obfuscate and return the given function name with the internal obfuscation function.
+ * @param string $function_name
+ * @return string
+ */
+function zend_obfuscate_function_name($function_name) {}
+
+/**
+ * Obfuscate and return the given class name with the internal obfuscation function.
+ * @param string $class_name
+ * @return string
+ */
+function zend_obfuscate_class_name($class_name) {}
+
+/**
+ * Returns the current obfuscation level support (set by zend_optimizer.obfuscation_level_support)
+ * @return int
+ */
+function zend_current_obfuscation_level() {}
+
+/**
+ * Start runtime-obfuscation support that allows limited mixing of obfuscated and un-obfuscated code.
+ * @return void
+ */
+function zend_runtime_obfuscate() {}
+
+/**
+ * Returns array of the host ids. If all_ids is true, then all IDs are returned, otehrwise only IDs considered "primary" are returned.
+ * @param bool $all_ids [optional]
+ * @return array
+ */
+function zend_get_id($all_ids = false) {}
+
+/**
+ * Returns Optimizer version. Alias: zend_loader_version()
+ * @return string
+ */
+function zend_optimizer_version() {}
+
+// End of Zend Extensions
diff --git a/phpstorm-stubs/zip/zip.php b/phpstorm-stubs/zip/zip.php
new file mode 100644
index 0000000..c3e492c
--- /dev/null
+++ b/phpstorm-stubs/zip/zip.php
@@ -0,0 +1,1481 @@
+ 'int'], default: '')]
+ public $status;
+
+ /**
+ * System status of the Zip Archive
+ * @var int
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')]
+ public $statusSys;
+
+ /**
+ * Number of files in archive
+ * @var int
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')]
+ public $numFiles;
+
+ /**
+ * File name in the file system
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $filename;
+
+ /**
+ * Comment for the archive
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $comment;
+
+ /**
+ * @var int
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'int'], default: '')]
+ public $lastId;
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Open a ZIP file archive
+ *
+ * @link https://php.net/manual/en/ziparchive.open.php
+ *
+ * @param string $filename
+ * The file name of the ZIP archive to open.
+ *
+ * @param int $flags [optional]
+ * The mode to use to open the archive.
+ *
+ *
+ * ZipArchive::OVERWRITE
+ *
+ *
+ * @return int|bool Error codes
+ *
+ * Returns TRUE on success, FALSE or the error code on error.
+ *
+ *
+ * ZipArchive::ER_EXISTS
+ *
+ *
+ * File already exists.
+ *
+ *
+ * ZipArchive::ER_INCONS
+ *
+ *
+ * Zip archive inconsistent.
+ *
+ *
+ * ZipArchive::ER_INVAL
+ *
+ *
+ * Invalid argument.
+ *
+ *
+ * ZipArchive::ER_MEMORY
+ *
+ *
+ * Malloc failure.
+ *
+ *
+ * ZipArchive::ER_NOENT
+ *
+ *
+ * No such file.
+ *
+ *
+ * ZipArchive::ER_NOZIP
+ *
+ *
+ * Not a zip archive.
+ *
+ *
+ * ZipArchive::ER_OPEN
+ *
+ *
+ * Can't open file.
+ *
+ *
+ * ZipArchive::ER_READ
+ *
+ *
+ * Read error.
+ *
+ *
+ * ZipArchive::ER_SEEK
+ *
+ *
+ * Seek error.
+ *
+ */
+ public function open(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filename,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Close the active archive (opened or newly created)
+ * @link https://php.net/manual/en/ziparchive.close.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function close() {}
+
+ /**
+ * (PHP 7 >= 7.2.0, PECL zip >= 1.15.0)
+ * Counts the number of files in the archive.
+ * @link https://www.php.net/manual/en/ziparchive.count.php
+ * @return int
+ * @since 7.2
+ */
+ public function count() {}
+
+ /**
+ * Returns the status error message, system and/or zip messages
+ * @link https://php.net/manual/en/ziparchive.getstatusstring.php
+ * @return string|false a string with the status message on success or FALSE on failure.
+ * @since 5.2.7
+ */
+ public function getStatusString() {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.8.0)
+ * Add a new directory
+ * @link https://php.net/manual/en/ziparchive.addemptydir.php
+ * @param string $dirname
+ * The directory to add.
+ *
+ * @param int $flags [optional] Set how to manage name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE)
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addEmptyDir(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $dirname,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Add a file to a ZIP archive using its contents
+ * @link https://php.net/manual/en/ziparchive.addfromstring.php
+ * @param string $name
+ * The name of the entry to create.
+ *
+ * @param string $content
+ * The contents to use to create the entry. It is used in a binary
+ * safe mode.
+ *
+ * @param int $flags [optional] Set how to manage name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE)
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addFromString(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $content,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 8192
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Adds a file to a ZIP archive from the given path
+ * @link https://php.net/manual/en/ziparchive.addfile.php
+ * @param string $filepath
+ * The path to the file to add.
+ *
+ * @param string $entryname [optional]
+ * If supplied, this is the local name inside the ZIP archive that will override the filename.
+ *
+ * @param int $start [optional]
+ * This parameter is not used but is required to extend ZipArchive.
+ *
+ * @param int $length [optional]
+ * This parameter is not used but is required to extend ZipArchive.
+ *
+ * @param int $flags [optional] Set how to manage name encoding (ZipArchive::FL_ENC_*) and entry replacement (ZipArchive::FL_OVERWRITE)
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addFile(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filepath,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $entryname = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $start = 0,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length = 0,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 8192
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL zip >= 1.9.0)
+ * Add files from a directory by glob pattern
+ * @link https://php.net/manual/en/ziparchive.addglob.php
+ * @param string $pattern
+ * A glob pattern against which files will be matched.
+ *
+ * @param int $flags [optional]
+ * A bit mask of glob() flags.
+ *
+ * @param array $options [optional]
+ * An associative array of options. Available options are:
+ *
+ *
+ * "add_path"
+ *
+ *
+ * Prefix to prepend when translating to the local path of the file within
+ * the archive. This is applied after any remove operations defined by the
+ * "remove_path" or "remove_all_path"
+ * options.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addGlob(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0,
+ array $options = []
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.3.0, PECL zip >= 1.9.0)
+ * Add files from a directory by PCRE pattern
+ * @link https://php.net/manual/en/ziparchive.addpattern.php
+ * @param string $pattern
+ * A PCRE pattern against which files will be matched.
+ *
+ * @param string $path [optional]
+ * The directory that will be scanned. Defaults to the current working directory.
+ *
+ * @param array $options [optional]
+ * An associative array of options accepted by ZipArchive::addGlob.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function addPattern(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pattern,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $path = '.',
+ array $options = []
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Renames an entry defined by its index
+ * @link https://php.net/manual/en/ziparchive.renameindex.php
+ * @param int $index
+ * Index of the entry to rename.
+ *
+ * @param string $new_name
+ * New name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function renameIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $new_name
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Renames an entry defined by its name
+ * @link https://php.net/manual/en/ziparchive.renamename.php
+ * @param string $name
+ * Name of the entry to rename.
+ *
+ * @param string $new_name
+ * New name.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function renameName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $new_name
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
+ * Set the comment of a ZIP archive
+ * @link https://php.net/manual/en/ziparchive.setarchivecomment.php
+ * @param string $comment
+ * The contents of the comment.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setArchiveComment(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $comment) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Returns the Zip archive comment
+ * @link https://php.net/manual/en/ziparchive.getarchivecomment.php
+ * @param int $flags [optional]
+ * If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged
+ * comment is returned.
+ *
+ * @return string|false the Zip archive comment or FALSE on failure.
+ */
+ public function getArchiveComment(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
+ * Set the comment of an entry defined by its index
+ * @link https://php.net/manual/en/ziparchive.setcommentindex.php
+ * @param int $index
+ * Index of the entry.
+ *
+ * @param string $comment
+ * The contents of the comment.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setCommentIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $comment
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
+ * Set the comment of an entry defined by its name
+ * @link https://php.net/manual/en/ziparchive.setcommentname.php
+ * @param string $name
+ * Name of the entry.
+ *
+ * @param string $comment
+ * The contents of the comment.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setCommentName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $comment
+ ) {}
+
+ /**
+ * Set the compression method of an entry defined by its index
+ * @link https://php.net/manual/en/ziparchive.setcompressionindex.php
+ * @param int $index Index of the entry.
+ * @param int $method The compression method. Either ZipArchive::CM_DEFAULT, ZipArchive::CM_STORE or ZipArchive::CM_DEFLATE.
+ * @param int $compflags [optional] Compression flags. Currently unused.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 7.0
+ */
+ public function setCompressionIndex(int $index, int $method, int $compflags = 0) {}
+
+ /**
+ * Set the compression method of an entry defined by its name
+ * https://secure.php.net/manual/en/ziparchive.setcompressionname.php
+ * @param string $name Name of the entry.
+ * @param int $method The compression method. Either ZipArchive::CM_DEFAULT, ZipArchive::CM_STORE or ZipArchive::CM_DEFLATE.
+ * @param int $compflags [optional] Compression flags. Currently unused.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 7.0
+ */
+ public function setCompressionName(string $name, int $method, int $compflags = 0) {}
+
+ /**
+ * Set the encryption method of an entry defined by its index
+ * @link https://php.net/manual/en/ziparchive.setencryptionindex.php
+ * @param int $index Index of the entry.
+ * @param int $method The encryption method defined by one of the ZipArchive::EM_ constants.
+ * @param string|null $password [optional] Optional password, default used when missing.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 7.2
+ */
+ public function setEncryptionIndex(int $index, int $method, ?string $password = null) {}
+
+ /**
+ * Set the encryption method of an entry defined by its name
+ * @link https://php.net/manual/en/ziparchive.setencryptionname.php
+ * @param string $name Name of the entry.
+ * @param int $method The encryption method defined by one of the ZipArchive::EM_ constants.
+ * @param string|null $password [optional] Optional password, default used when missing.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ * @since 7.2
+ */
+ public function setEncryptionName(string $name, int $method, ?string $password = null) {}
+
+ /**
+ * (PHP 5 >= 5.6.0, PECL zip >= 1.12.0)
+ * @param string $password
+ * @return bool
+ */
+ public function setPassword(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $password) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
+ * Returns the comment of an entry using the entry index
+ * @link https://php.net/manual/en/ziparchive.getcommentindex.php
+ * @param int $index
+ * Index of the entry
+ *
+ * @param int $flags [optional]
+ * If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged
+ * comment is returned.
+ *
+ * @return string|false the comment on success or FALSE on failure.
+ */
+ public function getCommentIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.4.0)
+ * Returns the comment of an entry using the entry name
+ * @link https://php.net/manual/en/ziparchive.getcommentname.php
+ * @param string $name
+ * Name of the entry
+ *
+ * @param int $flags [optional]
+ * If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged
+ * comment is returned.
+ *
+ * @return string|false the comment on success or FALSE on failure.
+ */
+ public function getCommentName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * delete an entry in the archive using its index
+ * @link https://php.net/manual/en/ziparchive.deleteindex.php
+ * @param int $index
+ * Index of the entry to delete.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function deleteIndex(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * delete an entry in the archive using its name
+ * @link https://php.net/manual/en/ziparchive.deletename.php
+ * @param string $name
+ * Name of the entry to delete.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function deleteName(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Get the details of an entry defined by its name.
+ * @link https://php.net/manual/en/ziparchive.statname.php
+ * @param string $name
+ * Name of the entry
+ *
+ * @param int $flags [optional]
+ * The flags argument specifies how the name lookup should be done.
+ * Also, ZipArchive::FL_UNCHANGED may be ORed to it to request
+ * information about the original file in the archive,
+ * ignoring any changes made.
+ * ZipArchive::FL_NOCASE
+ *
+ * @return array{name: string, index: int, crc: int, size: int, mtime: int, comp_size: int, comp_method: int, encryption_method: int}|false an array containing the entry details or FALSE on failure.
+ */
+ public function statName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Get the details of an entry defined by its index.
+ * @link https://php.net/manual/en/ziparchive.statindex.php
+ * @param int $index
+ * Index of the entry
+ *
+ * @param int $flags [optional]
+ * ZipArchive::FL_UNCHANGED may be ORed to it to request
+ * information about the original file in the archive,
+ * ignoring any changes made.
+ *
+ * @return array{name: string, index: int, crc: int, size: int, mtime: int, comp_size: int, comp_method: int, encryption_method: int}|false an array containing the entry details or FALSE on failure.
+ */
+ public function statIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Returns the index of the entry in the archive
+ * @link https://php.net/manual/en/ziparchive.locatename.php
+ * @param string $name
+ * The name of the entry to look up
+ *
+ * @param int $flags [optional]
+ * The flags are specified by ORing the following values,
+ * or 0 for none of them.
+ * ZipArchive::FL_NOCASE
+ *
+ * @return int|false the index of the entry on success or FALSE on failure.
+ */
+ public function locateName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Returns the name of an entry using its index
+ * @link https://php.net/manual/en/ziparchive.getnameindex.php
+ * @param int $index
+ * Index of the entry.
+ *
+ * @param int $flags [optional]
+ * If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged
+ * name is returned.
+ *
+ * @return string|false the name on success or FALSE on failure.
+ */
+ public function getNameIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Revert all global changes done in the archive.
+ * @link https://php.net/manual/en/ziparchive.unchangearchive.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function unchangeArchive() {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Undo all changes done in the archive
+ * @link https://php.net/manual/en/ziparchive.unchangeall.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function unchangeAll() {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Revert all changes done to an entry at the given index
+ * @link https://php.net/manual/en/ziparchive.unchangeindex.php
+ * @param int $index
+ * Index of the entry.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function unchangeIndex(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.5.0)
+ * Revert all changes done to an entry with the given name.
+ * @link https://php.net/manual/en/ziparchive.unchangename.php
+ * @param string $name
+ * Name of the entry.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function unchangeName(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Extract the archive contents
+ * @link https://php.net/manual/en/ziparchive.extractto.php
+ * @param string $pathto
+ * Location where to extract the files.
+ *
+ * @param string[]|string|null $files [optional]
+ * The entries to extract. It accepts either a single entry name or
+ * an array of names.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function extractTo(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $pathto,
+ #[LanguageLevelTypeAware(['8.0' => 'array|string|null'], default: '')] $files = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Returns the entry contents using its name
+ * @link https://php.net/manual/en/ziparchive.getfromname.php
+ * @param string $name
+ * Name of the entry
+ *
+ * @param int $len [optional]
+ * The length to be read from the entry. If 0, then the
+ * entire entry is read.
+ *
+ * @param int $flags [optional]
+ * The flags to use to open the archive. the following values may
+ * be ORed to it.
+ * ZipArchive::FL_UNCHANGED
+ *
+ * @return string|false the contents of the entry on success or FALSE on failure.
+ */
+ public function getFromName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $len = 0,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.3.0)
+ * Returns the entry contents using its index
+ * @link https://php.net/manual/en/ziparchive.getfromindex.php
+ * @param int $index
+ * Index of the entry
+ *
+ * @param int $len [optional]
+ * The length to be read from the entry. If 0, then the
+ * entire entry is read.
+ *
+ * @param int $flags [optional]
+ * The flags to use to open the archive. the following values may
+ * be ORed to it.
+ *
+ *
+ * ZipArchive::FL_UNCHANGED
+ *
+ * @return string|false the contents of the entry on success or FALSE on failure.
+ */
+ public function getFromIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $len = 0,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.2.0, PECL zip >= 1.1.0)
+ * Get a file handler to the entry defined by its name (read only).
+ * @link https://php.net/manual/en/ziparchive.getstream.php
+ * @param string $name
+ * The name of the entry to use.
+ *
+ * @return resource|false a file pointer (resource) on success or FALSE on failure.
+ */
+ public function getStream(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name) {}
+
+ /**
+ * Set the external attributes of an entry defined by its name
+ * @link https://www.php.net/manual/en/ziparchive.setexternalattributesname.php
+ * @param string $name Name of the entry
+ * @param int $opsys The operating system code defined by one of the ZipArchive::OPSYS_ constants.
+ * @param int $attr The external attributes. Value depends on operating system.
+ * @param int $flags [optional] Optional flags. Currently unused.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function setExternalAttributesName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $opsys,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attr,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * Retrieve the external attributes of an entry defined by its name
+ * @link https://www.php.net/manual/en/ziparchive.getexternalattributesname.php
+ * @param string $name Name of the entry
+ * @param int &$opsys On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.
+ * @param int &$attr On success, receive the external attributes. Value depends on operating system.
+ * @param int $flags [optional] If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function getExternalAttributesName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] &$opsys,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] &$attr,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * Set the external attributes of an entry defined by its index
+ * @link https://www.php.net/manual/en/ziparchive.setexternalattributesindex.php
+ * @param int $index Index of the entry.
+ * @param int $opsys The operating system code defined by one of the ZipArchive::OPSYS_ constants.
+ * @param int $attr The external attributes. Value depends on operating system.
+ * @param int $flags [optional] Optional flags. Currently unused.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function setExternalAttributesIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $opsys,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attr,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ /**
+ * Retrieve the external attributes of an entry defined by its index
+ * @link https://www.php.net/manual/en/ziparchive.getexternalattributesindex.php
+ * @param int $index Index of the entry.
+ * @param int &$opsys On success, receive the operating system code defined by one of the ZipArchive::OPSYS_ constants.
+ * @param int &$attr On success, receive the external attributes. Value depends on operating system.
+ * @param int $flags [optional] If flags is set to ZipArchive::FL_UNCHANGED, the original unchanged attributes are returned.
+ * @return bool Returns TRUE on success or FALSE on failure.
+ */
+ public function getExternalAttributesIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] &$opsys,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] &$attr,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ public static function isEncryptionMethodSupported(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $method,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $enc = true
+ ) {}
+
+ public static function isCompressionMethodSupported(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $method,
+ #[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $enc = true
+ ) {}
+
+ public function registerCancelCallback(#[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback) {}
+
+ public function registerProgressCallback(
+ #[LanguageLevelTypeAware(['8.0' => 'float'], default: '')] $rate,
+ #[LanguageLevelTypeAware(['8.0' => 'callable'], default: '')] $callback
+ ) {}
+
+ public function setMtimeName(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $name,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestamp,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ public function setMtimeIndex(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $timestamp,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+
+ public function replaceFile(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $filepath,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $index,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $start = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = null
+ ) {}
+}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Open a ZIP file archive
+ * @link https://php.net/manual/en/function.zip-open.php
+ * @param string $filename
+ * The file name of the ZIP archive to open.
+ *
+ * @return resource|int|false a resource handle for later use with
+ * zip_read and zip_close
+ * or returns the number of error if filename does not
+ * exist or in case of other error.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_open(string $filename) {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Close a ZIP file archive
+ * @link https://php.net/manual/en/function.zip-close.php
+ * @param resource $zip
+ * A ZIP file previously opened with zip_open.
+ *
+ * @return void No value is returned.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_close($zip): void {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Read next entry in a ZIP file archive
+ * @link https://php.net/manual/en/function.zip-read.php
+ * @param resource $zip
+ * A ZIP file previously opened with zip_open.
+ *
+ * @return resource|false a directory entry resource for later use with the
+ * zip_entry_... functions, or FALSE if
+ * there are no more entries to read, or an error code if an error
+ * occurred.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_read($zip) {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Open a directory entry for reading
+ * @link https://php.net/manual/en/function.zip-entry-open.php
+ * @param resource $zip_dp
+ * A valid resource handle returned by zip_open.
+ *
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @param string $mode [optional]
+ * Any of the modes specified in the documentation of
+ * fopen.
+ *
+ *
+ * Currently, mode is ignored and is always
+ * "rb". This is due to the fact that zip support
+ * in PHP is read only access.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ *
+ * Unlike fopen and other similar functions,
+ * the return value of zip_entry_open only
+ * indicates the result of the operation and is not needed for
+ * reading or closing the directory entry.
+ *
+ */
+#[Deprecated(reason: 'This function is deprecated in favor of the Object API', since: "8.0")]
+function zip_entry_open($zip_dp, $zip_entry, string $mode = 'rb'): bool {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Close a directory entry
+ * @link https://php.net/manual/en/function.zip-entry-close.php
+ * @param resource $zip_entry
+ * A directory entry previously opened zip_entry_open.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_close($zip_entry): bool {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Read from an open directory entry
+ * @link https://php.net/manual/en/function.zip-entry-read.php
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @param int $len [optional]
+ * The number of bytes to return.
+ *
+ *
+ * This should be the uncompressed length you wish to read.
+ *
+ * @return string|false the data read, empty string on end of a file, or FALSE on error.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_read($zip_entry, int $len = 1024): string|false {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Retrieve the actual file size of a directory entry
+ * @link https://php.net/manual/en/function.zip-entry-filesize.php
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @return int|false The size of the directory entry.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_filesize($zip_entry): int|false {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Retrieve the name of a directory entry
+ * @link https://php.net/manual/en/function.zip-entry-name.php
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @return string|false The name of the directory entry.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_name($zip_entry): string|false {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Retrieve the compressed size of a directory entry
+ * @link https://php.net/manual/en/function.zip-entry-compressedsize.php
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @return int|false The compressed size.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_compressedsize($zip_entry): int|false {}
+
+/**
+ * (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
+ * Retrieve the compression method of a directory entry
+ * @link https://php.net/manual/en/function.zip-entry-compressionmethod.php
+ * @param resource $zip_entry
+ * A directory entry returned by zip_read.
+ *
+ * @return string|false The compression method.
+ * @deprecated 8.0 Use {@link ZipArchive} instead.
+ */
+function zip_entry_compressionmethod($zip_entry): string|false {}
+
+// End of zip v.1.11.0
diff --git a/phpstorm-stubs/zlib/zlib.php b/phpstorm-stubs/zlib/zlib.php
new file mode 100644
index 0000000..d136e99
--- /dev/null
+++ b/phpstorm-stubs/zlib/zlib.php
@@ -0,0 +1,582 @@
+
+ * The file name. This file will be opened from the filesystem and its
+ * contents written to standard output.
+ *
+ * @param int $use_include_path [optional]
+ * You can set this optional parameter to 1, if you
+ * want to search for the file in the include_path too.
+ *
+ * @return int|false the number of (uncompressed) bytes read from the file, or FALSE on error
+ */
+function readgzfile(string $filename, int $use_include_path = 0): int|false {}
+
+/**
+ * Rewind the position of a gz-file pointer
+ * @link https://php.net/manual/en/function.gzrewind.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function gzrewind($stream): bool {}
+
+/**
+ * Close an open gz-file pointer
+ * @link https://php.net/manual/en/function.gzclose.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+function gzclose($stream): bool {}
+
+/**
+ * Test for EOF on a gz-file pointer
+ * @link https://php.net/manual/en/function.gzeof.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return bool TRUE if the gz-file pointer is at EOF or an error occurs;
+ * otherwise returns FALSE.
+ */
+function gzeof($stream): bool {}
+
+/**
+ * Get character from gz-file pointer
+ * @link https://php.net/manual/en/function.gzgetc.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return string|false The uncompressed character or FALSE on EOF (unlike gzeof).
+ */
+function gzgetc($stream): string|false {}
+
+/**
+ * Get line from file pointer
+ * @link https://php.net/manual/en/function.gzgets.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @param int|null $length
+ * The length of data to get.
+ *
+ * @return string|false The uncompressed string, or FALSE on error.
+ */
+function gzgets($stream, ?int $length = null): string|false {}
+
+/**
+ * Get line from gz-file pointer and strip HTML tags
+ * @link https://php.net/manual/en/function.gzgetss.php
+ * @param resource $zp
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @param int $length [optional]
+ * The length of data to get.
+ *
+ * @param string $allowable_tags [optional]
+ * You can use this optional parameter to specify tags which should not
+ * be stripped.
+ *
+ * @return string|false The uncompressed and striped string, or FALSE on error.
+ * @removed 8.0
+ */
+#[Deprecated(since: "7.3")]
+function gzgetss($zp, int $length, $allowable_tags) {}
+
+/**
+ * Binary-safe gz-file read
+ * @link https://php.net/manual/en/function.gzread.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @param int $length
+ * The number of bytes to read.
+ *
+ * @return string|false The data that have been read.
+ */
+function gzread($stream, int $length): string|false {}
+
+/**
+ * Open gz-file
+ * @link https://php.net/manual/en/function.gzopen.php
+ * @param string $filename
+ * The file name.
+ *
+ * @param string $mode
+ * As in fopen (rb or
+ * wb) but can also include a compression level
+ * (wb9) or a strategy: f for
+ * filtered data as in wb6f, h for
+ * Huffman only compression as in wb1h.
+ * (See the description of deflateInit2
+ * in zlib.h for
+ * more information about the strategy parameter.)
+ *
+ * @param int $use_include_path [optional]
+ * You can set this optional parameter to 1, if you
+ * want to search for the file in the include_path too.
+ *
+ * @return resource|false a file pointer to the file opened, after that, everything you read
+ * from this file descriptor will be transparently decompressed and what you
+ * write gets compressed.
+ *
+ *
+ * If the open fails, the function returns FALSE.
+ */
+function gzopen(string $filename, string $mode, int $use_include_path = 0) {}
+
+/**
+ * Output all remaining data on a gz-file pointer
+ * @link https://php.net/manual/en/function.gzpassthru.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return int The number of uncompressed characters read from gz
+ * and passed through to the input, or FALSE on error.
+ */
+function gzpassthru($stream): int {}
+
+/**
+ * Seek on a gz-file pointer
+ * @link https://php.net/manual/en/function.gzseek.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @param int $offset
+ * The seeked offset.
+ *
+ * @param int $whence [optional]
+ * whence values are:
+ * SEEK_SET - Set position equal to offset bytes.
+ * SEEK_CUR - Set position to current location plus offset.
+ *
+ *
+ * If whence is not specified, it is assumed to be
+ * SEEK_SET.
+ *
+ * @return int Upon success, returns 0; otherwise, returns -1. Note that seeking
+ * past EOF is not considered an error.
+ */
+function gzseek($stream, int $offset, int $whence = SEEK_SET): int {}
+
+/**
+ * Tell gz-file pointer read/write position
+ * @link https://php.net/manual/en/function.gztell.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @return int|false The position of the file pointer or FALSE if an error occurs.
+ */
+function gztell($stream): int|false {}
+
+/**
+ * Binary-safe gz-file write
+ * @link https://php.net/manual/en/function.gzwrite.php
+ * @param resource $stream
+ * The gz-file pointer. It must be valid, and must point to a file
+ * successfully opened by gzopen.
+ *
+ * @param string $data
+ * The string to write.
+ *
+ * @param int|null $length [optional]
+ * The number of uncompressed bytes to write. If supplied, writing will
+ * stop after length (uncompressed) bytes have been
+ * written or the end of string is reached,
+ * whichever comes first.
+ *
+ *
+ * Note that if the length argument is given,
+ * then the magic_quotes_runtime
+ * configuration option will be ignored and no slashes will be
+ * stripped from string.
+ *
+ * @return int|false the number of (uncompressed) bytes written to the given gz-file
+ * stream.
+ */
+function gzwrite($stream, string $data, ?int $length): int|false {}
+
+/**
+ * Alias of gzwrite
+ * @link https://php.net/manual/en/function.gzputs.php
+ * @param resource $stream
+ * @param string $data
+ * @param int|null $length [optional]
+ * @return int|false
+ */
+function gzputs($stream, string $data, ?int $length): int|false {}
+
+/**
+ * Read entire gz-file into an array
+ * @link https://php.net/manual/en/function.gzfile.php
+ * @param string $filename
+ * The file name.
+ *
+ * @param int $use_include_path [optional]
+ * You can set this optional parameter to 1, if you
+ * want to search for the file in the include_path too.
+ *
+ * @return array|false An array containing the file, one line per cell.
+ */
+function gzfile(string $filename, int $use_include_path = 0): array|false {}
+
+/**
+ * Compress a string
+ * @link https://php.net/manual/en/function.gzcompress.php
+ * @param string $data
+ * The data to compress.
+ *
+ * @param int $level [optional]
+ * The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression.
+ *
+ *
+ * If -1 is used, the default compression of the zlib library is used which is 6.
+ *
+ * @param int $encoding [optional]
+ * One of ZLIB_ENCODING_* constants.
+ *
+ * @return string|false The compressed string or FALSE if an error occurred.
+ */
+#[Pure]
+function gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_DEFLATE): string|false {}
+
+/**
+ * Uncompress a compressed string
+ * @link https://php.net/manual/en/function.gzuncompress.php
+ * @param string $data
+ * The data compressed by gzcompress.
+ *
+ * @param int $max_length [optional]
+ * The maximum length of data to decode.
+ *
+ * @return string|false The original uncompressed data or FALSE on error.
+ *
+ * The function will return an error if the uncompressed data is more than
+ * 32768 times the length of the compressed input data
+ * or more than the optional parameter length.
+ *
+ */
+#[Pure]
+function gzuncompress(string $data, int $max_length = 0): string|false {}
+
+/**
+ * Deflate a string
+ * @link https://php.net/manual/en/function.gzdeflate.php
+ * @param string $data
+ * The data to deflate.
+ *
+ * @param int $level [optional]
+ * The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression. If not given, the default compression level will
+ * be the default compression level of the zlib library.
+ *
+ * @param int $encoding [optional]
+ * One of ZLIB_ENCODING_* constants.
+ *
+ * @return string|false The deflated string or FALSE if an error occurred.
+ */
+#[Pure]
+function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_RAW): string|false {}
+
+/**
+ * Inflate a deflated string
+ * @link https://php.net/manual/en/function.gzinflate.php
+ * @param string $data
+ * The data compressed by gzdeflate.
+ *
+ * @param int $max_length [optional]
+ * The maximum length of data to decode.
+ *
+ * @return string|false The original uncompressed data or FALSE on error.
+ *
+ * The function will return an error if the uncompressed data is more than
+ * 32768 times the length of the compressed input data
+ * or more than the optional parameter length.
+ *
+ */
+#[Pure]
+function gzinflate(string $data, int $max_length = 0): string|false {}
+
+/**
+ * Create a gzip compressed string
+ * @link https://php.net/manual/en/function.gzencode.php
+ * @param string $data
+ * The data to encode.
+ *
+ * @param int $level [optional]
+ * The level of compression. Can be given as 0 for no compression up to 9
+ * for maximum compression. If not given, the default compression level will
+ * be the default compression level of the zlib library.
+ *
+ * @param int $encoding [optional]
+ * The encoding mode. Can be FORCE_GZIP (the default)
+ * or FORCE_DEFLATE.
+ *
+ *
+ * Prior to PHP 5.4.0, using FORCE_DEFLATE results in
+ * a standard zlib deflated string (inclusive zlib headers) after a gzip
+ * file header but without the trailing crc32 checksum.
+ *
+ *
+ * In PHP 5.4.0 and later, FORCE_DEFLATE generates
+ * RFC 1950 compliant output, consisting of a zlib header, the deflated
+ * data, and an Adler checksum.
+ *
+ * @return string|false The encoded string, or FALSE if an error occurred.
+ */
+#[Pure]
+function gzencode(string $data, int $level = -1, int $encoding = FORCE_GZIP): string|false {}
+
+/**
+ * Decodes a gzip compressed string
+ * @link https://php.net/manual/en/function.gzdecode.php
+ * @param string $data
+ * The data to decode, encoded by gzencode.
+ *
+ * @param int $max_length
+ * The maximum length of data to decode.
+ *
+ * @return string|false The decoded string, or FALSE if an error occurred.
+ * @since 5.4
+ */
+#[Pure]
+function gzdecode(string $data, int $max_length = 0): string|false {}
+
+/**
+ * Compress data with the specified encoding
+ * @link https://php.net/manual/en/function.zlib-encode.php
+ * @param string $data
+ *
+ * @param int $encoding
+ *
+ * @param int $level [optional] default -1
+ *
+ * @return string|false
+ * @since 5.4
+ */
+#[Pure]
+function zlib_encode(string $data, int $encoding, int $level = -1): string|false {}
+
+/**
+ * Uncompress any raw/gzip/zlib encoded data
+ * @link https://php.net/manual/en/function.zlib-decode.php
+ * @param string $data
+ *
+ * @param int $max_length
+ *
+ * @return string|false
+ * @since 5.4
+ */
+#[Pure]
+function zlib_decode(string $data, int $max_length = 0): string|false {}
+
+/**
+ * Returns the coding type used for output compression
+ * @link https://php.net/manual/en/function.zlib-get-coding-type.php
+ * @return string|false Possible return values are gzip, deflate,
+ * or FALSE.
+ */
+#[Pure]
+function zlib_get_coding_type(): string|false {}
+
+/**
+ * ob_start callback function to gzip output buffer
+ * @link https://php.net/manual/en/function.ob-gzhandler.php
+ * @param string $data
+ * @param int $flags
+ * @return string|false
+ */
+function ob_gzhandler(string $data, int $flags): string|false {}
+
+/**
+ * Initialize an incremental deflate context
+ * @link https://php.net/manual/en/function.deflate-init.php
+ * @param int $encoding
+ * One of the ZLIB_ENCODING_* constants.
+ *
+ * @param array $options
+ * An associative array which may contain the following elements:
+ * levelThe compression level in range -1..9; defaults to -1.
+ * memoryThe compression memory level in range 1..9; defaults to 8.
+ * windowThe zlib window size (logarithmic) in range 8..15; defaults
+ * to 15. strategyOne of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY,
+ * ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the
+ * default). dictionaryA string or an array of strings of the preset
+ * dictionary (default: no preset dictionary).
+ * @return resource|false|DeflateContext
+ * Returns a deflate context resource (zlib.deflate) on success, or
+ * FALSE on failure.
+ *
+ * @since 7.0
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "DeflateContext|false"], default: "resource|false")]
+function deflate_init(int $encoding, array $options = []) {}
+
+/**
+ * Incrementally deflate data
+ * @link https://php.net/manual/en/function.deflate-add.php
+ * @param DeflateContext|resource $context
+ * A context created with deflate_init().
+ *
+ * @param string $data
+ * A chunk of data to compress.
+ *
+ * @param int $flush_mode [optional]
+ * One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH,
+ * ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH,
+ * ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to
+ * maximize compression, and ZLIB_FINISH to terminate with
+ * the last chunk of data.
+ *
+ * @return string|false
+ * Returns a chunk of compressed data, or FALSE on failure.
+ *
+ * @since 7.0
+ */
+function deflate_add(#[LanguageLevelTypeAware(["8.0" => "DeflateContext"], default: "resource")] $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false {}
+
+/**
+ * Initialize an incremental inflate context
+ * @link https://php.net/manual/en/function.inflate-init.php
+ * @param int $encoding
+ * One of the ZLIB_ENCODING_* constants.
+ *
+ * @param array $options [optional]
+ * An associative array which may contain the following elements:
+ * levelThe compression level in range -1..9; defaults to -1.
+ * memoryThe compression memory level in range 1..9; defaults to 8.
+ * windowThe zlib window size (logarithmic) in range 8..15; defaults
+ * to 15. strategyOne of ZLIB_FILTERED, ZLIB_HUFFMAN_ONLY,
+ * ZLIB_RLE, ZLIB_FIXED or ZLIB_DEFAULT_STRATEGY (the
+ * default). dictionaryA string or an array of strings of the preset
+ * dictionary (default: no preset dictionary).
+ * @return resource|false|InflateContext
+ * Returns an inflate context resource (zlib.inflate) on success, or
+ * FALSE on failure.
+ *
+ * @since 7.0
+ */
+#[Pure]
+#[LanguageLevelTypeAware(["8.0" => "InflateContext|false"], default: "resource|false")]
+function inflate_init(int $encoding, array $options = []) {}
+
+/**
+ * Incrementally inflate encoded data
+ * @link https://php.net/manual/en/function.inflate-add.php
+ * @param InflateContext|resource $context
+ * A context created with inflate_init().
+ *
+ * @param string $data
+ * A chunk of compressed data.
+ *
+ * @param int $flush_mode [optional]
+ * One of ZLIB_BLOCK, ZLIB_NO_FLUSH, ZLIB_PARTIAL_FLUSH,
+ * ZLIB_SYNC_FLUSH (default), ZLIB_FULL_FLUSH,
+ * ZLIB_FINISH. Normally you will want to set ZLIB_NO_FLUSH to
+ * maximize compression, and ZLIB_FINISH to terminate with
+ * the last chunk of data.
+ *
+ * @return string|false
+ * Returns a chunk of uncompressed data, or FALSE on failure.
+ *
+ * @since 7.0
+ */
+function inflate_add(#[LanguageLevelTypeAware(["8.0" => "InflateContext"], default: "resource")] $context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string|false {}
+
+/**
+ * Get number of bytes read so far
+ * @param InflateContext|resource $context
+ * @return int
+ * @since 7.2
+ */
+#[Pure]
+function inflate_get_read_len(#[LanguageLevelTypeAware(["8.0" => "InflateContext"], default: "resource")] $context): int {}
+
+/**
+ * Get decompression status
+ * @param InflateContext|resource $context
+ * @return int
+ * @since 7.2
+ */
+#[Pure]
+function inflate_get_status(#[LanguageLevelTypeAware(["8.0" => "InflateContext"], default: "resource")] $context): int {}
+
+/**
+ * @since 8.0
+ */
+final class InflateContext
+{
+ /**
+ * Use inflate_init() instead
+ * @see inflate_init()
+ */
+ private function __construct() {}
+}
+
+/**
+ * @since 8.0
+ */
+final class DeflateContext
+{
+ /**
+ * Use deflate_init() instead
+ * @see deflate_init()
+ */
+ private function __construct() {}
+}
+
+define('FORCE_GZIP', 31);
+define('FORCE_DEFLATE', 15);
+/** @link https://php.net/manual/en/zlib.constants.php */
+define('ZLIB_ENCODING_RAW', -15);
+/** @link https://php.net/manual/en/zlib.constants.php */
+define('ZLIB_ENCODING_GZIP', 31);
+/** @link https://php.net/manual/en/zlib.constants.php */
+define('ZLIB_ENCODING_DEFLATE', 15);
+
+define('ZLIB_NO_FLUSH', 0);
+define('ZLIB_PARTIAL_FLUSH', 1);
+define('ZLIB_SYNC_FLUSH', 2);
+define('ZLIB_FULL_FLUSH', 3);
+define('ZLIB_BLOCK', 5);
+define('ZLIB_FINISH', 4);
+
+define('ZLIB_FILTERED', 1);
+define('ZLIB_HUFFMAN_ONLY', 2);
+define('ZLIB_RLE', 3);
+define('ZLIB_FIXED', 4);
+define('ZLIB_DEFAULT_STRATEGY', 0);
+define('ZLIB_OK', 0);
+define('ZLIB_STREAM_END', 1);
+define('ZLIB_NEED_DICT', 2);
+define('ZLIB_ERRNO', -1);
+define('ZLIB_STREAM_ERROR', -2);
+define('ZLIB_DATA_ERROR', -3);
+define('ZLIB_MEM_ERROR', -4);
+define('ZLIB_BUF_ERROR', -5);
+define('ZLIB_VERSION_ERROR', -6);
+
+define('ZLIB_VERSION', 'zlib_version_string'); // This is set to the zlib version
+define('ZLIB_VERNUM', 'zlib_version_string'); // This is set to the zlib version
diff --git a/phpstorm-stubs/zmq/zmq.php b/phpstorm-stubs/zmq/zmq.php
new file mode 100644
index 0000000..3783005
--- /dev/null
+++ b/phpstorm-stubs/zmq/zmq.php
@@ -0,0 +1,829 @@
+
+ * @link https://github.com/i-ekho/zmq-phpdoc
+ */
+/**
+ * Class ZMQ
+ * @link https://secure.php.net/manual/en/class.zmq.php
+ */
+class ZMQ
+{
+ /**
+ * Exclusive pair pattern
+ */
+ public const SOCKET_PAIR = 0;
+
+ /**
+ * Publisher socket
+ */
+ public const SOCKET_PUB = 1;
+
+ /**
+ * Subscriber socket
+ */
+ public const SOCKET_SUB = 2;
+
+ /**
+ * Request socket
+ */
+ public const SOCKET_REQ = 3;
+
+ /**
+ * Reply socket
+ */
+ public const SOCKET_REP = 4;
+
+ /**
+ * Alias for SOCKET_DEALER
+ */
+ public const SOCKET_XREQ = 5;
+
+ /**
+ * Alias for SOCKET_ROUTER
+ */
+ public const SOCKET_XREP = 6;
+
+ /**
+ * Pipeline upstream push socket
+ */
+ public const SOCKET_PUSH = 8;
+
+ /**
+ * Pipeline downstream pull socket
+ */
+ public const SOCKET_PULL = 7;
+
+ /**
+ * Extended REP socket that can route replies to requesters
+ */
+ public const SOCKET_ROUTER = 6;
+
+ /**
+ * Extended REQ socket that load balances to all connected peers
+ */
+ public const SOCKET_DEALER = 5;
+
+ /**
+ * Similar to SOCKET_PUB, except you can receive subscriptions as messages.
+ * The subscription message is 0 (unsubscribe) or 1 (subscribe) followed by the topic.
+ */
+ public const SOCKET_XPUB = 9;
+
+ /**
+ * Similar to SOCKET_SUB, except you can send subscriptions as messages. See SOCKET_XPUB for format.
+ */
+ public const SOCKET_XSUB = 10;
+
+ /**
+ * Used to send and receive TCP data from a non-ØMQ peer.
+ * Available if compiled against ZeroMQ 4.x or higher.
+ */
+ public const SOCKET_STREAM = 11;
+
+ /**
+ * The high water mark for inbound and outbound messages is a hard
+ * limit on the maximum number of outstanding messages ØMQ shall queue in memory
+ * for any single peer that the specified socket is communicating with.
+ * Setting this option on a socket will only affect connections made after the option has been set.
+ * On ZeroMQ 3.x this is a wrapper for setting both SNDHWM and RCVHWM.
+ */
+ public const SOCKOPT_HWM = 1;
+
+ /**
+ * The ZMQ_SNDHWM option shall set the high water mark for outbound messages on the specified socket.
+ * Available if compiled against ZeroMQ 3.x or higher.
+ */
+ public const SOCKOPT_SNDHWM = 23;
+
+ /**
+ * The ZMQ_SNDHWM option shall set the high water mark for inbound messages on the specified socket.
+ * Available if compiled against ZeroMQ 3.x or higher.
+ */
+ public const SOCKOPT_RCVHWM = 24;
+
+ /**
+ * Set I/O thread affinity
+ */
+ public const SOCKOPT_AFFINITY = 4;
+
+ /**
+ * Set socket identity
+ */
+ public const SOCKOPT_IDENTITY = 5;
+
+ /**
+ * Establish message filter. Valid for subscriber socket
+ */
+ public const SOCKOPT_SUBSCRIBE = 6;
+
+ /**
+ * Remove message filter. Valid for subscriber socket
+ */
+ public const SOCKOPT_UNSUBSCRIBE = 7;
+
+ /**
+ * Set rate for multicast sockets (pgm) (Value: int >= 0)
+ */
+ public const SOCKOPT_RATE = 8;
+
+ /**
+ * Set multicast recovery interval (Value: int >= 0)
+ */
+ public const SOCKOPT_RECOVERY_IVL = 9;
+
+ /**
+ * Set the initial reconnection interval (Value: int >= 0)
+ */
+ public const SOCKOPT_RECONNECT_IVL = 18;
+
+ /**
+ * Set the max reconnection interval (Value: int >= 0)
+ */
+ public const SOCKOPT_RECONNECT_IVL_MAX = 21;
+
+ /**
+ * Control multicast loopback (Value: int >= 0)
+ */
+ public const SOCKOPT_MCAST_LOOP = 10;
+
+ /**
+ * Set kernel transmit buffer size (Value: int >= 0)
+ */
+ public const SOCKOPT_SNDBUF = 11;
+
+ /**
+ * Set kernel receive buffer size (Value: int >= 0)
+ */
+ public const SOCKOPT_RCVBUF = 12;
+
+ /**
+ * Receive multi-part messages
+ */
+ public const SOCKOPT_RCVMORE = 13;
+
+ /**
+ * Get the socket type. Valid for getSockOpt
+ */
+ public const SOCKOPT_TYPE = 16;
+
+ /**
+ * The linger value of the socket.
+ * Specifies how long the socket blocks trying flush messages after it has been closed
+ */
+ public const SOCKOPT_LINGER = 17;
+
+ /**
+ * The SOCKOPT_BACKLOG option shall set the maximum length of the queue of outstanding peer connections
+ * for the specified socket; this only applies to connection-oriented transports.
+ */
+ public const SOCKOPT_BACKLOG = 19;
+
+ /**
+ * Limits the maximum size of the inbound message. Value -1 means no limit.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_MAXMSGSIZE = 22;
+
+ /**
+ * Sets the timeout for send operation on the socket. Value -1 means no limit.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_SNDTIMEO = 28;
+
+ /**
+ * Sets the timeout for receive operation on the socket. Value -1 means no limit.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_RCVTIMEO = 27;
+
+ /**
+ * Disable IPV6 support if 1.
+ * Available if compiled against ZeroMQ 3.x
+ */
+ public const SOCKOPT_IPV4ONLY = 31;
+
+ /**
+ * Retrieve the last connected endpoint - for use with * wildcard ports.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_LAST_ENDPOINT = 32;
+
+ /**
+ * Idle time for TCP keepalive.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_TCP_KEEPALIVE_IDLE = 36;
+
+ /**
+ * Count time for TCP keepalive.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_TCP_KEEPALIVE_CNT = 35;
+
+ /**
+ * Interval for TCP keepalive.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_TCP_KEEPALIVE_INTVL = 37;
+
+ /**
+ * Set a CIDR string to match against incoming TCP connections.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_DELAY_ATTACH_ON_CONNECT = 39;
+
+ /**
+ * Set a CIDR string to match against incoming TCP connections.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_TCP_ACCEPT_FILTER = 38;
+
+ /**
+ * Set the XPUB to receive an application message on each instance of a subscription.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const SOCKOPT_XPUB_VERBOSE = 40;
+
+ /**
+ * Sets the raw mode on the ROUTER, when set to 1.
+ * In raw mode when using tcp:// transport the socket will read and write without ZeroMQ framing.
+ * Available if compiled against ZeroMQ 4.0 or higher
+ */
+ public const SOCKOPT_ROUTER_RAW = 41;
+
+ /**
+ * Enable IPV6.
+ * Available if compiled against ZeroMQ 4.0 or higher
+ */
+ public const SOCKOPT_IPV6 = 42;
+
+ /**
+ * The socket limit for this context.
+ * Available if compiled against ZeroMQ 3.x or higher
+ */
+ public const CTXOPT_MAX_SOCKETS = 2;
+
+ /**
+ * Poll for incoming data
+ */
+ public const POLL_IN = 1;
+
+ /**
+ * Poll for outgoing data
+ */
+ public const POLL_OUT = 2;
+
+ /**
+ * Non-blocking operation.
+ * @deprecated use ZMQ::MODE_DONTWAIT instead
+ */
+ public const MODE_NOBLOCK = 1;
+
+ /**
+ * Non-blocking operation
+ */
+ public const MODE_DONTWAIT = 1;
+
+ /**
+ * Send multi-part message
+ */
+ public const MODE_SNDMORE = 2;
+
+ /**
+ * Forwarder device
+ */
+ public const DEVICE_FORWARDER = 2;
+
+ /**
+ * Queue device
+ */
+ public const DEVICE_QUEUE = 3;
+
+ /**
+ * Streamer device
+ */
+ public const DEVICE_STREAMER = 1;
+
+ /**
+ * ZMQ extension internal error
+ */
+ public const ERR_INTERNAL = -99;
+
+ /**
+ * Implies that the operation would block when ZMQ::MODE_DONTWAIT is used
+ */
+ public const ERR_EAGAIN = 11;
+
+ /**
+ * The operation is not supported by the socket type
+ */
+ public const ERR_ENOTSUP = 156384713;
+
+ /**
+ * The operation can not be executed because the socket is not in correct state
+ */
+ public const ERR_EFSM = 156384763;
+
+ /**
+ * The context has been terminated
+ */
+ public const ERR_ETERM = 156384765;
+
+ /**
+ * Private constructor to prevent direct initialization. This class holds the constants for ZMQ extension.
+ * @link https://secure.php.net/manual/en/zmq.construct.php
+ */
+ private function __construct() {}
+}
+/**
+ * Class ZMQContext
+ * @link https://secure.php.net/manual/en/class.zmqcontext.php
+ */
+class ZMQContext
+{
+ /**
+ * Constructs a new ZMQ context. The context is used to initialize sockets.
+ * A persistent context is required to initialize persistent sockets.
+ *
+ * @link https://secure.php.net/manual/en/zmqcontext.construct.php
+ *
+ * @param int $io_threads Number of io-threads in the context
+ * @param bool $is_persistent Whether the context is persistent. Persistent context is stored over multiple requests and is a requirement for persistent sockets.
+ */
+ public function __construct($io_threads = 1, $is_persistent = true) {}
+
+ /**
+ * (PECL zmq >= 1.0.4)
+ * Returns the value of a context option.
+ *
+ * @link https://secure.php.net/manual/en/zmqcontext.getopt.php
+ *
+ * @param string $key An int representing the option. See the ZMQ::CTXOPT_* constants.
+ * @return string|int Returns either a string or an integer depending on key. Throws ZMQContextException on error.
+ * @throws ZMQContextException
+ */
+ public function getOpt($key) {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Shortcut for creating new sockets from the context.
+ * If the context is not persistent the persistent_id parameter is ignored
+ * and the socket falls back to being non-persistent.
+ * The on_new_socket is called only when a new underlying socket structure is created.
+ *
+ * @link https://secure.php.net/manual/en/zmqcontext.getsocket.php
+ *
+ * @param int $type ZMQ::SOCKET_* constant to specify socket type.
+ * @param string $persistent_id If persistent_id is specified the socket will be persisted over multiple requests.
+ * @param callable $on_new_socket Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used. The callback takes ZMQSocket and persistent_id as two arguments.
+ * @return ZMQSocket
+ * @throws ZMQSocketException
+ */
+ public function getSocket($type, $persistent_id = null, $on_new_socket = null) {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Whether the context is persistent.
+ * Persistent context is needed for persistent connections as each socket is allocated from a context.
+ *
+ * @link https://secure.php.net/manual/en/zmqcontext.ispersistent.php
+ *
+ * @return bool Returns TRUE if the context is persistent and FALSE if the context is non-persistent.
+ */
+ public function isPersistent() {}
+
+ /**
+ * (PECL zmq >= 1.0.4)
+ * Sets a ZMQ context option. The type of the value depends on the key.
+ * See ZMQ Constant Types for more information.
+ *
+ * @link https://secure.php.net/manual/en/zmqcontext.setopt.php
+ *
+ * @param int $key One of the ZMQ::CTXOPT_* constants.
+ * @param mixed $value The value of the parameter.
+ * @return ZMQContext
+ * @throws ZMQContextException
+ */
+ public function setOpt($key, $value) {}
+}
+/**
+ * Class ZMQSocket
+ * @link https://secure.php.net/manual/en/class.zmqsocket.php
+ */
+class ZMQSocket
+{
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Constructs a ZMQSocket object.
+ * The persistent_id parameter can be used to allocated a persistent socket.
+ * A persistent socket has to be allocated from a persistent context and it stays connected over multiple requests.
+ * The persistent_id parameter can be used to recall the same socket over multiple requests.
+ * The on_new_socket is called only when a new underlying socket structure is created.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.construct.php
+ *
+ * @param ZMQContext $context ZMQContext to build this object
+ * @param int $type The type of the socket. See ZMQ::SOCKET_* constants.
+ * @param string $persistent_id [optional] If persistent_id is specified the socket will be persisted over multiple requests. If context is not persistent the socket falls back to non-persistent mode.
+ * @param callable $on_new_socket [optional] Callback function, which is executed when a new socket structure is created. This function does not get invoked if the underlying persistent connection is re-used.
+ *
+ * @throws ZMQSocketException
+ */
+ public function __construct(ZMQContext $context, $type, $persistent_id = null, $on_new_socket = null) {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Bind the socket to an endpoint.
+ * The endpoint is defined in format transport://address
+ * where transport is one of the following: inproc, ipc, tcp, pgm or epgm.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.bind.php
+ *
+ * @param string $dsn The bind dsn, for example transport://address.
+ * @param bool $force Tries to bind even if the socket has already been bound to the given endpoint.
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException if binding fails
+ */
+ public function bind($dsn, $force = false) {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Connect the socket to a remote endpoint.
+ * The endpoint is defined in format transport://address
+ * where transport is one of the following: inproc, ipc, tcp, pgm or epgm.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.connect.php
+ *
+ * @param string $dsn The bind dsn, for example transport://address.
+ * @param bool $force Tries to bind even if the socket has already been bound to the given endpoint.
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException If connection fails
+ */
+ public function connect($dsn, $force = false) {}
+
+ /**
+ * (PECL zmq >= 1.0.4)
+ * Disconnect the socket from a previously connected remote endpoint.
+ * The endpoint is defined in format transport://address
+ * where transport is one of the following: inproc, ipc, tcp, pgm or epgm.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.disconnect.php
+ *
+ * @param string $dsn The bind dsn, for example transport://address.
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException If connection fails
+ */
+ public function disconnect($dsn) {}
+
+ /**
+ * Returns a list of endpoints where the socket is connected or bound to.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.getendpoints.php
+ *
+ * @return array contains two sub-arrays: 'connect' and 'bind'
+ * @throws ZMQSocketException
+ */
+ public function getEndpoints() {}
+
+ /**
+ * Returns the persistent id string assigned of the object and NULL if socket is not persistent.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.getpersistentid.php
+ *
+ * @return string|null
+ * Returns the persistent id string assigned of the object and NULL if socket is not persistent.
+ *
+ */
+ public function getPersistentId() {}
+
+ /**
+ * Returns the value of a socket option.
+ * This method is available if ZMQ extension has been compiled against ZMQ version 2.0.7 or higher
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.getsockopt.php
+ *
+ * @since 0MQ 2.0.7
+ * @param int $key An int representing the option. See the ZMQ::SOCKOPT_* constants.
+ *
+ * @return string|int
+ * Returns either a string or an integer depending on key. Throws
+ * ZMQSocketException on error.
+ *
+ * @throws ZMQSocketException
+ */
+ public function getSockOpt($key) {}
+
+ /**
+ * Return the socket type.
+ * The socket type can be compared against ZMQ::SOCKET_* constants.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.getsockettype.php
+ *
+ * @return int
+ * Returns an integer representing the socket type. The integer can be compared against
+ * ZMQ::SOCKET_* constants.
+ *
+ */
+ public function getSocketType() {}
+
+ /**
+ * Check whether the socket is persistent.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.ispersistent.php
+ *
+ * @return bool Returns a boolean based on whether the socket is persistent or not.
+ */
+ public function isPersistent() {}
+
+ /**
+ * Receive a message from a socket.
+ * By default receiving will block until a message is available unless ZMQ::MODE_NOBLOCK flag is used.
+ * ZMQ::SOCKOPT_RCVMORE socket option can be used for receiving multi-part messages.
+ * Returns the message.
+ * If ZMQ::MODE_NOBLOCK is used and the operation would block bool false shall be returned.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.recv.php
+ * @see ZMQSocket::setSockOpt()
+ *
+ * @param int $mode Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.
+ *
+ * @return string|false Returns the message. Throws ZMQSocketException in error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.
+ * @throws ZMQSocketException if receiving fails.
+ */
+ public function recv($mode = 0) {}
+
+ /**
+ * Receive an array multipart message from a socket.
+ * By default receiving will block until a message is available unless ZMQ::MODE_NOBLOCK flag is used.
+ * Returns the array of message parts.
+ * If ZMQ::MODE_NOBLOCK is used and the operation would block bool false shall be returned.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.recvmulti.php
+ *
+ * @param int $mode Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants.
+ *
+ * @return string[] Returns the array of message parts. Throws ZMQSocketException in error. If ZMQ::MODE_NOBLOCK is used and the operation would block boolean false shall be returned.
+ * @throws ZMQSocketException if receiving fails.
+ */
+ public function recvMulti($mode = 0) {}
+
+ /**
+ * Send a message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.
+ * If ZMQ::MODE_NOBLOCK is used and the operation would block bool false shall be returned.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.send.php
+ *
+ * @param string $message The message to send
+ * @param int $mode Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants. *
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException if sending message fails
+ */
+ public function send($message, $mode = 0) {}
+
+ /**
+ * Send a multipart message using the socket. The operation can block unless ZMQ::MODE_NOBLOCK is used.
+ * If ZMQ::MODE_NOBLOCK is used and the operation would block bool false shall be returned.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.sendmulti.php
+ *
+ * @param array $message The message to send - an array of strings
+ * @param int $mode Pass mode flags to receive multipart messages or non-blocking operation. See ZMQ::MODE_* constants. *
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException if sending message fails
+ */
+ public function sendmulti(array $message, $mode = 0) {}
+
+ /**
+ * Sets a ZMQ socket option. The type of the value depends on the key.
+ * @see ZMQ Constant Types for more information.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.setsockopt.php
+ *
+ * @param int $key One of the ZMQ::SOCKOPT_* constants.
+ * @param mixed $value The value of the parameter.
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException
+ */
+ public function setSockOpt($key, $value) {}
+
+ /**
+ * Unbind the socket from an endpoint.
+ * The endpoint is defined in format transport://address
+ * where transport is one of the following: inproc, ipc, tcp, pgm or epgm.
+ *
+ * @link https://secure.php.net/manual/en/zmqsocket.unbind.php
+ *
+ * @param string $dsn The previously bound dsn, for example transport://address.
+ *
+ * @return ZMQSocket
+ * @throws ZMQSocketException if binding fails
+ */
+ public function unbind($dsn) {}
+}
+/**
+ * Class ZMQPoll
+ * @link https://secure.php.net/manual/en/class.zmqpoll.php
+ */
+class ZMQPoll
+{
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Adds a new item to the poll set and returns the internal id of the added item.
+ * The item can be removed from the poll set using the returned string id.
+ * Returns a string id of the added item which can be later used to remove the item.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.add.php
+ *
+ * @param ZMQSocket $entry ZMQSocket object or a PHP stream resource
+ * @param int $type Defines what activity the socket is polled for. See ZMQ::POLL_IN and ZMQ::POLL_OUT constants.
+ *
+ * @return int Returns a string id of the added item which can be later used to remove the item. Throws ZMQPollException on error.
+ * @throws ZMQPollException if the object has not been initialized with polling
+ */
+ public function add(ZMQSocket $entry, $type) {}
+
+ /**
+ * (PECL zmq >= 1.0.4)
+ * Clears all elements from the poll set.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.clear.php
+ *
+ * @return ZMQPoll Returns the current object.
+ */
+ public function clear() {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Count the items in the poll set.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.count.php
+ *
+ * @return int Returns an integer representing the amount of items in the poll set.
+ */
+ public function count() {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Returns the ids of the objects that had errors in the last poll.
+ * Returns an array containing ids for the items that had errors in the last poll.
+ * Empty array is returned if there were no errors.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.getlasterrors.php
+ *
+ * @return int[]
+ */
+ public function getLastErrors() {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Polls the items in the current poll set.
+ * The readable and writable items are returned in the readable and writable parameters.
+ * ZMQPoll::getLastErrors() can be used to check if there were errors.
+ * Returns an int representing amount of items with activity.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.poll.php
+ *
+ * @param array &$readable Array where readable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.
+ * @param array &$writable Array where writable ZMQSockets/PHP streams are returned. The array will be cleared at the beginning of the operation.
+ * @param int $timeout Timeout for the operation. -1 means that poll waits until at least one item has activity. Please note that starting from version 1.0.0 the poll timeout is defined in milliseconds, rather than microseconds.
+ *
+ * @throws ZMQPollException if polling fails
+ * @return int
+ */
+ public function poll(array &$readable, array &$writable, $timeout = -1) {}
+
+ /**
+ * (PECL zmq >= 0.5.0)
+ * Remove item from the poll set.
+ * The item parameter can be ZMQSocket object, a stream resource or the id returned from ZMQPoll::add() method.
+ * Returns true if the item was removed and false if the object with given id does not exist in the poll set.
+ *
+ * @link https://secure.php.net/manual/en/zmqpoll.remove.php
+ *
+ * @param ZMQSocket|string|mixed $item The ZMQSocket object, PHP stream or string id of the item.
+ * @return bool Returns true if the item was removed and false if the object with given id does not exist in the poll set.
+ */
+ public function remove($item) {}
+}
+/**
+ * Class ZMQDevice
+ * @link https://secure.php.net/manual/en/class.zmqdevice.php
+ */
+class ZMQDevice
+{
+ /**
+ * (PECL zmq >= 1.0.4)
+ * Construct a new device.
+ * "ØMQ devices can do intermediation of addresses, services, queues, or any other abstraction you care
+ * to define above the message and socket layers." -- zguide
+ * Call to this method will prepare the device. Usually devices are very long running processes so running this method from interactive script is not recommended. This method throw ZMQDeviceException if the device cannot be started.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.construct.php
+ *
+ * @param ZMQSocket $frontend Frontend parameter for the devices. Usually where there messages are coming.
+ * @param ZMQSocket $backend Backend parameter for the devices. Usually where there messages going to.
+ * @param null|ZMQSocket $listener Listener socket, which receives a copy of all messages going both directions. The type of this socket should be SUB, PULL or DEALER.
+ */
+ public function __construct(ZMQSocket $frontend, ZMQSocket $backend, ZMQSocket $listener = null) {}
+
+ /**
+ * Gets the idle callback timeout value.
+ * This method returns the idle callback timeout value.
+ * Added in ZMQ extension version 1.1.0.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.getidletimeout.php
+ *
+ * @return int This method returns the idle callback timeout value.
+ */
+ public function getIdleTimeout() {}
+
+ /**
+ * Gets the timer callback timeout value.
+ * Added in ZMQ extension version 1.1.0.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.gettimertimeout.php
+ *
+ * @return int This method returns the timer timeout value.
+ */
+ public function getTimerTimeout() {}
+
+ /**
+ * Runs the device.
+ * Call to this method will block until the device is running.
+ * It is not recommended that devices are used from interactive scripts.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.run.php
+ *
+ * @throws ZMQDeviceException
+ */
+ public function run() {}
+
+ /**
+ * Sets the idle callback function.
+ * If idle timeout is defined the idle callback function shall be called if the internal poll loop times out
+ * without events. If the callback function returns false or a value that evaluates to false the device is stopped.
+ * The callback function signature is callback (mixed $user_data).
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.setidlecallback.php
+ *
+ * @param callable $cb_func Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.
+ * @param int $timeout How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.
+ * @param mixed $user_data Additional data to pass to the callback function.
+ *
+ * @return ZMQDevice On success this method returns the current object.
+ */
+ public function setIdleCallback($cb_func, $timeout, $user_data) {}
+
+ /**
+ * Sets the idle callback timeout value. The idle callback is invoked periodically when the device is idle.
+ * On success this method returns the current object.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.setidletimeout.php
+ *
+ * @param int $timeout The idle callback timeout value in milliseconds
+ *
+ * @return ZMQDevice On success this method returns the current object.
+ */
+ public function setIdleTimeout($timeout) {}
+
+ /**
+ * Sets the timer callback function. The timer callback will be invoked after timeout has passed.
+ * The difference between idle and timer callbacks are that idle callback is invoked only when the device is idle.
+ * The callback function signature is callback (mixed $user_data).
+ * Added in ZMQ extension version 1.1.0.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.settimercallback.php
+ *
+ * @param callable $cb_func Callback function to invoke when the device is idle. Returning false or a value that evaluates to false from this function will cause the device to stop.
+ * @param int $timeout How often to invoke the idle callback in milliseconds. The idle callback is invoked periodically when there is no activity on the device. The timeout value guarantees that there is at least this amount of milliseconds between invocations of the callback function.
+ * @param mixed $user_data Additional data to pass to the callback function.
+ *
+ * @return ZMQDevice
+ */
+ public function setTimerCallback($cb_func, $timeout, $user_data) {}
+
+ /**
+ * Sets the timer callback timeout value. The timer callback is invoked periodically if it's set.
+ * Added in ZMQ extension version 1.1.0.
+ *
+ * @link https://secure.php.net/manual/en/zmqdevice.settimertimeout.php
+ *
+ * @param int $timeout The timer callback timeout value.
+ *
+ * @return ZMQDevice
+ */
+ public function setTimerTimeout($timeout) {}
+}
+class ZMQException extends Exception {}
+class ZMQContextException extends ZMQException {}
+class ZMQSocketException extends ZMQException {}
+class ZMQPollException extends ZMQException {}
+class ZMQDeviceException extends ZMQException {}
diff --git a/phpstorm-stubs/zookeeper/zookeeper.php b/phpstorm-stubs/zookeeper/zookeeper.php
new file mode 100644
index 0000000..d3b4782
--- /dev/null
+++ b/phpstorm-stubs/zookeeper/zookeeper.php
@@ -0,0 +1,366 @@
+