xref: /PHP-8.2/ext/soap/tests/bug69280.phpt (revision 47670616)
1--TEST--
2Bug #69280 (SoapClient classmap doesn't support fully qualified class name)
3--EXTENSIONS--
4soap
5--INI--
6soap.wsdl_cache_enabled=0
7--CREDITS--
8champetier dot etienne at gmail dot com
9--FILE--
10<?php
11abstract class AbstractClass {
12	public $prop;
13}
14
15class RealClass1 extends AbstractClass {
16	public $prop1;
17}
18
19class TestWS extends \SoapClient {
20	public function TestMethod($parameters) {
21		return $this->__soapCall('TestMethod', [$parameters], [
22				'uri' => 'http://tempuri.org/',
23				'soapaction' => ''
24			]
25		);
26	}
27
28	public function __doRequest(string $request, string $location, string $action, int $version, bool $oneWay = false): ?string {
29		die($request);
30	}
31}
32
33$a = new TestWS(__DIR__ . '/bug69280.wsdl', ['classmap' => [
34	'AbstractClass' => '\AbstractClass',
35	'RealClass1' => '\RealClass1',
36]]);
37$r1 = new \RealClass1();
38$r1->prop = "prop";
39$r1->prop1 = "prop1";
40$a->TestMethod($r1);
41?>
42--EXPECT--
43<?xml version="1.0" encoding="UTF-8"?>
44<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://tempuri.org/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><SOAP-ENV:Body><parameters xsi:type="ns1:RealClass1"><ns1:prop>prop</ns1:prop><ns1:prop1>prop1</ns1:prop1></parameters></SOAP-ENV:Body></SOAP-ENV:Envelope>
45