Test Failed
Push — master ( 3c7b4a...a43e58 )
by Giancarlos
03:09
created

BaseBuilder::addParameters()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 8
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 4
CRAP Score 2

Importance

Changes 0
Metric Value
dl 0
loc 8
ccs 4
cts 4
cp 1
rs 9.4285
c 0
b 0
f 0
cc 2
eloc 4
nc 2
nop 1
crap 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: Giansalex
5
 * Date: 09/08/2017
6
 * Time: 19:23
7
 */
8
9
namespace Greenter\Xml\Builder;
10
11
use Greenter\Xml\Exception\ValidationException;
12
use Symfony\Component\Validator\Validation;
13
14
/**
15
 * Class BaseBuilder
16
 * @package Greenter\Xml\Builder
17
 */
18
class BaseBuilder
19
{
20
    /**
21
     * Directorio de Cache para las template de Documentos.
22
     *
23
     * @var string
24
     */
25
    protected $dirCache;
26
27
    /**
28
     * Get Content XML from template.
29
     *
30
     * @param string $template
31
     * @param object $doc
32
     * @return string
33
     */
34
    public function render($template, $doc)
35
    {
36
        $twig = $this->getRender();
37
        return $twig->render($template, [
38 94
            'doc' => $doc
39
        ]);
40 94
    }
41 94
42
    private function getRender()
43
    {
44
        //TODO: load render one time.
45
        $loader = new \Twig_Loader_Filesystem(__DIR__ . '/../Templates');
46
        $numFilter = new \Twig_SimpleFilter('n_format', function ($number, $decimals = 2) {
47
            return number_format($number, $decimals, '.', '');
48
        });
49
        $twig = new \Twig_Environment($loader, array(
50 54
            'cache' => $this->dirCache,
51
        ));
52 54
        $twig->addFilter($numFilter);
53 54
54 54
        return $twig;
55 54
    }
56 54
57
    /**
58
     * Validate Entity.
59 54
     *
60
     * @param object $entity
61 54
     * @throws ValidationException
62 54
     */
63 54
    public function validate($entity)
64 54
    {
65
        $validator = Validation::createValidatorBuilder()
66 54
            ->addMethodMapping('loadValidatorMetadata')
67
            ->getValidator();
68
69
        $errs = $validator->validate($entity);
70
        if ($errs->count() > 0) {
71
            throw new ValidationException($errs);
72
        }
73
    }
74
75 88
    /**
76
     * Set argumentos.
77 88
     *
78 88
     * @param $params
79 88
     * @throws \Exception
80
     */
81 88
    protected function addParameters($params)
82 88
    {
83 34
        if (!$params['cache_dir']) {
84
            return;
85 54
        }
86
87
        $this->dirCache = $params['cache_dir'];
88
    }
89
}