Nube de tags

Con la colaboración de ...

Preferimos Linux

Síguenos en Facebook

Diario informal de K-nábora

jun 13
2009

Creando WebService en PHP5 con una Clase

Enviado por K-nábora Bufete Tecnológico en programación

En la version 5 de PHP se incorporan las clases necesarias para la creacion de webservices y su invocacion desde clientes remotos, a continuacion se ilustra como crear un webservice en PHP que ejecute un metodo dentro de una clase definida por el usuario en el servidor.

Implementar la Clase a Utilizar :

  • Ir al directorio web donde se quiere crear el servicio
  • Utilizando su editor favorito crear un archivo donde se implemente la clase y sus metodos :
    (utilizaremos una clase Calculadora con el metodo sumar que recibe dos numero y retorna su suma)
  • Crear el archivo Calculadora.php
 
<?php
// Clase que implementa los servicios
class Calculadora
{
// Metodo a utilizar como servicio
public function sumar($x, $y)
{
return $x + $y;
}
}
?>
 

Implementar el Servicio Web :

  • Utilizando su editor favorito crear un archivo donde se cree el servidor
  • Crear el archivo servicio.php
  • Incluir la clase Calculadora a utilizar dentro del webservice
  • No se utilizara WSDL ya que toca generarlo a mano para el servicio
  • Al no utilizar WSDL se debe suministrar el namespace, en este caso uri:webservices
  • Al momento de asignar la clase al webservice se debe suministrar el nombre.
 
<?php
// Incluir la Clase
require_once('Calculadora.php');
 
// Crear servidor de Soap
$server = new SoapServer(
null, // No utilizar WSDL
array('uri' => 'urn:webservices') // Se debe especificar el URI
);
 
// Asignar la Clase
$server->setClass('Calculadora');
 
// Atender los llamados al webservice
$server->handle();
?>
 
  • Abrir la pagina PHP en su navegador favorito, debe salir en blanco sin reportar errores
    http://<servidor>/<ruta>/servicio.php

Implementar el Cliente :

  • En este caso implementaremos un cliente en el lenguaje PHP para consumir el servicio.
  • Utilizando su editor favorito crear un archivo cliente.php
 
<?php
// Crear el cliente suministrado la ruta del servicio
// Utilizar el uri
$client = new SoapClient(null,
array(
'location' => 'http://localhost/~marlonj/servicio.php',
'uri' => 'urn:webservices',
));
 
// Llamar el metodo como si fuera del cliente
echo $client->sumar(3,4);
?>
 
  • Abrir la pagina PHP del cliente en su navegador favorito, debe salir en blanco sin reportar errores
    http://<servidor>/<ruta>/cliente.php

De esta forma podemos crear una clase que contenga los metodos a ser utilizados como webservices, de esta forma el servidor crea una instancia de la clase Calculadora cada vez que se invoca un servicio.

Tambien es posible asignar un objeto al servicio para esto podemos crear una instancia del objeto a utilizar como servicio web y enlazarlo con el webservice, asi :

 
<?php
// Incluir la Clase
require_once('Calculadora.php');
 
// Crear servidor de Soap
$server = new SoapServer(
null, // No utilizar WSDL
array('uri' => 'urn:webservices') // Se debe especificar el URI
);
 
// Crear el objeto a utilizar como webservice
$calculadora = new Calculadora();
 
// Asignar el Objeto
$server->setObject($calculadora);
 
// Atender los llamados al webservice
$server->handle();
?>

Comentarios (2)add
Gracias a ti
escrito por K-nábora Bufete Tecnológico , enero 13, 2010
por leernos
Reporte el abuso
Voto negativo
Voto positivo
Votos: +0
gracias
escrito por juanma , enero 10, 2010
buen artículo.
Reporte el abuso
Voto negativo
Voto positivo
Votos: +0
Escribir comentario

security image
Escribe los caracteres de la imagen


busy