FieldRendererBarcode::render()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 21
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 13
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 11
c 1
b 0
f 0
nc 1
nop 4
dl 0
loc 21
ccs 13
cts 13
cp 1
crap 1
rs 9.9
1
<?php
2
3
namespace Graze\CiffRenderer\Renderer\FieldRenderer;
4
5
use Graze\CiffRenderer\Renderer\FieldRenderer\FieldRendererInterface;
6
use Intervention\Image\ImageManager;
7
use Graze\CiffRenderer\Parser\FieldParser\FieldParserInterface;
8
use Graze\CiffRenderer\Renderer\Font\FontFace;
9
10
class FieldRendererBarcode implements FieldRendererInterface
11
{
12
    /**
13
     * @param ImageManager $imageManager
14
     * @param FieldParserInterface $parser
15
     * @param null|callable $fontResolver
16
     * @param null|callable $graphicResolver
17
     * @return \Intervention\Image\Image
18
     */
19 1
    public function render(
20
        ImageManager $imageManager,
21
        FieldParserInterface $parser,
22
        callable $fontResolver = null,
23
        callable $graphicResolver = null
24
    ) {
25 1
        $image = $imageManager->canvas($parser->getWidth(), $parser->getHeight(), '#000');
26 1
        $fontPath = $fontResolver(FontFace::FACE_BARCODE);
27 1
        $fontSize = $parser->getFontSize();
28
29 1
        $fontCallback = function ($font) use ($fontPath, $fontSize) {
30 1
            $font->file($fontPath);
31 1
            $font->size($fontSize);
32 1
            $font->color('#fff');
33 1
            $font->align('center');
34 1
            $font->valign('middle');
35 1
        };
36
37 1
        $image->text($parser->getText(), $parser->getWidth() / 2, $parser->getHeight(), $fontCallback);
38
39 1
        return $image;
40
    }
41
42
    /**
43
     * @return FieldRendererInterface
44
     */
45 1
    public static function factory()
46
    {
47 1
        return new static();
48
    }
49
}
50