Completed
Push — master ( 3be072...ba2d3a )
by Marco
231:32 queued 209:55
created

ClassSignatureGenerator   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 1
dl 0
loc 26
ccs 9
cts 9
cp 1
rs 10
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace ProxyManager\Signature;
6
7
use Zend\Code\Exception\InvalidArgumentException;
8
use Zend\Code\Generator\ClassGenerator;
9
use Zend\Code\Generator\PropertyGenerator;
10
11
/**
12
 * Applies a signature to a given class generator
13
 */
14
final class ClassSignatureGenerator implements ClassSignatureGeneratorInterface
15
{
16
    private SignatureGeneratorInterface $signatureGenerator;
0 ignored issues
show
Bug introduced by
This code did not parse for me. Apparently, there is an error somewhere around this line:

Syntax error, unexpected T_STRING, expecting T_FUNCTION or T_CONST
Loading history...
17
18
    public function __construct(SignatureGeneratorInterface $signatureGenerator)
19
    {
20 1
        $this->signatureGenerator = $signatureGenerator;
21
    }
22 1
23 1
    /**
24
     * {@inheritDoc}
25
     *
26
     * @throws InvalidArgumentException
27
     */
28
    public function addSignature(ClassGenerator $classGenerator, array $parameters) : ClassGenerator
29
    {
30 1
        $classGenerator->addPropertyFromGenerator(new PropertyGenerator(
31
            'signature' . $this->signatureGenerator->generateSignatureKey($parameters),
32 1
            $this->signatureGenerator->generateSignature($parameters),
33 1
            PropertyGenerator::FLAG_STATIC | PropertyGenerator::FLAG_PRIVATE
34 1
        ));
35 1
36
        return $classGenerator;
37
    }
38
}
39