Pierre Porcheret




Voir la liste des articles



28 11 2014


A la SOAP, deuxieme recette


Suite au post précédent, voici une autre méthode pour les Web services.
L'avantage de celle ci, est que le WSDL (le squelette de l'information) est auto-généré et diffusé par le server lui même ce qui ne nécessite pas au client d'avoir le WSDL chez lui.
L'inconvénient est que du coup un client peu se connecter sans WSDL et du coup il faut sécuriser ces échanges.

L'intérêt de l'exemple ci dessous est qu'il montre deux manières d'utiliser le Web service.
Par les deux fonctions hello et done, on voit d'une part comment le serveur peut récupérer une information (done) ou l'envoyer (hello)

nano client.php


<?php

try
{
  $clientSOAP = new SoapClient( null,
    array (
      'uri' => 'http://<url_serveur>/server.php',
      'location' => '<url_serveur>/server.php',
      'trace' => 1,
      'exceptions' => 0
  ));

  $ret = $clientSOAP->__call('hello', array());
  echo $ret;

  echo '<br />';

  $ret = $clientSOAP->__call('donne', array('i'=>5));
  echo $ret;
}
catch(SoapFault $f)
{
  echo $f;
}

?>


nano server.php


<?php
try
{
  $server = new SoapServer(null, array('uri' => '<url_serveur>/server.php'));

  $server->setClass("Donne");
  $server->handle();
}
catch(Exception $e)
{
  echo "Exception: " . $e;
}
class Donne
{
  function donne($i)
  {
    return $i;
  }
  function hello()
  {
    return "hello world";
  }
}
?>


source : http://willdurand.fr/decouverte-des-webservices-en-php/


categorie :