mirror of
https://github.com/php-win-ext/phpredis.git
synced 2026-03-24 00:52:16 +01:00
Add hGetWithMeta method
This commit is contained in:
committed by
Michael Grunder
parent
9dfc377902
commit
7d3b2e4d6d
7
redis.c
7
redis.c
@@ -1928,6 +1928,13 @@ PHP_METHOD(Redis, hGet)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto string Redis::hgetWithMeta(string key, string mem) */
|
||||
PHP_METHOD(Redis, hGetWithMeta)
|
||||
{
|
||||
REDIS_PROCESS_KW_CMD("HGET", redis_key_str_cmd, redis_bulk_withmeta_response);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto long Redis::hLen(string key) */
|
||||
PHP_METHOD(Redis, hLen)
|
||||
{
|
||||
|
||||
@@ -1759,6 +1759,17 @@ class Redis {
|
||||
*/
|
||||
public function hGetAll(string $key): Redis|array|false;
|
||||
|
||||
/**
|
||||
* Retrieve a value and metadata of hash field.
|
||||
*
|
||||
* @param string $key The key to query
|
||||
* @param string $member The key to query
|
||||
* @return mixed
|
||||
*
|
||||
* @example $redis->hgetWithMeta('foo', 'field');
|
||||
*/
|
||||
public function hGetWithMeta(string $key, string $member): mixed;
|
||||
|
||||
/**
|
||||
* Increment a hash field's value by an integer
|
||||
*
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 619374bbad94b8a9992f9c11abd12362e07359d0 */
|
||||
* Stub hash: 358ec6a551a8da176ffa340e6f9696389b614758 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
|
||||
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
|
||||
@@ -417,6 +417,8 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_Redis_hGetAll arginfo_class_Redis_getWithMeta
|
||||
|
||||
#define arginfo_class_Redis_hGetWithMeta arginfo_class_Redis_hGet
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_Redis_hIncrBy, 0, 3, Redis, MAY_BE_LONG|MAY_BE_FALSE)
|
||||
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, field, IS_STRING, 0)
|
||||
@@ -1297,7 +1299,6 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_Redis_zunionstore arginfo_class_Redis_zinterstore
|
||||
|
||||
|
||||
ZEND_METHOD(Redis, __construct);
|
||||
ZEND_METHOD(Redis, __destruct);
|
||||
ZEND_METHOD(Redis, _compress);
|
||||
@@ -1393,6 +1394,7 @@ ZEND_METHOD(Redis, hDel);
|
||||
ZEND_METHOD(Redis, hExists);
|
||||
ZEND_METHOD(Redis, hGet);
|
||||
ZEND_METHOD(Redis, hGetAll);
|
||||
ZEND_METHOD(Redis, hGetWithMeta);
|
||||
ZEND_METHOD(Redis, hIncrBy);
|
||||
ZEND_METHOD(Redis, hIncrByFloat);
|
||||
ZEND_METHOD(Redis, hKeys);
|
||||
@@ -1582,7 +1584,6 @@ ZEND_METHOD(Redis, zscan);
|
||||
ZEND_METHOD(Redis, zunion);
|
||||
ZEND_METHOD(Redis, zunionstore);
|
||||
|
||||
|
||||
static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, __construct, arginfo_class_Redis___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, __destruct, arginfo_class_Redis___destruct, ZEND_ACC_PUBLIC)
|
||||
@@ -1624,7 +1625,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, decrBy, arginfo_class_Redis_decrBy, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, del, arginfo_class_Redis_del, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, delifeq, arginfo_class_Redis_delifeq, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, delete, del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("delete", zim_Redis_del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("delete", zim_Redis_del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, discard, arginfo_class_Redis_discard, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, dump, arginfo_class_Redis_dump, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, echo, arginfo_class_Redis_echo, ZEND_ACC_PUBLIC)
|
||||
@@ -1680,6 +1685,7 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, hExists, arginfo_class_Redis_hExists, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGet, arginfo_class_Redis_hGet, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGetAll, arginfo_class_Redis_hGetAll, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGetWithMeta, arginfo_class_Redis_hGetWithMeta, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hIncrBy, arginfo_class_Redis_hIncrBy, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hIncrByFloat, arginfo_class_Redis_hIncrByFloat, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hKeys, arginfo_class_Redis_hKeys, ZEND_ACC_PUBLIC)
|
||||
@@ -1735,7 +1741,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, msetnx, arginfo_class_Redis_msetnx, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, multi, arginfo_class_Redis_multi, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, object, arginfo_class_Redis_object, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, open, connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("open", zim_Redis_connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("open", zim_Redis_connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, pconnect, arginfo_class_Redis_pconnect, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, persist, arginfo_class_Redis_persist, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pexpire, arginfo_class_Redis_pexpire, ZEND_ACC_PUBLIC)
|
||||
@@ -1745,7 +1755,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, pfmerge, arginfo_class_Redis_pfmerge, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, ping, arginfo_class_Redis_ping, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pipeline, arginfo_class_Redis_pipeline, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, popen, pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("popen", zim_Redis_pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("popen", zim_Redis_pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, psetex, arginfo_class_Redis_psetex, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, psubscribe, arginfo_class_Redis_psubscribe, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pttl, arginfo_class_Redis_pttl, ZEND_ACC_PUBLIC)
|
||||
@@ -1873,17 +1887,16 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisException_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
static zend_class_entry *register_class_Redis(void)
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "Redis", class_Redis_methods);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, NULL, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, NULL);
|
||||
#endif
|
||||
|
||||
zval const_REDIS_NOT_FOUND_value;
|
||||
ZVAL_LONG(&const_REDIS_NOT_FOUND_value, REDIS_NOT_FOUND);
|
||||
@@ -2232,7 +2245,6 @@ static zend_class_entry *register_class_Redis(void)
|
||||
zend_string *const_OPT_BACKOFF_CAP_name = zend_string_init_interned("OPT_BACKOFF_CAP", sizeof("OPT_BACKOFF_CAP") - 1, 1);
|
||||
zend_declare_class_constant_ex(class_entry, const_OPT_BACKOFF_CAP_name, &const_OPT_BACKOFF_CAP_value, ZEND_ACC_PUBLIC, NULL);
|
||||
zend_string_release(const_OPT_BACKOFF_CAP_name);
|
||||
#if (PHP_VERSION_ID >= 80000)
|
||||
|
||||
|
||||
zend_string *attribute_name_SensitiveParameter_func_auth_arg0_0 = zend_string_init_interned("SensitiveParameter", sizeof("SensitiveParameter") - 1, 1);
|
||||
@@ -2242,7 +2254,6 @@ static zend_class_entry *register_class_Redis(void)
|
||||
zend_string *attribute_name_SensitiveParameter_func_migrate_arg7_0 = zend_string_init_interned("SensitiveParameter", sizeof("SensitiveParameter") - 1, 1);
|
||||
zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "migrate", sizeof("migrate") - 1), 7, attribute_name_SensitiveParameter_func_migrate_arg7_0, 0);
|
||||
zend_string_release(attribute_name_SensitiveParameter_func_migrate_arg7_0);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
@@ -2251,8 +2262,12 @@ static zend_class_entry *register_class_RedisException(zend_class_entry *class_e
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisException", class_RedisException_methods);
|
||||
INIT_CLASS_ENTRY(ce, "RedisException", NULL);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, class_entry_RuntimeException, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, class_entry_RuntimeException);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
|
||||
@@ -1278,6 +1278,12 @@ PHP_METHOD(RedisCluster, hget) {
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto string RedisCluster::hgetWithMeta(string key, string mem) */
|
||||
PHP_METHOD(RedisCluster, hgetWithMeta) {
|
||||
CLUSTER_PROCESS_KW_CMD("HGET", redis_key_str_cmd, cluster_bulk_withmeta_resp, 1);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool RedisCluster::hset(string key, string mem, string val) */
|
||||
PHP_METHOD(RedisCluster, hset) {
|
||||
CLUSTER_PROCESS_CMD(hset, cluster_long_resp, 0);
|
||||
|
||||
@@ -480,6 +480,11 @@ class RedisCluster {
|
||||
*/
|
||||
public function hgetall(string $key): RedisCluster|array|false;
|
||||
|
||||
/**
|
||||
* @see Redis::hgetWithMeta
|
||||
*/
|
||||
public function hgetWithMeta(string $key, string $member): mixed;
|
||||
|
||||
/**
|
||||
* @see Redis::hincrby
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: d504e84c671162c4ec78aa1e6bb5a47c695ee90d */
|
||||
* Stub hash: 6561a50ccac9841ac01a53feb5f88e7f592e1bc2 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
|
||||
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
|
||||
@@ -392,6 +392,8 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_RedisCluster_hgetall arginfo_class_RedisCluster_getWithMeta
|
||||
|
||||
#define arginfo_class_RedisCluster_hgetWithMeta arginfo_class_RedisCluster_hget
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_hincrby, 0, 3, RedisCluster, MAY_BE_LONG|MAY_BE_FALSE)
|
||||
ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, member, IS_STRING, 0)
|
||||
@@ -1179,7 +1181,6 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_TYPE_MASK_EX(arginfo_class_RedisCluster_zdiff, 0,
|
||||
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
|
||||
ZEND_METHOD(RedisCluster, __construct);
|
||||
ZEND_METHOD(RedisCluster, _compress);
|
||||
ZEND_METHOD(RedisCluster, _uncompress);
|
||||
@@ -1265,6 +1266,7 @@ ZEND_METHOD(RedisCluster, hdel);
|
||||
ZEND_METHOD(RedisCluster, hexists);
|
||||
ZEND_METHOD(RedisCluster, hget);
|
||||
ZEND_METHOD(RedisCluster, hgetall);
|
||||
ZEND_METHOD(RedisCluster, hgetWithMeta);
|
||||
ZEND_METHOD(RedisCluster, hincrby);
|
||||
ZEND_METHOD(RedisCluster, hincrbyfloat);
|
||||
ZEND_METHOD(RedisCluster, hkeys);
|
||||
@@ -1435,7 +1437,6 @@ ZEND_METHOD(RedisCluster, zdiffstore);
|
||||
ZEND_METHOD(RedisCluster, zunion);
|
||||
ZEND_METHOD(RedisCluster, zdiff);
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_ME(RedisCluster, __construct, arginfo_class_RedisCluster___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, _compress, arginfo_class_RedisCluster__compress, ZEND_ACC_PUBLIC)
|
||||
@@ -1522,6 +1523,7 @@ static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_ME(RedisCluster, hexists, arginfo_class_RedisCluster_hexists, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hget, arginfo_class_RedisCluster_hget, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hgetall, arginfo_class_RedisCluster_hgetall, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hgetWithMeta, arginfo_class_RedisCluster_hgetWithMeta, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hincrby, arginfo_class_RedisCluster_hincrby, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hincrbyfloat, arginfo_class_RedisCluster_hincrbyfloat, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hkeys, arginfo_class_RedisCluster_hkeys, ZEND_ACC_PUBLIC)
|
||||
@@ -1694,17 +1696,16 @@ static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisClusterException_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
static zend_class_entry *register_class_RedisCluster(void)
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisCluster", class_RedisCluster_methods);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, NULL, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, NULL);
|
||||
#endif
|
||||
|
||||
zval const_OPT_SLAVE_FAILOVER_value;
|
||||
ZVAL_LONG(&const_OPT_SLAVE_FAILOVER_value, REDIS_OPT_FAILOVER);
|
||||
@@ -1735,13 +1736,11 @@ static zend_class_entry *register_class_RedisCluster(void)
|
||||
zend_string *const_FAILOVER_DISTRIBUTE_SLAVES_name = zend_string_init_interned("FAILOVER_DISTRIBUTE_SLAVES", sizeof("FAILOVER_DISTRIBUTE_SLAVES") - 1, 1);
|
||||
zend_declare_class_constant_ex(class_entry, const_FAILOVER_DISTRIBUTE_SLAVES_name, &const_FAILOVER_DISTRIBUTE_SLAVES_value, ZEND_ACC_PUBLIC, NULL);
|
||||
zend_string_release(const_FAILOVER_DISTRIBUTE_SLAVES_name);
|
||||
#if (PHP_VERSION_ID >= 80000)
|
||||
|
||||
|
||||
zend_string *attribute_name_SensitiveParameter_func___construct_arg5_0 = zend_string_init_interned("SensitiveParameter", sizeof("SensitiveParameter") - 1, 1);
|
||||
zend_add_parameter_attribute(zend_hash_str_find_ptr(&class_entry->function_table, "__construct", sizeof("__construct") - 1), 5, attribute_name_SensitiveParameter_func___construct_arg5_0, 0);
|
||||
zend_string_release(attribute_name_SensitiveParameter_func___construct_arg5_0);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
@@ -1750,8 +1749,12 @@ static zend_class_entry *register_class_RedisClusterException(zend_class_entry *
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisClusterException", class_RedisClusterException_methods);
|
||||
INIT_CLASS_ENTRY(ce, "RedisClusterException", NULL);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, class_entry_RuntimeException, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, class_entry_RuntimeException);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: d504e84c671162c4ec78aa1e6bb5a47c695ee90d */
|
||||
* Stub hash: 6561a50ccac9841ac01a53feb5f88e7f592e1bc2 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, name)
|
||||
@@ -345,6 +345,8 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_RedisCluster_hgetall arginfo_class_RedisCluster__prefix
|
||||
|
||||
#define arginfo_class_RedisCluster_hgetWithMeta arginfo_class_RedisCluster_hexists
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_hincrby, 0, 0, 3)
|
||||
ZEND_ARG_INFO(0, key)
|
||||
ZEND_ARG_INFO(0, member)
|
||||
@@ -1008,7 +1010,6 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_zdiff, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, options)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
|
||||
ZEND_METHOD(RedisCluster, __construct);
|
||||
ZEND_METHOD(RedisCluster, _compress);
|
||||
ZEND_METHOD(RedisCluster, _uncompress);
|
||||
@@ -1094,6 +1095,7 @@ ZEND_METHOD(RedisCluster, hdel);
|
||||
ZEND_METHOD(RedisCluster, hexists);
|
||||
ZEND_METHOD(RedisCluster, hget);
|
||||
ZEND_METHOD(RedisCluster, hgetall);
|
||||
ZEND_METHOD(RedisCluster, hgetWithMeta);
|
||||
ZEND_METHOD(RedisCluster, hincrby);
|
||||
ZEND_METHOD(RedisCluster, hincrbyfloat);
|
||||
ZEND_METHOD(RedisCluster, hkeys);
|
||||
@@ -1264,7 +1266,6 @@ ZEND_METHOD(RedisCluster, zdiffstore);
|
||||
ZEND_METHOD(RedisCluster, zunion);
|
||||
ZEND_METHOD(RedisCluster, zdiff);
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_ME(RedisCluster, __construct, arginfo_class_RedisCluster___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, _compress, arginfo_class_RedisCluster__compress, ZEND_ACC_PUBLIC)
|
||||
@@ -1351,6 +1352,7 @@ static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_ME(RedisCluster, hexists, arginfo_class_RedisCluster_hexists, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hget, arginfo_class_RedisCluster_hget, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hgetall, arginfo_class_RedisCluster_hgetall, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hgetWithMeta, arginfo_class_RedisCluster_hgetWithMeta, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hincrby, arginfo_class_RedisCluster_hincrby, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hincrbyfloat, arginfo_class_RedisCluster_hincrbyfloat, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisCluster, hkeys, arginfo_class_RedisCluster_hkeys, ZEND_ACC_PUBLIC)
|
||||
@@ -1523,17 +1525,16 @@ static const zend_function_entry class_RedisCluster_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisClusterException_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
static zend_class_entry *register_class_RedisCluster(void)
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisCluster", class_RedisCluster_methods);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, NULL, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, NULL);
|
||||
#endif
|
||||
|
||||
zval const_OPT_SLAVE_FAILOVER_value;
|
||||
ZVAL_LONG(&const_OPT_SLAVE_FAILOVER_value, REDIS_OPT_FAILOVER);
|
||||
@@ -1572,8 +1573,12 @@ static zend_class_entry *register_class_RedisClusterException(zend_class_entry *
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisClusterException", class_RedisClusterException_methods);
|
||||
INIT_CLASS_ENTRY(ce, "RedisClusterException", NULL);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, class_entry_RuntimeException, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, class_entry_RuntimeException);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 619374bbad94b8a9992f9c11abd12362e07359d0 */
|
||||
* Stub hash: 358ec6a551a8da176ffa340e6f9696389b614758 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
|
||||
ZEND_ARG_INFO(0, options)
|
||||
@@ -379,6 +379,8 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_Redis_hGetAll arginfo_class_Redis__prefix
|
||||
|
||||
#define arginfo_class_Redis_hGetWithMeta arginfo_class_Redis_hGet
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_hIncrBy, 0, 0, 3)
|
||||
ZEND_ARG_INFO(0, key)
|
||||
ZEND_ARG_INFO(0, field)
|
||||
@@ -1129,7 +1131,6 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_Redis_zunionstore arginfo_class_Redis_zinterstore
|
||||
|
||||
|
||||
ZEND_METHOD(Redis, __construct);
|
||||
ZEND_METHOD(Redis, __destruct);
|
||||
ZEND_METHOD(Redis, _compress);
|
||||
@@ -1225,6 +1226,7 @@ ZEND_METHOD(Redis, hDel);
|
||||
ZEND_METHOD(Redis, hExists);
|
||||
ZEND_METHOD(Redis, hGet);
|
||||
ZEND_METHOD(Redis, hGetAll);
|
||||
ZEND_METHOD(Redis, hGetWithMeta);
|
||||
ZEND_METHOD(Redis, hIncrBy);
|
||||
ZEND_METHOD(Redis, hIncrByFloat);
|
||||
ZEND_METHOD(Redis, hKeys);
|
||||
@@ -1414,7 +1416,6 @@ ZEND_METHOD(Redis, zscan);
|
||||
ZEND_METHOD(Redis, zunion);
|
||||
ZEND_METHOD(Redis, zunionstore);
|
||||
|
||||
|
||||
static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, __construct, arginfo_class_Redis___construct, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, __destruct, arginfo_class_Redis___destruct, ZEND_ACC_PUBLIC)
|
||||
@@ -1456,7 +1457,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, decrBy, arginfo_class_Redis_decrBy, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, del, arginfo_class_Redis_del, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, delifeq, arginfo_class_Redis_delifeq, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, delete, del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("delete", zim_Redis_del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("delete", zim_Redis_del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, discard, arginfo_class_Redis_discard, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, dump, arginfo_class_Redis_dump, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, echo, arginfo_class_Redis_echo, ZEND_ACC_PUBLIC)
|
||||
@@ -1512,6 +1517,7 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, hExists, arginfo_class_Redis_hExists, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGet, arginfo_class_Redis_hGet, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGetAll, arginfo_class_Redis_hGetAll, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hGetWithMeta, arginfo_class_Redis_hGetWithMeta, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hIncrBy, arginfo_class_Redis_hIncrBy, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hIncrByFloat, arginfo_class_Redis_hIncrByFloat, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, hKeys, arginfo_class_Redis_hKeys, ZEND_ACC_PUBLIC)
|
||||
@@ -1567,7 +1573,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, msetnx, arginfo_class_Redis_msetnx, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, multi, arginfo_class_Redis_multi, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, object, arginfo_class_Redis_object, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, open, connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("open", zim_Redis_connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("open", zim_Redis_connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, pconnect, arginfo_class_Redis_pconnect, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, persist, arginfo_class_Redis_persist, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pexpire, arginfo_class_Redis_pexpire, ZEND_ACC_PUBLIC)
|
||||
@@ -1577,7 +1587,11 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_ME(Redis, pfmerge, arginfo_class_Redis_pfmerge, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, ping, arginfo_class_Redis_ping, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pipeline, arginfo_class_Redis_pipeline, ZEND_ACC_PUBLIC)
|
||||
ZEND_MALIAS(Redis, popen, pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
ZEND_RAW_FENTRY("popen", zim_Redis_pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED, NULL, NULL)
|
||||
#else
|
||||
ZEND_RAW_FENTRY("popen", zim_Redis_pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
|
||||
#endif
|
||||
ZEND_ME(Redis, psetex, arginfo_class_Redis_psetex, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, psubscribe, arginfo_class_Redis_psubscribe, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(Redis, pttl, arginfo_class_Redis_pttl, ZEND_ACC_PUBLIC)
|
||||
@@ -1705,17 +1719,16 @@ static const zend_function_entry class_Redis_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
|
||||
static const zend_function_entry class_RedisException_methods[] = {
|
||||
ZEND_FE_END
|
||||
};
|
||||
|
||||
static zend_class_entry *register_class_Redis(void)
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "Redis", class_Redis_methods);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, NULL, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, NULL);
|
||||
#endif
|
||||
|
||||
zval const_REDIS_NOT_FOUND_value;
|
||||
ZVAL_LONG(&const_REDIS_NOT_FOUND_value, REDIS_NOT_FOUND);
|
||||
@@ -2072,8 +2085,12 @@ static zend_class_entry *register_class_RedisException(zend_class_entry *class_e
|
||||
{
|
||||
zend_class_entry ce, *class_entry;
|
||||
|
||||
INIT_CLASS_ENTRY(ce, "RedisException", class_RedisException_methods);
|
||||
INIT_CLASS_ENTRY(ce, "RedisException", NULL);
|
||||
#if (PHP_VERSION_ID >= 80400)
|
||||
class_entry = zend_register_internal_class_with_flags(&ce, class_entry_RuntimeException, 0);
|
||||
#else
|
||||
class_entry = zend_register_internal_class_ex(&ce, class_entry_RuntimeException);
|
||||
#endif
|
||||
|
||||
return class_entry;
|
||||
}
|
||||
|
||||
@@ -5971,6 +5971,72 @@ class Redis_Test extends TestSuite {
|
||||
$this->redis->setOption(Redis::OPT_SERIALIZER, $serializer);
|
||||
}
|
||||
|
||||
public function testHGetWithMeta() {
|
||||
$this->redis->del('hash');
|
||||
$this->assertFalse($this->redis->hget('hash', 'member'));
|
||||
|
||||
$result = $this->redis->hgetWithMeta('hash', 'member');
|
||||
$this->assertIsArray($result, 2);
|
||||
$this->assertArrayKeyEquals($result, 0, false);
|
||||
$this->assertArrayKey($result, 1, function ($metadata) {
|
||||
$this->assertIsArray($metadata);
|
||||
$this->assertArrayKeyEquals($metadata, 'length', -1);
|
||||
return true;
|
||||
});
|
||||
|
||||
if ($this->havePipeline()) {
|
||||
$batch = $this->redis->pipeline()
|
||||
->hget('hash', 'member')
|
||||
->hgetWithMeta('hash', 'member')
|
||||
->exec();
|
||||
$this->assertIsArray($batch, 2);
|
||||
$this->assertArrayKeyEquals($batch, 0, false);
|
||||
$this->assertArrayKey($batch, 1, function ($result) {
|
||||
$this->assertIsArray($result, 2);
|
||||
$this->assertArrayKeyEquals($result, 0, false);
|
||||
$this->assertArrayKey($result, 1, function ($metadata) {
|
||||
$this->assertIsArray($metadata);
|
||||
$this->assertArrayKeyEquals($metadata, 'length', -1);
|
||||
return true;
|
||||
});
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
$batch = $this->redis->multi()
|
||||
->hset('hash', 'member', 'value')
|
||||
->hgetWithMeta('hash', 'member')
|
||||
->exec();
|
||||
$this->assertIsArray($batch, 2);
|
||||
$this->assertArrayKeyEquals($batch, 0, 1);
|
||||
$this->assertArrayKey($batch, 1, function ($result) {
|
||||
$this->assertIsArray($result, 2);
|
||||
$this->assertArrayKeyEquals($result, 0, 'value');
|
||||
$this->assertArrayKey($result, 1, function ($metadata) {
|
||||
$this->assertIsArray($metadata);
|
||||
$this->assertArrayKeyEquals($metadata, 'length', strlen('value'));
|
||||
return true;
|
||||
});
|
||||
return true;
|
||||
});
|
||||
|
||||
$serializer = $this->redis->getOption(Redis::OPT_SERIALIZER);
|
||||
$this->redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_PHP);
|
||||
$this->assertEquals(0, $this->redis->hset('hash', 'member', false));
|
||||
|
||||
$result = $this->redis->hgetWithMeta('hash', 'member');
|
||||
$this->assertIsArray($result, 2);
|
||||
$this->assertArrayKeyEquals($result, 0, false);
|
||||
$this->assertArrayKey($result, 1, function ($metadata) {
|
||||
$this->assertIsArray($metadata);
|
||||
$this->assertArrayKeyEquals($metadata, 'length', strlen(serialize(false)));
|
||||
return true;
|
||||
});
|
||||
|
||||
$this->assertFalse($this->redis->hget('hash', 'member'));
|
||||
$this->redis->setOption(Redis::OPT_SERIALIZER, $serializer);
|
||||
}
|
||||
|
||||
public function testPrefix() {
|
||||
// no prefix
|
||||
$this->redis->setOption(Redis::OPT_PREFIX, '');
|
||||
|
||||
Reference in New Issue
Block a user