<email>mike@php.net</email>
<active>yes</active>
</lead>
- <date>2018-07-19</date>
+ <date>2019-06-06</date>
<version>
- <release>3.2.1dev</release>
+ <release>3.2.1</release>
<api>3.2.0</api>
</version>
<stability>
</stability>
<license uri="http://copyfree.org/content/standard/licenses/2bsd/license.txt">BSD-2-Clause</license>
<notes><![CDATA[
-*
+* Fixed gh-issue #88: Unable to run test suite (Remi Collet)
+* Fixed gh-issue #86: test failure with curl 7.64
+* Fixed gh-issue #85: [-Wformat-extra-args] build warnings
+* Fixed gh-issue #84: segfault and build failure since curl 7.62
+* Fixed gh-issue #82: Test harness improvements (Chris Wright)
+* Fixed http\QueryString::getGlobalInstance()
+* Fixed missing 2nd reflection argument info of http\Client::notify()
+* Fixed PHP-7.4 compatibility
]]></notes>
<contents>
<dir name="/">
</dir>
<dir name="helper">
<file role="test" name="cookie.inc"/>
+ <file role="test" name="cookie1.inc"/>
+ <file role="test" name="cookie2.inc"/>
<file role="test" name="dump.inc"/>
+ <file role="test" name="env.inc"/>
<file role="test" name="http2.crt"/>
<file role="test" name="http2.key"/>
<file role="test" name="pipeline.inc"/>
}
return $n;
}
-function t($p) {
- if ($c = $p->getClass()) return "\\" . $c->getName() . " ";
- if ($p->isArray()) return "array ";
+function t(ReflectionParameter $p) {
+ if ($c = $p->getClass()) return ($p->allowsNull()?"?":"") . "\\" . $c->getName() . " ";
+ if ($p->isArray()) return ($p->allowsNull() ? "?":"") . "array ";
+ if ($p->hasType()) {
+ return ($p->allowsNull() ? "?" : "") . ($p->getType()->isBuiltin() ? "" : "\\") . $p->getType()->getName() . " ";
+ }
}
function c($n, $c) {
$_=$c;
}
$ps[] = $p1;
}
- fprintf($out, "%s) {\n\t}\n", implode(", ", $ps));
+ fprintf($out, "%s)", implode(", ", $ps));
+ if ($f->hasReturnType()) {
+ fprintf($out, " : %s%s", $f->getReturnType()->allowsNull() ? "?":"", $f->getReturnType()->getName());
+ }
+ fprintf($out, " {\n\t}\n");
}
}
//
fprintf($out, "extends \\%s ", $p->getName());
}
if ($i = $c->getInterfaceNames()) {
- fprintf($out, "implements \\%s ",
- implode(", \\", array_filter($i, function($v) {
+ fprintf($out, "%s \\%s ",
+ $c->isInterface() ? "extends" : "implements",
+ implode(", \\", array_filter($i, function($v) use($c, $i) {
+ foreach ($i as $ii) {
+ if ($v != $ii && (new ReflectionClass($ii))->implementsInterface("\\".$v)) {
+ return false;
+ }
+ }
return $v != "Traversable";
}))
$ps[] = $p1;
}
fprintf($out, "%s)", implode(", ", $ps));
+ if ($m->hasReturnType()) {
+ fprintf($out, " : %s%s%s", $m->getReturnType()->allowsNull() ? "?":"",
+ $m->getReturnType()->isBuiltin() ? "" : "\\", //0 === strpos($m->getReturnType()->getName(), $c->getNamespaceName()) ? "\\":"",
+ $m->getReturnType()->getName());
+ }
if ($m->isAbstract()) {
fprintf($out, ";\n\n");
} else {