summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--REFLECTION76
-rw-r--r--php-phpiredis.spec22
-rw-r--r--phpiredis-pr53.patch228
3 files changed, 324 insertions, 2 deletions
diff --git a/REFLECTION b/REFLECTION
index d17ea0e..f910e5a 100644
--- a/REFLECTION
+++ b/REFLECTION
@@ -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 = {