StoreIdResolver::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
c 0
b 0
f 0
rs 10
cc 1
eloc 2
nc 1
nop 1
1
<?php
2
3
namespace Tkotosz\CatalogRouter\Model\Service;
4
5
use Magento\Catalog\Model\AbstractModel;
6
use Magento\Store\Model\StoreManagerInterface;
7
8
class StoreIdResolver
9
{
10
    /**
11
     * @var StoreManagerInterface
12
     */
13
    private $storeManager;
14
    
15
    /**
16
     * @param StoreManagerInterface $storeManager
17
     */
18
    public function __construct(StoreManagerInterface $storeManager)
19
    {
20
        $this->storeManager = $storeManager;
21
    }
22
    
23
    /**
24
     * Replicate the original magento behaviour for store is handling from the url model
25
     * 
26
     * @param AbstractModel $entity
27
     * @param array         $params
28
     *
29
     * @return int
30
     */
31
    public function resolve(AbstractModel $entity, array $params = []) : int
32
    {
33
        $storeId = $entity->getStoreId();
34
35
        if (isset($params['_scope'])) {
36
            $storeId = $this->storeManager->getStore($params['_scope'])->getId();
37
        }
38
39
        if (!$storeId) {
40
            $storeId = $this->storeManager->getStore()->getId();
41
        }
42
43
        return $storeId;
44
    }
45
}
46