You are on page 1of 3

Crear un Web Service con PHP y MySQL (Primeros pasos: Mi primer Web Service)

Ultima revisin 22/11/2012

Antes de nada, si no habis ledo el articulo de introduccin, os invito a que lo hagis ya que dicho artculo pone de manifiesto los conceptos previos necesarios para entender como crear o implantar un servicio web. Podis acceder a l pinchando en el siguiente enlace: Crear un Web Service con PHP y MySQL (Introduccin). La version 5 de PHP incorpora clases para la creacion de webservices y su invocacion desde clientes remotos mediante el uso de la extensin SOAP y que admite los subconjuntos de especificaciones SOAP 1.1, SOAP 1.2 y WSDL 1.1.

Instalacin de la extensin SOAP


Lo primero que tenemos que hacer es configurar el php.ini de nuestro servidor: Dentro del php.ini debemos descomentar la lnea que activa la extensin de SOAP. Ser algo parecido a extension=php_soap.dll y nicamente hay que eliminar el punto y coma de delante. Opciones de configuracin de SOAP NOMBRE POR CAMBIABLE DEFECTO DESCRIPCIN

soap.wsdl_cache_enabled 1 soap.wsdl_cache_dir soap.wsdl_cache_ttl /tmp 86400

PHP_INI_ALL Activa o desactiva la funcin de almacenamiento en cach de

PHP_INI_ALL Define el nombre del directorio donde la extensin SOAP gua

PHP_INI_ALL Define el nmero de segundos (tiempo de vida) por los que usados en lugar de los originales.

soap.wsdl_cache

PHP_INI_ALL Si la opcin soap.wsdl_cache_enabled est activada, este almacenamiento en cach. Puede ser tipos:WSDL_CACHE_NONE (0), WSDL_CACHE_DISK (1), o WSDL_CACHE_BOTH (3). Tambin puede definirse constructor de SoapClient o de SoapServer.

soap.wsdl_cache_limit

PHP_INI_ALL Nmero mximo de ficheros WSDL almacenados en cach ms ficheros a una cach de memoria llena, se eliminarn lo misma.

Implementacin o creacin de la Clase con los mtodos

Realmente la complicacin de un servicio web no reside en la creacin del mismo que como veremos es absolutamente simple. La dificultad est en las funcionalidades del propio servicio. Lo primero que necesitamos para crear Web Service (o servicio web) es crear un listado de funciones o, en este caso, una clase PHP que contendr todas las funcionalidades necesarias. Usaremos una clase sencilla ya que es nuestro primer ejemplo. Aqu usamos la clase de islavisual para MySQL. podis saber todo sobre ella pinchando en Clase de PHP para MySQL de Islavisual.
class UserService { private $_EMAIL; private $_PASSWORD; include "clases/MySQL/mySql.class.php" ; public function login($email, $password) { $this->_EMAIL = mysql_real_escape_string($email); servir addslashes // Tambin puede

$this->_PASSWORD = mysql_real_escape_string($password); // Tambin puede servir addslashes $user_id = $this->chechUser(); if($user_id != "" && $user_id != NULL){ $_SESSION['user_id'] = $user_id; return $user_id; } return false; } protected function checkUser() { $mysql = new mySQL; return $mysql->getValue("SELECT id FROM users WHERE email = '".$this>_EMAIL."';"); } }

Implementacin o creacin del Servicio Web


Aqu slo hay que crear un archivo que llamaremos servicio.php dnde estar includa la clase que acabamos de crear. Como no queremos usar WSDL lo generaremos a mano y, por ello, debemos suministrar el namespace que ser urn:webservices.
$server = new SoapServer(null, array('uri' => 'urn:webservices')); // Asignamos la Clase

$server->setClass('UserService'); // Atendemos las peticiones $server->handle();

Creamos un cliente que use el servicio


Esta parte es pura rutina porque es muy sencillo y, bsicamente, siempre es lo mismo una y otra vez.
// Llamar al mtodo como si fuera del cliente $cliente = new SoapClient(null, array('location' => 'http://www.islavisual.com/servicio.php','uri' => 'urn:webservices', )); echo $cliente->login('isla@hotmail.com', 'Visual12');

Y con esto ya tenemos creado nuestro primer WS. Si necesitas ms informacin Contacta con nosotros y te informaremos ms detalladamente sobre este o cualquier otro tema.

You might also like