123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- /**
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- namespace Magento\Framework\App\PageCache;
- use Magento\Framework\Session\SessionManagerInterface;
- use Magento\Framework\Stdlib\Cookie\CookieMetadataFactory;
- use Magento\Framework\Stdlib\Cookie\PublicCookieMetadata;
- use Magento\Framework\Stdlib\CookieManagerInterface;
- /**
- * Class Version
- *
- */
- class FormKey
- {
- /**
- * Name of cookie that holds private content version
- */
- const COOKIE_NAME = 'form_key';
- /**
- * CookieManager
- *
- * @var CookieManagerInterface
- */
- private $cookieManager;
- /**
- * @var CookieMetadataFactory
- */
- private $cookieMetadataFactory;
- /**
- * @var SessionManagerInterface
- */
- private $sessionManager;
- /**
- * @param CookieManagerInterface $cookieManager
- * @param CookieMetadataFactory $cookieMetadataFactory
- * @param SessionManagerInterface $sessionManager
- */
- public function __construct(
- CookieManagerInterface $cookieManager,
- CookieMetadataFactory $cookieMetadataFactory,
- SessionManagerInterface $sessionManager
- ) {
- $this->cookieManager = $cookieManager;
- $this->cookieMetadataFactory = $cookieMetadataFactory;
- $this->sessionManager = $sessionManager;
- }
- /**
- * Get form key cookie
- *
- * @return string
- */
- public function get()
- {
- return $this->cookieManager->getCookie(self::COOKIE_NAME);
- }
- /**
- * @param string $value
- * @param PublicCookieMetadata $metadata
- * @return void
- */
- public function set($value, PublicCookieMetadata $metadata)
- {
- $this->cookieManager->setPublicCookie(
- self::COOKIE_NAME,
- $value,
- $metadata
- );
- }
- /**
- * @return void
- */
- public function delete()
- {
- $this->cookieManager->deleteCookie(
- self::COOKIE_NAME,
- $this->cookieMetadataFactory
- ->createCookieMetadata()
- ->setPath($this->sessionManager->getCookiePath())
- ->setDomain($this->sessionManager->getCookieDomain())
- );
- }
- }
|