5.3 compatibility
authorMichael Wallner <mike@php.net>
Tue, 6 Sep 2016 14:25:39 +0000 (16:25 +0200)
committerMichael Wallner <mike@php.net>
Tue, 6 Sep 2016 14:25:39 +0000 (16:25 +0200)
13 files changed:
src/php_http_client.c
src/php_http_client_curl_user.c
tests/bug69357.phpt
tests/bug71719.phpt
tests/client021.phpt
tests/client027.phpt
tests/client028.phpt
tests/client030.phpt
tests/gh-issue12.phpt
tests/gh-issue47.phpt
tests/gh-issue50.phpt
tests/gh-issue6.phpt
travis/pecl

index 05414b5dcd8295fb8e9abe83349bdf5e0b451107..453e43c6ade56c18f5177abdf1698050b9116242 100644 (file)
@@ -1256,7 +1256,8 @@ static PHP_METHOD(HttpClient, getAvailableConfiguration)
 }
 
 ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_setDebug, 0, 0, 1)
-       ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 1)
+       /* using IS_CALLABLE type hint would create a forwards compatibility break */
+       ZEND_ARG_INFO(0, callback)
 ZEND_END_ARG_INFO();
 static PHP_METHOD(HttpClient, setDebug)
 {
index c2be6807d72cd87ffdd37002cf9dd1325ab6a7cc..f4a995894ba8a2ddad3ce1cee1d71b6e165f2a3a 100644 (file)
@@ -216,7 +216,11 @@ static void *php_http_client_curl_user_init(php_http_client_t *client, void *use
        ctx->closure.internal_function.handler = php_http_client_curl_user_handler;
 
        MAKE_STD_ZVAL(zclosure);
+#if PHP_VERSION_ID >= 50400
        zend_create_closure(zclosure, &ctx->closure, NULL, NULL TSRMLS_CC);
+#else
+       zend_create_closure(zclosure, &ctx->closure TSRMLS_CC);
+#endif
        args[0] = &zclosure;
 
        php_http_object_method_init(&init, ctx->user, ZEND_STRL("init") TSRMLS_CC);
@@ -282,7 +286,8 @@ php_http_client_curl_ops_t *php_http_client_curl_user_ops_get()
 zend_class_entry *php_http_client_curl_user_class_entry;
 
 ZEND_BEGIN_ARG_INFO_EX(ai_init, 0, 0, 1)
-       ZEND_ARG_TYPE_INFO(0, run, IS_CALLABLE, 0)
+       /* using IS_CALLABLE type hint would create a forwards compatibility break */
+       ZEND_ARG_INFO(0, run)
 ZEND_END_ARG_INFO();
 ZEND_BEGIN_ARG_INFO_EX(ai_timer, 0, 0, 1)
 #if PHP_VERSION_ID >= 70000
index ac93baf3e5192865674fe74b40ee8f5d30c3a07d..8d731c53da9cab0c8a720df032993680d70b2b4c 100644 (file)
@@ -12,11 +12,11 @@ echo "Test\n";
 include "helper/server.inc";
 
 server("upload.inc", function($port) {
-       $r = new \http\Client\Request("PUT", "http://localhost:$port/", [],
-                       (new \http\Message\Body)->append("foo")
-       );
+       $b = new \http\Message\Body;
+       $b->append("foo");
+       $r = new \http\Client\Request("PUT", "http://localhost:$port/", array(), $b);
        $c = new \http\Client;
-       $c->setOptions(["expect_100_timeout" => 0]);
+       $c->setOptions(array("expect_100_timeout" => 0));
        $c->enqueue($r)->send();
        
        var_dump($c->getResponse($r)->getInfo());
index f75bac90e85500a4db253dde25288ff33f3d096a..fb0138bbe0a4f8188c6d1dc867642fa5d0478275 100644 (file)
@@ -20,6 +20,6 @@ try {
 Test
 %r(exception ')?%rhttp\Exception\BadMessageException%r(' with message '|: )%rhttp\Message::__construct(): Could not parse HTTP protocol version 'HTTP/%s.0'%r'?%r in %sbug71719.php:5
 Stack trace:
-#0 %sbug71719.php(5): http\Message->__construct('\x80\xACTd 5 HTTP/1.1...', false)
+#0 %sbug71719.php(5): http\Message->__construct('%r(\?\?|\\x80\\xAC)%rTd 5 HTTP/1.1...', false)
 #1 {main}
 ===DONE===
index ef649093e077d243b11379f2df031d4581155478..e819003347b5df71909eae234e8e3e1f1bc84cfd 100644 (file)
@@ -110,8 +110,10 @@ dump($tmpfile);
 });
 
 
-(new http\Client("curl", "test"))->configure(["share_cookies" => false]);
-$request->setOptions(["cookiestore" => null]);
+$c = new http\Client("curl", "test");
+$c->configure(array("share_cookies" => false));
+$c = null;
+$request->setOptions(array("cookiestore" => null));
 
 server("cookie.inc", function($port) use($request, $tmpfile) {
        $request->setOptions(array("port" => $port));
index 5d81194c0aa323bdc1f746a05bf625d1594dd1bb..d33a58db02c84dbb42b4d39dc6bc77d397957f00 100644 (file)
@@ -15,7 +15,7 @@ echo "Test\n";
 
 server("cookie.inc", function($port) {
        $client = new http\Client(null, "cookies");
-       $client->configure(["pipelining" => false]);
+       $client->configure(array("pipelining" => false));
        $request = new http\Client\Request("GET", "http://localhost:$port?r1");
        $client->enqueue($request);
        $client->send();
index 4678bcca8b3f4069b7c7a1861e9dc46d3aed00f4..280c3059d36aa62948708caf4fb501d1e7862548 100644 (file)
@@ -13,19 +13,19 @@ class UserHandler implements http\Client\Curl\User
 {
        private $client;
        private $run;
-       private $fds = [
-                       "R" => [],
-                       "W" => []
-       ];
-       private $R = [];
-       private $W = [];
+       private $fds = array(
+                       "R" => array(),
+                       "W" => array()
+       );
+       private $R = array();
+       private $W = array();
        private $timeout = 1000;
        
        function __construct(http\Client $client) {
                $this->client = $client;
        }
        
-       function init(callable $run) {
+       function init($run) {
                $this->run = $run;
        }
        
@@ -124,9 +124,9 @@ include "helper/server.inc";
 
 server("proxy.inc", function($port) {
        $client = new http\Client;
-       $client->configure([
+       $client->configure(array(
                        "use_eventloop" => new UserHandler($client)
-       ]);
+       ));
        $client->enqueue(new http\Client\Request("GET", "http://localhost:$port/"), function($r) {
                var_dump($r->getResponseCode());
        });
index 582087f93f3fa93aadb0c483ffd3e69a61b0f6bb..2a07128f7d921450c670e5c898cf1e756e62d7f8 100644 (file)
@@ -17,9 +17,9 @@ class test implements SplObserver {
 }
 server("proxy.inc", function($port) {
        $client = new http\Client;
-       $client->configure([
+       $client->configure(array(
                        "use_eventloop" => true,
-       ]);
+       ));
        $client->attach(new test);
        $client->enqueue(new http\Client\Request("GET", "http://localhost:$port/"), function($r) {
                var_dump($r->getResponseCode());
index 07215863ef6768c5d2de2a1668b4f7f5355ae630..8b2e3787ef50769a9e98db89c1478e693371def3 100644 (file)
@@ -14,7 +14,8 @@ $urls = array(
 
 foreach ($urls as $url) {
        try {
-               (new http\Client\Request)->setRequestUrl($url);
+               $c = new http\Client\Request;
+               $c->setRequestUrl($url);
                printf("OK: %s\n", $url);
        } catch (Exception $e) {
                printf("%s\n", $e->getMessage());
index 6956588cf077d0bcdb7351f94a74198b70899393..3378b628f3382ad4912af6cb13fd2ff0d7db254a 100644 (file)
@@ -8,10 +8,10 @@ include "skipif.inc";
 <?php
 echo "Test\n";
 
-$urls = [
+$urls = array(
     "",
     "? = ="
-];
+);
 
 $url0=new http\Url($urls[0]);
 $url1=$url0->mod($urls[1]);
index 61e0865e7b1121cc857f9624b787cb953c403a07..91310cb5094fd6d522bfe4c21a50b2eab5c6ca09 100644 (file)
@@ -33,7 +33,7 @@ Test
 exception 'http\Exception\RuntimeException' with message 'http\Client::dequeue(): Could not dequeue request while executing callbacks' in %sgh-issue50.php:9
 Stack trace:
 #0 %sgh-issue50.php(9): http\Client->dequeue(Object(http\Client\Request))
-#1 [internal function]: {closure}(Object(http\Client), Object(http\Client\Request), 18, 'GET / HTTP/1.1\r...')
+#1 [internal function]: {closure}(Object(http\Client), Object(http\Client\Request), 18, 'GET / HTTP/1.1%s...')
 #2 %sgh-issue50.php(14): http\Client->send()
 #3 {main}
 ===DONE===
index 3de34bd65fec8ff4964e42f073de7ad608d820a3..470bfea01180e2709d396bdd52982e06bf728a2a 100644 (file)
@@ -7,9 +7,11 @@ url - unsafe characters
 
 echo "Test\n";
 
-echo (new http\Url("?__utma=1152894289.1017686999.9107388726.1439222726.1494721726.1&__utmb=115739289.1.10.1437388726&__utmc=115883619&__utmx=-&__utmz=115111289.14310476.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)&__utmv=-&__utmk=112678937"))->query;
+$url = new http\Url("?__utma=1152894289.1017686999.9107388726.1439222726.1494721726.1&__utmb=115739289.1.10.1437388726&__utmc=115883619&__utmx=-&__utmz=115111289.14310476.1.1.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=(not%20provided)&__utmv=-&__utmk=112678937");
+echo $url->query;
 echo "\n";
-echo (new http\Url("?id={\$id}"))->query;
+$url = new http\Url("?id={\$id}");
+echo $url->query;
 echo "\n";
 
 ?>
index 23c2876aaa0808bcfedc1c5c30da6e8234341a13..5e781dcbd19aac1bc3a31b3187fd42011e70dd3d 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 23c2876aaa0808bcfedc1c5c30da6e8234341a13
+Subproject commit 5e781dcbd19aac1bc3a31b3187fd42011e70dd3d