ProcessService::make()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
nc 1
nop 1
dl 0
loc 3
rs 10
c 1
b 0
f 0
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