Trabajo con Cookies en PHP con la librería Spoon

  • Por
  • PHP
La librería de PHP 5 Spoon tiene una clase para trabajar con cookies de una manera más cómoda.
Vamos a relatar las funcionalidades relacionadas con las cookies que existen en la librería Spoon, que permiten crear y obtener datos almacenados en el navegador del cliente. Como ya sabemos, las cookies son pequeñas informaciones que se guardan en el navegador y que perduran a lo largo de distintas sesiones que el visitante pueda realizar en nuestra página. Para las personas que no conozcan todavía este concepto les recomendamos leer el artículo Qué son las cookies.

PHP tiene una completa serie de funciones para el trabajo con Cookies que resultan bastante sencillas de utilizar y que ya hemos relatado anteriormente en el artículo Cookies en PHP. Las cookies sólo aceptan cadenas de caracteres, por lo que en principio desde las funciones propias de PHP sólo podemos guardar strings, pero Spoon nos ofrece un juego de funciones que trabajan de manera bastante similar, pero que tienen la ventaja de poder enviar cualquier tipo de información a una cookie.

Cargar las librerías de Spoon para trabajo con cookies

El procedimiento para incluir las librerías de Spoon que deseamos utilizar ya está relatado en artículos anteriores del Manual de la librería Spoon. No obstante, este sería el código para incluir la librería Cookie.

//directorio de include para spoon
define('PATH_LIBRARY', 'C:/xampp/htdocs/');
set_include_path(get_include_path() . PATH_SEPARATOR . PATH_LIBRARY);

//incluyo spoon y la librería de cookies
require_once 'spoon/spoon.php';
require_once 'spoon/cookie/cookie.php';

A partir de este momento tenemos disponible la clase SpoonCookie y varios de sus métodos estáticos para hacer cosas con las cookies. Como son métodos estáticos se pueden invocar desde el nombre de la clase con el operador "::".

Crear una cookie con Spoon en PHP 5

Para crear cookies en el navegador utilizamos el método set(), enviando en el primer parámetro el nombre de la cookie y en el segundo el valor. Luego hay otra serie de parámetros opcionales, así que esta sería sólo la manera más simplificada por la que podríamos crear una cookie:

SpoonCookie::set('micookie', 'valor de micookie');

En diferencia con PHP nativo, las cookies que creemos desde Spoon tendrán por defecto una validez de 24 horas. Más tarde explicaremos cómo configurar otro valor.

Comprobar si una cookie existe con Spoon

En las páginas siguientes que visite el usuario, después de haber creado la cookie, se podrá acceder a la misma, pero antes debemos comprobar si existe o no esa cookie en el sistema. Para ello utilizamos el método exists() enviando por parámetro el nombre de la cookie cuya existencia queremos comprobar.

if(SpoonCookie::exists('micookie')){
   //Puedo entender que esa cookie existe!
}

Podemos comprobar la existencia de varias cookies a la vez, enviando los nombres de todas las cookies en parámetros distintos.

if(SpoonCookie::exists('c1', 'c2', 'c3')){
   //las cookies 'c1', 'c2' y 'c3' existen
}

Recuperar el valor de una cookie

El método estático get() de la clase SpoonCookie nos sirve para recuperar el valor de una cookie creada anteriormente. Para ello indicamos como parámetro una cadena con el nombre de la cookie que queremos recuperar. El método nos devolverá en una variable el valor de la cookie. Pero recordar que antes deberíamos comprobar la existencia de la cookie.

//Esquema para recuperar el valor de una cookie
//Miro a ver si la cookie existe
if(SpoonCookie::exists('micookie')){
   //muestro la cookie
   echo SpoonCookie::get('micookie');
}else{
   echo "no encontré esa micookie";
}

Nota: recuerda que Spoon tiene algunas funciones para mostrar el contenido de variables de una manera formateada. Si quieres, podrías usar su método dump (estático de la clase Spoon) para mostrar el contenido de esa cookie:
Spoon::dump(SpoonCookie::get('micookie'), false);

Borrar una cookie con Spoon

Ya sólo nos queda aprender cómo eliminar una cookie que ya no deseamos que esté activa en el navegador. Para ello usamos el método delete(), enviando por parámetro el nombre de la cookie que deseas eliminar:

SpoonCookie::delete('micookie');

De manera similar al método exists() para comprobar la existencia de una cookie, podemos enviar varios nombres de cookies como parámetro para borrarlas todas de una vez:

SpoonCookie::delete('c1', 'c2', 'c3');

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir