diff --git a/Core/Core.php b/Core/Core.php
index b6310f8c6..db4d9c926 100755
--- a/Core/Core.php
+++ b/Core/Core.php
@@ -635,7 +635,8 @@ function get_class_methods(object|string $object_or_class): array {}
* @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 {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function trigger_error(string $message, int $error_level = E_USER_NOTICE) {}
/**
* Alias of trigger_error
@@ -645,7 +646,8 @@ function trigger_error(string $message, int $error_level = E_USER_NOTICE): bool
* @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 {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function user_error(string $message, int $error_level = E_USER_NOTICE) {}
/**
* Sets a user-defined error handler function
diff --git a/Core/Core_c.php b/Core/Core_c.php
index fd69f1f14..885eda3e3 100644
--- a/Core/Core_c.php
+++ b/Core/Core_c.php
@@ -582,6 +582,11 @@ class DivisionByZeroError extends ArithmeticError {}
*/
class UnhandledMatchError extends Error {}
+/**
+ * @since 8.4
+ */
+class RequestParseBodyException extends Exception {}
+
/**
* An Error Exception.
* @link https://php.net/manual/en/class.errorexception.php
@@ -1151,3 +1156,15 @@ final class Override
{
public function __construct() {}
}
+
+/**
+ * @since 8.4
+ */
+#[Attribute(Attribute::TARGET_METHOD|Attribute::TARGET_FUNCTION|Attribute::TARGET_CLASS_CONSTANT)]
+final class Deprecated
+{
+ public readonly ?string $message;
+ public readonly ?string $since;
+
+ public function __construct(?string $message = null, ?string $since = null) {}
+}
diff --git a/Core/Core_d.php b/Core/Core_d.php
index 48819fbad..2b1f3a4c5 100755
--- a/Core/Core_d.php
+++ b/Core/Core_d.php
@@ -269,6 +269,11 @@
/** @link https://php.net/manual/en/outcontrol.constants.php */
define('PHP_OUTPUT_HANDLER_DISABLED', 8192);
+/**
+ * @since 8.4
+ */
+const PHP_SBINDIR = '/usr/local/sbin', PHP_OUTPUT_HANDLER_PROCESSED = 16384;
+
/**
* Specifies where the manpages were installed into.
* @since 5.3.7
diff --git a/PDO/PDO.php b/PDO/PDO.php
index 93ce7495b..21b25b3fc 100644
--- a/PDO/PDO.php
+++ b/PDO/PDO.php
@@ -1,1277 +1,1975 @@
PDOException from your own code.
- * @see https://php.net/manual/en/language.exceptions.php Exceptions in PHP
- * @link https://php.net/manual/en/class.pdoexception.php
- */
-class PDOException extends RuntimeException
-{
- #[LanguageLevelTypeAware(['8.1' => 'array|null'], default: '')]
- public $errorInfo;
- protected $code;
-}
-
-/**
- * Represents a connection between PHP and a database server.
- * @link https://php.net/manual/en/class.pdo.php
- */
-class PDO
-{
- /**
- * Represents the SQL NULL data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-null
- */
- public const PARAM_NULL = 0;
-
- /**
- * Represents the SQL INTEGER data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-int
- */
- public const PARAM_INT = 1;
-
- /**
- * Represents the SQL CHAR, VARCHAR, or other string data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str
- */
- public const PARAM_STR = 2;
-
- /**
- * Represents the SQL large object data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-lob
- */
- public const PARAM_LOB = 3;
-
- /**
- * Represents a recordset type. Not currently supported by any drivers.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-stmt
- */
- public const PARAM_STMT = 4;
-
- /**
- * Represents a boolean data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-bool
- */
- public const PARAM_BOOL = 5;
-
- /**
- * Flag to denote a string uses the national character set.
- * @since 7.2
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-natl
- */
- public const PARAM_STR_NATL = 1073741824;
-
- /**
- * Flag to denote a string uses the regular character set.
- * @since 7.2
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-char
- */
- public const PARAM_STR_CHAR = 536870912;
-
- /**
- * Sets the default string parameter type, this can be one of PDO::PARAM_STR_NATL and PDO::PARAM_STR_CHAR.
- * @since 7.2
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-str-param
- */
- public const ATTR_DEFAULT_STR_PARAM = 21;
-
- /**
- * Specifies that a function created with PDO::sqliteCreateFunction() 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/pdo.constants.php#pdo.constants.sqlite-deterministic
- */
- public const SQLITE_DETERMINISTIC = 2048;
-
- /**
- * @since 7.3
- */
- public const SQLITE_OPEN_READONLY = 1;
-
- /**
- * @since 7.3
- */
- public const SQLITE_OPEN_READWRITE = 2;
-
- /**
- * @since 7.3
- */
- public const SQLITE_OPEN_CREATE = 4;
-
- /**
- * @since 7.3
- */
- public const SQLITE_ATTR_OPEN_FLAGS = 1000;
-
- /**
- * Specifies that the parameter is an INOUT parameter for a stored
- * procedure. You must bitwise-OR this value with an explicit
- * PDO::PARAM_* data type.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-input-output
- */
- public const PARAM_INPUT_OUTPUT = 2147483648;
-
- /**
- * Allocation event
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-alloc
- */
- public const PARAM_EVT_ALLOC = 0;
-
- /**
- * Deallocation event
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-free
- */
- public const PARAM_EVT_FREE = 1;
-
- /**
- * Event triggered prior to execution of a prepared statement.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-pre
- */
- public const PARAM_EVT_EXEC_PRE = 2;
-
- /**
- * Event triggered subsequent to execution of a prepared statement.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-post
- */
- public const PARAM_EVT_EXEC_POST = 3;
-
- /**
- * Event triggered prior to fetching a result from a resultset.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-pre
- */
- public const PARAM_EVT_FETCH_PRE = 4;
-
- /**
- * Event triggered subsequent to fetching a result from a resultset.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-post
- */
- public const PARAM_EVT_FETCH_POST = 5;
-
- /**
- * Event triggered during bound parameter registration
- * allowing the driver to normalize the parameter name.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-normalize
- */
- public const PARAM_EVT_NORMALIZE = 6;
-
- /**
- * Specifies that the fetch method shall return each row as an object with
- * variable names that correspond to the column names returned in the result
- * set. PDO::FETCH_LAZY creates the object variable names as they are accessed.
- * Not valid inside PDOStatement::fetchAll.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-lazy
- */
- public const FETCH_LAZY = 1;
-
- /**
- * Specifies that the fetch method shall return each row as an array indexed
- * by column name as returned in the corresponding result set. If the result
- * set contains multiple columns with the same name,
- * PDO::FETCH_ASSOC returns
- * only a single value per column name.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-assoc
- */
- public const FETCH_ASSOC = 2;
-
- /**
- * Specifies that the fetch method shall return each row as an array indexed
- * by column number as returned in the corresponding result set, starting at
- * column 0.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-num
- */
- public const FETCH_NUM = 3;
-
- /**
- * Specifies that the fetch method shall return each row as 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/pdo.constants.php#pdo.constants.fetch-both
- */
- public const FETCH_BOTH = 4;
-
- /**
- * Specifies that the fetch method shall return each row as an object with
- * property names that correspond to the column names returned in the result
- * set.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-obj
- */
- public const FETCH_OBJ = 5;
-
- /**
- * Specifies that the fetch method shall return TRUE and assign the values of
- * the columns in the result set to the PHP variables to which they were
- * bound with the PDOStatement::bindParam or
- * PDOStatement::bindColumn methods.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-bound
- */
- public const FETCH_BOUND = 6;
-
- /**
- * Specifies that the fetch method shall return only a single requested
- * column from the next row in the result set.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-column
- */
- public const FETCH_COLUMN = 7;
-
- /**
- * Specifies that the fetch method shall return a new instance of the
- * requested class, mapping the columns to named properties in the class.
- * The magic
- * __set
- * method is called if the property doesn't exist in the requested class
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-class
- */
- public const FETCH_CLASS = 8;
-
- /**
- * Specifies that the fetch method shall update an existing instance of the
- * requested class, mapping the columns to named properties in the class.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-into
- */
- public const FETCH_INTO = 9;
-
- /**
- * Allows completely customize the way data is treated on the fly (only
- * valid inside PDOStatement::fetchAll).
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-func
- */
- public const FETCH_FUNC = 10;
-
- /**
- * Group return by values. Usually combined with
- * PDO::FETCH_COLUMN or
- * PDO::FETCH_KEY_PAIR.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-group
- */
- public const FETCH_GROUP = 65536;
-
- /**
- * Fetch only the unique values.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-unique
- */
- public const FETCH_UNIQUE = 196608;
-
- /**
- * Fetch a two-column result into an array where the first column is a key and the second column
- * is the value.
- * @since 5.2.3
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-key-pair
- */
- public const FETCH_KEY_PAIR = 12;
-
- /**
- * Determine the class name from the value of first column.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-classtype
- */
- public const FETCH_CLASSTYPE = 262144;
-
- /**
- * As PDO::FETCH_INTO but object is provided as a serialized string.
- * Available since PHP 5.1.0. Since PHP 5.3.0 the class constructor is never called if this
- * flag is set.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-serialize
- */
- public const FETCH_SERIALIZE = 524288;
-
- /**
- * Call the constructor before setting properties.
- * @since 5.2.0
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-props-late
- */
- public const FETCH_PROPS_LATE = 1048576;
-
- /**
- * Specifies that the fetch method shall return each row as an array indexed
- * by column name as returned in the corresponding result set. If the result
- * set contains multiple columns with the same name,
- * PDO::FETCH_NAMED returns
- * an array of values per column name.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-named
- */
- public const FETCH_NAMED = 11;
-
- /**
- * If this value is FALSE, PDO attempts to disable autocommit so that the
- * connection begins a transaction.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-autocommit
- */
- public const ATTR_AUTOCOMMIT = 0;
-
- /**
- * Setting the prefetch size allows you to balance speed against memory
- * usage for your application. Not all database/driver combinations support
- * setting of the prefetch size. A larger prefetch size results in
- * increased performance at the cost of higher memory usage.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-prefetch
- */
- public const ATTR_PREFETCH = 1;
-
- /**
- * Sets the timeout value in seconds for communications with the database.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-timeout
- */
- public const ATTR_TIMEOUT = 2;
-
- /**
- * @see https://php.net/manual/en/pdo.error-handling.php Errors and error handling
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-errmode
- */
- public const ATTR_ERRMODE = 3;
-
- /**
- * This is a read only attribute; it will return information about the
- * version of the database server to which PDO is connected.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-
- */
- public const ATTR_SERVER_VERSION = 4;
-
- /**
- * This is a read only attribute; it will return information about the
- * version of the client libraries that the PDO driver is using.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-client-version
- */
- public const ATTR_CLIENT_VERSION = 5;
-
- /**
- * This is a read only attribute; it will return some meta information about the
- * database server to which PDO is connected.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-server-info
- */
- public const ATTR_SERVER_INFO = 6;
- public const ATTR_CONNECTION_STATUS = 7;
-
- /**
- * Force column names to a specific case specified by the PDO::CASE_*
- * constants.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-case
- */
- public const ATTR_CASE = 8;
-
- /**
- * Get or set the name to use for a cursor. Most useful when using
- * scrollable cursors and positioned updates.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor-name
- */
- public const ATTR_CURSOR_NAME = 9;
-
- /**
- * Selects the cursor type. PDO currently supports either
- * PDO::CURSOR_FWDONLY and
- * PDO::CURSOR_SCROLL. Stick with
- * PDO::CURSOR_FWDONLY unless you know that you need a
- * scrollable cursor.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor
- */
- public const ATTR_CURSOR = 10;
-
- /**
- * Convert empty strings to SQL NULL values on data fetches.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-oracle-nulls
- */
- public const ATTR_ORACLE_NULLS = 11;
-
- /**
- * Request a persistent connection, rather than creating a new connection.
- * @see https://php.net/manual/en/pdo.connections.php Connections and Connection Management
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-persistent
- */
- public const ATTR_PERSISTENT = 12;
-
- /**
- * Sets the class name of which statements are returned as.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-statement-class
- */
- public const ATTR_STATEMENT_CLASS = 13;
-
- /**
- * Prepend the containing table name to each column name returned in the
- * result set. The table name and column name are separated by a decimal (.)
- * character. Support of this attribute is at the driver level; it may not
- * be supported by your driver.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-table-names
- */
- public const ATTR_FETCH_TABLE_NAMES = 14;
-
- /**
- * Prepend the containing catalog name to each column name returned in the
- * result set. The catalog name and column name are separated by a decimal
- * (.) character. Support of this attribute is at the driver level; it may
- * not be supported by your driver.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-catalog-names
- */
- public const ATTR_FETCH_CATALOG_NAMES = 15;
-
- /**
- * Returns the name of the driver.
- *
- * using PDO::ATTR_DRIVER_NAME
- *
- * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
- * echo "Running on mysql; doing something mysql specific here\n";
- * }
- *
- *
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-driver-name
- */
- public const ATTR_DRIVER_NAME = 16;
-
- /**
- * Forces all values fetched to be treated as strings.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-stringify-fetches
- */
- public const ATTR_STRINGIFY_FETCHES = 17;
-
- /**
- * Sets the maximum column name length.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-max-column-len
- */
- public const ATTR_MAX_COLUMN_LEN = 18;
-
- /**
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-emulate-prepares
- * @since 5.1.3
- */
- public const ATTR_EMULATE_PREPARES = 20;
-
- /**
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-fetch-mode
- * @since 5.2.0
- */
- public const ATTR_DEFAULT_FETCH_MODE = 19;
-
- /**
- * Do not raise an error or exception if an error occurs. The developer is
- * expected to explicitly check for errors. This is the default mode.
- * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-silent
- */
- public const ERRMODE_SILENT = 0;
-
- /**
- * Issue a PHP E_WARNING message if an error occurs.
- * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-warning
- */
- public const ERRMODE_WARNING = 1;
-
- /**
- * Throw a PDOException if an error occurs.
- * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-exception
- */
- public const ERRMODE_EXCEPTION = 2;
-
- /**
- * Leave column names as returned by the database driver.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-natural
- */
- public const CASE_NATURAL = 0;
-
- /**
- * Force column names to lower case.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-lower
- */
- public const CASE_LOWER = 2;
-
- /**
- * Force column names to upper case.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-upper
- */
- public const CASE_UPPER = 1;
-
- /**
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-natural
- */
- public const NULL_NATURAL = 0;
-
- /**
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-empty-string
- */
- public const NULL_EMPTY_STRING = 1;
-
- /**
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-to-string
- */
- public const NULL_TO_STRING = 2;
-
- /**
- * Corresponds to SQLSTATE '00000', meaning that the SQL statement was
- * successfully issued with no errors or warnings. This constant is for
- * your convenience when checking PDO::errorCode or
- * PDOStatement::errorCode to determine if an error
- * occurred. You will usually know if this is the case by examining the
- * return code from the method that raised the error condition anyway.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.err-none
- */
- public const ERR_NONE = '00000';
-
- /**
- * Fetch the next row in the result set. Valid only for scrollable cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-next
- */
- public const FETCH_ORI_NEXT = 0;
-
- /**
- * Fetch the previous row in the result set. Valid only for scrollable
- * cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-prior
- */
- public const FETCH_ORI_PRIOR = 1;
-
- /**
- * Fetch the first row in the result set. Valid only for scrollable cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-first
- */
- public const FETCH_ORI_FIRST = 2;
-
- /**
- * Fetch the last row in the result set. Valid only for scrollable cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-last
- */
- public const FETCH_ORI_LAST = 3;
-
- /**
- * Fetch the requested row by row number from the result set. Valid only
- * for scrollable cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-abs
- */
- public const FETCH_ORI_ABS = 4;
-
- /**
- * Fetch the requested row by relative position from the current position
- * of the cursor in the result set. Valid only for scrollable cursors.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-rel
- */
- public const FETCH_ORI_REL = 5;
-
- /**
- * Specifies that the default fetch mode shall be used.
- * @since 8.0.7
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-default
- */
- public const FETCH_DEFAULT = 0;
-
- /**
- * Create a PDOStatement object with a forward-only cursor. This is the
- * default cursor choice, as it is the fastest and most common data access
- * pattern in PHP.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-fwdonly
- */
- public const CURSOR_FWDONLY = 0;
-
- /**
- * Create a PDOStatement object with a scrollable cursor. Pass the
- * PDO::FETCH_ORI_* constants to control the rows fetched from the result set.
- * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-scroll
- */
- public const CURSOR_SCROLL = 1;
-
- /**
- * If this attribute is set to TRUE on a
- * PDOStatement, the MySQL driver will use the
- * buffered versions of the MySQL API. If you're writing portable code, you
- * should use PDOStatement::fetchAll instead.
- *
- * 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");
- * }
- *
- *
- * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query
- */
- public const MYSQL_ATTR_USE_BUFFERED_QUERY = 1000;
-
- /**
- *
- * 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)
- * Creates a PDO instance representing a connection to a database
- * @link https://php.net/manual/en/pdo.construct.php
- * @param string $dsn
- * @param string $username [optional]
- * @param string $password [optional]
- * @param array $options [optional]
- * @throws PDOException if the attempt to connect to the requested database fails.
- */
- public function __construct(
- #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $dsn,
- #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $username = null,
- #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $password = null,
- #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] $options = null
- ) {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * Prepares a statement for execution and returns a statement object
- * @link https://php.net/manual/en/pdo.prepare.php
- * @param string $query
- * 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
- * Note: An exception is raised even when the PDO::ATTR_ERRMODE
- * attribute is not PDO::ERRMODE_EXCEPTION.
- */
- #[TentativeType]
- public function beginTransaction(): bool {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * Commits a transaction
- * @link https://php.net/manual/en/pdo.commit.php
- * @return bool TRUE on success or FALSE on failure.
- * @throws PDOException if there is no active transaction.
- */
- #[TentativeType]
- public function commit(): bool {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * Rolls back a transaction
- * @link https://php.net/manual/en/pdo.rollback.php
- * @return bool TRUE on success or FALSE on failure.
- * @throws PDOException if there is no active transaction.
- */
- #[TentativeType]
- public function rollBack(): bool {}
-
- /**
- * (PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)
- * Checks if inside a transaction
- * @link https://php.net/manual/en/pdo.intransaction.php
- * @return bool TRUE if a transaction is currently active, and FALSE if not.
- */
- #[TentativeType]
- public function inTransaction(): bool {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * Set an attribute
- * @link https://php.net/manual/en/pdo.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.1.0)
- * Execute an SQL statement and return the number of affected rows
- * @link https://php.net/manual/en/pdo.exec.php
- * @param string $statement
- * 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)
- * 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|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)
- * Returns the ID of the last inserted row or sequence value
- * @link https://php.net/manual/en/pdo.lastinsertid.php
- * @param string $name [optional]
- * 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 {}
+namespace {
+ use JetBrains\PhpStorm\ArrayShape;
+ use JetBrains\PhpStorm\Deprecated;
+ use JetBrains\PhpStorm\Internal\LanguageLevelTypeAware;
+ use JetBrains\PhpStorm\Internal\PhpStormStubsElementAvailable;
+ use JetBrains\PhpStorm\Internal\TentativeType;
+ use JetBrains\PhpStorm\Pure;
+
+ /**
+ * Represents an error raised by PDO. You should not throw a
+ * PDOException from your own code.
+ * @see https://php.net/manual/en/language.exceptions.php Exceptions in PHP
+ * @link https://php.net/manual/en/class.pdoexception.php
+ */
+ class PDOException extends RuntimeException
+ {
+ #[LanguageLevelTypeAware(['8.1' => 'array|null'], default: '')]
+ public $errorInfo;
+ protected $code;
+ }
+
+ /**
+ * Represents a connection between PHP and a database server.
+ * @link https://php.net/manual/en/class.pdo.php
+ */
+ class PDO
+ {
+ /**
+ * Represents the SQL NULL data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-null
+ */
+ public const PARAM_NULL = 0;
+
+ /**
+ * Represents the SQL INTEGER data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-int
+ */
+ public const PARAM_INT = 1;
+
+ /**
+ * Represents the SQL CHAR, VARCHAR, or other string data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str
+ */
+ public const PARAM_STR = 2;
+
+ /**
+ * Represents the SQL large object data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-lob
+ */
+ public const PARAM_LOB = 3;
+
+ /**
+ * Represents a recordset type. Not currently supported by any drivers.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-stmt
+ */
+ public const PARAM_STMT = 4;
+
+ /**
+ * Represents a boolean data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-bool
+ */
+ public const PARAM_BOOL = 5;
+
+ /**
+ * Flag to denote a string uses the national character set.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-natl
+ */
+ public const PARAM_STR_NATL = 1073741824;
+
+ /**
+ * Flag to denote a string uses the regular character set.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-str-char
+ */
+ public const PARAM_STR_CHAR = 536870912;
+
+ /**
+ * Sets the default string parameter type, this can be one of PDO::PARAM_STR_NATL and PDO::PARAM_STR_CHAR.
+ * @since 7.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-str-param
+ */
+ public const ATTR_DEFAULT_STR_PARAM = 21;
+
+ /**
+ * Specifies that a function created with PDO::sqliteCreateFunction() 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/pdo.constants.php#pdo.constants.sqlite-deterministic
+ */
+ public const SQLITE_DETERMINISTIC = 2048;
+
+ /**
+ * @since 7.3
+ */
+ public const SQLITE_OPEN_READONLY = 1;
+
+ /**
+ * @since 7.3
+ */
+ public const SQLITE_OPEN_READWRITE = 2;
+
+ /**
+ * @since 7.3
+ */
+ public const SQLITE_OPEN_CREATE = 4;
+
+ /**
+ * @since 7.3
+ */
+ public const SQLITE_ATTR_OPEN_FLAGS = 1000;
+
+ /**
+ * Specifies that the parameter is an INOUT parameter for a stored
+ * procedure. You must bitwise-OR this value with an explicit
+ * PDO::PARAM_* data type.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-input-output
+ */
+ public const PARAM_INPUT_OUTPUT = 2147483648;
+
+ /**
+ * Allocation event
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-alloc
+ */
+ public const PARAM_EVT_ALLOC = 0;
+
+ /**
+ * Deallocation event
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-free
+ */
+ public const PARAM_EVT_FREE = 1;
+
+ /**
+ * Event triggered prior to execution of a prepared statement.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-pre
+ */
+ public const PARAM_EVT_EXEC_PRE = 2;
+
+ /**
+ * Event triggered subsequent to execution of a prepared statement.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-exec-post
+ */
+ public const PARAM_EVT_EXEC_POST = 3;
+
+ /**
+ * Event triggered prior to fetching a result from a resultset.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-pre
+ */
+ public const PARAM_EVT_FETCH_PRE = 4;
+
+ /**
+ * Event triggered subsequent to fetching a result from a resultset.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-fetch-post
+ */
+ public const PARAM_EVT_FETCH_POST = 5;
+
+ /**
+ * Event triggered during bound parameter registration
+ * allowing the driver to normalize the parameter name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.param-evt-normalize
+ */
+ public const PARAM_EVT_NORMALIZE = 6;
+
+ /**
+ * Specifies that the fetch method shall return each row as an object with
+ * variable names that correspond to the column names returned in the result
+ * set. PDO::FETCH_LAZY creates the object variable names as they are accessed.
+ * Not valid inside PDOStatement::fetchAll.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-lazy
+ */
+ public const FETCH_LAZY = 1;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column name as returned in the corresponding result set. If the result
+ * set contains multiple columns with the same name,
+ * PDO::FETCH_ASSOC returns
+ * only a single value per column name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-assoc
+ */
+ public const FETCH_ASSOC = 2;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column number as returned in the corresponding result set, starting at
+ * column 0.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-num
+ */
+ public const FETCH_NUM = 3;
+
+ /**
+ * Specifies that the fetch method shall return each row as 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/pdo.constants.php#pdo.constants.fetch-both
+ */
+ public const FETCH_BOTH = 4;
+
+ /**
+ * Specifies that the fetch method shall return each row as an object with
+ * property names that correspond to the column names returned in the result
+ * set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-obj
+ */
+ public const FETCH_OBJ = 5;
+
+ /**
+ * Specifies that the fetch method shall return TRUE and assign the values of
+ * the columns in the result set to the PHP variables to which they were
+ * bound with the PDOStatement::bindParam or
+ * PDOStatement::bindColumn methods.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-bound
+ */
+ public const FETCH_BOUND = 6;
+
+ /**
+ * Specifies that the fetch method shall return only a single requested
+ * column from the next row in the result set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-column
+ */
+ public const FETCH_COLUMN = 7;
+
+ /**
+ * Specifies that the fetch method shall return a new instance of the
+ * requested class, mapping the columns to named properties in the class.
+ * The magic
+ * __set
+ * method is called if the property doesn't exist in the requested class
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-class
+ */
+ public const FETCH_CLASS = 8;
+
+ /**
+ * Specifies that the fetch method shall update an existing instance of the
+ * requested class, mapping the columns to named properties in the class.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-into
+ */
+ public const FETCH_INTO = 9;
+
+ /**
+ * Allows completely customize the way data is treated on the fly (only
+ * valid inside PDOStatement::fetchAll).
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-func
+ */
+ public const FETCH_FUNC = 10;
+
+ /**
+ * Group return by values. Usually combined with
+ * PDO::FETCH_COLUMN or
+ * PDO::FETCH_KEY_PAIR.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-group
+ */
+ public const FETCH_GROUP = 65536;
+
+ /**
+ * Fetch only the unique values.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-unique
+ */
+ public const FETCH_UNIQUE = 196608;
+
+ /**
+ * Fetch a two-column result into an array where the first column is a key and the second column
+ * is the value.
+ * @since 5.2.3
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-key-pair
+ */
+ public const FETCH_KEY_PAIR = 12;
+
+ /**
+ * Determine the class name from the value of first column.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-classtype
+ */
+ public const FETCH_CLASSTYPE = 262144;
+
+ /**
+ * As PDO::FETCH_INTO but object is provided as a serialized string.
+ * Available since PHP 5.1.0. Since PHP 5.3.0 the class constructor is never called if this
+ * flag is set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-serialize
+ */
+ public const FETCH_SERIALIZE = 524288;
+
+ /**
+ * Call the constructor before setting properties.
+ * @since 5.2
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-props-late
+ */
+ public const FETCH_PROPS_LATE = 1048576;
+
+ /**
+ * Specifies that the fetch method shall return each row as an array indexed
+ * by column name as returned in the corresponding result set. If the result
+ * set contains multiple columns with the same name,
+ * PDO::FETCH_NAMED returns
+ * an array of values per column name.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-named
+ */
+ public const FETCH_NAMED = 11;
+
+ /**
+ * If this value is FALSE, PDO attempts to disable autocommit so that the
+ * connection begins a transaction.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-autocommit
+ */
+ public const ATTR_AUTOCOMMIT = 0;
+
+ /**
+ * Setting the prefetch size allows you to balance speed against memory
+ * usage for your application. Not all database/driver combinations support
+ * setting of the prefetch size. A larger prefetch size results in
+ * increased performance at the cost of higher memory usage.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-prefetch
+ */
+ public const ATTR_PREFETCH = 1;
+
+ /**
+ * Sets the timeout value in seconds for communications with the database.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-timeout
+ */
+ public const ATTR_TIMEOUT = 2;
+
+ /**
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and error handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-errmode
+ */
+ public const ATTR_ERRMODE = 3;
+
+ /**
+ * This is a read only attribute; it will return information about the
+ * version of the database server to which PDO is connected.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-
+ */
+ public const ATTR_SERVER_VERSION = 4;
+
+ /**
+ * This is a read only attribute; it will return information about the
+ * version of the client libraries that the PDO driver is using.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-client-version
+ */
+ public const ATTR_CLIENT_VERSION = 5;
+
+ /**
+ * This is a read only attribute; it will return some meta information about the
+ * database server to which PDO is connected.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-server-info
+ */
+ public const ATTR_SERVER_INFO = 6;
+ public const ATTR_CONNECTION_STATUS = 7;
+
+ /**
+ * Force column names to a specific case specified by the PDO::CASE_*
+ * constants.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-case
+ */
+ public const ATTR_CASE = 8;
+
+ /**
+ * Get or set the name to use for a cursor. Most useful when using
+ * scrollable cursors and positioned updates.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor-name
+ */
+ public const ATTR_CURSOR_NAME = 9;
+
+ /**
+ * Selects the cursor type. PDO currently supports either
+ * PDO::CURSOR_FWDONLY and
+ * PDO::CURSOR_SCROLL. Stick with
+ * PDO::CURSOR_FWDONLY unless you know that you need a
+ * scrollable cursor.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-cursor
+ */
+ public const ATTR_CURSOR = 10;
+
+ /**
+ * Convert empty strings to SQL NULL values on data fetches.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-oracle-nulls
+ */
+ public const ATTR_ORACLE_NULLS = 11;
+
+ /**
+ * Request a persistent connection, rather than creating a new connection.
+ * @see https://php.net/manual/en/pdo.connections.php Connections and Connection Management
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-persistent
+ */
+ public const ATTR_PERSISTENT = 12;
+
+ /**
+ * Sets the class name of which statements are returned as.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-statement-class
+ */
+ public const ATTR_STATEMENT_CLASS = 13;
+
+ /**
+ * Prepend the containing table name to each column name returned in the
+ * result set. The table name and column name are separated by a decimal (.)
+ * character. Support of this attribute is at the driver level; it may not
+ * be supported by your driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-table-names
+ */
+ public const ATTR_FETCH_TABLE_NAMES = 14;
+
+ /**
+ * Prepend the containing catalog name to each column name returned in the
+ * result set. The catalog name and column name are separated by a decimal
+ * (.) character. Support of this attribute is at the driver level; it may
+ * not be supported by your driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-fetch-catalog-names
+ */
+ public const ATTR_FETCH_CATALOG_NAMES = 15;
+
+ /**
+ * Returns the name of the driver.
+ *
+ * using PDO::ATTR_DRIVER_NAME
+ *
+ * if ($db->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql') {
+ * echo "Running on mysql; doing something mysql specific here\n";
+ * }
+ *
+ *
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-driver-name
+ */
+ public const ATTR_DRIVER_NAME = 16;
+
+ /**
+ * Forces all values fetched to be treated as strings.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-stringify-fetches
+ */
+ public const ATTR_STRINGIFY_FETCHES = 17;
+
+ /**
+ * Sets the maximum column name length.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-max-column-len
+ */
+ public const ATTR_MAX_COLUMN_LEN = 18;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-emulate-prepares
+ * @since 5.1.3
+ */
+ public const ATTR_EMULATE_PREPARES = 20;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.attr-default-fetch-mode
+ * @since 5.2
+ */
+ public const ATTR_DEFAULT_FETCH_MODE = 19;
+
+ /**
+ * Do not raise an error or exception if an error occurs. The developer is
+ * expected to explicitly check for errors. This is the default mode.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-silent
+ */
+ public const ERRMODE_SILENT = 0;
+
+ /**
+ * Issue a PHP E_WARNING message if an error occurs.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-warning
+ */
+ public const ERRMODE_WARNING = 1;
+
+ /**
+ * Throw a PDOException if an error occurs.
+ * @see https://php.net/manual/en/pdo.error-handling.php Errors and Error Handling
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.errmode-exception
+ */
+ public const ERRMODE_EXCEPTION = 2;
+
+ /**
+ * Leave column names as returned by the database driver.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-natural
+ */
+ public const CASE_NATURAL = 0;
+
+ /**
+ * Force column names to lower case.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-lower
+ */
+ public const CASE_LOWER = 2;
+
+ /**
+ * Force column names to upper case.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.case-upper
+ */
+ public const CASE_UPPER = 1;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-natural
+ */
+ public const NULL_NATURAL = 0;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-empty-string
+ */
+ public const NULL_EMPTY_STRING = 1;
+
+ /**
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.null-to-string
+ */
+ public const NULL_TO_STRING = 2;
+
+ /**
+ * Corresponds to SQLSTATE '00000', meaning that the SQL statement was
+ * successfully issued with no errors or warnings. This constant is for
+ * your convenience when checking PDO::errorCode or
+ * PDOStatement::errorCode to determine if an error
+ * occurred. You will usually know if this is the case by examining the
+ * return code from the method that raised the error condition anyway.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.err-none
+ */
+ public const ERR_NONE = '00000';
+
+ /**
+ * Fetch the next row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-next
+ */
+ public const FETCH_ORI_NEXT = 0;
+
+ /**
+ * Fetch the previous row in the result set. Valid only for scrollable
+ * cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-prior
+ */
+ public const FETCH_ORI_PRIOR = 1;
+
+ /**
+ * Fetch the first row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-first
+ */
+ public const FETCH_ORI_FIRST = 2;
+
+ /**
+ * Fetch the last row in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-last
+ */
+ public const FETCH_ORI_LAST = 3;
+
+ /**
+ * Fetch the requested row by row number from the result set. Valid only
+ * for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-abs
+ */
+ public const FETCH_ORI_ABS = 4;
+
+ /**
+ * Fetch the requested row by relative position from the current position
+ * of the cursor in the result set. Valid only for scrollable cursors.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-ori-rel
+ */
+ public const FETCH_ORI_REL = 5;
+
+ /**
+ * Specifies that the default fetch mode shall be used.
+ * @since 8.0.7
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.fetch-default
+ */
+ public const FETCH_DEFAULT = 0;
+
+ /**
+ * Create a PDOStatement object with a forward-only cursor. This is the
+ * default cursor choice, as it is the fastest and most common data access
+ * pattern in PHP.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-fwdonly
+ */
+ public const CURSOR_FWDONLY = 0;
+
+ /**
+ * Create a PDOStatement object with a scrollable cursor. Pass the
+ * PDO::FETCH_ORI_* constants to control the rows fetched from the result set.
+ * @link https://php.net/manual/en/pdo.constants.php#pdo.constants.cursor-scroll
+ */
+ public const CURSOR_SCROLL = 1;
+
+ /**
+ * If this attribute is set to TRUE on a
+ * PDOStatement, the MySQL driver will use the
+ * buffered versions of the MySQL API. If you're writing portable code, you
+ * should use PDOStatement::fetchAll instead.
+ *
+ * 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");
+ * }
+ *
+ *
+ * @link https://php.net/manual/en/ref.pdo-mysql.php#pdo.constants.mysql-attr-use-buffered-query
+ */
+ public const MYSQL_ATTR_USE_BUFFERED_QUERY = 1000;
+
+ /**
+ *
+ * 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)
+ * Creates a PDO instance representing a connection to a database
+ * @link https://php.net/manual/en/pdo.construct.php
+ * @param string $dsn
+ * @param string $username [optional]
+ * @param string $password [optional]
+ * @param array $options [optional]
+ * @throws PDOException if the attempt to connect to the requested database fails.
+ */
+ public function __construct(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $dsn,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $username = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $password = null,
+ #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] $options = null
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Prepares a statement for execution and returns a statement object
+ * @link https://php.net/manual/en/pdo.prepare.php
+ * @param string $query
+ * 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
+ * Note: An exception is raised even when the PDO::ATTR_ERRMODE
+ * attribute is not PDO::ERRMODE_EXCEPTION.
+ */
+ #[TentativeType]
+ public function beginTransaction(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Commits a transaction
+ * @link https://php.net/manual/en/pdo.commit.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws PDOException if there is no active transaction.
+ */
+ #[TentativeType]
+ public function commit(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Rolls back a transaction
+ * @link https://php.net/manual/en/pdo.rollback.php
+ * @return bool TRUE on success or FALSE on failure.
+ * @throws PDOException if there is no active transaction.
+ */
+ #[TentativeType]
+ public function rollBack(): bool {}
+
+ /**
+ * (PHP 5 >= 5.3.3, Bundled pdo_pgsql, PHP 7)
+ * Checks if inside a transaction
+ * @link https://php.net/manual/en/pdo.intransaction.php
+ * @return bool TRUE if a transaction is currently active, and FALSE if not.
+ */
+ #[TentativeType]
+ public function inTransaction(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Set an attribute
+ * @link https://php.net/manual/en/pdo.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.1.0)
+ * Execute an SQL statement and return the number of affected rows
+ * @link https://php.net/manual/en/pdo.exec.php
+ * @param string $statement
+ * 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)
+ * 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|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: '')] ...$fetchModeArgs
+ ) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Returns the ID of the last inserted row or sequence value
+ * @link https://php.net/manual/en/pdo.lastinsertid.php
+ * @param string $name [optional]
+ * 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:
+ *
+ * Element |
+ * Information |
+ *
+ *
+ * 0 |
+ * SQLSTATE error code (a five characters alphanumeric identifier defined
+ * in the ANSI SQL standard). |
+ *
+ *
+ * 1 |
+ * Driver-specific error code. |
+ *
+ *
+ * 2 |
+ * Driver-specific error message. |
+ *
+ *
+ *
+ * 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)
+ * Quotes a string for use in a query.
+ * @link https://php.net/manual/en/pdo.quote.php
+ * @param string $string
+ * 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)
+ * Return an array of available PDO drivers
+ * @link https://php.net/manual/en/pdo.getavailabledrivers.php
+ * @return array PDO::getAvailableDrivers returns an array of PDO driver names. If
+ * no drivers are available, it returns an empty array.
+ */
+ #[TentativeType]
+ public static function getAvailableDrivers(): array {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)
+ * Registers an aggregating User Defined Function for use in SQL statements
+ * @link https://php.net/manual/en/pdo.sqlitecreateaggregate.php
+ * @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. 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)
+ * Registers a User Defined Function for use as a collating function in SQL statements
+ * @link https://php.net/manual/en/pdo.sqlitecreatecollation.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.
+ */
+ public function sqliteCreateCollation($name, $callback) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)
+ * Registers a User Defined Function for use in SQL statements
+ * @link https://php.net/manual/en/pdo.sqlitecreatefunction.php
+ * @param string $function_name
+ * 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)
+ * Copy data from PHP array into table
+ * @link https://www.php.net/manual/en/pdo.pgsqlcopyfromarray.php
+ * @param string $tableName
+ * 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|null $fields
+ * List of fields to insert
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function pgsqlCopyFromArray($tableName, array $rows, $separator = "\t", $nullAs = "\\\\N", $fields = null) {}
+
+ /**
+ * (PHP 5 >= 5.3.3, PHP 7, PHP 8)
+ * Copy data from file into table
+ * @link https://www.php.net/manual/en/pdo.pgsqlcopyfromfile.php
+ * @param string $tableName
+ * 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|null $fields
+ * List of fields to insert
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function pgsqlCopyFromFile($tableName, $filename, $separator = "\t", $nullAs = "\\\\N", $fields = null) {}
+
+ /**
+ * (PHP 5 >= 5.3.3, PHP 7, PHP 8)
+ * Copy data from database table into PHP array
+ * @link https://www.php.net/manual/en/pdo.pgsqlcopytoarray.php
+ * @param string $tableName
+ * String containing table name
+ *
+ * @param string $separator
+ * Separator used in rows
+ *
+ * @param string $nullAs
+ * How to interpret null values
+ *
+ * @param string|null $fields
+ * List of fields to insert
+ *
+ * @return array|false returns an array of rows, or FALSE on failure.
+ */
+ public function pgsqlCopyToArray($tableName, $separator = "\t", $nullAs = "\\\\N", $fields = null) {}
+
+ /**
+ * (PHP 5 >= 5.3.3, PHP 7, PHP 8)
+ * Copy data from table into file
+ * @link https://www.php.net/manual/en/pdo.pgsqlcopytofile.php
+ * @param string $tableName
+ * 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|null $fields
+ * List of fields to insert
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function pgsqlCopyToFile($tableName, $filename, $separator = "\t", $nullAs = "\\\\N", $fields = null) {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
+ * Creates a new large object
+ * @link https://www.php.net/manual/en/pdo.pgsqllobcreate.php
+ * @return string|false returns the OID of the newly created large object on success,
+ * or FALSE on failure.
+ */
+ public function pgsqlLOBCreate() {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
+ * Opens an existing large object stream
+ * @link https://www.php.net/manual/en/pdo.pgsqllobopen.php
+ * @param string $oid
+ * 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($oid, $mode = "rb") {}
+
+ /**
+ * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
+ * Deletes the large object
+ * @link https://www.php.net/manual/en/pdo.pgsqllobunlink.php
+ * @param string $oid
+ * A large object identifier.
+ *
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function pgsqlLOBUnlink($oid) {}
+
+ /**
+ * (PHP 5 >= 5.6.0, PHP 7, PHP 8)
+ * Get asynchronous notification
+ * @link https://www.php.net/manual/en/pdo.pgsqlgetnotify.php
+ * @param int $fetchMode
+ * 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($fetchMode = PDO::FETCH_DEFAULT, $timeoutMilliseconds = 0) {}
+
+ /**
+ * (PHP 5 >= 5.6.0, PHP 7, PHP 8)
+ * Get the server PID
+ * @link https://www.php.net/manual/en/pdo.pgsqlgetpid.php
+ * @return int The server's PID.
+ */
+ public function pgsqlGetPid() {}
+
+ /**
+ * @since 8.4
+ */
+ public static function connect(string $dsn, ?string $username = null, ?string $password = null, ?array $options = null): static {}
+ }
/**
- * (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:
- *
- * Element |
- * Information |
- *
- *
- * 0 |
- * SQLSTATE error code (a five characters alphanumeric identifier defined
- * in the ANSI SQL standard). |
- *
- *
- * 1 |
- * Driver-specific error code. |
- *
- *
- * 2 |
- * Driver-specific error message. |
- *
- *
- *
- * 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)
- * Quotes a string for use in a query.
- * @link https://php.net/manual/en/pdo.quote.php
- * @param string $string
- * 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.0, PHP 7, PECL pdo >= 1.0.0)
+ * Represents a prepared statement and, after the statement is executed, an
+ * associated result set.
+ * @link https://php.net/manual/en/class.pdostatement.php
+ */
+ class PDOStatement implements IteratorAggregate
+ {
+ /**
+ * @var string
+ */
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $queryString;
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * Executes a prepared statement
+ * @link https://php.net/manual/en/pdostatement.execute.php
+ * @param array $params [optional]
+ * 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)
+ * Fetches the next row from a result set
+ * @link https://php.net/manual/en/pdostatement.fetch.php
+ * @param int $mode [optional]
+ * 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)
+ * Binds a parameter to the specified variable name
+ * @link https://php.net/manual/en/pdostatement.bindparam.php
+ * @param mixed $param
+ * 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)
+ * Bind a column to a PHP variable
+ * @link https://php.net/manual/en/pdostatement.bindcolumn.php
+ * @param mixed $column
+ * 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)
+ * Binds a value to a parameter
+ * @link https://php.net/manual/en/pdostatement.bindvalue.php
+ * @param mixed $param
+ * 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)
+ * Returns the number of rows affected by the last SQL statement
+ * @link https://php.net/manual/en/pdostatement.rowcount.php
+ * @return int the number of rows.
+ */
+ #[TentativeType]
+ public function rowCount(): int {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Returns a single column from the next row of a result set
+ * @link https://php.net/manual/en/pdostatement.fetchcolumn.php
+ * @param int $column [optional]
+ * 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 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)
+ * Fetches the next row and returns it as an object.
+ * @link https://php.net/manual/en/pdostatement.fetchobject.php
+ * @param class-string $class [optional]
+ * Name of the created class.
+ *
+ * @param array $constructorArgs [optional]
+ * Elements of this array are passed to the constructor.
+ *
+ * @return T|stdClass|null an instance of the required class with property names that
+ * correspond to the column names or FALSE on failure.
+ */
+ #[TentativeType]
+ public function fetchObject(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $class = "stdClass",
+ #[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $constructorArgs = []
+ ): object|false {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
+ * 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. |
+ *
+ *
+ * 2 |
+ * Driver specific error message. |
+ *
+ */
+ #[ArrayShape([0 => "string", 1 => "int", 2 => "string"])]
+ #[TentativeType]
+ public function errorInfo(): array {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * 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
+ * The 0-indexed column in the result set.
+ *
+ * @return array|false an associative array containing the following values representing
+ * the metadata for a single column:
+ *
+ *
+ * Column metadata
+ *
+ * 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 mixed ...$args Constructor arguments.
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ public function setFetchMode($mode, ...$args) {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
+ * Advances to the next rowset in a multi-rowset statement handle
+ * @link https://php.net/manual/en/pdostatement.nextrowset.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function nextRowset(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Closes the cursor, enabling the statement to be executed again.
+ * @link https://php.net/manual/en/pdostatement.closecursor.php
+ * @return bool TRUE on success or FALSE on failure.
+ */
+ #[TentativeType]
+ public function closeCursor(): bool {}
+
+ /**
+ * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
+ * Dump an SQL prepared command
+ * @link https://php.net/manual/en/pdostatement.debugdumpparams.php
+ * @return bool|null No value is returned.
+ */
+ #[TentativeType]
+ public function debugDumpParams(): ?bool {}
+
+ final public function __wakeup() {}
+
+ final public function __sleep() {}
+
+ /**
+ * @return Iterator
+ * @since 8.0
+ */
+ public function getIterator(): Iterator {}
+
+ public function connect() {}
+ }
+
+ final class PDORow
+ {
+ #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
+ public $queryString;
+ }
/**
* (PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)
@@ -1280,718 +1978,22 @@ final public function __sleep() {}
* @return array PDO::getAvailableDrivers returns an array of PDO driver names. If
* no drivers are available, it returns an empty array.
*/
- #[TentativeType]
- public static function getAvailableDrivers(): array {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)
- * Registers an aggregating User Defined Function for use in SQL statements
- * @link https://php.net/manual/en/pdo.sqlitecreateaggregate.php
- * @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. 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)
- * Registers a User Defined Function for use as a collating function in SQL statements
- * @link https://php.net/manual/en/pdo.sqlitecreatecollation.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.
- */
- public function sqliteCreateCollation($name, $callback) {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo_sqlite >= 1.0.0)
- * Registers a User Defined Function for use in SQL statements
- * @link https://php.net/manual/en/pdo.sqlitecreatefunction.php
- * @param string $function_name
- * 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)
- * Copy data from PHP array into table
- * @link https://www.php.net/manual/en/pdo.pgsqlcopyfromarray.php
- * @param string $tableName
- * 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 {}
+ #[Pure]
+ function pdo_drivers(): array {}
- /**
- * (PHP 5 >= 5.3.3, PHP 7, PHP 8)
- * Copy data from file into table
- * @link https://www.php.net/manual/en/pdo.pgsqlcopyfromfile.php
- * @param string $tableName
- * 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)
- * Copy data from database table into PHP array
- * @link https://www.php.net/manual/en/pdo.pgsqlcopytoarray.php
- * @param string $tableName
- * 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)
- * Copy data from table into file
- * @link https://www.php.net/manual/en/pdo.pgsqlcopytofile.php
- * @param string $tableName
- * 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)
- * Creates a new large object
- * @link https://www.php.net/manual/en/pdo.pgsqllobcreate.php
- * @return string|false returns the OID of the newly created large object on success,
- * or FALSE on failure.
- */
- public function pgsqlLOBCreate(): string|false {}
-
- /**
- * (PHP 5 >= 5.1.2, PHP 7, PHP 8, PECL pdo_pgsql >= 1.0.2)
- * Opens an existing large object stream
- * @link https://www.php.net/manual/en/pdo.pgsqllobopen.php
- * @param string $oid
- * 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)
- * Deletes the large object
- * @link https://www.php.net/manual/en/pdo.pgsqllobunlink.php
- * @param string $oid
- * 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)
- * Get asynchronous notification
- * @link https://www.php.net/manual/en/pdo.pgsqlgetnotify.php
- * @param int $fetchMode
- * 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)
- * Get the server PID
- * @link https://www.php.net/manual/en/pdo.pgsqlgetpid.php
- * @return int The server's PID.
- */
- public function pgsqlGetPid(): int {}
+ function confirm_pdo_ibm_compiled() {}
}
-/**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 1.0.0)
- * Represents a prepared statement and, after the statement is executed, an
- * associated result set.
- * @link https://php.net/manual/en/class.pdostatement.php
- */
-class PDOStatement implements IteratorAggregate
-{
- /**
- * @var string
- */
- #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
- public $queryString;
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * Executes a prepared statement
- * @link https://php.net/manual/en/pdostatement.execute.php
- * @param array $params [optional]
- * 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)
- * Fetches the next row from a result set
- * @link https://php.net/manual/en/pdostatement.fetch.php
- * @param int $mode [optional]
- * 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)
- * Binds a parameter to the specified variable name
- * @link https://php.net/manual/en/pdostatement.bindparam.php
- * @param mixed $param
- * 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)
- * Bind a column to a PHP variable
- * @link https://php.net/manual/en/pdostatement.bindcolumn.php
- * @param mixed $column
- * 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)
- * Binds a value to a parameter
- * @link https://php.net/manual/en/pdostatement.bindvalue.php
- * @param mixed $param
- * 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)
- * Returns the number of rows affected by the last SQL statement
- * @link https://php.net/manual/en/pdostatement.rowcount.php
- * @return int the number of rows.
- */
- #[TentativeType]
- public function rowCount(): int {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
- * Returns a single column from the next row of a result set
- * @link https://php.net/manual/en/pdostatement.fetchcolumn.php
- * @param int $column [optional]
- * 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 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)
- * Fetches the next row and returns it as an object.
- * @link https://php.net/manual/en/pdostatement.fetchobject.php
- * @param class-string $class [optional]
- * Name of the created class.
- *
- * @param array $constructorArgs [optional]
- * Elements of this array are passed to the constructor.
- *
- * @return T|stdClass|null an instance of the required class with property names that
- * correspond to the column names or FALSE on failure.
- */
- #[TentativeType]
- public function fetchObject(
- #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $class = "stdClass",
- #[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $constructorArgs = []
- ): object|false {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.1.0)
- * 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. |
- *
- *
- * 2 |
- * Driver specific error message. |
- *
- */
- #[ArrayShape([0 => "string", 1 => "int", 2 => "string"])]
- #[TentativeType]
- public function errorInfo(): array {}
+namespace Pdo {
+ use PDO;
/**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.2.0)
- * 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.
+ * @since 8.4
*/
- #[TentativeType]
- public function setAttribute(
- #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attribute,
- #[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value
- ): bool {}
+ class Sqlite extends PDO {}
/**
- * (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.
+ * @since 8.4
*/
- #[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
- * The 0-indexed column in the result set.
- *
- * @return array|false an associative array containing the following values representing
- * the metadata for a single column:
- *
- *
- * Column metadata
- *
- * 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)
- * 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 string|object|null $className [optional]
- * Class name or object
- *
- * @param mixed ...$params Constructor 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)
- * Advances to the next rowset in a multi-rowset statement handle
- * @link https://php.net/manual/en/pdostatement.nextrowset.php
- * @return bool TRUE on success or FALSE on failure.
- */
- #[TentativeType]
- public function nextRowset(): bool {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
- * Closes the cursor, enabling the statement to be executed again.
- * @link https://php.net/manual/en/pdostatement.closecursor.php
- * @return bool TRUE on success or FALSE on failure.
- */
- #[TentativeType]
- public function closeCursor(): bool {}
-
- /**
- * (PHP 5 >= 5.1.0, PHP 7, PECL pdo >= 0.9.0)
- * Dump an SQL prepared command
- * @link https://php.net/manual/en/pdostatement.debugdumpparams.php
- * @return bool|null No value is returned.
- */
- #[TentativeType]
- public function debugDumpParams(): ?bool {}
-
- final public function __wakeup() {}
-
- final public function __sleep() {}
-
- /**
- * @return Iterator
- * @since 8.0
- */
- public function getIterator(): Iterator {}
+ class Mysql extends PDO {}
}
-
-final class PDORow
-{
- #[LanguageLevelTypeAware(['8.1' => 'string'], default: '')]
- public $queryString;
-}
-
-/**
- * (PHP 5 >= 5.1.3, PHP 7, PECL pdo >= 1.0.3)
- * Return an array of available PDO drivers
- * @link https://php.net/manual/en/pdo.getavailabledrivers.php
- * @return array PDO::getAvailableDrivers returns an array of PDO driver names. If
- * no drivers are available, it returns an empty array.
- */
-#[Pure]
-function pdo_drivers(): array {}
-
-// End of PDO v.1.0.4dev
diff --git a/Phar/Phar.php b/Phar/Phar.php
index 2e6eb1747..5f373bd50 100644
--- a/Phar/Phar.php
+++ b/Phar/Phar.php
@@ -182,6 +182,8 @@ public function compressFiles(#[LanguageLevelTypeAware(['8.0' => 'int'], default
* @link https://php.net/manual/en/phar.decompressfiles.php
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function decompressFiles() {}
/**
@@ -307,6 +309,8 @@ public function convertToData(
* @return bool returns TRUE on success, but it is safer to encase method call in a
* try/catch block and assume success if no exception is thrown.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function copy(
#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $to,
#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $from
@@ -333,6 +337,8 @@ public function count(#[PhpStormStubsElementAvailable(from: '8.0')] int $mode =
* @return bool returns TRUE on success, but it is better to check for thrown exception,
* and assume success if none is thrown.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function delete(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $localName) {}
/**
@@ -342,6 +348,8 @@ public function delete(#[LanguageLevelTypeAware(['8.0' => 'string'], default: ''
* @return bool returns TRUE on success, but it is better to check for thrown exception,
* and assume success if none is thrown.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function delMetadata() {}
/**
@@ -620,6 +628,8 @@ public function setSignatureAlgorithm(
*
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setStub(
$stub,
#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $length
@@ -814,7 +824,8 @@ final public static function mungServer(array $variables): void {}
* @throws PharException
* @return bool TRUE on success or FALSE on failure.
*/
- final public static function unlinkArchive(string $filename): bool {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ final public static function unlinkArchive(string $filename) {}
/**
* (PHP >= 5.3.0, PECL phar >= 2.0.0)
@@ -1155,6 +1166,8 @@ public function chmod(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $
* @param int $compression
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function compress(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $compression) {}
/**
@@ -1163,6 +1176,8 @@ public function compress(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')
* @link https://php.net/manual/en/pharfileinfo.decompress.php
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function decompress() {}
/**
@@ -1176,6 +1191,8 @@ public function decompress() {}
* archive. Files within PharData archives do not have
* this restriction.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function delMetadata() {}
/**
diff --git a/PhpStormStubsMap.php b/PhpStormStubsMap.php
index 2faaf5a30..50c55fb96 100644
--- a/PhpStormStubsMap.php
+++ b/PhpStormStubsMap.php
@@ -435,11 +435,46 @@ final class PhpStormStubsMap
'DateTimeImmutable' => 'date/date_c.php',
'DateTimeInterface' => 'date/date_c.php',
'DateTimeZone' => 'date/date_c.php',
+ 'Dba\\Connection' => 'dba/Connection.php',
'Decimal\\Decimal' => 'decimal/decimal.php',
'DeflateContext' => 'zlib/zlib.php',
+ 'Deprecated' => 'Core/Core_c.php',
'Directory' => 'standard/standard_0.php',
'DirectoryIterator' => 'SPL/SPL_c1.php',
'DivisionByZeroError' => 'Core/Core_c.php',
+ 'Dom\\AdjacentPosition' => 'dom/dom_n.php',
+ 'Dom\\Attr' => 'dom/dom_n.php',
+ 'Dom\\BrokenRandomEngineError' => 'dom/dom_n.php',
+ 'Dom\\CDATASection' => 'dom/dom_n.php',
+ 'Dom\\CharacterData' => 'dom/dom_n.php',
+ 'Dom\\ChildNode' => 'dom/dom_n.php',
+ 'Dom\\Comment' => 'dom/dom_n.php',
+ 'Dom\\Document' => 'dom/dom_n.php',
+ 'Dom\\DocumentFragment' => 'dom/dom_n.php',
+ 'Dom\\DocumentType' => 'dom/dom_n.php',
+ 'Dom\\DtdNamedNodeMap' => 'dom/dom_n.php',
+ 'Dom\\Element' => 'dom/dom_n.php',
+ 'Dom\\Entity' => 'dom/dom_n.php',
+ 'Dom\\EntityReference' => 'dom/dom_n.php',
+ 'Dom\\HTMLCollection' => 'dom/dom_n.php',
+ 'Dom\\HTMLDocument' => 'dom/dom_n.php',
+ 'Dom\\HTMLElement' => 'dom/dom_n.php',
+ 'Dom\\Implementation' => 'dom/dom_n.php',
+ 'Dom\\Mysql' => 'dom/dom_n.php',
+ 'Dom\\NamedNodeMap' => 'dom/dom_n.php',
+ 'Dom\\NamespaceInfo' => 'dom/dom_n.php',
+ 'Dom\\Node' => 'dom/dom_n.php',
+ 'Dom\\NodeList' => 'dom/dom_n.php',
+ 'Dom\\Notation' => 'dom/dom_n.php',
+ 'Dom\\ParentNode' => 'dom/dom_n.php',
+ 'Dom\\ProcessingInstruction' => 'dom/dom_n.php',
+ 'Dom\\RandomError' => 'dom/dom_n.php',
+ 'Dom\\RandomException' => 'dom/dom_n.php',
+ 'Dom\\Sqlite' => 'dom/dom_n.php',
+ 'Dom\\Text' => 'dom/dom_n.php',
+ 'Dom\\TokenList' => 'dom/dom_n.php',
+ 'Dom\\XMLDocument' => 'dom/dom_n.php',
+ 'Dom\\XPath' => 'dom/dom_n.php',
'DomainException' => 'SPL/SPL.php',
'Ds\\Collection' => 'ds/ds.php',
'Ds\\Deque' => 'ds/ds.php',
@@ -783,6 +818,9 @@ final class PhpStormStubsMap
'Parle\\Stack' => 'Parle/Stack.php',
'Parle\\Token' => 'Parle/Token.php',
'ParseError' => 'Core/Core_c.php',
+ 'Pcntl\\QosClass' => 'pcntl/pcntl_c.php',
+ 'Pdo\\Mysql' => 'PDO/PDO.php',
+ 'Pdo\\Sqlite' => 'PDO/PDO.php',
'PgSql\\Connection' => 'pgsql/pgsql_c.php',
'PgSql\\Lob' => 'pgsql/pgsql_c.php',
'PgSql\\Result' => 'pgsql/pgsql_c.php',
@@ -792,6 +830,7 @@ final class PhpStormStubsMap
'PharFileInfo' => 'Phar/Phar.php',
'PhpToken' => 'tokenizer/PhpToken.php',
'Pool' => 'pthreads/pthreads.php',
+ 'PropertyHookType' => 'Reflection/PropertyHookType.php',
'RRDCreator' => 'rrd/rrd.php',
'RRDGraph' => 'rrd/rrd.php',
'RRDUpdater' => 'rrd/rrd.php',
@@ -849,6 +888,7 @@ final class PhpStormStubsMap
'ReflectionAttribute' => 'Reflection/ReflectionAttribute.php',
'ReflectionClass' => 'Reflection/ReflectionClass.php',
'ReflectionClassConstant' => 'Reflection/ReflectionClassConstant.php',
+ 'ReflectionConstant' => 'Reflection/ReflectionConstant.php',
'ReflectionEnum' => 'Reflection/ReflectionEnum.php',
'ReflectionEnumBackedCase' => 'Reflection/ReflectionEnumBackedCase.php',
'ReflectionEnumUnitCase' => 'Reflection/ReflectionEnumUnitCase.php',
@@ -879,8 +919,10 @@ final class PhpStormStubsMap
'Relay\\Relay' => 'relay/Relay.php',
'Relay\\Sentinel' => 'relay/Sentinel.php',
'Relay\\Table' => 'relay/Table.php',
+ 'RequestParseBodyException' => 'Core/Core_c.php',
'ResourceBundle' => 'intl/intl.php',
'ReturnTypeWillChange' => 'Core/Core_c.php',
+ 'RoundingMode' => 'standard/standard_10.php',
'RuntimeException' => 'SPL/SPL.php',
'SNMP' => 'snmp/snmp.php',
'SNMPException' => 'snmp/snmp.php',
@@ -956,6 +998,8 @@ final class PhpStormStubsMap
'SoapParam' => 'soap/soap.php',
'SoapServer' => 'soap/soap.php',
'SoapVar' => 'soap/soap.php',
+ 'Soap\\Sdl' => 'soap/soap_n.php',
+ 'Soap\\Url' => 'soap/soap_n.php',
'Socket' => 'sockets/sockets.php',
'SodiumException' => 'sodium/sodium.php',
'SolrClient' => 'solr/SolrClient.php',
@@ -1004,6 +1048,7 @@ final class PhpStormStubsMap
'Stomp' => 'stomp/stomp.php',
'StompException' => 'stomp/stomp.php',
'StompFrame' => 'stomp/stomp.php',
+ 'StreamBucket' => 'standard/standard_0.php',
'Stringable' => 'Core/Core_c.php',
'Svn' => 'svn/svn.php',
'SvnNode' => 'svn/svn.php',
@@ -1411,6 +1456,7 @@ final class PhpStormStubsMap
'Brotli\\uncompress' => 'brotli/brotli.php',
'Brotli\\uncompress_add' => 'brotli/brotli.php',
'Brotli\\uncompress_init' => 'brotli/brotli.php',
+ 'Dom\\import_simplexml' => 'dom/dom_n.php',
'GEOSLineMerge' => 'geos/geos.php',
'GEOSPolygonize' => 'geos/geos.php',
'GEOSRelateMatch' => 'geos/geos.php',
@@ -1722,6 +1768,8 @@ final class PhpStormStubsMap
'apcu_key_info' => 'apcu/apcu.php',
'apcu_sma_info' => 'apcu/apcu.php',
'apcu_store' => 'apcu/apcu.php',
+ 'array_all' => 'standard/standard_10.php',
+ 'array_any' => 'standard/standard_10.php',
'array_change_key_case' => 'standard/standard_9.php',
'array_chunk' => 'standard/standard_9.php',
'array_column' => 'standard/standard_9.php',
@@ -1735,6 +1783,8 @@ final class PhpStormStubsMap
'array_fill' => 'standard/standard_8.php',
'array_fill_keys' => 'standard/standard_8.php',
'array_filter' => 'standard/standard_9.php',
+ 'array_find' => 'standard/standard_10.php',
+ 'array_find_key' => 'standard/standard_10.php',
'array_flip' => 'standard/standard_9.php',
'array_intersect' => 'standard/standard_9.php',
'array_intersect_assoc' => 'standard/standard_9.php',
@@ -1795,12 +1845,15 @@ final class PhpStormStubsMap
'base_convert' => 'standard/standard_3.php',
'basename' => 'standard/standard_1.php',
'bcadd' => 'bcmath/bcmath.php',
+ 'bcceil' => 'bcmath/bcmath.php',
'bccomp' => 'bcmath/bcmath.php',
'bcdiv' => 'bcmath/bcmath.php',
+ 'bcfloor' => 'bcmath/bcmath.php',
'bcmod' => 'bcmath/bcmath.php',
'bcmul' => 'bcmath/bcmath.php',
'bcpow' => 'bcmath/bcmath.php',
'bcpowmod' => 'bcmath/bcmath.php',
+ 'bcround' => 'bcmath/bcmath.php',
'bcscale' => 'bcmath/bcmath.php',
'bcsqrt' => 'bcmath/bcmath.php',
'bcsub' => 'bcmath/bcmath.php',
@@ -1875,7 +1928,7 @@ final class PhpStormStubsMap
'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',
+ 'confirm_pdo_ibm_compiled' => 'PDO/PDO.php',
'connection_aborted' => 'standard/standard_4.php',
'connection_status' => 'standard/standard_4.php',
'constant' => 'standard/standard_0.php',
@@ -2570,6 +2623,7 @@ final class PhpStormStubsMap
'forward_static_call_array' => 'standard/standard_4.php',
'fpassthru' => 'standard/standard_5.php',
'fpm_get_status' => 'fpm/fpm.php',
+ 'fpow' => 'standard/standard_10.php',
'fprintf' => 'standard/standard_2.php',
'fputcsv' => 'standard/standard_6.php',
'fputs' => 'standard/standard_5.php',
@@ -2883,6 +2937,7 @@ final class PhpStormStubsMap
'gnupg_verify' => 'gnupg/gnupg.php',
'go' => 'swoole/functions.php',
'grapheme_extract' => 'intl/intl.php',
+ 'grapheme_str_split' => 'intl/intl.php',
'grapheme_stripos' => 'intl/intl.php',
'grapheme_stristr' => 'intl/intl.php',
'grapheme_strlen' => 'intl/intl.php',
@@ -2950,9 +3005,11 @@ final class PhpStormStubsMap
'http_cache_etag' => 'http/http.php',
'http_cache_last_modified' => 'http/http.php',
'http_chunked_decode' => 'http/http.php',
+ 'http_clear_last_response_headers' => 'standard/standard_10.php',
'http_date' => 'http/http.php',
'http_deflate' => 'http/http.php',
'http_get' => 'http/http.php',
+ 'http_get_last_response_headers' => 'standard/standard_10.php',
'http_get_request_body' => 'http/http.php',
'http_get_request_body_stream' => 'http/http.php',
'http_get_request_headers' => 'http/http.php',
@@ -3347,6 +3404,7 @@ final class PhpStormStubsMap
'intltz_get_error_code' => 'intl/intl.php',
'intltz_get_error_message' => 'intl/intl.php',
'intltz_get_gmt' => 'intl/intl.php',
+ 'intltz_get_iana_id' => 'intl/intl.php',
'intltz_get_id' => 'intl/intl.php',
'intltz_get_id_for_windows_id' => 'intl/intl.php',
'intltz_get_offset' => 'intl/intl.php',
@@ -3773,13 +3831,16 @@ final class PhpStormStubsMap
'mb_http_output' => 'mbstring/mbstring.php',
'mb_internal_encoding' => 'mbstring/mbstring.php',
'mb_language' => 'mbstring/mbstring.php',
+ 'mb_lcfirst' => 'mbstring/mbstring.php',
'mb_list_encodings' => 'mbstring/mbstring.php',
+ 'mb_ltrim' => '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_rtrim' => 'mbstring/mbstring.php',
'mb_scrub' => 'mbstring/mbstring.php',
'mb_send_mail' => 'mbstring/mbstring.php',
'mb_split' => 'mbstring/mbstring.php',
@@ -3802,6 +3863,8 @@ final class PhpStormStubsMap
'mb_substitute_character' => 'mbstring/mbstring.php',
'mb_substr' => 'mbstring/mbstring.php',
'mb_substr_count' => 'mbstring/mbstring.php',
+ 'mb_trim' => 'mbstring/mbstring.php',
+ 'mb_ucfirst' => 'mbstring/mbstring.php',
'mbereg' => 'mbstring/mbstring.php',
'mbereg_match' => 'mbstring/mbstring.php',
'mbereg_replace' => 'mbstring/mbstring.php',
@@ -4663,7 +4726,10 @@ final class PhpStormStubsMap
'pcntl_exec' => 'pcntl/pcntl.php',
'pcntl_fork' => 'pcntl/pcntl.php',
'pcntl_get_last_error' => 'pcntl/pcntl.php',
+ 'pcntl_getcpu' => 'pcntl/pcntl.php',
+ 'pcntl_getcpuaffinity' => 'pcntl/pcntl.php',
'pcntl_getpriority' => 'pcntl/pcntl.php',
+ 'pcntl_setcpuaffinity' => 'pcntl/pcntl.php',
'pcntl_setpriority' => 'pcntl/pcntl.php',
'pcntl_signal' => 'pcntl/pcntl.php',
'pcntl_signal_dispatch' => 'pcntl/pcntl.php',
@@ -4674,6 +4740,7 @@ final class PhpStormStubsMap
'pcntl_strerror' => 'pcntl/pcntl.php',
'pcntl_unshare' => 'pcntl/pcntl.php',
'pcntl_wait' => 'pcntl/pcntl.php',
+ 'pcntl_waitid' => 'pcntl/pcntl.php',
'pcntl_waitpid' => 'pcntl/pcntl.php',
'pcntl_wexitstatus' => 'pcntl/pcntl.php',
'pcntl_wifcontinued' => 'pcntl/pcntl.php',
@@ -4692,6 +4759,7 @@ final class PhpStormStubsMap
'pfsockopen' => 'standard/standard_7.php',
'pg_affected_rows' => 'pgsql/pgsql.php',
'pg_cancel_query' => 'pgsql/pgsql.php',
+ 'pg_change_password' => 'pgsql/pgsql.php',
'pg_client_encoding' => 'pgsql/pgsql.php',
'pg_clientencoding' => 'pgsql/pgsql.php',
'pg_close' => 'pgsql/pgsql.php',
@@ -4747,6 +4815,7 @@ final class PhpStormStubsMap
'pg_getlastoid' => 'pgsql/pgsql.php',
'pg_host' => 'pgsql/pgsql.php',
'pg_insert' => 'pgsql/pgsql.php',
+ 'pg_jit' => 'pgsql/pgsql.php',
'pg_last_error' => 'pgsql/pgsql.php',
'pg_last_notice' => 'pgsql/pgsql.php',
'pg_last_oid' => 'pgsql/pgsql.php',
@@ -4784,12 +4853,15 @@ final class PhpStormStubsMap
'pg_pipeline_sync' => 'pgsql/pgsql.php',
'pg_port' => 'pgsql/pgsql.php',
'pg_prepare' => 'pgsql/pgsql.php',
+ 'pg_put_copy_data' => 'pgsql/pgsql.php',
+ 'pg_put_copy_end' => '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_memory_size' => 'pgsql/pgsql.php',
'pg_result_seek' => 'pgsql/pgsql.php',
'pg_result_status' => 'pgsql/pgsql.php',
'pg_select' => 'pgsql/pgsql.php',
@@ -4802,6 +4874,7 @@ final class PhpStormStubsMap
'pg_set_error_verbosity' => 'pgsql/pgsql.php',
'pg_setclientencoding' => 'pgsql/pgsql.php',
'pg_socket' => 'pgsql/pgsql.php',
+ 'pg_socket_poll' => 'pgsql/pgsql.php',
'pg_trace' => 'pgsql/pgsql.php',
'pg_transaction_status' => 'pgsql/pgsql.php',
'pg_tty' => 'pgsql/pgsql.php',
@@ -4965,6 +5038,7 @@ final class PhpStormStubsMap
'register_shutdown_function' => 'standard/standard_4.php',
'register_tick_function' => 'standard/standard_4.php',
'rename' => 'standard/standard_5.php',
+ 'request_parse_body' => 'standard/standard_10.php',
'reset' => 'standard/standard_8.php',
'resourcebundle_count' => 'intl/intl.php',
'resourcebundle_create' => 'intl/intl.php',
@@ -5157,6 +5231,12 @@ final class PhpStormStubsMap
'sodium_bin2base64' => 'sodium/sodium.php',
'sodium_bin2hex' => 'sodium/sodium.php',
'sodium_compare' => 'sodium/sodium.php',
+ 'sodium_crypto_aead_aegis128l_decrypt' => 'libsodium/libsodium_f.php',
+ 'sodium_crypto_aead_aegis128l_encrypt' => 'libsodium/libsodium_f.php',
+ 'sodium_crypto_aead_aegis128l_keygen' => 'libsodium/libsodium_f.php',
+ 'sodium_crypto_aead_aegis256_decrypt' => 'libsodium/libsodium_f.php',
+ 'sodium_crypto_aead_aegis256_encrypt' => 'libsodium/libsodium_f.php',
+ 'sodium_crypto_aead_aegis256_keygen' => 'libsodium/libsodium_f.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',
@@ -7162,6 +7242,8 @@ final class PhpStormStubsMap
'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_3' => 'curl/curl_d.php',
+ 'CURL_HTTP_VERSION_3ONLY' => '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',
@@ -7339,6 +7421,22 @@ final class PhpStormStubsMap
'DOM_WRONG_DOCUMENT_ERR' => 'dom/dom.php',
'D_FMT' => 'standard/standard_defines.php',
'D_T_FMT' => 'standard/standard_defines.php',
+ 'Dom\\HIERARCHY_REQUEST_ERR' => 'dom/dom_n.php',
+ 'Dom\\HTML_NO_DEFAULT_NS' => 'dom/dom_n.php',
+ 'Dom\\INDEX_SIZE_ERR' => 'dom/dom_n.php',
+ 'Dom\\INUSE_ATTRIBUTE_ERR' => 'dom/dom_n.php',
+ 'Dom\\INVALID_CHARACTER_ERR' => 'dom/dom_n.php',
+ 'Dom\\INVALID_MODIFICATION_ERR' => 'dom/dom_n.php',
+ 'Dom\\INVALID_STATE_ERR' => 'dom/dom_n.php',
+ 'Dom\\NAMESPACE_ERR' => 'dom/dom_n.php',
+ 'Dom\\NOT_FOUND_ERR' => 'dom/dom_n.php',
+ 'Dom\\NOT_SUPPORTED_ERR' => 'dom/dom_n.php',
+ 'Dom\\NO_DATA_ALLOWED_ERR' => 'dom/dom_n.php',
+ 'Dom\\NO_MODIFICATION_ALLOWED_ERR' => 'dom/dom_n.php',
+ 'Dom\\STRING_SIZE_ERR' => 'dom/dom_n.php',
+ 'Dom\\SYNTAX_ERR' => 'dom/dom_n.php',
+ 'Dom\\VALIDATION_ERR' => 'dom/dom_n.php',
+ 'Dom\\WRONG_DOCUMENT_ERR' => 'dom/dom_n.php',
'EIO_DEBUG' => 'eio/eio.php',
'EIO_DT_BLK' => 'eio/eio.php',
'EIO_DT_CHR' => 'eio/eio.php',
@@ -8501,12 +8599,14 @@ final class PhpStormStubsMap
'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_MAX' => '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_PROTOCOL_TLS1_3' => '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',
@@ -8538,6 +8638,7 @@ final class PhpStormStubsMap
'LIBXML_NSCLEAN' => 'libxml/libxml.php',
'LIBXML_PARSEHUGE' => 'libxml/libxml.php',
'LIBXML_PEDANTIC' => 'libxml/libxml.php',
+ 'LIBXML_RECOVER' => 'libxml/libxml.php',
'LIBXML_SCHEMA_CREATE' => 'libxml/libxml.php',
'LIBXML_VERSION' => 'libxml/libxml.php',
'LIBXML_XINCLUDE' => 'libxml/libxml.php',
@@ -10651,7 +10752,11 @@ final class PhpStormStubsMap
'OPENSSL_KEYTYPE_DH' => 'openssl/openssl.php',
'OPENSSL_KEYTYPE_DSA' => 'openssl/openssl.php',
'OPENSSL_KEYTYPE_EC' => 'openssl/openssl.php',
+ 'OPENSSL_KEYTYPE_ED25519' => 'openssl/openssl.php',
+ 'OPENSSL_KEYTYPE_ED448' => 'openssl/openssl.php',
'OPENSSL_KEYTYPE_RSA' => 'openssl/openssl.php',
+ 'OPENSSL_KEYTYPE_X25519' => 'openssl/openssl.php',
+ 'OPENSSL_KEYTYPE_X448' => 'openssl/openssl.php',
'OPENSSL_NO_PADDING' => 'openssl/openssl.php',
'OPENSSL_PKCS1_OAEP_PADDING' => 'openssl/openssl.php',
'OPENSSL_PKCS1_PADDING' => 'openssl/openssl.php',
@@ -10841,6 +10946,7 @@ final class PhpStormStubsMap
'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_PROCESSED' => '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',
@@ -10855,6 +10961,7 @@ final class PhpStormStubsMap
'PHP_ROUND_HALF_ODD' => 'standard/standard_defines.php',
'PHP_ROUND_HALF_UP' => 'standard/standard_defines.php',
'PHP_SAPI' => 'Core/Core_d.php',
+ 'PHP_SBINDIR' => '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',
@@ -10940,6 +11047,8 @@ final class PhpStormStubsMap
'POSIX_RLIMIT_STACK' => 'posix/posix.php',
'POSIX_R_OK' => 'posix/posix.php',
'POSIX_SC_ARG_MAX' => 'posix/posix.php',
+ 'POSIX_SC_CHILD_MAX' => 'posix/posix.php',
+ 'POSIX_SC_CLK_TCK' => 'posix/posix.php',
'POSIX_SC_NPROCESSORS_CONF' => 'posix/posix.php',
'POSIX_SC_NPROCESSORS_ONLN' => 'posix/posix.php',
'POSIX_SC_PAGESIZE' => 'posix/posix.php',
@@ -10987,7 +11096,11 @@ final class PhpStormStubsMap
'PTHREADS_INHERIT_INCLUDES' => 'pthreads/pthreads.php',
'PTHREADS_INHERIT_INI' => 'pthreads/pthreads.php',
'PTHREADS_INHERIT_NONE' => 'pthreads/pthreads.php',
+ 'P_ALL' => 'pcntl/pcntl.php',
'P_CS_PRECEDES' => 'standard/standard_defines.php',
+ 'P_PGID' => 'pcntl/pcntl.php',
+ 'P_PID' => 'pcntl/pcntl.php',
+ 'P_PIDFD' => 'pcntl/pcntl.php',
'P_SEP_BY_SPACE' => 'standard/standard_defines.php',
'P_SIGN_POSN' => 'standard/standard_defines.php',
'PopupWindow' => 'winbinder/winbinder.php',
@@ -11894,7 +12007,10 @@ final class PhpStormStubsMap
'SOCKET_SYSNOTREADY' => 'sockets/sockets.php',
'SOCKET_TRY_AGAIN' => 'sockets/sockets.php',
'SOCKET_VERNOTSUPPORTED' => 'sockets/sockets.php',
+ 'SOCK_CLOEXEC' => 'sockets/sockets.php',
+ 'SOCK_DCCP' => 'sockets/sockets.php',
'SOCK_DGRAM' => 'sockets/sockets.php',
+ 'SOCK_NONBLOCK' => 'sockets/sockets.php',
'SOCK_RAW' => 'sockets/sockets.php',
'SOCK_RDM' => 'sockets/sockets.php',
'SOCK_SEQPACKET' => 'sockets/sockets.php',
@@ -11903,6 +12019,14 @@ final class PhpStormStubsMap
'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_AEGIS128L_ABYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS128L_NPUBBYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS128L_NSECBYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS256_ABYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS256_KEYBYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS256_NPUBBYTES' => 'libsodium/libsodium_d.php',
+ 'SODIUM_CRYPTO_AEAD_AEGIS256_NSECBYTES' => 'libsodium/libsodium_d.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',
@@ -12930,6 +13054,7 @@ final class PhpStormStubsMap
'TCP_NOTSENT_LOWAT' => 'sockets/sockets.php',
'TCP_QUICKACK' => 'sockets/sockets.php',
'TCP_REPAIR' => 'sockets/sockets.php',
+ 'TCP_SYNCNT' => 'sockets/sockets.php',
'THOUSANDS_SEP' => 'standard/standard_defines.php',
'THOUSEP' => 'standard/standard_defines.php',
'TIDY_NODETYPE_ASP' => 'tidy/tidy.php',
@@ -13224,6 +13349,7 @@ final class PhpStormStubsMap
'T_POW_EQUAL' => 'tokenizer/tokenizer.php',
'T_PRINT' => 'tokenizer/tokenizer.php',
'T_PRIVATE' => 'tokenizer/tokenizer.php',
+ 'T_PROPERTY_C' => 'tokenizer/tokenizer.php',
'T_PROTECTED' => 'tokenizer/tokenizer.php',
'T_PUBLIC' => 'tokenizer/tokenizer.php',
'T_READONLY' => 'tokenizer/tokenizer.php',
@@ -13737,6 +13863,7 @@ final class PhpStormStubsMap
'WEBSOCKET_STATUS_CONNECTION' => 'swoole/constants.php',
'WEBSOCKET_STATUS_FRAME' => 'swoole/constants.php',
'WEBSOCKET_STATUS_HANDSHAKE' => 'swoole/constants.php',
+ 'WEXITED' => 'pcntl/pcntl.php',
'WHITE' => 'winbinder/winbinder.php',
'WIN32_ABOVE_NORMAL_PRIORITY_CLASS' => 'win32service/win32service.php',
'WIN32_BELOW_NORMAL_PRIORITY_CLASS' => 'win32service/win32service.php',
@@ -13801,18 +13928,22 @@ final class PhpStormStubsMap
'WIN32_SERVICE_WIN32_OWN_PROCESS' => 'win32service/win32service.php',
'WIN32_SERVICE_WIN32_OWN_PROCESS_INTERACTIVE' => 'win32service/win32service.php',
'WNOHANG' => 'pcntl/pcntl.php',
+ 'WNOWAIT' => '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',
+ 'WSTOPPED' => 'pcntl/pcntl.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_OCSP_HELPER' => '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',
+ 'X509_PURPOSE_TIMESTAMP_SIGN' => 'openssl/openssl.php',
'XDEBUG_CC_BRANCH_CHECK' => 'xdebug/xdebug.php',
'XDEBUG_CC_DEAD_CODE' => 'xdebug/xdebug.php',
'XDEBUG_CC_UNUSED' => 'xdebug/xdebug.php',
@@ -13888,6 +14019,7 @@ final class PhpStormStubsMap
'XML_NAMESPACE_DECL_NODE' => 'dom/dom.php',
'XML_NOTATION_NODE' => 'dom/dom.php',
'XML_OPTION_CASE_FOLDING' => 'xml/xml.php',
+ 'XML_OPTION_PARSE_HUGE' => 'xml/xml.php',
'XML_OPTION_SKIP_TAGSTART' => 'xml/xml.php',
'XML_OPTION_SKIP_WHITE' => 'xml/xml.php',
'XML_OPTION_TARGET_ENCODING' => 'xml/xml.php',
diff --git a/Reflection/PropertyHookType.php b/Reflection/PropertyHookType.php
new file mode 100644
index 000000000..b3878bc46
--- /dev/null
+++ b/Reflection/PropertyHookType.php
@@ -0,0 +1,16 @@
+ 'bool'], default: '')] $accessible): void {}
diff --git a/Reflection/ReflectionProperty.php b/Reflection/ReflectionProperty.php
index 642d4d9b3..021b74a38 100644
--- a/Reflection/ReflectionProperty.php
+++ b/Reflection/ReflectionProperty.php
@@ -15,6 +15,11 @@
*/
class ReflectionProperty implements Reflector
{
+ /**
+ * @since 8.4
+ */
+ public const IS_ABSTRACT = 64;
+
/**
* @var string Name of the property, same as calling the {@see ReflectionProperty::getName()} method
*/
@@ -345,4 +350,39 @@ public function getAttributes(?string $name = null, int $flags = 0): array {}
* @since 8.1
*/
public function isReadOnly(): bool {}
+
+ /**
+ * @since 8.4
+ */
+ public function getRawValue(object $object): mixed {}
+
+ /**
+ * @since 8.4
+ */
+ public function setRawValue(object $object, mixed $value): void {}
+
+ /**
+ * @since 8.4
+ */
+ public function isAbstract(): bool {}
+
+ /**
+ * @since 8.4
+ */
+ public function isVirtual(): bool {}
+
+ /**
+ * @since 8.4
+ */
+ public function getSettableType(): ?ReflectionType {}
+
+ /**
+ * @since 8.4
+ */
+ public function getHooks(): array {}
+
+ /**
+ * @since 8.4
+ */
+ public function getHook(PropertyHookType $type): ?ReflectionMethod {}
}
diff --git a/Reflection/ReflectionReference.php b/Reflection/ReflectionReference.php
index c3e1e336c..35d40e2b4 100644
--- a/Reflection/ReflectionReference.php
+++ b/Reflection/ReflectionReference.php
@@ -11,7 +11,7 @@
* @link https://www.php.net/manual/en/class.reflectionreference.php
* @since 7.4
*/
-class ReflectionReference
+final class ReflectionReference
{
/**
* ReflectionReference cannot be created explicitly.
diff --git a/SPL/SPL.php b/SPL/SPL.php
index cc633b28e..3dacb8eb3 100644
--- a/SPL/SPL.php
+++ b/SPL/SPL.php
@@ -534,21 +534,21 @@ public function rewind(): void {}
* @link https://php.net/manual/en/filteriterator.valid.php
* @return bool true if the current element is valid, otherwise false
*/
- public function valid(): bool {}
+ public function valid() {}
/**
* 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 {}
+ public function key() {}
/**
* Get the current element value
* @link https://php.net/manual/en/filteriterator.current.php
* @return mixed The current element value.
*/
- public function current(): mixed {}
+ public function current() {}
/**
* Move the iterator forward
@@ -563,7 +563,7 @@ public function next(): void {}
* @link https://php.net/manual/en/filteriterator.getinneriterator.php
* @return Iterator The inner iterator.
*/
- public function getInnerIterator(): Iterator {}
+ public function getInnerIterator() {}
}
/**
@@ -693,14 +693,14 @@ public function valid(): bool {}
* @link https://php.net/manual/en/limititerator.key.php
* @return mixed The key of the current element.
*/
- public function key(): mixed {}
+ public function key() {}
/**
* 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 {}
+ public function current() {}
/**
* Move the iterator forward
@@ -734,7 +734,7 @@ public function getPosition(): int {}
* @link https://php.net/manual/en/limititerator.getinneriterator.php
* @return Iterator The inner iterator passed to LimitIterator::__construct.
*/
- public function getInnerIterator(): Iterator {}
+ public function getInnerIterator() {}
}
/**
@@ -805,14 +805,14 @@ public function valid(): bool {}
* @link https://php.net/manual/en/cachingiterator.key.php
* @return mixed The key of the current element.
*/
- public function key(): mixed {}
+ public function key() {}
/**
* Return the current element
* @link https://php.net/manual/en/cachingiterator.current.php
* @return mixed
*/
- public function current(): mixed {}
+ public function current() {}
/**
* Move the iterator forward
@@ -843,7 +843,7 @@ public function __toString(): string {}
* @link https://php.net/manual/en/cachingiterator.getinneriterator.php
* @return Iterator an object implementing the Iterator interface.
*/
- public function getInnerIterator(): Iterator {}
+ public function getInnerIterator() {}
/**
* Get flags used
@@ -1012,7 +1012,7 @@ public function next(): void {}
* @link https://php.net/manual/en/norewinditerator.getinneriterator.php
* @return Iterator The inner iterator, as passed to NoRewindIterator::__construct.
*/
- public function getInnerIterator(): Iterator {}
+ public function getInnerIterator() {}
}
/**
@@ -1059,7 +1059,7 @@ public function valid(): bool {}
* @link https://php.net/manual/en/appenditerator.key.php
* @return mixed The key of the current element.
*/
- public function key(): mixed {}
+ public function key() {}
/**
* Gets the current value
@@ -1082,7 +1082,7 @@ public function next(): void {}
* @link https://php.net/manual/en/appenditerator.getinneriterator.php
* @return Iterator the current inner Iterator.
*/
- public function getInnerIterator(): Iterator {}
+ public function getInnerIterator() {}
/**
* Gets an index of iterators
@@ -1393,14 +1393,14 @@ public function __construct(
* @link https://php.net/manual/en/recursivetreeiterator.rewind.php
* @return void
*/
- public function rewind(): void {}
+ public function rewind() {}
/**
* 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 {}
+ public function valid() {}
/**
* Get the key of the current element
@@ -1423,7 +1423,7 @@ public function current(): mixed {}
* @link https://php.net/manual/en/recursivetreeiterator.next.php
* @return void
*/
- public function next(): void {}
+ public function next() {}
/**
* Begin iteration
diff --git a/SPL/SPL_c1.php b/SPL/SPL_c1.php
index a58bd686c..cea492540 100644
--- a/SPL/SPL_c1.php
+++ b/SPL/SPL_c1.php
@@ -1386,7 +1386,8 @@ public function extract(): mixed {}
* @return bool
*/
#[TentativeType]
- public function insert(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value): bool {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ public function insert(#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value) {}
/**
* Peeks at the node from the top of the heap
@@ -1458,7 +1459,8 @@ public function valid(): bool {}
* @return bool
*/
#[TentativeType]
- public function recoverFromCorruption(): bool {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ public function recoverFromCorruption() {}
/**
* Compare elements in order to place them correctly in the heap while sifting up.
@@ -1673,10 +1675,11 @@ public function compare(
*
* @return true
*/
+ #[TentativeType]
public function insert(
#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $value,
#[LanguageLevelTypeAware(['8.0' => 'mixed'], default: '')] $priority
- ) {}
+ ): true {}
/**
* Sets the mode of extraction
@@ -1767,9 +1770,9 @@ 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() {}
+ #[TentativeType]
+ public function recoverFromCorruption(): true {}
/**
* @return bool
@@ -1862,6 +1865,8 @@ public function getSize(): int {}
*
* @return bool
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setSize(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $size) {}
/**
@@ -1953,17 +1958,16 @@ 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 {}
/**
+ * @since 8.0
* @return Iterator
*/
public function getIterator(): Iterator {}
+ #[PhpStormStubsElementAvailable(from: '8.1')]
public function jsonSerialize(): array {}
}
@@ -2034,7 +2038,7 @@ public function notify(): void;
* @template-implements Iterator
* @template-implements ArrayAccess
*/
-class SplObjectStorage implements Countable, Iterator, Serializable, ArrayAccess
+class SplObjectStorage implements Countable, SeekableIterator, Serializable, ArrayAccess
{
/**
* Adds an object in the storage
@@ -2281,6 +2285,11 @@ public function __unserialize(array $data): void {}
*/
#[TentativeType]
public function __debugInfo(): array {}
+
+ /**
+ * @since 8.4
+ */
+ public function seek(int $offset): void {}
}
/**
diff --git a/SimpleXML/SimpleXML.php b/SimpleXML/SimpleXML.php
index 7781391dc..7e001782f 100644
--- a/SimpleXML/SimpleXML.php
+++ b/SimpleXML/SimpleXML.php
@@ -512,6 +512,6 @@ function simplexml_load_string(string $data, ?string $class_name = "SimpleXMLEle
*
* @return SimpleXMLElement|null a SimpleXMLElement or FALSE on failure.
*/
-function simplexml_import_dom(SimpleXMLElement|DOMNode $node, ?string $class_name = "SimpleXMLElement"): ?SimpleXMLElement {}
+function simplexml_import_dom(#[LanguageLevelTypeAware(['8.4' => 'object'], default: 'SimpleXMLElement|DOMNode')] $node, ?string $class_name = "SimpleXMLElement"): ?SimpleXMLElement {}
// End of SimpleXML v.0.1
diff --git a/aerospike/aerospike.php b/aerospike/aerospike.php
index f2b2a3e40..45e66f15e 100644
--- a/aerospike/aerospike.php
+++ b/aerospike/aerospike.php
@@ -197,7 +197,7 @@ class Aerospike
* @see Aerospike::error() error()
* @see Aerospike::errorno() errorno()
*/
- public function __construct(array $config, bool $persistent_connection = true, array $options = []) {}
+ public function __construct($config, $persistent_connection = true, array $options = []) {}
/**
* Disconnect from the Aerospike cluster and clean up resources.
@@ -354,7 +354,7 @@ public function errorno() {}
* @return array
* @see Aerospike::getKeyDigest() getKeyDigest()
*/
- public function initKey(string $ns, string $set, $pk, bool $is_digest = false) {}
+ public function initKey($ns, $set, $pk, $is_digest = false) {}
/**
* Return the digest of hashing the (namespace, set, primary-key) tuple
@@ -390,7 +390,7 @@ public function initKey(string $ns, string $set, $pk, bool $is_digest = false) {
* @return string
* @see Aerospike::initKey() initKey()
*/
- public function getKeyDigest(string $ns, string $set, $pk) {}
+ public function getKeyDigest($ns, $set, $pk) {}
/**
* Write a record identified by the $key with $bins, an array of bin-name => bin-value pairs.
@@ -533,7 +533,7 @@ public function getKeyDigest(string $ns, string $set, $pk) {}
* @see Aerospike::errorno() errorno()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function put(array $key, array $bins, int $ttl = 0, array $options = []) {}
+ public function put(array $key, array $bins, $ttl = 0, array $options = []) {}
/**
* Read a record with a given key, and store it in $record
@@ -669,7 +669,7 @@ public function put(array $key, array $bins, int $ttl = 0, array $options = [])
* @see Aerospike::errorno() errorno()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function get(array $key, &$record, ?array $select = null, array $options = []) {}
+ public function get(array $key, &$record, $select = null, array $options = []) {}
/**
* Get the metadata of a record with a given key, and store it in $metadata
@@ -776,7 +776,7 @@ public function exists(array $key, &$metadata, array $options = []) {}
* @see Aerospike::OK Aerospike::OK and error status codes
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function touch(array $key, int $ttl = 0, array $options = []) {}
+ public function touch(array $key, $ttl = 0, array $options = []) {}
/**
* Remove the record identified by the $key.
@@ -899,7 +899,7 @@ public function removeBin(array $key, array $bins, array $options = []) {}
* * Aerospike::OPT_WRITE_TIMEOUT
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function truncate(string $ns, string $set, int $nanos, array $options = []) {}
+ public function truncate($ns, $set, $nanos, array $options = []) {}
/**
* Increment the value of $bin in the record identified by the $key by an
@@ -941,7 +941,7 @@ public function truncate(string $ns, string $set, int $nanos, array $options = [
* @see Aerospike::OK Aerospike::OK and error status codes
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function increment(array $key, string $bin, $offset, array $options = []) {}
+ public function increment(array $key, $bin, $offset, array $options = []) {}
/**
* Append a string $value to the one already in $bin, in the record identified by the $key.
@@ -983,7 +983,7 @@ public function increment(array $key, string $bin, $offset, array $options = [])
* @see Aerospike::OK Aerospike::OK and error status codes
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function append(array $key, string $bin, string $value, array $options = []) {}
+ public function append(array $key, $bin, $value, array $options = []) {}
/**
* Prepend a string $value to the one already in $bin, in the record identified by the $key.
@@ -1025,7 +1025,7 @@ public function append(array $key, string $bin, string $value, array $options =
* @see Aerospike::OK Aerospike::OK and error status codes
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function prepend(array $key, string $bin, string $value, array $options = []) {}
+ public function prepend(array $key, $bin, $value, array $options = []) {}
/**
* Perform multiple bin operations on a record with a given key, with write operations happening before read ones.
@@ -2677,7 +2677,7 @@ public function existsMany(array $keys, array &$metadata, array $options = []) {
*
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function scan(string $ns, string $set, callable $record_cb, array $select = [], array $options = []) {}
+ public function scan($ns, $set, callable $record_cb, array $select = [], array $options = []) {}
/**
* Query a secondary index on a namespace or set
@@ -2748,7 +2748,7 @@ public function scan(string $ns, string $set, callable $record_cb, array $select
* @see Aerospike::predicateGeoWithinRadius()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function query(string $ns, string $set, array $where, callable $record_cb, array $select = [], array $options = []) {}
+ public function query($ns, $set, array $where, callable $record_cb, array $select = [], array $options = []) {}
/**
* Helper method for creating an EQUALS predicate
@@ -2765,7 +2765,7 @@ public function query(string $ns, string $set, array $where, callable $record_cb
* val => scalar integer/string value
* ```
*/
- public static function predicateEquals(string $bin, $val) {}
+ public static function predicateEquals($bin, $val) {}
/**
* Helper method for creating a BETWEEN predicate
@@ -2783,7 +2783,7 @@ public static function predicateEquals(string $bin, $val) {}
* val => [min, max]
* ```
*/
- public static function predicateBetween(string $bin, int $min, int $max) {}
+ public static function predicateBetween($bin, $min, $max) {}
/**
* Helper method for creating an CONTAINS predicate
@@ -2809,7 +2809,7 @@ public static function predicateBetween(string $bin, int $min, int $max) {}
* val => scalar integer/string value
* ```
*/
- public static function predicateContains(string $bin, int $index_type, $val) {}
+ public static function predicateContains($bin, $index_type, $val) {}
/**
* Helper method for creating a RANGE predicate
@@ -2836,7 +2836,7 @@ public static function predicateContains(string $bin, int $index_type, $val) {}
* val => [min, max]
* ```
*/
- public static function predicateRange(string $bin, int $index_type, int $min, int $max) {}
+ public static function predicateRange($bin, $index_type, $min, $max) {}
/**
* Helper method for creating a GEOCONTAINS point predicate
@@ -2853,7 +2853,7 @@ public static function predicateRange(string $bin, int $index_type, int $min, in
* val => GeoJSON string
* ```
*/
- public static function predicateGeoContainsGeoJSONPoint(string $bin, string $point) {}
+ public static function predicateGeoContainsGeoJSONPoint($bin, $point) {}
/**
* Helper method for creating a GEOCONTAINS point predicate
@@ -2871,7 +2871,7 @@ public static function predicateGeoContainsGeoJSONPoint(string $bin, string $poi
* val => GeoJSON string produced from $long and $lat
* ```
*/
- public static function predicateGeoContainsPoint(string $bin, float $long, float $lat) {}
+ public static function predicateGeoContainsPoint($bin, $long, $lat) {}
/**
* Helper method for creating a GEOWITHIN region predicate
@@ -2888,7 +2888,7 @@ public static function predicateGeoContainsPoint(string $bin, float $long, float
* val => GeoJSON string
* ```
*/
- public static function predicateGeoWithinGeoJSONRegion(string $bin, string $region) {}
+ public static function predicateGeoWithinGeoJSONRegion($bin, $region) {}
/**
* Helper method for creating a GEOWITHIN circle region predicate
@@ -2907,7 +2907,7 @@ public static function predicateGeoWithinGeoJSONRegion(string $bin, string $regi
* val => GeoJSON string produced from $long, $lat and $radius
* ```
*/
- public static function predicateGeoWithinRadius(string $bin, float $long, float $lat, float $radiusMeter) {}
+ public static function predicateGeoWithinRadius($bin, $long, $lat, $radiusMeter) {}
/**
* Get the status of a background job triggered by Aerospike::scanApply or Aerospike::queryApply
@@ -2937,7 +2937,7 @@ public static function predicateGeoWithinRadius(string $bin, float $long, float
* @see Aerospike::queryApply()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function jobInfo(int $job_id, $job_type, array &$info, array $options = []) {}
+ public function jobInfo($job_id, $job_type, array &$info, array $options = []) {}
// UDF Methods
@@ -3136,7 +3136,7 @@ public function getRegistered($module, &$code, $language = Aerospike::UDF_TYPE_L
* @see Aerospike::ERR_LUA UDF error status codes
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function apply(array $key, string $module, string $function, array $args = [], &$returned = null, $options = []) {}
+ public function apply(array $key, $module, $function, array $args = [], &$returned = null, $options = []) {}
/**
* Apply a UDF to each record in a scan
@@ -3183,7 +3183,7 @@ public function apply(array $key, string $module, string $function, array $args
* @see Aerospike::jobInfo()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function scanApply(string $ns, string $set, string $module, string $function, array $args, int &$job_id, array $options = []) {}
+ public function scanApply($ns, $set, $module, $function, array $args, &$job_id, array $options = []) {}
/**
* Apply a UDF to each record in a query
@@ -3252,7 +3252,7 @@ public function scanApply(string $ns, string $set, string $module, string $funct
* @see Aerospike::jobInfo()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function queryApply(string $ns, string $set, array $where, string $module, string $function, array $args, int &$job_id, array $options = []) {}
+ public function queryApply($ns, $set, array $where, $module, $function, array $args, &$job_id, array $options = []) {}
/**
* Apply a stream UDF to a scan or secondary index query
@@ -3391,7 +3391,7 @@ public function queryApply(string $ns, string $set, array $where, string $module
* @see Aerospike::predicateGeoWithinRadius()
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function aggregate(string $ns, string $set, array $where, string $module, string $function, array $args, &$returned, array $options = []) {}
+ public function aggregate($ns, $set, array $where, $module, $function, array $args, &$returned, array $options = []) {}
// Admin methods
@@ -3428,7 +3428,7 @@ public function aggregate(string $ns, string $set, array $where, string $module,
* @see Aerospike::INDEX_STRING
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function addIndex(string $ns, string $set, string $bin, string $name, int $indexType, int $dataType, array $options = []) {}
+ public function addIndex($ns, $set, $bin, $name, $indexType, $dataType, array $options = []) {}
/**
* Drop a secondary index
@@ -3449,7 +3449,7 @@ public function addIndex(string $ns, string $set, string $bin, string $name, int
* * Aerospike::OPT_WRITE_TIMEOUT
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function dropIndex(string $ns, string $name, array $options = []) {}
+ public function dropIndex($ns, $name, array $options = []) {}
// Info Methods
@@ -3479,7 +3479,7 @@ public function dropIndex(string $ns, string $name, array $options = []) {}
* * Aerospike::OPT_READ_TIMEOUT
* @return int The status code of the operation. Compare to the Aerospike class status constants.
*/
- public function info(string $request, string &$response, ?array $host = null, array $options = []) {}
+ public function info($request, &$response, $host = null, array $options = []) {}
/**
* Send an info request to a single cluster node
@@ -3516,7 +3516,7 @@ public function info(string $request, string &$response, ?array $host = null, ar
* NODE-ID => response string
* ```
*/
- public function infoMany(string $request, ?array $host = null, array $options = []) {}
+ public function infoMany($request, $host = null, array $options = []) {}
/**
* Get the addresses of the cluster nodes
@@ -3567,7 +3567,7 @@ public function getNodes() {}
* * Aerospike::LOG_LEVEL_TRACE
* @see Aerospike::LOG_LEVEL_OFF Aerospike::LOG_LEVEL_* constants
*/
- public function setLogLevel(int $log_level) {}
+ public function setLogLevel($log_level) {}
/**
* Set a handler for log events
@@ -3761,21 +3761,21 @@ public function setDeserializer(callable $unserialize_cb) {}
/**
* Defines the length of time (in milliseconds) the client waits on establishing a connection.
- * @const OPT_CONNECT_TIMEOUT value in milliseconds (default: 1000)
+ * value in milliseconds (default: 1000)
*/
public const OPT_CONNECT_TIMEOUT = "OPT_CONNECT_TIMEOUT";
/**
* Defines the length of time (in milliseconds) the client waits on a read
* operation.
- * @const OPT_READ_TIMEOUT value in milliseconds (default: 1000)
+ * value in milliseconds (default: 1000)
*/
public const OPT_READ_TIMEOUT = "OPT_READ_TIMEOUT";
/**
* Defines the length of time (in milliseconds) the client waits on a write
* operation.
- * @const OPT_WRITE_TIMEOUT value in milliseconds (default: 1000)
+ * value in milliseconds (default: 1000)
*/
public const OPT_WRITE_TIMEOUT = "OPT_WRITE_TIMEOUT";
@@ -3786,7 +3786,7 @@ public function setDeserializer(callable $unserialize_cb) {}
* * TTL = 0 uses the default TTL defined for the namespace.
* * TTL = -1 means the record should never expire.
* * TTL = -2 means the record's TTL should not be modified.
- * @const OPT_TTL value in seconds, or the special values 0, -1 or -2 (default: 0)
+ * value in seconds, or the special values 0, -1 or -2 (default: 0)
*/
public const OPT_TTL = "OPT_TTL";
@@ -3796,19 +3796,19 @@ public function setDeserializer(callable $unserialize_cb) {}
* {@link https://www.aerospike.com/docs/client/php/usage/kvs/record-structure.html Records}
* are uniquely identified by their digest, and can optionally store the value of their primary key
* (their unique ID in the application).
- * @const OPT_POLICY_KEY Key storage policy option (digest-only or send key)
+ * Key storage policy option (digest-only or send key)
*/
public const OPT_POLICY_KEY = "OPT_POLICY_KEY";
/**
* Do not store the primary key with the record (default)
- * @const POLICY_KEY_DIGEST digest only
+ * digest only
*/
public const POLICY_KEY_DIGEST = 0;
/**
* Store the primary key with the record
- * @const POLICY_KEY_SEND store the primary key with the record
+ * store the primary key with the record
*/
public const POLICY_KEY_SEND = 1;
@@ -3819,38 +3819,38 @@ public function setDeserializer(callable $unserialize_cb) {}
* is a behavior similar to how arrays work in PHP. Setting a write with a
* different POLICY\_EXISTS\_* value can simulate a more DML-like behavior,
* similar to an RDBMS.
- * @const OPT_POLICY_EXISTS existence policy option
+ * existence policy option
*/
public const OPT_POLICY_EXISTS = "OPT_POLICY_EXISTS";
/**
* "CREATE_OR_UPDATE" behavior. Create the record if it does not exist,
* or update its bins if it does. (default)
- * @const POLICY_EXISTS_IGNORE create or update behavior
+ * create or update behavior
*/
public const POLICY_EXISTS_IGNORE = 0;
/**
* Create a record ONLY if it DOES NOT exist.
- * @const POLICY_EXISTS_CREATE create only behavior (fail otherwise)
+ * create only behavior (fail otherwise)
*/
public const POLICY_EXISTS_CREATE = 1;
/**
* Update a record ONLY if it exists.
- * @const POLICY_EXISTS_UPDATE update only behavior (fail otherwise)
+ * update only behavior (fail otherwise)
*/
public const POLICY_EXISTS_UPDATE = 2;
/**
* Replace a record ONLY if it exists.
- * @const POLICY_EXISTS_REPLACE replace only behavior (fail otherwise)
+ * replace only behavior (fail otherwise)
*/
public const POLICY_EXISTS_REPLACE = 3;
/**
* Create the record if it does not exist, or replace its bins if it does.
- * @const POLICY_EXISTS_CREATE_OR_REPLACE create or replace behavior
+ * create or replace behavior
*/
public const POLICY_EXISTS_CREATE_OR_REPLACE = 4;
@@ -3859,24 +3859,24 @@ public function setDeserializer(callable $unserialize_cb) {}
*
* Specifies the behavior of write opertions with regards to the record's
* generation. Used to implement a check-and-set (CAS) pattern.
- * @const OPT_POLICY_GEN generation policy option
+ * generation policy option
*/
public const OPT_POLICY_GEN = "OPT_POLICY_GEN";
/**
* Do not consider generation for the write operation.
- * @const POLICY_GEN_IGNORE write a record, regardless of generation (default)
+ * write a record, regardless of generation (default)
*/
public const POLICY_GEN_IGNORE = 0;
/**
* Only write if the record was not modified since a given generation value.
- * @const POLICY_GEN_EQ write a record, ONLY if generations are equal
+ * write a record, ONLY if generations are equal
*/
public const POLICY_GEN_EQ = 1;
/**
- * @const POLICY_GEN_GT write a record, ONLY if local generation is greater-than remote generation
+ * write a record, ONLY if local generation is greater-than remote generation
*/
public const POLICY_GEN_GT = 2;
@@ -3886,25 +3886,25 @@ public function setDeserializer(callable $unserialize_cb) {}
* Supported types, such as string, integer, and array get directly cast to
* the matching Aerospike types, such as as_string, as_integer, and as_map.
* Unsupported types, such as boolean, need a serializer to handle them.
- * @const OPT_SERIALIZER determines a handler for unsupported data types
+ * determines a handler for unsupported data types
*/
public const OPT_SERIALIZER = "OPT_SERIALIZER";
/**
* Throw an exception instead of serializing unsupported types.
- * @const SERIALIZER_NONE throw an error when serialization is required
+ * throw an error when serialization is required
*/
public const SERIALIZER_NONE = 0;
/**
* Use the built-in PHP serializer for any unsupported types.
- * @const SERIALIZER_PHP use the PHP serialize/unserialize functions (default)
+ * use the PHP serialize/unserialize functions (default)
*/
public const SERIALIZER_PHP = 1;
/**
* Use a user-defined serializer for any unsupported types.
- * @const SERIALIZER_USER use a pair of functions written in PHP for serialization
+ * use a pair of functions written in PHP for serialization
*/
public const SERIALIZER_USER = 2;
@@ -3915,19 +3915,19 @@ public function setDeserializer(callable $unserialize_cb) {}
* Specifies the number of replicas required to be successfully committed
* before returning success in a write operation to provide the desired
* consistency level.
- * @const OPT_POLICY_COMMIT_LEVEL commit level policy option
+ * commit level policy option
*/
public const OPT_POLICY_COMMIT_LEVEL = "OPT_POLICY_COMMIT_LEVEL";
/**
* Return succcess only after successfully committing all replicas.
- * @const POLICY_COMMIT_LEVEL_ALL write to the master and all replicas (default)
+ * write to the master and all replicas (default)
*/
public const POLICY_COMMIT_LEVEL_ALL = 0;
/**
* Return succcess after successfully committing the master replica.
- * @const POLICY_COMMIT_LEVEL_MASTER master will asynchronously write to replicas
+ * master will asynchronously write to replicas
*/
public const POLICY_COMMIT_LEVEL_MASTER = 1;
@@ -3936,19 +3936,19 @@ public function setDeserializer(callable $unserialize_cb) {}
*
* One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
* Specifies which partition replica to read from.
- * @const OPT_POLICY_REPLICA replica policy option
+ * replica policy option
*/
public const OPT_POLICY_REPLICA = "OPT_POLICY_REPLICA";
/**
* Read from the partition master replica node.
- * @const POLICY_REPLICA_MASTER read from master
+ * read from master
*/
public const POLICY_REPLICA_MASTER = 0;
/**
* Read from an unspecified replica node.
- * @const POLICY_REPLICA_ANY read from any replica node
+ * read from any replica node
*/
public const POLICY_REPLICA_ANY = 1;
@@ -3956,7 +3956,7 @@ public function setDeserializer(callable $unserialize_cb) {}
* Always try node containing master partition first. If connection fails and
* `retry_on_timeout` is true, try node containing replica partition.
* Currently restricted to master and one replica. (default)
- * @const POLICY_REPLICA_SEQUENCE attempt to read from master first, then try the node containing replica partition if connection failed. (default)
+ * attempt to read from master first, then try the node containing replica partition if connection failed. (default)
*/
public const POLICY_REPLICA_SEQUENCE = 2;
@@ -3966,7 +3966,7 @@ public function setDeserializer(callable $unserialize_cb) {}
*
* "rack_aware" must be set to true in the client constructor, and "rack_id" must match the server rack configuration
* to enable this functionality.
- * @const POLICY_REPLICA_PREFER_RACK attemp to read from master first, then try the node containing replica partition if connection failed. (default)
+ * attemp to read from master first, then try the node containing replica partition if connection failed. (default)
*/
public const POLICY_REPLICA_PREFER_RACK = 3;
@@ -3976,20 +3976,19 @@ public function setDeserializer(callable $unserialize_cb) {}
* One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
* Specifies the number of replicas to be consulted in a read operation to
* provide the desired consistency level in availability mode.
- * @const OPT_POLICY_READ_MODE_AP policy read option for availability namespaces
+ * policy read option for availability namespaces
*/
public const OPT_POLICY_READ_MODE_AP = "OPT_POLICY_READ_MODE_AP";
/**
* Involve a single replica in the operation.
- * @const POLICY_READ_MODE_AP_ONE (default)
+ * (default)
*/
public const POLICY_READ_MODE_AP_ONE = 0;
/**
* Involve all replicas in the operation.
- * @const AS_POLICY_READ_MODE_AP_ALL
- */
+ * */
public const AS_POLICY_READ_MODE_AP_ALL = 1;
/**
@@ -3998,40 +3997,36 @@ public function setDeserializer(callable $unserialize_cb) {}
* One of the {@link https://www.aerospike.com/docs/architecture/consistency.html per-transaction consistency levels}.
* Specifies the number of replicas to be consulted in a read operation to
* provide the desired consistency level.
- * @const OPT_POLICY_READ_MODE_SC policy read option for consistency namespaces
+ * policy read option for consistency namespaces
*/
public const OPT_POLICY_READ_MODE_SC = "OPT_POLICY_READ_MODE_SC";
/**
* Always read from master. Record versions are local to session.
- * @const POLICY_READ_MODE_SC_SESSION (default)
+ * (default)
*/
public const POLICY_READ_MODE_SC_SESSION = 0;
/**
* Always read from master. Record versions are global and thus serialized.
- * @const POLICY_READ_MODE_SC_LINEARIZE
- */
+ * */
public const POLICY_READ_MODE_SC_LINEARIZE = 1;
/**
* Read from master or fully migrated replica. Record versions may not always increase.
- * @const POLICY_READ_MODE_SC_ALLOW_REPLICA
- */
+ * */
public const POLICY_READ_MODE_SC_ALLOW_REPLICA = 2;
/**
* Read from master or fully migrated replica. Unavailable partitions are allowed. Record versions may not always increase.
- * @const POLICY_READ_MODE_SC_ALLOW_UNAVAILABLE
- */
+ * */
public const POLICY_READ_MODE_SC_ALLOW_UNAVAILABLE = 3;
/*
* Should raw bytes representing a list or map be deserialized to an array.
* Set to false for backup programs that just need access to raw bytes.
* Default: true
- @const OPT_DESERIALIZE
- */
+ */
public const OPT_DESERIALIZE = "deserialize";
/**
@@ -4113,66 +4108,66 @@ public function setDeserializer(callable $unserialize_cb) {}
/**
* Accepts one of the SCAN_PRIORITY_* values.
*
- * @const OPT_SCAN_PRIORITY The priority of the scan
+ * The priority of the scan
*/
public const OPT_SCAN_PRIORITY = "OPT_SCAN_PRIORITY";
/**
* The cluster will auto-adjust the priority of the scan.
- * @const SCAN_PRIORITY_AUTO auto-adjust the scan priority (default)
+ * auto-adjust the scan priority (default)
*/
public const SCAN_PRIORITY_AUTO = "SCAN_PRIORITY_AUTO";
/**
* Set the scan as having low priority.
- * @const SCAN_PRIORITY_LOW low priority scan
+ * low priority scan
*/
public const SCAN_PRIORITY_LOW = "SCAN_PRIORITY_LOW";
/**
* Set the scan as having medium priority.
- * @const SCAN_PRIORITY_MEDIUM medium priority scan
+ * medium priority scan
*/
public const SCAN_PRIORITY_MEDIUM = "SCAN_PRIORITY_MEDIUM";
/**
* Set the scan as having high priority.
- * @const SCAN_PRIORITY_HIGH high priority scan
+ * high priority scan
*/
public const SCAN_PRIORITY_HIGH = "SCAN_PRIORITY_HIGH";
/**
* Do not return the bins of the records matched by the scan.
*
- * @const OPT_SCAN_NOBINS boolean value (default: false)
+ * boolean value (default: false)
*/
public const OPT_SCAN_NOBINS = "OPT_SCAN_NOBINS";
/**
* Set the scan to run over a given percentage of the possible records.
*
- * @const OPT_SCAN_PERCENTAGE integer value from 1-100 (default: 100)
+ * integer value from 1-100 (default: 100)
*/
public const OPT_SCAN_PERCENTAGE = "OPT_SCAN_PERCENTAGE";
/**
* Scan all the nodes in the cluster concurrently.
*
- * @const OPT_SCAN_CONCURRENTLY boolean value (default: false)
+ * boolean value (default: false)
*/
public const OPT_SCAN_CONCURRENTLY = "OPT_SCAN_CONCURRENTLY";
/**
* Do not return the bins of the records matched by the query.
*
- * @const OPT_QUERY_NOBINS boolean value (default: false)
+ * boolean value (default: false)
*/
public const OPT_QUERY_NOBINS = "OPT_QUERY_NOBINS";
/**
* Revert to the older batch-direct protocol, instead of batch-index.
*
- * @const USE_BATCH_DIRECT boolean value (default: false)
+ * boolean value (default: false)
*/
public const USE_BATCH_DIRECT = "USE_BATCH_DIRECT";
@@ -4180,7 +4175,7 @@ public function setDeserializer(callable $unserialize_cb) {}
* Set to true to enable durable delete for the operation.
* Durable deletes are an Enterprise Edition feature
*
- * @const OPT_POLICY_DURABLE_DELETE boolean value (default: false)
+ * boolean value (default: false)
*/
public const OPT_POLICY_DURABLE_DELETE = "OPT_POLICY_DURABLE_DELETE";
@@ -4190,26 +4185,23 @@ public function setDeserializer(callable $unserialize_cb) {}
* @see Aerospike::AS_MAP_UNORDERED
* @see Aerospike::AS_MAP_KEY_ORDERED
* @see Aerospike::AS_MAP_KEY_VALUE_ORDERED
- * @const OPT_MAP_ORDER
- */
+ * */
public const OPT_MAP_ORDER = "OPT_MAP_ORDER";
/**
* The Aerospike map is unordered
- * @const AS_MAP_UNORDERED (default)
+ * (default)
*/
public const AS_MAP_UNORDERED = "AS_MAP_UNORDERED";
/**
* The Aerospike map is ordered by key
- * @const AS_MAP_KEY_ORDERED
- */
+ * */
public const AS_MAP_KEY_ORDERED = "AS_MAP_KEY_ORDERED";
/**
* The Aerospike map is ordered by key and value
- * @const AS_MAP_KEY_VALUE_ORDERED
- */
+ * */
public const AS_MAP_KEY_VALUE_ORDERED = "AS_MAP_KEY_VALUE_ORDERED";
/**
@@ -4217,23 +4209,16 @@ public function setDeserializer(callable $unserialize_cb) {}
* @see Aerospike::AS_MAP_UPDATE
* @see Aerospike::AS_MAP_UPDATE_ONLY
* @see Aerospike::AS_MAP_CREATE_ONLY
- * @const OPT_MAP_WRITE_MODE
- */
+ * */
public const OPT_MAP_WRITE_MODE = "OPT_MAP_WRITE_MODE";
/**
- * @const AS_MAP_UPDATE (default)
+ * (default)
*/
public const AS_MAP_UPDATE = "AS_MAP_UPDATE";
- /**
- * @const AS_MAP_UPDATE_ONLY
- */
public const AS_MAP_UPDATE_ONLY = "AS_MAP_UPDATE_ONLY";
- /**
- * @const AS_MAP_CREATE_ONLY
- */
public const AS_MAP_CREATE_ONLY = "AS_MAP_CREATE_ONLY";
/**
@@ -4243,132 +4228,100 @@ public function setDeserializer(callable $unserialize_cb) {}
* @see Aerospike::AS_MAP_WRITE_UPDATE_ONLY
* @see Aerospike::AS_MAP_WRITE_NO_FAIL
* @see Aerospike::AS_MAP_WRITE_PARTIAL
- * @const OPT_MAP_WRITE_FLAGS
- */
+ * */
public const OPT_MAP_WRITE_FLAGS = "OPT_MAP_WRITE_FLAGS";
/**
* Default. Allow create or update.
- * @const AS_MAP_WRITE_DEFAULT (default)
+ * (default)
*/
public const AS_MAP_WRITE_DEFAULT = "AS_MAP_WRITE_DEFAULT";
/**
* If the key already exists, the item will be denied. If the key does not exist, a new item will be created.
- * @const AS_MAP_WRITE_CREATE_ONLY
- */
+ * */
public const AS_MAP_WRITE_CREATE_ONLY = "AS_MAP_WRITE_CREATE_ONLY";
/**
* If the key already exists, the item will be overwritten. If the key does not exist, the item will be denied.
- * @const AS_MAP_WRITE_UPDATE_ONLY
- */
+ * */
public const AS_MAP_WRITE_UPDATE_ONLY = "AS_MAP_WRITE_UPDATE_ONLY";
/**
* Do not raise error if a map item is denied due to write flag constraints (always succeed).
- * @const AS_MAP_WRITE_NO_FAIL
- */
+ * */
public const AS_MAP_WRITE_NO_FAIL = "AS_MAP_WRITE_NO_FAIL";
/**
* Allow other valid map items to be committed if a map item is denied due to write flag constraints.
- * @const AS_MAP_WRITE_PARTIAL
- */
+ * */
public const AS_MAP_WRITE_PARTIAL = "AS_MAP_WRITE_PARTIAL";
/**
* Do not return a result for the map operation (get and remove operations)
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_NONE
- */
+ * */
public const MAP_RETURN_NONE = "AS_MAP_RETURN_NONE";
/**
* Return in key index order
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const AS_MAP_RETURN_INDEX
- */
+ * */
public const MAP_RETURN_INDEX = "AS_MAP_RETURN_INDEX";
/**
* Return in reverse key order
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_REVERSE_INDEX
- */
+ * */
public const MAP_RETURN_REVERSE_INDEX = "AS_MAP_RETURN_REVERSE_INDEX";
/**
* Return in value order
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_RANK
- */
+ * */
public const MAP_RETURN_RANK = "AS_MAP_RETURN_RANK";
/**
* Return in reverse value order
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_REVERSE_RANK
- */
+ * */
public const MAP_RETURN_REVERSE_RANK = "AS_MAP_RETURN_REVERSE_RANK";
/**
* Return count of items selected
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_COUNT
- */
+ * */
public const MAP_RETURN_COUNT = "AS_MAP_RETURN_COUNT";
/**
* Return key for single key read and key list for range read
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_KEY
- */
+ * */
public const MAP_RETURN_KEY = "AS_MAP_RETURN_KEY";
/**
* Return value for single key read and value list for range read
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_VALUE
- */
+ * */
public const MAP_RETURN_VALUE = "AS_MAP_RETURN_VALUE";
/**
* Return key/value items
* Will be of the form ['key1', 'val1', 'key2', 'val2', 'key3', 'val3]
* @link https://www.aerospike.com/docs/guide/cdt-map.html#map-apis Map Result Types
- * @const MAP_RETURN_KEY_VALUE
- */
+ * */
public const MAP_RETURN_KEY_VALUE = "AS_MAP_RETURN_KEY_VALUE";
- /**
- * @const LOG_LEVEL_OFF
- */
public const LOG_LEVEL_OFF = "LOG_LEVEL_OFF";
- /**
- * @const LOG_LEVEL_ERROR
- */
public const LOG_LEVEL_ERROR = "LOG_LEVEL_ERROR";
- /**
- * @const LOG_LEVEL_WARN
- */
public const LOG_LEVEL_WARN = "LOG_LEVEL_WARN";
- /**
- * @const LOG_LEVEL_INFO
- */
public const LOG_LEVEL_INFO = "LOG_LEVEL_INFO";
- /**
- * @const LOG_LEVEL_DEBUG
- */
public const LOG_LEVEL_DEBUG = "LOG_LEVEL_DEBUG";
- /**
- * @const LOG_LEVEL_TRACE
- */
public const LOG_LEVEL_TRACE = "LOG_LEVEL_TRACE";
/**
@@ -4381,7 +4334,7 @@ public function setDeserializer(callable $unserialize_cb) {}
* {@link https://github.com/aerospike/aerospike-client-c/blob/master/src/include/aerospike/as_status.h status codes}
* of the C client.
*
- * @const OK Success
+ * Success
*/
public const OK = "AEROSPIKE_OK";
@@ -4389,112 +4342,95 @@ public function setDeserializer(callable $unserialize_cb) {}
/**
* Synchronous connection error
- * @const ERR_CONNECTION
- */
+ * */
public const ERR_CONNECTION = "AEROSPIKE_ERR_CONNECTION";
/**
* Node invalid or could not be found
- * @const ERR_TLS_ERROR
- */
+ * */
public const ERR_TLS_ERROR = "AEROSPIKE_ERR_TLS";
/**
* Node invalid or could not be found
- * @const ERR_INVALID_NODE
- */
+ * */
public const ERR_INVALID_NODE = "AEROSPIKE_ERR_INVALID_NODE";
/**
* Client hit the max asynchronous connections
- * @const ERR_NO_MORE_CONNECTIONS
- */
+ * */
public const ERR_NO_MORE_CONNECTIONS = "AEROSPIKE_ERR_NO_MORE_CONNECTIONS";
/**
* Asynchronous connection error
- * @const ERR_ASYNC_CONNECTION
- */
+ * */
public const ERR_ASYNC_CONNECTION = "AEROSPIKE_ERR_ASYNC_CONNECTION";
/**
* Query or scan was aborted in user's callback
- * @const ERR_CLIENT_ABORT
- */
+ * */
public const ERR_CLIENT_ABORT = "AEROSPIKE_ERR_CLIENT_ABORT";
/**
* Host name could not be found in DNS lookup
- * @const ERR_INVALID_HOST
- */
+ * */
public const ERR_INVALID_HOST = "AEROSPIKE_ERR_INVALID_HOST";
/**
* Invalid client API parameter
- * @const ERR_PARAM
- */
+ * */
public const ERR_PARAM = "AEROSPIKE_ERR_PARAM";
/**
* Generic client API usage error
- * @const ERR_CLIENT
- */
+ * */
public const ERR_CLIENT = "AEROSPIKE_ERR_CLIENT";
// 1-49 - Basic Server Errors
/**
* Generic error returned by server
- * @const ERR_SERVER
- */
+ * */
public const ERR_SERVER = "AEROSPIKE_ERR_SERVER";
/**
* No record is found with the specified namespace/set/key combination.
* May be returned by a read, or a write with OPT_POLICY_EXISTS
* set to POLICY_EXISTS_UPDATE
- * @const ERR_RECORD_NOT_FOUND
- */
+ * */
public const ERR_RECORD_NOT_FOUND = "AEROSPIKE_ERR_RECORD_NOT_FOUND";
/**
* Generation of record does not satisfy the OPT_POLICY_GEN write policy
- * @const ERR_RECORD_GENERATION
- */
+ * */
public const ERR_RECORD_GENERATION = "AEROSPIKE_ERR_RECORD_GENERATION";
/**
* Illegal parameter sent from client. Check client parameters and verify
* each is supported by current server version
- * @const ERR_REQUEST_INVALID
- */
+ * */
public const ERR_REQUEST_INVALID = "AEROSPIKE_ERR_REQUEST_INVALID";
/**
* The operation cannot be applied to the current bin on the server
- * @const ERR_OP_NOT_APPLICABLE
- */
+ * */
public const ERR_OP_NOT_APPLICABLE = "AEROSPIKE_ERR_OP_NOT_APPLICABLE";
/**
* Record already exists. May be returned by a write with the
* OPT_POLICY_EXISTS write policy set to POLICY_EXISTS_CREATE
- * @const ERR_RECORD_EXISTS
- */
+ * */
public const ERR_RECORD_EXISTS = "AEROSPIKE_ERR_RECORD_EXISTS";
/**
* (future) For future write requests which specify 'BIN_CREATE_ONLY',
* request failed because one of the bins in the write already exists
- * @const ERR_BIN_EXISTS
- */
+ * */
public const ERR_BIN_EXISTS = "AEROSPIKE_ERR_BIN_EXISTS";
/**
* On scan requests, the scan terminates because cluster is in migration.
* Only occur when client requested 'fail_on_cluster_change' policy on scan
- * @const ERR_CLUSTER_CHANGE
- */
+ * */
public const ERR_CLUSTER_CHANGE = "AEROSPIKE_ERR_CLUSTER_CHANGE";
/**
@@ -4502,95 +4438,81 @@ public function setDeserializer(callable $unserialize_cb) {}
* or disk - min-avail-pct). Can also occur if memory cannot be allocated
* anymore (but stop_writes should in general hit first). Namespace will no
* longer be able to accept write requests
- * @const ERR_SERVER_FULL
- */
+ * */
public const ERR_SERVER_FULL = "AEROSPIKE_ERR_SERVER_FULL";
/**
* Request was not completed during the allocated time, thus aborted
- * @const ERR_TIMEOUT
- */
+ * */
public const ERR_TIMEOUT = "AEROSPIKE_ERR_TIMEOUT";
/**
* Write request is rejected because XDR is not running.
* Only occur when XDR configuration xdr-stop-writes-noxdr is on
- * @const ERR_NO_XDR
- */
+ * */
#[Deprecated("Will be reused as ERR_ALWAYS_FORBIDDEN")]
public const ERR_ALWAYS_FORBIDDEN = "AEROSPIKE_ERR_ALWAYS_FORBIDDEN";
/**
* Server is not accepting requests.
* Occur during single node on a quick restart to join existing cluster
- * @const ERR_CLUSTER
- */
+ * */
public const ERR_CLUSTER = "AEROSPIKE_ERR_CLUSTER";
/**
* Operation is not allowed due to data type or namespace configuration incompatibility.
* For example, append to a float data type, or insert a non-integer when
* namespace is configured as data-in-index
- * @const ERR_BIN_INCOMPATIBLE_TYPE
- */
+ * */
public const ERR_BIN_INCOMPATIBLE_TYPE = "AEROSPIKE_ERR_BIN_INCOMPATIBLE_TYPE";
/**
* Attempt to write a record whose size is bigger than the configured write-block-size
- * @const ERR_RECORD_TOO_BIG
- */
+ * */
public const ERR_RECORD_TOO_BIG = "AEROSPIKE_ERR_RECORD_TOO_BIG";
/**
* Too many concurrent operations (> transaction-pending-limit) on the same record.
* A "hot-key" situation
- * @const ERR_RECORD_BUSY
- */
+ * */
public const ERR_RECORD_BUSY = "AEROSPIKE_ERR_RECORD_BUSY";
/**
* Scan aborted by user on server
- * @const ERR_SCAN_ABORTED
- */
+ * */
public const ERR_SCAN_ABORTED = "AEROSPIKE_ERR_SCAN_ABORTED";
/**
* The client is trying to use a feature that does not yet exist in the
* version of the server node it is talking to
- * @const ERR_UNSUPPORTED_FEATURE
- */
+ * */
public const ERR_UNSUPPORTED_FEATURE = "AEROSPIKE_ERR_UNSUPPORTED_FEATURE";
/**
* (future) For future write requests which specify 'REPLACE_ONLY',
* request fail because specified bin name does not exist in record
- * @const ERR_BIN_NOT_FOUND
- */
+ * */
public const ERR_BIN_NOT_FOUND = "AEROSPIKE_ERR_BIN_NOT_FOUND";
/**
* Write request is rejected because one or more storage devices of the node are not keeping up
- * @const ERR_DEVICE_OVERLOAD
- */
+ * */
public const ERR_DEVICE_OVERLOAD = "AEROSPIKE_ERR_DEVICE_OVERLOAD";
/**
* For update request on records which has key stored, the incoming key does not match
* the existing stored key. This indicates a RIPEMD160 key collision has happend (report as a bug)
- * @const ERR_RECORD_KEY_MISMATCH
- */
+ * */
public const ERR_RECORD_KEY_MISMATCH = "AEROSPIKE_ERR_RECORD_KEY_MISMATCH";
/**
* Namespace in request not found on server
- * @const ERR_NAMESPACE_NOT_FOUND
- */
+ * */
public const ERR_NAMESPACE_NOT_FOUND = "AEROSPIKE_ERR_NAMESPACE_NOT_FOUND";
/**
* Bin name length greater than 14 characters, or maximum number of unique bin names are exceeded
- * @const ERR_BIN_NAME
- */
+ * */
public const ERR_BIN_NAME = "AEROSPIKE_ERR_BIN_NAME";
/**
@@ -4598,568 +4520,478 @@ public function setDeserializer(callable $unserialize_cb) {}
* For writes, the set is in the middle of being deleted, or the set's stop-write is reached;
* For scan, too many concurrent scan jobs (> scan-max-active);
* For XDR-ed cluster, fail writes which are not replicated from another datacenter
- * @const ERR_FAIL_FORBIDDEN
- */
+ * */
public const ERR_FAIL_FORBIDDEN = "AEROSPIKE_ERR_FORBIDDEN";
/**
* Target was not found for operations that requires a target to be found
- * @const ERR_FAIL_ELEMENT_NOT_FOUND
- */
+ * */
public const ERR_FAIL_ELEMENT_NOT_FOUND = "AEROSPIKE_ERR_FAIL_NOT_FOUND";
/**
* Target already exist for operations that requires the target to not exist
- * @const ERR_FAIL_ELEMENT_EXISTS
- */
+ * */
public const ERR_FAIL_ELEMENT_EXISTS = "AEROSPIKE_ERR_FAIL_ELEMENT_EXISTS";
// 50-89 - Security Specific Errors
/**
* Security functionality not supported by connected server
- * @const ERR_SECURITY_NOT_SUPPORTED
- */
+ * */
public const ERR_SECURITY_NOT_SUPPORTED = "AEROSPIKE_ERR_SECURITY_NOT_SUPPORTED";
/**
* Security functionality not enabled by connected server
- * @const ERR_SECURITY_NOT_ENABLED
- */
+ * */
public const ERR_SECURITY_NOT_ENABLED = "AEROSPIKE_ERR_SECURITY_NOT_ENABLED";
/**
* Security scheme not supported
- * @const ERR_SECURITY_SCHEME_NOT_SUPPORTED
- */
+ * */
public const ERR_SECURITY_SCHEME_NOT_SUPPORTED = "AEROSPIKE_ERR_SECURITY_SCHEME_NOT_SUPPORTED";
/**
* Unrecognized security command
- * @const ERR_INVALID_COMMAND
- */
+ * */
public const ERR_INVALID_COMMAND = "AEROSPIKE_ERR_INVALID_COMMAND";
/**
* Field is not valid
- * @const ERR_INVALID_FIELD
- */
+ * */
public const ERR_INVALID_FIELD = "AEROSPIKE_ERR_INVALID_FIELD";
/**
* Security protocol not followed
- * @const ERR_ILLEGAL_STATE
- */
+ * */
public const ERR_ILLEGAL_STATE = "AEROSPIKE_ERR_ILLEGAL_STATE";
/**
* No user supplied or unknown user
- * @const ERR_INVALID_USER
- */
+ * */
public const ERR_INVALID_USER = "AEROSPIKE_ERR_INVALID_USER";
/**
* User already exists
- * @const ERR_USER_ALREADY_EXISTS
- */
+ * */
public const ERR_USER_ALREADY_EXISTS = "AEROSPIKE_ERR_USER_ALREADY_EXISTS";
/**
* Password does not exists or not recognized
- * @const ERR_INVALID_PASSWORD
- */
+ * */
public const ERR_INVALID_PASSWORD = "AEROSPIKE_ERR_INVALID_PASSWORD";
/**
* Expired password
- * @const ERR_EXPIRED_PASSWORD
- */
+ * */
public const ERR_EXPIRED_PASSWORD = "AEROSPIKE_ERR_EXPIRED_PASSWORD";
/**
* Forbidden password (e.g. recently used)
- * @const ERR_FORBIDDEN_PASSWORD
- */
+ * */
public const ERR_FORBIDDEN_PASSWORD = "AEROSPIKE_ERR_FORBIDDEN_PASSWORD";
/**
* Invalid credential or credential does not exist
- * @const ERR_INVALID_CREDENTIAL
- */
+ * */
public const ERR_INVALID_CREDENTIAL = "AEROSPIKE_ERR_INVALID_CREDENTIAL";
/**
* No role(s) or unknown role(s)
- * @const ERR_INVALID_ROLE
- */
+ * */
public const ERR_INVALID_ROLE = "AEROSPIKE_ERR_INVALID_ROLE";
/**
* Privilege is invalid
- * @const ERR_INVALID_PRIVILEGE
- */
+ * */
public const ERR_INVALID_PRIVILEGE = "AEROSPIKE_ERR_INVALID_PRIVILEGE";
/**
* User must be authenticated before performing database operations
- * @const ERR_NOT_AUTHENTICATED
- */
+ * */
public const ERR_NOT_AUTHENTICATED = "AEROSPIKE_ERR_NOT_AUTHENTICATED";
/**
* User does not possess the required role to perform the database operation
- * @const ERR_ROLE_VIOLATION
- */
+ * */
public const ERR_ROLE_VIOLATION = "AEROSPIKE_ERR_ROLE_VIOLATION";
/**
* Role already exists
- * @const ERR_ROLE_ALREADY_EXISTS
- */
+ * */
public const ERR_ROLE_ALREADY_EXISTS = "AEROSPIKE_ERR_ROLE_ALREADY_EXISTS";
// 100-109 - UDF Specific Errors
//
/**
* A user defined function failed to execute
- * @const ERR_UDF
- */
+ * */
public const ERR_UDF = "AEROSPIKE_ERR_UDF";
/**
* The UDF does not exist
- * @const ERR_UDF_NOT_FOUND
- */
+ * */
public const ERR_UDF_NOT_FOUND = "AEROSPIKE_ERR_UDF_NOT_FOUND";
/**
* The LUA file does not exist
- * @const ERR_LUA_FILE_NOT_FOUND
- */
+ * */
public const ERR_LUA_FILE_NOT_FOUND = "AEROSPIKE_ERR_LUA_FILE_NOT_FOUND";
// 150-159 - Batch Specific Errors
/**
* Batch functionality has been disabled by configuring the batch-index-thread=0
- * @const ERR_BATCH_DISABLED
- */
+ * */
public const ERR_BATCH_DISABLED = "AEROSPIKE_ERR_BATCH_DISABLED";
/**
* Batch max requests has been exceeded
- * @const ERR_BATCH_MAX_REQUESTS_EXCEEDED
- */
+ * */
public const ERR_BATCH_MAX_REQUESTS_EXCEEDED = "AEROSPIKE_ERR_BATCH_MAX_REQUESTS_EXCEEDED";
/**
* All batch queues are full
- * @const ERR_BATCH_QUEUES_FULL
- */
+ * */
public const ERR_BATCH_QUEUES_FULL = "AEROSPIKE_ERR_BATCH_QUEUES_FULL";
// 160-169 - Geo Specific Errors
/**
* GeoJSON is malformed or not supported
- * @const ERR_GEO_INVALID_GEOJSON
- */
+ * */
public const ERR_GEO_INVALID_GEOJSON = "AEROSPIKE_ERR_GEO_INVALID_GEOJSON";
// 200-219 - Secondary Index Specific Errors
/**
* Secondary index already exists
- * @const ERR_INDEX_FOUND
- * Accepts one of the POLICY_KEY_* values.
+ * * Accepts one of the POLICY_KEY_* values.
*
* {@link https://www.aerospike.com/docs/client/php/usage/kvs/record-structure.html Records}
* are uniquely identified by their digest, and can optionally store the value of their primary key
* (their unique ID in the application).
- * @const OPT_POLICY_KEY Key storage policy option (digest-only or send key)
+ * Key storage policy option (digest-only or send key)
*/
public const ERR_INDEX_FOUND = "AEROSPIKE_ERR_INDEX_FOUND";
/**
* Secondary index does not exist
- * @const ERR_INDEX_NOT_FOUND
- */
+ * */
public const ERR_INDEX_NOT_FOUND = "AEROSPIKE_ERR_INDEX_NOT_FOUND";
/**
* Secondary index memory space exceeded
- * @const ERR_INDEX_OOM
- */
+ * */
public const ERR_INDEX_OOM = "AEROSPIKE_ERR_INDEX_OOM";
/**
* Secondary index not available for query. Occurs when indexing creation has not finished
- * @const ERR_INDEX_NOT_READABLE
- */
+ * */
public const ERR_INDEX_NOT_READABLE = "AEROSPIKE_ERR_INDEX_NOT_READABLE";
/**
* Generic secondary index error
- * @const ERR_INDEX
- */
+ * */
public const ERR_INDEX = "AEROSPIKE_ERR_INDEX";
/**
* Index name maximun length exceeded
- * @const ERR_INDEX_NAME_MAXLEN
- */
+ * */
public const ERR_INDEX_NAME_MAXLEN = "AEROSPIKE_ERR_INDEX_NAME_MAXLEN";
/**
* Maximum number of indicies exceeded
- * @const ERR_INDEX_MAXCOUNT
- */
+ * */
public const ERR_INDEX_MAXCOUNT = "AEROSPIKE_ERR_INDEX_MAXCOUNT";
/**
* Secondary index query aborted
- * @const ERR_QUERY_ABORTED
- */
+ * */
public const ERR_QUERY_ABORTED = "AEROSPIKE_ERR_QUERY_ABORTED";
/**
* Secondary index queue full
- * @const ERR_QUERY_QUEUE_FULL
- */
+ * */
public const ERR_QUERY_QUEUE_FULL = "AEROSPIKE_ERR_QUERY_QUEUE_FULL";
/**
* Secondary index query timed out on server
- * @const ERR_QUERY_TIMEOUT
- */
+ * */
public const ERR_QUERY_TIMEOUT = "AEROSPIKE_ERR_QUERY_TIMEOUT";
/**
* Generic query error
- * @const ERR_QUERY
- */
+ * */
public const ERR_QUERY = "AEROSPIKE_ERR_QUERY";
/**
* write operator for the operate() method
- * @const OPERATOR_WRITE
- */
+ * */
public const OPERATOR_WRITE = "OPERATOR_WRITE";
/**
* read operator for the operate() method
- * @const OPERATOR_READ
- */
+ * */
public const OPERATOR_READ = "OPERATOR_READ";
/**
* increment operator for the operate() method
- * @const OPERATOR_INCR
- */
+ * */
public const OPERATOR_INCR = "OPERATOR_INCR";
/**
* prepend operator for the operate() method
- * @const OPERATOR_PREPEND
- */
+ * */
public const OPERATOR_PREPEND = "OPERATOR_PREPEND";
/**
* append operator for the operate() method
- * @const OPERATOR_APPEND
- */
+ * */
public const OPERATOR_APPEND = "OPERATOR_APPEND";
/**
* touch operator for the operate() method
- * @const OPERATOR_TOUCH
- */
+ * */
public const OPERATOR_TOUCH = "OPERATOR_TOUCH";
/**
* delete operator for the operate() method
- * @const OPERATOR_DELETE
- */
+ * */
public const OPERATOR_DELETE = "OPERATOR_DELETE";
// List operation constants
/**
* list-append operator for the operate() method
- * @const OP_LIST_APPEND
- */
+ * */
public const OP_LIST_APPEND = "OP_LIST_APPEND";
/**
* list-merge operator for the operate() method
- * @const OP_LIST_MERGE
- */
+ * */
public const OP_LIST_MERGE = "OP_LIST_MERGE";
/**
* list-insert operator for the operate() method
- * @const OP_LIST_INSERT
- */
+ * */
public const OP_LIST_INSERT = "OP_LIST_INSERT";
/**
* list-insert-items operator for the operate() method
- * @const OP_LIST_INSERT_ITEMS
- */
+ * */
public const OP_LIST_INSERT_ITEMS = "OP_LIST_INSERT_ITEMS";
/**
* list-pop operator for the operate() method
- * @const OP_LIST_POP
- */
+ * */
public const OP_LIST_POP = "OP_LIST_POP";
/**
* list-pop-range operator for the operate() method
- * @const OP_LIST_POP_RANGE
- */
+ * */
public const OP_LIST_POP_RANGE = "OP_LIST_POP_RANGE";
/**
* list-remove operator for the operate() method
- * @const OP_LIST_REMOVE
- */
+ * */
public const OP_LIST_REMOVE = "OP_LIST_REMOVE";
/**
* list-remove-range operator for the operate() method
- * @const OP_LIST_REMOVE_RANGE
- */
+ * */
public const OP_LIST_REMOVE_RANGE = "OP_LIST_REMOVE_RANGE";
/**
* list-clear operator for the operate() method
- * @const OP_LIST_CLEAR
- */
+ * */
public const OP_LIST_CLEAR = "OP_LIST_CLEAR";
/**
* list-set operator for the operate() method
- * @const OP_LIST_SET
- */
+ * */
public const OP_LIST_SET = "OP_LIST_SET";
/**
* list-get operator for the operate() method
- * @const OP_LIST_GET
- */
+ * */
public const OP_LIST_GET = "OP_LIST_GET";
/**
* list-get-range operator for the operate() method
- * @const OP_LIST_GET_RANGE
- */
+ * */
public const OP_LIST_GET_RANGE = "OP_LIST_GET_RANGE";
/**
* list-trim operator for the operate() method
- * @const OP_LIST_TRIM
- */
+ * */
public const OP_LIST_TRIM = "OP_LIST_TRIM";
/**
* list-size operator for the operate() method
- * @const OP_LIST_SIZE
- */
+ * */
public const OP_LIST_SIZE = "OP_LIST_SIZE";
// Map operation constants
/**
* map-size operator for the operate() method
- * @const OP_MAP_SIZE
- */
+ * */
public const OP_MAP_SIZE = "OP_MAP_SIZE";
/**
* map-size operator for the operate() method
- * @const OP_MAP_CLEAR
- */
+ * */
public const OP_MAP_CLEAR = "OP_MAP_CLEAR";
/**
* map-set-policy operator for the operate() method
- * @const OP_MAP_SET_POLICY
- */
+ * */
public const OP_MAP_SET_POLICY = "OP_MAP_SET_POLICY";
/**
* map-get-by-key operator for the operate() method
- * @const OP_MAP_GET_BY_KEY
- */
+ * */
public const OP_MAP_GET_BY_KEY = "OP_MAP_GET_BY_KEY";
/**
* map-get-by-key-range operator for the operate() method
- * @const OP_MAP_GET_BY_KEY_RANGE
- */
+ * */
public const OP_MAP_GET_BY_KEY_RANGE = "OP_MAP_GET_BY_KEY_RANGE";
/**
* map-get-by-value operator for the operate() method
- * @const OP_MAP_GET_BY_VALUE
- */
+ * */
public const OP_MAP_GET_BY_VALUE = "OP_MAP_GET_BY_VALUE";
/**
* map-get-by-value-range operator for the operate() method
- * @const OP_MAP_GET_BY_VALUE_RANGE
- */
+ * */
public const OP_MAP_GET_BY_VALUE_RANGE = "OP_MAP_GET_BY_VALUE_RANGE";
/**
* map-get-by-index operator for the operate() method
- * @const OP_MAP_GET_BY_INDEX
- */
+ * */
public const OP_MAP_GET_BY_INDEX = "OP_MAP_GET_BY_INDEX";
/**
* map-get-by-index-range operator for the operate() method
- * @const OP_MAP_GET_BY_INDEX_RANGE
- */
+ * */
public const OP_MAP_GET_BY_INDEX_RANGE = "OP_MAP_GET_BY_INDEX_RANGE";
/**
* map-get-by-rank operator for the operate() method
- * @const OP_MAP_GET_BY_RANK
- */
+ * */
public const OP_MAP_GET_BY_RANK = "OP_MAP_GET_BY_RANK";
/**
* map-get-by-rank-range operator for the operate() method
- * @const OP_MAP_GET_BY_RANK_RANGE
- */
+ * */
public const OP_MAP_GET_BY_RANK_RANGE = "OP_MAP_GET_BY_RANK_RANGE";
/**
* map-put operator for the operate() method
- * @const OP_MAP_PUT
- */
+ * */
public const OP_MAP_PUT = "OP_MAP_PUT";
/**
* map-put-items operator for the operate() method
- * @const OP_MAP_PUT_ITEMS
- */
+ * */
public const OP_MAP_PUT_ITEMS = "OP_MAP_PUT_ITEMS";
/**
* map-increment operator for the operate() method
- * @const OP_MAP_INCREMENT
- */
+ * */
public const OP_MAP_INCREMENT = "OP_MAP_INCREMENT";
/**
* map-decrement operator for the operate() method
- * @const OP_MAP_DECREMENT
- */
+ * */
public const OP_MAP_DECREMENT = "OP_MAP_DECREMENT";
/**
* map-remove-by-key operator for the operate() method
- * @const OP_MAP_REMOVE_BY_KEY
- */
+ * */
public const OP_MAP_REMOVE_BY_KEY = "OP_MAP_REMOVE_BY_KEY";
/**
* map-remove-by-key-list operator for the operate() method
- * @const OP_MAP_REMOVE_BY_KEY_LIST
- */
+ * */
public const OP_MAP_REMOVE_BY_KEY_LIST = "OP_MAP_REMOVE_BY_KEY_LIST";
/**
* map-remove-by-key-range key operator for the operate() method
- * @const OP_MAP_REMOVE_BY_KEY_RANGE
- */
+ * */
public const OP_MAP_REMOVE_BY_KEY_RANGE = "OP_MAP_REMOVE_BY_KEY_RANGE";
/**
* map-remove-by-value operator for the operate() method
- * @const OP_MAP_REMOVE_BY_VALUE
- */
+ * */
public const OP_MAP_REMOVE_BY_VALUE = "OP_MAP_REMOVE_BY_VALUE";
/**
* map-remove-by-value operator for the operate() method
- * @const OP_MAP_REMOVE_BY_VALUE_RANGE
- */
+ * */
public const OP_MAP_REMOVE_BY_VALUE_RANGE = "OP_MAP_REMOVE_BY_VALUE_RANGE";
/**
* map-remove-by-value-list operator for the operate() method
- * @const OP_MAP_REMOVE_BY_VALUE_LIST
- */
+ * */
public const OP_MAP_REMOVE_BY_VALUE_LIST = "OP_MAP_REMOVE_BY_VALUE_LIST";
/**
* map-remove-by-index operator for the operate() method
- * @const OP_MAP_REMOVE_BY_INDEX
- */
+ * */
public const OP_MAP_REMOVE_BY_INDEX = "OP_MAP_REMOVE_BY_INDEX";
/**
* map-remove-by-index-range operator for the operate() method
- * @const OP_MAP_REMOVE_BY_INDEX_RANGE
- */
+ * */
public const OP_MAP_REMOVE_BY_INDEX_RANGE = "OP_MAP_REMOVE_BY_INDEX_RANGE";
/**
* map-remove-by-rank operator for the operate() method
- * @const OP_MAP_REMOVE_BY_RANK
- */
+ * */
public const OP_MAP_REMOVE_BY_RANK = "OP_MAP_REMOVE_BY_RANK";
/**
* map-remove-by-rank-range operator for the operate() method
- * @const OP_MAP_REMOVE_BY_RANK_RANGE
- */
+ * */
public const OP_MAP_REMOVE_BY_RANK_RANGE = "OP_MAP_REMOVE_BY_RANK_RANGE";
// Query Predicate Operators
/**
* predicate operator for equality check of scalar integer or string value
- * @const OP_EQ
- * @see Aerospike::predicateEquals
+ * * @see Aerospike::predicateEquals
*/
public const OP_EQ = "=";
/**
* predicate operator matching whether an integer falls between a range of integer values
- * @const OP_BETWEEN
- * @see Aerospike::predicateBetween
+ * * @see Aerospike::predicateBetween
*/
public const OP_BETWEEN = "BETWEEN";
/**
* predicate operator for a whether a specific value is in an indexed list, mapkeys, or mapvalues
- * @const OP_CONTAINS
- * @see Aerospike::predicateContains
+ * * @see Aerospike::predicateContains
*/
public const OP_CONTAINS = "CONTAINS";
/**
* predicate operator for whether an indexed list, mapkeys, or mapvalues has an integer value within a specified range
- * @const OP_RANGE
- * @see Aerospike::predicateRange
+ * * @see Aerospike::predicateRange
*/
public const OP_RANGE = "RANGE";
/**
* geospatial predicate operator for points within a specified region
- * @const OP_GEOWITHINREGION
- */
+ * */
public const OP_GEOWITHINREGION = "GEOWITHIN";
/**
* geospatial predicate operator for regons containing a sepcified point
- * @const OP_GEOWITHINREGION
- */
+ * */
public const OP_GEOCONTAINSPOINT = "GEOCONTAINS";
/**
@@ -5206,93 +5038,79 @@ public function setDeserializer(callable $unserialize_cb) {}
// Index (container) types
/**
* The bin being indexed should contain scalar values such as string or integer
- * @const INDEX_TYPE_DEFAULT
- */
+ * */
public const INDEX_TYPE_DEFAULT = "INDEX_TYPE_DEFAULT";
/**
* The bin being indexed should contain a list
- * @const INDEX_TYPE_LIST
- */
+ * */
public const INDEX_TYPE_LIST = "INDEX_TYPE_LIST";
/**
* The bin being indexed should contain a map. The map keys will be indexed
- * @const INDEX_TYPE_MAPKEYS
- */
+ * */
public const INDEX_TYPE_MAPKEYS = "INDEX_TYPE_MAPKEYS";
/**
* The bin being indexed should contain a map. The map values will be indexed
- * @const INDEX_TYPE_MAPKEYS
- */
+ * */
public const INDEX_TYPE_MAPVALUES = "INDEX_TYPE_MAPVALUES";
// Data type
/**
* If and only if the container type matches, the value should be of type string
- * @const INDEX_STRING
- */
+ * */
public const INDEX_STRING = "INDEX_STRING";
/**
* If and only if the container type matches, the value should be of type integer
- * @const INDEX_NUMERIC
- */
+ * */
public const INDEX_NUMERIC = "INDEX_NUMERIC";
/**
* If and only if the container type matches, the value should be GeoJSON
- * @const INDEX_GEO2DSPHERE
- */
+ * */
public const INDEX_GEO2DSPHERE = "INDEX_GEO2DSPHERE";
/**
* Declare the UDF module's language to be Lua
- * @const UDF_TYPE_LUA
- */
+ * */
public const UDF_TYPE_LUA = "UDF_TYPE_LUA";
// Security role privileges
/**
* Privilege to read data
- * @const PRIV_READ
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_READ = "PRIV_READ";
/**
* Privilege to read and write data
- * @const PRIV_READ_WRITE
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_READ_WRITE = "PRIV_READ_WRITE";
/**
* Privilege to read, write and execute user-defined functions
- * @const PRIV_READ_WRITE_UDF
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_READ_WRITE_UDF = "PRIV_READ_WRITE_UDF";
/**
* Privilege to create and assign roles to users
- * @const PRIV_USER_ADMIN
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_USER_ADMIN = "PRIV_USER_ADMIN";
/**
* Privilege to manage indexes and UDFs, monitor and abort scan/query jobs, get server config
- * @const PRIV_DATA_ADMIN
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_DATA_ADMIN = "PRIV_DATA_ADMIN"; // can perform data admin functions that do not involve user admin
/** Privilege to modify dynamic server configs, get config and stats, and all data admin privileges
- * @const PRIV_SYS_ADMIN
- * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
+ * * @link https://www.aerospike.com/docs/guide/security/access-control.html Access Control
*/
public const PRIV_SYS_ADMIN = "PRIV_SYS_ADMIN"; // can perform sysadmin functions that do not involve user admin
diff --git a/bcmath/bcmath.php b/bcmath/bcmath.php
index c7042adbf..86418e48a 100644
--- a/bcmath/bcmath.php
+++ b/bcmath/bcmath.php
@@ -246,3 +246,18 @@ function bccomp(string $num1, string $num2, ?int $scale = null): int {}
#[Pure]
#[LanguageLevelTypeAware(["8.0" => "string"], default: "?string")]
function bcpowmod(string $num, string $exponent, string $modulus, ?int $scale = null) {}
+
+/**
+ * @since 8.4
+ */
+function bcfloor(string $num): string {}
+
+/**
+ * @since 8.4
+ */
+function bcceil(string $num): string {}
+
+/**
+ * @since 8.4
+ */
+function bcround(string $num, int $precision = 0, RoundingMode $mode = RoundingMode::HalfAwayFromZero): string {}
diff --git a/date/date.php b/date/date.php
index c43980147..6fca67ce2 100644
--- a/date/date.php
+++ b/date/date.php
@@ -786,7 +786,6 @@ function checkdate(int $month, int $day, int $year): bool {}
* 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 {}
@@ -1489,12 +1488,14 @@ function date_default_timezone_get(): string {}
* @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
+ * @deprecated 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
@@ -1541,12 +1542,10 @@ function date_sunrise(int $timestamp, int $returnFormat = SUNFUNCS_RET_STRING, ?
* @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
diff --git a/date/date_c.php b/date/date_c.php
index 43ed281fb..4bf0286d2 100644
--- a/date/date_c.php
+++ b/date/date_c.php
@@ -162,6 +162,21 @@ public function __serialize(): array;
#[PhpStormStubsElementAvailable(from: '8.2')]
public function __unserialize(array $data): void;
+
+ /**
+ * @since 8.4
+ */
+ public function createFromTimestamp();
+
+ /**
+ * @since 8.4
+ */
+ public function getMicrosecond(): int;
+
+ /**
+ * @since 8.4
+ */
+ public function setMicrosecond();
}
/**
@@ -435,6 +450,22 @@ public function __serialize(): array {}
#[PhpStormStubsElementAvailable(from: '8.2')]
public function __unserialize(array $data): void {}
+
+ /**
+ * @since 8.4
+ */
+ #[TentativeType]
+ public static function createFromTimestamp(int|float $timestamp): static {}
+
+ /**
+ * @since 8.4
+ */
+ public function getMicrosecond(): int {}
+
+ /**
+ * @since 8.4
+ */
+ public function setMicrosecond(int $microsecond): static {}
}
/**
@@ -742,6 +773,22 @@ public function __serialize(): array {}
#[PhpStormStubsElementAvailable(from: '8.2')]
public function __unserialize(array $data): void {}
+
+ /**
+ * @since 8.4
+ */
+ #[TentativeType]
+ public static function createFromTimestamp(int|float $timestamp): static {}
+
+ /**
+ * @since 8.4
+ */
+ public function getMicrosecond(): int {}
+
+ /**
+ * @since 8.4
+ */
+ public function setMicrosecond(int $microsecond): static {}
}
/**
diff --git a/dba/Connection.php b/dba/Connection.php
new file mode 100644
index 000000000..b9378fec9
--- /dev/null
+++ b/dba/Connection.php
@@ -0,0 +1,8 @@
+ "Dba\Connection|false"], default: "resource|false")]
function dba_open(string $path, string $mode, ?string $handler = null, int $permission = 0o644, int $map_size = 0, ?int $flags = null) {}
/**
@@ -159,6 +160,7 @@ function dba_open(string $path, string $mode, ?string $handler = null, int $perm
function dba_popen($path, $mode, $handler, ...$handler_params) {}
#[PhpStormStubsElementAvailable(from: '8.2')]
+#[LanguageLevelTypeAware(["8.4" => "Dba\Connection|false"], default: "resource|false")]
function dba_popen(string $path, string $mode, ?string $handler = null, int $permission = 0o644, int $map_size = 0, ?int $flags = null) {}
/**
@@ -170,7 +172,7 @@ function dba_popen(string $path, string $mode, ?string $handler = null, int $per
*
* @return void No value is returned.
*/
-function dba_close($dba): void {}
+function dba_close(#[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba): void {}
/**
* Delete DBA entry specified by key
@@ -184,7 +186,10 @@ function dba_close($dba): void {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function dba_delete(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, $dba): bool {}
+function dba_delete(
+ #[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key,
+ #[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba
+): bool {}
/**
* Check whether key exists
@@ -198,7 +203,10 @@ function dba_delete(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default:
*
* @return bool TRUE if the key exists, FALSE otherwise.
*/
-function dba_exists(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, $dba): bool {}
+function dba_exists(
+ #[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key,
+ #[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba
+): bool {}
/**
* Fetch data specified by key
@@ -259,7 +267,11 @@ function dba_fetch($key, $skip, $dba): string|false {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function dba_insert(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, string $value, $dba): bool {}
+function dba_insert(
+ #[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key,
+ string $value,
+ #[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba
+): bool {}
/**
* Replace or insert entry
@@ -276,7 +288,11 @@ function dba_insert(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default:
*
* @return bool TRUE on success or FALSE on failure.
*/
-function dba_replace(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key, string $value, $dba): bool {}
+function dba_replace(
+ #[LanguageLevelTypeAware(['8.2' => 'array|string'], default: '')] $key,
+ string $value,
+ #[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba
+): bool {}
/**
* Fetch first key
@@ -287,7 +303,7 @@ function dba_replace(#[LanguageLevelTypeAware(['8.2' => 'array|string'], default
*
* @return string|false the key on success or FALSE on failure.
*/
-function dba_firstkey($dba): string|false {}
+function dba_firstkey(#[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba): string|false {}
/**
* Fetch next key
@@ -298,7 +314,7 @@ function dba_firstkey($dba): string|false {}
*
* @return string|false the key on success or FALSE on failure.
*/
-function dba_nextkey($dba): string|false {}
+function dba_nextkey(#[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba): string|false {}
/**
* Optimize database
@@ -309,7 +325,7 @@ function dba_nextkey($dba): string|false {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function dba_optimize($dba): bool {}
+function dba_optimize(#[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba): bool {}
/**
* Synchronize database
@@ -320,7 +336,7 @@ function dba_optimize($dba): bool {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function dba_sync($dba): bool {}
+function dba_sync(#[LanguageLevelTypeAware(['8.4' => 'Dba\Connection'], default: 'resource')] $dba): bool {}
/**
* List all the handlers available
diff --git a/dom/dom_c.php b/dom/dom_c.php
index aa10980c0..d9536d8ef 100644
--- a/dom/dom_c.php
+++ b/dom/dom_c.php
@@ -14,6 +14,15 @@
*/
class DOMNode
{
+ /**
+ * @since 8.4
+ */
+ public const DOCUMENT_POSITION_DISCONNECTED = 1, DOCUMENT_POSITION_PRECEDING = 2, DOCUMENT_POSITION_FOLLOWING = 4;
+ /**
+ * @since 8.4
+ */
+ public const DOCUMENT_POSITION_CONTAINS = 8, DOCUMENT_POSITION_CONTAINED_BY = 16, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 32;
+
/**
* @var string
* Returns the most accurate name for the current node type
@@ -259,9 +268,9 @@ public function isSupported(
public function hasAttributes(): bool {}
/**
- * @param DOMNode $other
- * @removed 8.0
+ * @return int
*/
+ #[LanguageLevelTypeAware(['8.4' => 'int'], default: '')]
public function compareDocumentPosition(DOMNode $other) {}
/**
@@ -555,6 +564,8 @@ public function createDocumentType(
* implementation. If there is an error with the namespace,
* as determined by $namespace and $qualifiedName.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'DOMDocument'], default: 'DOMDocument|false')]
+ #[TentativeType]
public function createDocument(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $namespace,
#[PhpStormStubsElementAvailable(from: '8.0')] ?string $namespace = null,
@@ -1136,7 +1147,7 @@ public function loadXML(
*/
#[TentativeType]
public function saveXML(
- ?DOMNode $node = null,
+ #[LanguageLevelTypeAware(['7.1' => '?DOMNode'], default: '')] $node = null,
#[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $options = 0
): string|false {}
@@ -1296,10 +1307,11 @@ public function relaxNGValidateSource(#[LanguageLevelTypeAware(['8.0' => 'string
* @return bool true on success or false on failure.
*/
#[TentativeType]
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
public function registerNodeClass(
#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $baseClass,
#[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $extendedClass
- ): bool {}
+ ) {}
}
/**
@@ -2497,6 +2509,16 @@ public function evaluate(
* @return void
*/
public function registerPhpFunctions($restrict = null) {}
+
+ /**
+ * @since 8.4
+ */
+ public function registerPhpFunctionNS(string $namespaceURI, string $name, callable $callable): void {}
+
+ /**
+ * @since 8.4
+ */
+ public static function quote(string $str): string {}
}
/**
diff --git a/dom/dom_n.php b/dom/dom_n.php
new file mode 100644
index 000000000..e9c2d7b5f
--- /dev/null
+++ b/dom/dom_n.php
@@ -0,0 +1,167 @@
+
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function set_flags(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags) {}
/**
@@ -131,7 +133,8 @@ function finfo_close(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'reso
*
* @return bool TRUE on success or FALSE on failure.
*/
-function finfo_set_flags(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo, int $flags): bool {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function finfo_set_flags(#[LanguageLevelTypeAware(['8.1' => 'finfo'], default: 'resource')] $finfo, int $flags) {}
/**
* (PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
diff --git a/gd/gd.php b/gd/gd.php
index 43068286e..37a8ab330 100644
--- a/gd/gd.php
+++ b/gd/gd.php
@@ -1547,10 +1547,7 @@ function imagesy(GdImage $image): int {}
* 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 {}
/**
diff --git a/gettext/gettext.php b/gettext/gettext.php
index 8e79d3961..7f9569534 100644
--- a/gettext/gettext.php
+++ b/gettext/gettext.php
@@ -14,7 +14,7 @@
* @return string If successful, this function returns the current message
* domain, after possibly changing it.
*/
-function textdomain(?string $domain): string {}
+function textdomain(?string $domain = null): string {}
/**
* Lookup a message in the current domain
@@ -80,7 +80,7 @@ function dcgettext(string $domain, string $message, int $category): string {}
*
* @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 {}
+function bindtextdomain(string $domain, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $directory = null): string|false {}
/**
* Plural version of gettext
@@ -135,6 +135,6 @@ function dcngettext(string $domain, string $singular, string $plural, int $count
*
* @return string|false A string on success.
*/
-function bind_textdomain_codeset(string $domain, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $codeset): string|false {}
+function bind_textdomain_codeset(string $domain, #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: 'string')] $codeset = null): string|false {}
// End of gettext v.
diff --git a/gmp/gmp.php b/gmp/gmp.php
index 302d0a38f..eede9853c 100644
--- a/gmp/gmp.php
+++ b/gmp/gmp.php
@@ -798,7 +798,7 @@ function gmp_perfect_power(GMP|string|int $num): bool {}
define('GMP_MPIR_VERSION', '3.0.0');
-class GMP implements Serializable
+final class GMP implements Serializable
{
/**
* @since 8.2
diff --git a/hash/hash.php b/hash/hash.php
index ae02ea4e4..1bfbb5935 100644
--- a/hash/hash.php
+++ b/hash/hash.php
@@ -147,7 +147,8 @@ function hash_init(string $algo, int $flags = 0, string $key = "", #[PhpStormStu
*
* @return bool TRUE.
*/
-function hash_update(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, string $data): bool {}
+#[LanguageLevelTypeAware(["8.4" => "true"], default: "bool")]
+function hash_update(#[LanguageLevelTypeAware(["7.2" => "HashContext"], default: "resource")] $context, string $data) {}
/**
* (PHP 5 >= 5.1.2, PECL hash >= 1.1)
@@ -471,5 +472,10 @@ public function __serialize(): array {}
* @param array $data
*/
public function __unserialize(#[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] $data): void {}
+
+ /**
+ * @since 8.4
+ */
+ public function __debugInfo(): array {}
}
// End of hash v.1.0
diff --git a/intl/IntlChar.php b/intl/IntlChar.php
index 25fc91199..66e2ba019 100644
--- a/intl/IntlChar.php
+++ b/intl/IntlChar.php
@@ -675,6 +675,18 @@ class IntlChar
public const HST_LVT_SYLLABLE = 5;
public const HST_COUNT = 6;
public const NO_NUMERIC_VALUE = -123456789;
+ /**
+ * @since 8.4
+ */
+ public const PROPERTY_IDS_UNARY_OPERATOR = 72;
+ /**
+ * @since 8.4
+ */
+ public const PROPERTY_ID_COMPAT_MATH_START = 73;
+ /**
+ * @since 8.4
+ */
+ public const PROPERTY_ID_COMPAT_MATH_CONTINUE = 74;
/**
* Check a binary Unicode property for a code point
diff --git a/intl/intl.php b/intl/intl.php
index 53d884615..d1d571074 100644
--- a/intl/intl.php
+++ b/intl/intl.php
@@ -405,6 +405,8 @@ public function getStrength(): int {}
*
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setStrength(#[LanguageAware(['8.0' => 'int'], default: '')] #[EV([Collator::PRIMARY])] $strength) {}
/**
@@ -915,6 +917,18 @@ class NumberFormatter
* @deprecated 8.3
*/
public const TYPE_CURRENCY = 4;
+ /**
+ * @since 8.4
+ */
+ public const ROUND_TOWARD_ZERO = 2;
+ /**
+ * @since 8.4
+ */
+ public const ROUND_AWAY_FROM_ZERO = 3;
+ /**
+ * @since 8.4
+ */
+ public const ROUND_HALFODD = 8;
/**
* @link https://www.php.net/manual/en/class.numberformatter.php
@@ -1391,6 +1405,8 @@ public static function getDefault(): string {}
*
* @return bool TRUE on success or FALSE on failure.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public static function setDefault(#[LanguageAware(['8.0' => 'string'], default: '')] $locale) {}
/**
@@ -1892,6 +1908,7 @@ class IntlDateFormatter
public const RELATIVE_LONG = 129;
public const RELATIVE_MEDIUM = 130;
public const RELATIVE_SHORT = 131;
+ public const PATTERN = -2;
/**
* @param string|null $locale
@@ -2251,6 +2268,11 @@ public function getErrorCode(): int {}
#[Pure]
#[TentativeType]
public function getErrorMessage(): string {}
+
+ /**
+ * @since 8.4
+ */
+ public function parseToCalendar(string $string, &$offset = null): int|float|false {}
}
class ResourceBundle implements IteratorAggregate, Countable
@@ -2304,7 +2326,8 @@ public static function create(
*/
#[Pure]
#[TentativeType]
- public function get($index, #[LanguageAware(['8.0' => 'bool'], default: '')] $fallback = true): mixed {}
+ #[LanguageAware(['8.4' => 'ResourceBundle|array|string|int|null'], default: 'mixed')]
+ public function get(#[LanguageAware(['8.4' => 'string|int'], default: '')] $index, #[LanguageAware(['8.0' => 'bool'], default: '')] $fallback = true) {}
/**
* (PHP >= 5.3.2, PECL intl >= 2.0.0)
@@ -2513,6 +2536,22 @@ class Spoofchecker
public const SINGLE_SCRIPT_RESTRICTIVE = 536870912;
public const MIXED_NUMBERS = 1;
public const HIDDEN_OVERLAY = 2;
+ /**
+ * @since 8.4
+ */
+ public const IGNORE_SPACE = 1;
+ /**
+ * @since 8.4
+ */
+ public const CASE_INSENSITIVE = 2;
+ /**
+ * @since 8.4
+ */
+ public const ADD_CASE_MAPPINGS = 4;
+ /**
+ * @since 8.4
+ */
+ public const SIMPLE_CASE_INSENSITIVE = 6;
/**
* (PHP >= 5.4.0, PECL intl >= 2.0.0)
@@ -2576,8 +2615,16 @@ public function setAllowedLocales(#[LanguageAware(['8.0' => 'string'], default:
#[TentativeType]
public function setChecks(#[LanguageAware(['8.0' => 'int'], default: '')] $checks): void {}
+ /**
+ * @param int $level
+ */
#[TentativeType]
- public function setRestrictionLevel(int $level): void {}
+ public function setRestrictionLevel(#[LanguageAware(['8.0' => 'int'], default: '')] $level): void {}
+
+ /**
+ * @since 8.4
+ */
+ public function setAllowedChars(string $pattern, int $patternOptions = 0): void {}
}
/**
@@ -2744,6 +2791,8 @@ public function before(IntlCalendar $other): bool {}
*
* @return bool Returns TRUE on success or FALSE on failure. Failure can only occur is invalid arguments are provided.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function clear(#[LanguageAware(['8.0' => 'int|null'], default: '')] $field = null) {}
/**
@@ -3327,6 +3376,8 @@ public function set($field, $value) {}
*
* @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setFirstDayOfWeek(#[LanguageAware(['8.0' => 'int'], default: '')] $dayOfWeek) {}
/**
@@ -3338,6 +3389,8 @@ public function setFirstDayOfWeek(#[LanguageAware(['8.0' => 'int'], default: '')
*
* @return bool Returns TRUE on success. Failure can only happen due to invalid parameters.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setLenient(#[LanguageAware(['8.0' => 'bool'], default: '')] $lenient) {}
/**
@@ -3351,6 +3404,8 @@ public function setLenient(#[LanguageAware(['8.0' => 'bool'], default: '')] $len
* @return bool
* Returns TRUE on success. Failure can only happen due to invalid parameters.
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setRepeatedWallTimeOption(#[LanguageAware(['8.0' => 'int'], default: '')] $option) {}
/**
@@ -3367,6 +3422,8 @@ public function setRepeatedWallTimeOption(#[LanguageAware(['8.0' => 'int'], defa
* Returns TRUE on success. Failure can only happen due to invalid parameters.
*
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setSkippedWallTimeOption(#[LanguageAware(['8.0' => 'int'], default: '')] $option) {}
/**
@@ -3444,6 +3501,8 @@ public function toDateTime(): DateTime|false {}
* @param int $days
* @return bool
*/
+ #[LanguageAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function setMinimalDaysInFirstWeek(#[LanguageAware(['8.0' => 'int'], default: '')] $days) {}
/**
@@ -3776,6 +3835,11 @@ public function toDateTimeZone(): DateTimeZone|false {}
*/
#[TentativeType]
public function useDaylightTime(): bool {}
+
+ /**
+ * @since 8.4
+ */
+ public static function getIanaID(string $timezoneId): string|false {}
}
/**
@@ -3875,7 +3939,8 @@ function collator_get_strength(Collator $object): int {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function collator_set_strength(Collator $object, int $strength): bool {}
+#[LanguageAware(['8.4' => 'true'], default: 'bool')]
+function collator_set_strength(Collator $object, int $strength) {}
/**
* (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
@@ -4273,7 +4338,8 @@ function locale_get_default(): string {}
*
* @return bool TRUE on success or FALSE on failure.
*/
-function locale_set_default(string $locale): bool {}
+#[LanguageAware(['8.4' => 'true'], default: 'bool')]
+function locale_set_default(string $locale) {}
/**
* (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
@@ -5560,6 +5626,7 @@ function intlcal_before(IntlCalendar $calendar, IntlCalendar $other): bool {}
* @since 5.5
*/
#[LanguageAware(['8.3' => 'true'], default: 'bool')]
+#[Deprecated( reason: 'use IntlCalendar::set(), IntlCalendar::setDate(), or IntlCalendar::setDateTime() instead', since: '8.4' )]
function intlcal_set(IntlCalendar $calendar, int $year, int $month, int $dayOfMonth, int $hour, int $minute, int $second) {}
/**
@@ -6455,6 +6522,7 @@ function intltz_use_daylight_time(IntlTimeZone $timezone): bool {}
* @since 5.5
*/
#[Pure]
+#[Deprecated( reason: 'use IntlGregorianCalendar::__construct(), IntlGregorianCalendar::createFromDate(), or IntlGregorianCalendar::createFromDateTime() instead', since: '8.4' )]
function intlgregcal_create_instance($timezoneOrYear, $localeOrMonth, $day, $hour, $minute, $second): ?IntlGregorianCalendar {}
/**
@@ -6511,7 +6579,8 @@ function resourcebundle_create(?string $locale, ?string $bundle, bool $fallback
* returned as ResourceBundle object.
*/
#[Pure]
-function resourcebundle_get(ResourceBundle $bundle, $index, bool $fallback = true): mixed {}
+#[LanguageAware(['8.4' => 'ResourceBundle|array|string|int|null'], default: 'mixed')]
+function resourcebundle_get(ResourceBundle $bundle, string|int $index, bool $fallback = true) {}
/**
* (PHP >= 5.3.2, PECL intl >= 2.0.0)
@@ -6784,6 +6853,16 @@ function intltz_get_windows_id(string $timezoneId): string|false {}
function intltz_get_id_for_windows_id(string $timezoneId, ?string $region = null): string|false {}
+/**
+ * @since 8.4
+ */
+function grapheme_str_split(string $string, int $length = 1): array|false {}
+
+/**
+ * @since 8.4
+ */
+function intltz_get_iana_id(string $timezoneId): string|false {}
+
/**
* Limit on locale length, set to 80 in PHP code. Locale names longer
* than this limit will not be accepted.
@@ -7737,7 +7816,7 @@ public static function transcode(
#[LanguageAware(['8.0' => 'string'], default: '')] $str,
#[LanguageAware(['8.0' => 'string'], default: '')] $toEncoding,
#[LanguageAware(['8.0' => 'string'], default: '')] $fromEncoding,
- ?array $options = null
+ #[LanguageAware(['8.0' => 'array|null'], default: '')] $options = null
): string|false {}
}
// End of intl v.1.1.0
diff --git a/ldap/ldap.php b/ldap/ldap.php
index 8e0a5b82d..d8a1c113b 100644
--- a/ldap/ldap.php
+++ b/ldap/ldap.php
@@ -1764,4 +1764,13 @@ function ldap_exop_sync(LDAP\Connection $ldap, string $request_oid, ?string $req
*/
define('LDAP_CONTROL_AUTHZID_RESPONSE', '2.16.840.1.113730.3.4.15');
+/**
+ * @since 8.4
+ */
+define('LDAP_OPT_X_TLS_PROTOCOL_TLS1_3', 772);
+
+/**
+ * @since 8.4
+ */
+define('LDAP_OPT_X_TLS_PROTOCOL_MAX', 24603);
// End of ldap v.
diff --git a/libsodium/libsodium_d.php b/libsodium/libsodium_d.php
new file mode 100644
index 000000000..779594189
--- /dev/null
+++ b/libsodium/libsodium_d.php
@@ -0,0 +1,33 @@
+ 'string|null'], default: '')] $hostname = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $username = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $password = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $database = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $port = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $socket = null
) {}
/**
@@ -222,7 +222,7 @@ public function __construct(
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function autocommit(bool $enable): bool {}
+ public function autocommit(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $enable): bool {}
/**
* Starts a transaction
@@ -247,7 +247,7 @@ public function begin_transaction(
* @param string $password
* The MySQL password.
*
- * @param string $database
+ * @param string|null $database
* The database to change to.
*
*
@@ -258,7 +258,11 @@ public function begin_transaction(
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function change_user(string $username, string $password, ?string $database): bool {}
+ public function change_user(
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $username,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $password,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $database
+ ): bool {}
/**
* Returns the current character set of the database connection
@@ -279,17 +283,22 @@ public function client_encoding() {}
* @link https://php.net/manual/en/mysqli.close.php
* @return bool true on success or false on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
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.
+ * @param string|null $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 {}
+ public function commit(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $name = null
+ ): bool {}
/**
* @link https://php.net/manual/en/function.mysqli-connect.php
@@ -303,12 +312,12 @@ public function commit(int $flags = 0, ?string $name = null): bool {}
*/
#[TentativeType]
public function connect(
- ?string $hostname = null,
- ?string $username = null,
- ?string $password = null,
- ?string $database = null,
- ?int $port = null,
- ?string $socket = null
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $hostname = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $username = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $password = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $database = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $port = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $socket = null
): bool {}
/**
@@ -327,7 +336,9 @@ public function dump_debug_info(): bool {}
*
* @return bool true.
*/
- public function debug(string $options) {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
+ public function debug(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $options) {}
/**
* Returns a character set object
@@ -408,7 +419,7 @@ public function init() {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function kill(int $process_id): bool {}
+ public function kill(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $process_id): bool {}
/**
* Performs one or more queries on the database
@@ -428,7 +439,7 @@ public function kill(int $process_id): bool {}
* mysqli_next_result first.
*/
#[TentativeType]
- public function multi_query(string $query): bool {}
+ public function multi_query(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): bool {}
/**
* @link https://php.net/manual/en/mysqli.construct.php
@@ -509,7 +520,7 @@ public function next_result(): bool {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function options(int $option, $value): bool {}
+ public function options(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $option, $value): bool {}
/**
* Pings a server connection, or tries to reconnect if the connection has gone down
@@ -549,7 +560,7 @@ public function ping(): bool {}
* @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 {}
+ public function prepare(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): mysqli_stmt|false {}
/**
* Performs a query on the database
@@ -595,7 +606,7 @@ public function prepare(string $query): mysqli_stmt|false {}
*/
#[TentativeType]
public function query(
- string $query,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query,
#[PhpStormStubsElementAvailable(from: '7.1')] int $result_mode = MYSQLI_STORE_RESULT
): mysqli_result|bool {}
@@ -677,13 +688,13 @@ public function query(
*/
#[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
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $hostname = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $username = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $password = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $database = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int|null'], default: '')] $port = null,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $socket = null,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $flags = 0
): bool {}
/**
@@ -699,7 +710,7 @@ public function real_connect(
* @return string an escaped string.
*/
#[TentativeType]
- public function real_escape_string(string $string): string {}
+ public function real_escape_string(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string): string {}
/**
* Poll connections
@@ -719,7 +730,13 @@ public function real_escape_string(string $string): string {}
* @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 {}
+ public static function poll(
+ #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] &$read,
+ #[LanguageLevelTypeAware(['8.0' => 'array|null'], default: '')] &$error,
+ #[LanguageLevelTypeAware(['8.0' => 'array'], default: '')] &$reject,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $seconds,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $microseconds = 0
+ ): int|false {}
/**
* Get result from async query
@@ -737,7 +754,7 @@ public function reap_async_query(): mysqli_result|bool {}
* @link https://secure.php.net/manual/en/mysqli.real-escape-string.php
*/
#[TentativeType]
- public function escape_string(string $string): string {}
+ public function escape_string(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $string): string {}
/**
* Execute an SQL query
@@ -754,7 +771,7 @@ public function escape_string(string $string): string {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function real_query(string $query): bool {}
+ public function real_query(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): bool {}
/**
* Removes the named savepoint from the set of savepoints of the current transaction
@@ -799,7 +816,7 @@ public function savepoint(#[LanguageLevelTypeAware(['8.0' => 'string'], default:
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function select_db(string $database): bool {}
+ public function select_db(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $database): bool {}
/**
* Sets the client character set
@@ -810,7 +827,7 @@ public function select_db(string $database): bool {}
* @return bool true on success or false on failure
*/
#[TentativeType]
- public function set_charset(string $charset): bool {}
+ public function set_charset(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $charset): bool {}
/**
* @link https://php.net/manual/en/function.mysqli-set-opt
@@ -818,29 +835,37 @@ public function set_charset(string $charset): bool {}
* @param string|int $value
*/
#[TentativeType]
- public function set_opt(int $option, $value): bool {}
+ public function set_opt(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $option, $value): bool {}
/**
* Used for establishing secure connections using SSL
* @link https://secure.php.net/manual/en/mysqli.ssl-set.php
- * @param string $key
+ * @param string|null $key
* The path name to the key file.
*
- * @param string $certificate
+ * @param string|null $certificate
* The path name to the certificate file.
*
- * @param string $ca_certificate
+ * @param string|null $ca_certificate
* The path name to the certificate authority file.
*
- * @param string $ca_path
+ * @param string|null $ca_path
* The pathname to a directory that contains trusted SSL CA certificates in PEM format.
*
- * @param string $cipher_algos
+ * @param string|null $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) {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
+ public function ssl_set(
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $key,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $certificate,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $ca_certificate,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $ca_path,
+ #[LanguageLevelTypeAware(['8.0' => 'string|null'], default: '')] $cipher_algos
+ ) {}
/**
* Gets the current system status
@@ -879,7 +904,7 @@ public function stmt_init(): mysqli_stmt|false {}
* statement should have produced a non-empty result set.
*/
#[TentativeType]
- public function store_result(int $mode = 0): mysqli_result|false {}
+ public function store_result(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = 0): mysqli_result|false {}
/**
* Returns whether thread safety is given or not
@@ -1026,7 +1051,7 @@ public function free(): void {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function data_seek(int $offset): bool {}
+ public function data_seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): bool {}
/**
* Returns the next field in the result set
@@ -1224,7 +1249,7 @@ public function fetch_fields(): array {}
*
*/
#[TentativeType]
- public function fetch_field_direct(int $index): object|false {}
+ public function fetch_field_direct(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index): object|false {}
/**
* Fetches all result rows as an associative array, a numeric array, or both
@@ -1261,7 +1286,7 @@ public function fetch_all(#[PhpStormStubsElementAvailable(from: '7.0')] int $mod
* are no more rows in the result set, or false on failure.
*/
#[TentativeType]
- public function fetch_array(int $mode = MYSQLI_BOTH): array|false|null {}
+ public function fetch_array(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $mode = MYSQLI_BOTH): array|false|null {}
/**
* Fetch the next row of a result set as an associative array
@@ -1291,7 +1316,7 @@ public function fetch_assoc(): array|false|null {}
* 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 {}
+ public function fetch_object(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $class = 'stdClass', array $constructor_args = []): object|false|null {}
/**
* Fetch the next row of a result set as an enumerated array
@@ -1326,7 +1351,7 @@ public function fetch_column(int $column = 0): string|int|float|false|null {}
*/
#[TentativeType]
#[LanguageLevelTypeAware(['8.3' => 'true'], default: 'bool')]
- public function field_seek(int $index) {}
+ public function field_seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $index) {}
/**
* Frees the memory associated with a result
@@ -1423,7 +1448,7 @@ public function __construct($mysql, $query) {}
* @return int Returns the value of the attribute.
*/
#[TentativeType]
- public function attr_get(int $attribute): int {}
+ public function attr_get(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attribute): int {}
/**
* Used to modify the behavior of a prepared statement
@@ -1478,7 +1503,10 @@ public function attr_get(int $attribute): int {}
* @return bool
*/
#[TentativeType]
- public function attr_set(int $attribute, int $value): bool {}
+ public function attr_set(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $attribute,
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $value
+ ): bool {}
/**
* Binds variables to a prepared statement as parameters
@@ -1533,6 +1561,8 @@ public function bind_result(&$var1, &...$_) {}
* @link https://php.net/manual/en/mysqli-stmt.close.php
* @return bool true on success or false on failure.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function close() {}
/**
@@ -1545,7 +1575,7 @@ public function close() {}
* @return void
*/
#[TentativeType]
- public function data_seek(int $offset): void {}
+ public function data_seek(#[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $offset): void {}
/**
* Executes a prepared statement
@@ -1618,7 +1648,10 @@ public function num_rows(): string|int {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function send_long_data(int $param_num, string $data): bool {}
+ public function send_long_data(
+ #[LanguageLevelTypeAware(['8.0' => 'int'], default: '')] $param_num,
+ #[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $data
+ ): bool {}
/**
* No documentation available
@@ -1670,7 +1703,7 @@ public function reset(): bool {}
* @return bool true on success or false on failure.
*/
#[TentativeType]
- public function prepare(string $query): bool {}
+ public function prepare(#[LanguageLevelTypeAware(['8.0' => 'string'], default: '')] $query): bool {}
/**
* Stores a result set in an internal buffer
@@ -1871,7 +1904,6 @@ function mysqli_stmt_execute(mysqli_stmt $statement, #[PhpStormStubsElementAvail
* 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 {}
/**
@@ -2196,6 +2228,7 @@ function mysqli_insert_id(mysqli $mysql): string|int {}
* @param int $process_id
* @return bool
*/
+#[Deprecated("The function is deprecated", since: "8.4")]
function mysqli_kill(mysqli $mysql, int $process_id): bool {}
/**
@@ -2282,6 +2315,7 @@ function mysqli_options(mysqli $mysql, int $option, $value): bool {}
* @param mysqli $mysql A link identifier returned by mysqli_connect() or mysqli_init()
* @return bool
*/
+#[Deprecated("The function is deprecated", since: "8.4")]
function mysqli_ping(mysqli $mysql): bool {}
/**
@@ -2343,7 +2377,8 @@ function mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false {}
*
* @return bool
*/
-function mysqli_report(int $flags): bool {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function mysqli_report(int $flags) {}
/**
* Performs a query on the database
@@ -2804,6 +2839,7 @@ function mysqli_warning_count(mysqli $mysql): int {}
* @param int $flags
* @return bool
*/
+#[Deprecated("The function is deprecated", since: "8.4")]
function mysqli_refresh(mysqli $mysql, int $flags): bool {}
/**
diff --git a/openssl/openssl.php b/openssl/openssl.php
index 39638e81a..ce962259a 100644
--- a/openssl/openssl.php
+++ b/openssl/openssl.php
@@ -650,7 +650,8 @@ function openssl_csr_sign(
#[LanguageLevelTypeAware(["8.0" => "OpenSSLAsymmetricKey|OpenSSLCertificate|array|string"], default: "resource|array|string")] $private_key,
int $days,
?array $options,
- int $serial = 0
+ int $serial = 0,
+ #[PhpStormStubsElementAvailable(from: '8.4')] ?string $serial_hex = null
) {}
/**
@@ -1295,6 +1296,14 @@ function openssl_cms_read(string $input_filename, &$certificates): bool {}
define('X509_PURPOSE_SMIME_ENCRYPT', 5);
define('X509_PURPOSE_CRL_SIGN', 6);
define('X509_PURPOSE_ANY', 7);
+/**
+ * @since 8.4
+ */
+define('X509_PURPOSE_OCSP_HELPER', 8);
+/**
+ * @since 8.4
+ */
+define('X509_PURPOSE_TIMESTAMP_SIGN', 9);
/**
* Used as default algorithm by openssl_sign and
@@ -1410,6 +1419,22 @@ function openssl_cms_read(string $input_filename, &$certificates): bool {}
define('OPENSSL_KEYTYPE_DSA', 1);
define('OPENSSL_KEYTYPE_DH', 2);
define('OPENSSL_KEYTYPE_EC', 3);
+/**
+ * @since 8.4
+ */
+define('OPENSSL_KEYTYPE_X25519', 4);
+/**
+ * @since 8.4
+ */
+define('OPENSSL_KEYTYPE_ED25519', 5);
+/**
+ * @since 8.4
+ */
+define('OPENSSL_KEYTYPE_X448', 6);
+/**
+ * @since 8.4
+ */
+define('OPENSSL_KEYTYPE_ED448', 7);
/**
* Whether SNI support is available or not.
diff --git a/pcntl/pcntl.php b/pcntl/pcntl.php
index 48d10e396..619bb18ee 100644
--- a/pcntl/pcntl.php
+++ b/pcntl/pcntl.php
@@ -494,6 +494,22 @@ function pcntl_signal_get_handler(int $signal) {}
* @since 7.4
*/
function pcntl_unshare(int $flags): bool {}
+/**
+ * @since 8.4
+ */
+function pcntl_waitid(int $idtype = P_ALL, ?int $id = null, &$info = [], int $flags = WEXITED): bool {}
+/**
+ * @since 8.4
+ */
+function pcntl_getcpuaffinity(?int $process_id = null): array|false {}
+/**
+ * @since 8.4
+ */
+function pcntl_setcpuaffinity(?int $process_id = null, array $cpu_ids = []): bool {}
+/**
+ * @since 8.4
+ */
+function pcntl_getcpu(): int {}
define('WNOHANG', 1);
define('WUNTRACED', 2);
@@ -841,5 +857,32 @@ function pcntl_unshare(int $flags): bool {}
* @since 7.4
*/
define('CLONE_NEWCGROUP', 33554432);
-
+/**
+ * @since 8.4
+ */
+define('P_ALL', 0);
+/**
+ * @since 8.4
+ */
+define('WEXITED', 4);
+/**
+ * @since 8.4
+ */
+define('WSTOPPED', 2);
+/**
+ * @since 8.4
+ */
+define('WNOWAIT', 16777216);
+/**
+ * @since 8.4
+ */
+define('P_PID', 1);
+/**
+ * @since 8.4
+ */
+define('P_PGID', 2);
+/**
+ * @since 8.4
+ */
+define('P_PIDFD', 3);
// End of pcntl v.
diff --git a/pcntl/pcntl_c.php b/pcntl/pcntl_c.php
new file mode 100644
index 000000000..672f178cd
--- /dev/null
+++ b/pcntl/pcntl_c.php
@@ -0,0 +1,17 @@
+ 'PgSql\Connection'], default: 'resource')] $connection,
string $table_name,
- array $conditions,
+ array $conditions = [],
int $flags = PGSQL_DML_EXEC,
int $mode = PGSQL_ASSOC
): array|string|false {}
@@ -1830,35 +1830,35 @@ function pg_exec(
/**
* @param $result
* @return string|int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_getlastoid(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): string|int|false {}
/**
* @param $result
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_cmdtuples(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {} // TODO remove
/**
* @param $connection [optional]
* @return string
- * @deprecated
+ * @deprecated 8.0
*/
function pg_errormessage(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection): string {}
/**
* @param $result
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_numrows(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {}
/**
* @param $result
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_numfields(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): int {}
@@ -1866,7 +1866,7 @@ function pg_numfields(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], defaul
* @param $result
* @param $field
* @return string
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldname(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {}
@@ -1874,7 +1874,7 @@ function pg_fieldname(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], defaul
* @param $result
* @param $field
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldsize(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): int {}
@@ -1882,7 +1882,7 @@ function pg_fieldsize(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], defaul
* @param $result
* @param $field
* @return string
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldtype(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, int $field): string {}
@@ -1890,7 +1890,7 @@ function pg_fieldtype(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], defaul
* @param $result
* @param $field
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldnum(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result, string $field): int {}
@@ -1899,7 +1899,7 @@ function pg_fieldnum(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default
* @param $row
* @param $field [optional]
* @return int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldprtlen(
#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result,
@@ -1913,7 +1913,7 @@ function pg_fieldprtlen(
* @param $row
* @param $field [optional]
* @return int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_fieldisnull(
#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result,
@@ -1925,7 +1925,7 @@ function pg_fieldisnull(
/**
* @param $result
* @return bool
- * @deprecated
+ * @deprecated 8.0
*/
function pg_freeresult(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], default: 'resource')] $result): bool {}
@@ -1933,7 +1933,7 @@ function pg_freeresult(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Result'], defau
* @param PgSql\Result|resource $result
* @param $row
* @param $field [optional]
- * @deprecated
+ * @deprecated 8.0
*/
function pg_result(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection,
@@ -1944,7 +1944,7 @@ function pg_result(
/**
* @param $lob
- * @deprecated
+ * @deprecated 8.0
*/
function pg_loreadall(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): int {} // TODO remove
@@ -1952,7 +1952,7 @@ function pg_loreadall(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default:
* @param $connection [optional]
* @param $oid [optional]
* @return string|int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_locreate(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], default: 'resource')] $connection, $oid): string|int|false {}
@@ -1960,7 +1960,7 @@ function pg_locreate(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection'], def
* @param $connection
* @param $oid [optional]
* @return bool
- * @deprecated
+ * @deprecated 8.0
*/
function pg_lounlink(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null,
@@ -1973,7 +1973,7 @@ function pg_lounlink(
* @param $oid [optional]
* @param $mode [optional]
* @return resource
- * @deprecated
+ * @deprecated 8.0
*/
#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob|false'], default: 'resource|false')]
function pg_loopen(
@@ -1986,7 +1986,7 @@ function pg_loopen(
/**
* @param $lob
* @return bool
- * @deprecated
+ * @deprecated 8.0
*/
function pg_loclose(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob): bool {}
@@ -1994,7 +1994,7 @@ function pg_loclose(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'r
* @param $lob
* @param $length
* @return string|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_loread(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, int $length = 8192): string|false {}
@@ -2003,7 +2003,7 @@ function pg_loread(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 're
* @param $data
* @param $length [optional]
* @return int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_lowrite(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'resource')] $lob, string $data, ?int $length): int|false {}
@@ -2012,7 +2012,7 @@ function pg_lowrite(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Lob'], default: 'r
* @param $filename [optional]
* @param $oid [optional]
* @return string|int|false
- * @deprecated
+ * @deprecated 8.0
*/
function pg_loimport(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null,
@@ -2026,7 +2026,7 @@ function pg_loimport(
* @param $oid [optional]
* @param $filename [optional]
* @return bool
- * @deprecated
+ * @deprecated 8.0
*/
function pg_loexport(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null,
@@ -2038,7 +2038,7 @@ function pg_loexport(
/**
* @param $connection [optional]
* @return string
- * @deprecated
+ * @deprecated 8.0
*/
function pg_clientencoding(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|null'], default: 'resource')] $connection): string {}
@@ -2046,7 +2046,7 @@ function pg_clientencoding(#[LanguageLevelTypeAware(['8.1' => 'PgSql\Connection|
* @param $connection
* @param $encoding [optional]
* @return int
- * @deprecated
+ * @deprecated 8.0
*/
function pg_setclientencoding(
#[PhpStormStubsElementAvailable(from: '5.3', to: '7.4')] $connection = null,
@@ -2097,6 +2097,35 @@ function pg_exit_pipeline_mode(PgSql\Connection $connection): bool {}
*/
function pg_enter_pipeline_mode(PgSql\Connection $connection): bool {}
+/**
+ * @since 8.4
+ */
+function pg_result_memory_size(PgSql\Result $result): int {}
+/**
+ * @since 8.4
+ */
+function pg_change_password(PgSql\Connection $connection, string $user, #[\SensitiveParameter] string $password): bool {}
+/**
+ * @since 8.4
+ */
+function pg_put_copy_data(PgSql\Connection $connection, string $cmd): int {}
+
+/**
+ * @since 8.4
+ * @param resource $socket
+ */
+function pg_socket_poll($socket, int $read, int $write, int $timeout = -1): int {}
+/**
+ * @since 8.4
+ */
+function pg_put_copy_end(PgSql\Connection $connection, ?string $error = null): int {}
+
+/**
+ * @since 8.4
+ * @return array
+ */
+function pg_jit(?PgSql\Connection $connection = null): array {}
+
define('PGSQL_LIBPQ_VERSION', "16.2");
define('PGSQL_LIBPQ_VERSION_STR', "16.2");
diff --git a/posix/posix.php b/posix/posix.php
index f6129e648..f4427f011 100644
--- a/posix/posix.php
+++ b/posix/posix.php
@@ -935,5 +935,13 @@ function posix_eaccess(string $filename, int $flags = 0): bool {}
define('POSIX_PC_NO_TRUNC', 7);
define('POSIX_PC_ALLOC_SIZE_MIN', 18);
define('POSIX_PC_SYMLINK_MAX', 19);
+/**
+ * @since 8.4
+ */
+define('POSIX_SC_CHILD_MAX', 1);
+/**
+ * @since 8.4
+ */
+define('POSIX_SC_CLK_TCK', 2);
// End of posix v.
diff --git a/pq/pq.php b/pq/pq.php
index 4336821a2..890f974c5 100644
--- a/pq/pq.php
+++ b/pq/pq.php
@@ -1517,7 +1517,7 @@ public function fetchRow(int $fetch_type = null) {}
* @throws \pq\Exception\InvalidArgumentException
* @throws \pq\Exception\BadMethodCallException
* @throws \pq\Exception\RuntimeException
- * @return array |object, the mapped columns.
+ * @return array|object the mapped columns.
*/
public function map($keys = 0, $vals = null, int $fetch_type = null) {}
}
diff --git a/random/random.php b/random/random.php
index 352edc28d..11bb39e1d 100644
--- a/random/random.php
+++ b/random/random.php
@@ -1,6 +1,7 @@
'object'], default: '')] $object): void {}
/**
* Adds one or more functions to handle SOAP requests
diff --git a/soap/soap_n.php b/soap/soap_n.php
new file mode 100644
index 000000000..d7daca640
--- /dev/null
+++ b/soap/soap_n.php
@@ -0,0 +1,15 @@
+TRUE on success, FALSE on failure.
*/
- public function close() {}
+ #[TentativeType]
+ public function close(): bool {}
/**
* Executes a result-less query against a given database
@@ -429,7 +430,8 @@ public function paramCount(): int {}
* @return bool TRUE
*/
#[TentativeType]
- public function close(): bool {}
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ public function close() {}
/**
* Resets the prepared statement
@@ -609,6 +611,8 @@ public function reset(): bool {}
* @link https://php.net/manual/en/sqlite3result.finalize.php
* @return bool TRUE.
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function finalize() {}
private function __construct() {}
diff --git a/standard/_types.php b/standard/_types.php
index 17a399f2c..ac5cd471b 100644
--- a/standard/_types.php
+++ b/standard/_types.php
@@ -223,6 +223,11 @@ public function getReturn(): mixed {}
* @return void
*/
public function __wakeup() {}
+
+ /**
+ * @since 8.4
+ */
+ public function __debugInfo(): array {}
}
class ClosedGeneratorException extends Exception {}
@@ -370,7 +375,7 @@ public function __invoke() {}
* @return array|null
* @link https://php.net/manual/en/language.oop5.magic.php#language.oop5.magic.debuginfo
*/
- public function __debugInfo(): ?array {}
+ public function __debugInfo() {}
/**
* This static method is called for classes exported by var_export() since PHP 5.1.0.
diff --git a/standard/basic.php b/standard/basic.php
index 50fb3ea9c..47b1451f0 100644
--- a/standard/basic.php
+++ b/standard/basic.php
@@ -37,7 +37,6 @@
* 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 {}
/**
diff --git a/standard/standard_0.php b/standard/standard_0.php
index 1cc7ee336..40a848593 100644
--- a/standard/standard_0.php
+++ b/standard/standard_0.php
@@ -10,7 +10,7 @@
use JetBrains\PhpStorm\Internal\TentativeType;
use JetBrains\PhpStorm\Pure;
-class __PHP_Incomplete_Class
+final class __PHP_Incomplete_Class
{
/**
* @var string
@@ -91,6 +91,16 @@ public function onCreate(): bool {}
#[TentativeType]
public function onClose(): void {}
}
+/**
+ * @since 8.4
+ */
+final class StreamBucket
+{
+ public $bucket;
+ public string $data;
+ public int $datalen;
+ public int $dataLength;
+}
/**
* Instances of Directory are created by calling the dir() function, not by the new operator.
diff --git a/standard/standard_10.php b/standard/standard_10.php
new file mode 100644
index 000000000..21da850ad
--- /dev/null
+++ b/standard/standard_10.php
@@ -0,0 +1,53 @@
+
+ */
+function request_parse_body(?array $options = null): array {}
+/**
+ * @since 8.4
+ */
+function fpow(float $num1, float $num2): float {}
+
+/**
+ * @since 8.4
+ */
+enum RoundingMode implements \UnitEnum
+{
+ case HalfAwayFromZero;
+ case HalfTowardsZero;
+ case HalfEven;
+ case HalfOdd;
+ case TowardsZero;
+ case AwayFromZero;
+ case NegativeInfinity;
+ case PositiveInfinity;
+
+ public static function cases(): array {}
+}
diff --git a/standard/standard_3.php b/standard/standard_3.php
index 54b322bfe..ea9dcc2b4 100644
--- a/standard/standard_3.php
+++ b/standard/standard_3.php
@@ -131,7 +131,7 @@ function floor(int|float $num) {}
* @return float The rounded value
*/
#[Pure]
-function round(int|float $num, int $precision = 0, int $mode = PHP_ROUND_HALF_UP): float {}
+function round(int|float $num, int $precision = 0, #[LanguageLevelTypeAware(['8.4' => 'RoundingMode|int'], default: 'int')] $mode = RoundingMode::HalfAwayFromZero): float {}
/**
* Sine
@@ -744,7 +744,8 @@ function ip2long(string $ip): int|false {}
* @return string|false the Internet IP address as a string.
*/
#[Pure]
-function long2ip(int $ip): string|false {}
+#[LanguageLevelTypeAware(['8.4' => 'string'], default: 'string|false')]
+function long2ip(int $ip) {}
/**
* Gets the value of an environment variable
diff --git a/standard/standard_4.php b/standard/standard_4.php
index 0201e2ca2..1ab645935 100644
--- a/standard/standard_4.php
+++ b/standard/standard_4.php
@@ -249,7 +249,8 @@ function debug_zval_dump(
* 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 {}
+#[LanguageLevelTypeAware(['8.4' => 'string|true'], default: 'string|bool')]
+function print_r(mixed $value, bool $return = false) {}
/**
* Returns the amount of memory allocated to PHP
@@ -372,7 +373,8 @@ function show_source(string $filename, bool $return = false): string|bool {}
* 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 {}
+#[LanguageLevelTypeAware(['8.4' => 'string|true'], default: 'string|bool')]
+function highlight_string(string $string, bool $return = false) {}
/**
* Get the system's high resolution time
diff --git a/standard/standard_6.php b/standard/standard_6.php
index c72bdf2d8..22540c81d 100644
--- a/standard/standard_6.php
+++ b/standard/standard_6.php
@@ -122,7 +122,8 @@ function stream_context_create(?array $options, ?array $params) {}
*
* @return bool true on success or false on failure.
*/
-function stream_context_set_params($context, array $params): bool {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function stream_context_set_params($context, array $params) {}
/**
* Retrieves parameters from a context
@@ -147,7 +148,8 @@ function stream_context_get_params($context): array {}
* @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 {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function stream_context_set_option($context, string $wrapper_or_options, string $option_name, mixed $value) {}
/**
* Sets an option for a stream/wrapper/context
@@ -156,7 +158,14 @@ function stream_context_set_option($context, string $wrapper_or_options, string
* @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 {}
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function stream_context_set_option($stream_or_context, array $options) {}
+
+/**
+ * @since 8.3
+ */
+#[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+function stream_context_set_options($context, array $options) {}
/**
* Retrieve options for a stream/wrapper/context
@@ -589,11 +598,6 @@ function stream_get_contents($stream, ?int $length = null, int $offset = -1): st
*/
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
diff --git a/standard/standard_9.php b/standard/standard_9.php
index 9e7ec6ada..e97245246 100644
--- a/standard/standard_9.php
+++ b/standard/standard_9.php
@@ -1175,7 +1175,8 @@ function stream_filter_register(string $filter_name, string $class): bool {}
* @param resource $brigade
* @return object|null
*/
-function stream_bucket_make_writeable($brigade): ?object {}
+#[LanguageLevelTypeAware(["8.4" => "StreamBucket|null"], default: "object|null")]
+function stream_bucket_make_writeable($brigade) {}
/**
* Prepend bucket to brigade
@@ -1184,7 +1185,7 @@ function stream_bucket_make_writeable($brigade): ?object {}
* @param object $bucket
* @return void
*/
-function stream_bucket_prepend($brigade, object $bucket): void {}
+function stream_bucket_prepend($brigade, #[LanguageLevelTypeAware(['8.4' => 'StreamBucket'], default: 'object')] $bucket): void {}
/**
* Append bucket to brigade
@@ -1193,7 +1194,7 @@ function stream_bucket_prepend($brigade, object $bucket): void {}
* @param object $bucket
* @return void
*/
-function stream_bucket_append($brigade, object $bucket): void {}
+function stream_bucket_append($brigade, #[LanguageLevelTypeAware(['8.4' => 'StreamBucket'], default: 'object')] $bucket): void {}
/**
* Create a new bucket for use on the current stream
@@ -1202,7 +1203,8 @@ function stream_bucket_append($brigade, object $bucket): void {}
* @param string $buffer
* @return object
*/
-function stream_bucket_new($stream, string $buffer): object {}
+#[LanguageLevelTypeAware(["8.4" => "StreamBucket"], default: "object")]
+function stream_bucket_new($stream, string $buffer) {}
/**
* Add URL rewriter values
diff --git a/svm/SVM.php b/svm/SVM.php
index 26e1d78ae..4d8184247 100644
--- a/svm/SVM.php
+++ b/svm/SVM.php
@@ -10,112 +10,108 @@ class SVM
{
/* Constants */
/**
- * @const The basic C_SVC SVM type. The default, and a good starting point
+ * The basic C_SVC SVM type. The default, and a good starting point
*/
public const C_SVC = 0;
/**
- * @const NU_SVC type uses a different, more flexible, error weighting
+ * NU_SVC type uses a different, more flexible, error weighting
*/
public const NU_SVC = 1;
/**
- * @const One class SVM type. Train just on a single class, using outliers as negative examples
+ * One class SVM type. Train just on a single class, using outliers as negative examples
*/
public const ONE_CLASS = 2;
/**
- * @const A SVM type for regression (predicting a value rather than just a class)
+ * A SVM type for regression (predicting a value rather than just a class)
*/
public const EPSILON_SVR = 3;
/**
- * @const A NU style SVM regression type
+ * A NU style SVM regression type
*/
public const NU_SVR = 4;
/**
- * @const A very simple kernel, can work well on large document classification problems
+ * A very simple kernel, can work well on large document classification problems
*/
public const KERNEL_LINEAR = 0;
/**
- * @const A polynomial kernel
+ * A polynomial kernel
*/
public const KERNEL_POLY = 1;
/**
- * @const The common Gaussian RBD kernel. Handles non-linear problems well and is a good default for classification
+ * The common Gaussian RBD kernel. Handles non-linear problems well and is a good default for classification
*/
public const KERNEL_RBF = 2;
/**
- * @const A kernel based on the sigmoid function. Using this makes the SVM very similar to a two layer sigmoid based neural network
+ * A kernel based on the sigmoid function. Using this makes the SVM very similar to a two layer sigmoid based neural network
*/
public const KERNEL_SIGMOID = 3;
/**
- * @const A precomputed kernel - currently unsupported.
+ * A precomputed kernel - currently unsupported.
*/
public const KERNEL_PRECOMPUTED = 4;
/**
- * @const The options key for the SVM type
+ * The options key for the SVM type
*/
public const OPT_TYPE = 101;
/**
- * @const The options key for the kernel type
+ * The options key for the kernel type
*/
public const OPT_KERNEL_TYPE = 102;
-
- /**
- * @const OPT_DEGREE
- */
public const OPT_DEGREE = 103;
/**
- * @const Training parameter, boolean, for whether to use the shrinking heuristics
+ * Training parameter, boolean, for whether to use the shrinking heuristics
*/
public const OPT_SHRINKING = 104;
/**
- * @const Training parameter, boolean, for whether to collect and use probability estimates
+ * Training parameter, boolean, for whether to collect and use probability estimates
*/
public const OPT_PROPABILITY = 105;
/**
- * @const Algorithm parameter for Poly, RBF and Sigmoid kernel types.
+ * Algorithm parameter for Poly, RBF and Sigmoid kernel types.
*/
public const OPT_GAMMA = 201;
/**
- * @const The option key for the nu parameter, only used in the NU_ SVM types
+ * The option key for the nu parameter, only used in the NU_ SVM types
*/
public const OPT_NU = 202;
/**
- * @const The option key for the Epsilon parameter, used in epsilon regression
+ * The option key for the Epsilon parameter, used in epsilon regression
*/
public const OPT_EPS = 203;
/**
- * @const Training parameter used by Episilon SVR regression
+ * Training parameter used by Episilon SVR regression
*/
public const OPT_P = 204;
/**
- * @const Algorithm parameter for poly and sigmoid kernels
+ * Algorithm parameter for poly and sigmoid kernels
*/
public const OPT_COEF_ZERO = 205;
/**
- * @const The option for the cost parameter that controls tradeoff between errors and generality - effectively the penalty for misclassifying training examples.
+ * The option for the cost parameter that controls tradeoff between errors and generality - effectively the penalty for misclassifying training examples.
*/
public const OPT_C = 206;
/**
- * @const Memory cache size, in MB
+ * Memory cache size, in MB
*/
public const OPT_CACHE_SIZE = 207;
diff --git a/sysvmsg/sysvmsg.php b/sysvmsg/sysvmsg.php
index fa7b24676..bfa198045 100644
--- a/sysvmsg/sysvmsg.php
+++ b/sysvmsg/sysvmsg.php
@@ -142,7 +142,7 @@ function msg_send(#[LanguageLevelTypeAware(["8.0" => "SysvMessageQueue"], defaul
* 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 {}
+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
diff --git a/tokenizer/tokenizer.php b/tokenizer/tokenizer.php
index d7996fd9b..c5a820964 100644
--- a/tokenizer/tokenizer.php
+++ b/tokenizer/tokenizer.php
@@ -171,6 +171,10 @@ function token_name(int $id): string {}
define('T_METHOD_C', 384);
define('T_FUNC_C', 385);
define('T_NS_C', 386);
+/**
+ * @since 8.4
+ */
+define('T_PROPERTY_C', 350);
/**
* @since 8.0
*/
diff --git a/xdebug/xdebug.php b/xdebug/xdebug.php
index c4e4b55db..cd434611a 100644
--- a/xdebug/xdebug.php
+++ b/xdebug/xdebug.php
@@ -1,5 +1,7 @@
TRUE on success or FALSE on failure.
*/
#[LanguageLevelTypeAware(["8.2" => "true"], default: "bool")]
+#[Deprecated("The function is deprecated", since: "8.4")]
function xml_set_object(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser, object $object) {}
/**
@@ -93,7 +95,11 @@ function xml_set_object(#[LanguageLevelTypeAware(["8.0" => "XMLParser"], default
* @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) {}
+function xml_set_element_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $start_handler,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $end_handler
+) {}
/**
* Set up character data handler
@@ -118,7 +124,10 @@ function xml_set_element_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"]
* @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) {}
+function xml_set_character_data_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up processing instruction (PI) handler
@@ -144,7 +153,10 @@ function xml_set_character_data_handler(#[LanguageLevelTypeAware(["8.0" => "XMLP
* @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) {}
+function xml_set_processing_instruction_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up default handler
@@ -169,7 +181,10 @@ function xml_set_processing_instruction_handler(#[LanguageLevelTypeAware(["8.0"
* @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) {}
+function xml_set_default_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up unparsed entity declaration handler
@@ -199,7 +214,10 @@ function xml_set_default_handler(#[LanguageLevelTypeAware(["8.0" => "XMLParser"]
* @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) {}
+function xml_set_unparsed_entity_decl_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up notation declaration handler
@@ -227,7 +245,10 @@ function xml_set_unparsed_entity_decl_handler(#[LanguageLevelTypeAware(["8.0" =>
* @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) {}
+function xml_set_notation_decl_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up external entity reference handler
@@ -259,7 +280,10 @@ function xml_set_notation_decl_handler(#[LanguageLevelTypeAware(["8.0" => "XMLPa
* @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) {}
+function xml_set_external_entity_ref_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up start namespace declaration handler
@@ -289,7 +313,10 @@ function xml_set_external_entity_ref_handler(#[LanguageLevelTypeAware(["8.0" =>
* @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) {}
+function xml_set_start_namespace_decl_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Set up end namespace declaration handler
@@ -318,7 +345,10 @@ function xml_set_start_namespace_decl_handler(#[LanguageLevelTypeAware(["8.0" =>
* @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) {}
+function xml_set_end_namespace_decl_handler(
+ #[LanguageLevelTypeAware(["8.0" => "XMLParser"], default: "resource")] $parser,
+ #[LanguageLevelTypeAware(["8.4" => "callable|string|null"], default: "callable")] $handler
+) {}
/**
* Start parsing an XML document
@@ -557,6 +587,10 @@ function xml_parser_get_option(#[LanguageLevelTypeAware(["8.0" => "XMLParser"],
define('XML_OPTION_TARGET_ENCODING', 2);
define('XML_OPTION_SKIP_TAGSTART', 3);
define('XML_OPTION_SKIP_WHITE', 4);
+/**
+ * @since 8.4
+ */
+define('XML_OPTION_PARSE_HUGE', 5);
/**
* Holds the SAX implementation method.
diff --git a/xmlreader/xmlreader.php b/xmlreader/xmlreader.php
index d895cab07..23ab7e16b 100644
--- a/xmlreader/xmlreader.php
+++ b/xmlreader/xmlreader.php
@@ -144,6 +144,8 @@ class XMLReader
* @return bool TRUE on success or FALSE on failure.
* @since 5.1.2
*/
+ #[LanguageLevelTypeAware(['8.4' => 'true'], default: 'bool')]
+ #[TentativeType]
public function close() {}
/**
@@ -453,5 +455,20 @@ public static function XML(
public function expand(
#[PhpStormStubsElementAvailable(from: '7.0')] #[LanguageLevelTypeAware(['8.0' => 'DOMNode|null'], default: '')] $baseNode = null
): DOMNode|false {}
+
+ /**
+ * @since 8.4
+ */
+ public static function fromUri(string $uri, ?string $encoding = null, int $flags = 0): static {}
+
+ /**
+ * @since 8.4
+ */
+ public static function fromStream($stream, ?string $encoding = null, int $flags = 0, ?string $documentUri = null): static {}
+
+ /**
+ * @since 8.4
+ */
+ public static function fromString(string $source, ?string $encoding = null, int $flags = 0): static {}
}
// End of xmlreader v.0.2
diff --git a/xmlwriter/xmlwriter.php b/xmlwriter/xmlwriter.php
index 1cec7a3a3..9dcbbab9b 100644
--- a/xmlwriter/xmlwriter.php
+++ b/xmlwriter/xmlwriter.php
@@ -608,6 +608,21 @@ public function outputMemory(#[LanguageLevelTypeAware(['8.0' => 'bool'], default
*/
#[TentativeType]
public function flush(#[LanguageLevelTypeAware(['8.0' => 'bool'], default: '')] $empty = true): string|int {}
+
+ /**
+ * @since 8.4
+ */
+ public static function toUri(string $uri): static {}
+
+ /**
+ * @since 8.4
+ */
+ public static function toMemory(): static {}
+
+ /**
+ * @since 8.4
+ */
+ public static function toStream($stream): static {}
}
/**