CoremediaDependencyProvider::addStoreClient()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 4
nc 1
nop 1
dl 0
loc 9
rs 10
c 0
b 0
f 0
1
<?php
2
3
/**
4
 * Copyright © 2016-present Spryker Systems GmbH. All rights reserved.
5
 * Use of this software requires acceptance of the Evaluation License Agreement. See LICENSE file.
6
 */
7
8
namespace SprykerEco\Yves\Coremedia;
9
10
use Spryker\Yves\Kernel\AbstractBundleDependencyProvider;
11
use Spryker\Yves\Kernel\Container;
12
use Spryker\Yves\Kernel\Plugin\Pimple;
13
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToCategoryStorageClientBridge;
14
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToMoneyClientBridge;
15
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductClientBridge;
16
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToPriceProductStorageClientBridge;
17
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToProductStorageClientBridge;
18
use SprykerEco\Yves\Coremedia\Dependency\Client\CoremediaToStoreClientBridge;
19
use SprykerEco\Yves\Coremedia\Dependency\Service\CoremediaToUtilEncodingServiceBridge;
20
21
class CoremediaDependencyProvider extends AbstractBundleDependencyProvider
22
{
23
    public const CLIENT_PRODUCT_STORAGE = 'CLIENT_PRODUCT_STORAGE';
24
    public const CLIENT_CATEGORY_STORAGE = 'CLIENT_CATEGORY_STORAGE';
25
    public const CLIENT_PRICE_PRODUCT_STORAGE = 'CLIENT_PRICE_PRODUCT_STORAGE';
26
    public const CLIENT_PRICE_PRODUCT = 'CLIENT_PRICE_PRODUCT';
27
    public const CLIENT_MONEY = 'CLIENT_MONEY';
28
    public const CLIENT_STORE = 'CLIENT_STORE';
29
    public const SERVICE_UTIL_ENCODING = 'SERVICE_UTIL_ENCODING';
30
    public const URL_GENERATOR = 'URL_GENERATOR';
31
32
    /**
33
     * @param \Spryker\Yves\Kernel\Container $container
34
     *
35
     * @return \Spryker\Yves\Kernel\Container
36
     */
37
    public function provideDependencies(Container $container): Container
38
    {
39
        $container = parent::provideDependencies($container);
40
41
        $container = $this->addUtilEncodingService($container);
42
        $container = $this->addProductStorageClient($container);
43
        $container = $this->addCategoryStorageClient($container);
44
        $container = $this->addPriceProductStorageClient($container);
45
        $container = $this->addPriceProductClient($container);
46
        $container = $this->addMoneyClient($container);
47
        $container = $this->addStoreClient($container);
48
        $container = $this->addUrlGenerator($container);
49
50
        return $container;
51
    }
52
53
    /**
54
     * @param \Spryker\Yves\Kernel\Container $container
55
     *
56
     * @return \Spryker\Yves\Kernel\Container
57
     */
58
    protected function addUtilEncodingService(Container $container): Container
59
    {
60
        $container->set(static::SERVICE_UTIL_ENCODING, function (Container $container) {
61
            return new CoremediaToUtilEncodingServiceBridge(
62
                $container->getLocator()->utilEncoding()->service()
63
            );
64
        });
65
66
        return $container;
67
    }
68
69
    /**
70
     * @param \Spryker\Yves\Kernel\Container $container
71
     *
72
     * @return \Spryker\Yves\Kernel\Container
73
     */
74
    protected function addProductStorageClient(Container $container): Container
75
    {
76
        $container->set(static::CLIENT_PRODUCT_STORAGE, function (Container $container) {
77
            return new CoremediaToProductStorageClientBridge(
78
                $container->getLocator()->productStorage()->client()
79
            );
80
        });
81
82
        return $container;
83
    }
84
85
    /**
86
     * @param \Spryker\Yves\Kernel\Container $container
87
     *
88
     * @return \Spryker\Yves\Kernel\Container
89
     */
90
    protected function addCategoryStorageClient(Container $container): Container
91
    {
92
        $container->set(static::CLIENT_CATEGORY_STORAGE, function (Container $container) {
93
            return new CoremediaToCategoryStorageClientBridge(
94
                $container->getLocator()->categoryStorage()->client()
95
            );
96
        });
97
98
        return $container;
99
    }
100
101
    /**
102
     * @param \Spryker\Yves\Kernel\Container $container
103
     *
104
     * @return \Spryker\Yves\Kernel\Container
105
     */
106
    protected function addPriceProductStorageClient(Container $container): Container
107
    {
108
        $container->set(static::CLIENT_PRICE_PRODUCT_STORAGE, function (Container $container) {
109
            return new CoremediaToPriceProductStorageClientBridge(
110
                $container->getLocator()->priceProductStorage()->client()
111
            );
112
        });
113
114
        return $container;
115
    }
116
117
    /**
118
     * @param \Spryker\Yves\Kernel\Container $container
119
     *
120
     * @return \Spryker\Yves\Kernel\Container
121
     */
122
    protected function addPriceProductClient(Container $container): Container
123
    {
124
        $container->set(static::CLIENT_PRICE_PRODUCT, function (Container $container) {
125
            return new CoremediaToPriceProductClientBridge(
126
                $container->getLocator()->priceProduct()->client()
127
            );
128
        });
129
130
        return $container;
131
    }
132
133
    /**
134
     * @param \Spryker\Yves\Kernel\Container $container
135
     *
136
     * @return \Spryker\Yves\Kernel\Container
137
     */
138
    protected function addMoneyClient(Container $container): Container
139
    {
140
        $container->set(static::CLIENT_MONEY, function (Container $container) {
141
            return new CoremediaToMoneyClientBridge(
142
                $container->getLocator()->money()->client()
143
            );
144
        });
145
146
        return $container;
147
    }
148
149
    /**
150
     * @param \Spryker\Yves\Kernel\Container $container
151
     *
152
     * @return \Spryker\Yves\Kernel\Container
153
     */
154
    protected function addStoreClient(Container $container): Container
155
    {
156
        $container->set(static::CLIENT_STORE, function (Container $container) {
157
            return new CoremediaToStoreClientBridge(
158
                $container->getLocator()->store()->client()
159
            );
160
        });
161
162
        return $container;
163
    }
164
165
    /**
166
     * @param \Spryker\Yves\Kernel\Container $container
167
     *
168
     * @return \Spryker\Yves\Kernel\Container
169
     */
170
    protected function addUrlGenerator(Container $container): Container
171
    {
172
        $container->set(static::URL_GENERATOR, function () {
173
            return (new Pimple())->getApplication()['url_generator'];
0 ignored issues
show
Deprecated Code introduced by
The class Spryker\Yves\Kernel\Plugin\Pimple has been deprecated: Use {@link \Spryker\Shared\Kernel\StaticContainer} instead. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

173
            return (/** @scrutinizer ignore-deprecated */ new Pimple())->getApplication()['url_generator'];
Loading history...
174
        });
175
176
        return $container;
177
    }
178
}
179