ForwardPipeline   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 28
wmc 3
lcom 1
cbo 1
ccs 8
cts 8
cp 1
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A addStep() 0 4 1
A process() 0 8 2
1
<?php
2
3
/*
4
 * This file is part of alchemy/pipeline-component.
5
 *
6
 * (c) Alchemy <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Alchemy\Pipeline\Pipeline;
13
14
use Alchemy\Pipeline\Pipeline;
15
use Alchemy\Pipeline\PipelineElement;
16
use Alchemy\Resource\Resource;
17
18
class ForwardPipeline implements Pipeline
19
{
20
    /**
21
     * @var PipelineElement[]
22
     */
23
    private $steps = [];
24
25
    /**
26
     * @param PipelineElement $step
27
     */
28 8
    public function addStep(PipelineElement $step)
29
    {
30 8
        $this->steps[] = $step;
31 8
    }
32
33
    /**
34
     * @param \Alchemy\Resource\Resource $resource
35
     * @return \Alchemy\Resource\Resource
36
     */
37 8
    public function process(Resource $resource)
38
    {
39 8
        foreach ($this->steps as $step) {
40 8
            $resource = $step->execute($resource);
41 6
        }
42
43 8
        return $resource;
44
    }
45
}
46