diff --git a/composer.json b/composer.json index 2cd03fcc..c0890a7f 100644 --- a/composer.json +++ b/composer.json @@ -54,7 +54,6 @@ "generated/mailparse.php", "generated/mbstring.php", "generated/misc.php", - "generated/msql.php", "generated/mysql.php", "generated/mysqli.php", "generated/mysqlndMs.php", @@ -67,7 +66,6 @@ "generated/password.php", "generated/pcntl.php", "generated/pcre.php", - "generated/pdf.php", "generated/pgsql.php", "generated/posix.php", "generated/ps.php", @@ -80,7 +78,6 @@ "generated/shmop.php", "generated/simplexml.php", "generated/sockets.php", - "generated/sodium.php", "generated/solr.php", "generated/spl.php", "generated/sqlsrv.php", diff --git a/generated/Exceptions/MsqlException.php b/generated/Exceptions/MsqlException.php deleted file mode 100644 index c67314ea..00000000 --- a/generated/Exceptions/MsqlException.php +++ /dev/null @@ -1,11 +0,0 @@ - * * - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_add($link_identifier, string $dn, array $entry, array $serverctrls = null): void +function ldap_add($ldap, string $dn, array $entry, array $controls = null): void { error_clear_last(); - $result = \ldap_add($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_add($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_add($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -58,18 +90,26 @@ function ldap_add($link_identifier, string $dn, array $entry, array $serverctrls /** * Does the same thing as ldap_bind but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier - * @param string|null $bind_rdn - * @param string|null $bind_password - * @param array $serverctrls + * @param resource $ldap + * @param string|null $dn + * @param string|null $password + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_bind_ext($link_identifier, ?string $bind_rdn = null, ?string $bind_password = null, array $serverctrls = null) +function ldap_bind_ext($ldap, ?string $dn = null, ?string $password = null, array $controls = null) { error_clear_last(); - $result = \ldap_bind_ext($link_identifier, $bind_rdn, $bind_password, $serverctrls); + if ($controls !== null) { + $result = \ldap_bind_ext($ldap, $dn, $password, $controls); + } elseif ($password !== null) { + $result = \ldap_bind_ext($ldap, $dn, $password); + } elseif ($dn !== null) { + $result = \ldap_bind_ext($ldap, $dn); + } else { + $result = \ldap_bind_ext($ldap); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -80,16 +120,22 @@ function ldap_bind_ext($link_identifier, ?string $bind_rdn = null, ?string $bind /** * Binds to the LDAP directory with specified RDN and password. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param string|null $bind_rdn - * @param string|null $bind_password + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param string|null $dn + * @param string|null $password * @throws LdapException * */ -function ldap_bind($link_identifier, ?string $bind_rdn = null, ?string $bind_password = null): void +function ldap_bind($ldap, ?string $dn = null, ?string $password = null): void { error_clear_last(); - $result = \ldap_bind($link_identifier, $bind_rdn, $bind_password); + if ($password !== null) { + $result = \ldap_bind($ldap, $dn, $password); + } elseif ($dn !== null) { + $result = \ldap_bind($ldap, $dn); + } else { + $result = \ldap_bind($ldap); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -143,16 +189,16 @@ function ldap_control_paged_result($link, int $pagesize, bool $iscritical = fals * Returns the number of entries stored in the result of previous search * operations. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_identifier The internal LDAP result. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $result The internal LDAP result. * @return int Returns number of entries in the result. * @throws LdapException * */ -function ldap_count_entries($link_identifier, $result_identifier): int +function ldap_count_entries($ldap, $result): int { error_clear_last(); - $result = \ldap_count_entries($link_identifier, $result_identifier); + $result = \ldap_count_entries($ldap, $result); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -163,17 +209,21 @@ function ldap_count_entries($link_identifier, $result_identifier): int /** * Does the same thing as ldap_delete but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier + * @param resource $ldap * @param string $dn - * @param array $serverctrls + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_delete_ext($link_identifier, string $dn, array $serverctrls = null) +function ldap_delete_ext($ldap, string $dn, array $controls = null) { error_clear_last(); - $result = \ldap_delete_ext($link_identifier, $dn, $serverctrls); + if ($controls !== null) { + $result = \ldap_delete_ext($ldap, $dn, $controls); + } else { + $result = \ldap_delete_ext($ldap, $dn); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -184,41 +234,65 @@ function ldap_delete_ext($link_identifier, string $dn, array $serverctrls = null /** * Deletes a particular entry in LDAP directory. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_delete($link_identifier, string $dn, array $serverctrls = null): void +function ldap_delete($ldap, string $dn, array $controls = null): void { error_clear_last(); - $result = \ldap_delete($link_identifier, $dn, $serverctrls); + if ($controls !== null) { + $result = \ldap_delete($ldap, $dn, $controls); + } else { + $result = \ldap_delete($ldap, $dn); + } + if ($result === false) { + throw LdapException::createFromPhpError(); + } +} + + +/** + * Turns the specified dn, into a more user-friendly + * form, stripping off type names. + * + * @param string $dn The distinguished name of an LDAP entity. + * @return string Returns the user friendly name. + * @throws LdapException + * + */ +function ldap_dn2ufn(string $dn): string +{ + error_clear_last(); + $result = \ldap_dn2ufn($dn); if ($result === false) { throw LdapException::createFromPhpError(); } + return $result; } /** * Performs a PASSWD extended operation. * - * @param resource $link An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $user dn of the user to change the password of. - * @param string $oldpw The old password of this user. May be ommited depending of server configuration. - * @param string $newpw The new password for this user. May be omitted or empty to have a generated password. - * @param array $serverctrls If provided, a password policy request control is send with the request and this is + * @param string $old_password The old password of this user. May be ommited depending of server configuration. + * @param string $new_password The new password for this user. May be omitted or empty to have a generated password. + * @param array $controls If provided, a password policy request control is send with the request and this is * filled with an array of LDAP Controls * returned with the request. - * @return mixed Returns the generated password if newpw is empty or omitted. + * @return string|bool Returns the generated password if new_password is empty or omitted. * Otherwise returns TRUE on success. * @throws LdapException * */ -function ldap_exop_passwd($link, string $user = "", string $oldpw = "", string $newpw = "", array &$serverctrls = null) +function ldap_exop_passwd($ldap, string $user = "", string $old_password = "", string $new_password = "", array &$controls = null) { error_clear_last(); - $result = \ldap_exop_passwd($link, $user, $oldpw, $newpw, $serverctrls); + $result = \ldap_exop_passwd($ldap, $user, $old_password, $new_password, $controls); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -229,15 +303,15 @@ function ldap_exop_passwd($link, string $user = "", string $oldpw = "", string $ /** * Performs a WHOAMI extended operation and returns the data. * - * @param resource $link An LDAP link identifier, returned by ldap_connect. - * @return string The data returned by the server. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @return string|bool The data returned by the server. * @throws LdapException * */ -function ldap_exop_whoami($link): string +function ldap_exop_whoami($ldap) { error_clear_last(); - $result = \ldap_exop_whoami($link); + $result = \ldap_exop_whoami($ldap); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -258,7 +332,7 @@ function ldap_exop_whoami($link): string * If not provided you may use ldap_parse_exop on the result object * later to get this data. * @param string|null $retoid Will be filled with the response OID if provided, usually equal to the request OID. - * @return mixed When used with retdata, returns TRUE on success. + * @return resource|bool When used with retdata, returns TRUE on success. * When used without retdata, returns a result identifier. * @throws LdapException * @@ -266,7 +340,17 @@ function ldap_exop_whoami($link): string function ldap_exop($link, string $reqoid, string $reqdata = null, ?array $serverctrls = null, ?string &$retdata = null, ?string &$retoid = null) { error_clear_last(); - $result = \ldap_exop($link, $reqoid, $reqdata, $serverctrls, $retdata, $retoid); + if ($retoid !== null) { + $result = \ldap_exop($link, $reqoid, $reqdata, $serverctrls, $retdata, $retoid); + } elseif ($retdata !== null) { + $result = \ldap_exop($link, $reqoid, $reqdata, $serverctrls, $retdata); + } elseif ($serverctrls !== null) { + $result = \ldap_exop($link, $reqoid, $reqdata, $serverctrls); + } elseif ($reqdata !== null) { + $result = \ldap_exop($link, $reqoid, $reqdata); + } else { + $result = \ldap_exop($link, $reqoid); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -309,17 +393,17 @@ function ldap_explode_dn(string $dn, int $with_attrib): array * Similar to reading entries, attributes are also read one by one from a * particular entry. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @return string Returns the first attribute in the entry on success and FALSE on * error. * @throws LdapException * */ -function ldap_first_attribute($link_identifier, $result_entry_identifier): string +function ldap_first_attribute($ldap, $entry): string { error_clear_last(); - $result = \ldap_first_attribute($link_identifier, $result_entry_identifier); + $result = \ldap_first_attribute($ldap, $entry); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -336,17 +420,17 @@ function ldap_first_attribute($link_identifier, $result_entry_identifier): strin * ldap_first_entry and * ldap_next_entry functions. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $result * @return resource Returns the result entry identifier for the first entry on success and * FALSE on error. * @throws LdapException * */ -function ldap_first_entry($link_identifier, $result_identifier) +function ldap_first_entry($ldap, $result) { error_clear_last(); - $result = \ldap_first_entry($link_identifier, $result_identifier); + $result = \ldap_first_entry($ldap, $result); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -363,14 +447,14 @@ function ldap_first_entry($link_identifier, $result_identifier) * return large result sets, ldap_free_result could be * called to keep the runtime memory usage by the script low. * - * @param resource $result_identifier + * @param resource $ldap * @throws LdapException * */ -function ldap_free_result($result_identifier): void +function ldap_free_result($ldap): void { error_clear_last(); - $result = \ldap_free_result($result_identifier); + $result = \ldap_free_result($ldap); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -392,17 +476,17 @@ function ldap_free_result($result_identifier): void * * * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @return array Returns a complete entry information in a multi-dimensional array * on success and FALSE on error. * @throws LdapException * */ -function ldap_get_attributes($link_identifier, $result_entry_identifier): array +function ldap_get_attributes($ldap, $entry): array { error_clear_last(); - $result = \ldap_get_attributes($link_identifier, $result_entry_identifier); + $result = \ldap_get_attributes($ldap, $entry); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -413,16 +497,16 @@ function ldap_get_attributes($link_identifier, $result_entry_identifier): array /** * Finds out the DN of an entry in the result. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @return string Returns the DN of the result entry and FALSE on error. * @throws LdapException * */ -function ldap_get_dn($link_identifier, $result_entry_identifier): string +function ldap_get_dn($ldap, $entry): string { error_clear_last(); - $result = \ldap_get_dn($link_identifier, $result_entry_identifier); + $result = \ldap_get_dn($ldap, $entry); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -434,8 +518,8 @@ function ldap_get_dn($link_identifier, $result_entry_identifier): string * Reads multiple entries from the given result, and then reading the * attributes and multiple values. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $result * @return array Returns a complete result information in a multi-dimensional array on * success and FALSE on error. * @@ -451,10 +535,10 @@ function ldap_get_dn($link_identifier, $result_entry_identifier): string * @throws LdapException * */ -function ldap_get_entries($link_identifier, $result_identifier): array +function ldap_get_entries($ldap, $result): array { error_clear_last(); - $result = \ldap_get_entries($link_identifier, $result_identifier); + $result = \ldap_get_entries($ldap, $result); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -463,9 +547,9 @@ function ldap_get_entries($link_identifier, $result_identifier): array /** - * Sets retval to the value of the specified option. + * Sets value to the value of the specified option. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param int $option The parameter option can be one of: * * @@ -479,47 +563,47 @@ function ldap_get_entries($link_identifier, $result_identifier): array * * * LDAP_OPT_DEREF - * integer + * int * * * * LDAP_OPT_SIZELIMIT - * integer + * int * * * * LDAP_OPT_TIMELIMIT - * integer + * int * * * * LDAP_OPT_NETWORK_TIMEOUT - * integer + * int * * * * LDAP_OPT_PROTOCOL_VERSION - * integer + * int * * * * LDAP_OPT_ERROR_NUMBER - * integer + * int * * * * LDAP_OPT_DIAGNOSTIC_MESSAGE - * integer + * int * * * * LDAP_OPT_REFERRALS - * bool + * int * * * * LDAP_OPT_RESTART - * bool + * int * * * @@ -584,22 +668,22 @@ function ldap_get_entries($link_identifier, $result_identifier): array * * * LDAP_OPT_X_TLS_CRLCHECK - * integer + * int * 7.1 * * * LDAP_OPT_X_TLS_CRL_NONE - * integer + * int * 7.1 * * * LDAP_OPT_X_TLS_CRL_PEER - * integer + * int * 7.1 * * * LDAP_OPT_X_TLS_CRL_ALL - * integer + * int * 7.1 * * @@ -624,7 +708,7 @@ function ldap_get_entries($link_identifier, $result_identifier): array * * * LDAP_OPT_X_TLS_PROTOCOL_MIN - * integer + * int * 7.1 * * @@ -634,20 +718,20 @@ function ldap_get_entries($link_identifier, $result_identifier): array * * * LDAP_OPT_X_TLS_REQUIRE_CERT - * integer + * int * * * * * - * @param mixed $retval This will be set to the option value. + * @param mixed $value This will be set to the option value. * @throws LdapException * */ -function ldap_get_option($link_identifier, int $option, &$retval): void +function ldap_get_option($ldap, int $option, &$value = null): void { error_clear_last(); - $result = \ldap_get_option($link_identifier, $option, $retval); + $result = \ldap_get_option($ldap, $option, $value); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -660,8 +744,8 @@ function ldap_get_option($link_identifier, int $option, &$retval): void * This function is used exactly like ldap_get_values * except that it handles binary data and not string data. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @param string $attribute * @return array Returns an array of values for the attribute on success and FALSE on * error. Individual values are accessed by integer index in the array. The @@ -670,10 +754,10 @@ function ldap_get_option($link_identifier, int $option, &$retval): void * @throws LdapException * */ -function ldap_get_values_len($link_identifier, $result_entry_identifier, string $attribute): array +function ldap_get_values_len($ldap, $entry, string $attribute): array { error_clear_last(); - $result = \ldap_get_values_len($link_identifier, $result_entry_identifier, $attribute); + $result = \ldap_get_values_len($ldap, $entry, $attribute); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -684,7 +768,7 @@ function ldap_get_values_len($link_identifier, $result_entry_identifier, string /** * Reads all the values of the attribute in the entry in the result. * - * This call needs a result_entry_identifier, + * This call needs a entry, * so needs to be preceded by one of the ldap search calls and one * of the calls to get an individual entry. * @@ -693,8 +777,8 @@ function ldap_get_values_len($link_identifier, $result_entry_identifier, string * the ldap_get_attributes call to work out * what attributes exist for a given entry. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @param string $attribute * @return array Returns an array of values for the attribute on success and FALSE on * error. The number of values can be found by indexing "count" in the @@ -714,10 +798,10 @@ function ldap_get_values_len($link_identifier, $result_entry_identifier, string * @throws LdapException * */ -function ldap_get_values($link_identifier, $result_entry_identifier, string $attribute): array +function ldap_get_values($ldap, $entry, string $attribute): array { error_clear_last(); - $result = \ldap_get_values($link_identifier, $result_entry_identifier, $attribute); + $result = \ldap_get_values($ldap, $entry, $attribute); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -731,12 +815,12 @@ function ldap_get_values($link_identifier, $result_entry_identifier, string $att * * LDAP_SCOPE_ONELEVEL means that the search should only * return information that is at the level immediately below the - * base_dn given in the call. + * base given in the call. * (Equivalent to typing "ls" and getting a list of files and folders in the * current working directory.) * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param string $base_dn The base DN for the directory. + * @param resource|array $ldap An LDAP link identifier, returned by ldap_connect. + * @param string $base The base DN for the directory. * @param string $filter * @param array $attributes An array of the required attributes, e.g. array("mail", "sn", "cn"). * Note that the "dn" is always returned irrespective of which attributes @@ -746,7 +830,7 @@ function ldap_get_values($link_identifier, $result_entry_identifier, string $att * (which is to return all attributes and their associated values). * The use of this parameter should therefore be considered good * practice. - * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0 + * @param int $attributes_only Should be set to 1 if only attribute types are wanted. If set to 0 * both attributes types and attribute values are fetched which is the * default behaviour. * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0 @@ -793,28 +877,18 @@ function ldap_get_values($link_identifier, $result_entry_identifier, string $att * * * - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @return resource Returns a search result identifier. * @throws LdapException * */ -function ldap_list($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null) +function ldap_list($ldap, string $base, string $filter, array $attributes = [], int $attributes_only = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $controls = null) { error_clear_last(); - if ($serverctrls !== null) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls); - } elseif ($deref !== LDAP_DEREF_NEVER) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref); - } elseif ($timelimit !== -1) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit); - } elseif ($sizelimit !== -1) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit); - } elseif ($attrsonly !== 0) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes, $attrsonly); - } elseif ($attributes !== null) { - $result = \ldap_list($link_identifier, $base_dn, $filter, $attributes); + if ($controls !== null) { + $result = \ldap_list($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref, $controls); } else { - $result = \ldap_list($link_identifier, $base_dn, $filter); + $result = \ldap_list($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref); } if ($result === false) { throw LdapException::createFromPhpError(); @@ -826,18 +900,22 @@ function ldap_list($link_identifier, string $base_dn, string $filter, array $att /** * Does the same thing as ldap_mod_add but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier + * @param resource $ldap * @param string $dn * @param array $entry - * @param array $serverctrls + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_mod_add_ext($link_identifier, string $dn, array $entry, array $serverctrls = null) +function ldap_mod_add_ext($ldap, string $dn, array $entry, array $controls = null) { error_clear_last(); - $result = \ldap_mod_add_ext($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_add_ext($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_add_ext($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -849,17 +927,21 @@ function ldap_mod_add_ext($link_identifier, string $dn, array $entry, array $ser * Adds one or more attribute values to the specified dn. * To add a whole new object see ldap_add function. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. * @param array $entry An associative array listing the attirbute values to add. If an attribute was not existing yet it will be added. If an attribute is existing you can only add values to it if it supports multiple values. - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_mod_add($link_identifier, string $dn, array $entry, array $serverctrls = null): void +function ldap_mod_add($ldap, string $dn, array $entry, array $controls = null): void { error_clear_last(); - $result = \ldap_mod_add($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_add($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_add($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -869,18 +951,22 @@ function ldap_mod_add($link_identifier, string $dn, array $entry, array $serverc /** * Does the same thing as ldap_mod_del but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier + * @param resource $ldap * @param string $dn * @param array $entry - * @param array $serverctrls + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_mod_del_ext($link_identifier, string $dn, array $entry, array $serverctrls = null) +function ldap_mod_del_ext($ldap, string $dn, array $entry, array $controls = null) { error_clear_last(); - $result = \ldap_mod_del_ext($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_del_ext($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_del_ext($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -893,17 +979,21 @@ function ldap_mod_del_ext($link_identifier, string $dn, array $entry, array $ser * Object deletions are done by the * ldap_delete function. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. * @param array $entry - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_mod_del($link_identifier, string $dn, array $entry, array $serverctrls = null): void +function ldap_mod_del($ldap, string $dn, array $entry, array $controls = null): void { error_clear_last(); - $result = \ldap_mod_del($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_del($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_del($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -913,18 +1003,22 @@ function ldap_mod_del($link_identifier, string $dn, array $entry, array $serverc /** * Does the same thing as ldap_mod_replace but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier + * @param resource $ldap * @param string $dn * @param array $entry - * @param array $serverctrls + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_mod_replace_ext($link_identifier, string $dn, array $entry, array $serverctrls = null) +function ldap_mod_replace_ext($ldap, string $dn, array $entry, array $controls = null) { error_clear_last(); - $result = \ldap_mod_replace_ext($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_replace_ext($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_replace_ext($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -936,17 +1030,21 @@ function ldap_mod_replace_ext($link_identifier, string $dn, array $entry, array * Replaces one or more attributes from the specified dn. * It may also add or remove attributes. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. * @param array $entry An associative array listing the attributes to replace. Sending an empty array as value will remove the attribute, while sending an attribute not existing yet on this entry will add it. - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_mod_replace($link_identifier, string $dn, array $entry, array $serverctrls = null): void +function ldap_mod_replace($ldap, string $dn, array $entry, array $controls = null): void { error_clear_last(); - $result = \ldap_mod_replace($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_mod_replace($ldap, $dn, $entry, $controls); + } else { + $result = \ldap_mod_replace($ldap, $dn, $entry); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -957,9 +1055,9 @@ function ldap_mod_replace($link_identifier, string $dn, array $entry, array $ser * Modifies an existing entry in the LDAP directory. Allows detailed * specification of the modifications to perform. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. - * @param array $entry An array that specifies the modifications to make. Each entry in this + * @param array $modifications_info An array that specifies the modifications to make. Each entry in this * array is an associative array with two or three keys: * attrib maps to the name of the attribute to modify, * modtype maps to the type of modification to perform, @@ -1032,16 +1130,20 @@ function ldap_mod_replace($link_identifier, string $dn, array $entry, array $ser * value for values must be an array of strings, and * any value for modtype must be one of the * LDAP_MODIFY_BATCH_* constants listed above. - * @param array $serverctrls Each value specified through values is added (as + * @param array $controls Each value specified through values is added (as * an additional value) to the attribute named by * attrib. * @throws LdapException * */ -function ldap_modify_batch($link_identifier, string $dn, array $entry, array $serverctrls = null): void +function ldap_modify_batch($ldap, string $dn, array $modifications_info, array $controls = null): void { error_clear_last(); - $result = \ldap_modify_batch($link_identifier, $dn, $entry, $serverctrls); + if ($controls !== null) { + $result = \ldap_modify_batch($ldap, $dn, $modifications_info, $controls); + } else { + $result = \ldap_modify_batch($ldap, $dn, $modifications_info); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1051,20 +1153,20 @@ function ldap_modify_batch($link_identifier, string $dn, array $entry, array $se /** * Retrieves the attributes in an entry. The first call to * ldap_next_attribute is made with the - * result_entry_identifier returned from + * entry returned from * ldap_first_attribute. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param resource $result_entry_identifier + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. + * @param resource $entry * @return string Returns the next attribute in an entry on success and FALSE on * error. * @throws LdapException * */ -function ldap_next_attribute($link_identifier, $result_entry_identifier): string +function ldap_next_attribute($ldap, $entry): string { error_clear_last(); - $result = \ldap_next_attribute($link_identifier, $result_entry_identifier); + $result = \ldap_next_attribute($ldap, $entry); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1075,17 +1177,17 @@ function ldap_next_attribute($link_identifier, $result_entry_identifier): string /** * Parse LDAP extended operation data from result object result * - * @param resource $link An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param resource $result An LDAP result resource, returned by ldap_exop. - * @param string|null $retdata Will be filled by the response data. - * @param string|null $retoid Will be filled by the response OID. + * @param string|null $response_data Will be filled by the response data. + * @param string|null $response_oid Will be filled by the response OID. * @throws LdapException * */ -function ldap_parse_exop($link, $result, ?string &$retdata = null, ?string &$retoid = null): void +function ldap_parse_exop($ldap, $result, ?string &$response_data = null, ?string &$response_oid = null): void { error_clear_last(); - $result = \ldap_parse_exop($link, $result, $retdata, $retoid); + $result = \ldap_parse_exop($ldap, $result, $response_data, $response_oid); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1095,26 +1197,26 @@ function ldap_parse_exop($link, $result, ?string &$retdata = null, ?string &$ret /** * Parses an LDAP search result. * - * @param resource $link An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param resource $result An LDAP result resource, returned by ldap_list or * ldap_search. - * @param int|null $errcode A reference to a variable that will be set to the LDAP error code in + * @param int|null $error_code A reference to a variable that will be set to the LDAP error code in * the result, or 0 if no error occurred. - * @param string|null $matcheddn A reference to a variable that will be set to a matched DN if one was + * @param string|null $matched_dn A reference to a variable that will be set to a matched DN if one was * recognised within the request, otherwise it will be set to NULL. - * @param string|null $errmsg A reference to a variable that will be set to the LDAP error message in + * @param string|null $error_message A reference to a variable that will be set to the LDAP error message in * the result, or an empty string if no error occurred. * @param array|null $referrals A reference to a variable that will be set to an array set * to all of the referral strings in the result, or an empty array if no * referrals were returned. - * @param array|null $serverctrls An array of LDAP Controls which have been sent with the response. + * @param array|null $controls An array of LDAP Controls which have been sent with the response. * @throws LdapException * */ -function ldap_parse_result($link, $result, ?int &$errcode, ?string &$matcheddn = null, ?string &$errmsg = null, ?array &$referrals = null, ?array &$serverctrls = null): void +function ldap_parse_result($ldap, $result, ?int &$error_code, ?string &$matched_dn = null, ?string &$error_message = null, ?array &$referrals = null, ?array &$controls = null): void { error_clear_last(); - $result = \ldap_parse_result($link, $result, $errcode, $matcheddn, $errmsg, $referrals, $serverctrls); + $result = \ldap_parse_result($ldap, $result, $error_code, $matched_dn, $error_message, $referrals, $controls); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1126,8 +1228,8 @@ function ldap_parse_result($link, $result, ?int &$errcode, ?string &$matcheddn = * directory with the scope LDAP_SCOPE_BASE. So it is * equivalent to reading an entry from the directory. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param string $base_dn The base DN for the directory. + * @param resource|array $ldap An LDAP link identifier, returned by ldap_connect. + * @param string $base The base DN for the directory. * @param string $filter An empty filter is not allowed. If you want to retrieve absolutely all * information for this entry, use a filter of * objectClass=*. If you know which entry types are @@ -1141,7 +1243,7 @@ function ldap_parse_result($link, $result, ?int &$errcode, ?string &$matcheddn = * (which is to return all attributes and their associated values). * The use of this parameter should therefore be considered good * practice. - * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0 + * @param int $attributes_only Should be set to 1 if only attribute types are wanted. If set to 0 * both attributes types and attribute values are fetched which is the * default behaviour. * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0 @@ -1188,28 +1290,18 @@ function ldap_parse_result($link, $result, ?int &$errcode, ?string &$matcheddn = * * * - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @return resource Returns a search result identifier. * @throws LdapException * */ -function ldap_read($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null) +function ldap_read($ldap, string $base, string $filter, array $attributes = [], int $attributes_only = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $controls = null) { error_clear_last(); - if ($serverctrls !== null) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls); - } elseif ($deref !== LDAP_DEREF_NEVER) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref); - } elseif ($timelimit !== -1) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit); - } elseif ($sizelimit !== -1) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit); - } elseif ($attrsonly !== 0) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes, $attrsonly); - } elseif ($attributes !== null) { - $result = \ldap_read($link_identifier, $base_dn, $filter, $attributes); + if ($controls !== null) { + $result = \ldap_read($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref, $controls); } else { - $result = \ldap_read($link_identifier, $base_dn, $filter); + $result = \ldap_read($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref); } if ($result === false) { throw LdapException::createFromPhpError(); @@ -1221,20 +1313,24 @@ function ldap_read($link_identifier, string $base_dn, string $filter, array $att /** * Does the same thing as ldap_rename but returns the LDAP result resource to be parsed with ldap_parse_result. * - * @param resource $link_identifier + * @param resource $ldap * @param string $dn - * @param string $newrdn - * @param string $newparent - * @param bool $deleteoldrdn - * @param array $serverctrls + * @param string $new_rdn + * @param string $new_parent + * @param bool $delete_old_rdn + * @param array $controls * @return resource Returns an LDAP result identifier. * @throws LdapException * */ -function ldap_rename_ext($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $serverctrls = null) +function ldap_rename_ext($ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, array $controls = null) { error_clear_last(); - $result = \ldap_rename_ext($link_identifier, $dn, $newrdn, $newparent, $deleteoldrdn, $serverctrls); + if ($controls !== null) { + $result = \ldap_rename_ext($ldap, $dn, $new_rdn, $new_parent, $delete_old_rdn, $controls); + } else { + $result = \ldap_rename_ext($ldap, $dn, $new_rdn, $new_parent, $delete_old_rdn); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1245,20 +1341,24 @@ function ldap_rename_ext($link_identifier, string $dn, string $newrdn, string $n /** * The entry specified by dn is renamed/moved. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @param string $dn The distinguished name of an LDAP entity. - * @param string $newrdn The new RDN. - * @param string $newparent The new parent/superior entry. - * @param bool $deleteoldrdn If TRUE the old RDN value(s) is removed, else the old RDN value(s) + * @param string $new_rdn The new RDN. + * @param string $new_parent The new parent/superior entry. + * @param bool $delete_old_rdn If TRUE the old RDN value(s) is removed, else the old RDN value(s) * is retained as non-distinguished values of the entry. - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @throws LdapException * */ -function ldap_rename($link_identifier, string $dn, string $newrdn, string $newparent, bool $deleteoldrdn, array $serverctrls = null): void +function ldap_rename($ldap, string $dn, string $new_rdn, string $new_parent, bool $delete_old_rdn, array $controls = null): void { error_clear_last(); - $result = \ldap_rename($link_identifier, $dn, $newrdn, $newparent, $deleteoldrdn, $serverctrls); + if ($controls !== null) { + $result = \ldap_rename($ldap, $dn, $new_rdn, $new_parent, $delete_old_rdn, $controls); + } else { + $result = \ldap_rename($ldap, $dn, $new_rdn, $new_parent, $delete_old_rdn); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1268,21 +1368,37 @@ function ldap_rename($link_identifier, string $dn, string $newrdn, string $newpa /** * * - * @param resource $link - * @param string $binddn + * @param resource $ldap + * @param string $dn * @param string $password - * @param string $sasl_mech - * @param string $sasl_realm - * @param string $sasl_authc_id - * @param string $sasl_authz_id + * @param string $mech + * @param string $realm + * @param string $authc_id + * @param string $authz_id * @param string $props * @throws LdapException * */ -function ldap_sasl_bind($link, string $binddn = null, string $password = null, string $sasl_mech = null, string $sasl_realm = null, string $sasl_authc_id = null, string $sasl_authz_id = null, string $props = null): void +function ldap_sasl_bind($ldap, string $dn = null, string $password = null, string $mech = null, string $realm = null, string $authc_id = null, string $authz_id = null, string $props = null): void { error_clear_last(); - $result = \ldap_sasl_bind($link, $binddn, $password, $sasl_mech, $sasl_realm, $sasl_authc_id, $sasl_authz_id, $props); + if ($props !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password, $mech, $realm, $authc_id, $authz_id, $props); + } elseif ($authz_id !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password, $mech, $realm, $authc_id, $authz_id); + } elseif ($authc_id !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password, $mech, $realm, $authc_id); + } elseif ($realm !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password, $mech, $realm); + } elseif ($mech !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password, $mech); + } elseif ($password !== null) { + $result = \ldap_sasl_bind($ldap, $dn, $password); + } elseif ($dn !== null) { + $result = \ldap_sasl_bind($ldap, $dn); + } else { + $result = \ldap_sasl_bind($ldap); + } if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1309,8 +1425,8 @@ function ldap_sasl_bind($link, string $binddn = null, string $password = null, s * normal search returns FALSE while the parallel search returns an * identifier. * - * @param resource|array $link_identifier An LDAP link identifier, returned by ldap_connect. - * @param string $base_dn The base DN for the directory. + * @param resource|array $ldap An LDAP link identifier, returned by ldap_connect. + * @param string $base The base DN for the directory. * @param string $filter The search filter can be simple or advanced, using boolean operators in * the format described in the LDAP documentation (see the Netscape Directory SDK or * RFC4515 for full @@ -1323,7 +1439,7 @@ function ldap_sasl_bind($link, string $binddn = null, string $password = null, s * (which is to return all attributes and their associated values). * The use of this parameter should therefore be considered good * practice. - * @param int $attrsonly Should be set to 1 if only attribute types are wanted. If set to 0 + * @param int $attributes_only Should be set to 1 if only attribute types are wanted. If set to 0 * both attributes types and attribute values are fetched which is the * default behaviour. * @param int $sizelimit Enables you to limit the count of entries fetched. Setting this to 0 @@ -1370,28 +1486,18 @@ function ldap_sasl_bind($link, string $binddn = null, string $password = null, s * * * - * @param array $serverctrls Array of LDAP Controls to send with the request. + * @param array $controls Array of LDAP Controls to send with the request. * @return resource Returns a search result identifier. * @throws LdapException * */ -function ldap_search($link_identifier, string $base_dn, string $filter, array $attributes = null, int $attrsonly = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $serverctrls = null) +function ldap_search($ldap, string $base, string $filter, array $attributes = [], int $attributes_only = 0, int $sizelimit = -1, int $timelimit = -1, int $deref = LDAP_DEREF_NEVER, array $controls = null) { error_clear_last(); - if ($serverctrls !== null) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref, $serverctrls); - } elseif ($deref !== LDAP_DEREF_NEVER) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit, $deref); - } elseif ($timelimit !== -1) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit, $timelimit); - } elseif ($sizelimit !== -1) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly, $sizelimit); - } elseif ($attrsonly !== 0) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes, $attrsonly); - } elseif ($attributes !== null) { - $result = \ldap_search($link_identifier, $base_dn, $filter, $attributes); + if ($controls !== null) { + $result = \ldap_search($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref, $controls); } else { - $result = \ldap_search($link_identifier, $base_dn, $filter); + $result = \ldap_search($ldap, $base, $filter, $attributes, $attributes_only, $sizelimit, $timelimit, $deref); } if ($result === false) { throw LdapException::createFromPhpError(); @@ -1401,9 +1507,9 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a /** - * Sets the value of the specified option to be newval. + * Sets the value of the specified option to be value. * - * @param resource|null $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource|null $ldap An LDAP link identifier, returned by ldap_connect. * @param int $option The parameter option can be one of: * * @@ -1417,32 +1523,32 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a * * * LDAP_OPT_DEREF - * integer + * int * * * * LDAP_OPT_SIZELIMIT - * integer + * int * * * * LDAP_OPT_TIMELIMIT - * integer + * int * * * * LDAP_OPT_NETWORK_TIMEOUT - * integer - * PHP 5.3.0 + * int + * * * * LDAP_OPT_PROTOCOL_VERSION - * integer + * int * * * * LDAP_OPT_ERROR_NUMBER - * integer + * int * * * @@ -1522,7 +1628,7 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a * * * LDAP_OPT_X_TLS_CRLCHECK - * integer + * int * PHP 7.1.0 * * @@ -1542,7 +1648,7 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a * * * LDAP_OPT_X_TLS_PROTOCOL_MIN - * integer + * int * PHP 7.1.0 * * @@ -1552,7 +1658,7 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a * * * LDAP_OPT_X_TLS_REQUIRE_CERT - * integer + * int * PHP 7.0.5 * * @@ -1572,14 +1678,14 @@ function ldap_search($link_identifier, string $base_dn, string $filter, array $a * iscritical defaults to FALSE * if not supplied. See draft-ietf-ldapext-ldap-c-api-xx.txt * for details. See also the second example below. - * @param mixed $newval The new value for the specified option. + * @param mixed $value The new value for the specified option. * @throws LdapException * */ -function ldap_set_option($link_identifier, int $option, $newval): void +function ldap_set_option($ldap, int $option, $value): void { error_clear_last(); - $result = \ldap_set_option($link_identifier, $option, $newval); + $result = \ldap_set_option($ldap, $option, $value); if ($result === false) { throw LdapException::createFromPhpError(); } @@ -1589,14 +1695,14 @@ function ldap_set_option($link_identifier, int $option, $newval): void /** * Unbinds from the LDAP directory. * - * @param resource $link_identifier An LDAP link identifier, returned by ldap_connect. + * @param resource $ldap An LDAP link identifier, returned by ldap_connect. * @throws LdapException * */ -function ldap_unbind($link_identifier): void +function ldap_unbind($ldap): void { error_clear_last(); - $result = \ldap_unbind($link_identifier); + $result = \ldap_unbind($ldap); if ($result === false) { throw LdapException::createFromPhpError(); } diff --git a/generated/mbstring.php b/generated/mbstring.php index fa082943..113e2260 100644 --- a/generated/mbstring.php +++ b/generated/mbstring.php @@ -7,19 +7,55 @@ /** * * - * @param int $cp + * @param int $codepoint * @param string $encoding * @return string Returns a specific character. * @throws MbstringException * */ -function mb_chr(int $cp, string $encoding = null): string +function mb_chr(int $codepoint, string $encoding = null): string { error_clear_last(); if ($encoding !== null) { - $result = \mb_chr($cp, $encoding); + $result = \mb_chr($codepoint, $encoding); } else { - $result = \mb_chr($cp); + $result = \mb_chr($codepoint); + } + if ($result === false) { + throw MbstringException::createFromPhpError(); + } + return $result; +} + + +/** + * Converts the character encoding of string + * to to_encoding + * from optionally from_encoding. + * If string is an array, all its string values will be + * converted recursively. + * + * @param string|array $string The string or array being encoded. + * @param string $to_encoding The type of encoding that string is being converted to. + * @param mixed $from_encoding Is specified by character code names before conversion. It is either + * an array, or a comma separated enumerated list. + * If from_encoding is not specified, the internal + * encoding will be used. + * + * + * See supported + * encodings. + * @return string|array The encoded string or array on success. + * @throws MbstringException + * + */ +function mb_convert_encoding($string, string $to_encoding, $from_encoding = null) +{ + error_clear_last(); + if ($from_encoding !== null) { + $result = \mb_convert_encoding($string, $to_encoding, $from_encoding); + } else { + $result = \mb_convert_encoding($string, $to_encoding); } if ($result === false) { throw MbstringException::createFromPhpError(); @@ -30,12 +66,12 @@ function mb_chr(int $cp, string $encoding = null): string /** * Sets the automatic character - * encoding detection order to encoding_list. + * encoding detection order to encoding. * - * @param mixed $encoding_list encoding_list is an array or + * @param mixed $encoding encoding is an array or * comma separated list of character encoding. See supported encodings. * - * If encoding_list is omitted, it returns + * If encoding is omitted or NULL, it returns * the current character encoding detection order as array. * * This setting affects mb_detect_encoding and @@ -57,11 +93,11 @@ function mb_chr(int $cp, string $encoding = null): string * @throws MbstringException * */ -function mb_detect_order($encoding_list = null) +function mb_detect_order($encoding = null) { error_clear_last(); - if ($encoding_list !== null) { - $result = \mb_detect_order($encoding_list); + if ($encoding !== null) { + $result = \mb_detect_order($encoding); } else { $result = \mb_detect_order(); } @@ -118,15 +154,21 @@ function mb_encoding_aliases(string $encoding): array * clutter the function namespace with a callback function's name * not used anywhere else. * @param string $string The string being checked. - * @param string $option The search option. See mb_regex_set_options for explanation. + * @param string $options The search option. See mb_regex_set_options for explanation. * @return string The resultant string on success. + * If string is not valid for the current encoding, NULL + * is returned. * @throws MbstringException * */ -function mb_ereg_replace_callback(string $pattern, callable $callback, string $string, string $option = "msr"): string +function mb_ereg_replace_callback(string $pattern, callable $callback, string $string, string $options = null): string { error_clear_last(); - $result = \mb_ereg_replace_callback($pattern, $callback, $string, $option); + if ($options !== null) { + $result = \mb_ereg_replace_callback($pattern, $callback, $string, $options); + } else { + $result = \mb_ereg_replace_callback($pattern, $callback, $string); + } if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -142,15 +184,21 @@ function mb_ereg_replace_callback(string $pattern, callable $callback, string $s * Multibyte characters may be used in pattern. * @param string $replacement The replacement text. * @param string $string The string being checked. - * @param string $option + * @param string $options * @return string The resultant string on success. + * If string is not valid for the current encoding, NULL + * is returned. * @throws MbstringException * */ -function mb_ereg_replace(string $pattern, string $replacement, string $string, string $option = "msr"): string +function mb_ereg_replace(string $pattern, string $replacement, string $string, string $options = null): string { error_clear_last(); - $result = \mb_ereg_replace($pattern, $replacement, $string, $option); + if ($options !== null) { + $result = \mb_ereg_replace($pattern, $replacement, $string, $options); + } else { + $result = \mb_ereg_replace($pattern, $replacement, $string); + } if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -186,15 +234,15 @@ function mb_ereg_search_getregs(): array * * @param string $string The search string. * @param string $pattern The search pattern. - * @param string $option The search option. See mb_regex_set_options for explanation. + * @param string $options The search option. See mb_regex_set_options for explanation. * @throws MbstringException * */ -function mb_ereg_search_init(string $string, string $pattern = null, string $option = "msr"): void +function mb_ereg_search_init(string $string, string $pattern = null, string $options = null): void { error_clear_last(); - if ($option !== "msr") { - $result = \mb_ereg_search_init($string, $pattern, $option); + if ($options !== null) { + $result = \mb_ereg_search_init($string, $pattern, $options); } elseif ($pattern !== null) { $result = \mb_ereg_search_init($string, $pattern); } else { @@ -210,16 +258,16 @@ function mb_ereg_search_init(string $string, string $pattern = null, string $opt * Returns the matched part of a multibyte regular expression. * * @param string $pattern The search pattern. - * @param string $option The search option. See mb_regex_set_options for explanation. + * @param string $options The search option. See mb_regex_set_options for explanation. * @return array * @throws MbstringException * */ -function mb_ereg_search_regs(string $pattern = null, string $option = "ms"): array +function mb_ereg_search_regs(string $pattern = null, string $options = null): array { error_clear_last(); - if ($option !== "ms") { - $result = \mb_ereg_search_regs($pattern, $option); + if ($options !== null) { + $result = \mb_ereg_search_regs($pattern, $options); } elseif ($pattern !== null) { $result = \mb_ereg_search_regs($pattern); } else { @@ -235,14 +283,14 @@ function mb_ereg_search_regs(string $pattern = null, string $option = "ms"): arr /** * * - * @param int $position The position to set. If it is negative, it counts from the end of the string. + * @param int $offset The position to set. If it is negative, it counts from the end of the string. * @throws MbstringException * */ -function mb_ereg_search_setpos(int $position): void +function mb_ereg_search_setpos(int $offset): void { error_clear_last(); - $result = \mb_ereg_search_setpos($position); + $result = \mb_ereg_search_setpos($offset); if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -253,17 +301,50 @@ function mb_ereg_search_setpos(int $position): void * * * @param string $pattern The regular expression pattern. Multibyte characters may be used. The case will be ignored. - * @param string $replace The replacement text. + * @param string $replacement The replacement text. * @param string $string The searched string. - * @param string $option + * @param string $options * @return string The resultant string. + * If string is not valid for the current encoding, NULL + * is returned. * @throws MbstringException * */ -function mb_eregi_replace(string $pattern, string $replace, string $string, string $option = "msri"): string +function mb_eregi_replace(string $pattern, string $replacement, string $string, string $options = null): string { error_clear_last(); - $result = \mb_eregi_replace($pattern, $replace, $string, $option); + if ($options !== null) { + $result = \mb_eregi_replace($pattern, $replacement, $string, $options); + } else { + $result = \mb_eregi_replace($pattern, $replacement, $string); + } + if ($result === false) { + throw MbstringException::createFromPhpError(); + } + return $result; +} + + +/** + * + * + * @param string $type If type isn't specified or is specified to + * "all", an array having the elements "internal_encoding", + * "http_output", "http_input", "func_overload", "mail_charset", + * "mail_header_encoding", "mail_body_encoding" will be returned. + * + * If type is specified as "http_output", + * "http_input", "internal_encoding", "func_overload", + * the specified setting parameter will be returned. + * @return mixed An array of type information if type + * is not specified, otherwise a specific type. + * @throws MbstringException + * + */ +function mb_get_info(string $type = "all") +{ + error_clear_last(); + $result = \mb_get_info($type); if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -338,19 +419,19 @@ function mb_internal_encoding(string $encoding = null) /** * * - * @param string $str + * @param string $string * @param string $encoding * @return int Returns a code point of character. * @throws MbstringException * */ -function mb_ord(string $str, string $encoding = null): int +function mb_ord(string $string, string $encoding = null): int { error_clear_last(); if ($encoding !== null) { - $result = \mb_ord($str, $encoding); + $result = \mb_ord($string, $encoding); } else { - $result = \mb_ord($str); + $result = \mb_ord($string); } if ($result === false) { throw MbstringException::createFromPhpError(); @@ -367,15 +448,15 @@ function mb_ord(string $str, string $encoding = null): int * encoding and set values to the result array or * global variables. * - * @param string $encoded_string The URL encoded data. + * @param string $string The URL encoded data. * @param array|null $result An array containing decoded and character encoded converted values. * @throws MbstringException * */ -function mb_parse_str(string $encoded_string, ?array &$result): void +function mb_parse_str(string $string, ?array &$result): void { error_clear_last(); - $result = \mb_parse_str($encoded_string, $result); + $result = \mb_parse_str($string, $result); if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -386,7 +467,7 @@ function mb_parse_str(string $encoded_string, ?array &$result): void * Set/Get character encoding for a multibyte regex. * * @param string $encoding The encoding - * parameter is the character encoding. If it is omitted, the internal character + * parameter is the character encoding. If it is omitted or NULL, the internal character * encoding value will be used. * @return string|bool * @throws MbstringException @@ -444,7 +525,7 @@ function mb_regex_encoding(string $encoding = null) * automatically (which leads to doubling CR if CRLF is used). * This should be a last resort, as it does not comply with * RFC 2822. - * @param string $additional_parameter additional_parameter is a MTA command line + * @param string $additional_params additional_params is a MTA command line * parameter. It is useful when setting the correct Return-Path * header when using sendmail. * @@ -464,10 +545,14 @@ function mb_regex_encoding(string $encoding = null) * @throws MbstringException * */ -function mb_send_mail(string $to, string $subject, string $message, $additional_headers = null, string $additional_parameter = null): void +function mb_send_mail(string $to, string $subject, string $message, $additional_headers = [], string $additional_params = null): void { error_clear_last(); - $result = \mb_send_mail($to, $subject, $message, $additional_headers, $additional_parameter); + if ($additional_params !== null) { + $result = \mb_send_mail($to, $subject, $message, $additional_headers, $additional_params); + } else { + $result = \mb_send_mail($to, $subject, $message, $additional_headers); + } if ($result === false) { throw MbstringException::createFromPhpError(); } @@ -497,13 +582,13 @@ function mb_split(string $pattern, string $string, int $limit = -1): array /** * This function will return an array of strings, it is a version of str_split with support for encodings of variable character size as well as fixed-size encodings of 1,2 or 4 byte characters. - * If the split_length parameter is specified, the string is broken down into chunks of the specified length in characters (not bytes). + * If the length parameter is specified, the string is broken down into chunks of the specified length in characters (not bytes). * The encoding parameter can be optionally specified and it is good practice to do so. * * @param string $string The string to split into characters or chunks. - * @param int $split_length If specified, each element of the returned array will be composed of multiple characters instead of a single character. - * @param string $encoding The encoding - * parameter is the character encoding. If it is omitted, the internal character + * @param int $length If specified, each element of the returned array will be composed of multiple characters instead of a single character. + * @param $encoding The encoding + * parameter is the character encoding. If it is omitted or NULL, the internal character * encoding value will be used. * * A string specifying one of the supported encodings. @@ -511,13 +596,13 @@ function mb_split(string $pattern, string $string, int $limit = -1): array * @throws MbstringException * */ -function mb_str_split(string $string, int $split_length = 1, string $encoding = null): array +function mb_str_split(string $string, int $length = 1, $encoding = null): array { error_clear_last(); if ($encoding !== null) { - $result = \mb_str_split($string, $split_length, $encoding); + $result = \mb_str_split($string, $length, $encoding); } else { - $result = \mb_str_split($string, $split_length); + $result = \mb_str_split($string, $length); } if ($result === false) { throw MbstringException::createFromPhpError(); diff --git a/generated/misc.php b/generated/misc.php index ff636fd4..de4dfc47 100644 --- a/generated/misc.php +++ b/generated/misc.php @@ -13,8 +13,8 @@ * even invalid names, whose value can (only) be retrieved with * constant. However, doing so is not recommended. * @param mixed $value The value of the constant. In PHP 5, value must - * be a scalar value (integer, - * float, string, boolean, or + * be a scalar value (int, + * float, string, bool, or * NULL). In PHP 7, array values are also accepted. * * While it is possible to define resource constants, it is @@ -92,6 +92,30 @@ function highlight_string(string $str, bool $return = false) } +/** + * + * + * @param bool $as_number Whether the high resolution time should be returned as array + * or number. + * @return array{0:int,1:int}|int|float Returns an array of integers in the form [seconds, nanoseconds], if the + * parameter as_number is false. Otherwise the nanoseconds + * are returned as int (64bit platforms) or float + * (32bit platforms). + * Returns FALSE on failure. + * @throws MiscException + * + */ +function hrtime(bool $as_number = false) +{ + error_clear_last(); + $result = \hrtime($as_number); + if ($result === false) { + throw MiscException::createFromPhpError(); + } + return $result; +} + + /** * Pack given arguments into a binary string according to * format. @@ -241,16 +265,16 @@ function highlight_string(string $str, bool $return = false) * * * - * @param mixed $params + * @param mixed $values * @return string Returns a binary string containing data. * @throws MiscException * */ -function pack(string $format, ...$params): string +function pack(string $format, ...$values): string { error_clear_last(); - if ($params !== []) { - $result = \pack($format, ...$params); + if ($values !== []) { + $result = \pack($format, ...$values); } else { $result = \pack($format); } @@ -379,6 +403,27 @@ function sleep(int $seconds): int } +/** + * Returns three samples representing the average system load + * (the number of processes in the system run queue) over the last 1, 5 and 15 + * minutes, respectively. Returns FALSE on failure. + * + * @return array Returns an array with three samples (last 1, 5 and 15 + * minutes). + * @throws MiscException + * + */ +function sys_getloadavg(): array +{ + error_clear_last(); + $result = \sys_getloadavg(); + if ($result === false) { + throw MiscException::createFromPhpError(); + } + return $result; +} + + /** * Delays program execution for the given number of * seconds and nanoseconds. @@ -446,17 +491,17 @@ function time_sleep_until(float $timestamp): void * the given name. * * @param string $format See pack for an explanation of the format codes. - * @param string $data The packed data. + * @param string $string The packed data. * @param int $offset The offset to begin unpacking from. * @return array Returns an associative array containing unpacked elements of binary * string. * @throws MiscException * */ -function unpack(string $format, string $data, int $offset = 0): array +function unpack(string $format, string $string, int $offset = 0): array { error_clear_last(); - $result = \unpack($format, $data, $offset); + $result = \unpack($format, $string, $offset); if ($result === false) { throw MiscException::createFromPhpError(); } diff --git a/generated/msql.php b/generated/msql.php deleted file mode 100644 index 331c1b6c..00000000 --- a/generated/msql.php +++ /dev/null @@ -1,443 +0,0 @@ - @@ -508,34 +523,34 @@ function sprintf(string $format, ...$params): string * * @param int $length If length is given and is positive, the string * returned will contain at most length characters - * beginning from start (depending on the length of + * beginning from offset (depending on the length of * string). * * If length is given and is negative, then that many * characters will be omitted from the end of string * (after the start position has been calculated when a - * start is negative). If - * start denotes the position of this truncation or + * offset is negative). If + * offset denotes the position of this truncation or * beyond, FALSE will be returned. * * If length is given and is 0, * FALSE or NULL, an empty string will be returned. * * If length is omitted, the substring starting from - * start until the end of the string will be + * offset until the end of the string will be * returned. * @return string Returns the extracted part of string;, or * an empty string. * @throws StringsException * */ -function substr(string $string, int $start, int $length = null): string +function substr(string $string, int $offset, int $length = null): string { error_clear_last(); if ($length !== null) { - $result = \substr($string, $start, $length); + $result = \substr($string, $offset, $length); } else { - $result = \substr($string, $start); + $result = \substr($string, $offset); } if ($result === false) { throw StringsException::createFromPhpError(); @@ -738,6 +753,20 @@ function substr(string $string, int $start, int $length = null): string * * * + * h + * + * Like the g specifier but uses F. + * Available as of PHP 8.0.0. + * + * + * + * H + * + * Like the g specifier but uses + * E and F. Available as of PHP 8.0.0. + * + * + * * o * * The argument is treated as an integer and presented @@ -829,16 +858,16 @@ function substr(string $string, int $start, int $length = null): string * * * - * @param array $args + * @param array $values * @return string Return array values as a formatted string according to * format. * @throws StringsException * */ -function vsprintf(string $format, array $args): string +function vsprintf(string $format, array $values): string { error_clear_last(); - $result = \vsprintf($format, $args); + $result = \vsprintf($format, $values); if ($result === false) { throw StringsException::createFromPhpError(); } diff --git a/generated/uodbc.php b/generated/uodbc.php index 89775c82..97d67e1a 100644 --- a/generated/uodbc.php +++ b/generated/uodbc.php @@ -10,24 +10,24 @@ * By default, auto-commit is on for a connection. Disabling * auto-commit is equivalent with starting a transaction. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. - * @param bool $OnOff If OnOff is TRUE, auto-commit is enabled, if + * @param bool $enable If enable is TRUE, auto-commit is enabled, if * it is FALSE auto-commit is disabled. - * @return mixed Without the OnOff parameter, this function returns - * auto-commit status for connection_id. Non-zero is + * @return mixed Without the enable parameter, this function returns + * auto-commit status for odbc. Non-zero is * returned if auto-commit is on, 0 if it is off, or FALSE if an error * occurs. * - * If OnOff is set, this function returns TRUE on + * If enable is set, this function returns TRUE on * success. * @throws UodbcException * */ -function odbc_autocommit($connection_id, bool $OnOff = false) +function odbc_autocommit($odbc, bool $enable = false) { error_clear_last(); - $result = \odbc_autocommit($connection_id, $OnOff); + $result = \odbc_autocommit($odbc, $enable); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -103,9 +103,9 @@ function odbc_autocommit($connection_id, bool $OnOff = false) * If odbc_result is used, passthru means that the data are * sent directly to the client (i.e. printed). * - * @param int $result_id The result identifier. + * @param int $statement The result identifier. * - * If result_id is 0, the + * If statement is 0, the * settings apply as default for new results. * @param int $mode Possible values for mode are: * @@ -134,10 +134,10 @@ function odbc_autocommit($connection_id, bool $OnOff = false) * @throws UodbcException * */ -function odbc_binmode(int $result_id, int $mode): void +function odbc_binmode(int $statement, int $mode): void { error_clear_last(); - $result = \odbc_binmode($result_id, $mode); + $result = \odbc_binmode($statement, $mode); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -147,18 +147,18 @@ function odbc_binmode(int $result_id, int $mode): void /** * Lists columns and associated privileges for the given table. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $table_name The table name. + * @param string $table The table name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $column_name The column name. + * @param string $column The column name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. @@ -181,10 +181,10 @@ function odbc_binmode(int $result_id, int $mode): void * @throws UodbcException * */ -function odbc_columnprivileges($connection_id, string $catalog, string $schema, string $table_name, string $column_name) +function odbc_columnprivileges($odbc, string $catalog, string $schema, string $table, string $column) { error_clear_last(); - $result = \odbc_columnprivileges($connection_id, $catalog, $schema, $table_name, $column_name); + $result = \odbc_columnprivileges($odbc, $catalog, $schema, $table, $column); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -195,18 +195,18 @@ function odbc_columnprivileges($connection_id, string $catalog, string $schema, /** * Lists all columns in the requested range. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $table_name The table name. + * @param string $table The table name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $column_name The column name. + * @param string $column The column name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. @@ -237,19 +237,19 @@ function odbc_columnprivileges($connection_id, string $catalog, string $schema, * @throws UodbcException * */ -function odbc_columns($connection_id, string $catalog = null, string $schema = null, string $table_name = null, string $column_name = null) +function odbc_columns($odbc, string $catalog = null, string $schema = null, string $table = null, string $column = null) { error_clear_last(); - if ($column_name !== null) { - $result = \odbc_columns($connection_id, $catalog, $schema, $table_name, $column_name); - } elseif ($table_name !== null) { - $result = \odbc_columns($connection_id, $catalog, $schema, $table_name); + if ($column !== null) { + $result = \odbc_columns($odbc, $catalog, $schema, $table, $column); + } elseif ($table !== null) { + $result = \odbc_columns($odbc, $catalog, $schema, $table); } elseif ($schema !== null) { - $result = \odbc_columns($connection_id, $catalog, $schema); + $result = \odbc_columns($odbc, $catalog, $schema); } elseif ($catalog !== null) { - $result = \odbc_columns($connection_id, $catalog); + $result = \odbc_columns($odbc, $catalog); } else { - $result = \odbc_columns($connection_id); + $result = \odbc_columns($odbc); } if ($result === false) { throw UodbcException::createFromPhpError(); @@ -261,26 +261,88 @@ function odbc_columns($connection_id, string $catalog = null, string $schema = n /** * Commits all pending transactions on the connection. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @throws UodbcException * */ -function odbc_commit($connection_id): void +function odbc_commit($odbc): void { error_clear_last(); - $result = \odbc_commit($connection_id); + $result = \odbc_commit($odbc); if ($result === false) { throw UodbcException::createFromPhpError(); } } +/** + * + * + * @param string $dsn The database source name for the connection. Alternatively, a + * DSN-less connection string can be used. + * @param string $user The username. + * @param string $password The password. + * @param int $cursor_option This sets the type of cursor to be used + * for this connection. This parameter is not normally needed, but + * can be useful for working around problems with some ODBC drivers. + * + * + * + * + * SQL_CUR_USE_IF_NEEDED + * + * + * + * + * SQL_CUR_USE_ODBC + * + * + * + * + * SQL_CUR_USE_DRIVER + * + * + * + * @return resource Returns an ODBC connection. + * @throws UodbcException + * + */ +function odbc_connect(string $dsn, string $user, string $password, int $cursor_option = SQL_CUR_USE_DRIVER) +{ + error_clear_last(); + $result = \odbc_connect($dsn, $user, $password, $cursor_option); + if ($result === false) { + throw UodbcException::createFromPhpError(); + } + return $result; +} + + +/** + * Gets the cursorname for the given result_id. + * + * @param resource $statement The result identifier. + * @return string Returns the cursor name, as a string. + * @throws UodbcException + * + */ +function odbc_cursor($statement): string +{ + error_clear_last(); + $result = \odbc_cursor($statement); + if ($result === false) { + throw UodbcException::createFromPhpError(); + } + return $result; +} + + /** * This function will return the list of available DSN (after calling it * several times). * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param int $fetch_type The fetch_type can be one of two constant types: * SQL_FETCH_FIRST, SQL_FETCH_NEXT. @@ -291,10 +353,10 @@ function odbc_commit($connection_id): void * @throws UodbcException * */ -function odbc_data_source($connection_id, int $fetch_type): array +function odbc_data_source($odbc, int $fetch_type): array { error_clear_last(); - $result = \odbc_data_source($connection_id, $fetch_type); + $result = \odbc_data_source($odbc, $fetch_type); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -305,23 +367,18 @@ function odbc_data_source($connection_id, int $fetch_type): array /** * Sends an SQL statement to the database server. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. - * @param string $query_string The SQL statement. - * @param int $flags This parameter is currently not used. + * @param string $query The SQL statement. * @return resource Returns an ODBC result identifier if the SQL command was executed * successfully. * @throws UodbcException * */ -function odbc_exec($connection_id, string $query_string, int $flags = null) +function odbc_exec($odbc, string $query) { error_clear_last(); - if ($flags !== null) { - $result = \odbc_exec($connection_id, $query_string, $flags); - } else { - $result = \odbc_exec($connection_id, $query_string); - } + $result = \odbc_exec($odbc, $query); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -332,8 +389,8 @@ function odbc_exec($connection_id, string $query_string, int $flags = null) /** * Executes a statement prepared with odbc_prepare. * - * @param resource $result_id The result id resource, from odbc_prepare. - * @param array $parameters_array Parameters in parameter_array will be + * @param resource $statement The result id resource, from odbc_prepare. + * @param array $params Parameters in parameter_array will be * substituted for placeholders in the prepared statement in order. * Elements of this array will be converted to strings by calling this * function. @@ -345,14 +402,10 @@ function odbc_exec($connection_id, string $query_string, int $flags = null) * @throws UodbcException * */ -function odbc_execute($result_id, array $parameters_array = null): void +function odbc_execute($statement, array $params = []): void { error_clear_last(); - if ($parameters_array !== null) { - $result = \odbc_execute($result_id, $parameters_array); - } else { - $result = \odbc_execute($result_id); - } + $result = \odbc_execute($statement, $params); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -362,25 +415,21 @@ function odbc_execute($result_id, array $parameters_array = null): void /** * Fetch one result row into array. * - * @param resource $result_id The result resource. - * @param array|null $result_array The result array + * @param resource $statement The result resource. + * @param array|null $array The result array * that can be of any type since it will be converted to type * array. The array will contain the column values starting at array * index 0. - * @param int $rownumber The row number. + * @param int $row The row number. * @return int Returns the number of columns in the result; * FALSE on error. * @throws UodbcException * */ -function odbc_fetch_into($result_id, ?array &$result_array, int $rownumber = null): int +function odbc_fetch_into($statement, ?array &$array, int $row = 0): int { error_clear_last(); - if ($rownumber !== null) { - $result = \odbc_fetch_into($result_id, $result_array, $rownumber); - } else { - $result = \odbc_fetch_into($result_id, $result_array); - } + $result = \odbc_fetch_into($statement, $array, $row); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -392,16 +441,16 @@ function odbc_fetch_into($result_id, ?array &$result_array, int $rownumber = nul * Gets the length of the field referenced by number in the given result * identifier. * - * @param resource $result_id The result identifier. - * @param int $field_number The field number. Field numbering starts at 1. + * @param resource $statement The result identifier. + * @param int $field The field number. Field numbering starts at 1. * @return int Returns the field length. * @throws UodbcException * */ -function odbc_field_len($result_id, int $field_number): int +function odbc_field_len($statement, int $field): int { error_clear_last(); - $result = \odbc_field_len($result_id, $field_number); + $result = \odbc_field_len($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -413,16 +462,16 @@ function odbc_field_len($result_id, int $field_number): int * Gets the name of the field occupying the given column number in the given * result identifier. * - * @param resource $result_id The result identifier. - * @param int $field_number The field number. Field numbering starts at 1. + * @param resource $statement The result identifier. + * @param int $field The field number. Field numbering starts at 1. * @return string Returns the field name as a string. * @throws UodbcException * */ -function odbc_field_name($result_id, int $field_number): string +function odbc_field_name($statement, int $field): string { error_clear_last(); - $result = \odbc_field_name($result_id, $field_number); + $result = \odbc_field_name($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -434,17 +483,17 @@ function odbc_field_name($result_id, int $field_number): string * Gets the number of the column slot that corresponds to the named field in * the given result identifier. * - * @param resource $result_id The result identifier. - * @param string $field_name The field name. + * @param resource $statement The result identifier. + * @param string $field The field name. * @return int Returns the field number as a integer. * Field numbering starts at 1. * @throws UodbcException * */ -function odbc_field_num($result_id, string $field_name): int +function odbc_field_num($statement, string $field): int { error_clear_last(); - $result = \odbc_field_num($result_id, $field_name); + $result = \odbc_field_num($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -456,16 +505,16 @@ function odbc_field_num($result_id, string $field_name): int * Gets the scale of the field referenced by number in the given result * identifier. * - * @param resource $result_id The result identifier. - * @param int $field_number The field number. Field numbering starts at 1. + * @param resource $statement The result identifier. + * @param int $field The field number. Field numbering starts at 1. * @return int Returns the field scale as a integer. * @throws UodbcException * */ -function odbc_field_scale($result_id, int $field_number): int +function odbc_field_scale($statement, int $field): int { error_clear_last(); - $result = \odbc_field_scale($result_id, $field_number); + $result = \odbc_field_scale($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -477,16 +526,16 @@ function odbc_field_scale($result_id, int $field_number): int * Gets the SQL type of the field referenced by number in the given result * identifier. * - * @param resource $result_id The result identifier. - * @param int $field_number The field number. Field numbering starts at 1. + * @param resource $statement The result identifier. + * @param int $field The field number. Field numbering starts at 1. * @return string Returns the field type as a string. * @throws UodbcException * */ -function odbc_field_type($result_id, int $field_number): string +function odbc_field_type($statement, int $field): string { error_clear_last(); - $result = \odbc_field_type($result_id, $field_number); + $result = \odbc_field_type($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -499,7 +548,7 @@ function odbc_field_type($result_id, int $field_number): string * foreign keys in other tables that refer to the primary key in the * specified table * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $pk_catalog The catalog ('qualifier' in ODBC 2 parlance) of the primary key table. * @param string $pk_schema The schema ('owner' in ODBC 2 parlance) of the primary key table. @@ -530,10 +579,10 @@ function odbc_field_type($result_id, int $field_number): string * @throws UodbcException * */ -function odbc_foreignkeys($connection_id, string $pk_catalog, string $pk_schema, string $pk_table, string $fk_catalog, string $fk_schema, string $fk_table) +function odbc_foreignkeys($odbc, string $pk_catalog, string $pk_schema, string $pk_table, string $fk_catalog, string $fk_schema, string $fk_table) { error_clear_last(); - $result = \odbc_foreignkeys($connection_id, $pk_catalog, $pk_schema, $pk_table, $fk_catalog, $fk_schema, $fk_table); + $result = \odbc_foreignkeys($odbc, $pk_catalog, $pk_schema, $pk_table, $fk_catalog, $fk_schema, $fk_table); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -544,7 +593,7 @@ function odbc_foreignkeys($connection_id, string $pk_catalog, string $pk_schema, /** * Retrieves information about data types supported by the data source. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param int $data_type The data type, which can be used to restrict the information to a * single data type. @@ -573,14 +622,10 @@ function odbc_foreignkeys($connection_id, string $pk_catalog, string $pk_schema, * @throws UodbcException * */ -function odbc_gettypeinfo($connection_id, int $data_type = null) +function odbc_gettypeinfo($odbc, int $data_type = 0) { error_clear_last(); - if ($data_type !== null) { - $result = \odbc_gettypeinfo($connection_id, $data_type); - } else { - $result = \odbc_gettypeinfo($connection_id); - } + $result = \odbc_gettypeinfo($odbc, $data_type); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -593,23 +638,55 @@ function odbc_gettypeinfo($connection_id, int $data_type = null) * The default length can be set using the * uodbc.defaultlrl php.ini directive. * - * @param resource $result_id The result identifier. + * @param resource $statement The result identifier. * @param int $length The number of bytes returned to PHP is controlled by the parameter * length. If it is set to 0, long column data is passed through to the * client (i.e. printed) when retrieved with odbc_result. * @throws UodbcException * */ -function odbc_longreadlen($result_id, int $length): void +function odbc_longreadlen($statement, int $length): void { error_clear_last(); - $result = \odbc_longreadlen($result_id, $length); + $result = \odbc_longreadlen($statement, $length); if ($result === false) { throw UodbcException::createFromPhpError(); } } +/** + * Opens a persistent database connection. + * + * This function is much like + * odbc_connect, except that the connection is + * not really closed when the script has finished. Future requests + * for a connection with the same dsn, + * user, password + * combination (via odbc_connect and + * odbc_pconnect) can reuse the persistent + * connection. + * + * @param string $dsn + * @param string $user + * @param string $password + * @param int $cursor_option + * @return resource Returns an ODBC connection. + * error. + * @throws UodbcException + * + */ +function odbc_pconnect(string $dsn, string $user, string $password, int $cursor_option = SQL_CUR_USE_DRIVER) +{ + error_clear_last(); + $result = \odbc_pconnect($dsn, $user, $password, $cursor_option); + if ($result === false) { + throw UodbcException::createFromPhpError(); + } + return $result; +} + + /** * Prepares a statement for execution. The result identifier can be used * later to execute the statement with odbc_execute. @@ -619,18 +696,18 @@ function odbc_longreadlen($result_id, int $length): void * defined by the ODBC specification. However, the Unified ODBC driver * currently only supports parameters of type IN to stored procedures. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. - * @param string $query_string The query string statement being prepared. + * @param string $query The query string statement being prepared. * @return resource Returns an ODBC result identifier if the SQL command was prepared * successfully. * @throws UodbcException * */ -function odbc_prepare($connection_id, string $query_string) +function odbc_prepare($odbc, string $query) { error_clear_last(); - $result = \odbc_prepare($connection_id, $query_string); + $result = \odbc_prepare($odbc, $query); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -642,7 +719,7 @@ function odbc_prepare($connection_id, string $query_string) * Returns a result identifier that can be used to fetch the column names * that comprise the primary key for a table. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). @@ -662,10 +739,130 @@ function odbc_prepare($connection_id, string $query_string) * @throws UodbcException * */ -function odbc_primarykeys($connection_id, string $catalog, string $schema, string $table) +function odbc_primarykeys($odbc, string $catalog, string $schema, string $table) +{ + error_clear_last(); + $result = \odbc_primarykeys($odbc, $catalog, $schema, $table); + if ($result === false) { + throw UodbcException::createFromPhpError(); + } + return $result; +} + + +/** + * Retrieve information about parameters to procedures. + * + * @param $odbc The ODBC connection identifier, + * see odbc_connect for details. + * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). + * @param string $schema The schema ('owner' in ODBC 2 parlance). + * This parameter accepts the following search patterns: + * % to match zero or more characters, + * and _ to match a single character. + * @param string $procedure The proc. + * This parameter accepts the following search patterns: + * % to match zero or more characters, + * and _ to match a single character. + * @param string $column The column. + * This parameter accepts the following search patterns: + * % to match zero or more characters, + * and _ to match a single character. + * @return resource Returns the list of input and output parameters, as well as the + * columns that make up the result set for the specified procedures. + * Returns an ODBC result identifier. + * + * The result set has the following columns: + * + * PROCEDURE_CAT + * PROCEDURE_SCHEM + * PROCEDURE_NAME + * COLUMN_NAME + * COLUMN_TYPE + * DATA_TYPE + * TYPE_NAME + * COLUMN_SIZE + * BUFFER_LENGTH + * DECIMAL_DIGITS + * NUM_PREC_RADIX + * NULLABLE + * REMARKS + * COLUMN_DEF + * SQL_DATA_TYPE + * SQL_DATETIME_SUB + * CHAR_OCTET_LENGTH + * ORDINAL_POSITION + * IS_NULLABLE + * + * Drivers can report additional columns. + * @throws UodbcException + * + */ +function odbc_procedurecolumns($odbc, string $catalog = null, string $schema = null, string $procedure = null, string $column = null) { error_clear_last(); - $result = \odbc_primarykeys($connection_id, $catalog, $schema, $table); + if ($column !== null) { + $result = \odbc_procedurecolumns($odbc, $catalog, $schema, $procedure, $column); + } elseif ($procedure !== null) { + $result = \odbc_procedurecolumns($odbc, $catalog, $schema, $procedure); + } elseif ($schema !== null) { + $result = \odbc_procedurecolumns($odbc, $catalog, $schema); + } elseif ($catalog !== null) { + $result = \odbc_procedurecolumns($odbc, $catalog); + } else { + $result = \odbc_procedurecolumns($odbc); + } + if ($result === false) { + throw UodbcException::createFromPhpError(); + } + return $result; +} + + +/** + * Lists all procedures in the requested range. + * + * @param $odbc The ODBC connection identifier, + * see odbc_connect for details. + * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). + * @param string $schema The schema ('owner' in ODBC 2 parlance). + * This parameter accepts the following search patterns: + * % to match zero or more characters, + * and _ to match a single character. + * @param string $procedure The name. + * This parameter accepts the following search patterns: + * % to match zero or more characters, + * and _ to match a single character. + * @return resource Returns an ODBC + * result identifier containing the information. + * + * The result set has the following columns: + * + * PROCEDURE_CAT + * PROCEDURE_SCHEM + * PROCEDURE_NAME + * NUM_INPUT_PARAMS + * NUM_OUTPUT_PARAMS + * NUM_RESULT_SETS + * REMARKS + * PROCEDURE_TYPE + * + * Drivers can report additional columns. + * @throws UodbcException + * + */ +function odbc_procedures($odbc, string $catalog = null, string $schema = null, string $procedure = null) +{ + error_clear_last(); + if ($procedure !== null) { + $result = \odbc_procedures($odbc, $catalog, $schema, $procedure); + } elseif ($schema !== null) { + $result = \odbc_procedures($odbc, $catalog, $schema); + } elseif ($catalog !== null) { + $result = \odbc_procedures($odbc, $catalog); + } else { + $result = \odbc_procedures($odbc); + } if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -681,20 +878,16 @@ function odbc_primarykeys($connection_id, string $catalog, string $schema, strin * This function is not supposed to be used in production environments; it is * merely meant for development purposes, to get a result set quickly rendered. * - * @param resource $result_id The result identifier. + * @param resource $statement The result identifier. * @param string $format Additional overall table formatting. * @return int Returns the number of rows in the result. * @throws UodbcException * */ -function odbc_result_all($result_id, string $format = null): int +function odbc_result_all($statement, string $format = ""): int { error_clear_last(); - if ($format !== null) { - $result = \odbc_result_all($result_id, $format); - } else { - $result = \odbc_result_all($result_id); - } + $result = \odbc_result_all($statement, $format); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -705,7 +898,7 @@ function odbc_result_all($result_id, string $format = null): int /** * Get result data * - * @param resource $result_id The ODBC resource. + * @param resource $statement The ODBC resource. * @param mixed $field The field name being retrieved. It can either be an integer containing * the column number of the field you want; or it can be a string * containing the name of the field. @@ -714,10 +907,10 @@ function odbc_result_all($result_id, string $format = null): int * @throws UodbcException * */ -function odbc_result($result_id, $field) +function odbc_result($statement, $field) { error_clear_last(); - $result = \odbc_result($result_id, $field); + $result = \odbc_result($statement, $field); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -728,15 +921,15 @@ function odbc_result($result_id, $field) /** * Rolls back all pending statements on the connection. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @throws UodbcException * */ -function odbc_rollback($connection_id): void +function odbc_rollback($odbc): void { error_clear_last(); - $result = \odbc_rollback($connection_id); + $result = \odbc_rollback($odbc); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -762,21 +955,21 @@ function odbc_rollback($connection_id): void * to use a commercial product, that's all that really * matters. * - * @param resource $id Is a connection id or result id on which to change the settings. + * @param resource $odbc Is a connection id or result id on which to change the settings. * For SQLSetConnectOption(), this is a connection id. * For SQLSetStmtOption(), this is a result id. - * @param int $function Is the ODBC function to use. The value should be + * @param int $which Is the ODBC function to use. The value should be * 1 for SQLSetConnectOption() and * 2 for SQLSetStmtOption(). * @param int $option The option to set. - * @param int $param The value for the given option. + * @param int $value The value for the given option. * @throws UodbcException * */ -function odbc_setoption($id, int $function, int $option, int $param): void +function odbc_setoption($odbc, int $which, int $option, int $value): void { error_clear_last(); - $result = \odbc_setoption($id, $function, $option, $param); + $result = \odbc_setoption($odbc, $which, $option, $value); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -788,7 +981,7 @@ function odbc_setoption($id, int $function, int $option, int $param): void * row in the table, or columns that are automatically updated when any * value in the row is updated by a transaction. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param int $type * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). @@ -816,10 +1009,10 @@ function odbc_setoption($id, int $function, int $option, int $param): void * @throws UodbcException * */ -function odbc_specialcolumns($connection_id, int $type, string $catalog, string $schema, string $table, int $scope, int $nullable) +function odbc_specialcolumns($odbc, int $type, string $catalog, string $schema, string $table, int $scope, int $nullable) { error_clear_last(); - $result = \odbc_specialcolumns($connection_id, $type, $catalog, $schema, $table, $scope, $nullable); + $result = \odbc_specialcolumns($odbc, $type, $catalog, $schema, $table, $scope, $nullable); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -830,11 +1023,11 @@ function odbc_specialcolumns($connection_id, int $type, string $catalog, string /** * Get statistics about a table and its indexes. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). - * @param string $table_name The table name. + * @param string $table The table name. * @param int $unique The type of the index. * One of SQL_INDEX_UNIQUE or SQL_INDEX_ALL. * @param int $accuracy One of SQL_ENSURE or SQL_QUICK. @@ -862,10 +1055,10 @@ function odbc_specialcolumns($connection_id, int $type, string $catalog, string * @throws UodbcException * */ -function odbc_statistics($connection_id, string $catalog, string $schema, string $table_name, int $unique, int $accuracy) +function odbc_statistics($odbc, string $catalog, string $schema, string $table, int $unique, int $accuracy) { error_clear_last(); - $result = \odbc_statistics($connection_id, $catalog, $schema, $table_name, $unique, $accuracy); + $result = \odbc_statistics($odbc, $catalog, $schema, $table, $unique, $accuracy); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -877,14 +1070,14 @@ function odbc_statistics($connection_id, string $catalog, string $schema, string * Lists tables in the requested range and the privileges associated * with each table. * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $name The name. + * @param string $table The name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. @@ -904,10 +1097,10 @@ function odbc_statistics($connection_id, string $catalog, string $schema, string * @throws UodbcException * */ -function odbc_tableprivileges($connection_id, string $catalog, string $schema, string $name) +function odbc_tableprivileges($odbc, string $catalog, string $schema, string $table) { error_clear_last(); - $result = \odbc_tableprivileges($connection_id, $catalog, $schema, $name); + $result = \odbc_tableprivileges($odbc, $catalog, $schema, $table); if ($result === false) { throw UodbcException::createFromPhpError(); } @@ -921,14 +1114,14 @@ function odbc_tableprivileges($connection_id, string $catalog, string $schema, s * To support enumeration of qualifiers, owners, and table types, * the following special semantics for the * catalog, schema, - * name, and + * table, and * table_type are available: * * * * If catalog is a single percent * character (%) and schema and - * name are empty strings, then the result + * table are empty strings, then the result * set contains a list of valid qualifiers for the data * source. (All columns except the TABLE_QUALIFIER column contain * NULLs.) @@ -938,7 +1131,7 @@ function odbc_tableprivileges($connection_id, string $catalog, string $schema, s * * If schema is a single percent character * (%) and catalog and - * name are empty strings, then the result + * table are empty strings, then the result * set contains a list of valid owners for the data source. (All * columns except the TABLE_OWNER column contain * NULLs.) @@ -948,7 +1141,7 @@ function odbc_tableprivileges($connection_id, string $catalog, string $schema, s * * If table_type is a single percent * character (%) and catalog, - * schema and name + * schema and table * are empty strings, then the result set contains a list of * valid table types for the data source. (All columns except the * TABLE_TYPE column contain NULLs.) @@ -956,14 +1149,14 @@ function odbc_tableprivileges($connection_id, string $catalog, string $schema, s * * * - * @param resource $connection_id The ODBC connection identifier, + * @param resource $odbc The ODBC connection identifier, * see odbc_connect for details. * @param string $catalog The catalog ('qualifier' in ODBC 2 parlance). * @param string $schema The schema ('owner' in ODBC 2 parlance). * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. - * @param string $name The name. + * @param string $table The name. * This parameter accepts the following search patterns: * % to match zero or more characters, * and _ to match a single character. @@ -988,19 +1181,19 @@ function odbc_tableprivileges($connection_id, string $catalog, string $schema, s * @throws UodbcException * */ -function odbc_tables($connection_id, string $catalog = null, string $schema = null, string $name = null, string $types = null) +function odbc_tables($odbc, string $catalog = null, string $schema = null, string $table = null, string $types = null) { error_clear_last(); if ($types !== null) { - $result = \odbc_tables($connection_id, $catalog, $schema, $name, $types); - } elseif ($name !== null) { - $result = \odbc_tables($connection_id, $catalog, $schema, $name); + $result = \odbc_tables($odbc, $catalog, $schema, $table, $types); + } elseif ($table !== null) { + $result = \odbc_tables($odbc, $catalog, $schema, $table); } elseif ($schema !== null) { - $result = \odbc_tables($connection_id, $catalog, $schema); + $result = \odbc_tables($odbc, $catalog, $schema); } elseif ($catalog !== null) { - $result = \odbc_tables($connection_id, $catalog); + $result = \odbc_tables($odbc, $catalog); } else { - $result = \odbc_tables($connection_id); + $result = \odbc_tables($odbc); } if ($result === false) { throw UodbcException::createFromPhpError(); diff --git a/generated/url.php b/generated/url.php index 56c08b55..ff133072 100644 --- a/generated/url.php +++ b/generated/url.php @@ -5,9 +5,9 @@ use Safe\Exceptions\UrlException; /** - * Decodes a base64 encoded data. + * Decodes a base64 encoded string. * - * @param string $data The encoded data. + * @param string $string The encoded data. * @param bool $strict If the strict parameter is set to TRUE * then the base64_decode function will return * FALSE if the input contains character from outside the base64 @@ -17,10 +17,10 @@ * @throws UrlException * */ -function base64_decode(string $data, bool $strict = false): string +function base64_decode(string $string, bool $strict = false): string { error_clear_last(); - $result = \base64_decode($data, $strict); + $result = \base64_decode($string, $strict); if ($result === false) { throw UrlException::createFromPhpError(); } @@ -57,6 +57,55 @@ function get_headers(string $url, int $format = 0, $context = null): array } +/** + * Opens filename and parses it line by line for + * <meta> tags in the file. The parsing stops at + * </head>. + * + * @param string $filename The path to the HTML file, as a string. This can be a local file or an + * URL. + * + * + * What get_meta_tags parses + * + * + * + * + * + * + * ]]> + * + * + * (pay attention to line endings - PHP uses a native function to + * parse the input, so a Mac file won't work on Unix). + * @param bool $use_include_path Setting use_include_path to TRUE will result + * in PHP trying to open the file along the standard include path as per + * the include_path directive. + * This is used for local files, not URLs. + * @return array Returns an array with all the parsed meta tags. + * + * The value of the name property becomes the key, the value of the content + * property becomes the value of the returned array, so you can easily use + * standard array functions to traverse it or access single values. + * Special characters in the value of the name property are substituted with + * '_', the rest is converted to lower case. If two meta tags have the same + * name, only the last one is returned. + * + * Returns FALSE on failure. + * @throws UrlException + * + */ +function get_meta_tags(string $filename, bool $use_include_path = false): array +{ + error_clear_last(); + $result = \get_meta_tags($filename, $use_include_path); + if ($result === false) { + throw UrlException::createFromPhpError(); + } + return $result; +} + + /** * This function parses a URL and returns an associative array containing any * of the various components of the URL that are present. @@ -76,7 +125,7 @@ function get_headers(string $url, int $format = 0, $context = null): array * or PHP_URL_FRAGMENT to retrieve just a specific * URL component as a string (except when * PHP_URL_PORT is given, in which case the return - * value will be an integer). + * value will be an int). * @return mixed On seriously malformed URLs, parse_url. * * If the component parameter is omitted, an @@ -127,7 +176,7 @@ function get_headers(string $url, int $format = 0, $context = null): array * * If the component parameter is specified, * parse_url returns a string (or an - * integer, in the case of PHP_URL_PORT) + * int, in the case of PHP_URL_PORT) * instead of an array. If the requested component doesn't exist * within the given URL, NULL will be returned. * @throws UrlException diff --git a/generated/xml.php b/generated/xml.php index 4f9f6606..a911441b 100644 --- a/generated/xml.php +++ b/generated/xml.php @@ -6,8 +6,8 @@ /** * xml_parser_create_ns creates a new XML parser - * with XML namespace support and returns a resource handle referencing - * it to be used by the other XML functions. + * with XML namespace support and returns a XMLParser + * instance to be used by the other XML functions. * * @param string $encoding The input encoding is automatically detected, so that the * encoding parameter specifies only the output @@ -18,7 +18,7 @@ * @param string $separator With a namespace aware parser tag parameters passed to the various * handler functions will consist of namespace and tag name separated by * the string specified in separator. - * @return resource Returns a resource handle for the new XML parser. + * @return resource Returns a new XMLParser instance. * @throws XmlException * */ @@ -41,7 +41,7 @@ function xml_parser_create_ns(string $encoding = null, string $separator = ":") /** * xml_parser_create creates a new XML parser - * and returns a resource handle referencing it to be used by the + * and returns a XMLParser instance to be used by the * other XML functions. * * @param string $encoding The optional encoding specifies the character @@ -55,7 +55,7 @@ function xml_parser_create_ns(string $encoding = null, string $separator = ":") * ISO-8859-1, while in PHP 5.0.2 and upper is UTF-8. The supported * encodings are ISO-8859-1, UTF-8 and * US-ASCII. - * @return resource Returns a resource handle for the new XML parser. + * @return resource Returns a new XMLParser instance. * @throws XmlException * */ @@ -74,6 +74,23 @@ function xml_parser_create(string $encoding = null) } +/** + * Frees the given XML parser. + * + * @param resource $parser + * @throws XmlException + * + */ +function xml_parser_free($parser): void +{ + error_clear_last(); + $result = \xml_parser_free($parser); + if ($result === false) { + throw XmlException::createFromPhpError(); + } +} + + /** * This function allows to use parser inside * object. All callback functions could be set with @@ -85,7 +102,7 @@ function xml_parser_create(string $encoding = null) * @throws XmlException * */ -function xml_set_object($parser, object &$object): void +function xml_set_object($parser, object $object): void { error_clear_last(); $result = \xml_set_object($parser, $object); diff --git a/generated/yaml.php b/generated/yaml.php index 38daaf75..fd297aad 100644 --- a/generated/yaml.php +++ b/generated/yaml.php @@ -26,7 +26,11 @@ function yaml_parse_file(string $filename, int $pos = 0, ?int &$ndocs = null, array $callbacks = null) { error_clear_last(); - $result = \yaml_parse_file($filename, $pos, $ndocs, $callbacks); + if ($callbacks !== null) { + $result = \yaml_parse_file($filename, $pos, $ndocs, $callbacks); + } else { + $result = \yaml_parse_file($filename, $pos, $ndocs); + } if ($result === false) { throw YamlException::createFromPhpError(); } @@ -59,7 +63,11 @@ function yaml_parse_file(string $filename, int $pos = 0, ?int &$ndocs = null, ar function yaml_parse_url(string $url, int $pos = 0, ?int &$ndocs = null, array $callbacks = null) { error_clear_last(); - $result = \yaml_parse_url($url, $pos, $ndocs, $callbacks); + if ($callbacks !== null) { + $result = \yaml_parse_url($url, $pos, $ndocs, $callbacks); + } else { + $result = \yaml_parse_url($url, $pos, $ndocs); + } if ($result === false) { throw YamlException::createFromPhpError(); } @@ -89,7 +97,11 @@ function yaml_parse_url(string $url, int $pos = 0, ?int &$ndocs = null, array $c function yaml_parse(string $input, int $pos = 0, ?int &$ndocs = null, array $callbacks = null) { error_clear_last(); - $result = \yaml_parse($input, $pos, $ndocs, $callbacks); + if ($callbacks !== null) { + $result = \yaml_parse($input, $pos, $ndocs, $callbacks); + } else { + $result = \yaml_parse($input, $pos, $ndocs); + } if ($result === false) { throw YamlException::createFromPhpError(); } diff --git a/generated/zlib.php b/generated/zlib.php index 4dc3ca94..ef813816 100644 --- a/generated/zlib.php +++ b/generated/zlib.php @@ -71,7 +71,11 @@ function deflate_add($context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): * window * * - * The zlib window size (logarithmic) in range 8..15; defaults to 15. + * The zlib window size (logarithmic) in range 8..15; + * defaults to 15. + * zlib changes a window size of 8 to 9, + * and as of zlib 1.2.8 fails with a warning, if a window size of 8 + * is requested for ZLIB_ENCODING_RAW or ZLIB_ENCODING_GZIP. * * * @@ -101,7 +105,11 @@ function deflate_add($context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): * * The compression memory level in range 1..9; defaults to 8. * - * The zlib window size (logarithmic) in range 8..15; defaults to 15. + * The zlib window size (logarithmic) in range 8..15; + * defaults to 15. + * zlib changes a window size of 8 to 9, + * and as of zlib 1.2.8 fails with a warning, if a window size of 8 + * is requested for ZLIB_ENCODING_RAW or ZLIB_ENCODING_GZIP. * * One of ZLIB_FILTERED, * ZLIB_HUFFMAN_ONLY, ZLIB_RLE, @@ -115,7 +123,7 @@ function deflate_add($context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): * @throws ZlibException * */ -function deflate_init(int $encoding, array $options = null) +function deflate_init(int $encoding, array $options = []) { error_clear_last(); $result = \deflate_init($encoding, $options); @@ -129,15 +137,15 @@ function deflate_init(int $encoding, array $options = null) /** * Closes the given gz-file pointer. * - * @param resource $zp The gz-file pointer. It must be valid, and must point to a file + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file * successfully opened by gzopen. * @throws ZlibException * */ -function gzclose($zp): void +function gzclose($stream): void { error_clear_last(); - $result = \gzclose($zp); + $result = \gzclose($stream); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -178,19 +186,15 @@ function gzcompress(string $data, int $level = -1, int $encoding = ZLIB_ENCODING * data. * * @param string $data The data to decode, encoded by gzencode. - * @param int $length The maximum length of data to decode. + * @param int $max_length The maximum length of data to decode. * @return string The decoded string. * @throws ZlibException * */ -function gzdecode(string $data, int $length = null): string +function gzdecode(string $data, int $max_length = 0): string { error_clear_last(); - if ($length !== null) { - $result = \gzdecode($data, $length); - } else { - $result = \gzdecode($data); - } + $result = \gzdecode($data, $max_length); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -239,7 +243,7 @@ function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_ * @param int $level The level of compression. Can be given as 0 for no compression up to 9 * for maximum compression. If not given, the default compression level will * be the default compression level of the zlib library. - * @param int $encoding_mode The encoding mode. Can be FORCE_GZIP (the default) + * @param int $encoding The encoding mode. Can be FORCE_GZIP (the default) * or FORCE_DEFLATE. * * Prior to PHP 5.4.0, using FORCE_DEFLATE results in @@ -253,10 +257,32 @@ function gzdeflate(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_ * @throws ZlibException * */ -function gzencode(string $data, int $level = -1, int $encoding_mode = FORCE_GZIP): string +function gzencode(string $data, int $level = -1, int $encoding = ZLIB_ENCODING_GZIP): string +{ + error_clear_last(); + $result = \gzencode($data, $level, $encoding); + if ($result === false) { + throw ZlibException::createFromPhpError(); + } + return $result; +} + + +/** + * This function is identical to readgzfile, except that + * it returns the file in an array. + * + * @param string $filename The file name. + * @param int $use_include_path You can set this optional parameter to 1, if you + * want to search for the file in the include_path too. + * @return array An array containing the file, one line per cell, empty lines included, and with newlines still attached. + * @throws ZlibException + * + */ +function gzfile(string $filename, int $use_include_path = 0): array { error_clear_last(); - $result = \gzencode($data, $level, $encoding_mode); + $result = \gzfile($filename, $use_include_path); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -269,21 +295,17 @@ function gzencode(string $data, int $level = -1, int $encoding_mode = FORCE_GZIP * file pointer. Reading ends when length - 1 bytes have been read, on a * newline, or on EOF (whichever comes first). * - * @param resource $zp The gz-file pointer. It must be valid, and must point to a file + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file * successfully opened by gzopen. * @param int $length The length of data to get. * @return string The uncompressed string. * @throws ZlibException * */ -function gzgets($zp, int $length = null): string +function gzgets($stream, int $length = 1024): string { error_clear_last(); - if ($length !== null) { - $result = \gzgets($zp, $length); - } else { - $result = \gzgets($zp); - } + $result = \gzgets($stream, $length); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -324,19 +346,19 @@ function gzgetss($zp, int $length, string $allowable_tags = null): string * This function inflates a deflated string. * * @param string $data The data compressed by gzdeflate. - * @param int $length The maximum length of data to decode. + * @param int $max_length The maximum length of data to decode. * @return string The original uncompressed data. * * The function will return an error if the uncompressed data is more than * 32768 times the length of the compressed input data - * or more than the optional parameter length. + * or more than the optional parameter max_length. * @throws ZlibException * */ -function gzinflate(string $data, int $length = 0): string +function gzinflate(string $data, int $max_length = 0): string { error_clear_last(); - $result = \gzinflate($data, $length); + $result = \gzinflate($data, $max_length); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -348,17 +370,41 @@ function gzinflate(string $data, int $length = 0): string * Reads to EOF on the given gz-file pointer from the current position and * writes the (uncompressed) results to standard output. * - * @param resource $zp The gz-file pointer. It must be valid, and must point to a file + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file * successfully opened by gzopen. * @return int The number of uncompressed characters read from gz * and passed through to the input. * @throws ZlibException * */ -function gzpassthru($zp): int +function gzpassthru($stream): int { error_clear_last(); - $result = \gzpassthru($zp); + $result = \gzpassthru($stream); + if ($result === false) { + throw ZlibException::createFromPhpError(); + } + return $result; +} + + +/** + * gzread reads up to length bytes + * from the given gz-file pointer. Reading stops when + * length (uncompressed) bytes have been read + * or EOF is reached, whichever comes first. + * + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file + * successfully opened by gzopen. + * @param int $length The number of bytes to read. + * @return string The data that have been read. + * @throws ZlibException + * + */ +function gzread($stream, int $length): string +{ + error_clear_last(); + $result = \gzread($stream, $length); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -370,15 +416,15 @@ function gzpassthru($zp): int * Sets the file position indicator of the given gz-file pointer to the * beginning of the file stream. * - * @param resource $zp The gz-file pointer. It must be valid, and must point to a file + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file * successfully opened by gzopen. * @throws ZlibException * */ -function gzrewind($zp): void +function gzrewind($stream): void { error_clear_last(); - $result = \gzrewind($zp); + $result = \gzrewind($stream); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -389,19 +435,19 @@ function gzrewind($zp): void * This function uncompress a compressed string. * * @param string $data The data compressed by gzcompress. - * @param int $length The maximum length of data to decode. + * @param int $max_length The maximum length of data to decode. * @return string The original uncompressed data. * * The function will return an error if the uncompressed data is more than * 32768 times the length of the compressed input data - * or more than the optional parameter length. + * or more than the optional parameter max_length. * @throws ZlibException * */ -function gzuncompress(string $data, int $length = 0): string +function gzuncompress(string $data, int $max_length = 0): string { error_clear_last(); - $result = \gzuncompress($data, $length); + $result = \gzuncompress($data, $max_length); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -410,17 +456,53 @@ function gzuncompress(string $data, int $length = 0): string /** + * gzwrite writes the contents of + * data to the given gz-file. * + * @param resource $stream The gz-file pointer. It must be valid, and must point to a file + * successfully opened by gzopen. + * @param string $data The string to write. + * @param int $length The number of uncompressed bytes to write. If supplied, writing will + * stop after length (uncompressed) bytes have been + * written or the end of data is reached, + * whichever comes first. + * + * Note that if the length argument is given, + * then the magic_quotes_runtime + * configuration option will be ignored and no slashes will be + * stripped from data. + * @return int Returns the number of (uncompressed) bytes written to the given gz-file + * stream. + * @throws ZlibException * - * @param resource $resource + */ +function gzwrite($stream, string $data, int $length = null): int +{ + error_clear_last(); + if ($length !== null) { + $result = \gzwrite($stream, $data, $length); + } else { + $result = \gzwrite($stream, $data); + } + if ($result === false) { + throw ZlibException::createFromPhpError(); + } + return $result; +} + + +/** + * + * + * @param resource $context * @return int Returns number of bytes read so far. * @throws ZlibException * */ -function inflate_get_read_len($resource): int +function inflate_get_read_len($context): int { error_clear_last(); - $result = \inflate_get_read_len($resource); + $result = \inflate_get_read_len($context); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -431,15 +513,15 @@ function inflate_get_read_len($resource): int /** * Usually returns either ZLIB_OK or ZLIB_STREAM_END. * - * @param resource $resource + * @param resource $context * @return int Returns decompression status. * @throws ZlibException * */ -function inflate_get_status($resource): int +function inflate_get_status($context): int { error_clear_last(); - $result = \inflate_get_status($resource); + $result = \inflate_get_status($context); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -454,7 +536,7 @@ function inflate_get_status($resource): int * available. * * @param resource $context A context created with inflate_init. - * @param string $encoded_data A chunk of compressed data. + * @param string $data A chunk of compressed data. * @param int $flush_mode One of ZLIB_BLOCK, * ZLIB_NO_FLUSH, * ZLIB_PARTIAL_FLUSH, @@ -468,10 +550,10 @@ function inflate_get_status($resource): int * @throws ZlibException * */ -function inflate_add($context, string $encoded_data, int $flush_mode = ZLIB_SYNC_FLUSH): string +function inflate_add($context, string $data, int $flush_mode = ZLIB_SYNC_FLUSH): string { error_clear_last(); - $result = \inflate_add($context, $encoded_data, $flush_mode); + $result = \inflate_add($context, $data, $flush_mode); if ($result === false) { throw ZlibException::createFromPhpError(); } @@ -550,7 +632,7 @@ function inflate_add($context, string $encoded_data, int $flush_mode = ZLIB_SYNC * @throws ZlibException * */ -function inflate_init(int $encoding, array $options = null) +function inflate_init(int $encoding, array $options = []) { error_clear_last(); $result = \inflate_init($encoding, $options); @@ -591,19 +673,15 @@ function readgzfile(string $filename, int $use_include_path = 0): int * Uncompress any raw/gzip/zlib encoded data. * * @param string $data - * @param int $max_decoded_len + * @param int $max_length * @return string Returns the uncompressed data. * @throws ZlibException * */ -function zlib_decode(string $data, int $max_decoded_len = null): string +function zlib_decode(string $data, int $max_length = 0): string { error_clear_last(); - if ($max_decoded_len !== null) { - $result = \zlib_decode($data, $max_decoded_len); - } else { - $result = \zlib_decode($data); - } + $result = \zlib_decode($data, $max_length); if ($result === false) { throw ZlibException::createFromPhpError(); } diff --git a/generator/composer.lock b/generator/composer.lock index de89582c..8e1bfb58 100644 --- a/generator/composer.lock +++ b/generator/composer.lock @@ -53,26 +53,31 @@ "container-interop", "psr" ], + "support": { + "issues": "https://github.com/php-fig/container/issues", + "source": "https://github.com/php-fig/container/tree/master" + }, "time": "2017-02-14T16:28:37+00:00" }, { "name": "symfony/console", - "version": "v4.4.1", + "version": "v4.4.18", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201" + "reference": "12e071278e396cc3e1c149857337e9e192deca0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/f0aea3df20d15635b3cb9730ca5eea1c65b7f201", - "reference": "f0aea3df20d15635b3cb9730ca5eea1c65b7f201", + "url": "https://api.github.com/repos/symfony/console/zipball/12e071278e396cc3e1c149857337e9e192deca0b", + "reference": "12e071278e396cc3e1c149857337e9e192deca0b", "shasum": "" }, "require": { - "php": "^7.1.3", + "php": ">=7.1.3", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-php73": "^1.8", + "symfony/polyfill-php80": "^1.15", "symfony/service-contracts": "^1.1|^2" }, "conflict": { @@ -100,11 +105,6 @@ "symfony/process": "" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Console\\": "" @@ -129,31 +129,43 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:06:17+00:00" + "support": { + "source": "https://github.com/symfony/console/tree/v4.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-18T07:41:31+00:00" }, { "name": "symfony/finder", - "version": "v4.4.1", + "version": "v4.4.18", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e" + "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/finder/zipball/ce8743441da64c41e2a667b8eb66070444ed911e", - "reference": "ce8743441da64c41e2a667b8eb66070444ed911e", + "url": "https://api.github.com/repos/symfony/finder/zipball/ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", + "reference": "ebd0965f2dc2d4e0f11487c16fbb041e50b5c09b", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1.3" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.4-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Finder\\": "" @@ -178,24 +190,41 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2019-11-17T21:56:56+00:00" + "support": { + "source": "https://github.com/symfony/finder/tree/v4.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-08T16:59:59+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.13.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f" + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7b4aab9743c30be783b73de055d24a39cf4b954f", - "reference": "7b4aab9743c30be783b73de055d24a39cf4b954f", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/39d483bdf39be819deabf04ec872eb0b2410b531", + "reference": "39d483bdf39be819deabf04ec872eb0b2410b531", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-mbstring": "For best performance" @@ -203,7 +232,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -237,29 +270,50 @@ "portable", "shim" ], - "time": "2019-11-27T14:18:11+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/polyfill-php73", - "version": "v1.13.1", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-php73.git", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f" + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/4b0e2222c55a25b4541305a053013d5647d3a25f", - "reference": "4b0e2222c55a25b4541305a053013d5647d3a25f", + "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/8ff431c517be11c78c48a39a66d37431e26a6bed", + "reference": "8ff431c517be11c78c48a39a66d37431e26a6bed", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.13-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -295,31 +349,126 @@ "portable", "shim" ], - "time": "2019-11-27T16:25:15+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-php73/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" }, { - "name": "symfony/process", - "version": "v4.4.1", + "name": "symfony/polyfill-php80", + "version": "v1.20.0", "source": { "type": "git", - "url": "https://github.com/symfony/process.git", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726" + "url": "https://github.com/symfony/polyfill-php80.git", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/51c0135ef3f44c5803b33dc60e96bf4f77752726", - "reference": "51c0135ef3f44c5803b33dc60e96bf4f77752726", + "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/e70aa8b064c5b72d3df2abd5ab1e90464ad009de", + "reference": "e70aa8b064c5b72d3df2abd5ab1e90464ad009de", "shasum": "" }, "require": { - "php": "^7.1.3" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.4-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php80\\": "" + }, + "files": [ + "bootstrap.php" + ], + "classmap": [ + "Resources/stubs" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Ion Bazan", + "email": "ion.bazan@gmail.com" + }, + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "support": { + "source": "https://github.com/symfony/polyfill-php80/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" + }, + { + "name": "symfony/process", + "version": "v4.4.18", + "source": { + "type": "git", + "url": "https://github.com/symfony/process.git", + "reference": "075316ff72233ce3d04a9743414292e834f2cb4a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/process/zipball/075316ff72233ce3d04a9743414292e834f2cb4a", + "reference": "075316ff72233ce3d04a9743414292e834f2cb4a", + "shasum": "" + }, + "require": { + "php": ">=7.1.3" + }, + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Process\\": "" @@ -344,24 +493,41 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2019-11-28T13:33:56+00:00" + "support": { + "source": "https://github.com/symfony/process/tree/v4.4.18" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-08T16:59:59+00:00" }, { "name": "symfony/service-contracts", - "version": "v2.0.1", + "version": "v2.2.0", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "144c5e51266b281231e947b51223ba14acf1a749" + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/144c5e51266b281231e947b51223ba14acf1a749", - "reference": "144c5e51266b281231e947b51223ba14acf1a749", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/d15da7ba4957ffb8f1747218be9e1a121fd298a1", + "reference": "d15da7ba4957ffb8f1747218be9e1a121fd298a1", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "psr/container": "^1.0" }, "suggest": { @@ -370,7 +536,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, "autoload": { @@ -402,42 +572,54 @@ "interoperability", "standards" ], - "time": "2019-11-18T17:27:11+00:00" + "support": { + "source": "https://github.com/symfony/service-contracts/tree/master" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.3.0", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1" + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/ae466f726242e637cebdd526a7d991b9433bacf1", - "reference": "ae466f726242e637cebdd526a7d991b9433bacf1", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/d56bf6102915de5702778fe20f2de3b2fe570b5b", + "reference": "d56bf6102915de5702778fe20f2de3b2fe570b5b", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "require-dev": { - "doctrine/coding-standard": "^6.0", + "doctrine/coding-standard": "^8.0", "ext-pdo": "*", "ext-phar": "*", - "phpbench/phpbench": "^0.13", - "phpstan/phpstan-phpunit": "^0.11", - "phpstan/phpstan-shim": "^0.11", - "phpunit/phpunit": "^7.0" + "phpbench/phpbench": "^0.13 || 1.0.0-alpha2", + "phpstan/phpstan": "^0.12", + "phpstan/phpstan-phpunit": "^0.12", + "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, "autoload": { "psr-4": { "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" @@ -451,7 +633,7 @@ { "name": "Marco Pivetta", "email": "ocramius@gmail.com", - "homepage": "http://ocramius.github.com/" + "homepage": "https://ocramius.github.io/" } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", @@ -460,41 +642,65 @@ "constructor", "instantiate" ], - "time": "2019-10-21T16:45:58+00:00" + "support": { + "issues": "https://github.com/doctrine/instantiator/issues", + "source": "https://github.com/doctrine/instantiator/tree/1.4.0" + }, + "funding": [ + { + "url": "https://www.doctrine-project.org/sponsorship.html", + "type": "custom" + }, + { + "url": "https://www.patreon.com/phpdoctrine", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/doctrine%2Finstantiator", + "type": "tidelift" + } + ], + "time": "2020-11-10T18:47:58+00:00" }, { "name": "guzzlehttp/guzzle", - "version": "6.5.0", + "version": "7.2.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5" + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", - "reference": "dbc2bc3a293ed6b1ae08a3651e2bfd213d19b6a5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", + "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", "shasum": "" }, "require": { "ext-json": "*", - "guzzlehttp/promises": "^1.0", - "guzzlehttp/psr7": "^1.6.1", - "php": ">=5.5" + "guzzlehttp/promises": "^1.4", + "guzzlehttp/psr7": "^1.7", + "php": "^7.2.5 || ^8.0", + "psr/http-client": "^1.0" + }, + "provide": { + "psr/http-client-implementation": "1.0" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.4 || ^7.0", + "php-http/client-integration-tests": "^3.0", + "phpunit/phpunit": "^8.5.5 || ^9.3.5", "psr/log": "^1.1" }, "suggest": { + "ext-curl": "Required for CURL handler support", "ext-intl": "Required for Internationalized Domain Name (IDN) support", "psr/log": "Required for using the Log middleware" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "6.5-dev" + "dev-master": "7.1-dev" } }, "autoload": { @@ -514,6 +720,11 @@ "name": "Michael Dowling", "email": "mtdowling@gmail.com", "homepage": "https://github.com/mtdowling" + }, + { + "name": "Márk Sági-Kazár", + "email": "mark.sagikazar@gmail.com", + "homepage": "https://sagikazarmark.hu" } ], "description": "Guzzle is a PHP HTTP client library", @@ -524,30 +735,54 @@ "framework", "http", "http client", + "psr-18", + "psr-7", "rest", "web service" ], - "time": "2019-12-07T18:20:45+00:00" + "support": { + "issues": "https://github.com/guzzle/guzzle/issues", + "source": "https://github.com/guzzle/guzzle/tree/7.2.0" + }, + "funding": [ + { + "url": "https://github.com/GrahamCampbell", + "type": "github" + }, + { + "url": "https://github.com/Nyholm", + "type": "github" + }, + { + "url": "https://github.com/alexeyshockov", + "type": "github" + }, + { + "url": "https://github.com/gmponos", + "type": "github" + } + ], + "time": "2020-10-10T11:47:56+00:00" }, { "name": "guzzlehttp/promises", - "version": "v1.3.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/guzzle/promises.git", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646" + "reference": "60d379c243457e073cff02bc323a2a86cb355631" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646", - "reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646", + "url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631", + "reference": "60d379c243457e073cff02bc323a2a86cb355631", "shasum": "" }, "require": { - "php": ">=5.5.0" + "php": ">=5.5" }, "require-dev": { - "phpunit/phpunit": "^4.0" + "symfony/phpunit-bridge": "^4.4 || ^5.1" }, "type": "library", "extra": { @@ -578,20 +813,24 @@ "keywords": [ "promise" ], - "time": "2016-12-20T10:07:11+00:00" + "support": { + "issues": "https://github.com/guzzle/promises/issues", + "source": "https://github.com/guzzle/promises/tree/1.4.0" + }, + "time": "2020-09-30T07:37:28+00:00" }, { "name": "guzzlehttp/psr7", - "version": "1.6.1", + "version": "1.7.0", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a" + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a", - "reference": "239400de7a173fe9901b9ac7c06497751f00727a", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", + "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", "shasum": "" }, "require": { @@ -604,15 +843,15 @@ }, "require-dev": { "ext-zlib": "*", - "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8" + "phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10" }, "suggest": { - "zendframework/zend-httphandlerrunner": "Emit PSR-7 responses" + "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.7-dev" } }, "autoload": { @@ -649,24 +888,28 @@ "uri", "url" ], - "time": "2019-07-01T23:21:34+00:00" + "support": { + "issues": "https://github.com/guzzle/psr7/issues", + "source": "https://github.com/guzzle/psr7/tree/1.7.0" + }, + "time": "2020-09-30T07:37:11+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.9.5", + "version": "1.10.2", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef" + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/b2c28789e80a97badd14145fda39b545d83ca3ef", - "reference": "b2c28789e80a97badd14145fda39b545d83ca3ef", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/776f831124e9c62e1a2c601ecc52e776d8bb7220", + "reference": "776f831124e9c62e1a2c601ecc52e776d8bb7220", "shasum": "" }, "require": { - "php": "^7.1" + "php": "^7.1 || ^8.0" }, "replace": { "myclabs/deep-copy": "self.version" @@ -697,84 +940,43 @@ "object", "object graph" ], - "time": "2020-01-17T21:11:47+00:00" - }, - { - "name": "nikic/php-parser", - "version": "v4.3.0", - "source": { - "type": "git", - "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "reference": "9a9981c347c5c49d6dfe5cf826bb882b824080dc", - "shasum": "" - }, - "require": { - "ext-tokenizer": "*", - "php": ">=7.0" + "support": { + "issues": "https://github.com/myclabs/DeepCopy/issues", + "source": "https://github.com/myclabs/DeepCopy/tree/1.10.2" }, - "require-dev": { - "ircmaxell/php-yacc": "0.0.5", - "phpunit/phpunit": "^6.5 || ^7.0 || ^8.0" - }, - "bin": [ - "bin/php-parse" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "4.3-dev" - } - }, - "autoload": { - "psr-4": { - "PhpParser\\": "lib/PhpParser" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ + "funding": [ { - "name": "Nikita Popov" + "url": "https://tidelift.com/funding/github/packagist/myclabs/deep-copy", + "type": "tidelift" } ], - "description": "A PHP parser written in PHP", - "keywords": [ - "parser", - "php" - ], - "time": "2019-11-08T13:50:10+00:00" + "time": "2020-11-13T09:40:50+00:00" }, { "name": "phar-io/manifest", - "version": "1.0.3", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/phar-io/manifest.git", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", - "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", + "reference": "85265efd3af7ba3ca4b2a2c34dbfc5788dd29133", "shasum": "" }, "require": { "ext-dom": "*", "ext-phar": "*", - "phar-io/version": "^2.0", - "php": "^5.6 || ^7.0" + "ext-xmlwriter": "*", + "phar-io/version": "^3.0.1", + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -804,24 +1006,28 @@ } ], "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", - "time": "2018-07-08T19:23:20+00:00" + "support": { + "issues": "https://github.com/phar-io/manifest/issues", + "source": "https://github.com/phar-io/manifest/tree/master" + }, + "time": "2020-06-27T14:33:11+00:00" }, { "name": "phar-io/version", - "version": "2.0.1", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/phar-io/version.git", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", - "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "url": "https://api.github.com/repos/phar-io/version/zipball/e4782611070e50613683d2b9a57730e9a3ba5451", + "reference": "e4782611070e50613683d2b9a57730e9a3ba5451", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -851,27 +1057,31 @@ } ], "description": "Library for handling version information and constraints", - "time": "2018-07-08T19:19:57+00:00" + "support": { + "issues": "https://github.com/phar-io/version/issues", + "source": "https://github.com/phar-io/version/tree/3.0.4" + }, + "time": "2020-12-13T23:18:30+00:00" }, { "name": "php-coveralls/php-coveralls", - "version": "v2.2.0", + "version": "v2.4.3", "source": { "type": "git", "url": "https://github.com/php-coveralls/php-coveralls.git", - "reference": "3e6420fa666ef7bae5e750ddeac903153e193bae" + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/3e6420fa666ef7bae5e750ddeac903153e193bae", - "reference": "3e6420fa666ef7bae5e750ddeac903153e193bae", + "url": "https://api.github.com/repos/php-coveralls/php-coveralls/zipball/909381bd40a17ae6e9076051f0d73293c1c091af", + "reference": "909381bd40a17ae6e9076051f0d73293c1c091af", "shasum": "" }, "require": { "ext-json": "*", "ext-simplexml": "*", - "guzzlehttp/guzzle": "^6.0", - "php": "^5.5 || ^7.0", + "guzzlehttp/guzzle": "^6.0 || ^7.0", + "php": "^5.5 || ^7.0 || ^8.0", "psr/log": "^1.0", "symfony/config": "^2.1 || ^3.0 || ^4.0 || ^5.0", "symfony/console": "^2.1 || ^3.0 || ^4.0 || ^5.0", @@ -879,7 +1089,8 @@ "symfony/yaml": "^2.0.5 || ^3.0 || ^4.0 || ^5.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0" + "phpunit/phpunit": "^4.8.35 || ^5.4.3 || ^6.0 || ^7.0 || ^8.0 || ^9.0", + "sanmai/phpunit-legacy-adapter": "^6.1 || ^8.0" }, "suggest": { "symfony/http-kernel": "Allows Symfony integration" @@ -888,11 +1099,6 @@ "bin/php-coveralls" ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.2-dev" - } - }, "autoload": { "psr-4": { "PhpCoveralls\\": "src/" @@ -934,32 +1140,33 @@ "github", "test" ], - "time": "2019-11-20T16:29:20+00:00" + "support": { + "issues": "https://github.com/php-coveralls/php-coveralls/issues", + "source": "https://github.com/php-coveralls/php-coveralls/tree/v2.4.3" + }, + "time": "2020-12-24T09:17:03+00:00" }, { "name": "phpdocumentor/reflection-common", - "version": "2.0.0", + "version": "2.2.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionCommon.git", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a" + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/63a995caa1ca9e5590304cd845c15ad6d482a62a", - "reference": "63a995caa1ca9e5590304cd845c15ad6d482a62a", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/1d01c49d4ed62f25aa84a747ad35d5a16924662b", + "reference": "1d01c49d4ed62f25aa84a747ad35d5a16924662b", "shasum": "" }, "require": { - "php": ">=7.1" - }, - "require-dev": { - "phpunit/phpunit": "~6" + "php": "^7.2 || ^8.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-2.x": "2.x-dev" } }, "autoload": { @@ -986,32 +1193,35 @@ "reflection", "static analysis" ], - "time": "2018-08-07T13:53:10+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionCommon/issues", + "source": "https://github.com/phpDocumentor/ReflectionCommon/tree/2.x" + }, + "time": "2020-06-27T09:03:43+00:00" }, { "name": "phpdocumentor/reflection-docblock", - "version": "5.0.0", + "version": "5.2.2", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f" + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/a48807183a4b819072f26e347bbd0b5199a9d15f", - "reference": "a48807183a4b819072f26e347bbd0b5199a9d15f", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/069a785b2141f5bcf49f3e353548dc1cce6df556", + "reference": "069a785b2141f5bcf49f3e353548dc1cce6df556", "shasum": "" }, "require": { - "ext-filter": "^7.1", - "php": "^7.2", - "phpdocumentor/reflection-common": "^2.0", - "phpdocumentor/type-resolver": "^1.0", - "webmozart/assert": "^1" + "ext-filter": "*", + "php": "^7.2 || ^8.0", + "phpdocumentor/reflection-common": "^2.2", + "phpdocumentor/type-resolver": "^1.3", + "webmozart/assert": "^1.9.1" }, "require-dev": { - "doctrine/instantiator": "^1", - "mockery/mockery": "^1" + "mockery/mockery": "~1.3.2" }, "type": "library", "extra": { @@ -1039,35 +1249,37 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2020-02-09T09:16:15+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/ReflectionDocBlock/issues", + "source": "https://github.com/phpDocumentor/ReflectionDocBlock/tree/master" + }, + "time": "2020-09-03T19:13:55+00:00" }, { "name": "phpdocumentor/type-resolver", - "version": "1.0.1", + "version": "1.4.0", "source": { "type": "git", "url": "https://github.com/phpDocumentor/TypeResolver.git", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9" + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", - "reference": "2e32a6d48972b2c1976ed5d8967145b6cec4a4a9", + "url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", + "reference": "6a467b8989322d92aa1c8bf2bebcc6e5c2ba55c0", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.2 || ^8.0", "phpdocumentor/reflection-common": "^2.0" }, "require-dev": { - "ext-tokenizer": "^7.1", - "mockery/mockery": "~1", - "phpunit/phpunit": "^7.0" + "ext-tokenizer": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-1.x": "1.x-dev" } }, "autoload": { @@ -1086,37 +1298,41 @@ } ], "description": "A PSR-5 based resolver of Class names, Types and Structural Element Names", - "time": "2019-08-22T18:11:29+00:00" + "support": { + "issues": "https://github.com/phpDocumentor/TypeResolver/issues", + "source": "https://github.com/phpDocumentor/TypeResolver/tree/1.4.0" + }, + "time": "2020-09-17T18:55:26+00:00" }, { "name": "phpspec/prophecy", - "version": "v1.10.2", + "version": "1.12.2", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9" + "reference": "245710e971a030f42e08f4912863805570f23d39" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/b4400efc9d206e83138e2bb97ed7f5b14b831cd9", - "reference": "b4400efc9d206e83138e2bb97ed7f5b14b831cd9", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/245710e971a030f42e08f4912863805570f23d39", + "reference": "245710e971a030f42e08f4912863805570f23d39", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.3|^7.0", - "phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0|^5.0", - "sebastian/comparator": "^1.2.3|^2.0|^3.0|^4.0", - "sebastian/recursion-context": "^1.0|^2.0|^3.0|^4.0" + "doctrine/instantiator": "^1.2", + "php": "^7.2 || ~8.0, <8.1", + "phpdocumentor/reflection-docblock": "^5.2", + "sebastian/comparator": "^3.0 || ^4.0", + "sebastian/recursion-context": "^3.0 || ^4.0" }, "require-dev": { - "phpspec/phpspec": "^2.5 || ^3.2", - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1" + "phpspec/phpspec": "^6.0", + "phpunit/phpunit": "^8.0 || ^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.10.x-dev" + "dev-master": "1.11.x-dev" } }, "autoload": { @@ -1149,25 +1365,31 @@ "spy", "stub" ], - "time": "2020-01-20T15:57:02+00:00" + "support": { + "issues": "https://github.com/phpspec/prophecy/issues", + "source": "https://github.com/phpspec/prophecy/tree/1.12.2" + }, + "time": "2020-12-19T10:15:11+00:00" }, { "name": "phpstan/phpstan", - "version": "0.12.2", + "version": "0.12.64", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "15a2c2b7d4195aa712506e14763ef7646ac6a08c" + "reference": "23eb1cb7ae125f45f1d0e48051bcf67a9a9b08aa" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/15a2c2b7d4195aa712506e14763ef7646ac6a08c", - "reference": "15a2c2b7d4195aa712506e14763ef7646ac6a08c", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/23eb1cb7ae125f45f1d0e48051bcf67a9a9b08aa", + "reference": "23eb1cb7ae125f45f1d0e48051bcf67a9a9b08aa", "shasum": "" }, "require": { - "nikic/php-parser": "^4.3.0", - "php": "^7.1" + "php": "^7.1|^8.0" + }, + "conflict": { + "phpstan/phpstan-shim": "*" }, "bin": [ "phpstan", @@ -1189,29 +1411,47 @@ "MIT" ], "description": "PHPStan - PHP Static Analysis Tool", - "time": "2019-12-09T09:13:49+00:00" + "support": { + "issues": "https://github.com/phpstan/phpstan/issues", + "source": "https://github.com/phpstan/phpstan/tree/0.12.64" + }, + "funding": [ + { + "url": "https://github.com/ondrejmirtes", + "type": "github" + }, + { + "url": "https://www.patreon.com/phpstan", + "type": "patreon" + }, + { + "url": "https://tidelift.com/funding/github/packagist/phpstan/phpstan", + "type": "tidelift" + } + ], + "time": "2020-12-21T11:59:02+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "7.0.10", + "version": "7.0.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf" + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f1884187926fbb755a9aaf0b3836ad3165b478bf", - "reference": "f1884187926fbb755a9aaf0b3836ad3165b478bf", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bb7c9a210c72e4709cdde67f8b7362f672f2225c", + "reference": "bb7c9a210c72e4709cdde67f8b7362f672f2225c", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^7.2", + "php": ">=7.2", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", - "phpunit/php-token-stream": "^3.1.1", + "phpunit/php-token-stream": "^3.1.1 || ^4.0", "sebastian/code-unit-reverse-lookup": "^1.0.1", "sebastian/environment": "^4.2.2", "sebastian/version": "^2.0.1", @@ -1252,27 +1492,37 @@ "testing", "xunit" ], - "time": "2019-11-20T13:55:58+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/7.0.14" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-02T13:39:03+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "2.0.2", + "version": "2.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "050bedf145a257b1ff02746c31894800e5122946" + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", - "reference": "050bedf145a257b1ff02746c31894800e5122946", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/4b49fb70f067272b659ef0174ff9ca40fdaa6357", + "reference": "4b49fb70f067272b659ef0174ff9ca40fdaa6357", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1302,7 +1552,17 @@ "filesystem", "iterator" ], - "time": "2018-09-13T20:33:42+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-file-iterator/issues", + "source": "https://github.com/sebastianbergmann/php-file-iterator/tree/2.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:25:21+00:00" }, { "name": "phpunit/php-text-template", @@ -1343,27 +1603,31 @@ "keywords": [ "template" ], + "support": { + "issues": "https://github.com/sebastianbergmann/php-text-template/issues", + "source": "https://github.com/sebastianbergmann/php-text-template/tree/1.2.1" + }, "time": "2015-06-21T13:50:34+00:00" }, { "name": "phpunit/php-timer", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", - "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/2454ae1765516d20c4ffe103d85a58a9a3bd5662", + "reference": "2454ae1765516d20c4ffe103d85a58a9a3bd5662", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1392,33 +1656,43 @@ "keywords": [ "timer" ], - "time": "2019-06-07T04:22:29+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-timer/issues", + "source": "https://github.com/sebastianbergmann/php-timer/tree/2.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:20:02+00:00" }, { "name": "phpunit/php-token-stream", - "version": "3.1.1", + "version": "4.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff" + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/995192df77f63a59e47f025390d2d1fdf8f425ff", - "reference": "995192df77f63a59e47f025390d2d1fdf8f425ff", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/a853a0e183b9db7eed023d7933a858fa1c8d25a3", + "reference": "a853a0e183b9db7eed023d7933a858fa1c8d25a3", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": "^7.1" + "php": "^7.3 || ^8.0" }, "require-dev": { - "phpunit/phpunit": "^7.0" + "phpunit/phpunit": "^9.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1-dev" + "dev-master": "4.0-dev" } }, "autoload": { @@ -1441,43 +1715,54 @@ "keywords": [ "tokenizer" ], - "time": "2019-09-17T06:23:10+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/php-token-stream/issues", + "source": "https://github.com/sebastianbergmann/php-token-stream/tree/master" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "abandoned": true, + "time": "2020-08-04T08:28:15+00:00" }, { "name": "phpunit/phpunit", - "version": "8.5.2", + "version": "8.5.13", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0" + "reference": "8e86be391a58104ef86037ba8a846524528d784e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/018b6ac3c8ab20916db85fa91bf6465acb64d1e0", - "reference": "018b6ac3c8ab20916db85fa91bf6465acb64d1e0", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8e86be391a58104ef86037ba8a846524528d784e", + "reference": "8e86be391a58104ef86037ba8a846524528d784e", "shasum": "" }, "require": { - "doctrine/instantiator": "^1.2.0", + "doctrine/instantiator": "^1.3.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.9.1", - "phar-io/manifest": "^1.0.3", - "phar-io/version": "^2.0.1", - "php": "^7.2", - "phpspec/prophecy": "^1.8.1", - "phpunit/php-code-coverage": "^7.0.7", + "myclabs/deep-copy": "^1.10.0", + "phar-io/manifest": "^2.0.1", + "phar-io/version": "^3.0.2", + "php": ">=7.2", + "phpspec/prophecy": "^1.10.3", + "phpunit/php-code-coverage": "^7.0.12", "phpunit/php-file-iterator": "^2.0.2", "phpunit/php-text-template": "^1.2.1", "phpunit/php-timer": "^2.1.2", "sebastian/comparator": "^3.0.2", "sebastian/diff": "^3.0.2", - "sebastian/environment": "^4.2.2", - "sebastian/exporter": "^3.1.1", + "sebastian/environment": "^4.2.3", + "sebastian/exporter": "^3.1.2", "sebastian/global-state": "^3.0.0", "sebastian/object-enumerator": "^3.0.3", "sebastian/resource-operations": "^2.0.1", @@ -1524,7 +1809,73 @@ "testing", "xunit" ], - "time": "2020-01-08T08:49:49+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/phpunit/issues", + "source": "https://github.com/sebastianbergmann/phpunit/tree/8.5.13" + }, + "funding": [ + { + "url": "https://phpunit.de/donate.html", + "type": "custom" + }, + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-12-01T04:53:52+00:00" + }, + { + "name": "psr/http-client", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-client.git", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-client/zipball/2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "reference": "2dfb5f6c5eff0e91e20e913f8c5452ed95b86621", + "shasum": "" + }, + "require": { + "php": "^7.0 || ^8.0", + "psr/http-message": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Client\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP clients", + "homepage": "https://github.com/php-fig/http-client", + "keywords": [ + "http", + "http-client", + "psr", + "psr-18" + ], + "support": { + "source": "https://github.com/php-fig/http-client/tree/master" + }, + "time": "2020-06-29T06:28:15+00:00" }, { "name": "psr/http-message", @@ -1574,20 +1925,23 @@ "request", "response" ], + "support": { + "source": "https://github.com/php-fig/http-message/tree/master" + }, "time": "2016-08-06T14:39:51+00:00" }, { "name": "psr/log", - "version": "1.1.2", + "version": "1.1.3", "source": { "type": "git", "url": "https://github.com/php-fig/log.git", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801" + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/446d54b4cb6bf489fc9d75f55843658e6f25d801", - "reference": "446d54b4cb6bf489fc9d75f55843658e6f25d801", + "url": "https://api.github.com/repos/php-fig/log/zipball/0f73288fd15629204f9d42b7055f72dacbe811fc", + "reference": "0f73288fd15629204f9d42b7055f72dacbe811fc", "shasum": "" }, "require": { @@ -1621,7 +1975,10 @@ "psr", "psr-3" ], - "time": "2019-11-01T11:05:21+00:00" + "support": { + "source": "https://github.com/php-fig/log/tree/1.1.3" + }, + "time": "2020-03-23T09:12:05+00:00" }, { "name": "ralouphie/getallheaders", @@ -1661,27 +2018,31 @@ } ], "description": "A polyfill for getallheaders.", + "support": { + "issues": "https://github.com/ralouphie/getallheaders/issues", + "source": "https://github.com/ralouphie/getallheaders/tree/develop" + }, "time": "2019-03-08T08:55:37+00:00" }, { "name": "sebastian/code-unit-reverse-lookup", - "version": "1.0.1", + "version": "1.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18" + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", - "reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18", + "url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/1de8cd5c010cb153fcd68b8d0f64606f523f7619", + "reference": "1de8cd5c010cb153fcd68b8d0f64606f523f7619", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": ">=5.6" }, "require-dev": { - "phpunit/phpunit": "^5.7 || ^6.0" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1706,29 +2067,39 @@ ], "description": "Looks up which function or method a line of code belongs to", "homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/", - "time": "2017-03-04T06:30:41+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/issues", + "source": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/tree/1.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:15:22+00:00" }, { "name": "sebastian/comparator", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", - "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1071dfcef776a57013124ff35e1fc41ccd294758", + "reference": "1071dfcef776a57013124ff35e1fc41ccd294758", "shasum": "" }, "require": { - "php": "^7.1", + "php": ">=7.1", "sebastian/diff": "^3.0", "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "^7.1" + "phpunit/phpunit": "^8.5" }, "type": "library", "extra": { @@ -1746,6 +2117,10 @@ "BSD-3-Clause" ], "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, { "name": "Jeff Welch", "email": "whatthejeff@gmail.com" @@ -1757,10 +2132,6 @@ { "name": "Bernhard Schussek", "email": "bschussek@2bepublished.at" - }, - { - "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de" } ], "description": "Provides the functionality to compare PHP values for equality", @@ -1770,24 +2141,34 @@ "compare", "equality" ], - "time": "2018-07-12T15:12:46+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/comparator/issues", + "source": "https://github.com/sebastianbergmann/comparator/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T08:04:30+00:00" }, { "name": "sebastian/diff", - "version": "3.0.2", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", - "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/14f72dd46eaf2f2293cbe79c93cc0bc43161a211", + "reference": "14f72dd46eaf2f2293cbe79c93cc0bc43161a211", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5 || ^8.0", @@ -1809,13 +2190,13 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Kore Nordmann", - "email": "mail@kore-nordmann.de" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" + }, + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" } ], "description": "Diff implementation", @@ -1826,24 +2207,34 @@ "unidiff", "unified diff" ], - "time": "2019-02-04T06:01:07+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/diff/issues", + "source": "https://github.com/sebastianbergmann/diff/tree/3.0.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:59:04+00:00" }, { "name": "sebastian/environment", - "version": "4.2.3", + "version": "4.2.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368" + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/464c90d7bdf5ad4e8a6aea15c091fec0603d4368", - "reference": "464c90d7bdf5ad4e8a6aea15c091fec0603d4368", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", + "reference": "d47bbbad83711771f167c72d4e3f25f7fcc1f8b0", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "require-dev": { "phpunit/phpunit": "^7.5" @@ -1879,24 +2270,34 @@ "environment", "hhvm" ], - "time": "2019-11-20T08:46:58+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/environment/issues", + "source": "https://github.com/sebastianbergmann/environment/tree/4.2.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:53:42+00:00" }, { "name": "sebastian/exporter", - "version": "3.1.2", + "version": "3.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e" + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/68609e1261d215ea5b21b7987539cbfbe156ec3e", - "reference": "68609e1261d215ea5b21b7987539cbfbe156ec3e", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/6b853149eab67d4da22291d36f5b0631c0fd856e", + "reference": "6b853149eab67d4da22291d36f5b0631c0fd856e", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/recursion-context": "^3.0" }, "require-dev": { @@ -1946,24 +2347,34 @@ "export", "exporter" ], - "time": "2019-09-14T09:02:43+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/exporter/issues", + "source": "https://github.com/sebastianbergmann/exporter/tree/3.1.3" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:47:53+00:00" }, { "name": "sebastian/global-state", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4" + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", - "reference": "edf8a461cf1d4005f19fb0b6b8b95a9f7fa0adc4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/474fb9edb7ab891665d3bfc6317f42a0a150454b", + "reference": "474fb9edb7ab891665d3bfc6317f42a0a150454b", "shasum": "" }, "require": { - "php": "^7.2", + "php": ">=7.2", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -2000,24 +2411,34 @@ "keywords": [ "global state" ], - "time": "2019-02-01T05:30:01+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/global-state/issues", + "source": "https://github.com/sebastianbergmann/global-state/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:43:24+00:00" }, { "name": "sebastian/object-enumerator", - "version": "3.0.3", + "version": "3.0.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", - "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", + "reference": "e67f6d32ebd0c749cf9d1dbd9f226c727043cdf2", "shasum": "" }, "require": { - "php": "^7.0", + "php": ">=7.0", "sebastian/object-reflector": "^1.1.1", "sebastian/recursion-context": "^3.0" }, @@ -2047,24 +2468,34 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-08-03T12:35:26+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-enumerator/issues", + "source": "https://github.com/sebastianbergmann/object-enumerator/tree/3.0.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:40:27+00:00" }, { "name": "sebastian/object-reflector", - "version": "1.1.1", + "version": "1.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-reflector.git", - "reference": "773f97c67f28de00d397be301821b06708fca0be" + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", - "reference": "773f97c67f28de00d397be301821b06708fca0be", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", + "reference": "9b8772b9cbd456ab45d4a598d2dd1a1bced6363d", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -2092,24 +2523,34 @@ ], "description": "Allows reflection of object attributes, including inherited and non-public ones", "homepage": "https://github.com/sebastianbergmann/object-reflector/", - "time": "2017-03-29T09:07:27+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/object-reflector/issues", + "source": "https://github.com/sebastianbergmann/object-reflector/tree/1.1.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:37:18+00:00" }, { "name": "sebastian/recursion-context", - "version": "3.0.0", + "version": "3.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", - "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/367dcba38d6e1977be014dc4b22f47a484dac7fb", + "reference": "367dcba38d6e1977be014dc4b22f47a484dac7fb", "shasum": "" }, "require": { - "php": "^7.0" + "php": ">=7.0" }, "require-dev": { "phpunit/phpunit": "^6.0" @@ -2130,14 +2571,14 @@ "BSD-3-Clause" ], "authors": [ - { - "name": "Jeff Welch", - "email": "whatthejeff@gmail.com" - }, { "name": "Sebastian Bergmann", "email": "sebastian@phpunit.de" }, + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, { "name": "Adam Harvey", "email": "aharvey@php.net" @@ -2145,24 +2586,34 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2017-03-03T06:23:57+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/recursion-context/issues", + "source": "https://github.com/sebastianbergmann/recursion-context/tree/3.0.1" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:34:24+00:00" }, { "name": "sebastian/resource-operations", - "version": "2.0.1", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", - "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/31d35ca87926450c44eae7e2611d45a7a65ea8b3", + "reference": "31d35ca87926450c44eae7e2611d45a7a65ea8b3", "shasum": "" }, "require": { - "php": "^7.1" + "php": ">=7.1" }, "type": "library", "extra": { @@ -2187,24 +2638,34 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2018-10-04T04:07:39+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/resource-operations/issues", + "source": "https://github.com/sebastianbergmann/resource-operations/tree/2.0.2" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:30:19+00:00" }, { "name": "sebastian/type", - "version": "1.1.3", + "version": "1.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/type.git", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3" + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/3aaaa15fa71d27650d62a948be022fe3b48541a3", - "reference": "3aaaa15fa71d27650d62a948be022fe3b48541a3", + "url": "https://api.github.com/repos/sebastianbergmann/type/zipball/0150cfbc4495ed2df3872fb31b26781e4e077eb4", + "reference": "0150cfbc4495ed2df3872fb31b26781e4e077eb4", "shasum": "" }, "require": { - "php": "^7.2" + "php": ">=7.2" }, "require-dev": { "phpunit/phpunit": "^8.2" @@ -2233,7 +2694,17 @@ ], "description": "Collection of value objects that represent the types of the PHP type system", "homepage": "https://github.com/sebastianbergmann/type", - "time": "2019-07-02T08:10:15+00:00" + "support": { + "issues": "https://github.com/sebastianbergmann/type/issues", + "source": "https://github.com/sebastianbergmann/type/tree/1.1.4" + }, + "funding": [ + { + "url": "https://github.com/sebastianbergmann", + "type": "github" + } + ], + "time": "2020-11-30T07:25:11+00:00" }, { "name": "sebastian/version", @@ -2276,20 +2747,24 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", + "support": { + "issues": "https://github.com/sebastianbergmann/version/issues", + "source": "https://github.com/sebastianbergmann/version/tree/master" + }, "time": "2016-10-03T07:35:21+00:00" }, { "name": "squizlabs/php_codesniffer", - "version": "3.5.3", + "version": "3.5.8", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb" + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", - "reference": "557a1fc7ac702c66b0bbfe16ab3d55839ef724cb", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/9d583721a7157ee997f235f327de038e7ea6dac4", + "reference": "9d583721a7157ee997f235f327de038e7ea6dac4", "shasum": "" }, "require": { @@ -2327,26 +2802,33 @@ "phpcs", "standards" ], - "time": "2019-12-04T04:46:47+00:00" + "support": { + "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", + "source": "https://github.com/squizlabs/PHP_CodeSniffer", + "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" + }, + "time": "2020-10-23T02:01:07+00:00" }, { "name": "symfony/config", - "version": "v5.0.1", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "c0773efcc2c940ffbc4c34a0dba2836f2cf6dc9c" + "reference": "d0a82d965296083fe463d655a3644cbe49cbaa80" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/c0773efcc2c940ffbc4c34a0dba2836f2cf6dc9c", - "reference": "c0773efcc2c940ffbc4c34a0dba2836f2cf6dc9c", + "url": "https://api.github.com/repos/symfony/config/zipball/d0a82d965296083fe463d655a3644cbe49cbaa80", + "reference": "d0a82d965296083fe463d655a3644cbe49cbaa80", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/filesystem": "^4.4|^5.0", - "symfony/polyfill-ctype": "~1.8" + "symfony/polyfill-ctype": "~1.8", + "symfony/polyfill-php80": "^1.15" }, "conflict": { "symfony/finder": "<4.4" @@ -2362,11 +2844,6 @@ "symfony/yaml": "To use the yaml reference dumper" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Config\\": "" @@ -2391,32 +2868,111 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2019-12-01T10:51:15+00:00" + "support": { + "source": "https://github.com/symfony/config/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-09T18:54:12+00:00" }, { - "name": "symfony/filesystem", - "version": "v5.0.1", + "name": "symfony/deprecation-contracts", + "version": "v2.2.0", "source": { "type": "git", - "url": "https://github.com/symfony/filesystem.git", - "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6" + "url": "https://github.com/symfony/deprecation-contracts.git", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/1d71f670bc5a07b9ccc97dc44f932177a322d4e6", - "reference": "1d71f670bc5a07b9ccc97dc44f932177a322d4e6", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/5fa56b4074d1ae755beb55617ddafe6f5d78f665", + "reference": "5fa56b4074d1ae755beb55617ddafe6f5d78f665", "shasum": "" }, "require": { - "php": "^7.2.5", - "symfony/polyfill-ctype": "~1.8" + "php": ">=7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.0-dev" + "dev-master": "2.2-dev" + }, + "thanks": { + "name": "symfony/contracts", + "url": "https://github.com/symfony/contracts" } }, + "autoload": { + "files": [ + "function.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "A generic function and convention to trigger deprecation notices", + "homepage": "https://symfony.com", + "support": { + "source": "https://github.com/symfony/deprecation-contracts/tree/master" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-09-07T11:33:47+00:00" + }, + { + "name": "symfony/filesystem", + "version": "v5.2.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/filesystem.git", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "reference": "fa8f8cab6b65e2d99a118e082935344c5ba8c60d", + "shasum": "" + }, + "require": { + "php": ">=7.2.5", + "symfony/polyfill-ctype": "~1.8" + }, + "type": "library", "autoload": { "psr-4": { "Symfony\\Component\\Filesystem\\": "" @@ -2441,24 +2997,41 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2019-11-26T23:25:11+00:00" + "support": { + "source": "https://github.com/symfony/filesystem/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-11-30T17:05:38+00:00" }, { "name": "symfony/polyfill-ctype", - "version": "v1.14.0", + "version": "v1.20.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38" + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", - "reference": "fbdeaec0df06cf3d51c93de80c7eb76e271f5a38", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/f4ba089a5b6366e453971d3aad5fe8e897b37f41", + "reference": "f4ba089a5b6366e453971d3aad5fe8e897b37f41", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=7.1" }, "suggest": { "ext-ctype": "For best performance" @@ -2466,7 +3039,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.14-dev" + "dev-main": "1.20-dev" + }, + "thanks": { + "name": "symfony/polyfill", + "url": "https://github.com/symfony/polyfill" } }, "autoload": { @@ -2499,32 +3076,44 @@ "polyfill", "portable" ], - "time": "2020-01-13T11:15:53+00:00" + "support": { + "source": "https://github.com/symfony/polyfill-ctype/tree/v1.20.0" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-10-23T14:02:19+00:00" }, { "name": "symfony/stopwatch", - "version": "v5.0.1", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "d410282956706e0b08681a5527447a8e6b6f421e" + "reference": "2b105c0354f39a63038a1d8bf776ee92852813af" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/d410282956706e0b08681a5527447a8e6b6f421e", - "reference": "d410282956706e0b08681a5527447a8e6b6f421e", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/2b105c0354f39a63038a1d8bf776ee92852813af", + "reference": "2b105c0354f39a63038a1d8bf776ee92852813af", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", "symfony/service-contracts": "^1.0|^2" }, "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Stopwatch\\": "" @@ -2549,24 +3138,42 @@ ], "description": "Symfony Stopwatch Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "support": { + "source": "https://github.com/symfony/stopwatch/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-11-01T16:14:45+00:00" }, { "name": "symfony/yaml", - "version": "v5.0.1", + "version": "v5.2.1", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "51b684480184fa767b97e28eaca67664e48dd3e9" + "reference": "290ea5e03b8cf9b42c783163123f54441fb06939" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/51b684480184fa767b97e28eaca67664e48dd3e9", - "reference": "51b684480184fa767b97e28eaca67664e48dd3e9", + "url": "https://api.github.com/repos/symfony/yaml/zipball/290ea5e03b8cf9b42c783163123f54441fb06939", + "reference": "290ea5e03b8cf9b42c783163123f54441fb06939", "shasum": "" }, "require": { - "php": "^7.2.5", + "php": ">=7.2.5", + "symfony/deprecation-contracts": "^2.1", "symfony/polyfill-ctype": "~1.8" }, "conflict": { @@ -2578,12 +3185,10 @@ "suggest": { "symfony/console": "For validating YAML files using the lint command" }, + "bin": [ + "Resources/bin/yaml-lint" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.0-dev" - } - }, "autoload": { "psr-4": { "Symfony\\Component\\Yaml\\": "" @@ -2608,24 +3213,41 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2019-11-18T17:27:11+00:00" + "support": { + "source": "https://github.com/symfony/yaml/tree/v5.2.1" + }, + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2020-12-08T17:02:38+00:00" }, { "name": "thecodingmachine/phpstan-strict-rules", - "version": "v0.12.0", + "version": "v0.12.1", "source": { "type": "git", "url": "https://github.com/thecodingmachine/phpstan-strict-rules.git", - "reference": "8c58cc87dc870382b228c95c4f1cc9fc871aaf28" + "reference": "4bb334f6f637ebfba83cfdc7392d549a8a3fbba7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thecodingmachine/phpstan-strict-rules/zipball/8c58cc87dc870382b228c95c4f1cc9fc871aaf28", - "reference": "8c58cc87dc870382b228c95c4f1cc9fc871aaf28", + "url": "https://api.github.com/repos/thecodingmachine/phpstan-strict-rules/zipball/4bb334f6f637ebfba83cfdc7392d549a8a3fbba7", + "reference": "4bb334f6f637ebfba83cfdc7392d549a8a3fbba7", "shasum": "" }, "require": { - "php": "^7.1", + "php": "^7.1|^8.0", "phpstan/phpstan": "^0.12" }, "require-dev": { @@ -2659,27 +3281,31 @@ } ], "description": "A set of additional rules for PHPStan based on best practices followed at TheCodingMachine", - "time": "2019-12-04T11:25:22+00:00" + "support": { + "issues": "https://github.com/thecodingmachine/phpstan-strict-rules/issues", + "source": "https://github.com/thecodingmachine/phpstan-strict-rules/tree/master" + }, + "time": "2020-09-08T09:14:10+00:00" }, { "name": "theseer/tokenizer", - "version": "1.1.3", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/theseer/tokenizer.git", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" + "reference": "75a63c33a8577608444246075ea0af0d052e452a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", - "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/75a63c33a8577608444246075ea0af0d052e452a", + "reference": "75a63c33a8577608444246075ea0af0d052e452a", "shasum": "" }, "require": { "ext-dom": "*", "ext-tokenizer": "*", "ext-xmlwriter": "*", - "php": "^7.0" + "php": "^7.2 || ^8.0" }, "type": "library", "autoload": { @@ -2699,28 +3325,39 @@ } ], "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", - "time": "2019-06-13T22:48:21+00:00" + "support": { + "issues": "https://github.com/theseer/tokenizer/issues", + "source": "https://github.com/theseer/tokenizer/tree/master" + }, + "funding": [ + { + "url": "https://github.com/theseer", + "type": "github" + } + ], + "time": "2020-07-12T23:59:07+00:00" }, { "name": "webmozart/assert", - "version": "1.7.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/webmozart/assert.git", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598" + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/aed98a490f9a8f78468232db345ab9cf606cf598", - "reference": "aed98a490f9a8f78468232db345ab9cf606cf598", + "url": "https://api.github.com/repos/webmozart/assert/zipball/bafc69caeb4d49c39fd0779086c03a3738cbb389", + "reference": "bafc69caeb4d49c39fd0779086c03a3738cbb389", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0", + "php": "^5.3.3 || ^7.0 || ^8.0", "symfony/polyfill-ctype": "^1.8" }, "conflict": { - "vimeo/psalm": "<3.6.0" + "phpstan/phpstan": "<0.12.20", + "vimeo/psalm": "<3.9.1" }, "require-dev": { "phpunit/phpunit": "^4.8.36 || ^7.5.13" @@ -2747,7 +3384,11 @@ "check", "validate" ], - "time": "2020-02-14T12:15:55+00:00" + "support": { + "issues": "https://github.com/webmozart/assert/issues", + "source": "https://github.com/webmozart/assert/tree/master" + }, + "time": "2020-07-08T17:02:28+00:00" } ], "aliases": [], @@ -2761,5 +3402,5 @@ "ext-json": "*" }, "platform-dev": [], - "plugin-api-version": "1.1.0" + "plugin-api-version": "2.0.0" } diff --git a/generator/config/ignoredModules.php b/generator/config/ignoredModules.php index e20a1aa5..b81deae2 100644 --- a/generator/config/ignoredModules.php +++ b/generator/config/ignoredModules.php @@ -41,6 +41,7 @@ 'session_pgsql', 'snmp', 'sqlite', + 'stats', 'suhosin', 'svn', 'sybase', diff --git a/generator/src/FileCreator.php b/generator/src/FileCreator.php index a6cbc68c..92069ad8 100644 --- a/generator/src/FileCreator.php +++ b/generator/src/FileCreator.php @@ -33,7 +33,6 @@ public function generatePhpFile(array $functions, string $path): void namespace Safe; use Safe\\Exceptions\\".self::toExceptionName($module). '; - '); foreach ($phpFunctions as $phpFunction) { \fwrite($stream, $phpFunction."\n"); diff --git a/generator/src/Method.php b/generator/src/Method.php index 0a6d81e5..c2146207 100644 --- a/generator/src/Method.php +++ b/generator/src/Method.php @@ -91,7 +91,7 @@ public function getParams(): array } } - $params[] = new Parameter($param, $phpStanFunction); + $params[] = new Parameter($param, $phpStanFunction, $i-2); } $this->params = $params; } @@ -100,9 +100,9 @@ public function getParams(): array public function getPhpDoc(): string { - $str = "/**\n". + $str = "\n/**\n". implode("\n", array_map(function (string $line) { - return ' * '.ltrim($line); + return rtrim(' * '.ltrim($line)); }, \explode("\n", \strip_tags($this->getDocBlock())))) ."\n */\n"; diff --git a/generator/src/Parameter.php b/generator/src/Parameter.php index 71d03a85..6fc0944c 100644 --- a/generator/src/Parameter.php +++ b/generator/src/Parameter.php @@ -16,10 +16,10 @@ class Parameter */ private $type; - public function __construct(\SimpleXMLElement $parameter, ?PhpStanFunction $phpStanFunction) + public function __construct(\SimpleXMLElement $parameter, ?PhpStanFunction $phpStanFunction, int $position) { $this->parameter = $parameter; - $phpStanParam = $phpStanFunction ? $phpStanFunction->getParameter($this->getParameter()) : null; + $phpStanParam = $phpStanFunction ? $phpStanFunction->getParameter($this->getParameter(), $position) : null; $this->type = $phpStanParam ? $phpStanParam->getType() : new PhpStanType($this->parameter->type->__toString()); } @@ -42,9 +42,6 @@ public function getDocBlockType(): string public function getParameter(): string { - if ($this->isVariadic()) { - return 'params'; - } // The db2_bind_param method has parameters with a dash in it... yep... (patch submitted) return \str_replace('-', '_', $this->parameter->parameter->__toString()); } @@ -62,7 +59,7 @@ public function isByReference(): bool */ public function isOptionalWithNoDefault(): bool { - if (((string)$this->parameter['choice']) !== 'opt') { + if (((string)$this->parameter['choice']) !== 'opt' && !$this->isVariadic()) { return false; } if (!$this->hasDefaultValue()) { @@ -71,7 +68,7 @@ public function isOptionalWithNoDefault(): bool $initializer = $this->getInitializer(); // Some default value have weird values. For instance, first parameter of "mb_internal_encoding" has default value "mb_internal_encoding()" - if ($initializer !== 'array()' && strpos($initializer, '(') !== false) { + if ($initializer === 'null' || ($initializer !== 'array()' && strpos($initializer, '(') !== false)) { return true; } return false; @@ -79,7 +76,7 @@ public function isOptionalWithNoDefault(): bool public function isVariadic(): bool { - return $this->parameter->parameter->__toString() === '...'; + return ((string)$this->parameter['rep']) === 'repeat'; } public function isNullable(): bool diff --git a/generator/src/PhpStanFunctions/CustomPhpStanFunctionMap.php b/generator/src/PhpStanFunctions/CustomPhpStanFunctionMap.php index 44afb312..3ca31d43 100644 --- a/generator/src/PhpStanFunctions/CustomPhpStanFunctionMap.php +++ b/generator/src/PhpStanFunctions/CustomPhpStanFunctionMap.php @@ -6,9 +6,8 @@ */ return [ - 'libxml_get_last_error' => ['LibXMLError|false'], //LibXMLError need to be uppercase - 'gmp_random_seed' => ['void', 'seed'=>'GMP|string|int'], //gmp_random_seed doesn't return - 'imageconvolution' => ['bool', 'src_im'=>'resource', 'matrix3x3'=>'array', 'div'=>'float', 'offset'=>'float'], //imageconvolution return a bool - 'iptcembed' => ['string|bool', 'iptcdata'=>'string', 'jpeg_file_name'=>'string', 'spool='=>'int'], //iptcembed return either a string, true or false 'password_hash' => ['string|false', 'password'=>'string', 'algo'=>'int|string|null', 'options='=>'array'], + 'com_load_typelib' => ['bool', 'typelib_name'=>'string', 'case_insensitive='=>'bool'], // case_insensitive is a bool + 'sem_get' => ['resource|false', 'key'=>'int', 'max_acquire='=>'int', 'perm='=>'int', 'auto_release='=>'bool'], // auto_release is a bool + 'rewinddir' => ['void', 'dir_handle='=>'resource'], // fix return value ]; diff --git a/generator/src/PhpStanFunctions/PhpStanFunction.php b/generator/src/PhpStanFunctions/PhpStanFunction.php index c937d08e..ca5a84dc 100644 --- a/generator/src/PhpStanFunctions/PhpStanFunction.php +++ b/generator/src/PhpStanFunctions/PhpStanFunction.php @@ -40,8 +40,8 @@ public function getParameters(): array return $this->parameters; } - public function getParameter(string $name): ?PhpStanParameter + public function getParameter(string $name, int $position): ?PhpStanParameter { - return $this->parameters[$name] ?? null; + return $this->parameters[$name] ?? array_values($this->parameters)[$position] ?? null; } } diff --git a/generator/src/PhpStanFunctions/PhpStanFunctionMapReader.php b/generator/src/PhpStanFunctions/PhpStanFunctionMapReader.php index ac36580b..71e1cb51 100644 --- a/generator/src/PhpStanFunctions/PhpStanFunctionMapReader.php +++ b/generator/src/PhpStanFunctions/PhpStanFunctionMapReader.php @@ -16,7 +16,7 @@ class PhpStanFunctionMapReader public function __construct() { - $this->functionMap = require 'phar://'.__DIR__.'/../../vendor/phpstan/phpstan/phpstan.phar/src/Reflection/SignatureMap/functionMap.php'; + $this->functionMap = require 'phar://'.__DIR__.'/../../vendor/phpstan/phpstan/phpstan.phar/resources/functionMap.php'; $this->customFunctionMap = require __DIR__.'/CustomPhpStanFunctionMap.php'; } diff --git a/generator/src/WritePhpFunction.php b/generator/src/WritePhpFunction.php index 1a38f366..bc703425 100644 --- a/generator/src/WritePhpFunction.php +++ b/generator/src/WritePhpFunction.php @@ -90,7 +90,6 @@ private function writePhpFunction(): string } $phpFunction .= $this->generateExceptionCode($moduleName, $this->method).$returnStatement. '} - '; return $phpFunction; diff --git a/generator/tests/MethodTest.php b/generator/tests/MethodTest.php index 12a1681c..831ad85b 100644 --- a/generator/tests/MethodTest.php +++ b/generator/tests/MethodTest.php @@ -37,6 +37,16 @@ public function testGetFunctionParam() public function testGetTypeHintFromRessource() { + $docPage = new DocPage(__DIR__ . '/../doc/doc-en/en/reference/strings/functions/sprintf.xml'); + $xmlObject = $docPage->getMethodSynopsis(); + $method = new Method($xmlObject[0], $docPage->loadAndResolveFile(), $docPage->getModule(), new PhpStanFunctionMapReader(), Method::FALSY_TYPE); + $params = $method->getParams(); + $this->assertEquals('string', $params[0]->getDocBlockType()); + $this->assertEquals('string', $params[0]->getSignatureType()); + $this->assertEquals('string|int|float|bool', $params[1]->getDocBlockType()); + $this->assertTrue($params[1]->isVariadic()); + $this->assertEquals('', $params[1]->getSignatureType()); + $docPage = new DocPage(__DIR__ . '/../doc/doc-en/en/reference/mbstring/functions/mb-ereg-replace-callback.xml'); $xmlObject = $docPage->getMethodSynopsis(); $method = new Method($xmlObject[0], $docPage->loadAndResolveFile(), $docPage->getModule(), new PhpStanFunctionMapReader(), Method::FALSY_TYPE); diff --git a/rector-migrate-0.7.php b/rector-migrate-0.7.php index d1c59970..e93ac1b3 100644 --- a/rector-migrate-0.7.php +++ b/rector-migrate-0.7.php @@ -13,6 +13,7 @@ ->call('configure', [[ RenameFunctionRector::OLD_FUNCTION_TO_NEW_FUNCTION => [ 'apache_getenv' => 'Safe\apache_getenv', 'apache_get_version' => 'Safe\apache_get_version', + 'apache_lookup_uri' => 'Safe\apache_lookup_uri', 'apache_request_headers' => 'Safe\apache_request_headers', 'apache_reset_timeout' => 'Safe\apache_reset_timeout', 'apache_response_headers' => 'Safe\apache_response_headers', @@ -47,12 +48,13 @@ 'class_uses' => 'Safe\class_uses', 'cli_set_process_title' => 'Safe\cli_set_process_title', 'closelog' => 'Safe\closelog', + 'com_create_guid' => 'Safe\com_create_guid', 'com_event_sink' => 'Safe\com_event_sink', 'com_load_typelib' => 'Safe\com_load_typelib', 'com_print_typeinfo' => 'Safe\com_print_typeinfo', 'convert_uudecode' => 'Safe\convert_uudecode', - 'convert_uuencode' => 'Safe\convert_uuencode', 'copy' => 'Safe\copy', + 'count_chars' => 'Safe\count_chars', 'create_function' => 'Safe\create_function', 'cubrid_free_result' => 'Safe\cubrid_free_result', 'cubrid_get_charset' => 'Safe\cubrid_get_charset', @@ -66,6 +68,7 @@ 'cubrid_lob2_tell' => 'Safe\cubrid_lob2_tell', 'cubrid_lob2_tell64' => 'Safe\cubrid_lob2_tell64', 'cubrid_set_db_parameter' => 'Safe\cubrid_set_db_parameter', + 'curl_copy_handle' => 'Safe\curl_copy_handle', 'curl_escape' => 'Safe\curl_escape', 'curl_exec' => 'Safe\curl_exec', 'curl_getinfo' => 'Safe\curl_getinfo', @@ -141,6 +144,7 @@ 'eio_utime' => 'Safe\eio_utime', 'eio_write' => 'Safe\eio_write', 'error_log' => 'Safe\error_log', + 'exec' => 'Safe\exec', 'fastcgi_finish_request' => 'Safe\fastcgi_finish_request', 'fbird_blob_cancel' => 'Safe\fbird_blob_cancel', 'fclose' => 'Safe\fclose', @@ -151,6 +155,7 @@ 'fileinode' => 'Safe\fileinode', 'filemtime' => 'Safe\filemtime', 'fileowner' => 'Safe\fileowner', + 'fileperms' => 'Safe\fileperms', 'filesize' => 'Safe\filesize', 'file_get_contents' => 'Safe\file_get_contents', 'file_put_contents' => 'Safe\file_put_contents', @@ -163,6 +168,7 @@ 'fputcsv' => 'Safe\fputcsv', 'fread' => 'Safe\fread', 'fsockopen' => 'Safe\fsockopen', + 'fstat' => 'Safe\fstat', 'ftp_alloc' => 'Safe\ftp_alloc', 'ftp_append' => 'Safe\ftp_append', 'ftp_cdup' => 'Safe\ftp_cdup', @@ -200,13 +206,18 @@ 'getopt' => 'Safe\getopt', 'getprotobyname' => 'Safe\getprotobyname', 'getprotobynumber' => 'Safe\getprotobynumber', + 'getrusage' => 'Safe\getrusage', + 'getservbyport' => 'Safe\getservbyport', 'get_headers' => 'Safe\get_headers', + 'get_include_path' => 'Safe\get_include_path', + 'get_meta_tags' => 'Safe\get_meta_tags', 'glob' => 'Safe\glob', - 'gmdate' => 'Safe\gmdate', + 'gmmktime' => 'Safe\gmmktime', 'gmp_binomial' => 'Safe\gmp_binomial', 'gmp_export' => 'Safe\gmp_export', 'gmp_import' => 'Safe\gmp_import', 'gmp_random_seed' => 'Safe\gmp_random_seed', + 'gmstrftime' => 'Safe\gmstrftime', 'gnupg_adddecryptkey' => 'Safe\gnupg_adddecryptkey', 'gnupg_addencryptkey' => 'Safe\gnupg_addencryptkey', 'gnupg_addsignkey' => 'Safe\gnupg_addsignkey', @@ -220,18 +231,22 @@ 'gzdecode' => 'Safe\gzdecode', 'gzdeflate' => 'Safe\gzdeflate', 'gzencode' => 'Safe\gzencode', + 'gzfile' => 'Safe\gzfile', 'gzgets' => 'Safe\gzgets', 'gzgetss' => 'Safe\gzgetss', 'gzinflate' => 'Safe\gzinflate', 'gzpassthru' => 'Safe\gzpassthru', + 'gzread' => 'Safe\gzread', 'gzrewind' => 'Safe\gzrewind', 'gzuncompress' => 'Safe\gzuncompress', + 'gzwrite' => 'Safe\gzwrite', 'hash_hkdf' => 'Safe\hash_hkdf', 'hash_update_file' => 'Safe\hash_update_file', 'header_register_callback' => 'Safe\header_register_callback', 'hex2bin' => 'Safe\hex2bin', 'highlight_file' => 'Safe\highlight_file', 'highlight_string' => 'Safe\highlight_string', + 'hrtime' => 'Safe\hrtime', 'ibase_add_user' => 'Safe\ibase_add_user', 'ibase_backup' => 'Safe\ibase_backup', 'ibase_blob_cancel' => 'Safe\ibase_blob_cancel', @@ -258,6 +273,7 @@ 'iconv' => 'Safe\iconv', 'iconv_get_encoding' => 'Safe\iconv_get_encoding', 'iconv_set_encoding' => 'Safe\iconv_set_encoding', + 'idate' => 'Safe\idate', 'image2wbmp' => 'Safe\image2wbmp', 'imageaffine' => 'Safe\imageaffine', 'imageaffinematrixconcat' => 'Safe\imageaffinematrixconcat', @@ -298,7 +314,6 @@ 'imagefill' => 'Safe\imagefill', 'imagefilledarc' => 'Safe\imagefilledarc', 'imagefilledellipse' => 'Safe\imagefilledellipse', - 'imagefilledpolygon' => 'Safe\imagefilledpolygon', 'imagefilledrectangle' => 'Safe\imagefilledrectangle', 'imagefilltoborder' => 'Safe\imagefilltoborder', 'imagefilter' => 'Safe\imagefilter', @@ -313,9 +328,7 @@ 'imagelayereffect' => 'Safe\imagelayereffect', 'imageline' => 'Safe\imageline', 'imageloadfont' => 'Safe\imageloadfont', - 'imageopenpolygon' => 'Safe\imageopenpolygon', 'imagepng' => 'Safe\imagepng', - 'imagepolygon' => 'Safe\imagepolygon', 'imagerectangle' => 'Safe\imagerectangle', 'imagerotate' => 'Safe\imagerotate', 'imagesavealpha' => 'Safe\imagesavealpha', @@ -337,6 +350,7 @@ 'imagewbmp' => 'Safe\imagewbmp', 'imagewebp' => 'Safe\imagewebp', 'imagexbm' => 'Safe\imagexbm', + 'image_type_to_extension' => 'Safe\image_type_to_extension', 'imap_append' => 'Safe\imap_append', 'imap_check' => 'Safe\imap_check', 'imap_clearflag_full' => 'Safe\imap_clearflag_full', @@ -393,11 +407,11 @@ 'jpeg2wbmp' => 'Safe\jpeg2wbmp', 'json_decode' => 'Safe\json_decode', 'json_encode' => 'Safe\json_encode', - 'json_last_error_msg' => 'Safe\json_last_error_msg', 'krsort' => 'Safe\krsort', 'ksort' => 'Safe\ksort', 'lchgrp' => 'Safe\lchgrp', 'lchown' => 'Safe\lchown', + 'ldap_8859_to_t61' => 'Safe\ldap_8859_to_t61', 'ldap_add' => 'Safe\ldap_add', 'ldap_add_ext' => 'Safe\ldap_add_ext', 'ldap_bind' => 'Safe\ldap_bind', @@ -407,6 +421,7 @@ 'ldap_count_entries' => 'Safe\ldap_count_entries', 'ldap_delete' => 'Safe\ldap_delete', 'ldap_delete_ext' => 'Safe\ldap_delete_ext', + 'ldap_dn2ufn' => 'Safe\ldap_dn2ufn', 'ldap_exop' => 'Safe\ldap_exop', 'ldap_exop_passwd' => 'Safe\ldap_exop_passwd', 'ldap_exop_whoami' => 'Safe\ldap_exop_whoami', @@ -441,6 +456,8 @@ 'libxml_get_last_error' => 'Safe\libxml_get_last_error', 'libxml_set_external_entity_loader' => 'Safe\libxml_set_external_entity_loader', 'link' => 'Safe\link', + 'long2ip' => 'Safe\long2ip', + 'lstat' => 'Safe\lstat', 'lzf_compress' => 'Safe\lzf_compress', 'lzf_decompress' => 'Safe\lzf_decompress', 'mailparse_msg_extract_part_file' => 'Safe\mailparse_msg_extract_part_file', @@ -449,6 +466,7 @@ 'mailparse_msg_parse_file' => 'Safe\mailparse_msg_parse_file', 'mailparse_stream_encode' => 'Safe\mailparse_stream_encode', 'mb_chr' => 'Safe\mb_chr', + 'mb_convert_encoding' => 'Safe\mb_convert_encoding', 'mb_detect_order' => 'Safe\mb_detect_order', 'mb_encoding_aliases' => 'Safe\mb_encoding_aliases', 'mb_eregi_replace' => 'Safe\mb_eregi_replace', @@ -458,6 +476,7 @@ 'mb_ereg_search_init' => 'Safe\mb_ereg_search_init', 'mb_ereg_search_regs' => 'Safe\mb_ereg_search_regs', 'mb_ereg_search_setpos' => 'Safe\mb_ereg_search_setpos', + 'mb_get_info' => 'Safe\mb_get_info', 'mb_http_output' => 'Safe\mb_http_output', 'mb_internal_encoding' => 'Safe\mb_internal_encoding', 'mb_ord' => 'Safe\mb_ord', @@ -471,28 +490,13 @@ 'mime_content_type' => 'Safe\mime_content_type', 'mkdir' => 'Safe\mkdir', 'mktime' => 'Safe\mktime', + 'msg_get_queue' => 'Safe\msg_get_queue', 'msg_queue_exists' => 'Safe\msg_queue_exists', 'msg_receive' => 'Safe\msg_receive', 'msg_remove_queue' => 'Safe\msg_remove_queue', 'msg_send' => 'Safe\msg_send', 'msg_set_queue' => 'Safe\msg_set_queue', - 'msql_affected_rows' => 'Safe\msql_affected_rows', - 'msql_close' => 'Safe\msql_close', - 'msql_connect' => 'Safe\msql_connect', - 'msql_create_db' => 'Safe\msql_create_db', - 'msql_data_seek' => 'Safe\msql_data_seek', - 'msql_db_query' => 'Safe\msql_db_query', - 'msql_drop_db' => 'Safe\msql_drop_db', - 'msql_field_len' => 'Safe\msql_field_len', - 'msql_field_name' => 'Safe\msql_field_name', - 'msql_field_seek' => 'Safe\msql_field_seek', - 'msql_field_table' => 'Safe\msql_field_table', - 'msql_field_type' => 'Safe\msql_field_type', - 'msql_free_result' => 'Safe\msql_free_result', - 'msql_pconnect' => 'Safe\msql_pconnect', - 'msql_query' => 'Safe\msql_query', - 'msql_select_db' => 'Safe\msql_select_db', - 'mysqli_get_cache_stats' => 'Safe\mysqli_get_cache_stats', + 'msg_stat_queue' => 'Safe\msg_stat_queue', 'mysqli_get_client_stats' => 'Safe\mysqli_get_client_stats', 'mysqlnd_ms_dump_servers' => 'Safe\mysqlnd_ms_dump_servers', 'mysqlnd_ms_fabric_select_global' => 'Safe\mysqlnd_ms_fabric_select_global', @@ -534,8 +538,10 @@ 'mysql_unbuffered_query' => 'Safe\mysql_unbuffered_query', 'natcasesort' => 'Safe\natcasesort', 'natsort' => 'Safe\natsort', + 'ob_clean' => 'Safe\ob_clean', 'ob_end_clean' => 'Safe\ob_end_clean', 'ob_end_flush' => 'Safe\ob_end_flush', + 'ob_flush' => 'Safe\ob_flush', 'oci_bind_array_by_name' => 'Safe\oci_bind_array_by_name', 'oci_bind_by_name' => 'Safe\oci_bind_by_name', 'oci_cancel' => 'Safe\oci_cancel', @@ -579,6 +585,8 @@ 'odbc_columnprivileges' => 'Safe\odbc_columnprivileges', 'odbc_columns' => 'Safe\odbc_columns', 'odbc_commit' => 'Safe\odbc_commit', + 'odbc_connect' => 'Safe\odbc_connect', + 'odbc_cursor' => 'Safe\odbc_cursor', 'odbc_data_source' => 'Safe\odbc_data_source', 'odbc_exec' => 'Safe\odbc_exec', 'odbc_execute' => 'Safe\odbc_execute', @@ -591,8 +599,11 @@ 'odbc_foreignkeys' => 'Safe\odbc_foreignkeys', 'odbc_gettypeinfo' => 'Safe\odbc_gettypeinfo', 'odbc_longreadlen' => 'Safe\odbc_longreadlen', + 'odbc_pconnect' => 'Safe\odbc_pconnect', 'odbc_prepare' => 'Safe\odbc_prepare', 'odbc_primarykeys' => 'Safe\odbc_primarykeys', + 'odbc_procedurecolumns' => 'Safe\odbc_procedurecolumns', + 'odbc_procedures' => 'Safe\odbc_procedures', 'odbc_result' => 'Safe\odbc_result', 'odbc_result_all' => 'Safe\odbc_result_all', 'odbc_rollback' => 'Safe\odbc_rollback', @@ -653,78 +664,6 @@ 'pcntl_signal_dispatch' => 'Safe\pcntl_signal_dispatch', 'pcntl_sigprocmask' => 'Safe\pcntl_sigprocmask', 'pcntl_strerror' => 'Safe\pcntl_strerror', - 'PDF_activate_item' => 'Safe\PDF_activate_item', - 'PDF_add_locallink' => 'Safe\PDF_add_locallink', - 'PDF_add_nameddest' => 'Safe\PDF_add_nameddest', - 'PDF_add_note' => 'Safe\PDF_add_note', - 'PDF_add_pdflink' => 'Safe\PDF_add_pdflink', - 'PDF_add_thumbnail' => 'Safe\PDF_add_thumbnail', - 'PDF_add_weblink' => 'Safe\PDF_add_weblink', - 'PDF_attach_file' => 'Safe\PDF_attach_file', - 'PDF_begin_layer' => 'Safe\PDF_begin_layer', - 'PDF_begin_page' => 'Safe\PDF_begin_page', - 'PDF_begin_page_ext' => 'Safe\PDF_begin_page_ext', - 'PDF_circle' => 'Safe\PDF_circle', - 'PDF_clip' => 'Safe\PDF_clip', - 'PDF_close' => 'Safe\PDF_close', - 'PDF_closepath' => 'Safe\PDF_closepath', - 'PDF_closepath_fill_stroke' => 'Safe\PDF_closepath_fill_stroke', - 'PDF_closepath_stroke' => 'Safe\PDF_closepath_stroke', - 'PDF_close_pdi' => 'Safe\PDF_close_pdi', - 'PDF_close_pdi_page' => 'Safe\PDF_close_pdi_page', - 'PDF_concat' => 'Safe\PDF_concat', - 'PDF_continue_text' => 'Safe\PDF_continue_text', - 'PDF_curveto' => 'Safe\PDF_curveto', - 'PDF_delete' => 'Safe\PDF_delete', - 'PDF_end_layer' => 'Safe\PDF_end_layer', - 'PDF_end_page' => 'Safe\PDF_end_page', - 'PDF_end_page_ext' => 'Safe\PDF_end_page_ext', - 'PDF_end_pattern' => 'Safe\PDF_end_pattern', - 'PDF_end_template' => 'Safe\PDF_end_template', - 'PDF_fill' => 'Safe\PDF_fill', - 'PDF_fill_stroke' => 'Safe\PDF_fill_stroke', - 'PDF_fit_image' => 'Safe\PDF_fit_image', - 'PDF_fit_pdi_page' => 'Safe\PDF_fit_pdi_page', - 'PDF_fit_textline' => 'Safe\PDF_fit_textline', - 'PDF_initgraphics' => 'Safe\PDF_initgraphics', - 'PDF_lineto' => 'Safe\PDF_lineto', - 'PDF_makespotcolor' => 'Safe\PDF_makespotcolor', - 'PDF_moveto' => 'Safe\PDF_moveto', - 'PDF_open_file' => 'Safe\PDF_open_file', - 'PDF_place_image' => 'Safe\PDF_place_image', - 'PDF_place_pdi_page' => 'Safe\PDF_place_pdi_page', - 'PDF_rect' => 'Safe\PDF_rect', - 'PDF_restore' => 'Safe\PDF_restore', - 'PDF_rotate' => 'Safe\PDF_rotate', - 'PDF_save' => 'Safe\PDF_save', - 'PDF_scale' => 'Safe\PDF_scale', - 'PDF_setcolor' => 'Safe\PDF_setcolor', - 'PDF_setdash' => 'Safe\PDF_setdash', - 'PDF_setdashpattern' => 'Safe\PDF_setdashpattern', - 'PDF_setflat' => 'Safe\PDF_setflat', - 'PDF_setfont' => 'Safe\PDF_setfont', - 'PDF_setgray' => 'Safe\PDF_setgray', - 'PDF_setgray_fill' => 'Safe\PDF_setgray_fill', - 'PDF_setgray_stroke' => 'Safe\PDF_setgray_stroke', - 'PDF_setlinejoin' => 'Safe\PDF_setlinejoin', - 'PDF_setlinewidth' => 'Safe\PDF_setlinewidth', - 'PDF_setmatrix' => 'Safe\PDF_setmatrix', - 'PDF_setmiterlimit' => 'Safe\PDF_setmiterlimit', - 'PDF_setrgbcolor' => 'Safe\PDF_setrgbcolor', - 'PDF_setrgbcolor_fill' => 'Safe\PDF_setrgbcolor_fill', - 'PDF_setrgbcolor_stroke' => 'Safe\PDF_setrgbcolor_stroke', - 'PDF_set_border_color' => 'Safe\PDF_set_border_color', - 'PDF_set_border_dash' => 'Safe\PDF_set_border_dash', - 'PDF_set_border_style' => 'Safe\PDF_set_border_style', - 'PDF_set_info' => 'Safe\PDF_set_info', - 'PDF_set_layer_dependency' => 'Safe\PDF_set_layer_dependency', - 'PDF_set_parameter' => 'Safe\PDF_set_parameter', - 'PDF_set_text_pos' => 'Safe\PDF_set_text_pos', - 'PDF_set_value' => 'Safe\PDF_set_value', - 'PDF_show' => 'Safe\PDF_show', - 'PDF_show_xy' => 'Safe\PDF_show_xy', - 'PDF_skew' => 'Safe\PDF_skew', - 'PDF_stroke' => 'Safe\PDF_stroke', 'pg_cancel_query' => 'Safe\pg_cancel_query', 'pg_client_encoding' => 'Safe\pg_client_encoding', 'pg_close' => 'Safe\pg_close', @@ -781,6 +720,7 @@ 'pg_version' => 'Safe\pg_version', 'phpcredits' => 'Safe\phpcredits', 'phpinfo' => 'Safe\phpinfo', + 'php_sapi_name' => 'Safe\php_sapi_name', 'png2wbmp' => 'Safe\png2wbmp', 'posix_access' => 'Safe\posix_access', 'posix_getgrnam' => 'Safe\posix_getgrnam', @@ -911,10 +851,16 @@ 'sem_release' => 'Safe\sem_release', 'sem_remove' => 'Safe\sem_remove', 'session_abort' => 'Safe\session_abort', + 'session_create_id' => 'Safe\session_create_id', 'session_decode' => 'Safe\session_decode', 'session_destroy' => 'Safe\session_destroy', + 'session_encode' => 'Safe\session_encode', + 'session_id' => 'Safe\session_id', + 'session_module_name' => 'Safe\session_module_name', + 'session_name' => 'Safe\session_name', 'session_regenerate_id' => 'Safe\session_regenerate_id', 'session_reset' => 'Safe\session_reset', + 'session_save_path' => 'Safe\session_save_path', 'session_unset' => 'Safe\session_unset', 'session_write_close' => 'Safe\session_write_close', 'settype' => 'Safe\settype', @@ -923,7 +869,8 @@ 'sha1_file' => 'Safe\sha1_file', 'shmop_delete' => 'Safe\shmop_delete', 'shmop_read' => 'Safe\shmop_read', - 'shmop_write' => 'Safe\shmop_write', + 'shm_attach' => 'Safe\shm_attach', + 'shm_detach' => 'Safe\shm_detach', 'shm_put_var' => 'Safe\shm_put_var', 'shm_remove' => 'Safe\shm_remove', 'shm_remove_var' => 'Safe\shm_remove_var', @@ -958,11 +905,8 @@ 'socket_wsaprotocol_info_export' => 'Safe\socket_wsaprotocol_info_export', 'socket_wsaprotocol_info_import' => 'Safe\socket_wsaprotocol_info_import', 'socket_wsaprotocol_info_release' => 'Safe\socket_wsaprotocol_info_release', - 'sodium_crypto_pwhash' => 'Safe\sodium_crypto_pwhash', - 'sodium_crypto_pwhash_str' => 'Safe\sodium_crypto_pwhash_str', 'solr_get_version' => 'Safe\solr_get_version', 'sort' => 'Safe\sort', - 'soundex' => 'Safe\soundex', 'spl_autoload_register' => 'Safe\spl_autoload_register', 'spl_autoload_unregister' => 'Safe\spl_autoload_unregister', 'sprintf' => 'Safe\sprintf', @@ -1034,6 +978,7 @@ 'symlink' => 'Safe\symlink', 'syslog' => 'Safe\syslog', 'system' => 'Safe\system', + 'sys_getloadavg' => 'Safe\sys_getloadavg', 'tempnam' => 'Safe\tempnam', 'timezone_name_from_abbr' => 'Safe\timezone_name_from_abbr', 'time_nanosleep' => 'Safe\time_nanosleep', @@ -1042,11 +987,14 @@ 'touch' => 'Safe\touch', 'uasort' => 'Safe\uasort', 'uksort' => 'Safe\uksort', + 'unixtojd' => 'Safe\unixtojd', 'unlink' => 'Safe\unlink', 'unpack' => 'Safe\unpack', 'uopz_extend' => 'Safe\uopz_extend', 'uopz_implement' => 'Safe\uopz_implement', 'usort' => 'Safe\usort', + 'variant_date_to_timestamp' => 'Safe\variant_date_to_timestamp', + 'variant_round' => 'Safe\variant_round', 'virtual' => 'Safe\virtual', 'vsprintf' => 'Safe\vsprintf', 'xdiff_file_bdiff' => 'Safe\xdiff_file_bdiff', @@ -1061,6 +1009,7 @@ 'xmlrpc_set_type' => 'Safe\xmlrpc_set_type', 'xml_parser_create' => 'Safe\xml_parser_create', 'xml_parser_create_ns' => 'Safe\xml_parser_create_ns', + 'xml_parser_free' => 'Safe\xml_parser_free', 'xml_set_object' => 'Safe\xml_set_object', 'yaml_parse' => 'Safe\yaml_parse', 'yaml_parse_file' => 'Safe\yaml_parse_file',