48 lines
1.1 KiB
PHP
48 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace Framework\Session;
|
|
|
|
class FlashService
|
|
{
|
|
|
|
/**
|
|
* @var SessionInterface
|
|
*/
|
|
private $session;
|
|
|
|
private $sessionKey = 'flash';
|
|
|
|
private $messages;
|
|
|
|
public function __construct(SessionInterface $session)
|
|
{
|
|
$this->session = $session;
|
|
}
|
|
|
|
public function success(string $message)
|
|
{
|
|
$flash = $this->session->get($this->sessionKey, []);
|
|
$flash['success'] = $message;
|
|
$this->session->set($this->sessionKey, $flash);
|
|
}
|
|
|
|
public function error(string $message)
|
|
{
|
|
$flash = $this->session->get($this->sessionKey, []);
|
|
$flash['error'] = $message;
|
|
$this->session->set($this->sessionKey, $flash);
|
|
}
|
|
|
|
public function get(string $type): ?string
|
|
{
|
|
if (is_null($this->messages)) {
|
|
$this->messages = $this->session->get($this->sessionKey, []);
|
|
$this->session->delete($this->sessionKey);
|
|
}
|
|
if (array_key_exists($type, $this->messages)) {
|
|
return $this->messages[$type];
|
|
}
|
|
return null;
|
|
}
|
|
}
|