Agosto 1st 2007 03:04 am
Depurar webservices com Zend Studio + PHP Soap
O Zend Studio disponibiliza uma ótima forma para depurar códigos através do browser, o problema é quando utilizamos webservices com as classes SoapClient e SoapServer.
Quando iniciamos uma depuração através do browser utilizando o Zend Studio Tool Bar são postados alguns cookies para o webserver que devidamente configurado inicia a depuração do script php, o problema é que quando chamamos um método remoto com o SoapClient os cookies não são replicados automáticamente para o webservice.
Uma forma simples para resolver este problema é setar os cookies manualmente na instância da classe SoapClient da seguinte forma.
-
ini_set("soap.wsdl_cache_enabled", "0");
-
-
$oSoapClient = new SoapClient("service.wsdl");
-
-
$aOptions = array (
-
"start_debug"=> "1",
-
"debug_port"=> "10000",
-
"debug_host"=> "localhost",
-
"debug_stop"=> "1");
-
-
foreach($aOptions as $key => $val) {
-
//seta os cookies que disparam o início da depuração
-
$oSoapClient->__setCookie($key,$val);
-
}
-
-
var_dump($oSoapClient->getUser());
sendo assim ao chamar o serviço $oSoapClient->getUser() a depuração de seu serviço será iniciada no Zend Studio.
Para configurar o debug
Baixe a dll do debugger na seguinte url http://downloads.zend.com/pdt/server-debugger/
descompacte e adicione no seu php.ini
zend_extension_ts="/caminho/para/dll/ZendDebugger.dll"
Nota: o Zend Debugger apresenta incompatibilidade com algumas extensões de profile como xDebug, APC e outras, caso pretenda usa-lo desabilite estas extensões.
Fiz um exemplo bem prático, para baixar clique aki
Caso queiram saber mais sobre as formas de utilização das classes SoapServer e SoapClient a um belo tutorial no Zend Developer Zone http://devzone.zend.com/node/view/id/689.
Espero ter ajudado, em caso de dúvidas comentem ai que conversamos.
No Comments yet »













