Cela a dû vous arriver : mettre en place un WebService en PHP (client), et vous n’arrivez à gérer les erreurs lorsque le serveur distant ne répond pas.
La première solution consiste à modifier le niveau d’alerte, et à brider les « hurlements » des méthodes Soap en PHP.
La seconde solution consiste à gérer les connexion en amont afin de ne pas lancer le protocole Soap.
je m’explique : avant de lancer le code permettant la construction d’une connexion Soap avec votre serveur distant, vous aller tester si une connexion socket peut être ouverte sur votre serveur distant. Si cela est impossible, alors vous gérer l’erreur de manière fatale sans accéder à vos fonction Soap. Ainsi, pas d’erreur non géré.
Voici le code à mettre en place :
// on va tester le socket
$return = @stream_socket_client('tcp://monServeurDistant:80', $errno, $errstr, 5);
// si le socket du WS n'est pas connectable
if( $return === false ){
// On vé gérer l'erreur
}
else{
// on exécute le code Soap
}
Avec ceci, vous pourrez gérer les problèmes de connexion avant que la méthode Soap ne génère d’erreur !!
JSON : c’est un mode de code des données (on parle bien de données, comme dans une base de données) permettant un transfert architecturé logiquement et optimisé pour le réseau. Ce format est de plus en plus utilisé pour charger dynamiquement des données via des requêtes AJAX, ensuite c’est JavaScript qui va s’occuper d’intégrer ces données brut dans l’arbre DOM HTML.
Voici le code pour l’appel jQuery :
var monUrl = "test.php";
$.getJSON( monUrl, function(data) {
for(id in data){
alert( data[id] );
}
}
En PHP, coté serveur, il suffirai de créer un tableau simple de données, puis de passer ce tableau dans cette fonction :
C’est un tableau contenant « total », « current », « next », et « previous ».
Quoi de plus simple ?
Ensuite, il vous reste à créer une méthode de reconstruction DOM HTML.
Comment ? :
$('body').append( "<div>" + maData + "</div>" );
La méthode append permet d’ajouter dans l’arbre DOM HTML un code HTML.
Bien sûr, vous pourriez pointer autre chose que le body, par exemple un tableau HTML, ou une autre div, ou autre chose encore.
Juste une chose importante : lorsque vous ajouter des lignes dans un tableau HTML, pensez bien à ajouter les tbody pour chaque ligne, sinon IE ne voudra pas reconstruire correctement votre arbre DOM HTML.
Alors que PHP 5.2.x vient d’atteindre sa 9 ème release, PHP 5.3 se prépare tranquillement.
Cette version sera une pré-release du fameux PHP 6 tant attendu et qui sera encore attendu pendant un temps certain.
Effectivement, beaucoup de travail pour l’équipe de développement qui a déjà déporté des nouveauté de la version 6 sur la version 5.3.
Dans les améliorations notoires :
intégration en natif de la bibliothèque mysqlnd permettant la prise en charge sans module des connexions au SGBD mysql (donc plus de module à charger) et bien sûr aucune modification des script actuel. Il est annoncé jusqu’à 20 % de gain de temps par rapport à la librairie actuelle.
la gestion des namespaces permettant de gérer des classes smiliaires.
la prise en charge des LABEL/GOTO (à utiliser avec précaution et à déprécier dans certain cas).
l’ajout des fonctions anonymes (du type $toto = new function(){ }).
moteur du Garbage Collection afin d’optimiser les scripts objets.