Ajout génération automatique du WSDL pour eviter les erreurs

This commit is contained in:
Michael RICOIS 2011-03-29 13:44:02 +00:00
parent 4de0962235
commit 1a401be3df
2 changed files with 30 additions and 27 deletions

View File

@ -51,41 +51,41 @@ class ServiceController extends Zend_Controller_Action
}
require_once $pathClassService.'Entreprise.php';
$fichierWsdl = 'Entreprise-'.$version.'.wsdl';
// Fourniture du wsdl
if (isset($_GET['wsdl'])) {
// Génération/Founiture du wsdl
if ( isset($_GET['wsdl']) || isset($_GET['wsdl-generate']) || isset($_GET['wsdl-auto']) ) {
if (file_exists($fichierWsdl)) {
if (!headers_sent()) {
header('Content-Type: text/xml');
}
echo file_get_contents($fichierWsdl);
} else {
echo "Erreur WSDL inexistant ";
}
}
// Génération du wsdl
elseif ( isset($_GET['wsdl-generate']) || isset($_GET['wsdl-auto']) ) {
// Définition du webservice
$wsdl = new Zend_Soap_AutoDiscover();
$wsdl->setComplexTypeStrategy('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence');
$wsdl->setOperationBodyStyle( array('use' => 'literal') );
$wsdl->setBindingStyle( array('style' => 'document') );
$wsdl->setClass('Entreprise');
// Enregistrement du WSDL dans un fichier
if ( isset($_GET['wsdl-generate']) ) {
if (!file_exists($fichierWsdl)) {
// Définition du webservice
$wsdl = new Zend_Soap_AutoDiscover();
$wsdl->setComplexTypeStrategy('Zend_Soap_Wsdl_Strategy_ArrayOfTypeSequence');
$wsdl->setOperationBodyStyle( array('use' => 'literal') );
$wsdl->setBindingStyle( array('style' => 'document') );
$wsdl->setClass('Entreprise');
// Enregistrement du WSDL dans un fichier
if ( isset($_GET['wsdl-generate']) ) {
if (file_exists($fichierWsdl)) {
unlink($fichierWsdl);
}
$wsdl->dump($fichierWsdl);
echo "Le fichier $fichierWsdl a été généré";
} else {
echo "ERREUR : Le fichier $fichierWsdl est déjà présent !";
} elseif (isset($_GET['wsdl']) && !file_exists($fichierWsdl)) {
$wsdl->dump($fichierWsdl);
if (!headers_sent()) {
header('Content-Type: text/xml');
}
echo file_get_contents($fichierWsdl);
}
}
// Envoi sur la sortie standard le wsdl
elseif ( isset($_GET['wsdl-auto']) ){
$wsdl->handle();
}
// Envoi sur la sortie standard le wsdl
elseif ( isset($_GET['wsdl-auto']) ){
$wsdl->handle();
}
}
// Fourniture du service
} else {

View File

@ -1,6 +1,5 @@
README
======
Le webservice est basé sur le ZendFramework pour générer les WSDLs.
Fichier de configuration
@ -22,6 +21,10 @@ Obtenir le WSDL
- Générer le wsdl : http://hostname/service?wsdl-generate
- Utiliser le WSDL généré : http://hostname/service?wsdl
N.B : Le fichier WSDL est généré automatiquement en appelant
http://hostname/service?wsdl afin de ne pas provoquer d'erreur
après une mise en production
Pour définir le mode (vhost d'apache)
SetEnv APPLICATION_ENV "development"
SetEnv APPLICATION_ENV "production"