class B extends A
{
    public $y;
}
function f($a)
{
    return $a;
}
class LocalSoapClient extends SoapClient
{
    function __construct($wsdl, $options)
    {
        parent::__construct($wsdl, $options);
        $this->server = new SoapServer($wsdl, $options);
        $this->server->addFunction("f");
    }
    function __doRequest($request, $location, $action, $version, $one_way = 0)
    {
        ob_start();
        $this->server->handle($request);
        $response = ob_get_contents();
        ob_end_clean();
        return $response;
    }
}
$client = new LocalSoapClient(dirname(__FILE__) . "/classmap_extension_crash.wsdl", array('classmap' => array('A' => 'A', 'B' => 'B')));
$b = new B();
$b->x = 1;
$b->y = 2;
print_r($client->f($b));
Beispiel #2
0
    public $y;
    function __construct($a)
    {
        parent::__construct($a);
        $this->y = $a + 1;
    }
}
function f()
{
    return new B(5);
}
class LocalSoapClient extends SoapClient
{
    function __construct($wsdl, $options)
    {
        parent::__construct($wsdl, $options);
        $this->server = new SoapServer($wsdl, $options);
        $this->server->addFunction("f");
    }
    function __doRequest($request, $location, $action, $version, $one_way = 0)
    {
        ob_start();
        $this->server->handle($request);
        $response = ob_get_contents();
        ob_end_clean();
        return $response;
    }
}
$client = new LocalSoapClient(dirname(__FILE__) . "/classmap003.wsdl", array('classmap' => array('A' => 'A', 'B' => 'B')));
print_r($client->f());