Skip to content

Commit fe344e3

Browse files
remicolletyatsukhnenko
authored andcommitted
switch to legacy arginfo for PHP < 8
1 parent c7f826c commit fe344e3

File tree

4 files changed

+271
-19
lines changed

4 files changed

+271
-19
lines changed

library.h

-19
Original file line numberDiff line numberDiff line change
@@ -23,31 +23,12 @@
2323
#define redis_sock_write_sstr(redis_sock, sstr) \
2424
redis_sock_write(redis_sock, (sstr)->c, (sstr)->len)
2525

26-
#if PHP_VERSION_ID < 70200
27-
/* drop return type hinting in PHP 7.0 and 7.1*/
28-
#undef ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX
29-
#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(name, return_reference, required_num_args, type, allow_null) \
30-
ZEND_BEGIN_ARG_INFO_EX(name, 0, return_reference, required_num_args)
31-
#endif
32-
3326
#if PHP_VERSION_ID < 80000
3427
#define redis_hash_fetch_ops(zstr) php_hash_fetch_ops(ZSTR_VAL((zstr)), ZSTR_LEN((zstr)))
3528

3629
/* use RedisException when ValueError not available */
3730
#define REDIS_VALUE_EXCEPTION(m) REDIS_THROW_EXCEPTION(m, 0)
3831
#define RETURN_THROWS() RETURN_FALSE
39-
40-
/* default value only managed in 8+ */
41-
#define ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(pass_by_ref, name, type_hint, allow_null, default_value) \
42-
ZEND_ARG_TYPE_INFO(pass_by_ref, name, type_hint, allow_null)
43-
44-
/* union type only managed in 8+ */
45-
#define ZEND_ARG_TYPE_MASK(pass_by_ref, name, type_mask, default_value) ZEND_ARG_INFO(pass_by_ref, name)
46-
47-
#define ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(name, return_reference, required_num_args, type) \
48-
ZEND_BEGIN_ARG_INFO_EX(name, 0, return_reference, required_num_args)
49-
50-
#define IS_MIXED 0
5132
#else
5233
#define redis_hash_fetch_ops(zstr) php_hash_fetch_ops(zstr)
5334

redis_legacy_arginfo.h

+202
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,202 @@
1+
/* This is a generated file, edit the .stub.php file instead.
2+
* Stub hash: be75361e8e76c8a25455d7c40a36735b56a9e8a0 */
3+
4+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis___construct, 0, 0, 0)
5+
ZEND_END_ARG_INFO()
6+
7+
#define arginfo_class_Redis___destruct arginfo_class_Redis___construct
8+
9+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_connect, 0, 0, 1)
10+
ZEND_ARG_INFO(0, host)
11+
ZEND_ARG_INFO(0, port)
12+
ZEND_ARG_INFO(0, timeout)
13+
ZEND_ARG_INFO(0, persistent_id)
14+
ZEND_ARG_INFO(0, retry_interval)
15+
ZEND_ARG_INFO(0, read_timeout)
16+
ZEND_ARG_INFO(0, context)
17+
ZEND_END_ARG_INFO()
18+
19+
#define arginfo_class_Redis_pconnect arginfo_class_Redis_connect
20+
21+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_bitop, 0, 0, 3)
22+
ZEND_ARG_INFO(0, operation)
23+
ZEND_ARG_INFO(0, deskey)
24+
ZEND_ARG_INFO(0, srckey)
25+
ZEND_ARG_VARIADIC_INFO(0, otherkeys)
26+
ZEND_END_ARG_INFO()
27+
28+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_bitcount, 0, 0, 1)
29+
ZEND_ARG_INFO(0, key)
30+
ZEND_ARG_INFO(0, start)
31+
ZEND_ARG_INFO(0, end)
32+
ZEND_END_ARG_INFO()
33+
34+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_bitpos, 0, 0, 2)
35+
ZEND_ARG_INFO(0, key)
36+
ZEND_ARG_INFO(0, bit)
37+
ZEND_ARG_INFO(0, start)
38+
ZEND_ARG_INFO(0, end)
39+
ZEND_END_ARG_INFO()
40+
41+
#define arginfo_class_Redis_close arginfo_class_Redis___construct
42+
43+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_set, 0, 0, 2)
44+
ZEND_ARG_INFO(0, key)
45+
ZEND_ARG_INFO(0, value)
46+
ZEND_ARG_INFO(0, opt)
47+
ZEND_END_ARG_INFO()
48+
49+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_setex, 0, 0, 3)
50+
ZEND_ARG_INFO(0, key)
51+
ZEND_ARG_INFO(0, expire)
52+
ZEND_ARG_INFO(0, value)
53+
ZEND_END_ARG_INFO()
54+
55+
#define arginfo_class_Redis_psetex arginfo_class_Redis_setex
56+
57+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_setnx, 0, 0, 2)
58+
ZEND_ARG_INFO(0, key)
59+
ZEND_ARG_INFO(0, value)
60+
ZEND_END_ARG_INFO()
61+
62+
#define arginfo_class_Redis_getset arginfo_class_Redis_setnx
63+
64+
#define arginfo_class_Redis_randomKey arginfo_class_Redis___construct
65+
66+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_echo, 0, 0, 1)
67+
ZEND_ARG_INFO(0, str)
68+
ZEND_END_ARG_INFO()
69+
70+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_rename, 0, 0, 2)
71+
ZEND_ARG_INFO(0, key_src)
72+
ZEND_ARG_INFO(0, key_dst)
73+
ZEND_END_ARG_INFO()
74+
75+
#define arginfo_class_Redis_renameNx arginfo_class_Redis_rename
76+
77+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_get, 0, 0, 1)
78+
ZEND_ARG_INFO(0, key)
79+
ZEND_END_ARG_INFO()
80+
81+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_ping, 0, 0, 0)
82+
ZEND_ARG_INFO(0, key)
83+
ZEND_END_ARG_INFO()
84+
85+
#define arginfo_class_Redis_incr arginfo_class_Redis_get
86+
87+
#define arginfo_class_Redis_incrBy arginfo_class_Redis_setnx
88+
89+
#define arginfo_class_Redis_incrByFloat arginfo_class_Redis_setnx
90+
91+
#define arginfo_class_Redis_decr arginfo_class_Redis_get
92+
93+
#define arginfo_class_Redis_decrBy arginfo_class_Redis_setnx
94+
95+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_mget, 0, 0, 1)
96+
ZEND_ARG_INFO(0, keys)
97+
ZEND_END_ARG_INFO()
98+
99+
#define arginfo_class_Redis_exists arginfo_class_Redis_get
100+
101+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_del, 0, 0, 1)
102+
ZEND_ARG_INFO(0, key)
103+
ZEND_ARG_VARIADIC_INFO(0, otherkeys)
104+
ZEND_END_ARG_INFO()
105+
106+
#define arginfo_class_Redis_unlink arginfo_class_Redis_del
107+
108+
#define arginfo_class_Redis_watch arginfo_class_Redis_del
109+
110+
#define arginfo_class_Redis_unwatch arginfo_class_Redis___construct
111+
112+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_keys, 0, 0, 1)
113+
ZEND_ARG_INFO(0, pattern)
114+
ZEND_END_ARG_INFO()
115+
116+
#define arginfo_class_Redis_keys arginfo_class_Redis_get
117+
118+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Redis_acl, 0, 0, 1)
119+
ZEND_ARG_INFO(0, subcmd)
120+
ZEND_ARG_VARIADIC_INFO(0, args)
121+
ZEND_END_ARG_INFO()
122+
123+
#define arginfo_class_Redis_delete arginfo_class_Redis_del
124+
125+
#define arginfo_class_Redis_open arginfo_class_Redis_connect
126+
127+
#define arginfo_class_Redis_popen arginfo_class_Redis_connect
128+
129+
130+
ZEND_METHOD(Redis, __construct);
131+
ZEND_METHOD(Redis, __destruct);
132+
ZEND_METHOD(Redis, connect);
133+
ZEND_METHOD(Redis, pconnect);
134+
ZEND_METHOD(Redis, bitop);
135+
ZEND_METHOD(Redis, bitcount);
136+
ZEND_METHOD(Redis, bitpos);
137+
ZEND_METHOD(Redis, close);
138+
ZEND_METHOD(Redis, set);
139+
ZEND_METHOD(Redis, setex);
140+
ZEND_METHOD(Redis, psetex);
141+
ZEND_METHOD(Redis, setnx);
142+
ZEND_METHOD(Redis, getset);
143+
ZEND_METHOD(Redis, randomKey);
144+
ZEND_METHOD(Redis, echo);
145+
ZEND_METHOD(Redis, rename);
146+
ZEND_METHOD(Redis, renameNx);
147+
ZEND_METHOD(Redis, get);
148+
ZEND_METHOD(Redis, ping);
149+
ZEND_METHOD(Redis, incr);
150+
ZEND_METHOD(Redis, incrBy);
151+
ZEND_METHOD(Redis, incrByFloat);
152+
ZEND_METHOD(Redis, decr);
153+
ZEND_METHOD(Redis, decrBy);
154+
ZEND_METHOD(Redis, mget);
155+
ZEND_METHOD(Redis, exists);
156+
ZEND_METHOD(Redis, del);
157+
ZEND_METHOD(Redis, unlink);
158+
ZEND_METHOD(Redis, watch);
159+
ZEND_METHOD(Redis, unwatch);
160+
ZEND_METHOD(Redis, keys);
161+
ZEND_METHOD(Redis, acl);
162+
163+
164+
static const zend_function_entry class_Redis_methods[] = {
165+
ZEND_ME(Redis, __construct, arginfo_class_Redis___construct, ZEND_ACC_PUBLIC)
166+
ZEND_ME(Redis, __destruct, arginfo_class_Redis___destruct, ZEND_ACC_PUBLIC)
167+
ZEND_ME(Redis, connect, arginfo_class_Redis_connect, ZEND_ACC_PUBLIC)
168+
ZEND_ME(Redis, pconnect, arginfo_class_Redis_pconnect, ZEND_ACC_PUBLIC)
169+
ZEND_ME(Redis, bitop, arginfo_class_Redis_bitop, ZEND_ACC_PUBLIC)
170+
ZEND_ME(Redis, bitcount, arginfo_class_Redis_bitcount, ZEND_ACC_PUBLIC)
171+
ZEND_ME(Redis, bitpos, arginfo_class_Redis_bitpos, ZEND_ACC_PUBLIC)
172+
ZEND_ME(Redis, close, arginfo_class_Redis_close, ZEND_ACC_PUBLIC)
173+
ZEND_ME(Redis, set, arginfo_class_Redis_set, ZEND_ACC_PUBLIC)
174+
ZEND_ME(Redis, setex, arginfo_class_Redis_setex, ZEND_ACC_PUBLIC)
175+
ZEND_ME(Redis, psetex, arginfo_class_Redis_psetex, ZEND_ACC_PUBLIC)
176+
ZEND_ME(Redis, setnx, arginfo_class_Redis_setnx, ZEND_ACC_PUBLIC)
177+
ZEND_ME(Redis, getset, arginfo_class_Redis_getset, ZEND_ACC_PUBLIC)
178+
ZEND_ME(Redis, randomKey, arginfo_class_Redis_randomKey, ZEND_ACC_PUBLIC)
179+
ZEND_ME(Redis, echo, arginfo_class_Redis_echo, ZEND_ACC_PUBLIC)
180+
ZEND_ME(Redis, rename, arginfo_class_Redis_rename, ZEND_ACC_PUBLIC)
181+
ZEND_ME(Redis, renameNx, arginfo_class_Redis_renameNx, ZEND_ACC_PUBLIC)
182+
ZEND_ME(Redis, get, arginfo_class_Redis_get, ZEND_ACC_PUBLIC)
183+
ZEND_ME(Redis, ping, arginfo_class_Redis_ping, ZEND_ACC_PUBLIC)
184+
ZEND_ME(Redis, incr, arginfo_class_Redis_incr, ZEND_ACC_PUBLIC)
185+
ZEND_ME(Redis, incrBy, arginfo_class_Redis_incrBy, ZEND_ACC_PUBLIC)
186+
ZEND_ME(Redis, incrByFloat, arginfo_class_Redis_incrByFloat, ZEND_ACC_PUBLIC)
187+
ZEND_ME(Redis, decr, arginfo_class_Redis_decr, ZEND_ACC_PUBLIC)
188+
ZEND_ME(Redis, decrBy, arginfo_class_Redis_decrBy, ZEND_ACC_PUBLIC)
189+
ZEND_ME(Redis, mget, arginfo_class_Redis_mget, ZEND_ACC_PUBLIC)
190+
ZEND_ME(Redis, exists, arginfo_class_Redis_exists, ZEND_ACC_PUBLIC)
191+
ZEND_ME(Redis, del, arginfo_class_Redis_del, ZEND_ACC_PUBLIC)
192+
ZEND_ME(Redis, unlink, arginfo_class_Redis_unlink, ZEND_ACC_PUBLIC)
193+
ZEND_ME(Redis, watch, arginfo_class_Redis_watch, ZEND_ACC_PUBLIC)
194+
ZEND_ME(Redis, unwatch, arginfo_class_Redis_unwatch, ZEND_ACC_PUBLIC)
195+
ZEND_ME(Redis, keys, arginfo_class_Redis_keys, ZEND_ACC_PUBLIC)
196+
ZEND_ME(Redis, keys, arginfo_class_Redis_keys, ZEND_ACC_PUBLIC)
197+
ZEND_ME(Redis, acl, arginfo_class_Redis_acl, ZEND_ACC_PUBLIC)
198+
ZEND_MALIAS(Redis, delete, del, arginfo_class_Redis_delete, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
199+
ZEND_MALIAS(Redis, open, connect, arginfo_class_Redis_open, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
200+
ZEND_MALIAS(Redis, popen, pconnect, arginfo_class_Redis_popen, ZEND_ACC_PUBLIC|ZEND_ACC_DEPRECATED)
201+
ZEND_FE_END
202+
};

redis_sentinel.c

+4
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,11 @@
2323
zend_class_entry *redis_sentinel_ce;
2424
extern zend_class_entry *redis_exception_ce;
2525

26+
#if PHP_VERSION_ID < 80000
27+
#include "redis_sentinel_legacy_arginfo.h"
28+
#else
2629
#include "redis_sentinel_arginfo.h"
30+
#endif
2731

2832
extern const zend_function_entry *redis_sentinel_get_methods(void)
2933
{

redis_sentinel_legacy_arginfo.h

+65
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
/* This is a generated file, edit the .stub.php file instead.
2+
* Stub hash: 779d2b82a083131e73402389db47d08355a2417e */
3+
4+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisSentinel___construct, 0, 0, 1)
5+
ZEND_ARG_INFO(0, host)
6+
ZEND_ARG_INFO(0, port)
7+
ZEND_ARG_INFO(0, timeout)
8+
ZEND_ARG_INFO(0, persistent)
9+
ZEND_ARG_INFO(0, retry_interval)
10+
ZEND_ARG_INFO(0, read_timeout)
11+
ZEND_END_ARG_INFO()
12+
13+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisSentinel_ckquorum, 0, 0, 1)
14+
ZEND_ARG_INFO(0, master)
15+
ZEND_END_ARG_INFO()
16+
17+
#define arginfo_class_RedisSentinel_failover arginfo_class_RedisSentinel_ckquorum
18+
19+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisSentinel_flushconfig, 0, 0, 0)
20+
ZEND_END_ARG_INFO()
21+
22+
#define arginfo_class_RedisSentinel_getMasterAddrByName arginfo_class_RedisSentinel_ckquorum
23+
24+
#define arginfo_class_RedisSentinel_master arginfo_class_RedisSentinel_ckquorum
25+
26+
#define arginfo_class_RedisSentinel_masters arginfo_class_RedisSentinel_flushconfig
27+
28+
#define arginfo_class_RedisSentinel_ping arginfo_class_RedisSentinel_flushconfig
29+
30+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisSentinel_reset, 0, 0, 1)
31+
ZEND_ARG_INFO(0, pattern)
32+
ZEND_END_ARG_INFO()
33+
34+
#define arginfo_class_RedisSentinel_sentinels arginfo_class_RedisSentinel_ckquorum
35+
36+
#define arginfo_class_RedisSentinel_slaves arginfo_class_RedisSentinel_ckquorum
37+
38+
39+
ZEND_METHOD(RedisSentinel, __construct);
40+
ZEND_METHOD(RedisSentinel, ckquorum);
41+
ZEND_METHOD(RedisSentinel, failover);
42+
ZEND_METHOD(RedisSentinel, flushconfig);
43+
ZEND_METHOD(RedisSentinel, getMasterAddrByName);
44+
ZEND_METHOD(RedisSentinel, master);
45+
ZEND_METHOD(RedisSentinel, masters);
46+
ZEND_METHOD(RedisSentinel, ping);
47+
ZEND_METHOD(RedisSentinel, reset);
48+
ZEND_METHOD(RedisSentinel, sentinels);
49+
ZEND_METHOD(RedisSentinel, slaves);
50+
51+
52+
static const zend_function_entry class_RedisSentinel_methods[] = {
53+
ZEND_ME(RedisSentinel, __construct, arginfo_class_RedisSentinel___construct, ZEND_ACC_PUBLIC)
54+
ZEND_ME(RedisSentinel, ckquorum, arginfo_class_RedisSentinel_ckquorum, ZEND_ACC_PUBLIC)
55+
ZEND_ME(RedisSentinel, failover, arginfo_class_RedisSentinel_failover, ZEND_ACC_PUBLIC)
56+
ZEND_ME(RedisSentinel, flushconfig, arginfo_class_RedisSentinel_flushconfig, ZEND_ACC_PUBLIC)
57+
ZEND_ME(RedisSentinel, getMasterAddrByName, arginfo_class_RedisSentinel_getMasterAddrByName, ZEND_ACC_PUBLIC)
58+
ZEND_ME(RedisSentinel, master, arginfo_class_RedisSentinel_master, ZEND_ACC_PUBLIC)
59+
ZEND_ME(RedisSentinel, masters, arginfo_class_RedisSentinel_masters, ZEND_ACC_PUBLIC)
60+
ZEND_ME(RedisSentinel, ping, arginfo_class_RedisSentinel_ping, ZEND_ACC_PUBLIC)
61+
ZEND_ME(RedisSentinel, reset, arginfo_class_RedisSentinel_reset, ZEND_ACC_PUBLIC)
62+
ZEND_ME(RedisSentinel, sentinels, arginfo_class_RedisSentinel_sentinels, ZEND_ACC_PUBLIC)
63+
ZEND_ME(RedisSentinel, slaves, arginfo_class_RedisSentinel_slaves, ZEND_ACC_PUBLIC)
64+
ZEND_FE_END
65+
};

0 commit comments

Comments
 (0)