浏览代码

:octocat: extract QRMatrix::getBooleanMatrix() from QRMatrix::getMatrix() to remove type ambiguity

smiley 8 月之前
父节点
当前提交
0ef7bc7bf2
共有 3 个文件被更改,包括 15 次插入11 次删除
  1. 1 1
      src/Common/MaskPattern.php
  2. 11 7
      src/Data/QRMatrix.php
  3. 3 3
      tests/Data/QRMatrixTest.php

+ 1 - 1
src/Common/MaskPattern.php

@@ -124,7 +124,7 @@ final class MaskPattern{
 
 		foreach(self::PATTERNS as $pattern){
 			$mp      = new self($pattern);
-			$matrix  = (clone $QRMatrix)->setFormatInfo($mp)->mask($mp)->getMatrix(true);
+			$matrix  = (clone $QRMatrix)->setFormatInfo($mp)->mask($mp)->getBooleanMatrix();
 			$penalty = 0;
 
 			for($level = 1; $level <= 4; $level++){

+ 11 - 7
src/Data/QRMatrix.php

@@ -174,22 +174,26 @@ class QRMatrix{
 	}
 
 	/**
-	 * Returns the data matrix, returns a pure boolean representation if $boolean is set to true
+	 * Returns the data matrix
 	 *
 	 * @return int[][]
 	 */
-	public function getMatrix(bool|null $boolean = null):array{
-
-		if($boolean !== true){
-			return $this->matrix;
-		}
+	public function getMatrix():array{
+		return $this->matrix;
+	}
 
+	/**
+	 * Returns a boolean representation of the data matrix
+	 *
+	 * @return bool[][]
+	 */
+	public function getBooleanMatrix():array{
 		$matrix = $this->matrix;
 
 		foreach($matrix as &$row){
 			$row = array_map($this->isDark(...), $row);
 		}
-
+		/** @var bool[][] $matrix (phpstan hates this otherwise) */
 		return $matrix;
 	}
 

+ 3 - 3
tests/Data/QRMatrixTest.php

@@ -42,7 +42,7 @@ final class QRMatrixTest extends TestCase{
 	 * Tests if size() returns the actual matrix size/count
 	 */
 	public function testGetSize():void{
-		$this::assertCount($this->matrix->getSize(), $this->matrix->getMatrix(true));
+		$this::assertCount($this->matrix->getSize(), $this->matrix->getBooleanMatrix());
 	}
 
 	/**
@@ -255,8 +255,8 @@ final class QRMatrixTest extends TestCase{
 
 		$s = ($size + 2 * $quietZoneSize);
 
-		$this::assertCount($s, $matrix->getMatrix(true));
-		$this::assertCount($s, $matrix->getMatrix(true)[($size - 1)]);
+		$this::assertCount($s, $matrix->getBooleanMatrix());
+		$this::assertCount($s, $matrix->getBooleanMatrix()[($size - 1)]);
 
 		$size = $matrix->getSize();