Essa biblioteca permite a codificação e decodificação dos dados das sessões PHP.
- PHP 7.2 ou mais recente
- Composer
É preferível que seja instalado via composer:
composer require feeh27/session-encoder-decoder
As funções nativas PHP de codificação e decodificação de sessões possui certas limitações, tais como:
-
session_encode()
(Codificação):- Não é possível utilizar caso não haja uma sessão ativa
- Codifica somente os dados presentes na variável global de sessão
$_SESSION
- Não aceita parâmetros com os dados decodificados
-
session_decode()
(Decodificação):- Não é possível utilizar caso não haja uma sessão ativa
- Ao invés de retornar o valor decodificado (array), salva diretamente na variável global de sessão
$_SESSION
Crie uma nova instância da biblioteca:
$session = new SessionEncoderDecoder\PSR7Session();
$decodedData = [
'user_id' => '389',
'profile_id' => 27,
];
$encodedData = $session->encode($decodedData);
echo $encodedData; // 'user_id|s:3:"389";profile_id|i:27;'
$encodedData = 'user_id|s:3:"389";profile_id|i:27;';
$decodedData = $session->encode($encodedData);
print_r($decodedData);
// Array
// (
// [user_id] => 389
// [profile_id] => 27
// )
Essa biblioteca foi baseada na biblioteca psr7-sessions/session-encode-decode
e que por algum parece que foi descontinuada.
Fiz diversas modificações em todas as suas classes para adequar melhor ao meu cenário e acredito que outras pessoas também a acharão útil.
Felipe Dominguesche - Linkedin