diff options
| -rw-r--r-- | REFLECTION | 76 | ||||
| -rw-r--r-- | php-phpiredis.spec | 22 | ||||
| -rw-r--r-- | phpiredis-pr53.patch | 228 | 
3 files changed, 324 insertions, 2 deletions
| @@ -14,30 +14,88 @@ Extension [ <persistent> extension #108 phpiredis version 1.0.0-dev ] {    - Functions {      Function [ <internal:phpiredis> function phpiredis_connect ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $ip ] +        Parameter #1 [ <optional> $port ] +      }      }      Function [ <internal:phpiredis> function phpiredis_pconnect ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $ip ] +        Parameter #1 [ <optional> $port ] +      }      }      Function [ <internal:phpiredis> function phpiredis_disconnect ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $connection ] +      }      }      Function [ <internal:phpiredis> function phpiredis_command ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> $command ] +      }      }      Function [ <internal:phpiredis> function phpiredis_command_bs ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> array $args ] +      }      }      Function [ <internal:phpiredis> function phpiredis_multi_command ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> array $commands ] +      }      }      Function [ <internal:phpiredis> function phpiredis_multi_command_bs ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> array $commands ] +      }      }      Function [ <internal:phpiredis> function phpiredis_format_command ] { + +      - Parameters [1] { +        Parameter #0 [ <required> array $args ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_create ] { + +      - Parameters [0] { +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_reset ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $connection ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_feed ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> $buffer ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_get_state ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $connection ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_get_error ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $connection ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_get_reply ] { @@ -47,12 +105,30 @@ Extension [ <persistent> extension #108 phpiredis version 1.0.0-dev ] {        }      }      Function [ <internal:phpiredis> function phpiredis_reader_destroy ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $connection ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_set_error_handler ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> $callback ] +      }      }      Function [ <internal:phpiredis> function phpiredis_reader_set_status_handler ] { + +      - Parameters [2] { +        Parameter #0 [ <required> $connection ] +        Parameter #1 [ <required> $callback ] +      }      }      Function [ <internal:phpiredis> function phpiredis_utils_crc16 ] { + +      - Parameters [1] { +        Parameter #0 [ <required> $buffer ] +      }      }    }  } diff --git a/php-phpiredis.spec b/php-phpiredis.spec index f8fd523..d20b222 100644 --- a/php-phpiredis.spec +++ b/php-phpiredis.spec @@ -30,7 +30,7 @@  Name:           %{?sub_prefix}php-%{pecl_name}  Version:        1.0.0  %if 0%{?gh_date} -Release:        0.1.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}} +Release:        0.2.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}  %else  Release:        1%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}  %endif @@ -42,9 +42,14 @@ License:        BSD  URL:            https://github.com/%{gh_owner}/%{gh_project}  Source0:        https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz +# https://github.com/nrk/phpiredis/pull/53 +Patch0:         %{pecl_name}-pr53.patch + +BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)  BuildRequires:  %{?scl_prefix}php-devel  BuildRequires:  %{?scl_prefix}php-pear -BuildRequires:  hiredis-devel +# ensure we use hiredis-last when exists +BuildRequires:  hiredis-devel >= 0.13.3  %if %{with_tests}  BuildRequires:  redis  %endif @@ -106,6 +111,7 @@ Package built for PHP %(%{__php} -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSIO  mv %{gh_project}-%{gh_commit} NTS  cd NTS +%patch0 -p1 -b .pr53  # Check extension version  ver=$(sed -n '/define PHP_PHPIREDIS_VERSION/{s/.* "//;s/".*$//;p}' php_phpiredis.h) @@ -142,6 +148,8 @@ make %{?_smp_mflags}  %install +rm -rf %{buildroot} +  make -C NTS install INSTALL_ROOT=%{buildroot}  # install configuration @@ -209,7 +217,12 @@ exit $ret  %endif +%clean +rm -rf %{buildroot} + +  %files +%defattr(-, root, root, -)  %{!?_licensedir:%global license %%doc}  %license NTS/LICENSE  %doc NTS/README.md @@ -224,6 +237,11 @@ exit $ret  %changelog +* Sun Nov 13 2016 Remi Collet <remi@fedoraproject.org> - 1.0.0-0.2.20160715gita64e3bf +- add minor fix for portability +- add full reflection for all functions +- open https://github.com/nrk/phpiredis/pull/53 +  * Sat Nov 12 2016 Remi Collet <remi@fedoraproject.org> - 1.0.0-0.1.20160715gita64e3bf  - Initial packaging of 1.0.0-dev diff --git a/phpiredis-pr53.patch b/phpiredis-pr53.patch new file mode 100644 index 0000000..7546f9a --- /dev/null +++ b/phpiredis-pr53.patch @@ -0,0 +1,228 @@ +From 19901337bc5b69474464bd30d32f38172ab395f1 Mon Sep 17 00:00:00 2001 +From: Remi Collet <fedora@famillecollet.com> +Date: Sat, 12 Nov 2016 17:24:49 +0100 +Subject: [PATCH 1/2] portability: use zend_long for function parameters + +--- + phpiredis.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/phpiredis.c b/phpiredis.c +index f297e3f..3e46661 100644 +--- a/phpiredis.c ++++ b/phpiredis.c +@@ -25,6 +25,7 @@ int le_redis_persistent_context; +     #define PHPIREDIS_RESOURCE_TYPE zend_rsrc_list_entry +     #define PHPIREDIS_RETURN_RESOURCE(connection, context) \ +         ZEND_REGISTER_RESOURCE(return_value, connection, context) ++    typedef long zend_long; + #endif +  + typedef struct callback { +@@ -372,7 +373,7 @@ PHP_FUNCTION(phpiredis_connect) +     phpiredis_connection *connection; +     char *ip; +     PHPIREDIS_LEN_TYPE ip_size; +-    long port = 6379; ++    zend_long port = 6379; +  +     if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &ip, &ip_size, &port) == FAILURE) { +         return; +@@ -391,7 +392,7 @@ PHP_FUNCTION(phpiredis_pconnect) + { +     char *ip; +     PHPIREDIS_LEN_TYPE ip_size; +-    long port = 6379; ++    zend_long port = 6379; +  +     char *hashed_details = NULL; +     PHPIREDIS_LEN_TYPE hashed_details_length; + +From d0cd9522b723798d005948bde8668776e76af36b Mon Sep 17 00:00:00 2001 +From: Remi Collet <fedora@famillecollet.com> +Date: Sat, 12 Nov 2016 17:52:39 +0100 +Subject: [PATCH 2/2] add arginfo for all functions + +--- + phpiredis.c | 100 +++++++++++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 79 insertions(+), 21 deletions(-) + +diff --git a/phpiredis.c b/phpiredis.c +index 3e46661..710df74 100644 +--- a/phpiredis.c ++++ b/phpiredis.c +@@ -368,6 +368,11 @@ static phpiredis_connection *s_create_connection(const char *ip, int port, zend_ +  + // -------------------------------------------------------------------------- // +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_connect, 0, 0, 1) ++    ZEND_ARG_INFO(0, ip) ++    ZEND_ARG_INFO(0, port) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_connect) + { +     phpiredis_connection *connection; +@@ -477,6 +482,11 @@ PHP_FUNCTION(phpiredis_disconnect) +     RETURN_TRUE; + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_multi_command, 0, 0, 2) ++    ZEND_ARG_INFO(0, connection) ++    ZEND_ARG_ARRAY_INFO(0, commands, 0) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_multi_command) + { +     zval *resource, *cmds; +@@ -583,6 +593,11 @@ PHP_FUNCTION(phpiredis_multi_command_bs) +     get_pipeline_responses(connection, return_value, commands TSRMLS_CC); + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_command, 0, 0, 2) ++    ZEND_ARG_INFO(0, connection) ++    ZEND_ARG_INFO(0, command) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_command) + { +     zval *resource; +@@ -616,6 +631,11 @@ PHP_FUNCTION(phpiredis_command) +     freeReplyObject(reply); + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_command_bs, 0, 0, 2) ++    ZEND_ARG_INFO(0, connection) ++    ZEND_ARG_ARRAY_INFO(0, args, 0) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_command_bs) + { +     zval *resource; +@@ -661,6 +681,10 @@ PHP_FUNCTION(phpiredis_command_bs) +     freeReplyObject(reply); + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_format_command, 0, 0, 1) ++    ZEND_ARG_ARRAY_INFO(0, args, 0) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_format_command) + { +     zval *cmdArgs; +@@ -690,7 +714,13 @@ PHP_FUNCTION(phpiredis_format_command) +  + PHP_FUNCTION(phpiredis_reader_create) + { +-    phpiredis_reader *reader = emalloc(sizeof(phpiredis_reader)); ++    phpiredis_reader *reader; ++ ++    if (zend_parse_parameters_none() == FAILURE) { ++        RETURN_FALSE; ++    } ++ ++    reader = emalloc(sizeof(phpiredis_reader)); +     reader->reader = redisReplyReaderCreate(); +     reader->error = NULL; +     reader->bufferedReply = NULL; +@@ -813,6 +843,11 @@ PHP_FUNCTION(phpiredis_reader_destroy) +     RETURN_TRUE; + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_reader_feed, 0, 0, 2) ++    ZEND_ARG_INFO(0, connection) ++    ZEND_ARG_INFO(0, buffer) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_reader_feed) + { +     zval *resource; +@@ -857,6 +892,11 @@ PHP_FUNCTION(phpiredis_reader_get_error) + #endif + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_reader_get_reply, 0, 0, 1) ++    ZEND_ARG_INFO(0, ptr) ++    ZEND_ARG_INFO(1, type) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_reader_get_reply) + { +     zval *resource, *replyType = NULL; +@@ -934,6 +974,10 @@ PHP_FUNCTION(phpiredis_reader_get_state) +     } + } +  ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_utils_crc16, 0, 0, 1) ++    ZEND_ARG_INFO(0, buffer) ++ZEND_END_ARG_INFO() ++ + PHP_FUNCTION(phpiredis_utils_crc16) + { +     char *buf; +@@ -970,31 +1014,45 @@ PHP_MINIT_FUNCTION(phpiredis) +     return SUCCESS; + } +  +-ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_reader_get_reply, 0, 0, 1) +-    ZEND_ARG_INFO(0, ptr) +-    ZEND_ARG_INFO(1, type) ++/* arginfo shared by various functions */ ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_void, 0, 0, 0) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_conn, 0, 0, 1) ++    ZEND_ARG_INFO(0, connection) ++ZEND_END_ARG_INFO() ++ ++ZEND_BEGIN_ARG_INFO_EX(arginfo_phpiredis_callback, 0, 0, 2) ++    ZEND_ARG_INFO(0, connection) ++    ZEND_ARG_INFO(0, callback) + ZEND_END_ARG_INFO() +  ++ + static zend_function_entry phpiredis_functions[] = { +-    PHP_FE(phpiredis_connect, NULL) +-    PHP_FE(phpiredis_pconnect, NULL) +-    PHP_FE(phpiredis_disconnect, NULL) +-    PHP_FE(phpiredis_command, NULL) +-    PHP_FE(phpiredis_command_bs, NULL) +-    PHP_FE(phpiredis_multi_command, NULL) +-    PHP_FE(phpiredis_multi_command_bs, NULL) +-    PHP_FE(phpiredis_format_command, NULL) +-    PHP_FE(phpiredis_reader_create, NULL) +-    PHP_FE(phpiredis_reader_reset, NULL) +-    PHP_FE(phpiredis_reader_feed, NULL) +-    PHP_FE(phpiredis_reader_get_state, NULL) +-    PHP_FE(phpiredis_reader_get_error, NULL) ++    PHP_FE(phpiredis_connect, arginfo_phpiredis_connect) ++    PHP_FE(phpiredis_pconnect, arginfo_phpiredis_connect) ++    PHP_FE(phpiredis_disconnect, arginfo_phpiredis_conn) ++    PHP_FE(phpiredis_command, arginfo_phpiredis_command) ++    PHP_FE(phpiredis_command_bs, arginfo_phpiredis_command_bs) ++    PHP_FE(phpiredis_multi_command, arginfo_phpiredis_multi_command) ++    PHP_FE(phpiredis_multi_command_bs, arginfo_phpiredis_multi_command) ++    PHP_FE(phpiredis_format_command, arginfo_phpiredis_format_command) ++    PHP_FE(phpiredis_reader_create, arginfo_phpiredis_void) ++    PHP_FE(phpiredis_reader_reset, arginfo_phpiredis_conn) ++    PHP_FE(phpiredis_reader_feed, arginfo_phpiredis_reader_feed) ++    PHP_FE(phpiredis_reader_get_state, arginfo_phpiredis_conn) ++    PHP_FE(phpiredis_reader_get_error, arginfo_phpiredis_conn) +     PHP_FE(phpiredis_reader_get_reply, arginfo_phpiredis_reader_get_reply) +-    PHP_FE(phpiredis_reader_destroy, NULL) +-    PHP_FE(phpiredis_reader_set_error_handler, NULL) +-    PHP_FE(phpiredis_reader_set_status_handler, NULL) +-    PHP_FE(phpiredis_utils_crc16, NULL) ++    PHP_FE(phpiredis_reader_destroy, arginfo_phpiredis_conn) ++    PHP_FE(phpiredis_reader_set_error_handler, arginfo_phpiredis_callback) ++    PHP_FE(phpiredis_reader_set_status_handler, arginfo_phpiredis_callback) ++    PHP_FE(phpiredis_utils_crc16, arginfo_phpiredis_utils_crc16) ++#ifdef PHP_FE_END ++    PHP_FE_END ++#else +     {NULL, NULL, NULL} ++#endif + }; +  + zend_module_entry phpiredis_module_entry = { | 
