Subiendo proyecto completo sin restricciones de git ignore

This commit is contained in:
Jose Sanchez
2023-08-17 11:44:02 -04:00
parent a0d4f5ba3b
commit 20f1c60600
19921 changed files with 2509159 additions and 45 deletions

View File

@@ -0,0 +1,71 @@
<?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));
}
}