![]() 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/dev/tests/integration/framework/Magento/TestFramework/Store/ |
<?php /** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ declare(strict_types=1); namespace Magento\TestFramework\Store; use Magento\Framework\App\ScopeInterface; use Magento\Store\Model\StoreManagerInterface; use Magento\TestFramework\ScopeSwitcherInterface; class ScopeSwitcher implements ScopeSwitcherInterface { /** * @param StoreManagerInterface $storeManager */ public function __construct( private StoreManagerInterface $storeManager ) { } /** * @inheritDoc */ public function switch(ScopeInterface $scope): ScopeInterface { $fromStore = $this->storeManager->getStore(); switch ($scope->getScopeType()) { case \Magento\Store\Model\ScopeInterface::SCOPE_STORE: case \Magento\Store\Model\ScopeInterface::SCOPE_STORES: $toStore = $scope->getId(); break; case \Magento\Store\Model\ScopeInterface::SCOPE_GROUP: case \Magento\Store\Model\ScopeInterface::SCOPE_GROUPS: $toStore = $this->storeManager->getGroup($scope->getCode())->getDefaultStoreId(); break; case \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITE: case \Magento\Store\Model\ScopeInterface::SCOPE_WEBSITES: $groupId = $this->storeManager->getWebsite($scope->getCode())->getDefaultGroupId(); $toStore = $this->storeManager->getGroup($groupId)->getDefaultStoreId(); break; default: throw new \InvalidArgumentException('Invalid scope'); } $this->storeManager->setCurrentStore($toStore); return $fromStore; } }