Просмотр исходного кода

:octocat: QROutputAbstract::setModuleValues() allow setting extra values from options

smiley 2 лет назад
Родитель
Сommit
b8cebb6d1c
1 измененных файлов с 8 добавлено и 4 удалено
  1. 8 4
      src/Output/QROutputAbstract.php

+ 8 - 4
src/Output/QROutputAbstract.php

@@ -94,12 +94,16 @@ abstract class QROutputAbstract implements QROutputInterface{
 	 */
 	protected function setModuleValues():void{
 
+		// first fill the map with the default values
 		foreach($this::DEFAULT_MODULE_VALUES as $M_TYPE => $defaultValue){
-			$value = ($this->options->moduleValues[$M_TYPE] ?? null);
+			$this->moduleValues[$M_TYPE] = $this->getDefaultModuleValue($defaultValue);
+		}
 
-			$this->moduleValues[$M_TYPE] = $this::moduleValueIsValid($value)
-				? $this->prepareModuleValue($value)
-				: $this->getDefaultModuleValue($defaultValue);
+		// now loop over the options values to replace defaults and add extra values
+		foreach($this->options->moduleValues as $M_TYPE => $value){
+			if($this::moduleValueIsValid($value)){
+				$this->moduleValues[$M_TYPE] = $this->prepareModuleValue($value);
+			}
 		}
 
 	}