le20k a écrit :
Bonjour à tous !
Dans un but premier, je cherchais à monter en session une instance de soapClient afin de garder une connexion "permanente" sans avoir à recréer de connexion à chaque requete à mon server soap.
J'ai lu quelques articles référencés sur google disant que les objets de classe Soap ne pouvaient etre mis en session .... joie ...
D'où cette question : comment faire pour réutiliser une connexion soap existante sans avoir à en recréer une ?
Code :
- // création d'un objet soap
- $monSoapClient = new SoapClient("https://123.456.789.0:1234/Tralala?wsdl",
- array(
- "loginName" => "bob",
- "password" => "motdepasse",
- "trace" => 1,
- "exceptions" => 1,
- "_soap_version" => 1.2
- ));
- // ouverture d'une session
- $instance = $monSoapClient->__soapCall(
- "OpenConnectionAndBeginSession",
- array(
- "loginName" => "bob",
- "password" => "motdepasse",
- "appID" => "whatever",
- "appName" => "myAppName",
- "qbFileName" => "fichier_quickbooks",
- "reqFileMod" => "MultiUser"
- ));
- // exemple de passage de requete
- $resultat_xml = ($monSoapClient->__soapCall("processRequest",array('instance'=>$instance,'request'=>$ma_requete_xml)));
|
L'idée serait de faire quelque chose du genre, et ce, quel que soit l'endroit où s'est exécuté :
Code :
- if(!isset($monSoapClient)) {
- // code exécuté uniquement 1 seule fois de toute la session de travail dans l'application web
- $monSoapClient = creer_un_objet_soap();
- }
- if(!isset($mon_instance)) {
- // code exécuté uniquement 1 seule fois de toute la session de travail dans l'application web
- $mon_instance = creer_une_instance();
- }
- $resultat_xml = executer_une_requete( $ma_requete , $monSoapClient, $mon_instance );
|
Pas très clair tout ça, mais c'est le mieux que je puisse faire :S
Toute aide est vraiment la bienvenue !
|