<?php
/**
* Exemplos de uso da classe Cookie v2.0
*/
// Estenda a classe e defina o nome do cookie
class SessionCookie extends Cookie {
public string $name = 'minha_sessao';
public int $ttl = 3600 * 24 * 30; // 30 dias
}
$cookie = new SessionCookie();
// =============================================================================
// has() — Verifica se uma chave existe
// =============================================================================
if ($cookie->has('user_id')) {
echo "Usuário já identificado.\n";
} else {
echo "Nenhum usuário no cookie.\n";
}
// =============================================================================
// add() — Adiciona ou atualiza um valor
// =============================================================================
$cookie->add('user_id', 42);
$cookie->add('theme', 'dark');
$cookie->add('lang', 'pt-BR');
// =============================================================================
// get() — Lê um valor com fallback opcional
// =============================================================================
$user_id = $cookie->get('user_id'); // 42
$theme = $cookie->get('theme', 'light'); // 'dark'
$missing = $cookie->get('nao_existe', 'N/A'); // 'N/A'
echo "Usuário : {$user_id}\n";
echo "Tema : {$theme}\n";
echo "Ausente : {$missing}\n";
// =============================================================================
// all() — Retorna todos os dados
// =============================================================================
$dados = $cookie->all();
foreach ($dados as $key => $value) {
echo "{$key}: {$value}\n";
}
// user_id: 42
// theme: dark
// lang: pt-BR
// =============================================================================
// del() — Remove uma chave específica
// =============================================================================
$cookie->del('lang');
echo $cookie->has('lang') ? "ainda existe\n" : "removido\n"; // removido
// =============================================================================
// logout() — Apaga todos os dados e remove o cookie do browser
// =============================================================================
$cookie->logout();
echo count($cookie->all()) === 0 ? "Cookie limpo.\n" : "Ainda tem dados.\n";
// =============================================================================
// Personalizando as opções de segurança
// (por exemplo, em ambiente local sem HTTPS)
// =============================================================================
class DevCookie extends Cookie {
public string $name = 'dev_session';
public array $options = [
'path' => '/',
'secure' => false, // HTTP permitido em ambiente local
'httponly' => true,
'samesite' => 'Lax',
];
}
$dev = new DevCookie();
$dev->add('debug', true);
// =============================================================================
// Tratando o erro de headers já enviados
// =============================================================================
try {
$cookie->add('chave', 'valor');
} catch (RuntimeException $e) {
error_log($e->getMessage());
// "Não é possível definir o cookie 'minha_sessao' — headers já enviados em index.php:10"
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|0 👍
/0 👎