gatovel / session
Sistema modular e independente de gerenciamento de sessoes para aplicacoes PHP.
Requires
- php: ^8.3
Requires (Dev)
None
Suggests
- gatovel/cache: Integracao opcional para armazenamento de sessoes em cache.
- gatovel/database: Integracao opcional para armazenamento de sessoes em banco de dados.
Provides
None
Conflicts
None
Replaces
None
This package is not auto-updated.
Last update: 2026-10-17 11:40:43 UTC
README
Sistema modular e independente de gerenciamento de sessões para aplicações PHP.
O gatovel/session faz parte do ecossistema Gatovel, mas pode ser utilizado em qualquer aplicação PHP compatível, sem depender do Gatovel Framework.
Requisitos
- PHP 8.3 ou superior
- Composer
Instalação
Após a publicação do pacote no Packagist:
composer require gatovel/session
Inicialização
<?php require __DIR__ . '/vendor/autoload.php'; use Gatovel\Session\Session; Session::start(); Session::set('usuario_id', 123); echo Session::get('usuario_id');
A sessão deve ser iniciada antes de enviar conteúdo HTTP ao navegador.
Configuração
use Gatovel\Session\Session; Session::configure([ 'name' => 'gatovel_session', 'lifetime' => 120, 'idle_timeout' => 30, 'path' => '/', 'domain' => '', 'secure' => true, 'http_only' => true, 'same_site' => 'Lax', ]); Session::start();
Os valores de lifetime e idle_timeout são expressos em minutos. Em produção com HTTPS, recomenda-se utilizar secure => true. A configuração deve ser aplicada antes de iniciar a sessão.
Manipulação de dados
use Gatovel\Session\Session; Session::start(); Session::set('nome', 'Gatovel'); $nome = Session::get('nome'); $existe = Session::has('nome'); $todos = Session::all(); Session::remove('nome'); Session::clear();
Segurança da sessão
Após autenticar um usuário, recomenda-se regenerar o identificador da sessão:
Session::regenerate();
Para encerrar a sessão:
Session::destroy();
O pacote também oferece controle de inatividade por meio da opção idle_timeout.
Mensagens flash
Mensagens flash são dados temporários destinados à próxima requisição.
use Gatovel\Session\Session; Session::start(); Session::flash('success', 'Operação realizada com sucesso!');
Na próxima requisição:
Session::start(); $mensagem = Session::getFlash('success');
Também estão disponíveis Session::hasFlash('success') e Session::flashAll().
Dados antigos de formulários
Para preservar temporariamente os dados de um formulário:
Session::flashInput([ 'nome' => 'Gatovel', 'email' => 'contato@example.com', ]);
Na próxima requisição:
$nome = Session::old('nome'); $email = Session::old('email'); $todos = Session::oldInput();
Esse recurso pode ser utilizado para preencher novamente formulários após falhas de validação.
Arquitetura
O pacote contém cinco classes principais:
| Classe | Responsabilidade |
|---|---|
Session |
Interface principal para utilização da biblioteca |
SessionManager |
Inicialização e ciclo de vida da sessão |
SessionConfig |
Configuração e validação das opções |
SessionCookie |
Configuração e remoção do cookie |
Flash |
Mensagens temporárias e dados antigos de formulários |
O pacote utiliza os mecanismos nativos de sessão do PHP.
Testes
Instale as dependências de desenvolvimento:
composer install
Execute os testes:
vendor/bin/phpunit
A suíte inicial possui 43 testes automatizados.
Integração com Gatovel Framework
O Gatovel Framework pode utilizar este pacote como seu componente de gerenciamento de sessões. A biblioteca também funciona independentemente do Framework.
Licença
MIT.