summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--1b1435c135c69d81b47f1f0662633867c5c289b5.patch209
-rw-r--r--php-pecl-http.spec9
2 files changed, 217 insertions, 1 deletions
diff --git a/1b1435c135c69d81b47f1f0662633867c5c289b5.patch b/1b1435c135c69d81b47f1f0662633867c5c289b5.patch
new file mode 100644
index 0000000..c0f1741
--- /dev/null
+++ b/1b1435c135c69d81b47f1f0662633867c5c289b5.patch
@@ -0,0 +1,209 @@
+From 1b1435c135c69d81b47f1f0662633867c5c289b5 Mon Sep 17 00:00:00 2001
+From: Michael Wallner <mike@php.net>
+Date: Tue, 24 Jan 2017 08:38:58 +0100
+Subject: [PATCH] fix querystring object conversion on master
+
+---
+ tests/querystring001.phpt | 1 +
+ tests/querystring001_a.phpt | 180 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 181 insertions(+)
+ create mode 100644 tests/querystring001_a.phpt
+
+diff --git a/tests/querystring001.phpt b/tests/querystring001.phpt
+index 203be33..e2e563d 100644
+--- a/tests/querystring001.phpt
++++ b/tests/querystring001.phpt
+@@ -3,6 +3,7 @@ query string
+ --SKIPIF--
+ <?php
+ include("skipif.inc");
++version_compare(PHP_VERSION, "7.2.0-dev", "<") or die("skip only for PHP < 7.2.0");
+ ?>
+ --GET--
+ str=abc&num=-123&dec=123.123&bool=1&arr[]=1&arr[]=2&ma[l1][l2]=2&ma[l2][l3][l4]=3
+diff --git a/tests/querystring001_a.phpt b/tests/querystring001_a.phpt
+new file mode 100644
+index 0000000..24994f2
+--- /dev/null
++++ b/tests/querystring001_a.phpt
+@@ -0,0 +1,180 @@
++--TEST--
++query string
++--SKIPIF--
++<?php
++include("skipif.inc");
++version_compare(PHP_VERSION, "7.2.0-dev", ">=") or die("skip only for PHP >= 7.2.0");
++?>
++--GET--
++str=abc&num=-123&dec=123.123&bool=1&arr[]=1&arr[]=2&ma[l1][l2]=2&ma[l2][l3][l4]=3
++--FILE--
++<?php
++echo "Test\n";
++
++printf("\nGlobal instance:\n");
++$q = http\QueryString::getGlobalInstance();
++printf("%s\n", $q);
++
++printf("\nStandard getters:\n");
++var_dump($q->getString("str"));
++var_dump($q->getInt("num"));
++var_dump($q->getFloat("dec"));
++var_dump($q->getInt("dec"));
++var_dump($q->getFloat("dec"));
++var_dump($q->getBool("bool"));
++var_dump($q->getInt("bool"));
++var_dump($q->getBool("num"));
++var_dump($q->getInt("num"));
++var_dump($q->getArray("arr"));
++var_dump($q->getArray("ma"));
++var_dump($q->getObject("arr"));
++var_dump($q->getObject("ma"));
++
++$s = $q->toString();
++
++printf("\nClone modifications do not alter global instance:\n");
++$q->mod(array("arr" => array(3 => 3)));
++printf("%s\n", $q);
++
++printf("\nClone modifications do not alter standard instance:\n");
++$q2 = new http\QueryString($s);
++$q3 = $q2->mod(array("arr" => array(3 => 3)));
++printf("%s\n%s\n", $q2, $q3);
++#var_dump($q2, $q3);
++
++printf("\nIterator:\n");
++$it = new RecursiveIteratorIterator($q2, RecursiveIteratorIterator::SELF_FIRST);
++foreach ($it as $k => $v) {
++ $i = $it->getDepth()*8;
++ @printf("%{$i}s: %s\n", $k, $v);
++}
++
++printf("\nReplace a multi dimensional key:\n");
++printf("%s\n", $q2->mod(array("ma" => null))->set(array("ma" => array("l1" => false))));
++
++printf("\nXlate:\n");
++$qu = new http\QueryString("ü=ö");
++printf("utf8: %s\n", $qu);
++printf("latin1: %s\n", method_exists($qu, "xlate") ? $qu->xlate("utf-8", "latin1") : "%FC=%F6");
++
++printf("\nOffsets:\n");
++var_dump($q2["ma"]);
++$q2["ma"] = array("bye");
++var_dump($q2["ma"]);
++var_dump(isset($q2["ma"]));
++unset($q2["ma"]);
++var_dump(isset($q2["ma"]));
++
++echo "Done\n";
++?>
++--EXPECTF--
++Test
++
++Global instance:
++str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
++
++Standard getters:
++string(3) "abc"
++int(-123)
++float(123.123)
++int(123)
++float(123.123)
++bool(true)
++int(1)
++bool(true)
++int(-123)
++array(2) {
++ [0]=>
++ string(1) "1"
++ [1]=>
++ string(1) "2"
++}
++array(2) {
++ ["l1"]=>
++ array(1) {
++ ["l2"]=>
++ string(1) "2"
++ }
++ ["l2"]=>
++ array(1) {
++ ["l3"]=>
++ array(1) {
++ ["l4"]=>
++ string(1) "3"
++ }
++ }
++}
++object(stdClass)#%d (2) {
++ ["0"]=>
++ string(1) "1"
++ ["1"]=>
++ string(1) "2"
++}
++object(stdClass)#%d (2) {
++ ["l1"]=>
++ array(1) {
++ ["l2"]=>
++ string(1) "2"
++ }
++ ["l2"]=>
++ array(1) {
++ ["l3"]=>
++ array(1) {
++ ["l4"]=>
++ string(1) "3"
++ }
++ }
++}
++
++Clone modifications do not alter global instance:
++str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
++
++Clone modifications do not alter standard instance:
++str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
++str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&arr%5B3%5D=3&ma%5Bl1%5D%5Bl2%5D=2&ma%5Bl2%5D%5Bl3%5D%5Bl4%5D=3
++
++Iterator:
++str: abc
++num: -123
++dec: 123.123
++bool: 1
++arr: Array
++ 0: 1
++ 1: 2
++ma: Array
++ l1: Array
++ l2: 2
++ l2: Array
++ l3: Array
++ l4: 3
++
++Replace a multi dimensional key:
++str=abc&num=-123&dec=123.123&bool=1&arr%5B0%5D=1&arr%5B1%5D=2&ma%5Bl1%5D=
++
++Xlate:
++utf8: %C3%BC=%C3%B6
++latin1: %FC=%F6
++
++Offsets:
++array(2) {
++ ["l1"]=>
++ array(1) {
++ ["l2"]=>
++ string(1) "2"
++ }
++ ["l2"]=>
++ array(1) {
++ ["l3"]=>
++ array(1) {
++ ["l4"]=>
++ string(1) "3"
++ }
++ }
++}
++array(1) {
++ [0]=>
++ string(3) "bye"
++}
++bool(true)
++bool(false)
++Done
diff --git a/php-pecl-http.spec b/php-pecl-http.spec
index bf9ceb8..3fcacab 100644
--- a/php-pecl-http.spec
+++ b/php-pecl-http.spec
@@ -43,7 +43,7 @@ Version: 3.1.0
Release: 0.2.%{gh_date}git%{gh_short}%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
Source0: https://github.com/%{gh_owner}/%{gh_project}/archive/%{gh_commit}/%{pecl_name}-%{version}-%{gh_short}.tar.gz
%else
-Release: 4%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
+Release: 5%{?dist}%{!?scl:%{!?nophptag:%(%{__php} -r 'echo ".".PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')}}
Source0: http://pecl.php.net/get/%{proj_name}-%{version}%{?prever}.tgz
%endif
Summary: Extended HTTP support
@@ -55,6 +55,8 @@ URL: http://pecl.php.net/package/pecl_http
# From http://www.php.net/manual/en/http.configuration.php
Source1: %{proj_name}.ini
+Patch0: 1b1435c135c69d81b47f1f0662633867c5c289b5.patch
+
BuildRequires: %{?scl_prefix}php-devel >= 7
BuildRequires: %{?scl_prefix}php-hash
BuildRequires: %{?scl_prefix}php-spl
@@ -163,6 +165,8 @@ mv %{proj_name}-%{version}%{?prever} NTS
%{?_licensedir:sed -e '/LICENSE/s/role="doc"/role="src"/' -i package.xml}
cd NTS
+%patch0 -p1 -b .upstream
+
extver=$(sed -n '/#define PHP_PECL_HTTP_VERSION/{s/.* "//;s/".*$//;p}' php_http.h)
if test "x${extver}" != "x%{version}%{?prever}%{?gh_date:dev}"; then
: Error: Upstream HTTP version is now ${extver}, expecting %{version}%{?prever}%{?gh_date:dev}.
@@ -337,6 +341,9 @@ fi
%changelog
+* Fri Jun 23 2017 Remi Collet <remi@remirepo.net> - 3.1.0-5
+- add upstream patch for 7.2
+
* Tue May 9 2017 Remi Collet <remi@remirepo.net> - 3.1.0-4
- drop dependency on libidn, only use libicu, #1449142