Просмотр исходного кода

:octocat: rename QROptionsTrait::$imageBase64 to $outputBase64, deprecate old name and redirect calls

smiley 2 лет назад
Родитель
Сommit
c69531ca20

+ 1 - 1
docs/API-QROptions.md

@@ -39,7 +39,7 @@ Inherited from [`SettingsContainerAbstract`](https://github.com/chillerlan/php-s
 | `$outputInterface`             | `string\|null` | `null`                          | *                                       | The FQCN of the custom `QROutputInterface` if `QROptions::$outputType` is set to `QROutputInterface::CUSTOM`                                                                            |
 | `$returnResource`              | `bool`         | `false`                         | *                                       | Return the image resource instead of a render if applicable.                                                                                                                            |
 | `$cachefile`                   | `string\|null` | `null`                          | *                                       | Optional cache file path                                                                                                                                                                |
-| `$imageBase64`                 | `bool`         | `true`                          | *                                       | Toggle base64 or raw image data (if applicable)                                                                                                                                         |
+| `$outputBase64`                | `bool`         | `true`                          | *                                       | Toggle base64 data URI or raw data output (if applicable)                                                                                                                               |
 | `$eol`                         | `string`       | `PHP_EOL`                       | *                                       | Newline string (HTML, SVG, TEXT)                                                                                                                                                        |
 | `$bgColor`                     | `mixed`        | `null`                          | a valid FPDF, GD or Imagick color value | Sets the image background color (if applicable). QRImagick: defaults to "white", QRGdImage: defaults to [255, 255, 255], QRFpdf: defaults to blank internally (white page)              |
 | `$drawLightModules`            | `bool`         | `true`                          | *                                       | Whether to draw the light (false) modules                                                                                                                                               |

+ 2 - 2
docs/Usage-Advanced-usage.md

@@ -126,8 +126,8 @@ $qrcode->setOptions($options);
 Save the QR Code output to `/path/to/qrcode.svg`:
 
 ```php
-$options->imageBase64 = false;
-$options->cachefile   = '/path/to/qrcode.svg';
+$options->outputBase64 = false;
+$options->cachefile    = '/path/to/qrcode.svg';
 
 $qrcode->render($data);
 ```

+ 2 - 2
docs/Usage-Quickstart.md

@@ -27,8 +27,8 @@ Configuration using `QROptions`:
 
 ```php
 $options = new QROptions;
-$options->version     = 7;
-$options->imageBase64 = false; // output raw image instead of base64 data URI
+$options->version      = 7;
+$options->outputBase64 = false; // output raw image instead of base64 data URI
 
 header('Content-type: image/svg+xml'); // the image type is SVG by default
 

+ 1 - 1
examples/authenticator.php

@@ -35,7 +35,7 @@ $options->algorithm           = AuthenticatorInterface::ALGO_SHA512;
  */
 $options->version             = 7;
 $options->addQuietzone        = false;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->svgAddXmlHeader     = false;
 $options->cssClass            = 'my-qrcode';
 $options->drawLightModules    = false;

+ 1 - 1
examples/fpdf.php

@@ -21,7 +21,7 @@ $options->scale            = 5;
 $options->fpdfMeasureUnit  = 'mm';
 $options->bgColor          = [222, 222, 222];
 $options->drawLightModules = false;
-$options->imageBase64      = false;
+$options->outputBase64     = false;
 $options->moduleValues     = [
 	// finder
 	QRMatrix::M_FINDER_DARK    => [0, 63, 255],    // dark (true)

+ 1 - 1
examples/image.php

@@ -19,7 +19,7 @@ $options = new QROptions;
 $options->version             = 7;
 $options->outputType          = QROutputInterface::GDIMAGE_PNG;
 $options->scale               = 20;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->bgColor             = [200, 150, 200];
 $options->imageTransparent    = true;
 #$options->transparencyColor   = [233, 233, 233];

+ 2 - 2
examples/imageWithLogo.php

@@ -63,7 +63,7 @@ class QRImageWithLogo extends QRGdImage{
 
 		$this->saveToFile($imageData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$imageData = $this->toBase64DataURI($imageData, 'image/'.$this->options->outputType);
 		}
 
@@ -80,7 +80,7 @@ class QRImageWithLogo extends QRGdImage{
 $options = new QROptions;
 
 $options->version             = 5;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->scale               = 6;
 $options->imageTransparent    = false;
 $options->drawCircularModules = true;

+ 5 - 5
examples/imageWithText.php

@@ -42,7 +42,7 @@ class QRImageWithText extends QRGdImage{
 
 		$this->saveToFile($imageData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$imageData = $this->toBase64DataURI($imageData, 'image/'.$this->options->outputType);
 		}
 
@@ -96,10 +96,10 @@ class QRImageWithText extends QRGdImage{
 
 $options = new QROptions;
 
-$options->version     = 7;
-$options->outputType  = QROutputInterface::GDIMAGE_PNG;
-$options->scale       = 3;
-$options->imageBase64 = false;
+$options->version      = 7;
+$options->outputType   = QROutputInterface::GDIMAGE_PNG;
+$options->scale        = 3;
+$options->outputBase64 = false;
 
 
 $qrcode = new QRCode($options);

+ 1 - 1
examples/imagick.php

@@ -19,7 +19,7 @@ $options = new QROptions;
 $options->version             = 7;
 $options->outputType          = QROutputInterface::IMAGICK;
 $options->scale               = 20;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->bgColor             = '#ccccaa';
 $options->imageTransparent    = true;
 #$options->transparencyColor   = '#ECF9BE';

+ 2 - 2
examples/imagickWithLogo.php

@@ -54,7 +54,7 @@ class QRImagickWithLogo extends QRImagick{
 		$this->imagick->destroy();
 		$this->saveToFile($imageData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$imageData = $this->toBase64DataURI($imageData, (new finfo(FILEINFO_MIME_TYPE))->buffer($imageData));
 		}
 
@@ -101,7 +101,7 @@ $options->version             = 5;
 $options->outputType          = QROutputInterface::CUSTOM;
 $options->outputInterface     = QRImagickWithLogo::class; // use the custom output class
 $options->eccLevel            = EccLevel::H;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->addLogoSpace        = true;
 $options->logoSpaceWidth      = 15;
 $options->logoSpaceHeight     = 15;

+ 1 - 1
examples/multimode.php

@@ -19,7 +19,7 @@ mb_internal_encoding('UTF-8');
 
 // please excuse the IDE yelling https://youtrack.jetbrains.com/issue/WI-66549
 $options = new QROptions;
-$options->imageBase64  = false;
+$options->outputBase64 = false;
 $options->connectPaths = true;
 
 $qrcode = (new QRCode($options))

+ 1 - 1
examples/qrcode-interactive.php

@@ -67,7 +67,7 @@ try{
 		'moduleValues'     => $moduleValues,
 		'outputType'       => $_POST['output_type'],
 		'scale'            => (int)$_POST['scale'],
-		'imageBase64'      => true,
+		'outputBase64'     => true,
 		'imageTransparent' => false,
 	]);
 

+ 1 - 1
examples/reflectance.php

@@ -19,7 +19,7 @@ require_once __DIR__.'/../vendor/autoload.php';
 $options = new QROptions;
 
 $options->outputType          = QROutputInterface::MARKUP_SVG;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->svgAddXmlHeader     = false;
 $options->connectPaths        = true;
 $options->drawCircularModules = false;

+ 1 - 1
examples/svg.php

@@ -20,7 +20,7 @@ $options = new QROptions;
 
 $options->version             = 7;
 $options->outputType          = QROutputInterface::MARKUP_SVG;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 // if set to false, the light modules won't be rendered
 $options->drawLightModules    = true;
 // empty the default value to remove the fill* and opacity* attributes from the <path> elements

+ 1 - 1
examples/svgMeltedModules.php

@@ -256,7 +256,7 @@ $options->meltRadius         = 0.4;
 $options->version            = 7;
 $options->outputType         = QROutputInterface::CUSTOM;
 $options->outputInterface    = MeltedSVGQRCodeOutput::class;
-$options->imageBase64        = false;
+$options->outputBase64       = false;
 $options->addQuietzone       = true;
 $options->eccLevel           = EccLevel::H;
 $options->addLogoSpace       = true;

+ 1 - 1
examples/svgRandomColoredDots.php

@@ -135,7 +135,7 @@ $options->outputInterface     = RandomDotsSVGOutput::class;
 $options->version             = 5;
 $options->eccLevel            = EccLevel::H;
 $options->addQuietzone        = true;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->drawLightModules    = false;
 $options->connectPaths        = true;
 $options->excludeFromConnect  = [

+ 2 - 2
examples/svgRoundQuietzone.php

@@ -65,7 +65,7 @@ class RoundQuietzoneSVGoutput extends QRMarkupSVG{
 		$svg .= sprintf('%1$s</svg>%1$s', $this->options->eol);
 
 		// transform to data URI only when not saving to file
-		if(!$saveToFile && $this->options->imageBase64){
+		if(!$saveToFile && $this->options->outputBase64){
 			$svg = $this->toBase64DataURI($svg, 'image/svg+xml');
 		}
 
@@ -325,7 +325,7 @@ $options->svgLogoCssClass     = 'logo';
 $options->version             = 7;
 $options->eccLevel            = EccLevel::H;
 $options->addQuietzone        = false; // we're not adding a quiet zone, this is done internally in our own module
-$options->imageBase64         = false; // avoid base64 URI output for the example
+$options->outputBase64        = false; // avoid base64 URI output for the example
 $options->outputType          = QROutputInterface::CUSTOM;
 $options->outputInterface     = RoundQuietzoneSVGoutput::class; // load our own output class
 $options->drawLightModules    = false; // set to true to add the light modules

+ 1 - 1
examples/svgWithLogo.php

@@ -115,7 +115,7 @@ $options->svgLogoCssClass     = 'dark';
 $options->version             = 5;
 $options->outputType          = QROutputInterface::CUSTOM;
 $options->outputInterface     = QRSvgWithLogo::class;
-$options->imageBase64         = false;
+$options->outputBase64        = false;
 $options->eccLevel            = EccLevel::H; // ECC level H is necessary when using logos
 $options->addQuietzone        = true;
 $options->drawLightModules    = true;

+ 1 - 1
examples/svgWithLogoAndCustomShapes.php

@@ -171,7 +171,7 @@ $options->version         = 5;
 $options->quietzoneSize   = 4;
 $options->outputType      = QROutputInterface::CUSTOM;
 $options->outputInterface = QRSvgWithLogoAndCustomShapes::class;
-$options->imageBase64     = false;
+$options->outputBase64    = false;
 $options->eccLevel        = EccLevel::H; // ECC level H is required when using logos
 $options->addQuietzone    = true;
 

+ 1 - 1
src/Output/QRFpdf.php

@@ -143,7 +143,7 @@ class QRFpdf extends QROutputAbstract{
 
 		$this->saveToFile($pdfData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$pdfData = $this->toBase64DataURI($pdfData, 'application/pdf');
 		}
 

+ 1 - 1
src/Output/QRGdImage.php

@@ -179,7 +179,7 @@ class QRGdImage extends QROutputAbstract{
 
 		$this->saveToFile($imageData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$imageData = $this->toBase64DataURI($imageData, 'image/'.$this->options->outputType);
 		}
 

+ 1 - 1
src/Output/QRImagick.php

@@ -135,7 +135,7 @@ class QRImagick extends QROutputAbstract{
 
 		$this->saveToFile($imageData, $file);
 
-		if($this->options->imageBase64){
+		if($this->options->outputBase64){
 			$imageData = $this->toBase64DataURI($imageData, (new finfo(FILEINFO_MIME_TYPE))->buffer($imageData));
 		}
 

+ 1 - 1
src/Output/QRMarkupSVG.php

@@ -62,7 +62,7 @@ class QRMarkupSVG extends QRMarkup{
 		$svg .= sprintf('%1$s</svg>%1$s', $this->options->eol);
 
 		// transform to data URI only when not saving to file
-		if(!$saveToFile && $this->options->imageBase64){
+		if(!$saveToFile && $this->options->outputBase64){
 			$svg = $this->toBase64DataURI($svg, 'image/svg+xml');
 		}
 

+ 28 - 2
src/QROptionsTrait.php

@@ -105,7 +105,7 @@ trait QROptionsTrait{
 
 	/**
 	 * Return the image resource instead of a render if applicable.
-	 * This option overrides other output options, such as $cachefile and $imageBase64.
+	 * This option overrides/ignores other output options, such as $cachefile and $outputBase64.
 	 *
 	 * Supported by the following modules:
 	 *
@@ -127,10 +127,16 @@ trait QROptionsTrait{
 	protected ?string $cachefile = null;
 
 	/**
-	 * Toggle base64 or raw image data (if applicable)
+	 * @deprecated 5.0.0 use QROptions::$outputBase64 instead
+	 * @see        \chillerlan\QRCode\QROptions::$outputBase64
 	 */
 	protected bool $imageBase64 = true;
 
+	/**
+	 * Toggle base64 data URI or raw data output (if applicable)
+	 */
+	protected bool $outputBase64 = true;
+
 	/**
 	 * Newline string
 	 */
@@ -530,4 +536,24 @@ trait QROptionsTrait{
 		$this->circleRadius = max(0.1, min(0.75, $circleRadius));
 	}
 
+	/**
+	 * redirect call to the new variable
+	 *
+	 * @deprecated 5.0.0 use QROptions::$outputBase64 instead
+	 * @see        \chillerlan\QRCode\QROptions::$outputBase64
+	 */
+	protected function set_imageBase64(bool $imageBase64):void{
+		$this->outputBase64 = $imageBase64;
+	}
+
+	/**
+	 * redirect call to the new variable
+	 *
+	 * @deprecated 5.0.0 use QROptions::$outputBase64 instead
+	 * @see        \chillerlan\QRCode\QROptions::$outputBase64
+	 */
+	protected function get_imageBase64():bool{
+		return $this->outputBase64;
+	}
+
 }

+ 1 - 1
tests/Data/QRDataTest.php

@@ -50,7 +50,7 @@ final class QRDataTest extends TestCase{
 		$this::assertSame(3, $matrix->getVersion()->getVersionNumber());
 
 		// attempt to read
-		$options->imageBase64                 = false;
+		$options->outputBase64                = false;
 		$options->readerUseImagickIfAvailable = false;
 
 		$output       = new QRGdImage($options, $matrix);

+ 1 - 1
tests/Output/QRMarkupTestAbstract.php

@@ -43,7 +43,7 @@ abstract class QRMarkupTestAbstract extends QROutputTestAbstract{
 	 * @inheritDoc
 	 */
 	public function testSetModuleValues():void{
-		$this->options->imageBase64      = false;
+		$this->options->outputBase64     = false;
 		$this->options->drawLightModules = true;
 		$this->options->moduleValues     = [
 			// data

+ 2 - 2
tests/Output/QROutputTestAbstract.php

@@ -91,8 +91,8 @@ abstract class QROutputTestAbstract extends TestCase{
 	 * coverage of the built-in output modules
 	 */
 	public function testRenderToCacheFile():void{
-		$this->options->imageBase64 = false;
-		$this->outputInterface      = new $this->FQN($this->options, $this->matrix);
+		$this->options->outputBase64 = false;
+		$this->outputInterface       = new $this->FQN($this->options, $this->matrix);
 		// create the cache file
 		$file = $this->builddir.'/test.output.'.$this->type;
 		$data = $this->outputInterface->dump($file);

+ 3 - 3
tests/QRCodeReaderTestAbstract.php

@@ -96,8 +96,8 @@ abstract class QRCodeReaderTestAbstract extends TestCase{
 	}
 
 	public function testReaderMultiMode():void{
-		$this->options->outputType  = QROutputInterface::GDIMAGE_PNG;
-		$this->options->imageBase64 = false;
+		$this->options->outputType   = QROutputInterface::GDIMAGE_PNG;
+		$this->options->outputBase64 = false;
 
 		$numeric  = '123456789012345678901234567890';
 		$alphanum = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 $%*+-./:';
@@ -149,7 +149,7 @@ abstract class QRCodeReaderTestAbstract extends TestCase{
 		$this->options->imageTransparent = false;
 		$this->options->eccLevel         = $ecc->getLevel();
 		$this->options->version          = $version->getVersionNumber();
-		$this->options->imageBase64      = false;
+		$this->options->outputBase64     = false;
 		// what's interesting is that a smaller scale seems to produce fewer reader errors???
 		// usually from version 20 up, independend of the luminance source
 		// scale 1-2 produces none, scale 3: 1 error, scale 4: 6 errors, scale 5: 5 errors, scale 10: 10 errors

+ 2 - 2
tests/QRCodeTest.php

@@ -86,8 +86,8 @@ final class QRCodeTest extends TestCase{
 	 * Tests if a cache file is properly saved in the given path
 	 */
 	public function testRenderToCacheFile():void{
-		$this->options->cachefile   = $this->builddir.'/test.cache.svg';
-		$this->options->imageBase64 = false;
+		$this->options->cachefile    = $this->builddir.'/test.cache.svg';
+		$this->options->outputBase64 = false;
 		// create the cache file
 		$data = $this->qrcode->setOptions($this->options)->render('test');