Writer::setDataSource()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 5
rs 9.4285
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace LoteriaApi\Consumer;
4
5
class Writer
6
{
7
    private $datasource;
8
    private $localstorage;
9
    private $data;
10
    
11
    public function setDataSource(array $datasource)
12
    {
13
        $this->datasource = $datasource;
14
        return $this;
15
    }
16
    
17
    public function setLocalStorage($localstorage)
18
    {
19
        $this->localstorage = $localstorage;
20
        return $this;
21
    }
22
    
23
    public function setData(array $data)
24
    {
25
        $this->data = $data;
26
        return $this;
27
    }
28
    
29
    public function run()
30
    {
31
        foreach ($this->datasource as $concursoName => $concurso) {
0 ignored issues
show
Coding Style introduced by
Blank line found at start of control structure
Loading history...
32
            
33
            $xml = new \SimpleXMLElement('<concursos/>');
34
            
35
            foreach ($this->data[$concursoName] as $nrconcurso => $concursoData) {
36
                $concursoXml = $xml->addChild('concurso');
37
                $concursoXml->addAttribute('numero', $nrconcurso);
38
                $concursoXml->addChild('data', $concursoData['data']);
39
                $dezenas = $concursoXml->addChild('dezenas');
40
                foreach ($concursoData['dezenas'] as $dezena) {
41
                    $dezenas->addChild('dezena', $dezena);
42
                }
43
                $concursoXml->addChild('arrecadacao', $concursoData['arrecadacao']);
44
                $concursoXml->addChild('total_ganhadores', $concursoData['total_ganhadores']);
45
                $concursoXml->addChild('acumulado', $concursoData['acumulado']);
46
                $concursoXml->addChild('valor_acumulado', $concursoData['valor_acumulado']);
47
            }
48
            
49
            $filename = $this->localstorage . $concurso['xml'];
50
            
51
            $dom = new \DOMDocument('1.0');
52
            $dom->preserveWhiteSpace = false;
53
            $dom->formatOutput = true;
54
            $dom->loadXML($xml->asXML());
55
            $dom->save($filename);
56
        }
57
    }
58
}
59