Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 08-05-2010 20:24:12

Intiilapa
Membre
Date d'inscription: 03-02-2009
Messages: 95

[Zend_Soap_Server] Comment faire marcher le classmap ?

Bonjour,
je me demandais comment fonctionne le classmap de Zend_Soap_Server.

coté serveur :

Code:

<?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 :

Code:

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

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages