Flash

O middleware de Mensagens Flash no Lithe permite armazenar e recuperar mensagens temporárias entre solicitações.

Instalando o Middleware de Mensagens Flash

Para instalar o middleware de Mensagens Flash, utilize o Composer:

composer require lithemod/session

Você pode encontrar mais informações e o código fonte do módulo em github.com/lithemod/session.

Usando o Middleware de Mensagens Flash

O middleware de Mensagens Flash no Lithe permite armazenar mensagens temporárias na sessão, que podem ser acessadas na próxima solicitação. Isso é útil para exibir mensagens de status, como confirmações ou erros, após uma operação.

Configurando o Middleware Flash

Para usar o middleware de Mensagens Flash, adicione-o à sua aplicação com o método use():

use Lithe\Middleware\Session\flash;

$app->use(flash());

Definindo Mensagens Flash

Para definir uma mensagem flash, você pode usar o método mágico __set ou o método set da classe Flash. Ambas as abordagens armazenam a mensagem na sessão para que esteja disponível na próxima solicitação.

  • Usando o método mágico __set:

    $app->get('/set-message', function ($req, $res) {
        $req->flash->successMessage = 'Operação concluída com sucesso!';
    });
    
  • Usando o método set:

    $app->get('/set-message', function ($req, $res) {
        $req->flash->set('successMessage', 'Operação concluída com sucesso!');
    });
    

Recuperando Mensagens Flash

Para recuperar e remover uma mensagem flash da sessão, você pode usar o método mágico __get ou o método get da classe Flash. Essas mensagens são removidas da sessão após serem recuperadas.

  • Usando o método mágico __get:

    $app->get('/get-message', function ($req, $res) {
        $message = $req->flash->successMessage;
        echo $message; // Exibe a mensagem
    });
    
  • Usando o método get:

    $app->get('/get-message', function ($req, $res) {
        $message = $req->flash->get('successMessage');
        echo $message; // Exibe a mensagem
    });
    

Verificando Mensagens Flash

Para verificar se uma ou mais mensagens flash existem na sessão, use o método has:

  • Verificação única:

    $app->get('/check-message', function ($req, $res) {
        $exists = $req->flash->has('successMessage');
        echo $exists ? 'Mensagem existe!' : 'Mensagem não existe.';
    });
    
  • Verificações múltiplas:

    $app->get('/check-messages', function ($req, $res) {
        $exists = $req->flash->has(['successMessage', 'errorMessage']);
        echo $exists ? 'Mensagens existem!' : 'Nenhuma mensagem existe.';
    });
    

Mantendo Mensagens Flash

Se você deseja manter uma mensagem flash para a próxima solicitação (ou seja, torná-la disponível em mais de uma solicitação), use o método keep:

$app->get('/keep-message', function ($req, $res) {
    $req->flash->keep('successMessage');
});

Isso reconfigura a mensagem para a próxima solicitação após a recuperação.

Considerações

  • Persistência: As mensagens flash são removidas da sessão após a primeira recuperação, a menos que você use o método keep para preservá-las.
  • Segurança: Certifique-se de sanitizar as mensagens recuperadas para evitar problemas de segurança, como ataques XSS. A validação e a manipulação correta das mensagens são essenciais para manter a segurança da aplicação.