oxtotp/src/Application/Factory/BaconQrCodeFactory.php
Tobias Matthaiou 96f6de6300 The module is now compatible with all:
- bacon/bacon-qr-code: ^1.0 || ^2.0
- oxid-esales/oxideshop-metapackage-ce: "~6.0.3 || ~6.1.0 || ~6.2.0 || ~6.3.0  || ~6.4.0  || ~6.5.0"
2022-09-12 17:16:53 +02:00

48 lines
1.0 KiB
PHP

<?php
declare(strict_types=1);
namespace D3\Totp\Application\Factory;
use BaconQrCode\Renderer\RendererInterface;
use BaconQrCode\Renderer\Image\Svg; // v1.0.3
use BaconQrCode\Renderer\ImageRenderer; // v2.0.0
use BaconQrCode\Renderer\Image\SvgImageBackEnd; // v2.0.0
use BaconQrCode\Renderer\RendererStyle\RendererStyle; // v2.0.0
class BaconQrCodeFactory
{
/**
* @return RendererInterface
*/
public static function renderer($size)
{
if (class_exists(Svg::class)) {
return self::v100($size);
}
return self::v200($size);
}
private static function v200($size)
{
$renderer = oxNew(
ImageRenderer::class,
oxNew(RendererStyle::class, $size),
oxNew(SvgImageBackEnd::class),
);
return $renderer;
}
private static function v100($size)
{
$renderer = oxNew(Svg::class);
$renderer->setHeight($size);
$renderer->setWidth($size);
return $renderer;
}
}