Trabalho com Cookies em PHP com a biblioteca Spoon

A biblioteca de PHP 5 Spoon tem uma classe para trabalhar com cookies de uma maneira mais cômoda.

Por Miguel Angel Alvarez - Tradução de Celeste Veiga


Publicado em: 24/8/10
Valorize este artigo:
Vamos relatar as funcionalidades relacionadas com as cookies que existem na biblioteca Spoon, que permitem criar e obter dados armazenados no navegador do cliente. Como já sabemos, as cookies são pequenas informações que se guardam no navegador e que perduram ao longo de distintas sessões que o visitante possa realizar na nossa página. Para as pessoas que ainda não conheçam este conceito lhes recomendamos que leiam o artigo Que são as cookies.

PHP tem uma série completa de funções para o trabalho com Cookies que são bem simples de utilizar. As cookies só aceitam cadeias de caracteres, é por isso que, em principio, a partir das funções próprias de PHP só podemos guardar strings, porém Spoon nos oferece um jogo de funções que trabalham de maneira bastante similar, mas que têm a vantagem de poder enviar qualquer tipo de informação a uma cookie.

Baixar as bibliotecas de Spoon para trabalho com cookies

O procedimento para incluir as bibliotecas de Spoon que desejamos utilizar já está relatado em artigos anteriores do Manual da biblioteca Spoon. No obstante, este seria o código para incluir a biblioteca Cookie.

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

//incluo spoon e a biblioteca de cookies
require_once 'spoon/spoon.php';
require_once 'spoon/cookie/cookie.php';

A partir deste momento temos disponível a classe SpoonCookie e vários de seus métodos estáticos para fazer coisas com as cookies. Como são métodos estáticos podem ser invocados a partir do nome da classe com o operador "::".

Criar uma cookie com Spoon em PHP 5

Para criar cookies no navegador utilizamos o método set(), enviando no primeiro parâmetro o nome da cookie e no segundo, o valor. Depois há outra série de parâmetros opcionais, assim que esta seria só a maneira mais simplificada pela qual poderíamos criar uma cookie:

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

Diferente do PHP nativo, as cookies que criamos a partir de Spoon terão por padrão uma validade de 24 horas. Mais tarde explicaremos como configurar outro valor.

Comprovar se uma cookie existe com Spoon

Depois de ter criado a cookie, ela ficará acessível nas páginas seguintes que visite o usuário, mas antes devemos comprovar se existe ou não essa cookie no sistema. Para isso, utilizamos o método exists() enviando por parâmetro o nome da cookie cuja existência queremos comprovar.

if(SpoonCookie::exists('minhacookie')){
   //Posso entender que essa cookie existe!
}

Podemos comprovar a existência de várias cookies ao mesmo tempo, enviando os nomes de todas as cookies em parâmetros distintos.

if(SpoonCookie::exists('c1', 'c2', 'c3')){
   //as cookies 'c1', 'c2' e 'c3' existem
}

Recuperar o valor de uma cookie

O método estático get() da classe SpoonCookie serve para recuperar o valor de uma cookie criada anteriormente. Para isso indicamos como parâmetro uma cadeia com o nome da cookie que queremos recuperar. O método nos retornará com uma variável o valor da cookie. Porém, lembremos que antes devemos comprovar a existência da cookie.

//Esquema para recuperar o valor de uma cookie
//vejo se a cookie existe
if(SpoonCookie::exists('minhacookie')){
   //mostro a cookie
   echo SpoonCookie::get('minhacookie');
}else{
   echo "não encontrei essa minhacookie";
}

Nota: lembre-se que Spoon tem algumas funções para exibir o conteúdo de variáveis de uma maneira formatada. Se você quiser, pode usar seu método dump (estático da classe Spoon) para exibir o conteúdo dessa cookie:
Spoon::dump(SpoonCookie::get('minhacookie'), false);

Apagar uma cookie com Spoon

Só nos falta aprender como eliminar uma cookie que já não desejamos que esteja ativa no navegador. Para isso usamos o método delete(), enviando por parâmetro o nome da cookie que desejamos eliminar:

SpoonCookie::delete('minhacookie');

De maneira similar ao método exists() para comprovar a existência de uma cookie, podemos enviar vários nomes de cookies como parâmetro para apagá-las todas de uma vez:

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






Usuários :    login / registro

Manuais relacionados
Categorias relacionadas
O autor

Home | Sobre nós | Copyright | Anuncie | Entrar em contato