Médiaforma

All posts tagged soap

Nous allons créer un service Web ultra simple qui retourne l’heure UTC.

Dans un premier temps, nous définissons la classe horloge qui contient une seule méthode publique nommée heure(). Cette méthode retourne l’heure au format UTC, en utilisant la fonction date() :

<?php
  class horloge{
    public function heure(){
      return date("e H:i:s");
    }
  }

Le service Web va reposer sur la classe horloge. Pour le mettre en place, quelques instructions PHP suffisent :

try
{
  $server = new SoapServer(null, array('uri' => 'http://localhost/POO/horloge.class.php'));
  $server->setClass("horloge");
  $server->handle();
}
catch(Exception $e)
{
  echo "Exception: " . $e;
}
?>

Dans un premier temps, l’objet SoapServer $server est créé, en précisant l’adresse URI du service :

$server = new SoapServer(null, array(‘uri’ => ‘http://localhost/POO/horloge.class.php’));

La syntaxe de l’instanciation d’un l’objet SoapServer se trouve ici : http://www.php.net/manual/en/soapserver.soapserver.php.

Cinq syntaxes sont possibles. Les quatre premières utilisent un fichier WSDL (Web Service Description Language). La cinquième syntaxe n’utilise pas de fichier WSDL. Elle pointe vers l’URI de la classe utilisée pour définir le service Web. Nous utiliserons cette syntaxe. Ici, la classe est stockée dans le fichier horloge.class.php, qui se trouve dans le dossier POO du serveur Web local.

L’instruction suivante indique au serveur le nom de la classe qui gère les requêtes SOAP :

$server->setClass("horloge");

Enfin, la dernière instruction s’occupe de toutes les tâches nécessaires pour gérer les requêtes SOAP :

$server->handle();

L’instanciation de l’objet SoapServer se fait à l’intérieur d’une instruction try. Si une erreur se produit, elle est capturée par l’instruction catch et affichée sur l’écran avec une instruction echo :

  catch(Exception $e)
  {
    echo "Exception: " . $e;
  }

Le service est entièrement défini. Sauvegardez-le sous le nom horloge.class.php et sauvegardez-le dans le dossier c:\wamp\www\POO\.


Le langage PHP permet de créer des services Web.

Mais au fait, savez-vous ce qu’est un service Web ? Il s’agit d’un programme libre d’accès, qui s’exécute sur un serveur Web, et qui permet d’échanger des données avec le client qui l’interroge.

Remarque

Pour être en mesure de créer et d’utiliser des services Web sur votre serveur local WAMPServer, vous devez activer l’extension SOAP. Cliquez sur l’icône de WAMPServer dans la zone de notifications, pointez PHP, Extensions PHP et assurez-vous qu’une coche est affichée devant php_soap. Dans le cas contraire :

  1. Fermez WAMPServer.

  2. Editez le fichier \wamp\bin\apache\Apache2.4.4\bin\php.ini.

  3. Recherchez du terme “soap” et supprimez le “;” devant la ligne ;extension=php_soap.dll.

  4. Redémarrez WAMPServer.