33 lines
1.0 KiB
PHP
33 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Endroid\QrCode\Writer;
|
|
|
|
use Endroid\QrCode\Bacon\MatrixFactory;
|
|
use Endroid\QrCode\Label\LabelInterface;
|
|
use Endroid\QrCode\Logo\LogoInterface;
|
|
use Endroid\QrCode\QrCodeInterface;
|
|
use Endroid\QrCode\Writer\Result\DebugResult;
|
|
use Endroid\QrCode\Writer\Result\ResultInterface;
|
|
|
|
final class DebugWriter implements WriterInterface, ValidatingWriterInterface
|
|
{
|
|
public function write(QrCodeInterface $qrCode, LogoInterface $logo = null, LabelInterface $label = null, array $options = []): ResultInterface
|
|
{
|
|
$matrixFactory = new MatrixFactory();
|
|
$matrix = $matrixFactory->create($qrCode);
|
|
|
|
return new DebugResult($matrix, $qrCode, $logo, $label, $options);
|
|
}
|
|
|
|
public function validateResult(ResultInterface $result, string $expectedData): void
|
|
{
|
|
if (!$result instanceof DebugResult) {
|
|
throw new \Exception('Unable to write logo: instance of DebugResult expected');
|
|
}
|
|
|
|
$result->setValidateResult(true);
|
|
}
|
|
}
|