Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 : )
@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 :)
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
meu_servico.php
class MeuServico {
/**
* @param string $input
cliente.php
Estou usando a biblioteca Zend Framework 1.12