Viewing file: Writer.php (1.81 KB) -rwxr-x--- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php declare(strict_types = 1);
namespace BaconQrCode;
use BaconQrCode\Common\ErrorCorrectionLevel; use BaconQrCode\Common\Version; 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, ?Version $forcedVersion = 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, $forcedVersion)); }
/** * 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, ?Version $forcedVersion = null ) : void { file_put_contents($filename, $this->writeString($content, $encoding, $ecLevel, $forcedVersion)); } }
|