Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
J'utilise un kit d'intégration fournit par un éditeur de logiciel pour communiquer par web services qui est développé en PHP 5, environnement standard (pas de framework).
L'application dans laquelle on me demande d'intégrer ce kit est développée avec Zend. J'ai voulu modifier le kit afin d'utiliser les composant Zend, mais le composant Zend_Soap_Client est refusé par l'éditeur.
Donc ma question : Est-il possible, dans une application Zend, d'intégrer une partie de développement standard ? un formulaire html appelant un script PHP, sans prise en compte de l'environnement Zend ?
D'avance merci.
Cordialement.
Vincent
Dernière modification par vince56 (15-02-2011 15:12:04)
Hors ligne
Aucune idée?
En fait, j'utilise une classe fournie par un éditeur, développé en php classique, à savoir l'appel suivant :
$client = new SoapClient( $this->WSDL_SOAP, $this->header_soap);
Pour l'instant, j'ai modifié cette classe en modifiant cet appel par un appel Zend :
$client = new Zend_Soap_Client( $this->WSDL_SOAP, $this->header_soap);
L'idéal serait de ne pas modifier cette classe, car elle ne m'appartient pas.
Comment puis-je appeler, utiliser cette classe depuis un environnement Zend ?
Merci.
Hors ligne
tout dépends de ce que tu cherche à faire
si c'est appeller un webservice
tu suit la doc de Zend et tu te connecte au webservice à toi de faire ce que tu veux du résultat
si ce que tu cherche à intégrer est un dev complet avec traitement intégré c'est tout autre chose
un service SOAP peut être appelé par n'importe quel client
donc rien de doit t'empêcher de faire ça en ZF
si le fournisseur de service à inclus un truc qui interdit un eautre techo que la sienne
alors ce n'est pas conforme à la norme
A+JYT
Hors ligne
Bonjour,
En fait, je dispose d'un kit d'intégration fournit par un éditeur, dans lequel se trouve une classe (qui fait l'appel du web service), les wsdl, les fichiers de configuration nécessaires.
Ce que je recherche à faire, c'est simplement alimenté mes variables via un formulaire, puis appeler une méthode de la classe fournie par l'éditeur.
Seulement, lorsque j'appelle la méthode, j'obtiens une erreur dans la classe de l'éditeur au niveau de l'appel de la fonction SoapClient() :
Warning: SoapClient::SoapClient() [function.SoapClient-SoapClient]: I/O warning : failed to load external entity "../wsdl/production/WebPaymentAPI.wsdl" in C:\AppServ\www\zfProject\application\payline\lib\paylineSDK.php on line 565 ERROR : SOAP-ERROR: Parsing WSDL: Couldn't load from '../wsdl/production/WebPaymentAPI.wsdl'
Si je clique sur [function.SoapClient-SoapClient] , j'obtiens l'erreur suivante :
Fatal error: Uncaught exception 'Zend_Controller_Action_Exception' with message 'Action "functionSoapclientSoapclient" does not exist and was not trapped in __call()' in C:\Program Files\ZendFrameworkCli\library\Zend\Controller\Action.php:485 Stack trace: #0 C:\Program Files\ZendFrameworkCli\library\Zend\Controller\Action.php(515): Zend_Controller_Action->__call('functionSoapcli...', Array) #1 C:\Program Files\ZendFrameworkCli\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('functionSoapcli...') #2 C:\Program Files\ZendFrameworkCli\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #3 C:\AppServ\www\zfProject\index.php(187): Zend_Controller_Front->dispatch() #4 {main} thrown in C:\Program Files\ZendFrameworkCli\library\Zend\Controller\Action.php on line 485
Je ne suis pas un spécialiste de Zend, mais je ne comprends plus ce que je dois faire ...
Merci pour votre aide, car c'est assez urgent en fait.
Vince
Dernière modification par vince56 (15-02-2011 09:24:35)
Hors ligne
il semble que ta classe ne trouve pas le fichier wsdl
il te faut donc mettre ce fichier dans la hiérarchie de fichier de ton site
et donner à ton code le chemin pour y accéder
ce qu'il faut savoir avec ZF c'est que les chemin ./toto/titi.ext sont relatif au fichier
index.php qui est le seul script que ZF exécute
ce n'est donc pas par rapport au fichier contenant ton code pour l'appel SOAP.
donc
racine du site/ + index.php + application/ + library/ + prolib/ +SoapClient.php
dans une hérarchie de ce type le ../wsdl/production/WebPaymentAPI.wsdl dans SoapClient.php
ne fait par référence à Racine du site/library/prolib/../wsdl/production/WebPaymentAPI.wsdl (par rapport à SoapClient.php)
racine du site/ + index.php + application/ + library/ + prolib/ +SoapClient.php + wsdl/ + production/ + WebPaymentAPI.wsdl
mais à
Racine du site/../wsdl/production/WebPaymentAPI.wsdl (par rapport à index.php)
racine du site/ + index.php + application/ + library/ + prolib/ +SoapClient.php wsdl/ + production/ + WebPaymentAPI.wsdl
A+JYT
Dernière modification par sekaijin (15-02-2011 13:05:58)
Hors ligne
Bonjour,
Ok merci pour ton coup de main,c'est le chemin d'accès par rapport à l'index.php qui fait toute la différence.
Maintenant, j'obtiens : ERROR : SSL support is not available in this build
donc j'avance ... mais j'espère sue je mettrais moins de temps à régler ce problème...
Merci.
Hors ligne
pour mon dernier message d'erreur, si ça intéresse , voici la solution :
1. Uncomment
extension=php_soap.dll
in your php.ini
2. Uncomment
extension=php_openssl.dll
in your php.ini
3. Copy
ssleay32.dll
and
libeay32.dll
to your windows system32 directory
4. Reboot apache, et voila!
Merci sekaijin pour ton aide
Vince
Hors ligne