smiley пре 2 година
родитељ
комит
de27a999ae

+ 2 - 0
src/Common/BitBuffer.php

@@ -90,6 +90,8 @@ final class BitBuffer{
 
 	/**
 	 * returns the buffer content
+	 *
+	 * to debug: array_map(fn($v) => sprintf('%08b', $v), $bitBuffer->getBuffer())
 	 */
 	public function getBuffer():array{
 		return $this->buffer;

+ 1 - 1
src/Common/Mode.php

@@ -10,7 +10,7 @@
 
 namespace chillerlan\QRCode\Common;
 
-use chillerlan\QRCode\Data\{AlphaNum, Byte, ECI, Hanzi, Kanji, Number};
+use chillerlan\QRCode\Data\{AlphaNum, Byte, Hanzi, Kanji, Number};
 use chillerlan\QRCode\QRCodeException;
 
 /**

+ 15 - 15
src/Decoder/Decoder.php

@@ -105,12 +105,17 @@ final class Decoder{
 			if($datamode === Mode::TERMINATOR){
 				break;
 			}
-			elseif($datamode === Mode::ECI){
-				$result .= ECI::decodeSegment($this->bitBuffer, $versionNumber);
+			elseif($datamode === Mode::NUMBER){
+				$result .= Number::decodeSegment($this->bitBuffer, $versionNumber);
 			}
-			elseif($datamode === Mode::FNC1_FIRST || $datamode === Mode::FNC1_SECOND){
-				// We do little with FNC1 except alter the parsed result a bit according to the spec
-				$fc1InEffect = true;
+			elseif($datamode === Mode::ALPHANUM){
+				$result .= $this->decodeAlphanumSegment($versionNumber, $fc1InEffect);
+			}
+			elseif($datamode === Mode::BYTE){
+				$result .= Byte::decodeSegment($this->bitBuffer, $versionNumber);
+			}
+			elseif($datamode === Mode::KANJI){
+				$result .= Kanji::decodeSegment($this->bitBuffer, $versionNumber);
 			}
 			elseif($datamode === Mode::STRCTURED_APPEND){
 
@@ -122,17 +127,12 @@ final class Decoder{
 				$symbolSequence = $this->bitBuffer->read(8);
 				$parityData     = $this->bitBuffer->read(8);
 			}
-			elseif($datamode === Mode::NUMBER){
-				$result .= Number::decodeSegment($this->bitBuffer, $versionNumber);
-			}
-			elseif($datamode === Mode::ALPHANUM){
-				$result .= $this->decodeAlphanumSegment($versionNumber, $fc1InEffect);
-			}
-			elseif($datamode === Mode::BYTE){
-				$result .= Byte::decodeSegment($this->bitBuffer, $versionNumber);
+			elseif($datamode === Mode::FNC1_FIRST || $datamode === Mode::FNC1_SECOND){
+				// We do little with FNC1 except alter the parsed result a bit according to the spec
+				$fc1InEffect = true;
 			}
-			elseif($datamode === Mode::KANJI){
-				$result .= Kanji::decodeSegment($this->bitBuffer, $versionNumber);
+			elseif($datamode === Mode::ECI){
+				$result .= ECI::decodeSegment($this->bitBuffer, $versionNumber);
 			}
 			elseif($datamode === Mode::HANZI){
 				$result .= Hanzi::decodeSegment($this->bitBuffer, $versionNumber);

+ 1 - 1
tests/Common/ECICharsetTest.php

@@ -14,7 +14,7 @@ use chillerlan\QRCode\Common\ECICharset;
 use chillerlan\QRCode\QRCodeException;
 use PHPUnit\Framework\TestCase;
 
-class ECICharsetTest extends TestCase{
+final class ECICharsetTest extends TestCase{
 
 	public static function invalidIdProvider():array{
 		return [[-1], [1000000]];

+ 1 - 1
tests/Data/HanziTest.php

@@ -17,7 +17,7 @@ use function bin2hex, chr, defined, sprintf;
 /**
  * Tests the Hanzi/GB2312 class
  */
-class HanziTest extends DataInterfaceTestAbstract{
+final class HanziTest extends DataInterfaceTestAbstract{
 
 	protected string $FQN      = Hanzi::class;
 	protected string $testdata = '无可奈何燃花作香';

+ 1 - 1
tests/Data/QRDataTest.php

@@ -21,7 +21,7 @@ use PHPUnit\Framework\TestCase;
 /**
  *
  */
-class QRDataTest extends TestCase{
+final class QRDataTest extends TestCase{
 
 	/**
 	 * tests setting the BitBuffer object directly