Search by

gatovel / session

hailtom Garcia Dias

Sistema modular e independente de gerenciamento de sessoes para aplicacoes PHP.

v1.0.0 2026-10-16 13:11 UTC

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.