Salut à tous...
voila, j'ai une problématique d'optimisation du temps de réponse de mon appli.
En gros voila ce qui se passe
Je me connecte au WSDL (que j'ai préalablement copié en local)
$client = new SoapClient(URL_WSDL_GENERAL, array('trace' => true, 'style' => SOAP_DOCUMENT, 'use' => SOAP_LITERAL, "features" => SOAP_SINGLE_ELEMENT_ARRAYS));
Je stocke une instance de cet objet en session pour y accéder directement depuis certaines fonctions
$_SESSION['ws_client'] = $client;
bon ok... jusque là c'est bien...
si je fais
var_dump($client->__getFunctions());
ou
1 2
|
var_dump($_SESSION['ws_client']->__getFunctions()); |
ça fonctionne ...
mais, c'est là que ça se corse...
si je charge une autre page avec simplement l'appel de l'objet en session sans passer par l'étape de connexion
1 2
|
var_dump($_SESSION['ws_client']->__getFunctions()); |
ça ne marche plus...
En fait php5 ne gère pas le passage d'objets SOAP via SESSION...
comme on dit "c'est pas cool"...
la question que je me pose est la suivante...
au moment de la connexion, une classe doit être générée par php afin de générer l'objet $client et ses méthodes associées...
Ne serait il pas possible de récupérer le code source de cette classe pour l'intégrer dans un fichier php à charger via include
genre
client.inc.php
1 2 3 4 5 6 7
| class client{
function SOAPfunction($edible, $color="green") {
//blablabla
}
.
.
. |
ensuite au lieu de demander à SOAP de regénérer cette classe à chaque fois (ce qui d'après mes tests est assez long) on la rechargerai directement ...
enfin bref l'idée est d'optimiser ces temps de chargement... car selon la vitesse du réseau entre la machine client et la machine serveur, ça peut prendre un temps fou, rien que pour la connexion SOAP...
si vous avez des pistes je suis fortement preneur
++
Partager