Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
CleanTargetUrl.php
Go to the documentation of this file.
1 <?php
6 declare(strict_types=1);
7 
9 
13 use Magento\Framework\Url\Helper\Data as UrlHelper;
14 
19 {
23  private $urlHelper;
24 
28  private $session;
29 
33  private $sidResolver;
34 
40  public function __construct(
41  UrlHelper $urlHelper,
42  \Magento\Framework\Session\Generic $session,
43  \Magento\Framework\Session\SidResolverInterface $sidResolver
44  ) {
45  $this->urlHelper = $urlHelper;
46  $this->session = $session;
47  $this->sidResolver = $sidResolver;
48  }
49 
56  public function switch(StoreInterface $fromStore, StoreInterface $targetStore, string $redirectUrl): string
57  {
58  $targetUrl = $redirectUrl;
59  $sidName = $this->sidResolver->getSessionIdQueryParam($this->session);
60  $targetUrl = $this->urlHelper->removeRequestParam($targetUrl, $sidName);
61  $targetUrl = $this->urlHelper->removeRequestParam($targetUrl, '___from_store');
62  $targetUrl = $this->urlHelper->removeRequestParam($targetUrl, StoreResolverInterface::PARAM_NAME);
63 
64  return $targetUrl;
65  }
66 }
__construct(UrlHelper $urlHelper, \Magento\Framework\Session\Generic $session, \Magento\Framework\Session\SidResolverInterface $sidResolver)