WSDL Automático com PHP SOAP

Enviada por André 
André
WSDL Automático com PHP SOAP
24 de March de 2014 às 05:30PM
Boa tarde Pessoal!

Alguém sabe me dizer se com o PHP SOAP, quando crio um Web Service novo, existe algum recurso para gerar a página de WSDL automaticamente? Digo, para não precisar escrever o XML do WSDL manualmente...

Obrigado pela atenção!

Abraços!

André
Douglas Noronha
Re: WSDL Automático com PHP SOAP
24 de March de 2014 às 06:45PM
Amigo
Use o Zend.

Servidor
<?php
/* incluir as classes necessoarias */
ini_set("soap.wsdl_cache_enabled", 0);

require_once("Zend/Soap/Server.php");
require_once("Zend/Soap/AutoDiscover.php");

if(isset($_GET['wsdl'])) {
/*
* Usar o Soap AutoDiscover para criacao do WSDL de forma dinamica
*/
$autodiscover = new Zend_Soap_AutoDiscover();
$autodiscover->setClass('Register');
$autodiscover->handle();
} else {
// Disponibilizar o webservice atraves do canal:
$soap = new Zend_Soap_Server("http://localhost/soap/soap.php?wsdl",array('cache_wsdl' => WSDL_CACHE_NONE));
$soap->setClass('Register');
$soap->handle();
}

class Calculadora {

/**
* Realiza Soma
* @param integer $a
* @param integer $b
* @return integer
*/
public function soma($a, $b) {
return $a + $b;
}

/**
* Realiza Subtracao
* @param integer $a
* @param integer $b
* @return integer
*/
public function subtrai($a, $b) {
return $a - $b;
}
}
?>

Cliente

<?php
/* incluir classes necessarias */
ini_set("soap.wsdl_cache_enabled", 0);

require_once("Zend/Soap/Client.php");

/* canal de chamada para webservice */
$soap = new Zend_Soap_Client("http://localhost/soap/soap.php?wsdl",array('cache_wsdl' => WSDL_CACHE_NONE));
echo $soap->soma(100,10);

?>
André
Re: WSDL Automático com PHP SOAP
25 de March de 2014 às 09:08PM
Legal Douglas Noronha, vou estudar o SOAP com Zend então.

Obrigado pela atenção.

Abraços!
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.