RewriteMapsSavingService::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 1.125

Importance

Changes 2
Bugs 0 Features 0
Metric Value
cc 1
eloc 3
nc 1
nop 3
dl 0
loc 8
ccs 4
cts 8
cp 0.5
crap 1.125
rs 10
c 2
b 0
f 0
1
<?php
2
/**
3
 * integer_net GmbH Magento Module
4
 *
5
 * @copyright  Copyright (c) 2020 integer_net GmbH (http://www.integer-net.de/)
6
 * @author     Bernard Delhez <[email protected]>
7
 */
8
9
namespace IntegerNet\RewriteMap\Model;
10
11
use Magento\Framework\Filesystem;
12
use Magento\Framework\App\Filesystem\DirectoryList;
13
use Magento\Store\Model\StoreManagerInterface as StoreManagerInterface;
14
use Magento\UrlRewrite\Model\OptionProvider as UrlRewriteOptionProvider;
15
16
class RewriteMapsSavingService
17
{
18
    /**
19
     * @var Filesystem
20
     */
21
    private $filesystem;
22
    /**
23
     * @var StoreManagerInterface
24
     */
25
    private $storeManager;
26
    /**
27
     * @var RewriteMapRepository
28
     */
29
    private $urlRewriteRepository;
30
31 1
    public function __construct(
32
        Filesystem $filesystem,
33
        StoreManagerInterface $storeManager,
34
        RewriteMapRepository $urlRewriteRepository
35
    ) {
36 1
        $this->filesystem = $filesystem;
37 1
        $this->storeManager = $storeManager;
38 1
        $this->urlRewriteRepository = $urlRewriteRepository;
39 1
    }
40
41
    /**
42
     * @throws \Magento\Framework\Exception\FileSystemException
43
     * @throws \Magento\Framework\Exception\InputException
44
     */
45 1
    public function saveRewriteMapsForAllStores(): void
46
    {
47 1
        foreach ($this->storeManager->getStores() as $store) {
48 1
            $storeId = (int)$store->getId();
49 1
            $this->saveRewriteMap(
50 1
                $this->urlRewriteRepository->getByStoreAndType($storeId, UrlRewriteOptionProvider::PERMANENT)
51
            );
52 1
            $this->saveRewriteMap(
53 1
                $this->urlRewriteRepository->getByStoreAndType($storeId, UrlRewriteOptionProvider::TEMPORARY)
54
            );
55
        }
56 1
    }
57
58
    /**
59
     * @param RewriteMap $rewriteMap
60
     * @throws \Magento\Framework\Exception\FileSystemException
61
     * @throws \Magento\Framework\Exception\InputException
62
     */
63 1
    public function saveRewriteMap(RewriteMap $rewriteMap): void
64
    {
65 1
        $varDirectory = $this->filesystem->getDirectoryWrite(DirectoryList::VAR_DIR);
66 1
        $varDirectory->writeFile(
67 1
            'rewrite_map' . DIRECTORY_SEPARATOR . $rewriteMap->getFilename(),
68 1
            $rewriteMap->getContent(),
69 1
            'w'
70
        );
71 1
    }
72
}
73