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 05414b5..453e43c 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 c2be680..f4a9958 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 ac93baf..8d731c5 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 f75bac9..fb0138b 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 ef64909..e819003 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 5d81194..d33a58d 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 4678bcc..280c305 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 582087f..2a07128 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 0721586..8b2e378 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 6956588..3378b62 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 61e0865..91310cb 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 3de34bd..470bfea 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 23c2876..5e781dc 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 23c2876aaa0808bcfedc1c5c30da6e8234341a13
+Subproject commit 5e781dcbd19aac1bc3a31b3187fd42011e70dd3d