Documentation

QRMarkupSVG extends QRMarkup
in package

SVG output

Tags
see
https://github.com/codemasher/php-qrcode/pull/5
see
https://developer.mozilla.org/en-US/docs/Web/SVG
see
https://www.sarasoueidan.com/demos/interactive-svg-coordinate-system/
see
https://lea.verou.me/blog/2019/05/utility-convert-svg-path-to-all-relative-or-all-absolute-commands/
see
https://codepen.io/leaverou/full/RmwzKv
see
https://jakearchibald.github.io/svgomg/
see
https://web.archive.org/web/20200220211445/http://apex.infogridpacific.com/SVG/svg-tutorial-contents.html

Table of Contents

Constants

MIME_TYPE  = 'image/svg+xml'

Properties

$circleDiameter  : float
$circleRadius  : float
$connectPaths  : bool
$drawCircularModules  : bool
$drawLightModules  : bool
$eol  : string
$excludeFromConnect  : array<string|int, int>
$keepAsSquare  : array<string|int, int>
$length  : int
the side length of the QR image (modules * scale)
$matrix  : QRMatrix
the (filled) data matrix object
$moduleCount  : int
the current size of the QR matrix
$moduleValues  : array<string|int, mixed>
an (optional) array of color values for the several QR matrix parts
$options  : SettingsContainerInterface|QROptions
the options instance
$scale  : int

Methods

__construct()  : mixed
QROutputAbstract constructor.
dump()  : string
Generates the output, optionally dumps it to a file, and returns it
moduleValueIsValid()  : bool
Determines whether the given value is valid
collectModules()  : array<int, mixed>
collects the modules per QRMatrix::M_* type and runs a $transform function on each module and returns an array with the transformed modules
copyVars()  : void
Creates copies of several QROptions values to avoid calling the magic getters in long loops for a significant performance increase.
createMarkup()  : string
returns the fully parsed and rendered markup string for the given input
getCssClass()  : string
returns a string with all css classes for the current element
getDefaultModuleValue()  : string
implements \chillerlan\QRCode\Output\QROutputAbstract::getDefaultModuleValue()
getModuleValue()  : mixed
Returns the prepared value for the given $M_TYPE
getModuleValueAt()  : mixed
Returns the prepared module value at the given coordinate [$x, $y] (convenience)
getOutputDimensions()  : array<string|int, int>
Returns a 2 element array with the current output width and height
getViewBox()  : string
returns the value for the SVG viewBox attribute
guessMimeType()  : string
Guesses the mime type from the given $imageData
header()  : string
returns the <svg> header with the given options parsed
module()  : string
returns a path segment for a single module
path()  : string
renders and returns a single <path> element
paths()  : string
returns one or more SVG <path> elements
prepareModuleValue()  : string
implements \chillerlan\QRCode\Output\QROutputAbstract::prepareModuleValue()
saveToFile()  : void
Saves the qr $data to a $file. If $file is null, nothing happens.
setMatrixDimensions()  : void
Sets/updates the matrix dimensions
setModuleValues()  : void
Sets the initial module values
toBase64DataURI()  : string
Returns a base64 data URI for the given string and mime type

Constants

MIME_TYPE

public final mixed MIME_TYPE = 'image/svg+xml'

Properties

$circleRadius

protected float $circleRadius
Tags
see
QROptions::$circleRadius

$connectPaths

protected bool $connectPaths
Tags
see
QROptions::$connectPaths

$drawCircularModules

protected bool $drawCircularModules
Tags
see
QROptions::$drawCircularModules

$drawLightModules

protected bool $drawLightModules
Tags
see
QROptions::$drawLightModules

$excludeFromConnect

protected array<string|int, int> $excludeFromConnect
Tags
see
QROptions::$excludeFromConnect

$keepAsSquare

protected array<string|int, int> $keepAsSquare
Tags
see
QROptions::$keepAsSquare

$length

the side length of the QR image (modules * scale)

protected int $length

$moduleValues

an (optional) array of color values for the several QR matrix parts

protected array<string|int, mixed> $moduleValues
Tags
phpstan-var

array<int, mixed>

Methods

dump()

Generates the output, optionally dumps it to a file, and returns it

public dump([string|null $file = null ]) : string

please note that the value of QROptions::$cachefile is already evaluated at this point. if the output module is invoked manually, it has no effect at all. you need to supply the $file parameter here in that case (or handle the option value in your custom output module).

Parameters
$file : string|null = null
Return values
string

collectModules()

collects the modules per QRMatrix::M_* type and runs a $transform function on each module and returns an array with the transformed modules

protected collectModules(Closure $transform) : array<int, mixed>

The transform callback is called with the following parameters:

$x - current column $y - current row $M_TYPE - field value $M_TYPE_LAYER - (possibly modified) field value that acts as layer id

Parameters
$transform : Closure
Return values
array<int, mixed>

copyVars()

Creates copies of several QROptions values to avoid calling the magic getters in long loops for a significant performance increase.

protected copyVars() : void

These variables are usually used in the "module" methods and are called up to 31329 times (at version 40).

createMarkup()

returns the fully parsed and rendered markup string for the given input

protected createMarkup(bool $saveToFile) : string
Parameters
$saveToFile : bool
Return values
string

getCssClass()

returns a string with all css classes for the current element

protected getCssClass([int $M_TYPE = 0 ]) : string
Parameters
$M_TYPE : int = 0
Return values
string

getDefaultModuleValue()

implements \chillerlan\QRCode\Output\QROutputAbstract::getDefaultModuleValue()

protected getDefaultModuleValue(bool $isDark) : string
Parameters
$isDark : bool
Return values
string

getModuleValue()

Returns the prepared value for the given $M_TYPE

protected getModuleValue(int $M_TYPE) : mixed
Parameters
$M_TYPE : int
Tags
throws
QRCodeOutputException

if $moduleValues[$M_TYPE] doesn't exist

getModuleValueAt()

Returns the prepared module value at the given coordinate [$x, $y] (convenience)

protected getModuleValueAt(int $x, int $y) : mixed
Parameters
$x : int
$y : int

getOutputDimensions()

Returns a 2 element array with the current output width and height

protected getOutputDimensions() : array<string|int, int>

The type and units of the values depend on the output class. The default value is the current module count * scale.

Return values
array<string|int, int>

guessMimeType()

Guesses the mime type from the given $imageData

protected guessMimeType(string $imageData) : string
Parameters
$imageData : string
Tags
throws
QRCodeOutputException
Return values
string

paths()

returns one or more SVG <path> elements

protected paths() : string
Return values
string

prepareModuleValue()

implements \chillerlan\QRCode\Output\QROutputAbstract::prepareModuleValue()

protected prepareModuleValue(string $value) : string
Parameters
$value : string
Return values
string

saveToFile()

Saves the qr $data to a $file. If $file is null, nothing happens.

protected saveToFile(string $data[, string|null $file = null ]) : void
Parameters
$data : string
$file : string|null = null
Tags
see
file_put_contents()
see
QROptions::$cachefile
throws
QRCodeOutputException

setMatrixDimensions()

Sets/updates the matrix dimensions

protected setMatrixDimensions() : void

Call this method if you modify the matrix from within your custom module in case the dimensions have been changed

setModuleValues()

Sets the initial module values

protected setModuleValues() : void

toBase64DataURI()

Returns a base64 data URI for the given string and mime type

protected toBase64DataURI(string $data[, string|null $mime = null ]) : string

The mime type can be set via class constant MIME_TYPE in child classes, or given via $mime, otherwise it is guessed from the image $data.

Parameters
$data : string
$mime : string|null = null
Return values
string

        
On this page

Search results