<?php
namespace Boab\CmsBundle\Util;
use Symfony\Component\HttpFoundation\RequestStack;
use Symfony\Component\HttpFoundation\Session\SessionInterface;
class Flash implements FlashInterface
{
private $__values = [];
private $requestStack;
public function __construct(RequestStack $requestStack)
{
$this->requestStack = $requestStack;
}
public function initSessionFlashBag()
{
/* $flashData = $this->flashBag->all();
foreach (['__successes', '__alert', '__errors', '__values','__infos', '__warnings'] as $key) {
if (!isset($flashData[$key])) {
continue;
}
foreach ($flashData[$key] as $value) {
if (!is_array($value)) {
array_push($this->$key, $value);
continue;
}
$this->$key = array_merge($this->$key, $value);
}
}
*/
}
public function setNotice($message)
{
$this->add('notice', $message);
}
public function setInfo($info)
{
$this->add('infos', $info);
}
public function setWarning(string $message)
{
$this->add('warning', $message);
}
public function add(string $type, $message):void
{
$this->requestStack->getSession()->getFlashBag()->add($type, $message);
}
public function setSuccess($message)
{
$this->add('success', $message);
}
public function setError($key, $message)
{
$this->add('error', [$key => $message]);
}
public function setErrors(array $errors = [])
{
foreach ($errors as $key => $value) {
$this->setError($key, $value);
}
}
public function setValues(array $data = [])
{
foreach ($data as $key => $value) {
$this->setValue($key, $value);
}
}
public function setValue($field, $value)
{
$this->add('values', [$field => $value]);
}
public function getData($key)
{
return isset($this->__values[$key]) ? $this->__values[$key] : '';
}
public function getValue($key)
{
return isset($this->__values[$key]) ? $this->__values[$key] : '';
}
}