AbstractRenderer   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 66
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 0

Importance

Changes 5
Bugs 1 Features 1
Metric Value
wmc 9
c 5
b 1
f 1
lcom 1
cbo 0
dl 0
loc 66
rs 10

12 Methods

Rating   Name   Duplication   Size   Complexity  
A setRenderer() 0 6 1
A getRenderer() 0 4 1
doRender() 0 1 ?
doPrepare() 0 1 ?
doRenderToString() 0 1 ?
doRenderToFile() 0 1 ?
A prepare() 0 7 2
A render() 0 6 1
A renderToString() 0 6 1
A renderToFile() 0 6 1
A setResolver() 0 6 1
A getOption() 0 4 1
1
<?php
2
/**
3
 * Abstract Renderer file
4
 *
5
 * @author     Leandro Silva <[email protected]>
6
 * @category   LosPdf
7
 * @license    https://github.com/Lansoweb/LosPdf/blob/master/LICENSE BSD-3 License
8
 * @link       http://github.com/LansoWeb/LosPdf
9
 */
10
namespace LosPdf\View\Renderer;
11
12
use Zend\View\Renderer\RendererInterface as Renderer;
13
use Zend\View\Resolver\ResolverInterface as Resolver;
14
use LosPdf\View\Model\PdfModel;
15
16
/**
17
 * Abstract Renderer class
18
 *
19
 * @author     Leandro Silva <[email protected]>
20
 * @category   LosPdf
21
 * @license    https://github.com/Lansoweb/LosPdf/blob/master/LICENSE BSD-3 License
22
 * @link       http://github.com/LansoWeb/LosPdf
23
 */
24
abstract class AbstractRenderer implements Renderer
25
{
26
    protected $engine = null;
27
    protected $resolver;
28
    protected $renderer;
29
    protected $model;
30
    protected $html = null;
31
32
    public function setRenderer(Renderer $renderer)
33
    {
34
        $this->renderer = $renderer;
35
36
        return $this;
37
    }
38
39
    public function getRenderer()
40
    {
41
        return $this->renderer;
42
    }
43
44
    abstract protected function doRender();
45
    abstract protected function doPrepare($model, $values);
46
    abstract protected function doRenderToString(PdfModel $model);
47
    abstract protected function doRenderToFile(PdfModel $model, $fileName);
48
49
    public function prepare($model, $values)
50
    {
51
        if ($this->html === null) {
52
            $this->model = $model;
53
            $this->doPrepare($model, $values);
54
        }
55
    }
56
57
    public function render($model, $values = null)
58
    {
59
        $this->prepare($model, $values);
60
61
        return $this->doRender();
62
    }
63
64
    public function renderToString(PdfModel $model, $values = null)
65
    {
66
        $this->prepare($model, $values);
67
68
        return $this->doRenderToString($model);
69
    }
70
71
    public function renderToFile(PdfModel $model, $fileName, $values = null)
72
    {
73
        $this->prepare($model, $values);
74
75
        return $this->doRenderToFile($model, $fileName);
76
    }
77
78
    public function setResolver(Resolver $resolver)
79
    {
80
        $this->resolver = $resolver;
81
82
        return $this;
83
    }
84
85
    protected function getOption($name, $default)
86
    {
87
        return $this->model->getOption($name, $default);
88
    }
89
}
90