Completed
Push — master ( 5a29a0...22ab66 )
by Dmitry
10:00
created

CollectDependenciesCommand   A

Complexity

Total Complexity 5

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 5

Importance

Changes 0
Metric Value
wmc 5
lcom 1
cbo 5
dl 0
loc 28
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B run() 0 25 5
1
<?php
2
3
namespace hiqdev\assetpackagist\commands;
4
5
use hiqdev\assetpackagist\models\AssetPackage;
6
use Yii;
7
use yii\helpers\Console;
8
9
/**
10
 * Class CollectDependenciesCommand collects dependencies for a certain package
11
 * and publishes tasks to update them.
12
 *
13
 * @package hiqdev\assetpackagist\commands
14
 */
15
class CollectDependenciesCommand extends AbstractPackageCommand
16
{
17
    public function run()
18
    {
19
        $this->beforeRun();
20
21
        $package = $this->package;
22
        $requires = [];
23
24
        foreach ($package->getReleases() as $release) {
25
            if (!isset($release['require'])) {
26
                continue;
27
            }
28
29
            foreach ($release['require'] as $name => $version) {
30
                $requires[$name] = true;
31
            }
32
        }
33
34
        foreach (array_keys($requires) as $name) {
35
            Yii::$app->queue->push('package', new PackageUpdateCommand(AssetPackage::fromFullName($name)));
36
        }
37
38
        Yii::trace(Console::renderColoredString('Created update command for %y' . count($requires) . '%n packages'), __CLASS__);
39
40
        $this->afterRun();
41
    }
42
}
43