Completed
Pull Request — master (#7)
by Yuichi
06:18
created

CybozuHttpExtension::setCacheDirParameter()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 7
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 2

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 7
ccs 6
cts 6
cp 1
rs 9.4285
cc 2
eloc 4
nc 2
nop 2
crap 2
1
<?php
2
3
namespace CybozuHttpBundle\DependencyInjection;
4
5
use Symfony\Component\Config\FileLocator;
6
use Symfony\Component\DependencyInjection\ContainerBuilder;
7
use Symfony\Component\DependencyInjection\Loader;
8
use Symfony\Component\HttpKernel\DependencyInjection\Extension;
9
10
/**
11
 * @author ochi51 <[email protected]>
12
 */
13
class CybozuHttpExtension extends Extension
14
{
15
    /**
16
     * @param array[]          $configs
17
     * @param ContainerBuilder $container
18
     */
19 4
    public function load(array $configs, ContainerBuilder $container)
20
    {
21 4
        $configuration = new Configuration();
22 4
        $config = $this->processConfiguration($configuration, $configs);
23 4
        $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config'));
24 4
        $loader->load('services.yml');
25 4
        $this->setParameters($container, $config);
26 4
    }
27
28
    /**
29
     * @param ContainerBuilder $container
30
     * @param array            $config
31
     */
32 4
    protected function setParameters(ContainerBuilder $container, array $config)
33
    {
34 4
        $this->setConfigParameter($container, $config);
35 4
        $this->setCertDirParameter($container, $config);
36 4
        $this->setDebugParameter($container, $config);
37 4
        $this->setLogfileParameter($container, $config);
38 4
        $this->setTestParameter($container, $config);
39 4
    }
40
41
    /**
42
     * @param ContainerBuilder $container
43
     * @param array            $config
44
     */
45 4
    private function setConfigParameter(ContainerBuilder $container, array $config)
46
    {
47 4
        if (!isset($config['config'])) {
48 2
            $config['config'] = [];
49 2
        }
50 4
        $container->setParameter('cybozu_http.config', $config['config']);
51 4
        $this->setDomainParameter($container, $config['config']);
52 4
        $this->setSubdomainParameter($container, $config['config']);
53 4
        $this->setUseApiTokenParameter($container, $config['config']);
54 4
        $this->setLoginParameter($container, $config['config']);
55 4
        $this->setPasswordParameter($container, $config['config']);
56 4
        $this->setTokenParameter($container, $config['config']);
57 4
        $this->setUseBasicParameter($container, $config['config']);
58 4
        $this->setBasicLoginParameter($container, $config['config']);
59 4
        $this->setBasicPasswordParameter($container, $config['config']);
60 4
        $this->setUseClientCertParameter($container, $config['config']);
61 4
        $this->setCertFileParameter($container, $config['config']);
62 4
        $this->setCertPasswordParameter($container, $config['config']);
63 4
        $this->setUseCacheParameter($container, $config['config']);
64 4
        $this->setCacheDirParameter($container, $config['config']);
65 4
        $this->setCacheTtlParameter($container, $config['config']);
66 4
    }
67
68
    /**
69
     * @param ContainerBuilder $container
70
     * @param string[]         $config
71
     */
72 4
    private function setDomainParameter(ContainerBuilder $container, array $config)
73
    {
74 4
        if (!isset($config['domain'])) {
75 2
            $config['domain'] = 'cybozu.com';
76 2
        }
77 4
        $container->setParameter('cybozu_http.config.domain', $config['domain']);
78 4
    }
79
80
    /**
81
     * @param ContainerBuilder $container
82
     * @param string[]         $config
83
     */
84 4
    private function setSubdomainParameter(ContainerBuilder $container, array $config)
85
    {
86 4
        if (!isset($config['subdomain'])) {
87 2
            $config['subdomain'] = null;
88 2
        }
89 4
        $container->setParameter('cybozu_http.config.subdomain', $config['subdomain']);
90 4
    }
91
92
    /**
93
     * @param ContainerBuilder $container
94
     * @param string[]         $config
95
     */
96 4
    private function setUseApiTokenParameter(ContainerBuilder $container, array $config)
97 1
    {
98 4
        $container->setParameter('cybozu_http.config.use_api_token', !empty($config['use_api_token']));
99 4
    }
100
101
    /**
102
     * @param ContainerBuilder $container
103
     * @param string[]         $config
104
     */
105 4
    private function setLoginParameter(ContainerBuilder $container, array $config)
106
    {
107 4
        if (!isset($config['login'])) {
108 2
            $config['login'] = null;
109 2
        }
110 4
        $container->setParameter('cybozu_http.config.login', $config['login']);
111 4
    }
112
113
    /**
114
     * @param ContainerBuilder $container
115
     * @param string[]         $config
116
     */
117 4
    private function setPasswordParameter(ContainerBuilder $container, array $config)
118
    {
119 4
        if (!isset($config['password'])) {
120 2
            $config['password'] = null;
121 2
        }
122 4
        $container->setParameter('cybozu_http.config.password', $config['password']);
123 4
    }
124
125
    /**
126
     * @param ContainerBuilder $container
127
     * @param string[]         $config
128
     */
129 4
    private function setTokenParameter(ContainerBuilder $container, array $config)
130
    {
131 4
        if (!isset($config['token'])) {
132 4
            $config['token'] = null;
133 4
        }
134 4
        $container->setParameter('cybozu_http.config.token', $config['token']);
135 4
    }
136
137
    /**
138
     * @param ContainerBuilder $container
139
     * @param string[]         $config
140
     */
141 4
    private function setUseBasicParameter(ContainerBuilder $container, array $config)
142
    {
143 4
        $container->setParameter('cybozu_http.config.use_basic', !empty($config['use_basic']));
144 4
    }
145
146
    /**
147
     * @param ContainerBuilder $container
148
     * @param string[]         $config
149
     */
150 4
    private function setBasicLoginParameter(ContainerBuilder $container, array $config)
151
    {
152 4
        if (!isset($config['basic_login'])) {
153 2
            $config['basic_login'] = null;
154 2
        }
155 4
        $container->setParameter('cybozu_http.config.basic_login', $config['basic_login']);
156 4
    }
157
158
    /**
159
     * @param ContainerBuilder $container
160
     * @param string[]         $config
161
     */
162 4
    private function setBasicPasswordParameter(ContainerBuilder $container, array $config)
163
    {
164 4
        if (!isset($config['basic_password'])) {
165 2
            $config['basic_password'] = null;
166 2
        }
167 4
        $container->setParameter('cybozu_http.config.basic_password', $config['basic_password']);
168 4
    }
169
170
    /**
171
     * @param ContainerBuilder $container
172
     * @param string[]         $config
173
     */
174 4
    private function setUseClientCertParameter(ContainerBuilder $container, array $config)
175
    {
176 4
        $container->setParameter('cybozu_http.config.use_client_cert', !empty($config['use_client_cert']));
177 4
    }
178
179
    /**
180
     * @param ContainerBuilder $container
181
     * @param string[]         $config
182
     */
183 4
    private function setCertFileParameter(ContainerBuilder $container, array $config)
184
    {
185 4
        if (!isset($config['cert_file'])) {
186 2
            $config['cert_file'] = null;
187 2
        }
188 4
        $container->setParameter('cybozu_http.config.cert_file', $config['cert_file']);
189 4
    }
190
191
    /**
192
     * @param ContainerBuilder $container
193
     * @param string[]         $config
194
     */
195 4
    private function setCertPasswordParameter(ContainerBuilder $container, array $config)
196
    {
197 4
        if (!isset($config['cert_password'])) {
198 2
            $config['cert_password'] = null;
199 2
        }
200 4
        $container->setParameter('cybozu_http.config.cert_password', $config['cert_password']);
201 4
    }
202
203
    /**
204
     * @param ContainerBuilder $container
205
     * @param string[]         $config
206
     */
207 4
    private function setUseCacheParameter(ContainerBuilder $container, array $config)
208
    {
209 4
        if (!isset($config['use_cache'])) {
210 2
            $config['use_cache'] = false;
211 2
        }
212 4
        $container->setParameter('cybozu_http.config.use_cache', $config['use_cache']);
213 4
    }
214
215
    /**
216
     * @param ContainerBuilder $container
217
     * @param string[]         $config
218
     */
219 4
    private function setCacheDirParameter(ContainerBuilder $container, array $config)
220
    {
221 4
        if (!isset($config['cache_dir'])) {
222 2
            $config['cache_dir'] = null;
223 2
        }
224 4
        $container->setParameter('cybozu_http.config.cache_dir', $config['cache_dir']);
225 4
    }
226
227
    /**
228
     * @param ContainerBuilder $container
229
     * @param string[]         $config
230
     */
231 4
    private function setCacheTtlParameter(ContainerBuilder $container, array $config)
232
    {
233 4
        if (!isset($config['cache_ttl'])) {
234 2
            $config['cache_ttl'] = 0;
235 2
        }
236 4
        $container->setParameter('cybozu_http.config.cache_ttl', $config['cache_ttl']);
237 4
    }
238
239
    /**
240
     * @param ContainerBuilder $container
241
     * @param array            $config
242
     */
243 4
    private function setCertDirParameter(ContainerBuilder $container, array $config)
244
    {
245 4
        if (!isset($config['cert_dir'])) {
246 3
            $config['cert_dir'] = null;
247 3
        }
248 4
        $container->setParameter('cybozu_http.cert_dir', $config['cert_dir']);
249 4
    }
250
251
    /**
252
     * @param ContainerBuilder $container
253
     * @param array            $config
254
     */
255 4
    private function setDebugParameter(ContainerBuilder $container, array $config)
256
    {
257 4
        $container->setParameter('cybozu_http.debug', !empty($config['debug']));
258 4
    }
259
260
    /**
261
     * @param ContainerBuilder $container
262
     * @param array            $config
263
     */
264 4
    private function setLogfileParameter(ContainerBuilder $container, array $config)
265
    {
266 4
        if (!isset($config['logfile'])) {
267 3
            $config['logfile'] = null;
268 3
        }
269 4
        $container->setParameter('cybozu_http.logfile', $config['logfile']);
270 4
    }
271
272
    /**
273
     * @param ContainerBuilder $container
274
     * @param array            $config
275
     */
276 4
    private function setTestParameter(ContainerBuilder $container, array $config)
277
    {
278 4
        $container->setParameter('cybozu_http.test', !empty($config['test']));
279
    }
280
}