vendor/dachcom-digital/formbuilder/src/FormBuilderBundle/Session/FlashBagManager.php line 63

Open in your IDE?
  1. <?php
  2. namespace FormBuilderBundle\Session;
  3. use Symfony\Component\HttpFoundation\Exception\SessionNotFoundException;
  4. use Symfony\Component\HttpFoundation\RequestStack;
  5. use Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface;
  6. use Symfony\Component\HttpFoundation\Session\Session;
  7. class FlashBagManager implements FlashBagManagerInterface
  8. {
  9.     public function __construct(protected RequestStack $requestStack)
  10.     {
  11.     }
  12.     public function has(string $type): bool
  13.     {
  14.         if (!$this->flashBagIsAvailable()) {
  15.             return false;
  16.         }
  17.         return $this->getFlashBag()->has($type);
  18.     }
  19.     public function add(string $type, mixed $message): void
  20.     {
  21.         if (!$this->flashBagIsAvailable()) {
  22.             return;
  23.         }
  24.         $this->getFlashBag()->add($type, $message);
  25.     }
  26.     public function get(string $type, array $default = []): array
  27.     {
  28.         if (!$this->flashBagIsAvailable()) {
  29.             return [];
  30.         }
  31.         return $this->getFlashBag()->get($type, $default);
  32.     }
  33.     public function flashBagIsAvailable(): bool
  34.     {
  35.         try {
  36.             $this->requestStack->getSession();
  37.         } catch (SessionNotFoundException $e) {
  38.             return false;
  39.         }
  40.         return true;
  41.     }
  42.     public function getFlashBag(): ?FlashBagInterface
  43.     {
  44.         if (!$this->flashBagIsAvailable()) {
  45.             return null;
  46.         }
  47.         /** @var Session $session */
  48.         $session = $this->requestStack->getSession();
  49.         return $session->getFlashBag();
  50.     }
  51. }