Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
ScopeCodeResolver.php
Go to the documentation of this file.
1 <?php
7 
9 
14 {
18  private $scopeResolverPool;
19 
23  private $resolvedScopeCodes = [];
24 
28  public function __construct(ScopeResolverPool $scopeResolverPool)
29  {
30  $this->scopeResolverPool = $scopeResolverPool;
31  }
32 
40  public function resolve($scopeType, $scopeCode)
41  {
42  if (isset($this->resolvedScopeCodes[$scopeType][$scopeCode])) {
43  return $this->resolvedScopeCodes[$scopeType][$scopeCode];
44  }
45  if (($scopeCode === null || is_numeric($scopeCode))
47  ) {
48  $scopeResolver = $this->scopeResolverPool->get($scopeType);
49  $resolverScopeCode = $scopeResolver->getScope($scopeCode);
50  } else {
51  $resolverScopeCode = $scopeCode;
52  }
53 
54  if ($resolverScopeCode instanceof \Magento\Framework\App\ScopeInterface) {
55  $resolverScopeCode = $resolverScopeCode->getCode();
56  }
57 
58  $this->resolvedScopeCodes[$scopeType][$scopeCode] = $resolverScopeCode;
59  return $resolverScopeCode;
60  }
61 
67  public function clean()
68  {
69  $this->resolvedScopeCodes = [];
70  }
71 }
__construct(ScopeResolverPool $scopeResolverPool)