Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
1 / 1
Qr
100.00% covered (success)
100.00%
9 / 9
100.00% covered (success)
100.00%
2 / 2
2
100.00% covered (success)
100.00%
1 / 1
 getFunctions
100.00% covered (success)
100.00%
3 / 3
100.00% covered (success)
100.00%
1 / 1
1
 getQr
100.00% covered (success)
100.00%
6 / 6
100.00% covered (success)
100.00%
1 / 1
1
1<?php
2
3declare(strict_types=1);
4
5namespace Engelsystem\Renderer\Twig\Extensions;
6
7use BaconQrCode\Renderer\Image\SvgImageBackEnd;
8use BaconQrCode\Renderer\ImageRenderer;
9use BaconQrCode\Renderer\RendererStyle\RendererStyle;
10use BaconQrCode\Writer;
11use Twig\Extension\AbstractExtension as TwigExtension;
12use Twig\TwigFunction;
13
14class Qr extends TwigExtension
15{
16    /**
17     * @return TwigFunction[]
18     */
19    public function getFunctions(): array
20    {
21        return [
22            new TwigFunction('qr', [$this, 'getQr'], ['is_safe' => ['html']]),
23        ];
24    }
25
26    public function getQr(string $content, int $size = 200): string
27    {
28        $renderer = new ImageRenderer(
29            new RendererStyle($size),
30            new SvgImageBackEnd(),
31        );
32        $writer = new Writer($renderer);
33
34        return $writer->writeString($content);
35    }
36}