Main Contents

[PHP] Retourner un tableau avec NuSoap

novembre 5, 2010

Voilà une question qu’on me pose souvent, comment renvoyer un tableau à travers un WebService avec NuSoap.
Donc voilà une petite explication.

Comme pour tous les WS avec NuSoap, il faut définir l’objet renvoyer.
Par exemple ici, on va définir un contact comprenant un nom, prenom, site web et un téléphone. Puis on va définir un tableau de contact, le ContactArray

$serveur->wsdl->addComplexType(
   'Contact',
   'complexType',
   'struct',
   'all','',
   array(
      'nom' => array('name' => 'nom', 'type' => 'xsd:string'),
      'prenom' => array('name' => 'prenom', 'type' => 'xsd:string'),
      'web' => array('name' => 'web', 'type' => 'xsd:string'),
      'tel' => array('name' => 'tel', 'type' => 'xsd:int'),
   )
);
 
$serveur->wsdl->addComplexType(
   'ContactArray',
   'complexType',
   'array','',
   'SOAP-ENC:Array',array(),
   array(
      array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'tns:Contact[]')
   ),
   'tns:Contact'
);

Puis comme d habitude on définit la méthode du WS.

$serveur->register('getContacts',
                           array(), //pas de paramètre en entré
                           array('Contact' => 'tns:ContactArray')
               );

Donc getContacts retournera un ContactArray. Il ne reste plus qu’à définir getContacts.

function getContacts() {
$result = array();
	$req="SELECT * FROM `Contacts`";
	$res=mysql_query($req);
	while($obj=mysql_fetch_object($res)) {
		$result[] = array( 'nom' => $obj->nom, 'prenom' => $obj->prenom,'email'=>$obj->email, 'tel'=>$obj->tel);
	}
return $result;
}

Et voilà!

Catégorie(s): Développement, Tutorial, Web | Comments (3)

3 Comments

  1. Johann F. (1 comments) novembre 5, 2010 @ 15 h 11 min

    Merci beaucoup ! Clair et concis !

    Reste plus qu’à réussir à parser le tout.

  2. Créer un Webservice en PHP avec NuSoap | MacFan novembre 5, 2010 @ 15 h 20 min

    […] Billets similaires [PHP] Retourner un tableau avec NuSoap […]

  3. PHP web services : comment créer un service web php avec soap | Benjion's Blog : vous avez dit développement web ? avril 22, 2013 @ 13 h 45 min

    […] Pour cet article, j’ai complété cette source : http://www.jkraft.fr […]

Leave a comment