moved type number auto detection

This commit is contained in:
smiley
2016-02-09 15:56:46 +01:00
parent b3ee487ef3
commit ab8d58b7b2
+22 -13
View File
@@ -143,24 +143,33 @@ class QRCode{
$this->qrDataInterface = new $qrDataInterface($data);
if($this->typeNumber < 1 || $this->typeNumber > 10){
/** @noinspection PhpUndefinedFieldInspection */
$length = $this->qrDataInterface->mode === QRConst::MODE_KANJI
? floor($this->qrDataInterface->dataLength / 2)
: $this->qrDataInterface->dataLength;
for($type = 1; $type <= 10; $type++){
if($length <= Util::getMaxLength($type, $mode, $this->errorCorrectLevel)){
$this->typeNumber = $type;
return $this;
}
}
$this->typeNumber = $this->getTypeNumber($mode);
}
return $this;
}
/**
* @param $mode
*
* @return int
* @throws \chillerlan\QRCode\QRCodeException
*/
protected function getTypeNumber($mode){
/** @noinspection PhpUndefinedFieldInspection */
$length = $this->qrDataInterface->mode === QRConst::MODE_KANJI
? floor($this->qrDataInterface->dataLength / 2)
: $this->qrDataInterface->dataLength;
for($type = 1; $type <= 10; $type++){
if($length <= Util::getMaxLength($type, $mode, $this->errorCorrectLevel)){
return $type;
}
}
throw new QRCodeException('Unable to determine type number.');
}
/**
* @return mixed
*/