mirror of
https://github.com/phpredis/phpredis.git
synced 2026-06-19 07:35:31 +00:00
Issue #1393
This commit is contained in:
committed by
michael-grunder
parent
0719c1eca0
commit
8689ab1c17
@@ -1162,6 +1162,36 @@ PHP_METHOD(RedisArray, zscan)
|
||||
ra_generic_scan_cmd(INTERNAL_FUNCTION_PARAM_PASSTHRU, "ZSCAN", sizeof("ZSCAN") - 1);
|
||||
}
|
||||
|
||||
PHP_METHOD(RedisArray, scan)
|
||||
{
|
||||
RedisArray *ra;
|
||||
zend_string *host, *pattern = NULL;
|
||||
zval *object, *redis_inst, *z_iter, z_fun, z_args[3];
|
||||
zend_long count = 0;
|
||||
|
||||
if (zend_parse_method_parameters(ZEND_NUM_ARGS(), getThis(), "Oz/S|S!l",
|
||||
&object, redis_array_ce, &z_iter, &host, &pattern, &count) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
if ((ra = redis_array_get(object)) == NULL) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
if ((redis_inst = ra_find_node_by_name(ra, host)) == NULL) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
ZVAL_NEW_REF(&z_args[0], z_iter);
|
||||
if (pattern) ZVAL_STR(&z_args[1], pattern);
|
||||
ZVAL_LONG(&z_args[2], count);
|
||||
|
||||
ZVAL_STRING(&z_fun, "SCAN");
|
||||
call_user_function(&redis_ce->function_table, redis_inst, &z_fun, return_value, ZEND_NUM_ARGS() - 1, z_args);
|
||||
zval_dtor(&z_fun);
|
||||
|
||||
ZVAL_ZVAL(z_iter, &z_args[0], 0, 1);
|
||||
}
|
||||
|
||||
PHP_METHOD(RedisArray, multi)
|
||||
{
|
||||
|
||||
@@ -55,6 +55,8 @@ class RedisArray {
|
||||
|
||||
public function save(): bool|array;
|
||||
|
||||
public function scan(int &$iterator, string $node, ?string $pattern = null, int $count = 0): bool|array;
|
||||
|
||||
public function select(int $index): bool|array;
|
||||
|
||||
public function setOption(int $opt, string $value): bool|array;
|
||||
|
||||
+10
-1
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 16a0857d62817f14eef16a00e80e587f318b9052 */
|
||||
* Stub hash: 52eb7c6a57cea5f116106d24db1c98c7c4469e09 */
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_RedisArray___call, 0, 2, IS_MIXED, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, function_name, IS_STRING, 0)
|
||||
@@ -84,6 +84,13 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_RedisArray_save arginfo_class_RedisArray__continuum
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisArray_scan, 0, 2, MAY_BE_BOOL|MAY_BE_ARRAY)
|
||||
ZEND_ARG_TYPE_INFO(1, iterator, IS_LONG, 0)
|
||||
ZEND_ARG_TYPE_INFO(0, node, IS_STRING, 0)
|
||||
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, pattern, IS_STRING, 1, "null")
|
||||
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, count, IS_LONG, 0, "0")
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_class_RedisArray_select, 0, 1, MAY_BE_BOOL|MAY_BE_ARRAY)
|
||||
ZEND_ARG_TYPE_INFO(0, index, IS_LONG, 0)
|
||||
ZEND_END_ARG_INFO()
|
||||
@@ -126,6 +133,7 @@ ZEND_METHOD(RedisArray, mset);
|
||||
ZEND_METHOD(RedisArray, multi);
|
||||
ZEND_METHOD(RedisArray, ping);
|
||||
ZEND_METHOD(RedisArray, save);
|
||||
ZEND_METHOD(RedisArray, scan);
|
||||
ZEND_METHOD(RedisArray, select);
|
||||
ZEND_METHOD(RedisArray, setOption);
|
||||
ZEND_METHOD(RedisArray, sscan);
|
||||
@@ -159,6 +167,7 @@ static const zend_function_entry class_RedisArray_methods[] = {
|
||||
ZEND_ME(RedisArray, multi, arginfo_class_RedisArray_multi, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, ping, arginfo_class_RedisArray_ping, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, save, arginfo_class_RedisArray_save, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, scan, arginfo_class_RedisArray_scan, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, select, arginfo_class_RedisArray_select, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, setOption, arginfo_class_RedisArray_setOption, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, sscan, arginfo_class_RedisArray_sscan, ZEND_ACC_PUBLIC)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/* This is a generated file, edit the .stub.php file instead.
|
||||
* Stub hash: 16a0857d62817f14eef16a00e80e587f318b9052 */
|
||||
* Stub hash: 52eb7c6a57cea5f116106d24db1c98c7c4469e09 */
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray___call, 0, 0, 2)
|
||||
ZEND_ARG_INFO(0, function_name)
|
||||
@@ -81,6 +81,13 @@ ZEND_END_ARG_INFO()
|
||||
|
||||
#define arginfo_class_RedisArray_save arginfo_class_RedisArray__continuum
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray_scan, 0, 0, 2)
|
||||
ZEND_ARG_INFO(1, iterator)
|
||||
ZEND_ARG_INFO(0, node)
|
||||
ZEND_ARG_INFO(0, pattern)
|
||||
ZEND_ARG_INFO(0, count)
|
||||
ZEND_END_ARG_INFO()
|
||||
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_class_RedisArray_select, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, index)
|
||||
ZEND_END_ARG_INFO()
|
||||
@@ -123,6 +130,7 @@ ZEND_METHOD(RedisArray, mset);
|
||||
ZEND_METHOD(RedisArray, multi);
|
||||
ZEND_METHOD(RedisArray, ping);
|
||||
ZEND_METHOD(RedisArray, save);
|
||||
ZEND_METHOD(RedisArray, scan);
|
||||
ZEND_METHOD(RedisArray, select);
|
||||
ZEND_METHOD(RedisArray, setOption);
|
||||
ZEND_METHOD(RedisArray, sscan);
|
||||
@@ -156,6 +164,7 @@ static const zend_function_entry class_RedisArray_methods[] = {
|
||||
ZEND_ME(RedisArray, multi, arginfo_class_RedisArray_multi, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, ping, arginfo_class_RedisArray_ping, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, save, arginfo_class_RedisArray_save, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, scan, arginfo_class_RedisArray_scan, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, select, arginfo_class_RedisArray_select, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, setOption, arginfo_class_RedisArray_setOption, ZEND_ACC_PUBLIC)
|
||||
ZEND_ME(RedisArray, sscan, arginfo_class_RedisArray_sscan, ZEND_ACC_PUBLIC)
|
||||
|
||||
Reference in New Issue
Block a user