PackageDumper   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 30
Duplicated Lines 0 %

Importance

Changes 1
Bugs 1 Features 0
Metric Value
eloc 12
c 1
b 1
f 0
dl 0
loc 30
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A dump() 0 21 5
1
<?php
2
3
4
namespace App\Composer;
5
6
7
use App\Document\Package;
8
use App\Document\Provider;
9
use Doctrine\ODM\MongoDB\DocumentManager;
10
11
class PackageDumper
12
{
13
    private $dm;
14
15
    public function __construct(DocumentManager $dm)
16
    {
17
        $this->dm = $dm;
18
    }
19
20
    public function dump(Provider $provider)
21
    {
22
        $data = [];
23
24
        /** @var Package $package */
25
        foreach ($provider->getPackages() as $package) {
26
            $data[$provider->getName()][$package->getVersion()] = $package->getData();
27
        }
28
29
        /** @var Provider[] $replacements */
30
        $replacements = $this->dm->getRepository('App:Provider')->getReplacements($provider);
31
        foreach ($replacements as $replacement) {
32
            foreach ($replacement->getPackages() as $package) {
33
                if(in_array($provider->getName(), $package->getReplace())) {
34
                    $data[$replacement->getName()][$package->getVersion()] = $package->getData();
35
                }
36
37
            }
38
        }
39
40
        return ['packages' => $data];
41
    }
42
}
43