From 520b34e36cd1725a1487e460bc87e4bf1de87892 Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Wed, 4 Dec 2024 13:33:40 -0300 Subject: [PATCH 1/8] changed/changed-version-endroid auto-commit --- composer.json | 13 +++++++------ src/CryptoQr.php | 2 +- src/Qr.php | 30 ++++++++++++++++++++++++++++-- tests/BitcoinQrTest.php | 12 ++++++------ tests/CryptoQrTest.php | 14 +++++++------- tests/EthereumQrTest.php | 12 ++++++------ tests/QrTest.php | 2 +- 7 files changed, 56 insertions(+), 29 deletions(-) diff --git a/composer.json b/composer.json index 794bb5f..27521eb 100644 --- a/composer.json +++ b/composer.json @@ -15,9 +15,10 @@ } ], "require": { - "php": "^8.0", - "endroid/qr-code": "^3.2", - "ext-gd": "*" + "php": "^8.1", + "endroid/qr-code": "5.0.9", + "ext-gd": "*", + "khanamiryan/qrcode-detector-decoder": "^2.0" }, "require-dev": { "reyesoft/ci": "2.0.1", @@ -25,10 +26,10 @@ "codedungeon/phpunit-result-printer": "0.30.0" }, "autoload": { - "classmap": [ + "classmap": [ "src/" - ], - "psr-4": { + ], + "psr-4": { "CryptoQr\\": "src/" } }, diff --git a/src/CryptoQr.php b/src/CryptoQr.php index 1218706..5d76ad0 100644 --- a/src/CryptoQr.php +++ b/src/CryptoQr.php @@ -61,7 +61,7 @@ protected function updateText(): void $this->getParam('label', $this->getLabel()) . $this->getParam('message', $this->getMessage()); - $this->getQrCode()->setText( + $this->getQrCode()->setData( $uri . ($params !== '' ? '?' . substr($params, 1) : '') ); } diff --git a/src/Qr.php b/src/Qr.php index bc4ba4b..d55233b 100644 --- a/src/Qr.php +++ b/src/Qr.php @@ -11,6 +11,7 @@ namespace CryptoQr; use Endroid\QrCode\QrCode; +use Endroid\QrCode\Writer\PngWriter; class Qr { @@ -18,6 +19,10 @@ class Qr * @var string */ protected $address = ''; + /** + * @var PngWriter + */ + protected $writer; /** * @var QrCode @@ -26,8 +31,9 @@ class Qr public function __construct(string $address = '') { - $this->qr_code = new QrCode(); + $this->qr_code = new QrCode($address); $this->setAddress($address); + $this->writer = new PngWriter(); } public function setAddress(string $address): void @@ -40,7 +46,7 @@ protected function updateText(): void { $uri = $this->getAddress(); - $this->getQrCode()->setText($uri); + $this->getQrCode()->setData($uri); } public function getAddress(): string @@ -52,4 +58,24 @@ public function getQrCode(): QrCode { return $this->qr_code; } + + public function getString(): string + { + $result = $this->writer->write($this->getQrCode()); + + return $result->getString(); + } + + public function getDataUri(): string + { + $result = $this->writer->write($this->getQrCode()); + + return $result->getDataUri(); + } + + public function writeFile(string $filename): void + { + $result = $this->writer->write($this->getQrCode()); + $result->saveToFile($filename); + } } diff --git a/tests/BitcoinQrTest.php b/tests/BitcoinQrTest.php index 2f30bb0..d493200 100644 --- a/tests/BitcoinQrTest.php +++ b/tests/BitcoinQrTest.php @@ -25,7 +25,7 @@ final class BitcoinQrTest extends TestCase public function testBitcoinQrAddress(): void { $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('bitcoin:34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY', $reader->text()); @@ -36,7 +36,7 @@ public function testBitcoinQrWithLabel(): void $address = '34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'; $qr = new BitcoinQr($address); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('bitcoin:' . $address . @@ -48,7 +48,7 @@ public function testBitcoinQrWithRequestBtc(): void $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); $qr->setAmount(20.3); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -64,7 +64,7 @@ public function testBitcoinQrWithRequestAndMessage(): void $qr = new BitcoinQr($address); $qr->setAmount(0.000023456789); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -79,7 +79,7 @@ public function testBitcoinQrWithMessage(): void $message = 'Donation for project xyz'; $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -97,7 +97,7 @@ public function testWriteBitcoinQrFile(): void $qr->setAmount(80); $qr->setLabel('Caritas'); $qr->setMessage('Donation for project xyz'); - $qr->getQrCode()->writeFile($filename); + $qr->writeFile($filename); $image = imagecreatefromstring((string) file_get_contents($filename)); diff --git a/tests/CryptoQrTest.php b/tests/CryptoQrTest.php index 2cde423..e766af2 100644 --- a/tests/CryptoQrTest.php +++ b/tests/CryptoQrTest.php @@ -25,7 +25,7 @@ final class CryptoQrTest extends TestCase public function testBitcoinQrAddress(): void { $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('bitcoin:34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY', $reader->text()); @@ -35,7 +35,7 @@ public function testQrAddressWithoutProtocol(): void { $qr = new CryptoQr('TLPF4HgzmJgQc2oDmR8Msxq4LeUfkA4n4W'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('TLPF4HgzmJgQc2oDmR8Msxq4LeUfkA4n4W', $reader->text()); @@ -46,7 +46,7 @@ public function testBitcoinQrWithLabel(): void $address = '34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'; $qr = new BitcoinQr($address); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('bitcoin:' . $address . @@ -58,7 +58,7 @@ public function testBitcoinQrWithRequestBtc(): void $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); $qr->setAmount(20.3); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -74,7 +74,7 @@ public function testBitcoinQrWithRequestAndMessage(): void $qr = new BitcoinQr($address); $qr->setAmount(0.000023456789); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -89,7 +89,7 @@ public function testBitcoinQrWithMessage(): void $message = 'Donation for project xyz'; $qr = new BitcoinQr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -107,7 +107,7 @@ public function testWriteBitcoinQrFile(): void $qr->setAmount(80); $qr->setLabel('Caritas'); $qr->setMessage('Donation for project xyz'); - $qr->getQrCode()->writeFile($filename); + $qr->writeFile($filename); $image = imagecreatefromstring((string) file_get_contents($filename)); diff --git a/tests/EthereumQrTest.php b/tests/EthereumQrTest.php index 3528056..ae11962 100644 --- a/tests/EthereumQrTest.php +++ b/tests/EthereumQrTest.php @@ -24,7 +24,7 @@ final class EthereumQrTest extends TestCase public function testEthereumQrAddress(): void { $qr = new EthereumQr('0xe8ecDFacE0b274042aAD072149eEc3e232586499'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('ethereum:0xe8ecDFacE0b274042aAD072149eEc3e232586499', $reader->text()); @@ -35,7 +35,7 @@ public function testEthereumQrWithLabel(): void $address = '0xe8ecDFacE0b274042aAD072149eEc3e232586499'; $qr = new EthereumQr($address); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('ethereum:' . $address . @@ -47,7 +47,7 @@ public function testEthereumQrWithRequestEth(): void $qr = new EthereumQr('0xe8ecDFacE0b274042aAD072149eEc3e232586499'); $qr->setAmount(20.3); $qr->setLabel('Caritas'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -63,7 +63,7 @@ public function testEthereumQrWithRequestAndMessage(): void $qr = new EthereumQr($address); $qr->setAmount(0.000023456789); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -78,7 +78,7 @@ public function testEthereumQrWithMessage(): void $message = 'Donation for project xyz'; $qr = new EthereumQr('0xe8ecDFacE0b274042aAD072149eEc3e232586499'); $qr->setMessage($message); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame( @@ -96,7 +96,7 @@ public function testWriteEthereumQrFile(): void $qr->setAmount(80); $qr->setLabel('Caritas'); $qr->setMessage('Donation for project xyz'); - $qr->getQrCode()->writeFile($filename); + $qr->writeFile($filename); $image = imagecreatefromstring((string) file_get_contents($filename)); diff --git a/tests/QrTest.php b/tests/QrTest.php index 605af32..bc5425f 100644 --- a/tests/QrTest.php +++ b/tests/QrTest.php @@ -24,7 +24,7 @@ final class QrTest extends TestCase public function testQrAddress(): void { $qr = new Qr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); - $pngData = $qr->getQrCode()->writeString(); + $pngData = $qr->getString(); $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY', $reader->text()); From 3685ec4e5284375e6f4c6f1990f2d4da99fdc289 Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Wed, 4 Dec 2024 13:59:23 -0300 Subject: [PATCH 2/8] changed/changed-version-endroid auto-commit --- tests/QrTest.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/QrTest.php b/tests/QrTest.php index bc5425f..ce64713 100644 --- a/tests/QrTest.php +++ b/tests/QrTest.php @@ -29,4 +29,24 @@ public function testQrAddress(): void $reader = new QrReader($pngData, QrReader::SOURCE_TYPE_BLOB); $this->assertSame('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY', $reader->text()); } + + public function testQrUri(): void + { + $qr = new Qr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); + $pngUri = $qr->getDataUri(); + + $this->assertNotEmpty($pngUri); + } + + public function testWriteQrFile(): void + { + $filename = sys_get_temp_dir() . '/qr-code.png'; + + $qr = new Qr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); + $qr->writeFile($filename); + + $image = imagecreatefromstring((string) file_get_contents($filename)); + + $this->assertNotFalse($image); + } } From 8b11625d3bed8f268167343d5e9ce95fa9977aed Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Wed, 4 Dec 2024 14:00:55 -0300 Subject: [PATCH 3/8] changed/changed-version-endroid auto-commit --- composer.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 27521eb..7589a8e 100644 --- a/composer.json +++ b/composer.json @@ -17,12 +17,12 @@ "require": { "php": "^8.1", "endroid/qr-code": "5.0.9", - "ext-gd": "*", - "khanamiryan/qrcode-detector-decoder": "^2.0" + "ext-gd": "*" }, "require-dev": { "reyesoft/ci": "2.0.1", "phpunit/phpunit": "^9.1.5", + "khanamiryan/qrcode-detector-decoder": "^2.0", "codedungeon/phpunit-result-printer": "0.30.0" }, "autoload": { From a9dd848b42e4ea3a4068c3f9ccc74421a56f5c7f Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Thu, 5 Dec 2024 10:32:35 -0300 Subject: [PATCH 4/8] changed/changed-version-endroid auto-commit --- src/Qr.php | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/src/Qr.php b/src/Qr.php index d55233b..06f7bb7 100644 --- a/src/Qr.php +++ b/src/Qr.php @@ -10,8 +10,10 @@ namespace CryptoQr; +use Endroid\QrCode\Logo\LogoInterface; use Endroid\QrCode\QrCode; use Endroid\QrCode\Writer\PngWriter; +use Endroid\QrCode\Writer\Result\ResultInterface; class Qr { @@ -23,7 +25,10 @@ class Qr * @var PngWriter */ protected $writer; - + /** + * @var LogoInterface|null + */ + protected $logo; /** * @var QrCode */ @@ -54,28 +59,33 @@ public function getAddress(): string return $this->address; } + public function setLogo(LogoInterface $logo): void + { + $this->logo = $logo; + } + public function getQrCode(): QrCode { return $this->qr_code; } - public function getString(): string + private function writerResult(): ResultInterface { - $result = $this->writer->write($this->getQrCode()); + return $this->writer->write($this->getQrCode(), $this->logo); + } - return $result->getString(); + public function getString(): string + { + return $this->writerResult()->getString(); } public function getDataUri(): string { - $result = $this->writer->write($this->getQrCode()); - - return $result->getDataUri(); + return $this->writerResult()->getDataUri(); } public function writeFile(string $filename): void { - $result = $this->writer->write($this->getQrCode()); - $result->saveToFile($filename); + $this->writerResult()->saveToFile($filename); } } From bd713f6dc947b9646bc2bb87409d8241dcd6e958 Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Thu, 5 Dec 2024 10:55:18 -0300 Subject: [PATCH 5/8] changed/changed-version-endroid auto-commit --- tests/QrTest.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/QrTest.php b/tests/QrTest.php index ce64713..22262b2 100644 --- a/tests/QrTest.php +++ b/tests/QrTest.php @@ -11,6 +11,7 @@ namespace CryptoQr\Tests; use CryptoQr\Qr; +use Endroid\QrCode\Logo\Logo; use PHPUnit\Framework\TestCase; use Zxing\QrReader; @@ -38,6 +39,15 @@ public function testQrUri(): void $this->assertNotEmpty($pngUri); } + public function testSetQrLogo(): void + { + $qr = new Qr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); + $qr->setLogo(new Logo(__DIR__ . '/logo.png')); + $pngUri = $qr->getDataUri(); + + $this->assertNotEmpty($pngUri); + } + public function testWriteQrFile(): void { $filename = sys_get_temp_dir() . '/qr-code.png'; From 926be89ca6d38e1f203494c35d3902a642db5c5f Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Thu, 5 Dec 2024 10:59:48 -0300 Subject: [PATCH 6/8] changed/changed-version-endroid auto-commit --- resources/img/BTC.png | Bin 0 -> 11096 bytes tests/QrTest.php | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 resources/img/BTC.png diff --git a/resources/img/BTC.png b/resources/img/BTC.png new file mode 100644 index 0000000000000000000000000000000000000000..3a783e6fcfc8ec04091892aa6d08badcc2b0625e GIT binary patch literal 11096 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 literal 0 HcmV?d00001 diff --git a/tests/QrTest.php b/tests/QrTest.php index 22262b2..5e7a39d 100644 --- a/tests/QrTest.php +++ b/tests/QrTest.php @@ -42,7 +42,7 @@ public function testQrUri(): void public function testSetQrLogo(): void { $qr = new Qr('34ZwZ4cYiwZnYquM4KW67sqT7vY88215CY'); - $qr->setLogo(new Logo(__DIR__ . '/logo.png')); + $qr->setLogo(new Logo(__DIR__ . '/resources/img/BTC.png')); $pngUri = $qr->getDataUri(); $this->assertNotEmpty($pngUri); From 98ef184d90fa64d0f22a9047e54865463bbb514b Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Thu, 5 Dec 2024 11:01:25 -0300 Subject: [PATCH 7/8] changed/changed-version-endroid auto-commit --- {resources => tests/resources}/img/BTC.png | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename {resources => tests/resources}/img/BTC.png (100%) diff --git a/resources/img/BTC.png b/tests/resources/img/BTC.png similarity index 100% rename from resources/img/BTC.png rename to tests/resources/img/BTC.png From ae456809e925d060c31f9fff6c9964e748d5cc43 Mon Sep 17 00:00:00 2001 From: Matias Ahumada Date: Thu, 5 Dec 2024 11:07:09 -0300 Subject: [PATCH 8/8] changed/changed-version-endroid auto-commit --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 300d5c0..212e9fd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.0.0] - 2024-12-05 + +### Updated +- Upgraded the QR code generation library to the latest version of endroid/qr-code. + +### Changed +- Refactored the implementation of QR code generation to align with the updated library. +- Breaking change: Applications using this library must update their QR generation code to ensure compatibility with the new implementation. + ## [0.1.1] - 2021-06-02 ### Changed