Passed
Push — master ( d2c294...390a75 )
by
unknown
24:38 queued 06:53
created

MolliePluginLatestVersion::versionRenderWidget()   A

Complexity

Conditions 3
Paths 2

Size

Total Lines 11
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 6
c 1
b 0
f 0
dl 0
loc 11
rs 10
cc 3
nc 2
nop 1
1
<?php
2
3
/*
4
 * This file has been created by developers from BitBag.
5
 * Feel free to contact us once you face any issues or want to start
6
 * You can find more information about us on https://bitbag.io and write us
7
 * an email on [email protected].
8
 */
9
10
declare(strict_types=1);
11
12
namespace BitBag\SyliusMolliePlugin\Twig\Extension;
13
14
use BitBag\SyliusMolliePlugin\BitBagSyliusMolliePlugin;
15
use BitBag\SyliusMolliePlugin\Checker\Version\MolliePluginLatestVersionCheckerInterface;
16
use Twig\Environment;
17
use Twig\Extension\AbstractExtension;
18
use Twig\TwigFunction;
19
20
final class MolliePluginLatestVersion extends AbstractExtension
21
{
22
    /** @var MolliePluginLatestVersionCheckerInterface */
23
    private $latestVersionChecker;
24
25
    public function __construct(MolliePluginLatestVersionCheckerInterface $latestVersionChecker)
26
    {
27
        $this->latestVersionChecker = $latestVersionChecker;
28
    }
29
30
    public function getFunctions(): array
31
    {
32
        return [
33
            new TwigFunction(
34
                'bitbag_render_version_widget',
35
                [$this, 'versionRenderWidget'],
36
                [
37
                    'needs_environment' => true,
38
                    'is_safe' => ['html'],
39
                ]
40
            ),
41
        ];
42
    }
43
44
    public function versionRenderWidget(Environment $environment): string
45
    {
46
        $latestVersion = str_replace('v', '', $this->latestVersionChecker->checkLatestVersion());
47
48
        if ($latestVersion === BitBagSyliusMolliePlugin::VERSION || empty($latestVersion)) {
49
            return '';
50
        }
51
52
        return $environment->render('@SyliusAdmin/PaymentMethod/_versionNotification.html.twig', [
53
            'latestVersion' => $latestVersion,
54
            'currentVersion' => BitBagSyliusMolliePlugin::VERSION,
55
        ]);
56
    }
57
}
58