Barre Formation IN2P3
École franco-maghrébine 2003 WebServices 13-17 octobre 2003

Travaux pratiques

Précédent

tp2c

Suivant

Enoncé :

Créer un client non-java (PHP, C#, VB.NET, …) du WS précédent.

Aide :

aide

Correction :

Contenu du fichier tp2c/tp2c.php.

<?php
// Utilisation du client SOAP de PEAR
include("SOAP/Client.php");

$client = new SOAP_Client('http://localhost:8080/axis/services/InfoCours2');

// definitions des types
require('types.php');

$salle = new Salle("Bleuet", 0, "");
$horaire = new Horaire("lundi", 23, "am");

$params = array('salle'=>$salle->__to_soap(), 'horaire'=>$horaire->__to_soap());
$options = array('namespace' => 'urn:InfoCours2', 'use'=>'encoded', 'style'=>'rpc', 'trace'=>1);

$client->_auto_translation = true;
$client->__set_type_translation('{urn:InfoCours2}Salle','Salle');
$client->__set_type_translation('{urn:InfoCours2}Horaire','Horaire');
$client->__set_type_translation('{urn:InfoCours2}Cours','Cours');

$ret = $client->call('infoCours', $params, $options);

if ( PEAR::isError($ret) ) {
    print("Erreur: " . $ret->getMessage() . "<br>\n");
} else {
    echo "Resultat : " . $ret->intituleCours . " donne par " . $ret->responsableCours;
}

// messages XML échangés
echo "<br><xmp>";
echo $client->wire;
echo "</xmp>";
?>

Contenu du fichier tp2c/types.php.

<?php

class Salle {
    var $nomSalle = NULL;
    var $numeroSalle = NULL;
    var $nomBatiment = NULL;
    function Salle($nom=NULL, $numero=NULL, $batiment=NULL) {
        $this->nomSalle = $nom;
        $this->numeroSalle = $numero;
        $this->nomBatiment = $batiment;
    }
    
    function &__to_soap()
    {
        $inner[] =& new SOAP_Value('nomSalle','string',$this->nomSalle);
        $inner[] =& new SOAP_Value('numeroSalle','int',$this->numeroSalle);
        $inner[] =& new SOAP_Value('nomBatiment','string',$this->nomBatiment);
        return new SOAP_Value('salle','{urn:InfoCours2}Salle',$inner);
        
    }
}

class Horaire {
    var $nomJour = NULL;
    var $numeroSemaine = NULL;
    var $ampm = NULL;
    function Horaire($jour=NULL, $semaine=NULL, $ampm=NULL) {
        $this->nomJour = $jour;
        $this->numeroSemaine = $semaine;
        $this->ampm = $ampm;
    }
    
    function &__to_soap()
    {
        $inner[] =& new SOAP_Value('nomJour','string',$this->nomJour);
        $inner[] =& new SOAP_Value('numeroSemaine','int',$this->numeroSemaine);
        $inner[] =& new SOAP_Value('ampm','string',$this->ampm);
        return new SOAP_Value('horaire','{urn:InfoCours2}Horaire',$inner);
        
    }
}

class Cours {
    var $intituleCours = NULL;
    var $responsableCours = NULL;
    function Cours($intitule=NULL, $resp=NULL) {
        $this->intituleCours = $intitule;
        $this->responsableCours = $resp;
    }
    
    function &__to_soap()
    {
        $inner[] =& new SOAP_Value('intituleCours','string',$this->intituleCours);
        $inner[] =& new SOAP_Value('responsableCours','string',$this->responsableCours);
        return new SOAP_Value('cours','{urn:InfoCours2}Cours',$inner);
        
    }
}
?>
École franco-maghrébine 2003 WebServices 13-17 octobre 2003