From b4780d7dfe7824fe629054acdb8357976cdcc817 Mon Sep 17 00:00:00 2001 From: smiley Date: Thu, 26 Oct 2023 13:06:41 +0200 Subject: [PATCH] :octocat: minor performance improvements for html and string output --- src/Output/QRMarkupHTML.php | 10 +++------- src/Output/QRStringText.php | 11 +++-------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/src/Output/QRMarkupHTML.php b/src/Output/QRMarkupHTML.php index 42dcf12f7..65dc49a8a 100644 --- a/src/Output/QRMarkupHTML.php +++ b/src/Output/QRMarkupHTML.php @@ -23,7 +23,8 @@ class QRMarkupHTML extends QRMarkup{ * @inheritDoc */ protected function createMarkup(bool $saveToFile):string{ - $rows = []; + $rows = []; + $cssClass = $this->getCssClass(); foreach($this->matrix->getMatrix() as $row){ $element = ''; @@ -32,12 +33,7 @@ class QRMarkupHTML extends QRMarkup{ $rows[] = sprintf('
%s
%s', implode('', $modules), $this->eol); } - $html = sprintf( - '
%3$s%2$s
%3$s', - $this->getCssClass(), - implode('', $rows), - $this->eol - ); + $html = sprintf('
%3$s%2$s
%3$s', $cssClass, implode('', $rows), $this->eol); // wrap the snippet into a body when saving to file if($saveToFile){ diff --git a/src/Output/QRStringText.php b/src/Output/QRStringText.php index 94fc5c86f..3de86f9de 100644 --- a/src/Output/QRStringText.php +++ b/src/Output/QRStringText.php @@ -10,6 +10,7 @@ namespace chillerlan\QRCode\Output; +use function array_map; use function implode; use function is_string; use function max; @@ -51,14 +52,8 @@ class QRStringText extends QROutputAbstract{ $lines = []; $linestart = $this->options->textLineStart; - for($y = 0; $y < $this->moduleCount; $y++){ - $r = []; - - for($x = 0; $x < $this->moduleCount; $x++){ - $r[] = $this->getModuleValueAt($x, $y); - } - - $lines[] = $linestart.implode('', $r); + foreach($this->matrix->getMatrix() as $row){ + $lines[] = $linestart.implode('', array_map([$this, 'getModuleValue'], $row)); } $data = implode($this->eol, $lines);