Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/phpredis/phpredis.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2020-12-13 12:45:38 +0300
committerPavlo Yatsukhnenko <yatsukhnenko@gmail.com>2021-08-26 09:55:38 +0300
commiteca6278f6a36ca4020279040cde4ae403691c92f (patch)
tree18a6b2d1af4ef3fd53a332f8877e3647d9977598
parentc8ae53952349441ae0ecaedf60bd4381d33cba76 (diff)
[WIP] Use stub/arginfo for RedisCluster
-rw-r--r--redis.c6
-rw-r--r--redis_cluster.c270
-rw-r--r--redis_cluster.h205
-rw-r--r--redis_cluster.stub.php211
-rw-r--r--redis_cluster_arginfo.h100
-rw-r--r--redis_cluster_legacy_arginfo.h97
6 files changed, 422 insertions, 467 deletions
diff --git a/redis.c b/redis.c
index 52b50454..f560b28e 100644
--- a/redis.c
+++ b/redis.c
@@ -61,10 +61,6 @@ zend_class_entry *redis_ce;
zend_class_entry *redis_exception_ce;
extern int le_cluster_slot_cache;
-
-extern zend_function_entry redis_array_functions[];
-extern zend_function_entry redis_cluster_functions[];
-
int le_redis_pconnect;
PHP_INI_BEGIN()
@@ -867,7 +863,7 @@ PHP_MINIT_FUNCTION(redis)
redis_array_ce->create_object = create_redis_array_object;
/* RedisCluster class */
- INIT_CLASS_ENTRY(redis_cluster_class_entry, "RedisCluster", redis_cluster_functions);
+ INIT_CLASS_ENTRY(redis_cluster_class_entry, "RedisCluster", redis_cluster_get_methods());
redis_cluster_ce = zend_register_internal_class(&redis_cluster_class_entry);
redis_cluster_ce->create_object = create_cluster_context;
diff --git a/redis_cluster.c b/redis_cluster.c
index 8c451994..140f51bc 100644
--- a/redis_cluster.c
+++ b/redis_cluster.c
@@ -35,268 +35,20 @@ zend_class_entry *redis_cluster_ce;
/* Exception handler */
zend_class_entry *redis_cluster_exception_ce;
+#if PHP_VERSION_ID < 80000
+#include "redis_cluster_legacy_arginfo.h"
+#else
+#include "redis_cluster_arginfo.h"
+#endif
+
+extern const zend_function_entry *redis_cluster_get_methods(void)
+{
+ return class_RedisCluster_methods;
+}
+
/* Handlers for RedisCluster */
zend_object_handlers RedisCluster_handlers;
-ZEND_BEGIN_ARG_INFO_EX(arginfo_ctor, 0, 0, 1)
- ZEND_ARG_INFO(0, name)
- ZEND_ARG_ARRAY_INFO(0, seeds, 0)
- ZEND_ARG_INFO(0, timeout)
- ZEND_ARG_INFO(0, read_timeout)
- ZEND_ARG_INFO(0, persistent)
- ZEND_ARG_INFO(0, auth)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_del, 0, 0, 1)
- ZEND_ARG_INFO(0, key)
- ZEND_ARG_VARIADIC_INFO(0, other_keys)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_mget, 0, 0, 1)
- ZEND_ARG_ARRAY_INFO(0, keys, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_keys, 0, 0, 1)
- ZEND_ARG_INFO(0, pattern)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_key_or_address, 0, 0, 1)
- ZEND_ARG_INFO(0, key_or_address)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_key_or_address_variadic, 0, 0, 1)
- ZEND_ARG_INFO(0, key_or_address)
- ZEND_ARG_INFO(0, arg)
- ZEND_ARG_VARIADIC_INFO(0, other_args)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_info, 0, 0, 1)
- ZEND_ARG_INFO(0, key_or_address)
- ZEND_ARG_INFO(0, option)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_flush, 0, 0, 1)
- ZEND_ARG_INFO(0, key_or_address)
- ZEND_ARG_INFO(0, async)
-ZEND_END_ARG_INFO()
-
-/* Argument info for HSCAN, SSCAN, HSCAN */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_kscan_cl, 0, 0, 2)
- ZEND_ARG_INFO(0, str_key)
- ZEND_ARG_INFO(1, i_iterator)
- ZEND_ARG_INFO(0, str_pattern)
- ZEND_ARG_INFO(0, i_count)
-ZEND_END_ARG_INFO()
-
-/* Argument info for SCAN */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_scan_cl, 0, 0, 2)
- ZEND_ARG_INFO(1, i_iterator)
- ZEND_ARG_INFO(0, str_node)
- ZEND_ARG_INFO(0, str_pattern)
- ZEND_ARG_INFO(0, i_count)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_acl_cl, 0, 0, 2)
- ZEND_ARG_INFO(0, key_or_address)
- ZEND_ARG_INFO(0, subcmd)
- ZEND_ARG_VARIADIC_INFO(0, args)
-ZEND_END_ARG_INFO()
-
-/* Function table */
-zend_function_entry redis_cluster_functions[] = {
- PHP_ME(RedisCluster, __construct, arginfo_ctor, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _masters, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _prefix, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _redir, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _serialize, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _unserialize, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _compress, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _uncompress, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _pack, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, _unpack, arginfo_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, acl, arginfo_acl_cl, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, append, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bgrewriteaof, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bgsave, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bitcount, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bitop, arginfo_bitop, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bitpos, arginfo_bitpos, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, blpop, arginfo_blrpop, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, brpop, arginfo_blrpop, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, brpoplpush, arginfo_brpoplpush, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, clearlasterror, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bzpopmax, arginfo_blrpop, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, bzpopmin, arginfo_blrpop, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, client, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, close, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, cluster, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, command, arginfo_command, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, config, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, dbsize, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, decr, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, decrby, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, del, arginfo_del, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, discard, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, dump, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, echo, arginfo_echo, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, eval, arginfo_eval, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, evalsha, arginfo_evalsha, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, exec, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, exists, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, expire, arginfo_expire, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, expireat, arginfo_key_timestamp, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, flushall, arginfo_flush, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, flushdb, arginfo_flush, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, geoadd, arginfo_geoadd, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, geodist, arginfo_geodist, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, geohash, arginfo_key_members, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, geopos, arginfo_key_members, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, georadius, arginfo_georadius, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, georadius_ro, arginfo_georadius, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, georadiusbymember, arginfo_georadiusbymember, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, georadiusbymember_ro, arginfo_georadiusbymember, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, get, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getbit, arginfo_key_offset, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getlasterror, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getmode, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getoption, arginfo_getoption, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getrange, arginfo_key_start_end, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, getset, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hdel, arginfo_key_members, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hexists, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hget, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hgetall, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hincrby, arginfo_key_member_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hincrbyfloat, arginfo_key_member_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hkeys, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hlen, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hmget, arginfo_hmget, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hmset, arginfo_hmset, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hscan, arginfo_kscan_cl, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hset, arginfo_key_member_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hsetnx, arginfo_key_member_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hstrlen, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, hvals, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, incr, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, incrby, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, incrbyfloat, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, info, arginfo_info, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, keys, arginfo_keys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lastsave, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lget, arginfo_lindex, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lindex, arginfo_lindex, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, linsert, arginfo_linsert, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, llen, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lpop, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lpush, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lpushx, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lrange, arginfo_key_start_end, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lrem, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, lset, arginfo_lset, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, ltrim, arginfo_ltrim, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, mget, arginfo_mget, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, mset, arginfo_pairs, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, msetnx, arginfo_pairs, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, multi, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, object, arginfo_object, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, persist, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pexpire, arginfo_key_timestamp, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pexpireat, arginfo_key_timestamp, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pfadd, arginfo_pfadd, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pfcount, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pfmerge, arginfo_pfmerge, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, ping, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, psetex, arginfo_key_expire_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, psubscribe, arginfo_psubscribe, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pttl, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, publish, arginfo_publish, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, pubsub, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, punsubscribe, arginfo_punsubscribe, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, randomkey, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rawcommand, arginfo_rawcommand, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rename, arginfo_key_newkey, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, renamenx, arginfo_key_newkey, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, restore, arginfo_restore, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, role, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rpop, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rpoplpush, arginfo_rpoplpush, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rpush, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, rpushx, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sadd, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, saddarray, arginfo_sadd_array, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, save, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, scan, arginfo_scan_cl, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, scard, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, script, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sdiff, arginfo_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sdiffstore, arginfo_dst_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, set, arginfo_set, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, setbit, arginfo_key_offset_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, setex, arginfo_key_expire_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, setnx, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, setoption, arginfo_setoption, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, setrange, arginfo_key_offset_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sinter, arginfo_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sinterstore, arginfo_dst_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sismember, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, slowlog, arginfo_key_or_address_variadic, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, smembers, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, smove, arginfo_smove, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sort, arginfo_sort, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, spop, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, srandmember, arginfo_srand_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, srem, arginfo_key_value, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sscan, arginfo_kscan_cl, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, strlen, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, subscribe, arginfo_subscribe, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sunion, arginfo_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, sunionstore, arginfo_dst_nkeys, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, time, arginfo_key_or_address, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, ttl, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, type, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, unsubscribe, arginfo_unsubscribe, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, unlink, arginfo_del, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, unwatch, arginfo_void, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, watch, arginfo_watch, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xack, arginfo_xack, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xadd, arginfo_xadd, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xclaim, arginfo_xclaim, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xdel, arginfo_xdel, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xgroup, arginfo_xgroup, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xinfo, arginfo_xinfo, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xlen, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xpending, arginfo_xpending, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xrange, arginfo_xrange, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xread, arginfo_xread, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xreadgroup, arginfo_xreadgroup, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xrevrange, arginfo_xrange, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, xtrim, arginfo_xtrim, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zadd, arginfo_zadd, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zcard, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zcount, arginfo_key_min_max, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zincrby, arginfo_zincrby, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zinterstore, arginfo_zstore, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zlexcount, arginfo_key_min_max, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zpopmax, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zpopmin, arginfo_key, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrange, arginfo_zrange, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrangebylex, arginfo_zrangebylex, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrangebyscore, arginfo_zrangebyscore, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrank, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrem, arginfo_key_members, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zremrangebylex, arginfo_key_min_max, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zremrangebyrank, arginfo_key_min_max, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zremrangebyscore, arginfo_key_min_max, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrevrange, arginfo_zrange, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrevrangebylex, arginfo_zrangebylex, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrevrangebyscore, arginfo_zrangebyscore, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zrevrank, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zscan, arginfo_kscan_cl, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zscore, arginfo_key_member, ZEND_ACC_PUBLIC)
- PHP_ME(RedisCluster, zunionstore, arginfo_zstore, ZEND_ACC_PUBLIC)
- PHP_FE_END
-};
-
/* Our context seeds will be a hash table with RedisSock* pointers */
static void ht_free_seed(zval *data) {
RedisSock *redis_sock = *(RedisSock**)data;
diff --git a/redis_cluster.h b/redis_cluster.h
index 41f40c1a..d8e62e7f 100644
--- a/redis_cluster.h
+++ b/redis_cluster.h
@@ -91,213 +91,12 @@
} \
resp_func(INTERNAL_FUNCTION_PARAM_PASSTHRU, c, ctx);
+extern const zend_function_entry *redis_cluster_get_methods(void);
+
/* Create cluster context */
zend_object *create_cluster_context(zend_class_entry *class_type);
/* Free cluster context struct */
void free_cluster_context(zend_object *object);
-/* RedisCluster method implementation */
-PHP_METHOD(RedisCluster, __construct);
-PHP_METHOD(RedisCluster, acl);
-PHP_METHOD(RedisCluster, close);
-PHP_METHOD(RedisCluster, get);
-PHP_METHOD(RedisCluster, set);
-PHP_METHOD(RedisCluster, mget);
-PHP_METHOD(RedisCluster, mset);
-PHP_METHOD(RedisCluster, msetnx);
-PHP_METHOD(RedisCluster, mset);
-PHP_METHOD(RedisCluster, del);
-PHP_METHOD(RedisCluster, unlink);
-PHP_METHOD(RedisCluster, dump);
-PHP_METHOD(RedisCluster, setex);
-PHP_METHOD(RedisCluster, psetex);
-PHP_METHOD(RedisCluster, setnx);
-PHP_METHOD(RedisCluster, getset);
-PHP_METHOD(RedisCluster, exists);
-PHP_METHOD(RedisCluster, keys);
-PHP_METHOD(RedisCluster, type);
-PHP_METHOD(RedisCluster, persist);
-PHP_METHOD(RedisCluster, lpop);
-PHP_METHOD(RedisCluster, rpop);
-PHP_METHOD(RedisCluster, spop);
-PHP_METHOD(RedisCluster, rpush);
-PHP_METHOD(RedisCluster, lpush);
-PHP_METHOD(RedisCluster, blpop);
-PHP_METHOD(RedisCluster, brpop);
-PHP_METHOD(RedisCluster, rpushx);
-PHP_METHOD(RedisCluster, lpushx);
-PHP_METHOD(RedisCluster, linsert);
-PHP_METHOD(RedisCluster, lindex);
-PHP_METHOD(RedisCluster, lrem);
-PHP_METHOD(RedisCluster, brpoplpush);
-PHP_METHOD(RedisCluster, rpoplpush);
-PHP_METHOD(RedisCluster, llen);
-PHP_METHOD(RedisCluster, scard);
-PHP_METHOD(RedisCluster, smembers);
-PHP_METHOD(RedisCluster, sismember);
-PHP_METHOD(RedisCluster, sadd);
-PHP_METHOD(RedisCluster, saddarray);
-PHP_METHOD(RedisCluster, srem);
-PHP_METHOD(RedisCluster, sunion);
-PHP_METHOD(RedisCluster, sunionstore);
-PHP_METHOD(RedisCluster, sinter);
-PHP_METHOD(RedisCluster, sinterstore);
-PHP_METHOD(RedisCluster, sdiff);
-PHP_METHOD(RedisCluster, sdiffstore);
-PHP_METHOD(RedisCluster, strlen);
-PHP_METHOD(RedisCluster, ttl);
-PHP_METHOD(RedisCluster, pttl);
-PHP_METHOD(RedisCluster, zcard);
-PHP_METHOD(RedisCluster, zscore);
-PHP_METHOD(RedisCluster, zcount);
-PHP_METHOD(RedisCluster, zrem);
-PHP_METHOD(RedisCluster, zremrangebyscore);
-PHP_METHOD(RedisCluster, zrank);
-PHP_METHOD(RedisCluster, zrevrank);
-PHP_METHOD(RedisCluster, zadd);
-PHP_METHOD(RedisCluster, zincrby);
-PHP_METHOD(RedisCluster, hlen);
-PHP_METHOD(RedisCluster, hget);
-PHP_METHOD(RedisCluster, hkeys);
-PHP_METHOD(RedisCluster, hvals);
-PHP_METHOD(RedisCluster, hmget);
-PHP_METHOD(RedisCluster, hmset);
-PHP_METHOD(RedisCluster, hdel);
-PHP_METHOD(RedisCluster, hgetall);
-PHP_METHOD(RedisCluster, hexists);
-PHP_METHOD(RedisCluster, hincrby);
-PHP_METHOD(RedisCluster, hincrbyfloat);
-PHP_METHOD(RedisCluster, hset);
-PHP_METHOD(RedisCluster, hsetnx);
-PHP_METHOD(RedisCluster, hstrlen);
-PHP_METHOD(RedisCluster, incr);
-PHP_METHOD(RedisCluster, decr);
-PHP_METHOD(RedisCluster, incrby);
-PHP_METHOD(RedisCluster, decrby);
-PHP_METHOD(RedisCluster, incrbyfloat);
-PHP_METHOD(RedisCluster, expire);
-PHP_METHOD(RedisCluster, expireat);
-PHP_METHOD(RedisCluster, pexpire);
-PHP_METHOD(RedisCluster, pexpireat);
-PHP_METHOD(RedisCluster, append);
-PHP_METHOD(RedisCluster, getbit);
-PHP_METHOD(RedisCluster, setbit);
-PHP_METHOD(RedisCluster, bitop);
-PHP_METHOD(RedisCluster, bitpos);
-PHP_METHOD(RedisCluster, bitcount);
-PHP_METHOD(RedisCluster, lget);
-PHP_METHOD(RedisCluster, getrange);
-PHP_METHOD(RedisCluster, ltrim);
-PHP_METHOD(RedisCluster, lrange);
-PHP_METHOD(RedisCluster, zremrangebyrank);
-PHP_METHOD(RedisCluster, publish);
-PHP_METHOD(RedisCluster, lset);
-PHP_METHOD(RedisCluster, rename);
-PHP_METHOD(RedisCluster, renamenx);
-PHP_METHOD(RedisCluster, pfcount);
-PHP_METHOD(RedisCluster, pfadd);
-PHP_METHOD(RedisCluster, pfmerge);
-PHP_METHOD(RedisCluster, restore);
-PHP_METHOD(RedisCluster, setrange);
-PHP_METHOD(RedisCluster, smove);
-PHP_METHOD(RedisCluster, srandmember);
-PHP_METHOD(RedisCluster, zpopmin);
-PHP_METHOD(RedisCluster, zpopmax);
-PHP_METHOD(RedisCluster, bzpopmax);
-PHP_METHOD(RedisCluster, bzpopmin);
-PHP_METHOD(RedisCluster, zrange);
-PHP_METHOD(RedisCluster, zrevrange);
-PHP_METHOD(RedisCluster, zrangebyscore);
-PHP_METHOD(RedisCluster, zrevrangebyscore);
-PHP_METHOD(RedisCluster, zrangebylex);
-PHP_METHOD(RedisCluster, zrevrangebylex);
-PHP_METHOD(RedisCluster, zlexcount);
-PHP_METHOD(RedisCluster, zremrangebylex);
-PHP_METHOD(RedisCluster, zunionstore);
-PHP_METHOD(RedisCluster, zinterstore);
-PHP_METHOD(RedisCluster, sort);
-PHP_METHOD(RedisCluster, object);
-PHP_METHOD(RedisCluster, subscribe);
-PHP_METHOD(RedisCluster, psubscribe);
-PHP_METHOD(RedisCluster, unsubscribe);
-PHP_METHOD(RedisCluster, punsubscribe);
-PHP_METHOD(RedisCluster, eval);
-PHP_METHOD(RedisCluster, evalsha);
-PHP_METHOD(RedisCluster, info);
-PHP_METHOD(RedisCluster, cluster);
-PHP_METHOD(RedisCluster, client);
-PHP_METHOD(RedisCluster, config);
-PHP_METHOD(RedisCluster, pubsub);
-PHP_METHOD(RedisCluster, script);
-PHP_METHOD(RedisCluster, slowlog);
-PHP_METHOD(RedisCluster, command);
-PHP_METHOD(RedisCluster, geoadd);
-PHP_METHOD(RedisCluster, geohash);
-PHP_METHOD(RedisCluster, geopos);
-PHP_METHOD(RedisCluster, geodist);
-PHP_METHOD(RedisCluster, georadius);
-PHP_METHOD(RedisCluster, georadius_ro);
-PHP_METHOD(RedisCluster, georadiusbymember);
-PHP_METHOD(RedisCluster, georadiusbymember_ro);
-
-/* SCAN and friends */
-PHP_METHOD(RedisCluster, scan);
-PHP_METHOD(RedisCluster, zscan);
-PHP_METHOD(RedisCluster, hscan);
-PHP_METHOD(RedisCluster, sscan);
-
-/* STREAMS */
-PHP_METHOD(RedisCluster, xack);
-PHP_METHOD(RedisCluster, xadd);
-PHP_METHOD(RedisCluster, xclaim);
-PHP_METHOD(RedisCluster, xdel);
-PHP_METHOD(RedisCluster, xgroup);
-PHP_METHOD(RedisCluster, xinfo);
-PHP_METHOD(RedisCluster, xlen);
-PHP_METHOD(RedisCluster, xpending);
-PHP_METHOD(RedisCluster, xrange);
-PHP_METHOD(RedisCluster, xread);
-PHP_METHOD(RedisCluster, xreadgroup);
-PHP_METHOD(RedisCluster, xrevrange);
-PHP_METHOD(RedisCluster, xtrim);
-
-/* Transactions */
-PHP_METHOD(RedisCluster, multi);
-PHP_METHOD(RedisCluster, exec);
-PHP_METHOD(RedisCluster, discard);
-PHP_METHOD(RedisCluster, watch);
-PHP_METHOD(RedisCluster, unwatch);
-
-/* Commands we direct to a node */
-PHP_METHOD(RedisCluster, save);
-PHP_METHOD(RedisCluster, bgsave);
-PHP_METHOD(RedisCluster, flushdb);
-PHP_METHOD(RedisCluster, flushall);
-PHP_METHOD(RedisCluster, dbsize);
-PHP_METHOD(RedisCluster, bgrewriteaof);
-PHP_METHOD(RedisCluster, lastsave);
-PHP_METHOD(RedisCluster, role);
-PHP_METHOD(RedisCluster, time);
-PHP_METHOD(RedisCluster, randomkey);
-PHP_METHOD(RedisCluster, ping);
-PHP_METHOD(RedisCluster, echo);
-PHP_METHOD(RedisCluster, rawcommand);
-
-/* Introspection */
-PHP_METHOD(RedisCluster, getmode);
-PHP_METHOD(RedisCluster, getlasterror);
-PHP_METHOD(RedisCluster, clearlasterror);
-PHP_METHOD(RedisCluster, getoption);
-PHP_METHOD(RedisCluster, setoption);
-PHP_METHOD(RedisCluster, _prefix);
-PHP_METHOD(RedisCluster, _serialize);
-PHP_METHOD(RedisCluster, _unserialize);
-PHP_METHOD(RedisCluster, _compress);
-PHP_METHOD(RedisCluster, _uncompress);
-PHP_METHOD(RedisCluster, _pack);
-PHP_METHOD(RedisCluster, _unpack);
-PHP_METHOD(RedisCluster, _masters);
-PHP_METHOD(RedisCluster, _redir);
-
#endif
diff --git a/redis_cluster.stub.php b/redis_cluster.stub.php
new file mode 100644
index 00000000..f2c76bc0
--- /dev/null
+++ b/redis_cluster.stub.php
@@ -0,0 +1,211 @@
+<?php
+
+/**
+ * @generate-function-entries
+ * @generate-legacy-arginfo
+ */
+
+class RedisCluster {
+
+ public function __construct(string|null $name, array $seeds = NULL, int|float $timeout = 0, int|float $read_timeout = 0, bool $persistant = false, mixed $auth = NULL, array $context = NULL);
+
+ public function _masters(): array;
+
+ public function _prefix(string $key): bool|string;
+
+ public function _redir(): string|null;
+
+ public function _serialize(mixed $value): bool|string;
+
+ public function _unserialize(string $value): mixed;
+
+ public function acl(string|array $key_or_address, string $subcmd, string ...$args): mixed;
+
+ public function append(string $key, mixed $value): bool|int;
+
+ public function bgrewriteaof(string|array $key_or_address): bool;
+
+ public function bgsave(string|array $key_or_address): bool;
+
+ public function bitcount(string $key, int $start = 0, int $end = -1): bool|int;
+
+ public function bitop(string $operation, string $deskey, string $srckey, string ...$otherkeys): bool|int;
+
+ public function bitpos(string $key, int $bit, int $start = NULL, int $end = NULL): bool|int;
+}
+
+/*
+ TODO:
+ public function brpop
+ public function brpoplpush
+ public function clearlasterror
+ public function bzpopmax
+ public function bzpopmin
+ public function client
+ public function close
+ public function cluster
+ public function command
+ public function config
+ public function dbsize
+ public function decr
+ public function decrby
+ public function del
+ public function discard
+ public function dump
+ public function echo
+ public function eval
+ public function evalsha
+ public function exec
+ public function exists
+ public function expire
+ public function expireat
+ public function flushall
+ public function flushdb
+ public function geoadd
+ public function geodist
+ public function geohash
+ public function geopos
+ public function georadius
+ public function georadius_ro
+ public function georadiusbymember
+ public function georadiusbymember_ro
+ public function get
+ public function getbit
+ public function getlasterror
+ public function getmode
+ public function getoption
+ public function getrange
+ public function getset
+ public function hdel
+ public function hexists
+ public function hget
+ public function hgetall
+ public function hincrby
+ public function hincrbyfloat
+ public function hkeys
+ public function hlen
+ public function hmget
+ public function hmset
+ public function hscan
+ public function hset
+ public function hsetnx
+ public function hstrlen
+ public function hvals
+ public function incr
+ public function incrby
+ public function incrbyfloat
+ public function info
+ public function keys
+ public function lastsave
+ public function lget
+ public function lindex
+ public function linsert
+ public function llen
+ public function lpop
+ public function lpush
+ public function lpushx
+ public function lrange
+ public function lrem
+ public function lset
+ public function ltrim
+ public function mget
+ public function mset
+ public function msetnx
+ public function multi
+ public function object
+ public function persist
+ public function pexpire
+ public function pexpireat
+ public function pfadd
+ public function pfcount
+ public function pfmerge
+ public function ping
+ public function psetex
+ public function psubscribe
+ public function pttl
+ public function publish
+ public function pubsub
+ public function punsubscribe
+ public function randomkey
+ public function rawcommand
+ public function rename
+ public function renamenx
+ public function restore
+ public function role
+ public function rpop
+ public function rpoplpush
+ public function rpush
+ public function rpushx
+ public function sadd
+ public function saddarray
+ public function save
+ public function scan
+ public function scard
+ public function script
+ public function sdiff
+ public function sdiffstore
+ public function set
+ public function setbit
+ public function setex
+ public function setnx
+ public function setoption
+ public function setrange
+ public function sinter
+ public function sinterstore
+ public function sismember
+ public function slowlog
+ public function smembers
+ public function smove
+ public function sort
+ public function spop
+ public function srandmember
+ public function srem
+ public function sscan
+ public function strlen
+ public function subscribe
+ public function sunion
+ public function sunionstore
+ public function time
+ public function ttl
+ public function type
+ public function unsubscribe
+ public function unlink
+ public function unwatch
+ public function watch
+ public function xack
+ public function xadd
+ public function xclaim
+ public function xdel
+ public function xgroup
+ public function xinfo
+ public function xlen
+ public function xpending
+ public function xrange
+ public function xread
+ public function xreadgroup
+ public function xrevrange
+ public function xtrim
+ public function zadd
+ public function zcard
+ public function zcount
+ public function zincrby
+ public function zinterstore
+ public function zlexcount
+ public function zpopmax
+ public function zpopmin
+ public function zrange
+ public function zrangebylex
+ public function zrangebyscore
+ public function zrank
+ public function zrem
+ public function zremrangebylex
+ public function zremrangebyrank
+ public function zremrangebyscore
+ public function zrevrange
+ public function zrevrangebylex
+ public function zrevrangebyscore
+ public function zrevrank
+ public function zscan
+ public function zscore
+ public function zunionstore
+*/
diff --git a/redis_cluster_arginfo.h b/redis_cluster_arginfo.h
new file mode 100644
index 00000000..97acaf53
--- /dev/null
+++ b/redis_cluster_arginfo.h
@@ -0,0 +1,100 @@
+/* This is a generated file, edit the .stub.php file instead.
+ * Stub hash: e75f14ee54edbf3d7460402a4f445aa57b6c1d1d */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, seeds, IS_ARRAY, 0, "NULL")
+ ZEND_ARG_TYPE_MASK(0, timeout, MAY_BE_LONG|MAY_BE_DOUBLE, "0")
+ ZEND_ARG_TYPE_MASK(0, read_timeout, MAY_BE_LONG|MAY_BE_DOUBLE, "0")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, persistant, _IS_BOOL, 0, "false")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, auth, IS_MIXED, 0, "NULL")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, context, IS_ARRAY, 0, "NULL")
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster__masters, 0, 0, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster__prefix, 0, 1, MAY_BE_BOOL|MAY_BE_STRING)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster__redir, 0, 0, IS_STRING, 1)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster__serialize, 0, 1, MAY_BE_BOOL|MAY_BE_STRING)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster__unserialize, 0, 1, IS_MIXED, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_acl, 0, 2, IS_MIXED, 0)
+ ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
+ ZEND_ARG_TYPE_INFO(0, subcmd, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_append, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisCluster_bgrewriteaof, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_MASK(0, key_or_address, MAY_BE_STRING|MAY_BE_ARRAY, NULL)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RedisCluster_bgsave arginfo_class_RedisCluster_bgrewriteaof
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitcount, 0, 1, MAY_BE_BOOL|MAY_BE_LONG)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, start, IS_LONG, 0, "0")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, end, IS_LONG, 0, "-1")
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitop, 0, 3, MAY_BE_BOOL|MAY_BE_LONG)
+ ZEND_ARG_TYPE_INFO(0, operation, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, deskey, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, srckey, IS_STRING, 0)
+ ZEND_ARG_VARIADIC_TYPE_INFO(0, otherkeys, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisCluster_bitpos, 0, 2, MAY_BE_BOOL|MAY_BE_LONG)
+ ZEND_ARG_TYPE_INFO(0, key, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, bit, IS_LONG, 0)
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, start, IS_LONG, 0, "NULL")
+ ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, end, IS_LONG, 0, "NULL")
+ZEND_END_ARG_INFO()
+
+
+ZEND_METHOD(RedisCluster, __construct);
+ZEND_METHOD(RedisCluster, _masters);
+ZEND_METHOD(RedisCluster, _prefix);
+ZEND_METHOD(RedisCluster, _redir);
+ZEND_METHOD(RedisCluster, _serialize);
+ZEND_METHOD(RedisCluster, _unserialize);
+ZEND_METHOD(RedisCluster, acl);
+ZEND_METHOD(RedisCluster, append);
+ZEND_METHOD(RedisCluster, bgrewriteaof);
+ZEND_METHOD(RedisCluster, bgsave);
+ZEND_METHOD(RedisCluster, bitcount);
+ZEND_METHOD(RedisCluster, bitop);
+ZEND_METHOD(RedisCluster, bitpos);
+
+
+static const zend_function_entry class_RedisCluster_methods[] = {
+ ZEND_ME(RedisCluster, __construct, arginfo_class_RedisCluster___construct, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _masters, arginfo_class_RedisCluster__masters, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _prefix, arginfo_class_RedisCluster__prefix, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _redir, arginfo_class_RedisCluster__redir, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _serialize, arginfo_class_RedisCluster__serialize, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _unserialize, arginfo_class_RedisCluster__unserialize, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, acl, arginfo_class_RedisCluster_acl, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, append, arginfo_class_RedisCluster_append, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bgrewriteaof, arginfo_class_RedisCluster_bgrewriteaof, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bgsave, arginfo_class_RedisCluster_bgsave, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitcount, arginfo_class_RedisCluster_bitcount, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitop, arginfo_class_RedisCluster_bitop, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitpos, arginfo_class_RedisCluster_bitpos, ZEND_ACC_PUBLIC)
+ ZEND_FE_END
+};
diff --git a/redis_cluster_legacy_arginfo.h b/redis_cluster_legacy_arginfo.h
new file mode 100644
index 00000000..d4f153f2
--- /dev/null
+++ b/redis_cluster_legacy_arginfo.h
@@ -0,0 +1,97 @@
+/* This is a generated file, edit the .stub.php file instead.
+ * Stub hash: e75f14ee54edbf3d7460402a4f445aa57b6c1d1d */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster___construct, 0, 0, 1)
+ ZEND_ARG_INFO(0, name)
+ ZEND_ARG_INFO(0, seeds)
+ ZEND_ARG_INFO(0, timeout)
+ ZEND_ARG_INFO(0, read_timeout)
+ ZEND_ARG_INFO(0, persistant)
+ ZEND_ARG_INFO(0, auth)
+ ZEND_ARG_INFO(0, context)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster__masters, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster__prefix, 0, 0, 1)
+ ZEND_ARG_INFO(0, key)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RedisCluster__redir arginfo_class_RedisCluster__masters
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster__serialize, 0, 0, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RedisCluster__unserialize arginfo_class_RedisCluster__serialize
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_acl, 0, 0, 2)
+ ZEND_ARG_INFO(0, key_or_address)
+ ZEND_ARG_INFO(0, subcmd)
+ ZEND_ARG_VARIADIC_INFO(0, args)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_append, 0, 0, 2)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bgrewriteaof, 0, 0, 1)
+ ZEND_ARG_INFO(0, key_or_address)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_RedisCluster_bgsave arginfo_class_RedisCluster_bgrewriteaof
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bitcount, 0, 0, 1)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, start)
+ ZEND_ARG_INFO(0, end)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bitop, 0, 0, 3)
+ ZEND_ARG_INFO(0, operation)
+ ZEND_ARG_INFO(0, deskey)
+ ZEND_ARG_INFO(0, srckey)
+ ZEND_ARG_VARIADIC_INFO(0, otherkeys)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisCluster_bitpos, 0, 0, 2)
+ ZEND_ARG_INFO(0, key)
+ ZEND_ARG_INFO(0, bit)
+ ZEND_ARG_INFO(0, start)
+ ZEND_ARG_INFO(0, end)
+ZEND_END_ARG_INFO()
+
+
+ZEND_METHOD(RedisCluster, __construct);
+ZEND_METHOD(RedisCluster, _masters);
+ZEND_METHOD(RedisCluster, _prefix);
+ZEND_METHOD(RedisCluster, _redir);
+ZEND_METHOD(RedisCluster, _serialize);
+ZEND_METHOD(RedisCluster, _unserialize);
+ZEND_METHOD(RedisCluster, acl);
+ZEND_METHOD(RedisCluster, append);
+ZEND_METHOD(RedisCluster, bgrewriteaof);
+ZEND_METHOD(RedisCluster, bgsave);
+ZEND_METHOD(RedisCluster, bitcount);
+ZEND_METHOD(RedisCluster, bitop);
+ZEND_METHOD(RedisCluster, bitpos);
+
+
+static const zend_function_entry class_RedisCluster_methods[] = {
+ ZEND_ME(RedisCluster, __construct, arginfo_class_RedisCluster___construct, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _masters, arginfo_class_RedisCluster__masters, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _prefix, arginfo_class_RedisCluster__prefix, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _redir, arginfo_class_RedisCluster__redir, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _serialize, arginfo_class_RedisCluster__serialize, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, _unserialize, arginfo_class_RedisCluster__unserialize, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, acl, arginfo_class_RedisCluster_acl, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, append, arginfo_class_RedisCluster_append, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bgrewriteaof, arginfo_class_RedisCluster_bgrewriteaof, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bgsave, arginfo_class_RedisCluster_bgsave, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitcount, arginfo_class_RedisCluster_bitcount, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitop, arginfo_class_RedisCluster_bitop, ZEND_ACC_PUBLIC)
+ ZEND_ME(RedisCluster, bitpos, arginfo_class_RedisCluster_bitpos, ZEND_ACC_PUBLIC)
+ ZEND_FE_END
+};