FieldRendererBarcode   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 38
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 38
ccs 15
cts 15
cp 1
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A render() 0 21 1
A factory() 0 3 1
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