Skip to content

Declare tentative return types for ext/soap #7001

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 42 additions & 42 deletions ext/soap/soap.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -32,81 +32,81 @@ class SoapServer
{
public function __construct(?string $wsdl, array $options = []) {}

/** @return void */
public function fault(string $code, string $string, string $actor = "", mixed $details = null, string $name = "") {}
/** @tentative-return-type */
public function fault(string $code, string $string, string $actor = "", mixed $details = null, string $name = ""): void {}

/** @return void */
public function addSoapHeader(SoapHeader $header) {}
/** @tentative-return-type */
public function addSoapHeader(SoapHeader $header): void {}

/** @return void */
public function setPersistence(int $mode) {}
/** @tentative-return-type */
public function setPersistence(int $mode): void {}

/** @return void */
public function setClass(string $class, mixed ...$args) {}
/** @tentative-return-type */
public function setClass(string $class, mixed ...$args): void {}

/** @return void */
public function setObject(object $object) {}
/** @tentative-return-type */
public function setObject(object $object): void {}

/** @return array */
public function getFunctions() {}
/** @tentative-return-type */
public function getFunctions(): array {}

/**
* @param array|string|int $functions
* @return void
* @tentative-return-type
*/
public function addFunction($functions) {}
public function addFunction($functions): void {}

/** @return void */
public function handle(?string $request = null) {}
/** @tentative-return-type */
public function handle(?string $request = null): void {}
}

class SoapClient
{
public function __construct(?string $wsdl, array $options = []) {}

/** @return mixed */
public function __call(string $name, array $args) {}
/** @tentative-return-type */
public function __call(string $name, array $args): mixed {}

/**
* @param SoapHeader|array|null $inputHeaders
* @param array $outputHeaders
* @return mixed
* @tentative-return-type
*/
public function __soapCall(string $name, array $args, ?array $options = null, $inputHeaders = null, &$outputHeaders = null) {}
public function __soapCall(string $name, array $args, ?array $options = null, $inputHeaders = null, &$outputHeaders = null): mixed {}

/** @return array|null */
public function __getFunctions() {}
/** @tentative-return-type */
public function __getFunctions(): ?array {}

/** @return array|null */
public function __getTypes() {}
/** @tentative-return-type */
public function __getTypes(): ?array {}

/** @return string|null */
public function __getLastRequest() {}
/** @tentative-return-type */
public function __getLastRequest(): ?string {}

/** @return string|null */
public function __getLastResponse() {}
/** @tentative-return-type */
public function __getLastResponse(): ?string {}

/** @return string|null */
public function __getLastRequestHeaders() {}
/** @tentative-return-type */
public function __getLastRequestHeaders(): ?string {}

/** @return string|null */
public function __getLastResponseHeaders() {}
/** @tentative-return-type */
public function __getLastResponseHeaders(): ?string {}

/** @return string|null */
public function __doRequest(string $request, string $location, string $action, int $version, bool $oneWay = false) {}
/** @tentative-return-type */
public function __doRequest(string $request, string $location, string $action, int $version, bool $oneWay = false): ?string {}

/** @return void */
public function __setCookie(string $name, ?string $value = null) {}
/** @tentative-return-type */
public function __setCookie(string $name, ?string $value = null): void {}

/** @return array */
public function __getCookies() {}
/** @tentative-return-type */
public function __getCookies(): array {}

/**
* @param SoapHeader|array|null $headers
* @return bool
* @tentative-return-type
*/
public function __setSoapHeaders($headers = null) {}
public function __setSoapHeaders($headers = null): bool {}

/** @return string|null */
public function __setLocation(?string $location = null) {}
/** @tentative-return-type */
public function __setLocation(?string $location = null): ?string {}
}
44 changes: 23 additions & 21 deletions ext/soap/soap_arginfo.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: b4f2354707bc7b992a3574f820edb329b16dd49e */
* Stub hash: c72f989c179f1bc136fe008c78ac3605efe55141 */

ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_use_soap_error_handler, 0, 0, _IS_BOOL, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, enable, _IS_BOOL, 0, "true")
Expand Down Expand Up @@ -48,89 +48,91 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer___construct, 0, 0, 1)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_fault, 0, 0, 2)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_fault, 0, 2, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, code, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, actor, IS_STRING, 0, "\"\"")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, details, IS_MIXED, 0, "null")
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, name, IS_STRING, 0, "\"\"")
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_addSoapHeader, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_addSoapHeader, 0, 1, IS_VOID, 0)
ZEND_ARG_OBJ_INFO(0, header, SoapHeader, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_setPersistence, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_setPersistence, 0, 1, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, mode, IS_LONG, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_setClass, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_setClass, 0, 1, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, class, IS_STRING, 0)
ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_setObject, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_setObject, 0, 1, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_getFunctions, 0, 0, 0)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_getFunctions, 0, 0, IS_ARRAY, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_addFunction, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_addFunction, 0, 1, IS_VOID, 0)
ZEND_ARG_INFO(0, functions)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapServer_handle, 0, 0, 0)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapServer_handle, 0, 0, IS_VOID, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, request, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()

#define arginfo_class_SoapClient___construct arginfo_class_SoapServer___construct

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___call, 0, 0, 2)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___call, 0, 2, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___soapCall, 0, 0, 2)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___soapCall, 0, 2, IS_MIXED, 0)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 1, "null")
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, inputHeaders, "null")
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, outputHeaders, "null")
ZEND_END_ARG_INFO()

#define arginfo_class_SoapClient___getFunctions arginfo_class_SoapServer_getFunctions
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___getFunctions, 0, 0, IS_ARRAY, 1)
ZEND_END_ARG_INFO()

#define arginfo_class_SoapClient___getTypes arginfo_class_SoapServer_getFunctions
#define arginfo_class_SoapClient___getTypes arginfo_class_SoapClient___getFunctions

#define arginfo_class_SoapClient___getLastRequest arginfo_class_SoapServer_getFunctions
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___getLastRequest, 0, 0, IS_STRING, 1)
ZEND_END_ARG_INFO()

#define arginfo_class_SoapClient___getLastResponse arginfo_class_SoapServer_getFunctions
#define arginfo_class_SoapClient___getLastResponse arginfo_class_SoapClient___getLastRequest

#define arginfo_class_SoapClient___getLastRequestHeaders arginfo_class_SoapServer_getFunctions
#define arginfo_class_SoapClient___getLastRequestHeaders arginfo_class_SoapClient___getLastRequest

#define arginfo_class_SoapClient___getLastResponseHeaders arginfo_class_SoapServer_getFunctions
#define arginfo_class_SoapClient___getLastResponseHeaders arginfo_class_SoapClient___getLastRequest

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___doRequest, 0, 0, 4)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___doRequest, 0, 4, IS_STRING, 1)
ZEND_ARG_TYPE_INFO(0, request, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, location, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, action, IS_STRING, 0)
ZEND_ARG_TYPE_INFO(0, version, IS_LONG, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, oneWay, _IS_BOOL, 0, "false")
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___setCookie, 0, 0, 1)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___setCookie, 0, 1, IS_VOID, 0)
ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, value, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()

#define arginfo_class_SoapClient___getCookies arginfo_class_SoapServer_getFunctions

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___setSoapHeaders, 0, 0, 0)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___setSoapHeaders, 0, 0, _IS_BOOL, 0)
ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, headers, "null")
ZEND_END_ARG_INFO()

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_SoapClient___setLocation, 0, 0, 0)
ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_INFO_EX(arginfo_class_SoapClient___setLocation, 0, 0, IS_STRING, 1)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, location, IS_STRING, 1, "null")
ZEND_END_ARG_INFO()

Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/any.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class TestSoapClient extends SoapClient {
$this->server->addFunction('echoAnyElement');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug47021.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ $options = [

class BugSoapClient extends SoapClient
{
public function __doRequest($request, $location, $action, $version, $one_way = null)
public function __doRequest($request, $location, $action, $version, $one_way = null): ?string
{
$response = parent::__doRequest($request, $location, $action, $version, $one_way);

Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug69668.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ soap
--FILE--
<?php
class MySoapClient extends SoapClient {
public function __doRequest($request, $location, $action, $version, $one_way = 0) {
public function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo $request, PHP_EOL;
return '';
}
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug70875.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ soap.wsdl_cache_enabled=0

class bug70875 extends SOAPClient
{
public function __doRequest($request, $location, $action, $version, $one_way = 0)
public function __doRequest($request, $location, $action, $version, $one_way = 0): ?string
{
die("no SIGSEGV");
}
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug71711.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ soap
<?php

$client = new class(null, [ 'location' => '', 'uri' => 'http://example.org']) extends SoapClient {
public function __doRequest($request, $location, $action, $version, $one_way = 0) {
public function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo $request;
return '';
}
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug71996.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ soap
<?php

$client = new class(null, ['location' => '', 'uri' => 'http://example.org']) extends SoapClient {
public function __doRequest($request, $location, $action, $version, $one_way = 0) {
public function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo $request, "\n";
return '';
}
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bug77410.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ $client = new class(__DIR__ . '/bug77410.wsdl', [
'cache_wsdl' => WSDL_CACHE_NONE,
'trace' => 1,
]) extends SoapClient {
public function __doRequest($request, $location, $action, $version, $one_way = 0) {
public function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo $request, "\n";
return '';
}
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug28969.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction('test');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug29795.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ class LocalSoapClient extends SoapClient {
parent::__construct($wsdl, $options);
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
return <<<EOF
<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug29839.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction('EchoString');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug29844.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class LocalSoapClient extends SoapClient {
$this->server->setClass('hello_world');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug30045.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction('foo');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
$xml = simplexml_load_string($request);
echo $xml->children("http://schemas.xmlsoap.org/soap/envelope/")->Body->children("http://test-uri")->children()->param1->asXML(),"\n";
unset($xml);
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug30106.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction("getContinentList");
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo $request;
ob_start();
$this->server->handle($request);
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug30175.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ soap.wsdl_cache_enabled=0

class LocalSoapClient extends SoapClient {

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
return <<<EOF
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug30928.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction('test');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug31695.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction("Test");
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
echo "$location\n";
ob_start();
$this->server->handle($request);
Expand Down
2 changes: 1 addition & 1 deletion ext/soap/tests/bugs/bug32776.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class LocalSoapClient extends SoapClient {
$this->server->addFunction('test');
}

function __doRequest($request, $location, $action, $version, $one_way = 0) {
function __doRequest($request, $location, $action, $version, $one_way = 0): ?string {
ob_start();
$this->server->handle($request);
$response = ob_get_contents();
Expand Down
Loading