vendor/setono/client-id/src/Provider/CookieBasedClientIdProvider.php line 27

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace Setono\ClientId\Provider;
  4. use Setono\ClientId\ClientId;
  5. use Setono\ClientId\Cookie\CookieReaderInterface;
  6. final class CookieBasedClientIdProvider implements ClientIdProviderInterface
  7. {
  8.     private ClientIdProviderInterface $decorated;
  9.     private CookieReaderInterface $cookieReader;
  10.     private string $cookieName;
  11.     public function __construct(ClientIdProviderInterface $decorated, CookieReaderInterface $cookieReader, string $cookieName)
  12.     {
  13.         $this->decorated = $decorated;
  14.         $this->cookieReader = $cookieReader;
  15.         $this->cookieName = $cookieName;
  16.     }
  17.     public function getClientId(): ClientId
  18.     {
  19.         $value = $this->cookieReader->getValue($this->cookieName);
  20.         return $value ? new ClientId($value) : $this->decorated->getClientId();
  21.     }
  22. }