phpmx / cookie
Controla cookies seguros para aplicações HTTP PHPMX
Requires
- phpmx/server: dev-main
This package is auto-updated.
Last update: 2025-06-18 04:39:21 UTC
README
Controlador estático de cookies com suporte a criptografia, codificação e configurações dinâmicas.
composer require phpmx/core
Utilização
Utilize a classe estática PhpMx\Cookie para criar, ler e gerenciar cookies de forma segura.
use PhpMx\Cookie; Cookie::set('nome', 'valor'); Cookie::get('nome'); Cookie::remove('nome'); Cookie::check('nome');
Cookies seguros
Para armazenar valores de forma segura, prefixe o nome do cookie com #
. Isso utiliza Cif e Code do PHPMX-CORE.
Cookie::set('#user_token', '12345'); Cookie::get('#user_token'); // retorna '12345'
Cookies seguros são cifrados, validados e possuem prefixo de identidade para evitar colisão ou interceptação.
Comportamento
- Cookies definidos como
null
serão marcados para remoção imediata - Valores criptografados recebem o prefixo
Cookie:
internamente - Cookies invalidos ou com dados quebrados serão automaticamente ignorados
Configuração via .env
A classe respeita as variáveis do ambiente:
COOKIE_LIFE = "+30 days" # Tempo padrão de vida dos cookies (strtotime-compatible) COOKIE_DOMAIN = "" # Domínio dos cookies (opcional)
Métodos
get(string $name): ?string
Retorna o valor do cookie, ou null
caso inexistente.
set(string $name, ?string $value): void
Define um cookie. Usa criptografia se nome for iniciado com #
. Se valor for null
, marca para remoção.
check(string $name): bool Verifica se um cookie existe e é válido.
remove(string $name): void Remove um cookie explicitamente.
Considerações
- Cookies são armazenados de forma segura no cliente, mas ainda são passíveis de exclusão local
- Cookies seguros (prefixados com
#
) são recomendados para tokens, flags e sessões - Cookies simples devem ser usados apenas para dados não sensíveis (como preferências de idioma)
Exemplo completo
use PhpMx\Cookie; // Cookie seguro (criptografado) Cookie::set('#auth', 'xyz123'); if (Cookie::check('#auth')) { $token = Cookie::get('#auth'); } // Cookie público Cookie::set('theme', 'dark'); echo Cookie::get('theme'); // dark // Remover Cookie::remove('theme');