aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php
diff options
context:
space:
mode:
Diffstat (limited to 'srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php')
-rw-r--r--srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php
new file mode 100644
index 0000000..6688901
--- /dev/null
+++ b/srcs/phpmyadmin/vendor/bacon/bacon-qr-code/src/Writer.php
@@ -0,0 +1,68 @@
+<?php
+declare(strict_types = 1);
+
+namespace BaconQrCode;
+
+use BaconQrCode\Common\ErrorCorrectionLevel;
+use BaconQrCode\Encoder\Encoder;
+use BaconQrCode\Exception\InvalidArgumentException;
+use BaconQrCode\Renderer\RendererInterface;
+
+/**
+ * QR code writer.
+ */
+final class Writer
+{
+ /**
+ * Renderer instance.
+ *
+ * @var RendererInterface
+ */
+ private $renderer;
+
+ /**
+ * Creates a new writer with a specific renderer.
+ */
+ public function __construct(RendererInterface $renderer)
+ {
+ $this->renderer = $renderer;
+ }
+
+ /**
+ * Writes QR code and returns it as string.
+ *
+ * Content is a string which *should* be encoded in UTF-8, in case there are
+ * non ASCII-characters present.
+ *
+ * @throws InvalidArgumentException if the content is empty
+ */
+ public function writeString(
+ string $content,
+ string $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING,
+ ?ErrorCorrectionLevel $ecLevel = null
+ ) : string {
+ if (strlen($content) === 0) {
+ throw new InvalidArgumentException('Found empty contents');
+ }
+
+ if (null === $ecLevel) {
+ $ecLevel = ErrorCorrectionLevel::L();
+ }
+
+ return $this->renderer->render(Encoder::encode($content, $ecLevel, $encoding));
+ }
+
+ /**
+ * Writes QR code to a file.
+ *
+ * @see Writer::writeString()
+ */
+ public function writeFile(
+ string $content,
+ string $filename,
+ string $encoding = Encoder::DEFAULT_BYTE_MODE_ECODING,
+ ?ErrorCorrectionLevel $ecLevel = null
+ ) : void {
+ file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel));
+ }
+}