ProcessService   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 9
dl 0
loc 24
rs 10
c 1
b 0
f 0
wmc 4

3 Methods

Rating   Name   Duplication   Size   Complexity  
A run() 0 10 2
A make() 0 3 1
A exec() 0 5 1
1
<?php
2
3
namespace Bdelespierre\GitStats\Services;
4
5
use Bdelespierre\GitStats\Interfaces\ProcessServiceInterface;
6
use Symfony\Component\Process\Exception\ProcessFailedException;
7
use Symfony\Component\Process\Process;
8
9
class ProcessService implements ProcessServiceInterface
10
{
11
    public function make(array $command): Process
12
    {
13
        return new Process($command);
14
    }
15
16
    public function run(array $command): Process
17
    {
18
        $process = $this->make($command);
19
        $process->run();
20
21
        if (! $process->isSuccessful()) {
22
            throw new ProcessFailedException($process);
23
        }
24
25
        return $process;
26
    }
27
28
    public function exec(string $command): string
29
    {
30
        exec($command, $output);
31
32
        return implode(PHP_EOL, $output);
33
    }
34
}
35