Soy nueva en este foro, espero que sean caballeros y me respondan
Estoy creando un webservice y me funciona si lo hago por procedimiento pero si lo hago orientado a objetos no se como hacerle
Intente ponerlo dentro del mismo class y tambien poniendo la funcion que invoco en una clase separada, pero no lo logro, ya también intente con doble y un solo punto, entre la clase y la funcion, no se si valga el this
Código PHP:
$server->register("this..cpcolonia",
array("cp_entrada" => "xsd:string"),
array("cp_salidad" => "xsd:string"),
"urn:ejemplo",
"urn:ejemplo#cpcolonia",
"rpc",
"encoded",
"Informes del codigo postal");
Código PHP:
$result = $cliente->call("servicps..cpcolonia", $cp_entrada);
bool(false)
o en ocasiones esto:
array(4) { ["faultcode"]=> string(15) "SOAP-ENV:Client" ["faultactor"]=> string(0) "" ["faultstring"]=> string(84) "error in msg parsing: XML error parsing SOAP payload on line 1: Invalid document end" ["detail"]=> string(0) "" }
El codigo completo es:
Código PHP:
Ver original
class servicps { public function cpcolonia($info) { global $mybb,$db,$templates; $asentamiento_busqueda=$lugares[0]; $municipio_busqueda=$lugares[1]; }else{ $sql="SELECT * FROM cps WHERE CP LIKE '%".$infoultima[0]."%' LIMIT 10"; } $resultado = $db->query($sql); $tipobusquedacp=$infoultima[1]; while ($fila_res=$db->fetch_array($resultado)){ $salida.=$fila_res['asentamiento'].",".$fila_res['municipio'].","; $salida.=$fila_res['ciudad'].",".$fila_res['estado'].",".$fila_res['cp']."|"; } return $salida; } public function servicio(){ require_once "./lib/nusoap.php"; $server = new soap_server(); $server->configureWSDL("ejemplo", "urn:ejemplo"); $server->wsdl->addComplexType('cp_entrada', 'complexType', 'struct', 'all', '', $server->wsdl->addComplexType('cp_salidad', 'complexType', 'struct', 'all', '', $server->register("this..cpcolonia", "urn:ejemplo", "urn:ejemplo#cpcolonia", "rpc", "encoded", "Informes del codigo postal"); $server->service($HTTP_RAW_POST_DATA); } }
Consumo completo
Código PHP:
Ver original
$cliente = new nusoap_client("http://localhost/WIO/SIPROCESA/CPS/servi_cps3.php?wsdl"); $error = $cliente->getError(); if ($error) { echo "<h2>Constructor error</h2><pre>" . $error . "</pre>"; } $result = $cliente->call("servicps..cpcolonia", $cp_entrada);