Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
je me demandais comment fonctionne le classmap de Zend_Soap_Server.
coté serveur :
<?php
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
if (isset($_GET['wsdl'])) {
$server = new Zend_Soap_AutoDiscover();
} else {
$server = new Zend_Soap_Server('http://localhost/soapserver.php?wsdl');
$server->setClassmap(array('barStruct' => 'MyClass_ComplexType_Bar'));
}
$server->setClass('MyClass_Soap_Server');
$server->handle();
class MyClass_Soap_Server
{
/**
* @return MyClass_ComplexType_Bar
*/
public function hello()
{
$bar = new MyClass_ComplexType_Bar();
$bar->foo = 'abcde';
return $bar;
}
/**
* @param MyClass_ComplexType_Bar $struct
* @return array
*/
public function testClassmap($struct)
{
return array(get_class($struct), $struct->foo);
}
}
class MyClass_ComplexType_Bar
{
/**
* @var string
*/
public $foo;
}côté client :
ini_set('soap.wsdl_cache_enabled', 0);
require_once 'Zend/Loader/Autoloader.php';
Zend_Loader_Autoloader::getInstance();
$wsdl = 'http://localhost/soapserver.php?wsdl';
$client = new Zend_Soap_Client($wsdl);
$client->setClassmap(array('myStruct' => 'Class_Struct'));
$result = $client->hello();
echo 'type: ' . get_class($result) . PHP_EOL;
echo 'content: ' . $result->foo . PHP_EOL;
$result->foo = 'newValue';
print_r($client->testClassmap($result));
class Class_Struct
{
public $foo;
}merci.
Hors ligne