PHPWriter::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 6
ccs 0
cts 5
cp 0
rs 9.4285
c 0
b 0
f 0
nc 2
cc 2
eloc 4
nop 3
crap 6
1
<?php
2
namespace GoetasWebservices\Xsd\XsdToPhp\Writer;
3
4
use GoetasWebservices\Xsd\XsdToPhp\Php\ClassGenerator;
5
use GoetasWebservices\Xsd\XsdToPhp\Php\Structure\PHPClass;
6
use Psr\Log\LoggerAwareInterface;
7
use Psr\Log\LoggerAwareTrait;
8
use Psr\Log\LoggerInterface;
9
use Psr\Log\NullLogger;
10
11
class PHPWriter extends Writer implements LoggerAwareInterface
12
{
13
    use LoggerAwareTrait;
14
15
    protected $classWriter;
16
    private $generator;
17
18
    public function __construct(PHPClassWriter $classWriter, ClassGenerator $generator, LoggerInterface $logger = null)
19
    {
20
        $this->generator = $generator;
21
        $this->classWriter = $classWriter;
22
        $this->logger = $logger ?: new NullLogger();
23
    }
24
25
    public function write(array $items)
26
    {
27
        return $this->classWriter->write(array_filter(array_map(function (PHPClass $item) {
28
            return $this->generator->generate($item);
29
        }, $items)));
30
    }
31
}
32