Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8689ab1

Browse files
yatsukhnenkomichael-grunder
authored andcommitted
Issue#1393
1 parent0719c1e commit8689ab1

File tree

4 files changed

+52
-2
lines changed

4 files changed

+52
-2
lines changed

‎redis_array.c‎

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1162,6 +1162,36 @@ PHP_METHOD(RedisArray, zscan)
11621162
ra_generic_scan_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU,"ZSCAN",sizeof("ZSCAN")-1);
11631163
}
11641164

1165+
PHP_METHOD(RedisArray,scan)
1166+
{
1167+
RedisArray*ra;
1168+
zend_string*host,*pattern=NULL;
1169+
zval*object,*redis_inst,*z_iter,z_fun,z_args[3];
1170+
zend_longcount=0;
1171+
1172+
if (zend_parse_method_parameters(ZEND_NUM_ARGS(),getThis(),"Oz/S|S!l",
1173+
&object,redis_array_ce,&z_iter,&host,&pattern,&count)==FAILURE) {
1174+
RETURN_FALSE;
1175+
}
1176+
1177+
if ((ra=redis_array_get(object))==NULL) {
1178+
RETURN_FALSE;
1179+
}
1180+
1181+
if ((redis_inst=ra_find_node_by_name(ra,host))==NULL) {
1182+
RETURN_FALSE;
1183+
}
1184+
1185+
ZVAL_NEW_REF(&z_args[0],z_iter);
1186+
if (pattern)ZVAL_STR(&z_args[1],pattern);
1187+
ZVAL_LONG(&z_args[2],count);
1188+
1189+
ZVAL_STRING(&z_fun,"SCAN");
1190+
call_user_function(&redis_ce->function_table,redis_inst,&z_fun,return_value,ZEND_NUM_ARGS()-1,z_args);
1191+
zval_dtor(&z_fun);
1192+
1193+
ZVAL_ZVAL(z_iter,&z_args[0],0,1);
1194+
}
11651195

11661196
PHP_METHOD(RedisArray,multi)
11671197
{

‎redis_array.stub.php‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ public function ping(): bool|array;
5555

5656
publicfunctionsave():bool|array;
5757

58+
publicfunctionscan(int &$iterator,string$node, ?string$pattern =null,int$count =0):bool|array;
59+
5860
publicfunctionselect(int$index):bool|array;
5961

6062
publicfunctionsetOption(int$opt,string$value):bool|array;

‎redis_array_arginfo.h‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash:16a0857d62817f14eef16a00e80e587f318b9052 */
2+
* Stub hash:52eb7c6a57cea5f116106d24db1c98c7c4469e09 */
33

44
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisArray___call,0,2,IS_MIXED,0)
55
ZEND_ARG_TYPE_INFO(0,function_name,IS_STRING,0)
@@ -84,6 +84,13 @@ ZEND_END_ARG_INFO()
8484

8585
#definearginfo_class_RedisArray_save arginfo_class_RedisArray__continuum
8686

87+
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisArray_scan,0,2,MAY_BE_BOOL|MAY_BE_ARRAY)
88+
ZEND_ARG_TYPE_INFO(1,iterator,IS_LONG,0)
89+
ZEND_ARG_TYPE_INFO(0,node,IS_STRING,0)
90+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0,pattern,IS_STRING,1,"null")
91+
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0,count,IS_LONG,0,"0")
92+
ZEND_END_ARG_INFO()
93+
8794
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisArray_select,0,1,MAY_BE_BOOL|MAY_BE_ARRAY)
8895
ZEND_ARG_TYPE_INFO(0,index,IS_LONG,0)
8996
ZEND_END_ARG_INFO()
@@ -126,6 +133,7 @@ ZEND_METHOD(RedisArray, mset);
126133
ZEND_METHOD(RedisArray,multi);
127134
ZEND_METHOD(RedisArray,ping);
128135
ZEND_METHOD(RedisArray,save);
136+
ZEND_METHOD(RedisArray,scan);
129137
ZEND_METHOD(RedisArray,select);
130138
ZEND_METHOD(RedisArray,setOption);
131139
ZEND_METHOD(RedisArray,sscan);
@@ -159,6 +167,7 @@ static const zend_function_entry class_RedisArray_methods[] = {
159167
ZEND_ME(RedisArray,multi,arginfo_class_RedisArray_multi,ZEND_ACC_PUBLIC)
160168
ZEND_ME(RedisArray,ping,arginfo_class_RedisArray_ping,ZEND_ACC_PUBLIC)
161169
ZEND_ME(RedisArray,save,arginfo_class_RedisArray_save,ZEND_ACC_PUBLIC)
170+
ZEND_ME(RedisArray,scan,arginfo_class_RedisArray_scan,ZEND_ACC_PUBLIC)
162171
ZEND_ME(RedisArray,select,arginfo_class_RedisArray_select,ZEND_ACC_PUBLIC)
163172
ZEND_ME(RedisArray,setOption,arginfo_class_RedisArray_setOption,ZEND_ACC_PUBLIC)
164173
ZEND_ME(RedisArray,sscan,arginfo_class_RedisArray_sscan,ZEND_ACC_PUBLIC)

‎redis_array_legacy_arginfo.h‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* This is a generated file, edit the .stub.php file instead.
2-
* Stub hash:16a0857d62817f14eef16a00e80e587f318b9052 */
2+
* Stub hash:52eb7c6a57cea5f116106d24db1c98c7c4469e09 */
33

44
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray___call,0,0,2)
55
ZEND_ARG_INFO(0,function_name)
@@ -81,6 +81,13 @@ ZEND_END_ARG_INFO()
8181

8282
#definearginfo_class_RedisArray_save arginfo_class_RedisArray__continuum
8383

84+
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray_scan,0,0,2)
85+
ZEND_ARG_INFO(1,iterator)
86+
ZEND_ARG_INFO(0,node)
87+
ZEND_ARG_INFO(0,pattern)
88+
ZEND_ARG_INFO(0,count)
89+
ZEND_END_ARG_INFO()
90+
8491
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray_select,0,0,1)
8592
ZEND_ARG_INFO(0,index)
8693
ZEND_END_ARG_INFO()
@@ -123,6 +130,7 @@ ZEND_METHOD(RedisArray, mset);
123130
ZEND_METHOD(RedisArray,multi);
124131
ZEND_METHOD(RedisArray,ping);
125132
ZEND_METHOD(RedisArray,save);
133+
ZEND_METHOD(RedisArray,scan);
126134
ZEND_METHOD(RedisArray,select);
127135
ZEND_METHOD(RedisArray,setOption);
128136
ZEND_METHOD(RedisArray,sscan);
@@ -156,6 +164,7 @@ static const zend_function_entry class_RedisArray_methods[] = {
156164
ZEND_ME(RedisArray,multi,arginfo_class_RedisArray_multi,ZEND_ACC_PUBLIC)
157165
ZEND_ME(RedisArray,ping,arginfo_class_RedisArray_ping,ZEND_ACC_PUBLIC)
158166
ZEND_ME(RedisArray,save,arginfo_class_RedisArray_save,ZEND_ACC_PUBLIC)
167+
ZEND_ME(RedisArray,scan,arginfo_class_RedisArray_scan,ZEND_ACC_PUBLIC)
159168
ZEND_ME(RedisArray,select,arginfo_class_RedisArray_select,ZEND_ACC_PUBLIC)
160169
ZEND_ME(RedisArray,setOption,arginfo_class_RedisArray_setOption,ZEND_ACC_PUBLIC)
161170
ZEND_ME(RedisArray,sscan,arginfo_class_RedisArray_sscan,ZEND_ACC_PUBLIC)

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp