cadmiel 0 Denunciar post Postado Fevereiro 13, 2015 Boa tarde galera, Como poderia criar uma wsdl que tenha um serviço[matricular] que aceite dois parametros e me retorne um array?, abaixo criei dos cenários do que pode ter dentro desses dois parametro: -------------------------------------------------------- 1° situação [inscrever aluno em 'N' cursos] -------------------------------------------------------- $lstArray = array(); /* 1 - Dado do aluno */ $lstOBJ = new stdClass(); $lstOBJ->nome = 'felipe'; $lstOBJ->sobrenome = 'silva'; $lstArray ['lstUses'] = $lstOBJ; /* 1 - Curso */ $lstOBJ = new stdClass(); $lstOBJ->id = 123; $lstOBJ->role = 'student'; $lstArray ['lstCrs'][] = $lstOBJ; /* 2 - Curso */ $lstOBJ = new stdClass(); $lstOBJ->id = 125; $lstOBJ->role = 'student'; $lstArray ['lstCrs'][] = $lstOBJ; -------------------------------------------------------- 2° situação [inscrever 'N' Alunos em 1 curso] -------------------------------------------------------- $lstArray = array(); /* 1 - Dado do aluno */ $lstOBJ = new stdClass(); $lstOBJ->nome = 'felipe'; $lstOBJ->sobrenome = 'silva'; $lstArray ['lstUses'][] = $lstOBJ; /* 1 - Dado do aluno */ $lstOBJ = new stdClass(); $lstOBJ->nome = 'felipe'; $lstOBJ->sobrenome = 'silva'; $lstArray ['lstUses'][] = $lstOBJ; /* 1 - Curso */ $lstOBJ = new stdClass(); $lstOBJ->id = 123; $lstOBJ->role = 'student'; $lstArray ['lstCrs'] = $lstOBJ; ------------------------------------------------------- Instanciando serviço ------------------------------------------------------- $itcSoapCliente = new SoapClient('arquivo.php?wsdl'); $callBack = $itcSoapCliente->matricular($lstArray); Calback sera um array com status do que acontenceu e tals. Desde já agradeço : ) Compartilhar este post Link para o post Compartilhar em outros sites
jdsdias 4 Denunciar post Postado Fevereiro 13, 2015 O zend framework tem uma biblioteca muito legal que já gera esse wsdl, da uma pesquisada: http://framework.zend.com/manual/1.12/en/zend.soap.server.html Segue um exemplo usando a biblioteca server.php if(isset($_GET['wsdl'])) { require_once('Zend/Soap/AutoDiscover.php'); $autodiscover = new Zend_Soap_AutoDiscover(); $autodiscover->setClass('MeuServico'); $autodiscover->handle(); } else { require_once('Zend/Soap/Server.php'); $soap = new Zend_Soap_Server("http://localhost/ws/server.php?wsdl"); $soap->setClass('MeuServico'); $soap->handle(); } meu_servico.php class MeuServico { /** * @param string $input * @return string */ public function metodo1($input) { return "Recebido via SOAP: $input"; } } cliente.php require_once('Zend/Soap/Client.php'); $cliente = new Zend_Soap_Client("http://localhost/ws/server.php?wsdl"); echo $cliente->metodo1("Metodo 1 do WebService"); Estou usando a biblioteca Zend Framework 1.12 Compartilhar este post Link para o post Compartilhar em outros sites
cadmiel 0 Denunciar post Postado Fevereiro 16, 2015 @jdsdias usando a class zend_soap deu certo, agora tenho uma outra dúvida, estou testando o serviço novo q criei pelo soapui, segue trecho do codigo <item> <key xsi:type="xsd:string">lstCrs</key> <value xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">c1</key> <value xsi:type="xsd:string">matematica</value> </item> </value> </item> <item> <key xsi:type="xsd:string">lstUses</key> <value xsi:type="ns2:Map"> <item> <key xsi:type="xsd:string">u1</key> <value xsi:type="xsd:string">Jorge</value> </item> <item> <key xsi:type="xsd:string">u2</key> <value xsi:type="xsd:string">Thiago</value> </item> </value> </item> Como faço para recuperar no php essas informações ? Atualmente resolve o problema codificando o request :) Compartilhar este post Link para o post Compartilhar em outros sites