![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/old/vendor/magento/module-store/Model/Plugin/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ namespace Magento\Store\Model\Plugin; use Magento\Store\Api\StoreCookieManagerInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\Store\Api\StoreRepositoryInterface; use Magento\Store\Model\StoreIsInactiveException; use Magento\Framework\Exception\NoSuchEntityException; use \InvalidArgumentException; /** * Class StoreCookie */ class StoreCookie { /** * @var \Magento\Store\Model\StoreManagerInterface */ protected $storeManager; /** * @var StoreCookieManagerInterface */ protected $storeCookieManager; /** * @var StoreRepositoryInterface */ protected $storeRepository; /** * @param StoreManagerInterface $storeManager * @param StoreCookieManagerInterface $storeCookieManager * @param StoreRepositoryInterface $storeRepository */ public function __construct( StoreManagerInterface $storeManager, StoreCookieManagerInterface $storeCookieManager, StoreRepositoryInterface $storeRepository ) { $this->storeManager = $storeManager; $this->storeCookieManager = $storeCookieManager; $this->storeRepository = $storeRepository; } /** * Delete cookie "store" if the store (a value in the cookie) does not exist or is inactive * * @param \Magento\Framework\App\FrontController $subject * @param \Magento\Framework\App\RequestInterface $request * @return void * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function beforeDispatch( \Magento\Framework\App\FrontController $subject, \Magento\Framework\App\RequestInterface $request ) { $storeCodeFromCookie = $this->storeCookieManager->getStoreCodeFromCookie(); if ($storeCodeFromCookie) { try { $this->storeRepository->getActiveStoreByCode($storeCodeFromCookie); } catch (StoreIsInactiveException $e) { $this->storeCookieManager->deleteStoreCookie($this->storeManager->getDefaultStoreView()); } catch (NoSuchEntityException $e) { $this->storeCookieManager->deleteStoreCookie($this->storeManager->getDefaultStoreView()); } catch (InvalidArgumentException $e) { $this->storeCookieManager->deleteStoreCookie($this->storeManager->getDefaultStoreView()); } } } }