| Current Path : /var/www/html/vendor/magento/module-store/App/FrontController/Plugin/ |
| Current File : /var/www/html/vendor/magento/module-store/App/FrontController/Plugin/DefaultStore.php |
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
namespace Magento\Store\App\FrontController\Plugin;
use \Magento\Store\Model\StoreResolver\ReaderList;
use \Magento\Store\Model\ScopeInterface;
/**
* Plugin to set default store for admin area.
*/
class DefaultStore
{
/**
* @var \Magento\Store\Model\StoreManagerInterface
*/
protected $storeManager;
/**
* @var ReaderList
*/
protected $readerList;
/**
* @var string
*/
protected $runMode;
/**
* @var string
*/
protected $scopeCode;
/**
* Initialize dependencies.
*
* @param \Magento\Store\Model\StoreManagerInterface $storeManager
* @param ReaderList $readerList
* @param string $runMode
* @param null $scopeCode
*/
public function __construct(
\Magento\Store\Model\StoreManagerInterface $storeManager,
ReaderList $readerList,
$runMode = ScopeInterface::SCOPE_STORE,
$scopeCode = null
) {
$this->runMode = $scopeCode ? $runMode : ScopeInterface::SCOPE_WEBSITE;
$this->scopeCode = $scopeCode;
$this->readerList = $readerList;
$this->storeManager = $storeManager;
}
/**
* Set current store for admin area
*
* @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
) {
$reader = $this->readerList->getReader($this->runMode);
$defaultStoreId = $reader->getDefaultStoreId($this->scopeCode);
$this->storeManager->setCurrentStore($defaultStoreId);
}
}