<?php
declare(strict_types=1);
namespace App\Module\ShortSimpleCheckout\Manager;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* Manage flashbags
*
* @author Michel Chowanski <michel.chowanski@bestit-online.de>
* @package App\Module\ShortSimpleCheckout\Manager
*/
class FlashBagManager implements FlashBagManagerInterface
{
private Session $session;
private TranslatorInterface $translator;
/**
* @param Session $session
* @param TranslatorInterface $translator
*/
public function __construct(Session $session, TranslatorInterface $translator)
{
$this->session = $session;
$this->translator = $translator;
}
/**
* {@inheritdoc}
*
* @return void
*/
public function alert(string $message, array $parameters = [], string $domain = self::DEFAULT_DOMAIN): void
{
$value = $this->translate($message, $parameters, $domain);
$this->session->getFlashBag()->add('alert', $value);
}
/**
* {@inheritdoc}
*
* @return void
*/
public function error(string $message, array $parameters = [], string $domain = self::DEFAULT_DOMAIN): void
{
$value = $this->translate($message, $parameters, $domain);
$this->session->getFlashBag()->add('error', $value);
}
/**
* {@inheritdoc}
*
* @return void
*/
public function info(string $message, array $parameters = [], string $domain = self::DEFAULT_DOMAIN): void
{
$value = $this->translate($message, $parameters, $domain);
$this->session->getFlashBag()->add('info', $value);
}
/**
* {@inheritdoc}
*
* @return void
*/
public function success(string $message, array $parameters = [], string $domain = self::DEFAULT_DOMAIN): void
{
$value = $this->translate($message, $parameters, $domain);
$this->session->getFlashBag()->add('success', $value);
}
/**
* {@inheritdoc}
*
* @return string
*/
public function translate(string $message, array $parameters = [], string $domain = self::DEFAULT_DOMAIN): string
{
return $this->translator->trans($message, $parameters, $domain);
}
}