RenderedMarkdownRenderer::__construct()   A
last analyzed

Complexity

Conditions 2
Paths 1

Size

Total Lines 6

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 10
c 0
b 0
f 0
cc 2
nc 1
nop 3
crap 6
1
<?php
2
namespace Germania\Renderer;
3
4
use cebe\markdown\Parser;
5
6
use \Psr\Log\LoggerInterface;
7
use \Psr\Log\LoggerAwareTrait;
8
use \Psr\Log\LoggerAwareInterface;
9
use \Psr\Log\NullLogger;
10
11
12
class RenderedMarkdownRenderer implements RendererInterface, LoggerAwareInterface
13
{
14
    use LoggerAwareTrait;
15
16
    /**
17
     * @var RendererInterface
18
     */
19
    public $renderer;
20
21
    /**
22
     * @var Parser
23
     */
24
    public $markdown_parser;
25
26
27
    /**
28
     * @param RendererInterface $renderer        RendererInterface instance
29
     * @param Parser            $markdown_parser Carsten Brandt's cebe/markdown parser
30
     */
31
    public function __construct( RendererInterface $renderer, Parser $markdown_parser, LoggerInterface $logger = null )
32
    {
33
        $this->renderer = $renderer;
34
        $this->markdown_parser = $markdown_parser;
35
        $this->setLogger( $logger ?: new NullLogger );
36
    }
37
38
39
    /**
40
     * Returns parsed template output.
41
     *
42
     * @param  string $template The template file
43
     * @param  array  $context  Associative template variables array
44
     *
45
     * @return string Template output
46
     */
47
    public function __invoke( $template, array $context = array())
48
    {
49
        $this->logger->info("Render template", [
50
            'template' => $template
51
        ]);
52
53
        $renderer = $this->renderer;
54
55
        $markdown_content = $renderer($template, $context);
56
        $markdown_parser = $this->markdown_parser;
57
58
        return $markdown_parser->parse( $markdown_content );
59
    }
60
61
62
}
63